The 14 lies taught to us by Psychiatry Professors in medical school - <AUTHOR> https://www.madinamerica.com/2016/01/duty-to-warn-14-lies-that-our-psychiatry-professors-in-medical-school-taught-us/ <comment><USER2> Crackpot alert. Just a bunch of strawmen myths concocted by an author who proceeds to commit the same scientific and logic errors he accuses the psychiatric establishment of making. All the arguments are of the form:

      a) The evidence for [supposed] claim X regarding issue Y is
         weak or wrong.
      b) It's wrong because of
        i) facial insight
      c) I'll tell you exactly why Y happens; it happens because
        i) unsubstantiated conjecture</comment>


X.Org Foundation Loses Its 501(c)(3) Status - <AUTHOR> http://www.phoronix.com/scan.php?page=news_item&px=MTQ0MzU <comment><USER2> _we 've Never filed returns since our first re-organization to the LLC in 2005. I was taken by surprize that the IRS hit us so rudely._

Wait, am I reading this right? They've never filed tax returns for the past 8 years, but it's "rude" for the IRS to do something about it?

<comment><USER3> > we've Never filed returns since our first re-organization to the LLC in > 2005.

I'm sure plenty of HNers can attest, you aren't exempt from taxes because you're an LLC. Plenty of us file our own LLC taxes, yet a 'professional' accountant in charge of a full organization thought it would be an OK business thing to ignore altogether?

Hopefully they find better representation, this is egregious.

<comment><USER4> The article never calls him a "professional accountant". He's the accountant of X.org, but in fairness, he's really a system engineer. He's never been an accountant anywhere: [http://www.linkedin.com/pub/stuart- kreitman/5/185/942](http://www.linkedin.com/pub/stuart-kreitman/5/185/942)

So he's really just an engineer that they gave the accounting work to. That probably explains quite a bit.

<comment><USER5> Not really. Most engineers I know are at least smart enough to know that if you don't pay your taxes for eight years you're going to have a problem with the IRS.

<comment><USER6> Yup, experience taught me that in 1/8th of that amount if time.

</comment></comment></comment></comment></comment><comment><USER7> > "The status of the 501c3 is lost because we (me) failed to file the 3 past > years' tax returns on time. Note that we've Never filed returns since our > first re-organization to the LLC in 2005. I was taken by surprize that the > IRS hit us so rudely. I've had little issues with my own returns and have > always found them to be reasonable and friendly."

I'm not an accountant, so I can't make a definitive statement, but this sounds like really poor accounting to me. Maybe that's too specific. It sounds like really poor management of responsibility and time _in general_. If you're not going to do the work, you should at least tell the person you are responsible to so they can replace you.

If I were his manager and I heard about this, I'd be double checking his work for quite some time to make sure he wasn't under-performing his role at his actual job too.

</comment><comment><USER8> There are two organisations that I fear:

\- Canada Revenue Agency (CRA)

\- Department of Fisheries and Oceans (long story)

I do not fear CSIS, the RCMP, or the CSE oddly.

The CRA (like the IRS) will make your life a living hell if you do not file properly. I was once a member of a not-for-profit organisation that was shutdown by the CRA due to the incompetence of its treasurer. The treasurer refused to file on a yearly basis under the guise that it wasn't necessary. It was difficult to remove the person as it was a three-person body that ran the NFP company with a directors board underneath to handle all other affairs--I had several years in the directors board.

Looking back it was a dumb structure but it made sense at the time at least.

Eventually the CRA got wind of our not-filing due to our status as a corporation under the Business Corporations Act in British Columbia, and thus seized all assets and shut it down. It recently rebirthed as a non-profit organisation (with people who do know what the hell they're doing), but it left a good friend of mine almost in a compromised financial state, another person unable to get a business of their own due to disqualification from tax credits, and another person (the treasurer themselves) ended up going AWOL.

Don't fuck with the government body that wants your tax dollars even if you don't have to do anything more than fill out a one-page form.

<comment><USER2> _The CRA (like the IRS) will make your life a living hell if you do not file properly_

If you don't file at all, sure. If you make the occasional mistake? Not really a problem -- the CRA just phones up and asks you to clarify the situation. I've had my tax returns fixed this way several times, without any penalties or even paperwork required.

<comment><USER8> Innocent mistake? Probably going to be fine. Not filing because you're clueless? Different story.

</comment></comment></comment><comment><USER9> Am I the only one to read that an Oracle employee has caused damages to an open source organisation ?

<comment><USER10> Pretty sure Hanlon's razor is in full force here. Oracle's done enough shitty stuff - we don't need to go out of our way to pin nonsense like this on them. (Besides, AFAIK, X.org is in no way a competitor to any part of oracle, so it's not like they care.)

</comment></comment><comment><USER11> Wait, what? There's an accountant and they've never bothered filing and now he's distressed because normally the IRS is super helpful?

Fire that accountant, get someone who's going to take it seriously.

<comment><USER12> You can't fire a volunteer.

<comment><USER13> As someone who's been a volunteer coordinator for an organization using ~550 volunteers a year, yes, you can fire a volunteer.

</comment></comment></comment><comment><USER14> Kinda sounds like they'd be much better off under the umbrella of another organization anyway.

</comment><comment><USER15> I like that their minutes are irc logs

[http://www.x.org/wiki/BoardOfDirectors/IrcLogs/](http://www.x.org/wiki/BoardOfDirectors/IrcLogs/)

</comment><comment><USER16> > _X.Org has lost funds in the past due to banking issues, PayPal issues, and > an assortment of other actions due to either delayed action or inaction on > the behalf of the accountant and the board._

That's why we need Wayland and Mir, right?

</comment><comment><USER13> "Per the IRC meeting minutes, the board is now thinking about having the X.Org Foundation join an umbrella organization like the SPI, the Apache Foundation, or other free-software-focused organizations for riding some benefits like a non-profit status while having to deal less in paperwork and other managerial matters."

I do hope that any organization that considers offering fiscal sponsorship or controlling X.Org entirely requires a full comprehensive audit before moving forward. "Deal[ing] less in paperwork" is something you get to do when your finances are in good condition, not when they're a wreck.

<comment><USER17> I think it more likely the X.Org Foundation would just dissolve. The licensing ensures that moving the project is a simple matter of the individual developers choosing to operate under a different banner. No link needs to be established between the foundation and SPI/Apache/whatever.

The only question is where the X trademarks might be. If they're still with the Open Group, no problem. If they got transferred, it's a little more complicated.

</comment></comment><comment><USER18> I want to see something like "The people responsible for this utter incompetence have been sacked. And the people responsible for sacking those people responsible for this utter incompetence have _also_ been sacked."

</comment><comment><USER19> Someone forgot to google basic stuff. [http://www.nonprofitrisk.org/library/articles/How_to_Lose_Yo...](http://www.nonprofitrisk.org/library/articles/How_to_Lose_Your_Tax_Exempt_Status.shtml)

</comment><comment><USER20> On the surface, this seems like a tale of incompetence but the board seems to have taken it in stride, is considering joining a larger organization and wondered why they had not made the move sooner. In context, this is much less of a story than it appears.

[http://www.x.org/wiki/BoardOfDirectors/IrcLogs/2013/08-22/](http://www.x.org/wiki/BoardOfDirectors/IrcLogs/2013/08-22/)

</comment><comment><USER21> Wow what a bunch of morons

</comment><comment><USER22> LOL

</comment><comment><USER23> Here is an example where the IRS has gone after a legitimate non-profit organization. And yet how many organizations maintain non-profit status as a way to avoid higher taxes?

<comment><USER24> No, it's not.

When you're a non-profit, you file paperwork with the IRS (a form 990 or 990-EZ) that details your income, expenses, officers of the corporation, highest paid employees/contractors (especially ones receiving over $100k), programs (and their accomplishments), etc. You don't actually _pay_ any taxes, but you do "file taxes with the IRS". The data in that form 990 is used to back up the fact that you are legitimately a non-profit corporation serving the public interest.

If a non-profit isn't filing their form 990 every year, they don't look legitimate at all. They probably _aren 't_ legitimate if they're not filing a form 990.

The article mentions that they hadn't done any major fundraising drivers or solicitations for donations from major corporations. If they weren't filing the form 990 for years, that's no surprise, since the form 990 is public information that any major donor would know to look at (or to look at a summary or analysis of the information via guidestar or something like that).

Look at the summary of this information and ask yourself if you'd donate $1 after you read it: [http://www.guidestar.org/organizations/26-4691413/xorg- found...](http://www.guidestar.org/organizations/26-4691413/xorg- foundation.aspx)

<comment><USER5> Wait. So they didn't even actually owe any money? All they had to do is send the IRS a form (and potentially an EZ one at that) once a year?

I wouldn't consider myself litigious but it sounds to me like there is a legal case against the X.org board and this "accountant".</comment></comment></comment>


Rails 3.1 shipping with CoffeeScript - <AUTHOR> https://github.com/rails/rails/compare/9333ca7...23aa7da <comment><USER2> Normally, I'm skeptical of "change the syntax and your life will magically get better, no matter how headachey interacting with the rest of the world will become", but then Thomas showed me Sass and it was lifechanging. (After you've gotten around Sass, CSS looks like Assembly code to a web programmer. I mean, sure, you could write it... but you'd need a damn good reason to. If you haven't tried it yet, make yourself an excuse for a weekend project -- it will make your life better.) Has anyone found CoffeeScript to be lifechanging?

<comment><USER3> I'm using LessCSS, not Sass. And I wouldn't consider Sass life changing.

        CSS looks like Assembly code ... you could
        write it... but you'd need a damn good reason to

I think LessCSS is better because it keeps syntax compatibility, and you can take an existing CSS file and then gradually improve it. It's also, well, simpler.

That said, I can live without the improved CSS features. When I'm working on design-stuff, what really gets in my way is the lack of talent.

As for CoffeeScript, the language looks really interesting, but IMHO, it's just another tool that you need to add to an already HEAVY stack, another tool that breaks and needs special care from time to time, another tool to be learned.

And I'm not sure that CS is so life-changing. Does it fix browser incompatibilities for you? Does it optimize Javascript to run faster? Is it easier to debug? Does it have a kick-ass library that's optimized for it?

IMHO, syntactic sugar (without new paradigms) doesn't get you further than changing your text-editor / adding some newer snippets to it for the boilerplate.

<comment><USER4> Can you explain why the syntax resembling CSS while having a different meaning is a good thing? I sincerely don't understand why so many people see that as a benefit. The syntax isn't actually _compatible_ with CSS, in the sense that you can write Less or SCSS and a layout engine will be able to parse it and come out with a halfway correct result. It just _looks like_ CSS.

<comment><USER3> The syntax of LessCSS is a superset of CSS, meaning it maintains backwards compatibility. It doesn't just look like CSS, it is CSS but with additions.

That means you can use that CSS file provided by the designer directly, and gradually improve it, or you can copy/paste examples given all across the web.

</comment></comment></comment></comment><comment><USER5> If I'm reading it correctly (and I'm not a Rails guy so I may be mistaken) they're making CoffeeScript the default scripting language for Rails. This strikes me as a really unfortunate decision.

There's a world of difference between fully supporting something and making it your default. Making newcomers jump through hoops to get regular javascript instead of CS (another language in which they may not be familiar) just seems like a poorly thought out plan. As someone pointed out in the GitHub comments; this is just like making HAML and SASS the defaults over HTML & CSS.

I'm not saying anything negative about these libraries; I'm certainly not an authority on them and can't speak to their effectiveness. However, the net result of a default change such as this one is reduced accessibility to newcomers.

Of course, if I'm reading it wrong and this is really just adding support for CoffeeScript to Rails, then disregard everything I just said. :)

Edit: well, don't disregard it--remember it for the future!

<comment><USER6> Totally agree - and the HAML/SASS argument is perfect. We talk a lot about web standards and doing things that are "native" to the web, but abstracting things like HTML/CSS/javascript (by default) don't fit with that mindset.

I like CoffeeScript, and it does feel Rubyesque, but I just don't support it being the default.

That said, I'm sure a core member will post about the decision, and I almost hope they convince me otherwise. I do really like CoffeeScript, and patio11's comment about HAML/SASS is a good one.

<comment><USER7> Why doesn't it fit with the mindset? Is a program written in C less "native" because you didn't write it in bare machine language?

<comment><USER5> I find this argument totally bogus (at least, currently). 30 years ago; there were often very good reasons to write assembly over C when working on performance sensitive code. Before that, there were good reasons to write native binary for performance sensitive areas. As assemblers (and subsequently C-compilers) matured, they are often able to generate more efficient code than the vast majority of people could write by hand.

I'm not at all convinced that CoffeeScript has yet matured to the point where it can generate better javascript than any qualified JS developer. Now, it may get there some day--but I don't believe it's there yet.

Moreover, in this case, you're introducing an additional layer of complexity and source of errors--the compile time of CoffeeScript. Maybe it doesn't compile. Maybe it compiles such that the Javascript doesn't do what you intended the javascript to do. Maybe the javascript breaks in some browser environments and there's no way to cleanly work around that problem in CoffeeScript.

Again, it's not that I'm against CS--I'm simply against it being the default. It's an additional can of worms that I don't think the majority of Rails developers are ready and / or willing to open.

<comment><USER8> Actually, CoffeeScript does generate more efficient code than the vast majority of JavaScript developers write by hand -- that's one of the goals. There are a couple reasons why this is the case, for example:

Do you tend to write your "for" loops with an "each" ? If you're using "$.each", "_.each", or "[].forEach", your loops are running a good bit slower than they could be. This CoffeeScript:

        for item in list
          item.marked = true

Generates this JavaScript:

        var item, _i, _len;
        for (_i = 0, _len = list.length; _i < _len; _i++) {
          item = list[_i];
          item.marked = true;
        }

... where you have a nice length-cached loop that runs about as fast as JavaScript is capable of.

Similarly, lots of JS developers avoid using prototypes because they're such a pain in the ass to type out manually -- preferring to manufacture objects via closures instead. This has a _huge_ runtime and memory cost. CoffeeScript's "class" keyword makes it easy to work with JS prototypes effectively, without having to type out "Klass.prototype.method = function ..." all the time.

<comment><USER5> You're using a comparison between an each method that takes a callback and for loop--that's a pretty weak comparison to draw as the implications are well- known. Moreover, in two of the 3 cases, they're library methods that aren't part of the Javascript language so the concept is a bit disingenuous. In this case, you're comparing two different types of syntactic sugar and saying that one produces better code than the other--far from making a case that for something more complicated than a single for loop, CS can produce higher quality code than an engineer writing javascript.

<comment><USER4> The point is that people writing real applications often avoid JavaScript's for-loop in favor of each-loops just because the latter are so much more readable and less bug-prone, and ease of reading the code is worth a little bit of performance in most people's minds. CoffeeScript gives you the readability without the performance tradeoff.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> Really? Everyone seems to be freaking out as if Rails will no longer serve your standard JavaScript files again. Rather, by default, the generator spits out CoffeeScript templates. If you don't want to use CoffeeScript, don't use CoffeeScript and write regular JavaScript instead.

Will this confuse new users? Probably not, since the template file is going to include instructions and an explanation. Will the change break any existing sites? I really doubt it.

In the end, encouraging a better default language is a great change. New users are already required to learn to write ERB/Haml to make a Rails app; this is no different, and easily ignored if you're not interested.

<comment><USER10> Don't you feel it would have been more prudent to start by bundling CoffeeScript support and then changing the default in a later version?

It seems like an overly aggressive goal to do both things at once.

<comment><USER11> One of the core strengths of Rails is that it is highly opinionated. That's why people talk about doing things "the Rails way". You can always change things if you like (a lot of people change the views to Haml, UJS library to jQuery, and test framework to Rspec), but it assumes sensible, working defaults.

<comment><USER10> Excellent point. Not being a Rails guy I sometimes forget that being opinionated is considered one of its strengths.

If any framework can get away with doing something like this, it'd be Rails.

At any rate, I'm excited about anything that increases CoffeeScript adoption.

</comment></comment></comment></comment><comment><USER12> Calm down boys and girls, its _opinionated software,_ remember? That's kinda rails' raison d'être.

I'm just disappointed they didn't have the balls to make HAML the default templating engine.

<comment><USER5> And the HN crowd is an opinionated crowd--just because Rails is opinionated doesn't mean that we can't disagree with it's opinions. :)

Edit: Rails is also about "sensible defaults." I'm not sure that making CS the default is really the "sensible" choice.

<comment><USER12> You raise a good point. Good thing rails is so modular since version 3, replacing bits of it like this is completely trivial.

Personally I'm more interested in the real 3.1 goodness: flushed responses. The implementation is fascinating.

[http://yehudakatz.com/2010/09/07/automatic-flushing-the- rail...](http://yehudakatz.com/2010/09/07/automatic-flushing-the- rails-3-1-plan/)

</comment></comment></comment><comment><USER13> Rails has a history of doing things with JavaScript that many developers disagree with. RJS is a prime example, where you would write Ruby code that generated JavaScript that assumed you used the Prototype.JS framework. And it wasn't until Rails 3.0 we got view helpers that didn't inline JavaScript.

So in my opinion we had one minor version with JavaScript I could relate to, and now we're back to where we were. But I don't mind, I'll just avoid using it.

<comment><USER14> Yeah RJS was a clusterfuck, but hindsight is always 20/20. At the time it was a new idea that was being explored that just didn't pan out. The Prototype dependency dates back to 2004 when _no framework had AJAX support_ , and the code just started getting stale from there and didn't get any attention until Rails 3.

Anyway, I agree that Rails core has traditionally been far from the savviest of JavaScript developers, but the nice thing about Rails 3 is that they've finally achieved reasonable modularity with all the components, so there's not much pain in getting around Rails opinions anymore.

As for CoffeeScript, I'm still on the fence, but it's clear that Jeremy Ashkenas knows his JavaScript, and his work is not done out of ignorance, so I'm glad for it to get more exposure.

<comment><USER15> I guess I'm just amazed that they (rails core) haven't learned from the RJS mistake. These 'fads' to get around JS syntax are terrible as standards.

What is so wrong with writing idiomatic, unobtrusive JS? I personally don't care for JS syntax (compared to the beauty of ruby and haml), but that's life... JS syntax my be ugly, but it can be written elegantly.

<comment><USER14> What's there to learn from the RJS mistake? RJS was fucked because it attempted to pretend JS didn't exist and muddled the separation of concerns between client and server-side; CoffeeScript makes no such mistake.

CoffeeScript is much more like HAML/SASS in function, and while there are arguments against those in some environments (like if you need to hire a lot of designers without a dev mentality or environment), they've been proven to be very effective in practice, and I'm quite sure CoffeeScript will be the same.

</comment></comment></comment></comment><comment><USER16> I don't understand what the big deal is here. All this patch does is make a application.js.coffee instead of application.js, and add support for actually generating JS from this.

One of the recurring arguments I've seen is that this change will make it harder for people to get started with Rails. I really don't understand how this is the case, because if you understand what public/javascripts is for and what javascript_include_tag does, you should also be able to write normal javascript all day long. Hell, you don't even need that, adding your own HTML to include a script into the page works too (as always). There is no need to write CoffeeScript if you don't want to/don't know how to; write all the js you want.

In reality, the only outcome of this will be more people discovering and learning CoffeeScript. I seriously doubt this will discourage anyone from learning Rails. If it does, they were bound to find something that discouraged them eventually.

</comment><comment><USER17> By default, really?

I don't like the idea neither I'm a Rails developer, but I think that this will increase the learning curve.

Let it be just a choice.

<comment><USER18> Choices are kind of antithetical to rails's core philosophy of convention over configuration.

<comment><USER11> I think it is _requiring_ the user to make a choice that is antithetical. You can change pretty much all of the defaults in Rails.

<comment><USER18> Agreed, and that is indeed what I meant. Coffeescript has always been a choice in the sense that I could download the compiler and use the output in my rails project.

</comment></comment></comment></comment><comment><USER19> Am I the only one who thinks they are propping up their successor? If you're going to learn Coffeescript, why bother with Rails at all? Just write cs both server and client side. When some one builds a mature node.js MVC framework, Rails is going to be in trouble.

<comment><USER20> Express is on the right path. I picked it up for the first time last weekend and liked it.

<comment><USER19> It's not MVC though, right? I prefer something more lightweight like Express/Sinatra, but a lot of people are in love with MVC.

<comment><USER12> It's pretty damn MVC. Just because it doesn't make you define classes with 'Controller' in the name doesn't mean it isn't MVC.

<comment><USER19> I'm with you now. The example on the homepage isn't MVC, but I see from the further documentation that you can incorporate views. Nice.

<comment><USER20> Yeah, and the default template language (Jade) is a lot like HAML. In fact, I think there's HAML/SASS plugins, but I'm pretty new at Express so don't take that as gospel.

</comment></comment></comment></comment></comment></comment><comment><USER21> I have no problem with Rails supporting CoffeeScript out of the box, as the abstraction is really good at showing the power of Javascript and not emphasizing its bad parts.

(And, come on, list comprehensions in Javascript? Awesome.)

No one is taking away your raw Javascript, it'll work just fine. This just makes it easy for people to use CoffeeScript when they first build an app. It's more of a statement than anything else.

<comment><USER19> I disagree. If someone is starting Ruby for the first time, the last thing they want is to be forced to learn another new language on top of learning Ruby. Then mix in Sass and Haml, and you're giving them a good reason not to even bother.

<comment><USER21> Who's forcing? Javascript will work just fine.

<comment><USER22> It's a valid point, though. "So, it's your first Rails app, eh? Do you know Ruby? No? Do you know HAML and SCSS and Coffeescript? No? OK, step 1 in this new framework that you know nothing about is to figure out how to change the defaults."

This change definitely has the existing Rails community in mind.

Or as I told my friend: "Given that you already know how to create a blog in 5 seconds, how can we _also_ make you not have to use semicolons in your JS?"

<comment><USER23> Ok but you don't have to 'change' any 'defaults' to use regular plain javascript. You just _don't_ write coffeescript. The new 'default' is to include the coffeescript dependency and generate script stubs with a .coffee extension. Write a js file and all will be as it was, with a slightly fatter bundle.

</comment></comment></comment></comment></comment><comment><USER24> "Yes, it's true, Rails 3.1 is going to ship with CoffeeScript and SCSS in the box for use with the new asset pipeline. It's bad ass." @dhh

<http://twitter.com/#!/dhh/status/58207700672200704>

</comment><comment><USER25> I love this kind of stuff, but at the same time, it presents a huge problem for software maintainability and building a scalable development team.

When I go to hire somebody it is a near certainty that they are very proficient with CSS. Sass? Probably less likely. For the sake of argument let's say I could find somebody proficient in Sass, what about all the other boutique technologies I have in my product?

At some point your product can devolve into an opaque and indecipherable hodgepodge of 'cool stuff'. Sometimes it really is better to keep things simple, even though you are causing yourself some personal pain.

<comment><USER26> Have you actually looked at SCSS? This is a good start: <http://sass- lang.com/>. It's a superset of CSS. Very easy to learn.

Also, this "huge problem" you talk about is the same that people used to argue against Ruby/Rails with. Hey, everyone knows Java/Struts -- let's just keep it simple for hiring drone purposes!

<comment><USER25> Yes, I have looked at it, and I agree that it is very convenient that it is a superset of CSS. The problem still remains once I become deeply entrenched in SCSS it will have drifted pretty far from plain CSS.

The argument about rails vs struts may have been similar, but I don't think the comparison holds water. Web development frameworks are different than markup and stylesheet standards. We have standards that define HTML, CSS, Javascript, etc. There is no one standard that governs MVC frameworks.

So while I would expect any competent web developer to know HTML, CSS, and Javascript, I would not expect them to be competent in my particular choice of web framework since there is necessarily less standardization in that area.

My core point is that you need to exercise some caution before jumping into all these different technologies with both feet. There are considerations that extend beyond your personal coding pleasure.

<comment><USER25> Edit:

Also, my point was not to argue against one single technology. I am arguing against building an application with 20 different gee-whiz packages that causes a nightmare when training new developers.

It is an effective way to make sure you can never be fired from your current job though.

<comment><USER27> I'm in agreement. I'm already 10x faster with HTML and CSS so it defeats the point switching to an abstraction language such as Haml or Sass.

<comment><USER28> try haml for two weeks, you will not go back.

</comment></comment></comment></comment></comment></comment><comment><USER29> Just wondering is there a framework like Rails written in JS? Using JavaScript and V8 on the server side makes a lot of sense since V8 is much faster then the Ruby interpreter..

<comment><USER30> Express is fairly rails-like (for node.js).

<comment><USER31> Maybe a fairer comparison is Sinatra? That is, Express is a lot slimmer than Rails and works via a DSL based around the HTTP verbs[1].

Another JS framework to look at is Backbone[2].

[1] <http://expressjs.com/guide.html#routing>

[2] <http://documentcloud.github.com/backbone/>

<comment><USER30> That would definitely be a fairer comparison, but he was asking for 'a framework like rails'; Express is the closest.

</comment></comment></comment></comment><comment><USER19> I converted some of my javascript to coffeescript last night, and the one thing that I still feel weird about is not having void functions. I have been instead ending those functions with null, but it feels weird. Is it not the "coffeescript way" to have void style functions at all? I should try to convert these to expressions?

<comment><USER8> Ideally, every function you write returns a meaningful value ... even if that function is used for nothing more than side effects, and that value is just "true", or "null".

To create a void function in CoffeeScript, just add a naked "return" as the final line.

        sideEffecty = ->
          do something
          do somethingElse
          return

</comment></comment><comment><USER32> I'm a Java/Scala/Ruby developer at heart and I have very little input into front-end development.

While I've written some javascript, I wouldn't say it's very good and I'm not really that well versed in the features of Javascript either.

Would you say it's better to

a) Learn to do Javascript properly then learn CoffeeScript b) Learn CoffeeScript and forget about Javascript?

<comment><USER33> CoffeeScript's golden rule is "It's just JavaScript". You need to learn JavaScript (or, more importantly, understand JavaScript) before moving on to CoffeeScript.

JavaScript is a weird language, especially if you're coming from a backend language (even dynamic ones like Ruby). Without understanding why things happen in JavaScript (such as: a block doesn't create scope; functions/lambdas do), you won't understand why things are happening in CoffeScript, either.

Debugging is CoffeeScript's biggest weakness; you'll often have to dig into the JavaScript it outputs in order to fix bugs, and (for the moment) you won't necessarily know what line of CoffeeScript maps to which line of output JavaScript. ( I believe this is actively being worked on: <https://github.com/jashkenas/coffee-script/issues/558> ).

Here are some good resources that have helped me:

<http://yuiblog.com/crockford/> <http://eloquentjavascript.net/contents.html> <http://ejohn.org/apps/learn/#1>

<comment><USER32> Hey thanks man, that's cleared things up for me!

</comment></comment></comment><comment><USER34> If nothing else, the core team's decision to make it default has piqued my interest in learning CoffeeScript. Anyone know of any good resources off-hand to start digging in to it?

I assume their website is the best place to start... (<http://www.coffeescript.org>)

<comment><USER35> Yep, just play around with the "Try CoffeeScript" interface they have right on the site. You can actually get pretty far with it right there. Open another window for reference, and start hacking away. Watching the transformations as you code is really interesting.

</comment></comment><comment><USER36> Disclaimer: I don't use Rails or Ruby.

Wouldn't including CoffeeScript create a new dependency on Java (to run in Rhino or what not) or Node.js? How is the CoffeeScript compiled to JavaScript if this is not the case?

</comment><comment><USER37> I don't like that its the default, it seems like something the 37signals guys like (pow was written in coffee script) so "goshdarnit! all of you have to use it".

Yes I know, you can change it.

Yes. I know its impact is probably minimal if I don't care for it.

But, I _really_ would like to see a strong argument made for why this should be a default for Rails, especially when SASS and HAML, which have wider adoption and facetime with the Rails community aren't the default (and I think, rightfully so)

</comment><comment><USER38> Is Rails 3.1 going to depend on having both a ruby interpreter and a JS interpreter (presumably node?) capable of running coffeescript installed?

<comment><USER39> The coffee-script gem (<https://github.com/josh/ruby-coffee-script>) uses ExecJS (<https://github.com/sstephenson/execjs>) to invoke the CS compiler. Rails 3.1's asset pipelining system will use these gems by way of Sprockets 2 (<https://github.com/sstephenson/sprockets>) to compile and serve CoffeeScript to the browser.

If you're on Windows or Mac OS, ExecJS will use the JS runtime already installed on your system (Windows Script Host or Apple JavaScriptCore). You can also install a gem like therubyracer (V8 for MRI, available on Heroku) or therubyrhino (Rhino for JRuby) for faster compilation. And ExecJS can use Node.js or Spidermonkey if they're installed too.

<comment><USER40> I've heard a little about it, but is there any documentation anywhere about this new asset pipelining system in 3.1? You seem well-informed about it.

</comment></comment></comment><comment><USER41> Rails 4.1 will drop Ruby and change the default language to Javascript. It's more DRY.

</comment><comment><USER42> That's fantastic news! I can't wait for coffee to become widespread.

</comment><comment><USER43> Did not see this coming. IMHO one problem does not kill another problem. Dont see CS as a solution at all.

</comment><comment><USER44> It's interesting that rails is headed toward whitespace significance in all its file formats, yet the most apparent difference between ruby and it's main rival Python is that whitespace is not significant.

Between yaml, sass (although not scss), haml, and coffescript, is the next step a version of ruby getting rid of end statements in favor of whitespace? I've often dreamed of such a thing.

      module Foo
        module Bar
          class Fubar
            def boom
              p "I like monkey patches"
            end
          end
        end
      end

Ick!

<comment><USER45>
      > It's interesting that rails is headed toward whitespace
      > significance in all its file formats, yet the most apparent
      > difference between ruby and it's main rival Python is that
      > whitespace is not significant.

That may be the most obvious difference at first glance, but it's also the most superficial. Idiomatic Python and idiomatic Ruby will be written completely differently.

</comment></comment><comment><USER46> i know what i'm using for my next project now.

</comment><comment><USER47> There is going to be some overlap of concerns once all of Sproutcore has been integrated into JQuery.

</comment><comment><USER48> Isn't CoffeeScript bad for perf on mobile because, for example, its extensive (over-)use of closures?

</comment><comment><USER49> On that note, why bother writing Ruby, just have CoffeeScript full-stack with CS compiling to Ruby. That way developers don't need to deal with 2 languages.

</comment><comment><USER50> IMHO, this smells like a marketing move -- in the same way that merging Rails and Merb was a (brilliant) marketing move. If Rails wants to stay "cool" (and if you believe that "cool" is a zero sum game), then Rails has to stay buzzword compliant. Yes, Rails has a lot of support but the Rails team isn't stupid and they know, by definition, that it's just a matter of years before Rails itself becomes something of a relic -- one kids know of only because their daddies and mommies used to use it.

<comment><USER14> You're stuck in 2004, when DHH poked Java in the eye to get attention; _that_ was a marketing move.

It's been years since Rails had to do any marketing. The Merb merge was about bringing incredible ideas into Rails, and it shows in Rails 3. Similarly, CoffeeScript is being defaulted because DHH believes it's a better way to write JS. He has better things to do than make contrived technical decisions to stir up controversy. If you disagree than I pity your paranoia.</comment></comment>


Chris Seaton on Massively Improving Ruby Performance with JRuby+Truffle - <AUTHOR> http://thepracticaldev.com/chris-seaton-making-ruby-fast <comment><USER2> > I was actually handed the project idea as an intern task.

"Hey Dave, that intern kid starts today. Shall just I send him to get coffee and donuts?"

"Nah, I was going just to ask him to make Ruby massively faster, something many super-smart people have been trying to do for years with no success."

"Ok, that should keep him out of our way at least."

</comment><comment><USER3> This is interesting. I really do like Ruby and have used Rails as my go-to on a lot of projects because of simplicity and the general support of the ecosystem so if Ruby could maintain its great experience while getting way better under the hood it could mean great things for the language.

<comment><USER4> Yeah I think this is very exciting and this sort of development could be of great importance for programming in the future. There are certainly more possible complaints than performance with Ruby but when you take a top layer that people are generally pretty satisfied with and make it much better under the hood, you are going to have a big impact.

This idea is what made me excited to read about this and reach out to Chris to conduct this interview.</comment></comment>


Ron Paul: Legalize Online Gambling – And Don't Tax It - <AUTHOR> http://www.ronpaul.com/2010-07-20/ron-paul-legalize-online-gambling-and-dont-tax-it/

<comment><USER2> Truthfully; I will never understand why the government feels the need to police what people do that only impacts themselves.

Don't want to wear a seatbelt? Fine by me; it's your life, not mine! Want to gamble online? Fine by me; it's your money, not mine!

What's sad is that people like Ron Paul, who TRULY believe in limited government, are still seen as on the political fringe.

<comment><USER3> > Don't want to wear a seatbelt? Fine by me; it's your life, not mine!

There are two problems with this. First of all, not wearing a seatbelt increases the risk of serious harm or death to other people. If you have to do any sudden turning, such as swerving to avoid an obstacle, a driver without a seatbelt is much more likely to lose control and crash--it's much harder to control a car when the driver is not strapped in in front of the steering wheel.

Second, even ignoring the increased risk a seatbelt-less driver poses to others on the road, he poses a bigger risk of injury to himself in an accident. This burdens the rest of us in several ways. The more severe the accident, the longer it is going to take to get it investigated and get the road cleaned up and opened allowing the rest of us to resume travel. If the injured person can't afford to fully pay for his own health care, we end up paying--not even Ron Paul advocates just rolling an injured and financially deficient driver off the side of the road and letting him die and letting the animals clean up.

> What's sad is that people like Ron Paul, who TRULY believe in limited > government, are still seen as on the political fringe.

He believes in limited FEDERAL government.

<comment><USER3> Could the down voters please explain themselves?

<comment><AUTHOR> I down voted you because the parent post was below zero and yours not. Usually I don't down vote comments which I disagree with but in this case I just wanted to counter balance whoever down voted the parent comment. I wouldn't have down voted you otherwise even though I disagree with you.

Now, let me explain why I disagree with you.

> Don't want to wear a seatbelt? Fine by me; it's your life, not mine!

What the guy really means is that he doesn't think government should protect people from themselves. The seatbelt example might be a bad one. But even then, I strongly doubt that wearing your own seatbelt can save someone else's life. I'd be curious to know how many lifes were saved because the driver was wearing seatbelt (except his own).

>> What's sad is that people like Ron Paul, who TRULY believe in limited government, are still seen as on the political fringe. > He believes in limited FEDERAL government.

Ron Paul is clearly a libertarian and a libertarian believes in limited government, whatever the kind of government.

</comment></comment></comment></comment><comment><USER4> A headline with parts that will piss off the right and the left, respectively.

<comment><USER5> The reason Ron Paul will never win a Presidency. It's too bad though. Granted some of his views are counter cultural and thus risky but I'd say it's a risk worth taking.

At least in the end you could say we tried. Right now, I guess we can say opps.</comment></comment>


Shutting down Iranian government websites is cyberwarfare - <AUTHOR> http://trueslant.com/level/2009/06/14/is-shutting-down-iranian-propaganda-websites-cyber-freedom-fighting-or-cyber-terrorism/ <comment><USER2> I urge readers to consider the importance of civil disobedience in the face of overwhelming abuses of power by the Iranian government. I'm not advocating any one particular method, but his arguments are weak. Abusers of freedom may cry foul, but that doesn't make it so.

<comment><USER3> What makes it right for you to take down an Iranian government website, but wrong for someone in Iran to take down a US government website, or for someone in China to take down the Dalai Lama's website?

<comment><USER4> Because when you attack something, you are attacking the people that hold it?

In the United States, every citizen owns part of every government website, so to attack one is to attack us all.

In a sham government, it's just some assholes who pretend to represent the people that own the buildings and websites, and they do so by use of force. To attack those websites is to attack those people, and some people deserved to be attacked.

I have no obligation to view the legitimate property of a democracy in the same way as a bunch of thugs ruling a country by force of arms. They are not equivalent.

I'm not advocating one way or another -- in fact, I'm opposed in this instance. But your question deserved an answer. And it didn't look like you were able to come up with one.

<comment><USER3> > But your question deserved an answer. And it didn't look like you were able > to come up with one.

Actually, my question was rhetorical, and your answer was arrogant.

> In a sham government, it's just some assholes who pretend to represent the > people that own the buildings and websites, and they do so by use of force. > To attack those websites is to attack those people, and some people deserved > to be attacked.

You have no idea whether or not the Iranian government is legitimate, all you know is what you've read on a couple of western websites. To take the higher moral ground based yon your own sense of morality (which may be different to that of those people your purport to defend), and enforce your beliefs by force (by attacking a government website) makes you no better than the 'assholes' you claim to be defending against.

<comment><USER4> Your question might have been rhetorical, but it was inane. Not everything is the same. To just throw out some nonsensical relative moralism and expect it to float in a room full of critical thinkers seems a little far-fetched.

 _You have no idea whether or not the Iranian government is legitimate_

It's not for me to decide. It's up to the Iranians. It's only up to me to decide how to deal with their public policies that effect me. The Iranians are perfectly content going door-to-door, gathering up satellite dishes and televisions, imprisoning their opposition, shooting demonstrators -- all of those things that dictatorships do. And guess what? I am perfectly happy letting them. As are you, it seems.

But some folks have higher moral standards than you or I, and to them, injustice of this nature requires action. There's no higher moral ground that I'm taking, nor you, for that matter. I'm simply pointing out that there IS a higher moral ground than "everybody does it, and who are we to judge?" You might not like it, but it exists nonetheless.

<comment><USER3> _Your question might have been rhetorical, but it was inane._

I didn't think it was, but I'm once again surprised by the arrogance and self- righteousness of your statement. I thought that this kind of bombast had no place here, but perhaps I'm mistaken?

 _in a room full of critical thinkers_

I take it you're including yourself from that group, but that I'm not a part of it? Or at least that's the implication I'm getting from your comment.

 _nonsensical relative moralism_ / _You might not like it, but it exists nonetheless._

Err, no - it was actually a genuine question. When the Chinese hijack the Dalai Lama's computer network, they genuinely think that they are in the right. But you might disagree with that; what makes your right truer than theirs?

This type of question has confounded philosophers for thousands of years. It's not an easy problem to solve, and is fraught with contradictions. The best we've arrived at is that principles like 'equality' are enshrined in our constitutions; each of our opinions are considered to have equal importance, and that includes the opinions of the Chinese and the Iranians. You seem to show no awareness of this, which makes me think that your bombast and self- righteousness may be misplaced.

You may be right that there is such a thing as a higher moral ground, and you may even be right that it applies here; I think it would be difficult to define in an off-hand 10 line comment, but I'd be glad to read your attempt should you care to try.

<comment><USER4> No bombast intended. Chill out.

This type of question has NOT confounded philosophers for thousands of years. Moral relativism -- the idea that everything is just about the same, depending on how you look at it --as a popular meme is very recent in the historical record.

Look. It's lazy thinking, that's all. I'm sorry to have to say that. Critical thinking requires of you to make moral choices. So make some. I've made mine in the matter. Nobody is saying your thinking skills or any better or any worse than anybody else. I'm just asking you to use them.

If you're still having problems, try a little Kant: only do those things that you would want the rest of the world to do. If your code says it's okay to attack sites because you "think you are in the right", whatever _that_ means, then you should expect everybody to do that. If your code involves other things, then formulate your rules and stick to them. But don't sit around saying it's just all kind of the same. That's the starting point: without your brain analyzing it, yes, it's all kind of the same. But that's why you have a brain; its to tell the difference.

Look I'm sorry if I hurt your feelings or was rude or something. I really am. But there's an important point here. So I'll bow out now and perhaps the next time you hear it you'll get it.

<comment><USER3> _No bombast intended. Chill out._ / _perhaps the next time you hear it you'll get it._

Contradictory?

 _Look I'm sorry if I hurt your feelings_

You didn't - but you still didn't answer my question. What makes it OK for you to hijack Iranian government websites based on hearsay you read on the internet, but makes it bad for the Chinese to hijack the Dalai Lama's computers?

Now that this story is a couple of days old, there seems to be a little more perspective on this:

<http://news.ycombinator.com/item?id=660169>

This is an article explaining how an echo chamber effect through Twitter and the net _may_ have convinced people that the election was stolen, even though it _may_ not have been. The situation isn't black and white like you painted it; things rarely are.

I don't suppose you'll even consider that you might be wrong, but it would certainly be nice if you had gone about it with a little less conceit.

<comment><USER4> Okay. I'll play along as long as this isn't getting emotional.

 _What makes it OK for you to hijack Iranian government websites based on hearsay you read on the internet, but makes it bad for the Chinese to hijack the Dalai Lama's computers?_

Perhaps you missed the several times that I said I did not make that choice. Let me be clearer: I do not think that is right for me to do in this case, and I do not support doing it.

What do you mean by "right"? The point I was making is that _you have to make the choice_. Life is something you participate in. You have an obligation to make the choice. Quite frankly I don't care which one you pick. I chose not to support hacking their sites. You may choose otherwise. Or not. Instead of just asking "what makes it OK?" perhaps the better question is "How is this different from X for me?" It's your job to figure out your own rules; not go around saying the problem is insolvable. That's whacked. Nobody is looking for a universal solution. What's required is a personal choice. Leave ultimate truth to the philosophers.

<comment><USER3> _Perhaps you missed the several times that I said I did not make that choice_

I didn't miss you saying that, but I also noticed that you replied to my original post with an unequivocal answer - so you don't support doing it, but you also think it's OK? Did I understand that correctly?

In any case, I should perhaps have been clearer:

What makes it OK for _someone_ to hijack Iranian government websites based on hearsay _they_ read on the internet, but makes it bad for the Chinese to hijack the Dalai Lama's computers?

I wasn't talking about you in particular - you did seem to defend those that carried out the attacks. You still haven't answered that question.

 _Moral relativism as a popular meme is very recent in the historical record_

Who talked about moral relativism? Not me. The point of my question was twofold:

* One person's right is another's wrong, and that arriving at some sort of greater truth is something we (as a civilisation) haven't been able to figure out yet. This has nothing to do with moral relativism as far as I'm concerned, and I still don't think it's an easy question to answer.

* We only have partial, incomplete and possibly biased information about what's going on in Iran, the same way that Chinese DDoSers' understanding of Tibet is probably heavily skewed by the information they have access to.

That's why I don't think it's OK for us to DDoS Iranian government sites, and then complain about Chinese hackers doing it to anyone else.

 _Life is something you participate in. You have an obligation to make the choice._

I think it's perfectly fine not to have a strong opinion about something that you don't know enough about.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Marines Use 3-D Printer to Make Replacement Part for F-35 Fighter - <AUTHOR> https://dod.defense.gov/News/Article/Article/1498121/ <comment><AUTHOR> More or less a POC, but an interesting one. A small piece of plastic wasn't available other than as part of a complete assembly, so they printed it.</comment>


Ask HN: Do you use oDesk/ elance / Fiverr? - <AUTHOR>

We are trying to solve some pain points that exist with using these marketplaces. What can be fixed?<p>Contractor selection...are there too many choices? Contractor accountability...do you worry about getting poor work? Does it take too long to receive back finished work? Is it too hard to post on multiple marketplaces? <comment><USER2> I have used Elance extensively over the last 5+ years for everything from Logo design to web programming.

1\. Biggest challenge is finding contractors who are actually as good as their portfolios. I am not sure if this is a case of portfolio fraud or simply not a good enough interview process on my part, however, after working with some providers, I just can't believe all those 5 star ratings are real.

2\. Too many contracts bid without actually reading or understanding the requirements. The best people I have found actually addressed each requirement point by point.

3\. Too many contractors provide too little value. I expect them to manage everything they need to do on their side, and not just be the hands on the keyboard. Too many times have I had to put THEIR test plan together because they had no clue how to actually test their work.

My approach has simply been to hire lots over the years and then rehire people proven to be good. It's a crap shoot initially though.

<comment><USER3> Number 2 is easily solved by burying an instruction in the spec.

Example - ask them to prepend the subject with a keyword or some other information only calculable by reading the job description.

<comment><USER2> That is exactly what I have been doing and it has worked up to a certain point. Contractors have gotten used to this trick and now just look for that one phrase and skip the rest.

I just wish it wasn't necessary.

</comment></comment></comment><comment><USER4> The fundamental error with trying to fix such marketplaces via another marketplace is that contractors are typically far better off relying on repeat business and some elementary lead prospecting, while project owners are better off relying on networking and repeat business.

Your target market is thus (more or less) restricted to people who don't yet meet that level of experience and professionalism. You get the contractors that have no existing clients and no clue how to approach companies, and you get the project owners who are out to get bargain-basement labor and firmly believe they'll be the one poster who gets lucky and finds a contractor who works on the internet yet is too inexperienced to realize what that means for their billable rates.

This is still a potential market, but you've lost the more desirable end of the pool before you even leave the gate. And even if that is the end of the pool you want to provide value to - you can provide far more value by helping them move upstream, rather than trying to stamp out another marketplace which is a bad solution from its conception.

</comment><comment><USER5> I've used oDesk in the past and they have some really great tools to ensure you can track what the contractors are doing when they bill you for hours. e.g. They will take a screenshot at random times when the contractor says they are working on your project so you can see that they were actually working on your project and not just sitting around doing nothing.

The key to finding good contractors is to start out by breaking down your project into smaller pieces and giving the contractor one small independent piece to implement for a fixed price. If they deliver on time and quality work commission them to finish your project on an hourly basis.

For javascript and android development I would recommend an excellent developer that I've worked with before. Oscar De Dios Rodriguez

</comment><comment><USER6> I'm a Fiverr and Elance veteran. There is a tremendous amount of choice,which is daunting for sure. You can narrow the choices by setting standards. As a newbie, simply filtering for top rated sellers or Level 2 narrows your choices. And should make you feel a bit easier about accountability & quality since these folks have proven themselves by Fiverr standards. You can control when you get your work by looking at delivery or turnaround times. Add an extra day just to be sure. I use multiple sites based on my need on each project. I don't shop the same project to multiple sites that's counterproductive. It's better to decide what you want to use each platform. Have a look at Clarity, Elance and Fiverr; each has a slightly different focus. I wrote a book for Fiverr buyers ( the first). You can get it at [http://infoproductdoctor.com/Fiverr- guide](http://infoproductdoctor.com/Fiverr-guide). It's free til 9/23

</comment><comment><USER7> I use elance/odesk extensively. My biggest pain point is trying to figure out the real rates charged for work.

What would be perfect is to give each freelancer a 1-2 hour test that will be shown on their profile. It will show what they are capable of within 1-2 hours. For example, a logo design. Each applicant does the same test.

</comment><comment><USER8> You just need to check the following...

1.) reviews from previous employer

2.) previous work sample (related to what you need)

3.) completion rate (quality and accuracy)

