Ruby on Rails Tuesday, August 30, 2016

Hello!

We are assisting our direct client hire for their Ruby Developer long-term contracting position in San Francisco, CA. The client is a Fortune 500 software company, and they hire consultants on a long term projects.

You can review the detailed job description and apply on this link. Looking forward to work with you.

Regards,
Rusty Woods
Net Matrix Solutions

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/83bb8ef3-e8cb-4341-8b1d-f5a7971d502f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

Hi,


We're a small team of 2 Ruby experts, doing Rails and JS dev and Growth Hacking for startups in the Fintech, Blockchain and Bitcoin niche.


We've experience building Bitcoin ATMs and implementing custom-built blockchain technologies.


We're looking for remote project opportunities especially in Bitcoin, Blockchain, Fintech market or building custom interesting apps.


We've heard there are few startups in this market looking for Developers and Growth Hackers.

Do you have any idea how can we find and contact them?


No recruiters, no headhunters, no Toptal please.


Thank you,

Zoltan

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/bcb3b224-6759-4159-acf8-5ec08b107223%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails Saturday, August 27, 2016


On Sat, Aug 27, 2016 at 9:15 AM, Alex Deering <deeri638@gmail.com> wrote:
Im working on a website that is a recipe database and want the users to be able to submit changes to the recipes and other users can vote on the changes.  However the various methods Ive been trying I come across limitations and wondering what the best method would be to handle this and looking for some advice on how to attack this problem.  Here is some info on my setup:

Database Structure:
Recipes table - has columns for singular items like servings, cook time, description, photo, etc
RecipeIngredients table - just like it sounds, holds all the ingredients for all recipes has amount, unit, name, recipe_id columns
RecipeSteps table - same as ingredients has order and description columns


Here is the various details/issues of the feature Im looking to implement and what is causing me problems:
1. Initially was going to have an ingredient_change and step_change table and address individual changes to items...but an ingredient change can effect the steps so needed to have a single change with multiple items
2. Looked at recreating the entire recipe everytime there is a change submitted but that seemed like an excess of storage and would eventually cause the database to be way to big


I will suggest this isn't actually true. Database systems can store a hecka lot of data without worries. Recipes aren't huge amounts of data at that. You would need to be getting up to the 100's of millions of recipes well before you have any such issues, by which you'll also have encountered other sorts of scaling problems.

You could go through and prune submissions if they get sufficient negative votes, but I'd suggest this also isn't likely.

 
3. Currently Im trying to have a simgle change table that stores the changes as a json string but having a lot of trouble figuring out how to implement it and build a form that has all the ingredients and steps that changed and save it as a json.

So to sum up and hopefully clarify some.  Im hoping to get some help on figuring out a way to go about allowing users to change something on the recipe, save just the changes to a database and know what is different about the changes to show the users who vote.  Hopefully this is clear enough to understand

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/51f5a38d-5d12-4845-a4af-1d974463fe59%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAHUC_t8jAYUhcp0A%2Bs1dSvc0GOsjEcGTDC9ZH84YKRFXHYe0Kg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

Yeah and I am using papertrail for once the changes are voted on and get applied...

The voting is basically a way for the community to decide on how to improve recipes...once a change is submitted it isnt applied and wont be unless enough other users vote that it is a better change.  So basically I dont want to save it to the recipe unless it gets voted...im basically trying to do what papertrail trail does but on my own so I can only apply what fields I want (those that change and not the whole recipe) and only if enough positive votes.

I have had a minor break on this thinking like papertrail and im working on creating a form to a custom method in the controller and creating the change based on that instead of pushing it to the recipe table.

On Saturday, August 27, 2016 at 11:12:29 AM UTC-6, Walter Lee Davis wrote:

> On Aug 27, 2016, at 10:15 AM, Alex Deering <deer...@gmail.com> wrote:
>
> Im working on a website that is a recipe database and want the users to be able to submit changes to the recipes and other users can vote on the changes.  However the various methods Ive been trying I come across limitations and wondering what the best method would be to handle this and looking for some advice on how to attack this problem.  Here is some info on my setup:
>
> Database Structure:
> Recipes table - has columns for singular items like servings, cook time, description, photo, etc
> RecipeIngredients table - just like it sounds, holds all the ingredients for all recipes has amount, unit, name, recipe_id columns
> RecipeSteps table - same as ingredients has order and description columns
>
>
> Here is the various details/issues of the feature Im looking to implement and what is causing me problems:
> 1. Initially was going to have an ingredient_change and step_change table and address individual changes to items...but an ingredient change can effect the steps so needed to have a single change with multiple items
> 2. Looked at recreating the entire recipe everytime there is a change submitted but that seemed like an excess of storage and would eventually cause the database to be way to big
> 3. Currently Im trying to have a simgle change table that stores the changes as a json string but having a lot of trouble figuring out how to implement it and build a form that has all the ingredients and steps that changed and save it as a json.
>
> So to sum up and hopefully clarify some.  Im hoping to get some help on figuring out a way to go about allowing users to change something on the recipe, save just the changes to a database and know what is different about the changes to show the users who vote.  Hopefully this is clear enough to understand

Have you looked at any of the versioning gems -- Paper Trail, Vestal Versions, etc. ? There's several listed here: https://www.ruby-toolbox.com/categories/Active_Record_Versioning If you versioned both of your tables, then you could roll back to any point in time (the last time that the recipe was "approved" or voted to consensus) for the public view, while showing (and accepting additional changes to) the latest version for voting purposes. I'm not clear what your intent is for the voting here...

Walter

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/12d1dbe0-9db5-43fc-b235-198d36a7b067%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

> On Aug 27, 2016, at 10:15 AM, Alex Deering <deeri638@gmail.com> wrote:
>
> Im working on a website that is a recipe database and want the users to be able to submit changes to the recipes and other users can vote on the changes. However the various methods Ive been trying I come across limitations and wondering what the best method would be to handle this and looking for some advice on how to attack this problem. Here is some info on my setup:
>
> Database Structure:
> Recipes table - has columns for singular items like servings, cook time, description, photo, etc
> RecipeIngredients table - just like it sounds, holds all the ingredients for all recipes has amount, unit, name, recipe_id columns
> RecipeSteps table - same as ingredients has order and description columns
>
>
> Here is the various details/issues of the feature Im looking to implement and what is causing me problems:
> 1. Initially was going to have an ingredient_change and step_change table and address individual changes to items...but an ingredient change can effect the steps so needed to have a single change with multiple items
> 2. Looked at recreating the entire recipe everytime there is a change submitted but that seemed like an excess of storage and would eventually cause the database to be way to big
> 3. Currently Im trying to have a simgle change table that stores the changes as a json string but having a lot of trouble figuring out how to implement it and build a form that has all the ingredients and steps that changed and save it as a json.
>
> So to sum up and hopefully clarify some. Im hoping to get some help on figuring out a way to go about allowing users to change something on the recipe, save just the changes to a database and know what is different about the changes to show the users who vote. Hopefully this is clear enough to understand

Have you looked at any of the versioning gems -- Paper Trail, Vestal Versions, etc. ? There's several listed here: https://www.ruby-toolbox.com/categories/Active_Record_Versioning If you versioned both of your tables, then you could roll back to any point in time (the last time that the recipe was "approved" or voted to consensus) for the public view, while showing (and accepting additional changes to) the latest version for voting purposes. I'm not clear what your intent is for the voting here...

Walter

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/8405C46E-7BC8-4C0D-AB0A-4AEF540912D9%40wdstudio.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

Im working on a website that is a recipe database and want the users to be able to submit changes to the recipes and other users can vote on the changes.  However the various methods Ive been trying I come across limitations and wondering what the best method would be to handle this and looking for some advice on how to attack this problem.  Here is some info on my setup:

Database Structure:
Recipes table - has columns for singular items like servings, cook time, description, photo, etc
RecipeIngredients table - just like it sounds, holds all the ingredients for all recipes has amount, unit, name, recipe_id columns
RecipeSteps table - same as ingredients has order and description columns


Here is the various details/issues of the feature Im looking to implement and what is causing me problems:
1. Initially was going to have an ingredient_change and step_change table and address individual changes to items...but an ingredient change can effect the steps so needed to have a single change with multiple items
2. Looked at recreating the entire recipe everytime there is a change submitted but that seemed like an excess of storage and would eventually cause the database to be way to big
3. Currently Im trying to have a simgle change table that stores the changes as a json string but having a lot of trouble figuring out how to implement it and build a form that has all the ingredients and steps that changed and save it as a json.

So to sum up and hopefully clarify some.  Im hoping to get some help on figuring out a way to go about allowing users to change something on the recipe, save just the changes to a database and know what is different about the changes to show the users who vote.  Hopefully this is clear enough to understand

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/51f5a38d-5d12-4845-a4af-1d974463fe59%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

Thanks Timothy, super helpful!

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/eba0766f-9bbc-48ca-85a9-d3487d2387c5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails Friday, August 26, 2016

Linux or Mac are the way to go for almost any non-windows centric development. Vagrant or Virtual Box work really well and more recently I've started using Docker which is awesome.

I can't believe that people say not to use an IDE, that is like saying that writing documents would best be done with a pen and paper! IntelliJ has a great tool in their product and there is a Rails focussed stripped down version called RubyMine. It has context-sensitive completion, all kinds of style and formatting rules, built-in debugger support, model dependency maps, etc, etc. It also supports very simple refactoring of your code, extracting methods, etc. Basically, it is a proper tool for development if you are doing anything complicated. Certainly, you don't need to use *this* tool, but using a tool that can help you code faster and refactor with fewer mistakes is a huge time saver.

There are many online tutorials for learning rails as well as paid courses (I'm a mentor for one of them). But the bottom line about coding is you ONLY learn it by doing stuff. So implement your own version of Yelp or some similar site if you don't have a project in mind. Build it and you will learn. Tutorials are helpful when you are trying to solve that problem in your project. So build stuff.

Good luck,
Brendon.

On Thursday, August 25, 2016 at 9:46:26 AM UTC-7, Faraz Mirza wrote:
Hey Guys!

I am a Computer Science student. I know basic programming and Object-Oriented concepts. I have some experience in web development but have no clue about RoR. I wish to learn it. I have installed Ruby 2.2 and Rails 5 on windows. Should I download an IDE? if yes, which one? The tutorials I find are mostly for Linux or Mac. Can anyone recommend some good links where i can get started? I would really appreciate it! 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/aa0b8fdb-b60f-473f-9292-40d89e0d71cf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

Hello People,

How to use turbolinks classic in Rails 5?

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAJR%2B9kZvW1dL--S9pf-A%3DAsnZahEdkCLgbR8X2Zu0AtdKBtW1A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

I agree with other suggestions, go get a Linux VM or just use Cloud9 first. And, if you have access to Lynda.com. Ruby On Rail 4 Essential Training is really great for beginners. I learned RoR from this Lynda.com course. Remember to do every steps the instructor did yourself, it's the most import step! 

On Thursday, August 25, 2016 at 12:46:26 PM UTC-4, Faraz Mirza wrote:
Hey Guys!

I am a Computer Science student. I know basic programming and Object-Oriented concepts. I have some experience in web development but have no clue about RoR. I wish to learn it. I have installed Ruby 2.2 and Rails 5 on windows. Should I download an IDE? if yes, which one? The tutorials I find are mostly for Linux or Mac. Can anyone recommend some good links where i can get started? I would really appreciate it! 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/40e80244-414f-478e-97ba-48691b6acc15%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

I agree with the suggestion about linux been better than windows. I use both linux and windows platforms. If you have to use windows try "Visual Code" works fine for me. The tutorials mentioned by others are great.


On 26 Aug 2016 9:36 a.m., "Ad Rienks" <ad.rienks@gmail.com> wrote:
Not long ago I had the same question. What I recommend is Michael Hartl´s tutorial: https://www.railstutorial.org/ You get a Cloud 9 development environment with it, and it's all for free!

Op donderdag 25 augustus 2016 18:46:26 UTC+2 schreef Faraz Mirza:
Hey Guys!

I am a Computer Science student. I know basic programming and Object-Oriented concepts. I have some experience in web development but have no clue about RoR. I wish to learn it. I have installed Ruby 2.2 and Rails 5 on windows. Should I download an IDE? if yes, which one? The tutorials I find are mostly for Linux or Mac. Can anyone recommend some good links where i can get started? I would really appreciate it! 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/0099c9c3-e8fd-4d75-8903-62188a7ac664%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAHewxcFFDRGLzZeiF%3D8ws5%2B9gg31KMVkpYSB%2BhWbS46Er51RRg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

Not long ago I had the same question. What I recommend is Michael Hartl´s tutorial: https://www.railstutorial.org/ You get a Cloud 9 development environment with it, and it's all for free!

Op donderdag 25 augustus 2016 18:46:26 UTC+2 schreef Faraz Mirza:
Hey Guys!

I am a Computer Science student. I know basic programming and Object-Oriented concepts. I have some experience in web development but have no clue about RoR. I wish to learn it. I have installed Ruby 2.2 and Rails 5 on windows. Should I download an IDE? if yes, which one? The tutorials I find are mostly for Linux or Mac. Can anyone recommend some good links where i can get started? I would really appreciate it! 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/0099c9c3-e8fd-4d75-8903-62188a7ac664%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

My recommendations would be:

1. What Norm said: find a Linux or OS X box and set up your development environment here.
2. Learn basic Ruby first. You can try the pickaxe book or rubymonk.com.
3. Don't use an IDE. Choose a simple text editor that will get out of your way (Sublime Text, Notepad++, TextMate). Don't try learning two difficult things at a time so if you don't know Vim or Emacs don't use them.
4. For learning Rails try starting with https://www.railstutorial.org/
5. Read the docs at http://guides.rubyonrails.org/. Read it cover to cover. You won't remember everything but you'll have an idea what's possible and where to look for help.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAA6WWt8VrSr-iNSGGs5%2BU0pQxaxMoMda36A-w-xdtgz0dFZ6nw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails Thursday, August 25, 2016

Hi Mike,

Are you looking for in house developer or anywhere from around the globe.

On Fri, Aug 26, 2016, 1:41 AM <mike.leggett@outreach.io> wrote:

Sr. Ruby on Rails Engineer 


Outreach

https://outreach.io/


Seattle - WA


What We Do


Outreach is a communication platform built from the ground up to help people communicate more effectively. Today we focus on the sales organization, helping them engage with their prospects and customers through email, calling and LinkedIn communication flows.


To put it into perspective, our customers spend the majority of their day living inside our software, relying on it to be more effective communicators with their audience. We think it's pretty cool that we get to build the communication platform of the future; a product that our users cherish.


Outreach was founded in 2014, and we are now over 80 employees strong. Since our first days learning about how people communicate, we became obsessed with understanding our customers' problems, and as a result, we've built by far the most loved product on the market, and have won the hearts and minds (and business) of some incredible organizations around the world.


In addition to our relentless focus on the customer, we've received over $30 million in venture funding, we've won Seattle Business Magazine's 100 Best Places to Work, and have been ranked #1 for 2016 Sales Automation/Acceleration software by Ambition.

We aren't slowing down any time soon.


Who We Are, Who We Hire

Our company is headquartered in Seattle, but we also have an office in San Francisco and in State College, PA (both for sales and marketing). If you speak to us, you'll probably see that across any geography, across all our roles and departments, at our heart we are a large group of like-minded individuals working towards a common goal, pushing each other to be better tomorrow than we were today.


We're a team of problem solvers and overachievers who seek out others who are also passionate and relentless at their respective crafts. We want to work with people who are ready to buckle up and be a part of an incredible ride. We work hard not because we're told to, but because we genuinely love what we do.


If there's one main message we want you to remember about us, it's that we push others to be best in class at whatever they do, remain humble, and run through brick walls to accomplish their goals. If you come and join us, we'll give you ownership and challenges, and the team support and encouragement to help you hit your personal goals. We'll be stronger together.


The Role

We are looking for a talented Sr. Software Engineer to join the Outreach Platform team. You will be responsible for design, construction and delivery of entire features. You love to move quickly and ship often, but you also have incredible attention to detail and a desire to build a solid, maintainable application.


Your job is to design, build, and deploy the services that make up the Outreach platform. You are a Ruby Master.

You will replace manual processes and data silos with automation and integration. You will learn from and share your knowledge with a small, expert team. You will move quickly and ship often. You will build a solid foundation that lasts for years.


Your Daily Adventures Will Include


Practice your Craft

  • Extend our core Rails app with new features and clean abstractions.
  • Build companion services with , Node.js, Go, ... (maybe more to come?)
  • Leverage open source software like MySQL, Redis, Elasticsearch, and RabbitMQ.

Build to Last

  • Write automated tests that let us move fast without breaking things.
  • Create usable and scalable APIs.
  • Instrument your work watch its impact in production.

Be Part of a Team

  • Work closely with our support teams and internal dogfooders.
  • Receive praise when things go well. Receive honest feedback when they don't.
  • Learn about sales. It's more interesting than you think.

Our Vision Of You:

  • You have a passion for creating a quality product for our customers.
  • You delight in finding clean solutions to complex technical problems.
  • You are a builder through and through
  • You have our back: go above and beyond to help their team
  • You're honest: admit mistakes and own fixing them
  • You're a hungry craftsman: always looking to sharpen your skills
  • You're one with the customer: take pride in building product that delights users
  • You're hands on: excited about building things

Why You'll Love it Here

  • We talk a LOT with each other, and we laugh a lot with each other.
  • You'll get a chance to make a significant contribution on our history-making journey.
  • You get to tell your mom you work for the fastest growing startup in your city.
  • You'll be pushed to ask important questions over and over, and to use those answers to make good decisions.
  • No ping pong tables - more room for bean bags!
  • Unlimited fishy crackers (or cheez-its) for your eating enjoyment.
  • We offer competitive market salaries and benefits.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/2faa9225-8342-4427-ad35-da3d84f5a8ad%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAMszB6x0GDOh2qg%3DxmdeJJq0KNm_0bGG%2BGDyn11jgZw5RYVycA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

The easy way to get started is to install a virtual machine running some version of Linux or set up your computer to dual boot with a version of Linux.  It is generally held that Windows is not a great platform for ROR development.   I would use VirtualBox and load Ubuntu Mate but that is my personal preference.  There are many choices and most will work a lot better than Windows.  Most developers do not use an IDE.

Norm

On 08/25/2016 08:32 AM, Faraz Mirza wrote:
Hey Guys!

I am a Computer Science student. I know basic programming and Object-Oriented concepts. I have some experience in web development but have no clue about RoR. I wish to learn it. I have installed Ruby 2.2 and Rails 5 on windows. Should I download an IDE? if yes, which one? The tutorials I find are mostly for Linux or Mac. Can anyone recommend some good links where i can get started? I would really appreciate it! 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/f772a14c-ef35-438a-a822-fcb6cb89e8e9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Ruby on Rails

Sr. Ruby on Rails Engineer 


Outreach

https://outreach.io/


Seattle - WA


What We Do


Outreach is a communication platform built from the ground up to help people communicate more effectively. Today we focus on the sales organization, helping them engage with their prospects and customers through email, calling and LinkedIn communication flows.


To put it into perspective, our customers spend the majority of their day living inside our software, relying on it to be more effective communicators with their audience. We think it's pretty cool that we get to build the communication platform of the future; a product that our users cherish.


Outreach was founded in 2014, and we are now over 80 employees strong. Since our first days learning about how people communicate, we became obsessed with understanding our customers' problems, and as a result, we've built by far the most loved product on the market, and have won the hearts and minds (and business) of some incredible organizations around the world.


In addition to our relentless focus on the customer, we've received over $30 million in venture funding, we've won Seattle Business Magazine's 100 Best Places to Work, and have been ranked #1 for 2016 Sales Automation/Acceleration software by Ambition.

We aren't slowing down any time soon.


Who We Are, Who We Hire

Our company is headquartered in Seattle, but we also have an office in San Francisco and in State College, PA (both for sales and marketing). If you speak to us, you'll probably see that across any geography, across all our roles and departments, at our heart we are a large group of like-minded individuals working towards a common goal, pushing each other to be better tomorrow than we were today.


We're a team of problem solvers and overachievers who seek out others who are also passionate and relentless at their respective crafts. We want to work with people who are ready to buckle up and be a part of an incredible ride. We work hard not because we're told to, but because we genuinely love what we do.


If there's one main message we want you to remember about us, it's that we push others to be best in class at whatever they do, remain humble, and run through brick walls to accomplish their goals. If you come and join us, we'll give you ownership and challenges, and the team support and encouragement to help you hit your personal goals. We'll be stronger together.


The Role

We are looking for a talented Sr. Software Engineer to join the Outreach Platform team. You will be responsible for design, construction and delivery of entire features. You love to move quickly and ship often, but you also have incredible attention to detail and a desire to build a solid, maintainable application.


Your job is to design, build, and deploy the services that make up the Outreach platform. You are a Ruby Master.

You will replace manual processes and data silos with automation and integration. You will learn from and share your knowledge with a small, expert team. You will move quickly and ship often. You will build a solid foundation that lasts for years.


Your Daily Adventures Will Include


Practice your Craft

  • Extend our core Rails app with new features and clean abstractions.
  • Build companion services with , Node.js, Go, ... (maybe more to come?)
  • Leverage open source software like MySQL, Redis, Elasticsearch, and RabbitMQ.

Build to Last

  • Write automated tests that let us move fast without breaking things.
  • Create usable and scalable APIs.
  • Instrument your work watch its impact in production.

Be Part of a Team

  • Work closely with our support teams and internal dogfooders.
  • Receive praise when things go well. Receive honest feedback when they don't.
  • Learn about sales. It's more interesting than you think.

Our Vision Of You:

  • You have a passion for creating a quality product for our customers.
  • You delight in finding clean solutions to complex technical problems.
  • You are a builder through and through
  • You have our back: go above and beyond to help their team
  • You're honest: admit mistakes and own fixing them
  • You're a hungry craftsman: always looking to sharpen your skills
  • You're one with the customer: take pride in building product that delights users
  • You're hands on: excited about building things

Why You'll Love it Here

  • We talk a LOT with each other, and we laugh a lot with each other.
  • You'll get a chance to make a significant contribution on our history-making journey.
  • You get to tell your mom you work for the fastest growing startup in your city.
  • You'll be pushed to ask important questions over and over, and to use those answers to make good decisions.
  • No ping pong tables - more room for bean bags!
  • Unlimited fishy crackers (or cheez-its) for your eating enjoyment.
  • We offer competitive market salaries and benefits.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/2faa9225-8342-4427-ad35-da3d84f5a8ad%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails



On Wednesday, August 24, 2016 at 1:49:48 PM UTC+1, Bazley wrote:
The first thing I do with it is this:

if @new_relationships.any?

So it looks like .any? affects the query? I would have thought rails would perform the query, get all the records into @new_relationships, and then count them. This is a surprising feature.

What rails is trying to avoid is loading 1000 objects from the db, just to check whether there is > 0 objects. If the query had already run, then it would just could the loaded objects. 

Fred

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/10a1fce4-7618-498b-a613-07500f909bdb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

Hey Guys!

I am a Computer Science student. I know basic programming and Object-Oriented concepts. I have some experience in web development but have no clue about RoR. I wish to learn it. I have installed Ruby 2.2 and Rails 5 on windows. Should I download an IDE? if yes, which one? The tutorials I find are mostly for Linux or Mac. Can anyone recommend some good links where i can get started? I would really appreciate it! 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/f772a14c-ef35-438a-a822-fcb6cb89e8e9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

Indeed. At least the misery of fixing this problem has given me a deeper understanding of Rails!

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/2f6fd007-95de-43f6-b3ff-abb2049f1dd0%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails Wednesday, August 24, 2016

I have signed up, and have enough time for your lessons and tasks.
thanks your invertation

2016-08-17 18:56 GMT+08:00 Mikhail Khomutetskiy <khomutetskiy@gmail.com>:
Hi!
I'm looking for 10-15 RoR developers who wants to become first users of my educational service http://procoder.io for free. This is limited offer, so I'm looking for motivated guys who can give me feedback.
- You are junior or between junior and senior RoR developer and want to improve your skills to become strong Senior
- You have 2-8 hours each week and motivation to read lessons and execute practical tasks
- We'll give you lessons + practical tasks that should improve your professional level a lot
- You can give feedback and reviews

For applying that free offer you need to sign up on http://procoder.io/ or reply to me

Thanks!

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/2487f740-393a-4191-af47-16f1cb52d3ca%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CANxPo86EUKcFQWXH_dzqVDeX5%3DecJCuFrqm8GTy4ZC320t%3DfjQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

On 24 Aug 2016 1:49 p.m., "Bazley" <1975jmp@gmail.com> wrote:
>
> The first thing I do with it is this:
>
> if @new_relationships.any?
>
> So it looks like .any? affects the query? I would have thought rails would perform the query, get all the records into @new_relationships, and then count them. This is a surprising feature.

Surprising possibly, but it saved a lot of processor time. Such is the magic of rails.

Colin

>
>
> On Wednesday, August 24, 2016 at 1:26:54 PM UTC+1, Frederick Cheung wrote:
>>
>>
>>
>> On Wednesday, August 24, 2016 at 1:11:42 PM UTC+1, Bazley wrote:
>>>
>>> This rails/sql code...
>>>
>>>     @new_relationships = User.select('*')
>>>                              .from("(#{@rels_unordered.to_sql}) AS rels_unordered")
>>>                              .joins("
>>>                         INNER JOIN  relationships
>>>                         ON          rels_unordered.id = relationships.character_id
>>>                         ORDER BY    relationships.created_at DESC
>>>                         ")
>>>
>>> produces a query that begins like this:
>>>
>>>     SELECT COUNT(*) FROM (SELECT .....
>>>
>>> Why is it counting the records?? I haven't asked for a count. I simply want to select all columns after the join:
>>>
>>
>> The code you posted above doesn't actually run any query - queries are executed lazily. What are you doing with @new_relationships? 
>>
>> Fred 
>
> --
> You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
> To post to this group, send email to rubyonrails-talk@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/41ec5676-836d-4079-b48c-b28b49a5326d%40googlegroups.com.
>
> For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAL%3D0gLuELayRBmCnGrUHT7fRPgo8wYjfeBCHi0geY4cNRi2ufw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

The first thing I do with it is this:

if @new_relationships.any?

So it looks like .any? affects the query? I would have thought rails would perform the query, get all the records into @new_relationships, and then count them. This is a surprising feature.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/c9c4d2bb-6f00-4f7b-b355-071a576deec6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

The first thing I do with it is this:

if @new_relationships.any?

So it looks like .any? affects the query? I would have thought rails would perform the query, get all the records into @new_relationships, and then count them. This is a surprising feature.


On Wednesday, August 24, 2016 at 1:26:54 PM UTC+1, Frederick Cheung wrote:


On Wednesday, August 24, 2016 at 1:11:42 PM UTC+1, Bazley wrote:
This rails/sql code...

    @new_relationships = User.select('*')
                             
.from("(#{@rels_unordered.to_sql}) AS rels_unordered")
                             
.joins("
                        INNER JOIN  relationships
                        ON          rels_unordered.id = relationships.character_id
                        ORDER BY    relationships.created_at DESC
                        "
)

produces a query that begins like this:

    SELECT COUNT(*) FROM (SELECT .....

Why is it counting the records?? I haven't asked for a count. I simply want to select all columns after the join:


The code you posted above doesn't actually run any query - queries are executed lazily. What are you doing with @new_relationships? 

Fred 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/41ec5676-836d-4079-b48c-b28b49a5326d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

The first thing I do with it is this:

if @new_matches.any?


On Wednesday, August 24, 2016 at 1:26:54 PM UTC+1, Frederick Cheung wrote:


On Wednesday, August 24, 2016 at 1:11:42 PM UTC+1, Bazley wrote:
This rails/sql code...

    @new_relationships = User.select('*')
                             
.from("(#{@rels_unordered.to_sql}) AS rels_unordered")
                             
.joins("
                        INNER JOIN  relationships
                        ON          rels_unordered.id = relationships.character_id
                        ORDER BY    relationships.created_at DESC
                        "
)

produces a query that begins like this:

    SELECT COUNT(*) FROM (SELECT .....

Why is it counting the records?? I haven't asked for a count. I simply want to select all columns after the join:


The code you posted above doesn't actually run any query - queries are executed lazily. What are you doing with @new_relationships? 

Fred 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/0e1f517f-04be-457c-82d1-e1ecfa71bc35%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails



On Wednesday, August 24, 2016 at 1:11:42 PM UTC+1, Bazley wrote:
This rails/sql code...

    @new_relationships = User.select('*')
                             
.from("(#{@rels_unordered.to_sql}) AS rels_unordered")
                             
.joins("
                        INNER JOIN  relationships
                        ON          rels_unordered.id = relationships.character_id
                        ORDER BY    relationships.created_at DESC
                        "
)

produces a query that begins like this:

    SELECT COUNT(*) FROM (SELECT .....

Why is it counting the records?? I haven't asked for a count. I simply want to select all columns after the join:


The code you posted above doesn't actually run any query - queries are executed lazily. What are you doing with @new_relationships? 

Fred 

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/53a11ade-c217-4703-a8c1-54560ade04cb%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

This rails/sql code...

    @new_relationships = User.select('*')
                             
.from("(#{@rels_unordered.to_sql}) AS rels_unordered")
                             
.joins("
                        INNER JOIN  relationships
                        ON          rels_unordered.id = relationships.character_id
                        ORDER BY    relationships.created_at DESC
                        "
)

produces a query that begins like this:

    SELECT COUNT(*) FROM (SELECT .....

Why is it counting the records?? I haven't asked for a count. I simply want to select all columns after the join:

    SELECT * FROM (SELECT .....

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/f3c5dbc2-b971-48c7-977d-39f79225151c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

I don't know if I will have the time to complete all the lessons but I could help you with the grammar and wording. Your landing page needs some work in the English department. Do you want my help with this?

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/e8685030-0f92-4c11-83ce-17ea1882c193%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails

Hey!

active_record_doctor helps you to identify database issues before they hit production. Version 1.2.0 can:

- index foreign keys that lack and index
- detect indexes that can be dropped

Please go to the project homepage https://github.com/gregnavis/active_record_doctor for installation and usage instructions.

Need a new feature? Stumbled upon a bug? Just shoot me an email.

Cheers
Greg

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CAA6WWt_tpqertyNcNvec_%2BOCNdJzBdQiNgPTZjBs3AaRB9w_jg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails Tuesday, August 23, 2016

I am interseted and just signedup on procoder.io . Now  waiting for lessons.

On Wednesday, August 17, 2016 at 12:42:46 PM UTC, Mikhail Khomutetskiy wrote:
Hi!
I'm looking for 10-15 RoR developers who wants to become first users of my educational service http://procoder.io for free. This is limited offer, so I'm looking for motivated guys who can give me feedback.
- You are junior or between junior and senior RoR developer and want to improve your skills to become strong Senior
- You have 2-8 hours each week and motivation to read lessons and execute practical tasks
- We'll give you lessons + practical tasks that should improve your professional level a lot
- You can give feedback and reviews

For applying that free offer you need to sign up on http://procoder.io/ or reply to me

Thanks!

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/4e629c0f-e700-47d0-a088-29eaa683fb7d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails Monday, August 22, 2016

In this tutorial I show you how to improve performance significantly by using Postgres' materialized views to back rails models.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/e686a929-f298-4e59-8e63-96f0e9bdba4c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails Saturday, August 20, 2016

The real challenge with the "flush now" idea is that you cannot generally (websockets and http2 change the game) continue to feed information to the browser later. so the flush now would break the connection to the browser. If you walk through the rack/rails stack, you will see that the final sending really ends up happening after you return from the call, in the same thread.

I'd suggest doing an asynchronous call to the slow systems in a new thread or use rabbitMQ or similar to take the request and run it in a different ruby thread, possibly in a different process (or container if you are using Docker and doing the microservices thing.) Redis will also let you use messaging like this, but risks storing the data on disk. (Actually, you run that risk anyway, given that the OS may swap out pages with the data to disk and then it lives on disk until the swap space is recycled....) Anyway, using a messaging system to offload the slow process lets the original request end quickly. You can then either have the client poll for the final result (a little uck, but very reliable without any added technology -- especially if you just do the slow request off of a thread) or use websockets to feed the results back when you know them.

Having been down the road you are suggesting of having a "flush", I can tell you that fighting the framework like that brings a lot of pain, and ongoing pain as time goes on and the underlying code changes.

Happy to advise if you PM me... I've BTDT.

Brendon

On Friday, August 19, 2016 at 7:53:10 PM UTC-7, Phil wrote:

Thanks!  We're at a merchant tier where we're required to have 3rd party security audits every quarter.  We're compliant.  Our whole system from the datacenter to equipment to code is with PCI compliance in mind.  We could store the banking info ourselves, but I'd only do it if we had a server on a private network that was storing that information.  It is cheaper, easier and safer to use a service like Authorize.net's CIM, though.  Our service is odd in that we're very fluid in needing to charge and refund on the fly, security deposits, complex tax and other government agency compliances, trust accounts, talking directly to banks via ACH, etc.  If we were just selling widgets or something, it would be a lot easier to use something like you describe (like Authorize.net's SIM integration method).  And you are right, that's the safer/better route in many cases.

Thanks for the information, though.  I'm sure others here could find it interesting and valuable, too.


Phil

On Aug 19, 2016, at 10:23 AM, Brendon <bre...@darkindigo.com> wrote:

If you are trying to be PCI compliant, then this approach just doesn't cut it. PCI DSS compliance rules apply to anybody who is Processing, Transmitting or Storing card info. Since your server is handling (processing and transmitting) the "banking information" it needs to be inside the PCI 'zone' with all the logging, software requirements physical access restrictions, etc. I'd strongly urge you to NOT do this.

If somebody gains access to your server, they can easily log the request parameters and *bang* you are liable for the data breach, even if you don't store the data. That is basically what happened at Target, where the system sent the card info out of the company until the breach was found.

The easy way to dodge PCI responsibility is to NEVER touch the sensitive data.

It is much easier than it used to be:
  1. You render your card info entry screen in the browser, but have the submit button go STRAIGHT to Stripe, Braintree, Authorize.net, etc.
  2. When the user submits, the browser sends the PCI data to the payment processor directly.
  3. They grab the payment info and do whatever needs doing... then
  4. The Payment processor then REDIRECTS the client back to your server with some context so you can match up the client, payment, etc.  
  5. You get the request from the client and do whatever you need to tell them if it worked or not.
Take a look at: https://stripe.com/docs/security for an overview. And then look at https://stripe.com/docs/stripe.js as an easy way of handling the details.

All the other providers provide similar capabilities -- and if they don't, change provider! I looked by Authorize has moved all the docs around so I grabbed the above from Stripe instead.

We are a Stripe customer and I've been a Braintree and Authorize.net customer in the past.

Good luck,
Brendon.

On Thursday, August 18, 2016 at 4:41:23 PM UTC-7, Phil wrote:

Have a few cases where it is critically important to flush the output of 'render' immediately.  For example:


 def place_order
  if validate_and_record_order?
   render :text => "OK"
  else
   render :text => "ERROR"
  end
  # DESPERATELY WANT TO FLUSH OUTPUT HERE!
  # Do lots of talking with banks, send out mailers, etc.
 end


Another wrinkle here is we can't store the customer's banking information to run as a deferred task.  Ideally we just want to say 'flush the output' after the 'if' block.  Even if there's an exception after the 'if' we still don't want them to get a 500, we want them to get the OK/ERROR.

The problem we have is the people connecting to our app are sometimes timing out (they have a short timeout) and think the order failed when in fact it was recorded, customer was charged, etc.  I'm a little hesitant about using Thread.new, but perhaps that's the only reasonable way to flush the output early?

btw- This is Rails 4.0.x, Apache+Passenger.

Thanks!


Phil

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To post to this group, send email to rubyonra...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/52341f3a-7cf6-40a1-8914-1cb162210599%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/4caad311-9314-4b33-a56c-689373db43c3%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Ruby on Rails Friday, August 19, 2016


Thanks!  We're at a merchant tier where we're required to have 3rd party security audits every quarter.  We're compliant.  Our whole system from the datacenter to equipment to code is with PCI compliance in mind.  We could store the banking info ourselves, but I'd only do it if we had a server on a private network that was storing that information.  It is cheaper, easier and safer to use a service like Authorize.net's CIM, though.  Our service is odd in that we're very fluid in needing to charge and refund on the fly, security deposits, complex tax and other government agency compliances, trust accounts, talking directly to banks via ACH, etc.  If we were just selling widgets or something, it would be a lot easier to use something like you describe (like Authorize.net's SIM integration method).  And you are right, that's the safer/better route in many cases.

Thanks for the information, though.  I'm sure others here could find it interesting and valuable, too.


Phil

On Aug 19, 2016, at 10:23 AM, Brendon <brendon@darkindigo.com> wrote:

If you are trying to be PCI compliant, then this approach just doesn't cut it. PCI DSS compliance rules apply to anybody who is Processing, Transmitting or Storing card info. Since your server is handling (processing and transmitting) the "banking information" it needs to be inside the PCI 'zone' with all the logging, software requirements physical access restrictions, etc. I'd strongly urge you to NOT do this.

If somebody gains access to your server, they can easily log the request parameters and *bang* you are liable for the data breach, even if you don't store the data. That is basically what happened at Target, where the system sent the card info out of the company until the breach was found.

The easy way to dodge PCI responsibility is to NEVER touch the sensitive data.

It is much easier than it used to be:
  1. You render your card info entry screen in the browser, but have the submit button go STRAIGHT to Stripe, Braintree, Authorize.net, etc.
  2. When the user submits, the browser sends the PCI data to the payment processor directly.
  3. They grab the payment info and do whatever needs doing... then
  4. The Payment processor then REDIRECTS the client back to your server with some context so you can match up the client, payment, etc.  
  5. You get the request from the client and do whatever you need to tell them if it worked or not.
Take a look at: https://stripe.com/docs/security for an overview. And then look at https://stripe.com/docs/stripe.js as an easy way of handling the details.

All the other providers provide similar capabilities -- and if they don't, change provider! I looked by Authorize has moved all the docs around so I grabbed the above from Stripe instead.

We are a Stripe customer and I've been a Braintree and Authorize.net customer in the past.

Good luck,
Brendon.

On Thursday, August 18, 2016 at 4:41:23 PM UTC-7, Phil wrote:

Have a few cases where it is critically important to flush the output of 'render' immediately.  For example:


 def place_order
  if validate_and_record_order?
   render :text => "OK"
  else
   render :text => "ERROR"
  end
  # DESPERATELY WANT TO FLUSH OUTPUT HERE!
  # Do lots of talking with banks, send out mailers, etc.
 end


Another wrinkle here is we can't store the customer's banking information to run as a deferred task.  Ideally we just want to say 'flush the output' after the 'if' block.  Even if there's an exception after the 'if' we still don't want them to get a 500, we want them to get the OK/ERROR.

The problem we have is the people connecting to our app are sometimes timing out (they have a short timeout) and think the order failed when in fact it was recorded, customer was charged, etc.  I'm a little hesitant about using Thread.new, but perhaps that's the only reasonable way to flush the output early?

btw- This is Rails 4.0.x, Apache+Passenger.

Thanks!


Phil

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/52341f3a-7cf6-40a1-8914-1cb162210599%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.