Hacker Newsnew | past | comments | ask | show | jobs | submit | atambo's commentslogin

Vivisimo was actually bought by IBM, not Oracle.


LendingHome | Senior/Staff/Principal Software Engineer | Full-time | San Francisco, CA & Pittsburgh, PA | ONSITE VISA

LendingHome is reimagining the mortgage process from the ground up based in technology as a simple, fast, transparent marketplace for borrowers and investors. We’re chasing the goal of being the best way to get a mortgage and the best way to invest in them.

Our stack: Ruby, Rails, Postgres, Redis, React, more details here: https://stackshare.io/lendinghome/how-lendinghome-scaled-the...

Apply online at https://www.lendinghome.com/careers


Pittsburgh PA - Full Time / Intern

IBM Watson Group creates products and technologies using Cognitive Computing to solve real problems, from winning Jeopardy to assisting doctors. Watson does this by analyzing massive amounts of structured and unstructured data. We are on the cutting edge of technology working to change the world.

Our team within Watson Group works on Watson Explorer, a web application enabling data exploration and visualization. We are looking for senior and junior front-end developers to join us.

How we work:

* Open and collaborative office environment - you will not be stuffed into a cubicle and left alone.

* Software craftsmanship - pairing, Test Driven Development (TDD), small commits in Git, Gerrit code reviews, continuous integration and deployment, daily standups with progress visualization

* Technologies we use - CSS (Sass and Compass), JS, JRuby on Rails, and Java

What you'll do:

* Develop full-stack web applications

* Work with designers and researchers to translate users’ needs into reality

* Influence design and direction of product

Want to come work with us? We're interested in you, too! See all of the positions below:

http://ibm.referrals.selectminds.com/jobs/search/14208828


Pittsburgh PA - Full Time / Intern

IBM Watson Group creates products and technologies using Cognitive Computing to solve real problems, from winning Jeopardy to assisting doctors. Watson does this by analyzing massive amounts of structured and unstructured data. We are on the cutting edge of technology working to change the world.

Our team within Watson Group works on Watson Explorer, a web application enabling data exploration and visualization. We are looking for senior and junior front-end developers to join us.

How we work:

* Open and collaborative office environment - you will not be stuffed into a cubicle and left alone.

* Software craftsmanship - pairing, Test Driven Development (TDD), small commits in Git, Gerrit code reviews, continuous integration and deployment, daily standups with progress visualization

* Technologies we use - CSS (Sass and Compass), JS, JRuby on Rails, and Java

What you'll do:

* Develop full-stack web applications

* Work with designers and researchers to translate users’ needs into reality

* Influence design and direction of product

Want to come work with us? We're interested in you, too! See all of the positions below:

https://ibm.biz/BdRbgs


IBM Watson Software Engineer

Pittsburgh, PA

Lots of positions (Frontend, Backend, QA, Doc, Design)

Technologies used:

Search engine indexer/crawler written in C.

Cluster management, sharding, replication, tiering written in Java.

Connectors written in Java/Scala.

Frontend exploration and visualization written in JRuby on Rails.

Check out all the positions here:

https://ibm.biz/BdRbgs


Ruby 2.0 still has the GIL so if you want to run a threaded web server you'll still need to be using rubinius or jruby.


ONLY if it's important to you that one process be able to run multiple threads on multiple CPU cores concurrently.

Even without this, there are MANY use cases where multi-threaded concurrent request dispatch makes a LOT of sense. For instance, the recent controversy about heroku routing, right?

With MRI or another interpreter with the GIL, you'd want to run one app process per CPU core -- but having each of those processes also do multi-threaded request handling can still even out latency (that is, avoid those awful ~95th+ percentile latencies in the heroku routing debacle), and increase overall throughput.

Especially if your app, like most but not all web apps, is more I/O bound than CPU bound (waiting on DB, disk, or external APIs).


Any reason ruby still has the GIL and not moved to a thread implementation?


Matz likes the fact that it Just Works and you can't accidentally have weirdness based on how your code runs. There aren't any plans to remove it at this time.


I can imagine a whole bunch of gems suddenly breaking if this changes...