Remember: Freelancer is paid only after you approve the work.</comment>


Ask HN: Need help finding a post - <AUTHOR>

Somebody posted a link to a presentation made by a guy who's name sounds hispanic.
It dealt with the rise and fall of countries across many years in time. It also dealt with the US and Brazil being outliers in the aspect that most countries "contract" after passing their revolutionary state.
I searched and searched using google site search but  no dice. Does anyone remember this post? <comment><USER2> [http://www.poptech.org/popcasts/popcasts.aspx?lang=&](http://www.poptech.org/popcasts/popcasts.aspx?lang=&); viewcastid=14

This.

(kill the space after the ampersand because the link got abbreviated)

<comment><AUTHOR> Exactly thanks a lot sir.

</comment></comment><comment><USER3> [http://www.ted.com/index.php/talks/hans_rosling_shows_the_be...](http://www.ted.com/index.php/talks/hans_rosling_shows_the_best_stats_you_ve_ever_seen.html)

The corresponding HN link: <http://news.ycombinator.com/item?id=373041>

Is this it?

<comment><AUTHOR> It wasn't a TED presentation -- thanks though.

</comment></comment><comment><USER4> you're probably aware of this, but : searchyc.com

<comment><AUTHOR> no I was not and thanks</comment></comment>


This Robot Barista Makes a Dang Good Latte - <AUTHOR> https://www.wired.com/2017/01/cafe-x-robot-barista <comment><USER2> The robot appears to just be shifting cups around. kind of a waste of time. I thought it would be making latte art.</comment>


User Authentication with Rails and Backbone.js - <AUTHOR> http://42floors.com/blog/posts/user-authentication-with-rails-and-backbone-js <comment><USER2> One of the fundamental difficulties of handling login with Backbone.js is that your regular site is usually served off HTTP, but you want to send credentials via HTTPS, which requires various hacks, or a full page refresh. By posting up something that doesn't handle that problem, I'm afraid that the OP is putting a newbie who isn't aware of that problem in danger since they are apt to copy this tutorial verbatim.

<comment><USER3> If you are transmitting the login information over SSL, I would assume that you already have SSL configured. Why not just serve the whole site over SSL constantly? That would fix this issue _and_ provide better security by making it impossible for a MITM to redirect the login form to the HTTP version (or, if you are using an iframe, MITM the iframe over plain HTTP)

<comment><USER4> > Why not just serve the whole site over SSL constantly?

Because now you have to serve every single bit of your page over SSL (to avoid security warnings) and that means none of your page content can be cached. It also makes relatively mundane things, like having your proxy server communicate the originating ip address, much harder. I can set up haproxy to add an X-Forwarded-For header in almost no time flat. In fact I just gave you enough information to google that solution for yourself. Solving that problem over SSL is much harder.

Engineering a MITM attack is _much_ more technically difficult than snooping traffic. Not every company actually _need_ to turn the security knob up to 11 on this aspect, and being able to do unencrypted-page-with-encrypted-login is a good trade-off when you can make it.

<comment><USER5> None of your page content can be cached? Just add a Cache-Control header — done and done, even for people with relatively old browsers.

</comment></comment></comment></comment><comment><USER6> You probably want attr_accessible in there.

</comment><comment><USER7> Why the custom password handling when they could just have used rail's new [http://apidock.com/rails/ActiveModel/SecurePassword/ClassMet...](http://apidock.com/rails/ActiveModel/SecurePassword/ClassMethods/has_secure_password) feature?

</comment><comment><USER8> Or just use devise. Backbone will work just fine with it.

<comment><USER9> Does Devise handle XHR and JSON (requests/responses) out of the box?

<comment><USER10> Yes.

1.3.1

*sessions/new and registrations/new also respond to xml and json now

</comment></comment></comment><comment><USER11> As always this looks like very useful information for people looking for office space!</comment>


Ask HN: What do you use to track your expenses? - <AUTHOR>

I personally use a spreadsheet, but I am considering to switch for an app. I tried Mint, but don't like the fact that it must connect to my bank accounts before it can be useful. I prefer to log my transactions by hand, so I have full control over my data.<p>So what application do you use (if any) and what do you like and dislike about it? <comment><USER2> I like Mint. Not a fan of having to connect to your bank accounts, as you've pointed out, but the convenience factor weighs more heavily in my case.

I've heard good things about YNAB ([http://www.youneedabudget.com/](http://www.youneedabudget.com/)) but I've never tried it out myself.</comment>


Why Doesn't NASA Sell Naming Rights to Its Shuttles? - <AUTHOR> http://priceonomics.com/why-doesnt-nasa-sell-naming-rights-to-its-shuttles/ <comment><USER2> Quote: "Selling off naming rights to the next NASA space shuttle doesn't strike us as a bad idea if it gets us to the Moon, an asteroid, or Mars sooner."

WTF -- what would "the next NASA space shuttle" refer to? The date on the article (today) flatly contradicts its content. There's not going to be a "next NASA space shuttle".

<comment><USER3> _There 's not going to be a "next NASA space shuttle"_

[http://en.wikipedia.org/wiki/Orion_%28spacecraft%29](http://en.wikipedia.org/wiki/Orion_%28spacecraft%29)

<comment><USER4> Successor to the Space Shuttle is not the same as being a space shuttle.

What makes something a "shuttle"? The original name is because it was supposed to take as little as two weeks to refurbish a shuttle and be ready for the next launch. This of course never happened. ( [http://en.wikipedia.org/wiki/Criticism_of_the_Space_Shuttle_...](http://en.wikipedia.org/wiki/Criticism_of_the_Space_Shuttle_program) )

I think most people consider a "shuttle" to be a spacecraft with wings that can reach orbit. That is SpaceShipOne and the X-15 are spaceplanes, not shuttles.

What is your definition of "space shuttle" which includes Orion and the Space Shuttle but doesn't include other existing crewed spacecraft?</comment></comment></comment>


Ask HN: How do you handle mongodb migrations? - <AUTHOR> So you wrote your app with mongodb and went live. Maybe some small changes to db structure aren't that big of a deal but eventually, you need to migrate data.<p>How have you guys been handling migrations in mongo? <comment><USER2> For really deep, structural (and large datasets), then it's pretty difficult to avoid downtime.

That said, those circumstances are hopefully pretty rare. We generally write scripts that bridge between the two formats. One to copy/transform and one to cleanup after. Run the transform, test and verify, then move to cleanup.

It's a huge pain, but if you keep on top of if --especially the cleanup-- then it gets easier. It tends to get really hard once you get a lot of cruft. You end up with the code vs data dichotomy. So keeping on top of that really helps longer term.

<comment><AUTHOR> How did you go about setting this up? Your own framework or any solutions out there?

</comment></comment><comment><USER3> It's been a while since I've played with mongo, but you could run an out-of- band task to run through all existing data, transform, then push into a new DB / instance.

Your existing server would continue, you have a new endpoint to test with updated application code, deployment can then be a standard blue-green approach.

</comment><comment><USER4> When you say migrate, what do you mean exactly?

<comment><AUTHOR> Like a migrate in rdb, with mysql postgres. Something that keeps track and makes DB schema changes.

</comment></comment><comment><USER5> "So you wrote your app with mongodb and went live."

No.

<comment><USER6> I don't think is the sort of posting we want on hackernews, either provide some context or advice for the OP as this is not helpful and doesn't contribute anything.</comment></comment>


Reddit Commenter's Fight for Anonynmity Is a Win for Free Speech and Fair Use - <AUTHOR> https://www.eff.org/deeplinks/2019/05/reddit-commenters-fight-anonynmity-win-free-speech-and-fair-use <comment><AUTHOR> Two big wins:

1) _The First Amendment protects the audience as well as the speaker_.

2) _The court carefully reviewed the fair use factors and concluded that "they tip sharply in Darkpilver's favor."_

And a pretty big loss:

The counsel for the Jehovah's Witnesses get the identity of the Reddit user anyway, even though the copyright claim is "far-fetched".</comment>


What real people really think of Twitter Bootstrap - <AUTHOR> http://flipstorm.wufoo.com/reports/twitter-bootstrap/

<comment><USER2> Real people don't know what twitter bootstrap is. It's like asking 'real people' is Rails more popular than PHP? they wouldn't have a clue, and if they answered, they'd just be guessing.</comment>


NASA Warns of Potential "Huge Space Storm" In 2013 - <AUTHOR> http://science.slashdot.org/story/10/06/15/0238225/NASA-Warns-of-Potential-Huge-Space-Storm-In-2013

<comment><USER2> This appears to coincide with the "end of the world" time frame. Interesting...</comment>


Show HN: List of Heisenbug - <AUTHOR> https://github.com/letientai299/heisenbugs <comment><AUTHOR> OP here. This is inspired by the webpack Monday bugs[0], which is somewhat similar to other classic bugs that I found interesting. Hope that this list will help others when looking for similar stores.

[0]: [https://news.ycombinator.com/item?id=20390724](https://news.ycombinator.com/item?id=20390724)</comment>


Ask HN: How did Uber acquire its first customers? - <AUTHOR> 1. In many talks Travis K talks about picking up the phone and dialing for dollars/calling up SF limo companies. But what did he tell them? Why did 3 of the 10 companies he called, (as per Travis) show interest in his venture? (AFIK, that seeded the start of Uber. Please correct me if I'm wrong.)
2. How did they specifically convince Riders to join their platform? (I somehow feel this was the easy part, as Travis had Sacca and other SV influencers as part of his close buddy network..and the money through Red Swoosh's acq.)
Very curious to understand the strategies they had in place, to solve the Chicken and Egg problem initially.
Thanks! <comment><USER3> OK I have been an uber member since the day they were born, effectively... How was i converted?

I lived in the presidio in SF - then later I lived upper-market/twin peaks.

the cabs wouldnt fucking show up, so I was calling ALL cab companies - <USER2> they were sharing dispatch info and I was banned from calling them. I made personal relationships with black car-drivers (the lincoln towncars that are "uber black") and would call them when I needed to get a ride. I paid a premium for that - but ultimately they told me about Uber.

I HATE SF taxi service and I jumped ship and havent looked back since.

I spend A LOT on uber.... but for me (as I dont have a car and I hate driving) It is wonderful and has been great since I joined.

The only reason I dont use Lyft is that they dont work with my bank for payment.

While I think the CEO of Uber is rather lame, and a good friend said it was the worst place hes ever worked (ops guy) I love the service.... and for that reason I stay.

<comment><USER4> in a nutshell the competition to uber in SF was so dire, as to be laughable.

It's weird I have lived in UK and Australia and never a problem getting a cab to show up. Nonetheless uber seems to be getting popular in Sydney due to the cost savings and ability to use an app.

</comment></comment><comment><USER5> [https://growthhackers.com/growth- studies/uber](https://growthhackers.com/growth-studies/uber)

<comment><AUTHOR> Great link. Thanks so much. But it doesn't really talk about Travis' tactics to convince the initial limo companies to join his venture. Looking for a deeper insight. It is so hard to convince someone / incumbents, to join a platform where they might fear competition. Usually they don't look to grow, they look to not die. IMO.

<comment><USER3> existing black car drivers were always open to randoms asking them for rides... and then haggling over a price.

They likely saw the opportunity of "how 'bout an app for that, with a set price" as haggling with the black car drivers sucked.

Once you found one you liked... you would stick with that driver and call them. But the thing is that they werent always available when you needed them, or you didnt call them enough... so its a pretty easy stretch for why they would want to do this. Plus everyone bitches about taxis and they all knew it was an industry to be disrupted ___" What??? Youre not requiring me to get a medallion!!!???"_ __\- no brainer for them.

<comment><AUTHOR> Great insight (especially regarding the "no need for a medallion" pitch to drivers, but I feel that would have come later during growth stages)! Thanks.

One question - When Uber first launched (think in early 2009), smart phones were not so ubiquitous (right?) especially for Black Car drivers. I'm just wondering if some guy selling them on an App at that time, would have worked. I just feel there was something more to it. May be "cheat" that side of the game (offer money to the Black Car drivers to join the App OR buy black cars and hire drivers maybe. Travis and Garrett were millionaires then already), since they knew there was demand anyways, knowing SF was a tech town and would be an easy sell to techies.

What are your thoughts? Am I making sense?

P.S: Would be awesome to get some insider insight into this.

<comment><USER3> You may think that smartphones (like iphones) were not popular at that time - but they were - they fucking EXPLODED in popularity.

I worked as Dir of OPs for 'MobileComplete' at the time where we reverse engineered mobile phones for devs to test their apps.

The DAY that the iphone came out we had many, this guy Colin reverse engineered the phone to make it available on our platform -- this was ~2007... I built the very first healthcare app for the iphone in 2008 where people thought "this wont be a thing - the average age of nurses is ~58..." \-- YC company Dr Chrono basically succeeded in what I was doing when the first iPhones came out... pre iPad...

Basically I was trying to push HL7 integration to healthcare apps onto ipod touch devices (again because ipads didnt exist) so we built an appliance which would do this over ESB and provide access via iphone/ipod touch to various med systems.

(we applied to YC but were rejected)

anyway...

Now look at companies like AllScripts etc... and even Epic...

Anyway - smartphone apps had a meteoric rise (which is a weird statement given that meteors literally only fall) -- but yeah - we all knew this shit was going to take off.

<comment><USER6> It was very much unevenly distributed. I worked in Boston when the iPhone came out and _nobody_ I knew had one - hell, people were still excited about their Razrs and LG flip phones. I moved to Silicon Valley for Google in 2009, and all my coworkers had a G1, because the company had given them out for Christmas the previous month. When I finally got my G1, I was like "I don't really see the point of it, other than looking up facts on Wikipedia" and one of my coworkers was like "Dude, once you get used to it, you will never want to go back. It's just so useful." Even as late as Dec 2009 (2.5 years after the iPhone came out), I went back for Christmas and all of my relatives were amazed that my phone could do voice recognition and turn-by-turn navigation. None of them had a smartphone...hell, my mom finally jumped on the iPhone bandwagon _last year_.</comment></comment></comment></comment></comment></comment>


Exploring other peoples Dotfiles - <AUTHOR> https://www.cphillips.io/devtools/2018/06/14/dotfiles.html <comment><AUTHOR> I wrote a thing that can hopefully give people some idea of how to set up their dotfiles for the first time and learn some configuration as code tips</comment>


C++: Checking units at compile time (2003) - <AUTHOR> http://everything2.com/index.pl?node_id=1429028

<comment><USER2> Also: [http://www.boost.org/doc/libs/1_56_0/doc/html/boost_units.ht...](http://www.boost.org/doc/libs/1_56_0/doc/html/boost_units.html)

</comment><comment><USER3> Stroustrup discusses compile time units (starting at slide 19) in the following presentation:

[http://ecn.channel9.msdn.com/events/GoingNative12/GN12Cpp11S...](http://ecn.channel9.msdn.com/events/GoingNative12/GN12Cpp11Style.pdf)

</comment><comment><USER4> Nice trick. One thing bothers me, couldn't the compiler use operator float and the construct from float for non-matching units?

<comment><USER5> I believe using those together counts as two user-defined conversions and is rejected. But one or both of those might as well be declared explicit.

</comment></comment><comment><USER6> here is something harder: [http://yosefk.com/blog/can-your-static-type-system- handle-li...](http://yosefk.com/blog/can-your-static-type-system-handle- linear-algebra.html)</comment>


Trying to design a distributed privacy compatible epidimec tracer - <AUTHOR> https://github.com/ashwoods/pandemic-tracing <comment><AUTHOR> I'm just an application developer who just as played with blockchain and crypto every once and a while. Hoping to find smarter people than me who can pitch in.</comment>


'Moderate' drinking guidelines are too loose, study says - <AUTHOR> https://www.washingtonpost.com/national/health-science/moderate-drinking-guidelines-are-too-loose-study-says/2018/04/12/da73d89c-3e64-11e8-974f-aacd97698cef_story.html?noredirect=on <comment><USER2> _> The common explanation is that alcohol can boost high-density lipoprotein cholesterol, the "good" cholesterol, which can be protective against arterial blockages

> But alcohol consumption, even at that allegedly moderate level, is also > associated with a suite of cardiovascular problems, including stroke, aortic > aneurysm, fatal hypertensive disease and heart failure. The data show that > the bad effects offset the good._

Maybe the HDL levels increase because alcohol is so damaging to the body, and the body reacts to protect with with more HDL cholesterol?

So it's kind of like having a house burning and then setting a few more homes on fire to get more firemen to the scene.</comment>