That's true, but I don't buy that argument: look at how fast everyone has updated their gems to be Ruby 2.0 compatible. The Ruby world likes running on the edge; if MRI forced us to consider thread safety, we'd learn about the issue much quicker as a community. Since we'd be forced to. ;)


Oh I don't doubt that the community would move quite quickly to support it, but it certainly wouldn't be without some bumps along the way!


The GIL makes a lot of things in the Ruby interpreter much easier to implement.


I think he means something like http://compass-style.org.


I'm just a dev. I don't actually know what I mean :)



I think it's a mass assignment vulnerability:

https://github.com/rails/rails/issues/5228


Relevant:

  What I want you to see in that thread I mentioned is the
  way the core team perceives this. You are not discovering
  anything unknown, we already know this stuff and we like
  attr protection to work the way it is.
Looks like this guy got really frustrated with the Rails devs basically saying that he didn't know what he was talking about. This reminds me of all of the unsafe defaults that PHP used to have. Same justification too, "it's a config setting, so it's up to the developer/sysadmin to read the docs and set them right."


This justification seems especially odd to me since Rails did so much in the first place to popularize the idea that the default behavior should be the one most likely to be "right". Don't they (or didn't they at one time) have a mantra "convention over configuration"?

I guess that doesn't apply to security.


This also makes it all the more serious. As the PHP developers found out the hard way:

When you make it really easy to get started, a lot of people won't learn the system in depth enough to understand all the issues because they don't need to in order to make it work "well enough" for most cases.

By making Rails so easy to get started, they pretty much guarantee that there's going to be a ton of developers that don't pick up on, or forget, that they need to deal with issues like this.

That even a site like Github was vulnerable to this demonstrates just how seriously wrong it is to pick a default like this..


This guy brought up the vulnerability and the maintainers didn't seem to take it seriously since he wasn't articulate enough or was not approaching them with enough respect maybe for their liking? I wish they would have kissed his ass a little to get the low-down on the vulnerability so I didn't have to worry about my company's private github repos. He deserves props for bring it up for discussion.


This has been discussed since the early days of Rails, and they have chosen to leave their defaults as such and encourage developers to implement model security as needed. Github (seemingly) did not implement model security. This is a vulnerability that is different from application to application, and if the team was following best practices, is not there.


And he's just demonstrated why this is not a responsible approach from the Rails team.


If it's a simple mass-assignment vulnerability, the Rails team has nothing to do with it given that mass-assignment is a feature and the vulnerability is well documented:

http://edgeguides.rubyonrails.org/security.html#mass-assignm...

Heck, I even learned this way back when I was learning Rails:

http://railscasts.com/episodes/26-hackers-love-mass-assignme...


The fact that this is even a discussion is sufficient for me to consider it a bug. It's irresponsible of the Rails team to leave this default the way it is given that it's long been a known risk.

That they like to consider it a "feature" doesn't make it any better - it just makes them look like idiots


I was going to say the same thing.

The Security guide does describe the issue, and even describes attr_accessible as a "Countermeasure". http://guides.rubyonrails.org/security.html#mass-assignment

Without any precautions Model.new(params[:model]) allows attackers to set any database column’s value.

Unbelieveable! PHP showed long ago that allowing a web request to auto-populate arbitrary members in app objects is just a spectacularly bad idea.

Even the canonical "Hello Rails" example code neglects to specify attr_accessible. http://guides.rubyonrails.org/getting_started.html#hello-rai...

The general attitude of Rails developers towards security here is really shocking. I don't think I could recommend anyone use Rails.


Er.. that's because there's nothing malicious an attacker can do with the mass-assignment vulnerability in the "Hello Rails" app?

Being able to change the :id or timestamps of the post isn't anywhere near the SQL injection vulnerabilities I've seen in many tutorials in other languages/frameworks.

I agree, though, I wouldn't recommend Rails to people who can't bother to read documentation.


Yeah I really feel for this guy. I don't blame his final solution, it was totally necessary. Issue #5228 is painful to read.


[deleted]



You can see a list of vulnerable versions of languages and fixes here:

http://www.ocert.org/advisories/ocert-2011-003.html


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: