Job Security Through Code Obscurity - <AUTHOR> http://seven-degrees-of-freedom.blogspot.com/2011/01/job-security-through-code-obscurity.html

<comment><USER2> I can't wait for the follow-up: "Ego Security Through Assenine, Passive- Aggressive Blog Posts".

(And I can say this because I've written asinine, passive-aggressive blog posts to boost the ego myself)

</comment><comment><USER3> When a programmer is adding ugly code to the codebase, he is making a marriage proposal. Unless the prospect with him or her (till death dues you part) is appealing, work to remove the offending code before children start coming in.

</comment><comment><USER4> Reminds me of the "If you're not replaceable, you can't be promoted" adage...

</comment><comment><USER5> _Specialise via inheritance_

Ugh. That's the one I'm continually running across. Inheritance is so heavily abused by novice programmers they shouldn't be allowed to use it without a twenty page written justification.

</comment><comment><USER6> Have I been out of the programming world for too long, or do at least some of his complaints refer to using advanced features of programming languages in essentially the way they were intended?

<comment><AUTHOR> He's talking in the context of console game programming (though it applies to everything). The current generation of consoles has pushed a lot of this stuff to the forefront - with in-order processors and cache behavior in particular exposing the flaws inherent in OOP/Inheritance based paradigms. I'd guess that it's a bit of a perfect storm - inflow of PC developers who previously could rely on hardware upgrades, massive increase in fresh/grad programmers (who are now filling positions on enormous teams of programmers compared to previous generations), and much more PC-like hardware that requires less specialized programming.

It's hugely important in console game programming to know exactly how you're using the system's resources - memory and clock cycles. The styles he's criticizing aren't just bad for limiting resource usage, they're hard to analyze. On top of that, it can be very difficult to silo components of game code (and game engines) behind nice clean interfaces. When you're the engine programmer tasked with optimizing game code because you're the one who knows how to squeeze performance out of the console, you don't want to have to climb up and down hierarchies to figure out where everything's hidden. I've been there - it's especially prominent in 3rd party developers with cross-platform game engines - and it's a nightmare.

</comment></comment><comment><USER7> Yes, wonderful. Shows the true power of OO.</comment>


Daredevil 'Mad' Mike Hughes dies after rocket crash near Barstow - <AUTHOR> https://www.foxla.com/news/daredevil-mad-mike-hughes-dies-after-rocket-crash-near-barstow <comment><AUTHOR> Some context: Hughes was an amateur rocketeer who built his own steam-powered rockets. He did a launch in 2018 that reached 1,875 feet:

[https://www.space.com/craigslist-water-heater-mad-rocket- lau...](https://www.space.com/craigslist-water-heater-mad-rocket-launch.html)</comment>


Changing Education Paradigms - a wonderful animation - <AUTHOR> http://www.youtube.com/watch?v=zDZFcDGpL4U&hd=1

<comment><AUTHOR> I hope I know everything and am rich by the time I have kids, so I can quit my job and home school them.</comment>


Show HN: Valid bank details in any currency with bankdeets - <AUTHOR> https://github.com/321k/bankdeets <comment><USER2> Can i style the form?

<comment><AUTHOR> Coming with the next update!

</comment></comment><comment><USER2> Great stuff.</comment>


The Next SoundCloud - <AUTHOR> http://next.soundcloud.com <comment><USER2> You guys seem weirdly resistant on this, but can you please turn off the inline comments? Or at least provide a global option for keeping them off? It makes navigating the songs hard and almost none of the text is ever interesting.

</comment><comment><USER3> Perhaps I am alone in this, but when I play a song I don't like the inline social comments that popup in their player. I wish I could create a cookie that disables them by default.

<comment><USER4> You're definitely not alone on that. There's been a lot of work put into a new model for inline comments -- now they're less 'noisy' and definitely create less visual clutter than before. On some tracks, users have completely filled the waveform with comments (looking at you, Skrillex fans...), but we've hopefully come up with something that still won't get in your way even in these extreme cases.

<comment><USER5> Just add an "off" button.

It is beyond me why the current interface still does not have one.

I, like many others, have long installed the greasemonkey script to suppress these idiotic popups. They're even worse than youtube comments. At least the youtube drivel doesn't pop up in your face all the time.

<comment><USER6> > I, like many others, have long installed the greasemonkey script to suppress > these idiotic popups. They're even worse than youtube comments. At least the > youtube drivel doesn't pop up in your face all the time.

I agree. The comparison to YouTube comments is a good one - and not for the content. YouTube comments are typically below the fold, and therefore don't enter into your head when you're watching (listening to) the content.

I love SoundCloud, but even on some obscure artists, the in-line comments add nothing to the content on the page.

<comment><USER7> next SoundCloud comments solve this for me quite well.

</comment></comment></comment></comment></comment><comment><USER8> This is excellent news! As someone working on a project in this space, it's a HUGE relief to see that they aren't planning (or publicizing, at least) any of the features I think are missing from the landscape.

Seriously, for the last 6mos or so I've really been second-guessing whether I can solo something that sites like this won't come out with before I have a chance to finish, which slows down development, so to see that they're going in a different direction is a great thing.

</comment><comment><USER9> I wrote about things that have to change with SoundCloud a couple of months ago [1]

I'm carefully optimistic that an improved interface will help improve how people end up using the site, but the biggest issues for me with SoundCloud are still signal-to-noise rate in community engagement and sound quality.

I will pay close attention to how much behind-the-scenes improvement there is, but none is mentioned in the announcement (the only one that comes close to a point in my list is on search, which I personally never use).

SoundCloud seems to still focus on being a cool site instead of addressing the very basic "data" problems like comment spam [2] (or follow spam) and, in the year 2012, they still stream music at 128kbps, which just does horrible things to your music unless you have professional mastering (even then it's a bit horrible).

What irks me most is that there are very simple solutions to both of those - For comment spam, it seems like they still have no simple "if a user posts the exact same text a number of times, containing a link, that's spam" filters in place. I know that that can be a dirty arms race, but if it remains entirely unfought, the spammers will end up crushing any and all relevance. For the sound quality, even just bumping the bitrate to 192kbps would mean a _huge_ improvement and at a very low cost to data transferred.

In any case - I understand that they have to focus their message and that it's common to show off the more prestigious improvements. But if they have, for instance, an improvement on spam control, this is big enough of an issue for all SC users that they would really enjoy an announcement there.

A community evangelist replied to my post on g+, saying that they would be rolling out improvements throughout the year and I will hold them to that. I must say, though, that I don't get how simple things like that aren't just rolled out in shameful "oh god, you're right, we will do that straight away" fashion, to be honest.

[1] [https://plus.google.com/111011776153281260419/posts/KgxmnsMG...](https://plus.google.com/111011776153281260419/posts/KgxmnsMGZPZ)

[2] [http://www.reddit.com/r/WeAreTheMusicMakers/comments/sr2s5/p...](http://www.reddit.com/r/WeAreTheMusicMakers/comments/sr2s5/people_who_spam_on_soundcloud_are_the_scum_of_the/)

<comment><USER10> _> in the year 2012, they still stream music at 128kbps_

I guess one reason for that is that artists themselves don't want their tracks to be streamed at a higher quality for free.

I've personally heard this more than once from musician friends.

<comment><USER9> Sure, that's possible. But still - why not at least give artists that choice?

</comment></comment></comment><comment><USER11> suggestion: frequency domain instead of time domain. The waveform in time- domain doesn't really contain info, with a spectrum you can see lots of patterns, scroll to the section where the beat kicks in, look for vocals, ...

<comment><USER12> I fail to see how that makes sense. How would a spectrum enable you to skip to specific parts of a song? It only lets you see the frequency breakdown, and offers no benefits (that I can see) from a navigation standpoint.

<comment><USER11> If done properly (linear vs log scale, well-chosen cut-off frequency, thresholding values and discrete colors) you get a representation of the patterns in the song. With electronic/techno music you see where the intro/beats are. With other music you can see where the intro ends, the chorus repeats, instrumental solo, ...

The way it's done now you see a bunch of peaks/vertical bars. Unless there's a change in the power of the song the bars stay pretty much at the same level. It's a lot of real-estate that can be put to good use.

<comment><USER12> >With electronic/techno music you see where the intro/beats are. With other music you can see where the intro ends, the chorus repeats, instrumental solo, ...

Absolutely not you don't see that, how can you see where anything starts or ends, when it's not a temporal representation? The only thing it represents is the presence (or lack thereof) of frequencies in a song. For example, what does this <http://i.imgur.com/QRka5.png> tell you about the song? Can you tell where the intro or chorus or whatever else begins or ends? A temporal representation works way better because you can skip to parts of a song. A spectrum can't let you skip to anything, nor can it give you any information that the general population would like to know about a track.

</comment></comment></comment></comment><comment><USER13> Nice preview, but their JavaScript is messed up. I attempted to connect to beta in the Sign Up tab of their pop-up, but the error message for already having an account says, "Sorry, [object Object] is already registered with another account".

<comment><USER4> I just reported the bug with the appropriate team - should be an easy fix and resolved shortly. (In theory) it would only show if you already have an account though, so perhaps just try signing in instead of signing up?

<comment><USER14> This message should be less javascripty now.

</comment></comment></comment><comment><USER15> I was hoping for news on reducing comment spam. Repost looks cool but I fear "plz repost me" will be the new "hey, I love (but didn't actually listen to) your track, plz follow me and like me on facebook".

</comment><comment><USER16> <http://en.wikipedia.org/wiki/File:SoundCloud_infoModel.jpg>

</comment><comment><USER17> I connected my account and it said the party was full and they weren't letting more people in. I'm not sure what the point of that was.

<comment><USER4> Hey Kabir, you're in the queue for a beta invite now.

<comment><USER18> Could I get in on the beta as well? Thanks.

<comment><USER4> Just sign in on next.soundcloud.com and that'll add you to our list.

<comment><USER19> Me too?

</comment></comment></comment></comment></comment><comment><USER20> The page structure with the audio timeline serving as a navigation cue to the content below is great.

Could someone point me to how to make the audio image waveform reference the on page anchors? I scanned the developer page and couldn't see where to start.

<comment><USER4> Hey James, there's no pre-packaged system to do this, but you do have some options: you could use the widget API <http://developers.soundcloud.com/docs/html5-widget>

There's no special insider trickery happening on that page: it's all using the public API to load the sound and then just listening to 'time' events while the track plays to trigger scroll actions.

<comment><USER20> gotcha. Thanks Spadgos!

</comment></comment></comment><comment><USER5> I sure hope the scrolling in your new interface is not as laggy as on your pitch page...

</comment><comment><USER21> This is really exciting -- Soundcloud has changed the way I listen to music. Hopefully they will finally bind the spacebar to play/pause!

<comment><USER22> Yup, spacebar toggles play/pause :) ... Plus many more key bindings

</comment></comment><comment><USER23> the "neighbor" site jamendo.com recently switched to a buggy new version without prior notice. with reduced functionality, completely changed focus (single tracks instead of albums) and no community communication features (forums, private messages). instead of announcing it early and working with the community, they had to backpedal and post apologies.

</comment><comment><USER24> Its really great hearing the Australian accent in the "What have you heard?" audio! :)

<comment><USER25> Heh, I noticed that too. Yay!

</comment></comment><comment><USER26> It is just like Ruby 5!

<http://ruby5.envylabs.com/>

</comment><comment><USER27> in my opinion soundcloud is one of the hottest most amazing startups out there. they reached a critical mass of important artists already a while ago. the fact that they're located in the epicenter of electronic music is just the icing on the cake. recently i had a complete harddrive failure and lost 500gig of music. since i couldn't access my backup for 2 months i was limited to streaming music. after a short while i realized that i needed nothing else than soundcloud to completely satisfy my daily need for good music.

the update seems to bring soundcloud closer to twitter's model of 'social'. i think this is a perfect fit for the site. i sorely miss an equivalent to twitter's lists feature, however. further more i'd like to create playlists in the browser and not just in the macstore app.

/edit: about the 'list' feature i mentioned: it'd be awesome to create lists of artists within which i'd be able to switch between recently liked tracks of these artists (with full waveform-player display) and recently self-released tracks.

<comment><USER7> > further more i'd like to create playlists in the browser and not just in the > macstore app.

... you can in next.soundcloud.com, but only when you get access. and we call em sets.</comment></comment>


Show HN: Beautiful Stock Charts – JavaScript Library - <AUTHOR> https://pizzacharts.com/charting/

<comment><AUTHOR> We originally started Pizzacharts with the goal of providing a better user experience for charting Bitcoin prices. Our goal has been to provide beautiful charts for the cryptocurrency community in a way that can communicate as much information as succinctly as possible. As such, we've sweated over each pixel and animation, and provided some features not typically seen on stock charts that can be helpful when charting long term trends or high volatility. For example, our charts can graph the volume logarithmically, invert the chart, chart the volume in either the base or the quote currency, and line knots can be proportional in size to the volume.

Since then, we've packaged our charting as a separate product for developers, which we're now announcing publicly, as we realize it can be useful to the broader financial community.

We aim for our charting library to set a new bar in the charting community as we iterate together!</comment>


Everybody Thinks They're Middle-Class - <AUTHOR> https://www.bloomberg.com/features/2016-america-divided/middle-class/ <comment><USER3> It's really not strange nor contradictory. Most people probably think of "middle class" like this:

\- lower class: on welfare & food stamps

\- middle class: have a job, must work for a living

\- upper class: not having to work and living off interest payments of wealth investments

Therefore, the middle class covers the wide spectrum of $9/hr Starbucks baristas and $500k white shoe lawyers. For "lower class", most people use the label "poor". For "upper class", most people use the label "rich".

(I'm guessing Bloomberg was attempting to give an insight similar to the mathematical contradiction of _" everybody thinks they're an above-average driver"_. However, they misunderstood how people self-identify themselves as "middle class".)

<comment><USER4> I heard it was:

\- lower class: your name is on your shirt

\- middle class: your name is on your office door

\- upper class: your name is on the building

:-)

<comment><USER5> I think that's the best description. Today with all the propaganda around 'open workspaces', white collar workers have been forced back into the lower class (in spite of getting higher salaries).

Your class is more related to your self-esteem than your income.

In one of the companies I worked for as a contractor, I had my own office and it felt great.

When I was younger, I briefly worked in a telemarketing call center for the equivalent of $20K per year. Then many years later (after I finished uni), I was earning $200K per year in a different company (as a software engineer in an open workspace).

The $200K workplace didn't boost my self-esteem much more than than the $20k workplace.

<comment><USER6> > _Today with all the propaganda around 'open workspaces', white collar > workers have been forced back into the lower class._

This is the epitome of pampered engineer BS. You aren't lower class because you don't have a private office.

$200k/year and lower class? You can afford to buy your own private office for much less than that.

<comment><USER7> I agree that it sounds ludicrous to claim that one can be 'lower class' at $200k/year, however, I think there's a charitable way to read this position.

Perhaps their point is that autonomy is a better indicator of class than salary. Just like 'stupid is as stupid does,' 'class is as class does.'

Being able to afford your own office means nothing if you can't actually use it because you spend 8-10 hours a day trapped in an environment that you find degrading.

The barrier to class mobility in this case is mental. The engineer has traded autonomy for cash.

My own opinion is that one becomes upper class when they can choose not to work. If your living expenses are $20k/year and you make that from returns on passive investments, congratulations, you're a part of the leisure class.

If your expenses are $190k/year and you earn a salary of $200k/year you're a part of the lower/precariat class.

<comment><USER8> If your expenses are $190k/year and you earn a salary of $200k/year you are an upper-middle class person with poor judgement. Lifestyle inflation does not make someone lower class.

</comment></comment></comment></comment></comment></comment><comment><USER7> I believe that Paul Fussell's "Class" makes the best accounting of the [American] class system. In it there are nine levels:

-

Top Out of Sight:

Billionaires and multi-millionaires. The people so wealthy they can afford exclusive levels of privacy. We never hear about them because they don't want us to.

Upper Class:

Millionaires, inherited wealth. Those who don't have to work. They refer to tuxes as "dinner jackets."

Upper Middle:

Wealthy surgeons and lawyers, etc. Professionals who couldn't be described as middle class. I suspect this is the class to which I, an engineer, am supposed to aspire.

Middle Class:

The great American majority, sort of.

High Proletarian (or "prole"):

Skilled workers but manual labor. Electricians, plumbers, etc. Probably not familiar with the term "proletarian."

Middle Prole:

Unskilled manual labor. Waitresses, painters. (In other words, my mom and dad!)

Low Prole:

Non-skilled of a lower level than mid prole. I suspect these people ask "Would you like fries with that, sir?" as a career.

Destitute:

Working and non-working poor.

Bottom Out of Sight:

Street people, the most destitute in society. "Out of sight" because they have no voice, influence or voter impact. (They don't vote.)

[http://www.wesclark.com/am/class.html](http://www.wesclark.com/am/class.html)

<comment><USER9> This is a good list. I wonder how many Americans (out of ~320M total) fall into each level?

</comment></comment><comment><USER10> My wife and I combined make well above the limit for 1%-er range, yet we both feel middle class, although upper middle class is probably more accurate.

We both work extremely hard, from 9-10 hrs a day in the office and 2-3 hrs at night, most nights. We barely have time to see the kids during the week, and the weekends are filled assuaging our guilt by spending it with them, unless we have to work.

We have a modest house in the SF Bay Area, with an unmodest mortgage, and a savings that is miniscule compared to our costs and isn't growing. I have my Honda Accord that I paid off years ago, and my wife leases a Lexus SUV. We are the prototypical house-poor Bay Area family, and if one of us loses our job, we're pretty fucked. Neither of us has any sort of insurance besides whatever is provided by our companies.

The two "luxuries" we have are a weekly house cleaner, and a top notch babysitter once a week, which is why I think upper middle class is apt.

We don't feel "upper class", and we definitely don't feel rich. We know rich people, though, with live-in nannies, rented out Gary Dankos for special events, got box suites at the Super Bowl, etc.

<comment><USER11> 1% in the US is about $200,000. So, you have a household income of $400,000 and are struggling?

I'm curious, what are your main expenses?

<comment><USER12> Probably $6000-10,000 a month in mortgage payments. And he said combined they're 1%. So after tax, probably more than half of his money going to mortgage.

<comment><USER13> That still doesn't add up in my mind. A 1%-er household would have $240k+ post-tax annual income, more if they're deducting hefty mortgage interest payments.

        $100 in food daily ~ $36k
        $500 weekly domestic help ~ $25k
        $500 monthly utilities ~ $6k
        $2k monthly transportation ~ $24k
        $2k monthly misc ~ $24k
        $10,000 monthly mortgage ~ $120k

That hits around $235k post-tax. I think that's a nice lifestyle. Eating out less would allow for different "fun" activities.

Oh, I guess I forgot savings. Doh! I'd aim for savings about 10% annual pre- tax income for a household bringing in $400k+ pre-tax. I'm not sure how much of the mortgage principal payments I'd count towards that amount.

<comment><USER10> Private school for two children is ~$4000/month.

<comment><USER13> Well, I guess we're not eating out every day anymore.

</comment></comment></comment></comment></comment></comment><comment><USER14> So some dude did some inteviews some day in some shopping mall and came to the conclusion that "everybody thinks they're middle class"

While 4 days ago there was an opinion piece on gallup.com quoting research that 51% of americans now say they're middle class[1], a long-time (not all- time) low.

I'll take the Gallup research, and dismiss piece this as fabrication and factoids.

[http://www.gallup.com/opinion/chairman/195680/invisible- amer...](http://www.gallup.com/opinion/chairman/195680/invisible- american.aspx)

</comment><comment><USER15> My definitions:

Wealthy -- I don't have to work to maintain my lifestyle.

Poor -- I can't afford basic necessities even when I work.

Middle-class -- everyone else.

Now for sure there is some variation on middle-class (upper/lower/truly middle) and that's basically a function of disposable income.

But this definition at least accounts for variation in regional cost of living and even adjusts for personal lifestyle choices. Your middle class might be my wealthy because my lifestyle is cheaper.

<comment><USER16> These are American definitions and not European ones, where working class are people who work for someone else for a living, while the middle class works for themselves. I guess it depends if you have your FU money or not.

<comment><USER17> OPs description matches mostly how the UK does it, except we have an aristocratic hangover that confuses the meaning of "upper class"

We also (perhaps because of this) have the term "upper-middle class" to refer to particularly well-off middle-class people; though beyond a certain level you just become "rich"

<comment><USER18>
        > mostly how the UK does it

With the addendum that it - or your perception - will always have more to do with your parents and upbringing than your salary.

America's socio-econmic classes, by stark contrast, are all about the money.

<comment><USER19> That class is all about the money in the US is not entirely true. If you have lots of money but don't know the social rituals, people will notice.

"new money" is after all a thing.

</comment></comment></comment></comment></comment><comment><USER20> There seems to be a lot of confusion in this article and the comments between class and income-bracket. The bourgeoisie (the historical middle class) were precisely the nouveaux riches. In Europe especially, class made a lot of sense when you could be either impoverished nobility or a wealthy son of peasants. Class was a useful category in early capitalism, but maybe less so in late capitalism (especially in America where we are all essentially bourgeois). I think this survey, if anything, shows the increasing irrelevance of "class" in our society. There is no more class, there is just income, wealth, etc.

</comment><comment><USER21> Hey look, a rehash of my Sociology 101 class from freshman year of college.

Most Americans call themselves as "middle class," and most Americans believe that social mobility is higher than it actually is. In fact, since the 1970s, economists and sociologists have known that social mobility in America is not much higher than in Europe.

This is old news.

</comment><comment><USER22> "Socialism never took root in America because the poor see themselves not as an exploited proletariat, but as temporarily embarrassed millionaires." \- John Steinbeck

</comment><comment><USER23> "'Rich', by the way, is anyone with more money than you."

A quote from a teacher of mine that has always stuck with me. It explains so much.

<comment><USER24> Yes, even the wealthy are constantly comparing themselves to people richer than them, and complaining about it.

<comment><USER25> Look at this rich guy, always complaining.

</comment></comment></comment><comment><USER26> I doubt that multi-millionaire think that they are 'middle class'. Or a person living on welfare. Everybody else is pretty much in the 'middle' from very low to very high.

$200k is much, but unless you are extremely lucky or inherited a huge amount, you have to do a bit for such an income. And you have likely a long time behind you earning less, living in the middle.

<comment><USER27> > I doubt that multi-millionaire think that they are 'middle class'.

Perhaps, but low digit millionaires do think that they're middle class because they've earned their money across the past 50 years. In that same 50 year span they've seen the actual 'rich' earn about billions instead.

Let me give a character construction.

You are an engineer. Salary $120k at age 38. Your spouse is also an engineer. Salary $100k at age 38. You both are the inheritors of your parent's estate which includes a pair of $200k pensions, and 2 houses valued at $800k a piece thanks to 20 years of land values rising in your near DC hometown.

Now your net worth is 2.0 million and rising.

Yet you don't _feel_ like you are 'rich'. Maybe you have kids, can't take 5 vacations a year, and end up comparing yourself to your friends with no kids and greater discretionary income. Maybe because your windfall is from inheritance, you don't think of it as 'yours'.

It's a psychological motif, even if its not the economic reality.

<comment><USER28> Low millions over 50 years is solidly middle class. That's a couple of teachers saving up responsibly for retirement and paying off their house on time.

<comment><USER29> This point is often lost in the debate over income and wealth. A public school teacher who starts working at 25 y/o and retires 30 years later at 55 y/o with a relatively modest $60k/year pension benefit has effectively retired with a pension value of $1.3 million (using current lifetime annuity rates). Two public school teachers married to each other with a paid-for $500k home (but zero other savings or assets) effectively have a household net worth of $3.1 million. Government retirees with 'high 3' pensions are the every day millionaire next door types of modern society. I know many of them with multi- million dollar pension values and yet most feel solidly working class because it took them decades to earn the pension benefit and all they see is the monthly check.

</comment></comment></comment></comment><comment><USER30> The symbols on the quotes are mysterious, and no key is given. First block is D/R (democrat, republican). Second is age range. Fourth is gender. I thought the third might be race, since a couple of people have a pink W (white?) and a couple have a brown M (mixed race?), but some have a green dollar sign or cents sign.

edit: someone has both a W and a cents sign.

<comment><USER31> If you click and hold on the symbols, an overlay appears that decodes it.

<comment><USER18> I had to double-tap and hold... would never have got it without comments here - what a bizarre UI!

</comment></comment></comment><comment><USER32> What on earth is that graph showing? 2% of households make $150k, and another 2% make $151k, and another 2% make $150.01k, etc. It makes no sense at all. I think they meant to use a bar graph or histogram, and perhaps those circles are the boundaries between the bins. But then why are some much wider than others? Do 7% of households make between $30k and $90k? Normally with a bad graph, you can work out what they meant and it's just misleading, but this is too wrong to mean anything.

On a second look, the sharp edges of the curve appear to be $10k boundaries which with the text about $20k-$30k would mean they're the bin boundaries. But that assumes the text was written by someone who knew that and wasn't just reading off the line.

<comment><USER33> Presumably the probability density function, [https://en.wikipedia.org/wiki/Probability_density_function](https://en.wikipedia.org/wiki/Probability_density_function)

</comment></comment><comment><USER34> I think I'm probably a good poster child for this. It's not just about income it's also about wealth.

My household income puts me in the top 5% (my wife and i are engineers) but my wealth and savings barely puts me in the top 40% thanks to student loans, buying a house, having a kid, and short work history. So according to income I'm upper class. According to wealth I'm middle class. I don't think you can truly feel upper class until you fall in the top percentages in both.

I think it falls under:

\- Upper class: you could retire today without impacting your lifestyle

\- Middle class: you will retire someday but you'll have to cut down on your lifestyle

\- Lower class: you will never retire unless you go on disability / welfare

</comment><comment><USER35> I love the retire who isn't middle class, but has 2x the average family income _while retired._

</comment><comment><USER36> How you live and how much money your make are related but it's not absolute. Local cost of living is a huge factor. Plus you can be an idiot (when it comes to spending money) with a larger paycheck and end up with a lower quality of life than your frugal neighbor.

<comment><USER37> This is a very good point. Even if you make 200k in NY, its equivalent to 100k in Arizona. Or at least something along those lines.

<comment><USER38> Depends where you live in NY. I make 80k in Sunset Park and I live comfortably. 200k would mean I don't have to worry about money much.

That said, no kids.

<comment><USER23> > live comfortably

> don't have to worry about money much

It's interesting how those two phrases can mean the exact same thing to one person (me) and be apparently so wide apart to others.

How can you live comfortably while worrying about money a lot?

<comment><USER38> I don't worry about money now because I save and budget appropriately. I meant that with 200k I wouldn't have to think much about money at all. Sorry for the confusion!

<comment><USER23> Ah :) thanks for clarifying!

</comment></comment></comment></comment></comment></comment><comment><USER39> Interesting that the interviews were done in Minneapolis, a city I'm currently spending the summer in. This city is big on public services - <USER2> transportation is particularly good. Probably everyone in that article took the Metro to the Mall. The libraries are plentiful and excellent, and there are really good amenities in Downtown. The rent/home prices around here is also astonishingly good (Note: I'm from LA). Heck I'm renting a 1500 sq ft. house with a garage and a yard for $1500/mo, and that's kinda pricey. You could probably find a reasonable 1Br around here for $400/mo.

tl dr: $30k really is middle class in some American communities.

</comment><comment><USER40> Chances are that even if you make $500k a year you'll still have lots and lots of social interactions with people earning much less. Even most of your friends and family will earn less.

That's why it isn't surprising to me that most people choose to identify with the middle class, especially if you consider that most people associate with this term "normal working citizens".

Maybe it is different once you have so much that you actually do not need to ever work again, but you certainly aren't in this position by earning $200k. You still have to work really hard, often even harder than the average person does.

</comment><comment><USER41> Is there a commonly accepted definition of middle class? (in the United States; class definition seems more rigid in England)

Preferably something that involves net worth as well as net income; for me rich and poor indicate status of wealth/net worth, which is often correlated with income, but isn't the same thing. Taxed on those with high income are considered taxes on the wealthy, but may also be taxes on people who had a one time windfall, but aren't wealthy.

<comment><USER42> [https://en.wikipedia.org/wiki/Affluence_in_the_United_States...](https://en.wikipedia.org/wiki/Affluence_in_the_United_States#Status_and_stratification)

</comment></comment><comment><USER43> I am optimistic that many people here retain such a broad definition of middle class- essentially the range between poverty level and one percenters. This shows that most Americans dont want to be indentified as impoverished nor wealthy, despite statistics otherwise. Ironically this flies in the face of media pronouncements the middle class died atbthe end of the 20th century and Trump movement is exploiting to the hilt.

</comment><comment><USER44> I don't understand what conclusion this graph is going for. It's a real "Therefore, what?" thing for me.

</comment><comment><USER45> That reminds me of [https://en.m.wikipedia.org/wiki/The_Status_Civilization](https://en.m.wikipedia.org/wiki/The_Status_Civilization)

Sci-fi society where eveyone thought of themselves as middle class but it was either upper middle class or lower middle class.

</comment><comment><USER43> Obama and Congress wrestled as to what is middle class when dealing with permenantizing the Bush tax cuts- introduced in 2002 and made permanent in 2011. ACA surcharges start at 200K for individuals and 250K for a couple. The highest income bracket at 400K. We are talking about the top 2%-3% here.

</comment><comment><USER31> Rather than 4 data points is there any large-sample-size conclusions about people who identify as Middle class?

</comment><comment><USER46> The overwhelming sense I get reading this sort of article is: if everybody insists on drawing lines amongst themselves how will we ever solve the world's most pressing problems, which are clearly beyond the reach of individual social groups or nations?

</comment><comment><USER47> Don't these definitions have a more solid statistical economic meaning here? As in: middle "class" is the _middle quintile_ of income. This makes the other strata fall pretty reasonably too:

80%-100%: Ruling Class

60-80%: Upper Class

40-60%: Middle Class

20-40%: Working Class

0-20%: Lower Class

</comment><comment><USER48> Isn't that a data-bias? Everybody think they're middle class because it's the biggest class... meaning that there is an increased probability that people indeed belong to the middle class.

</comment><comment><USER49> As usual, there's the emphasis on how much one makes, very little on how much one spends. Personally, I've spent the last few years not so much trying to earn more but rather spend as little as possible.

</comment><comment><USER50> I don't find this surprising...obviously the 200k person has an easier living compared to the 50k but probably they hand out to the same places, have similar houses and generaly their habits are the same.

</comment><comment><USER51> Here's a good discussion on this: [http://siderea.livejournal.com/1260265.html?format=light](http://siderea.livejournal.com/1260265.html?format=light)

</comment><comment><USER52> A British view: [https://youtu.be/K2k1iRD2f-c](https://youtu.be/K2k1iRD2f-c)

</comment><comment><USER53> Well it is a pretty wide band one would assume.

I think the real problem is people claiming to be poor when they are bang in the middle of middle class.

</comment><comment><USER54> Apparently no javascript means no text these days. It is obviously done intentionally. It is not like blocks of text require javascript to render. I'd shame bloomberg but the frog is well and boiled now; everyone just accepts that without JS websites aren't going to show you anything. And _that_ is a damn shame.

<comment><USER55> Well, this is probably because today JavaScript is the biggest middle class generator.</comment></comment>


Microsoft Points coding cracked, costs MS a cool million - <AUTHOR> http://saveandquitgaming.com/2011/03/microsoft-lose-1-2-million-due-to-code-exploit/

<comment><USER2> The site appears dead to me. Google cache here: [http://webcache.googleusercontent.com/search?q=cache:FFGpmH8...](http://webcache.googleusercontent.com/search?q=cache:FFGpmH8sH2IJ:saveandquitgaming.com/2011/03/microsoft- lose-1-2-million-due-to-code- exploit/+http://saveandquitgaming.com/2011/03/microsoft-lose-1-2-million-due- to-code-exploit/&cd=1&hl=en&ct=clnk&gl=us&source=www.google.com)</comment>


Ruby and the Opposite of Momentum - <AUTHOR> http://kirindave.tumblr.com/post/60776407/the-opposite-of-momentum

<comment><USER2> I don't think JRuby gets enough credit. He pretty much dismisses it because it uses a lot of memory and starts too slow for simple scripting. The JRuby team have done some tricks to speed up startup time, seems to respond almost as fast as MRI to me now. Haven't paid attention to memory though, but if you are launching a script big enough that memory is a factor I don't think the JVM is going to matter.

With invoke dynamic around the corner (Java 7), it seems that JRuby is Ruby's best hope for a decent runtime.

What I don't get is why all there is such a strong anti-java sentiment in the ruby community. Everyone wants to speed things up by writing native C code. I for one would much rather write java code than C code. It's just as fast and much less shitty. And it runs pretty much anywhere.

<comment><USER3> Seems like the good and crappy things about Ruby and Java, respectively, complement each other well. Ruby is a high productivity language, Java not so much. The JVM is a very well engineered run time engine, Ruby's MRI not so much. Unicode, threading, fast, reliable, portable, well understood and supported. Pluses for Java, minuses for Ruby.

So in principle it seems JRuby could have the best of both worlds. But for now I'm having more fun with Clojure. :)

<comment><USER4> You're absolutely right about Ruby & Java being a great _Odd Couple_

What I find interesting is that most of the JRuby users are first and foremost Rubyists. The JVM users seem to gravitate more to Scala, Groovy, Clojure, Rhino, etc.

</comment></comment></comment><comment><USER5> Not to rub salt into this whole pile of hurt in the Ruby world lately, but I'm shortly going to be promoting (on Ruby Inside) some rather damning news from the Windows camp in relation to how many significant Ruby libraries are either ignoring Windows or not being transparent enough to make it easy to patch the issues.

(I'm not a Windows user, but if Windows is treated like a third world country by Ruby users, it's going to bite us _all_ in the ass.)

<comment><USER6> That is the primary reason I chose not to use SBCL (Lisp) to implement the game engine I'm building. I really wanted to, but SBCL leaks memory on Windows. When I asked their mailing list about how to fix it, the community was silent. Those two issues make it impractical to use SBCL to develop a product.

<comment><USER7> How do you prevent unfortunate GC pauses for your game engine? I have two conflicting thoughts lately:

"I want to use Lisp for _everything_! Oh but what about GC pauses in games?"

<comment><USER8> Lua is used in games often. It does have GC, with an incremental non- compacting generational GC. If you _do_ get pauses then there are various methods of forcing GC on a regular basis, or just generating less garbage. It works well in practice.

</comment></comment></comment></comment><comment><USER9> I think it's very unfair of him to be criticizing and writing off Rubinius. "Rubinius looked like the light and hope of the Rubyverse, but their team has been slashed..."

Just because it was financially responsible for Engine Yard to cut back from 6 to 2 fulltime developers does _not_ mean that Rubinius is dead. Rubinius has as and always will be a community project.

Furthermore, the author states "But the problem is that [ruby is] essentially stagnant." Because of Rubinius, Ruby finally as a proper spec. This means we _will_ see an "arms race" as he calls it, and it's because of Rubinius. PLUS, 4 implementations under active development (Rubinius, 1.9, MacRuby, JRuby) hardly seems stagnant to me.

Bottom line: this is FUD.

<comment><AUTHOR> Maybe it is FUD, but that is because _I_ am experiencing Uncertainty, Doubt, and at least a little bit of Fear on the subject of what high-level dynamic language I am going to work with next. I certainly have carried a lot of water for the Ruby team, and I'm worried what I'm going to do with all my free time if I don't have a language to idolize! ;)

I don't want to have to write off Rubinius, and I have a lot of respect for Evan and the members of his team that I know. But can we be brutally honest for a second? The only independent Ruby implementation to have delivered goods, of any sort, is JRuby. I will trust Rubinius when it is publicly released. Until then, it's just another one of several projects claiming that Christmas will bring me a new, faster Ruby. And I've been hearing that same promise before, again and again.

And saying that the Ruby spec is somehow unbroken Ruby stasis? We damn well better have a spec! Ruby has been essentially unchanged for at least 2 years. Saying, "Well at least we have a spec now!" seems like the lowest possible bar for success.

P.S. MacRuby is fascinating, but let's see it on more than 1 of the Big Three before we start saying it's a serious competitor.

</comment></comment><comment><USER10> Ruby has had huge impact on the way I write software. Whatever programming language or tools I'll use tomorrow, it will be dynamic.

Without Ruby on Rails there would have been no Groovy on Grails web application framework. But rubyist keep pushing limits, creating new kinds of database orm libraries like sequel and new web frameworks like sinatra.

Sinatra makes me write web applications that looks like haiku:

      require 'rubygems'
      require 'sinatra'

      get '/' do
         "This is a web application!"
      end

Sequel makes me write SQL queries that don't look like SQL:

      dataset = DB[:managers].where(:salary =>   5000..10000).order(:name, :department)

And haml makes html tagging look pretty:

      %h1 Markup
       %p
         .my_id Look ma, no end tags!

When you first got a taste for this style of programming, there's no going back. I don't now if I'll be coding Ruby, JRuby, JavaScript, Scala or Groovy tomorrow, but it will be done Ruby style.

<comment><USER11> ORM examples that feature single table selects are unconvincing: the true test of an ORM is whether it can do joins (outer + inner), aggregation, and subqueries. Otherwise it is little more than syntax sugar, IMHO.

<comment><USER12> Honestly, I think the syntax sugar is great because thats what I need the vast majority of the time.

And the scaling aficionados probably prefer single table selects anyway. ;) (Not that it makes a difference given how little traffic my blog gets)

</comment></comment></comment><comment><USER4> The Ruby Language itself has plenty of warts, but the implementation problems are far worse. The MRI is awful, and 1.9 isn't much of an improvement at all.

The best hope I see for Ruby's future is embodied in re-implementations like MacRuby, JRuby, and Rubinius. MacRuby could totally become the popular way to write new Cocoa applications.

If MRI can be effectively displaced, Ruby can really break out of the "Perl that people write better code in" ghetto.

<comment><USER13> _cough_ Parrot! _cough_

But seriously, anyone know if Parrot is a realistic vehicle for this?

It's just puzzling to me that with all the demand for a better interpreter, there really aren't any available options that are going to satisfy the community at large, and there's no visible light at the end of the tunnel. Is this because Ruby is a particularly difficult language to implement? Is it because there is no formal spec? Lack of leadership (compare with Guido and Larry)? All of the above?

<comment><USER4> All of the above!

Parrot is never going to be viable -- 'flexible' platforms are only so when there are piles of diverse users. Specifications do not make reality.

Ruby has a huge advantage over Perl in that there are a number of groups successfully working to reimplement, specify, and reform it. There are visible lights at the end of the tunnel, they're just for specific communities -- JRuby and MacRuby. Hopefully Rubinius (or a successor project) succeeds in replacing MRI, but it's a pretty damn hard problem.

<comment><USER13> All of the above = a huge bag of hurt that presents some damn near insurmountable problems (leadership, on its own, is a huge issue).

To be honest, I don't know how one would get past those things without first deciding, with a clear conscience, to hijack Ruby from Matz. I know that sounds malicious, but even Dave Thomas is calling for a fork of the language. Seems to me that forking is not quite what we need, as it keeps the language rooted in the past, bringing the performance baggage with it (you're still having to re-implement the loose idea of the Ruby spec, which as you pointed out, presents some really hard problems).

No, maybe we need someone smart, loud, and with balls big enough to arbitrate their way through whatever gray areas are left with Ruby's loose idea of a spec, perhaps make some tough calls on what language features can reasonably be supported, decide what needs to be cut, and break compatibility with existing Ruby code if necessary. To top it off? This person forms a foundation around it, a la Python.org, to ensure that the language is left in good hands, gets proper funding for new development, patches, etc (hell, I would love to donate to Ruby development if I knew the money would be put to good use. I don't have that confidence now).

Of course, what I'm talking about now is not Ruby, but a new thing. This new thing could be quite awesome. Whatever this new thing would be is still years out, even if someone decided today that they would do it.

Python in the meantime?

<comment><USER4> Exactly, Python wins.

There's a massive gulf between Matz and Guido as far as decision making, even when you only look at the Languages and not their imperfect Implementations. Just for example, look at how executable objects work:

* Guido made a hard+pragmatic decision that there are only Functions. Methods and Class Methods are functions that take their binding as an explicit argument (which is inferenced when called with the . selector). Lambdas cannot contain statements and simply yield to a Function. Functions are recursively defined as objects with a __call__ method.

* Matz tried to make everything _hugs all around_ and the result is that there's no straightforward Function type -- there are Methods, Blocks, Procs, Lambdas (1); which yield into one another bafflingly and retain scope in untoward ways. This makes some simple use cases very straightforward, but at a terrible cost.

(1). Are there more? The lack of certainty with which I can answer this question is alarming.

</comment></comment></comment></comment></comment><comment><USER14> Maybe this comment is already here and I just missed it, but languages naturally have life cycles, and thinking in terms of Ruby's life cycle might explain both some of your early enthusiasm and your current discontent. (I'm going to draw in broad strokes here and will probably get some details wrong.)

In 2002 Ruby was young: half-formed and exciting. It's problems didn't really look like problems: they looked like things Matz hadn't gotten to yet (and, even better, opportunities for other programmers to get to first). In late 2008 Ruby is established; the problems come with a set of reasons why they aren't likely to be solved. (The other problems _were_ solved.)

This is natural and normal for any multi-year group endeavor, be it a company or a rock band: it starts with a world of potential. If it is one of the lucky few to survive for any length of time, it becomes mostly a specific reality, with a humdrum future. (More often it goes from having a world of potential to not having any future at all in short order.)

You cite as counter-examples Javascript and Scheme. Javascript is benefitting from the HUGE externality of being the client-side language for the single most important application category going. As for Scheme ... there's a paraphrase of "Brazil is the country of the future, and always will be" that's escaping me, but suffice to say that if the 73d time is the charm for Lisp's taking over the world, I won't be too embarrassed to have bet against it.

Ruby's momentum 2002-2007 was like Python's momentum 1999-2004 was like Perl's momentum 1993-1998: the momentum of a firework or a homerun. It was glorious to watch them rise; it shouldn't be sad to see them return to earth.

</comment><comment><USER15> He's saying Ruby needs a better VM, no? I think the real problem is that there are only 10-50 people in the world that know how to make high quality VM's. We probably just need to get more open source people trained up in this.

For my part, I tried reading that Dragon book recently but it just didn't click for me. It seemed way too low level, without teaching me the high level first. Or maybe compiler/interpreter design just isn't an easy thing to teach yourself?

What are your thoughts, HN?

<comment><USER16> There are probably more than 50 "decent" virtual _machines_ in production use, many of them open source. Anyone who completes a graduate-level course in language and compiler design should be able to create a decent bytecode-based VM, and should be able to make a good start on a simple JIT.

Here, in no particular order, are the ones I can think of off the top of my head:

* Tamarin * OpenJDK * Squeak * Parrot * Python * Self * SpiderMonkey * PLT Scheme * CLisp * V8

(...etc., etc.)

The problem is not a lack of VM designs, implementers, or experience. It comes down to two factors:

* Ruby is a _weird_ language, compared to most -- it wasn't so much designed as composed (in the sense of art/music). Normal compilation, optimization, and type-safety rules just don't apply, so even clever VM hackers are sort of left scratching their head when it comes time to optimize or deal with harder problems like serializing closures.

* The Ruby community is deeply bifurcated into two mutually-suspicious subgroups: the Rails users, and everyone else. Rail people hate (or at least mistrust) backwards-incompatible innovation in the language itself, because it breaks Rails, and (at least some of) the other group resents the Rails guys for holding the language back.

If you don't believe me on this second point, look at Ruby 1.9. If 1/10th the energy went into testing and patching new Ruby releases as goes into a minor point-release of Rails, we'd all be running nice, fast, bytecode-compiled Ruby scripts with full Unicode and fiber support. Instead, we're stuck and 1.8.6 for anything "serious", because it's the last release Rails supports well.

</comment></comment><comment><USER17> I have used a number of languages/tools/technologies in the past. Whenever I felt the existing choices don't meet my needs I have simply moved on. I never had to bash my old choices because they are not good anymore. They have served me pretty well so far. The community has helped me find answers. I didn't find it right to laugh at the current community and tell them you are no good because I am not there.

Move on and embrace the new coolness when you are done with your job.

</comment><comment><USER18>
      Perhaps the most frustrating part about Ruby, to me,
      is the outrageously outdated state of the current Ruby interpreter.
      <snip>
      I wish we could change all that. I wish that we had a new,
      exciting Ruby engine that began to rapidly iterate, was extensible in Ruby itself,
      and really started to live the dream that Smalltalk failed to achieve in the enterprise:
      being both cutting edge and mainstream.

I agree with the above sentiment. A good VM is 'the' need for Ruby right now.

This is where i think Rubinius holds great promise. When Engine Yard started supporting it officially, it started looking like we would finally have a good VM 'soon', eliminating the single biggest issue with Ruby at this point. With the recent cut-down in the size of that team, we are kind of at an infection point. Either this project would flicker out (i really hope it doesn't happen) or the community kicks in a big way to help it pick up pace.

</comment><comment><USER15> I think the time is ripe for a server/desktop side Javascript language to come along. Rhino?

It's my humble belief that Javascript will be the most popular language within 10 years.

<comment><USER19> I would like you to be correct but I don't think you are.

Javascript with minor syntactic sugar for making DSLs, and with the stupidity around scoping ironed out, that might win out, though.

<comment><USER15> Why do you think I'm not correct?

<comment><USER19> For the reasons lined out here:

<http://javascript.crockford.com/javascript.html>

Don't get me wrong, it's my favorite language. I don't want to bash on Javascript. Most of the coding I do for fun is in Dashcode, which I never understood why isn't pore popular. But JS has big problems in public perception.

Stories on new things done in Ruby tend to elicit "cool, I can use that", but new things done in JS tend to elicit "what a waste, why use such a crappy language".

</comment></comment></comment></comment><comment><USER20> Why choose Ruby in the first place?

I tried both at the same time and granted haven't coded anyhting real in Ruby but Python just won handsdown on every point that mattered for such a language:

      * Readability
      * Libraries
      * Rapid protoyping
      * Integration and support with other platforms, bindings   to libraries n other languages
      * Documentation
      * Support form industry(while Ruby is pretty much only used in webapps Python is used in bioinformatics, engineering, GvR works at Google hacking on Python, it is used at NASA, has numpy+scipy+matplotlib).

I just don't see much reason to hang on to Ruby. Switch to Python and let Perl and Ruby die.

<comment><USER21> please watch your line lengths in code blocks... you're making my browser scroll.

</comment></comment><comment><USER22> You know what really bothers me about ruby? It seems like it's the smaller companies who are behind it - like EngineYard and 37Signals. None of the heavyweights seem to be interested in Ruby.

This seems to me to be a bad thing for the long term prospects for the language. Big companies think long term, small companies tend to change their focus often. If I'm going to invest my time in a language, I want it to stick around for long.

<comment><USER23> Microsoft pays John Lam and the DLR team to work on IronRuby full time. Sun pays Charles Nutter and Thomas Enebo to work on JRuby. Thoughtworks pays Ola Bini to work on JRuby as well. So there are some larger companies that are investing in Ruby implementations.

<comment><USER22> They are paying people to add support for niche languages to their tools. IronRuby sells Visual Studio, JRuby promotes Java. MS and Sun are interested in their tools, not in Ruby.

<comment><USER23> Of course. They can't make money directly off of Ruby. Neither can EY or 37signals. For that matter, Sun doesn't directly make money off of Java either. And Microsoft doesn't make a lot of money from .Net (it's arguable over whether you'd consider visual studio sales directly attributable to .Net.)

The point here is that for EY, Sun, and MS their platforms are loss leaders for very profitable goods and services. And if those companies are paying people to work on Ruby for their platforms, that means they're betting that Ruby support will lead to greater platform adoption, which then leads to greater server sales.

</comment></comment></comment></comment><comment><USER24> It would be nice to see some progress made on the interpreter but I think it's to Ruby's credit that the language design hasn't changed that much in the last several years. A lot of the activity on the Python side has been fixing things that weren't well thought through in the first place.

<comment><USER4> You don't seem to understand that "language design hasn't changed" tends to preclude "progress made on the interpreter".

Python's warts have been fixed and will continue to be fixed. I cant really say the same for Ruby, especially for MRI.

<comment><USER12> Honestly, I'd say the opposite is true. The more the language design changes, the more implementor time is going towards servicing the changes and not squeezing the fat out of the implementation.

That being said, the two often occur together because changes are exciting and attract effort.

</comment></comment></comment><comment><USER25> So, does this mean you're going to use other languages more often? If so, which?

<comment><USER26> For me, python, but that's not exactly a change ;).

I've always felt that python offered the same benefits as ruby accept with a simpler syntax, better cross platform support, better performance, and a more organized community.

<comment><USER15> I find the "there's only one way to do it" philosophy of Python to be really important. That's the main thing that kept Ruby off my radar.

<comment><USER27> I feel it diverges a little bit, actually. In many cases it provides the "C style" way of doing it and the "functional style" way of doing it. Thankfully, in many cases one of them is much faster than the other, but it's not obvious to the novice and they will probably use the "C style" for years in ignorance of the alternative.

Example:

      mylist = []
      for char in "foobar":
          if char == "f":
              mylist.append(char)

vs.

      mylist = [ char for char in "foobar" if char == "f" ]

The latter is supposedly much faster, and as you can see, much more succinct, but I hadn't learned about it until about a year ago. I have been programming in Python since about 2002/2003.

<comment><USER28> It's pretty hard to believe you've been using Python seriously since 2002/2003 and had never heard of list comprehensions. They are a pretty big staple of most Python programmers.

<comment><USER27> Then you can call me out for being a noob, if you wish. :)

</comment></comment></comment></comment></comment></comment><comment><USER29> I wonder if IronRuby will have the same memory problems. Not as though the Rubyists will really give it twirl anyway.

<comment><USER4> Microsoft already put their real weight into IronPython

</comment></comment><comment><USER30> ruby is slowly but surely showing itself to be the next PHP - popular for all the wrong reasons, terrible implementation and a foolish philosophy

<comment><USER31> Please, elaborate. What wrong reasons is Ruby popular for? What is the foolish philosophy around Ruby?

<comment><USER32> I don't know, but if the secret to PHP's enormous success is its foolish philosophy then the Ruby community needs more fools.

There is one thing to observe here: Ruby will not become as widespread or as popular as Perl, PHP, or Java without also becoming as unfashionable as Perl, PHP, and Java. When an invention becomes successful and established, eventually everyone comes to take its good parts for granted, while its flaws become famous and are an eternal topic of discussion.</comment></comment></comment>


Google Analytics not good for SEO? - <AUTHOR> I was just looking through this Mixergy course:
http://mixergy.com/course-cheat-sheet-how-to-rank-on-page-1-of-google-even-if-youve-never-heard-of-black-hat-seo/
and something caught my eye:
6. Stop using Google Analytics so Google won't see all your SEO tricks
I'd be interested to hear from others with more SEO experience on this topic.  Not sure what to make of it at this point.  It'd be interesting if this is proven to be accurate. <comment><USER2> Que first rule of fight club...

<comment><AUTHOR> Very appropriate. I was wondering why someone would do such an interview and put it all out there.</comment></comment>


Ask HN: How to proceed with smartphone ideas that are too low-level to be apps? - <AUTHOR>

I have a few ideas on how to enhance the UI/UX of smartphones, but most of them are too low-level to be made into apps.
To get an idea of the sort of things I'm thinking about, take a feature that is now in many phones: personalized ringtones for different people in your address book. The first person who had that idea could not turn it into an app, since almost no phone I know of gives access to such low-level API to developers (i.e. trigger event when phone call comes in, inform the app of the number calling, and allow overriding the default ringtone)
These things are quite straightforward for the device/OS makers (iPhone, Android, etc) to implement but that functionality is not usually exposed in the public API.
So, given an idea like the above, is there a way to capitalize on it?
For example, one could:
a) Patent the idea and wait, hoping that some company will one day implement it.
b) Patent the idea and approach companies to add to their mobile device / OS
c) Other?
Any thoughts? Are such things even patentable (e.g. the personalized ringtone mentioned above) ? Any other ways to capitalize on these sorts of ideas? <comment><USER2> Android and Windows Mobile give you very liberal access to low-level functionality of the OS. Windows Mobile in particular, despite all its faults, is a very flexible OS as far as what developers can do. For example, there is an app on Windows Mobile that intercepts incoming calls and does a web lookup on the phone number to display the name, address, age, and known associates of the caller.

You could likely do anything you can think of with one of those, and use that as leverage to get other companies to allow you access to their OS's.

<comment><AUTHOR> Do you happen to know the name of the Windows Mobile app?

<comment><USER2> <http://www.netcallerid.com/></comment></comment></comment>


Facebook will hold emergency meeting to let employees ask questions about CA - <AUTHOR> https://www.theverge.com/2018/3/20/17142074/facebook-employee-meeting-cambridge-analytica <comment><USER2> > The meeting, which is scheduled for 10AM PT, will be led by Paul Grewal, the > company's deputy general counsel. Grewal is expected to explain the > background of the case, which involves the user profiles of as many as 50 > million people being used by Cambridge Analytica as part of its ad targeting > efforts during the 2016 election. Grewal is also expected to take questions > via a polling feature found on the meeting's internal event page.

Why is being run by the head of their general counsel? Because this isn't about addressing employees' concerns or addressing the issue. It's about making sure that everyone at the company has a shared understanding of Facebook's legal stance on CA.

In a more pessimistic light, that might include an understanding of what FB will do to you as an employee if you publicly disagree with their narrative.

</comment><comment><USER3> > The meeting, which is scheduled for 10AM PT, will be led by Paul Grewal, the > company's deputy general counsel.

What? Paul Grewal was a judge who presided over Facebook court cases. How is _that_ legal?

<comment><USER4> Apparently he recused himself from FB trials during the time that FB was interested in hiring him in 2016: [https://www.engadget.com/2016/05/13/facebook-hires-u-s- magis...](https://www.engadget.com/2016/05/13/facebook-hires-u-s-magistrate- judge-paul-grewal/)

<comment><USER5> For a single month, he was in that position for six years prior though. Not necessarily wrong but it doesn't look great. Probably a normal level of revolving door though.

</comment></comment></comment><comment><USER6> It's still a little unclear to me what Facebook did wrong here. (Besides suspending the whistleblowers account, which seems like a dumb move.)

Is it that they collect too much data? We've known that they been doing that for years.

Is it that they allow apps to read not only your data but your friends data? That's not a surprise either.

So some company somewhere figured out a way to abuse these already known parts of Facebook in a way that already violates the their ToS.

What should/could they have reasonably done differently that didn't require changing their entire business model?

<comment><USER7> At least here in Italy/Europe, beside the "tech bubble", people is vaguely aware that FB is collecting information about them but they are sure "there is nothing they can do with my data beside showing me some silly ad". The discovery that data can be used to actually affect their life has been a shock.

Yes I know, like you, that there is nothing new in the "discovery" but it seems that it's not what people perceive. And this is a significant fact, whatever we think about it.

<comment><USER8> This is not at all unique to Italy/Europe. Americans have the same attitude as I'm sure many others do. People simply cannot think abstractly enough or far enough ahead (depending on how you want to look at it) to make sense of their world and protect themselves. Or won't. I don't know which, but this failure is hardly unique and encompasses most of most people's lives.

</comment></comment></comment><comment><USER9> Does anyone really believe that FB wants to figure out what went wrong? For some reason, I imagine it playing out like the "Top Men" scene from Indiana Jones.

<comment><USER10> Zuck will put on the Hoodie of Credibility and promise a Full Investigation. Sheryl will invite others to Lean In. Staff will nervously finger their stock options and ponder their vesting schedules.

Having said that I don't really want them to fix it so I'm being a touch cynical.

<comment><USER11> > I don't really want them to fix it

Any particular reason for saying so?

<comment><USER12> Not the GP, but I too feel like if they actually fix it, then there is less chance of catching the other equally culpable actors who now seem to think they have gone above the law (AmaGooFaceSoft). Or worse, actually emboldening them to continue their mad rush to collect every piece of information they can about you.

If FB actually faces complete implosion, their employees are more likely to rat out on the practices of the other companies based on nothing more than having worked at the other company too (after all, when one tech giant hires someone, they are more likely to be hired by a competing tech giant).

</comment></comment></comment></comment><comment><USER13> And if you ask a question, your name will be taken down.

<comment><USER14> "How can I properly toe the line and be the ideal obedient FB employee?"

</comment></comment><comment><USER15> What's the over/under on any asking "Are we the baddies?"

</comment><comment><USER16> The first sign of a sinking ship is information starts leaking. Thats what seems to be happening with facebook.

<comment><USER17> By that measure, Apple has been a sinking ship for over a decade.</comment></comment>


Show HN: HackerTribe – community of hackers and founders. Looking for feedback - <AUTHOR> http://hackertribe.io/ <comment><AUTHOR> Hey, everyone! I'm working on an open source community platform that I think you guys might find interesting.

You can check out our repo here:

[https://github.com/raymestalez/nexus/](https://github.com/raymestalez/nexus/)

It is still a work in progress, but I would really love to hear your feedback/opinions/suggestions about how I can improve it.</comment>


Show HN: Verb Master –  A site for practising Spanish verbs - <AUTHOR> https://andycloke.github.io/verb-master/ <comment><USER4> Looks pretty nice.

I actually run a site that does something pretty similar [0]. The major difference is that I "group" verbs into sets with identical conjugations.

I then use spaced repetition to generate the "flashcards", but substitute grouped verbs at random. The idea is for you to get a feel for a conjugation so that when you see a new verb in the future you should have a good sense of how it conjugates. (as a trivial example, if you know how to conjugate _tener_ , you should know how to conjugation _detener_ ).

I built it for myself years ago to quickly master all the verb conjugations for all tenses (it takes about 4-6 months), then cleaned it up for others.

I also give a multiple choice option, since on mobile its not always convenient to type.

[0]: [https://maestrospanish.com/beta](https://maestrospanish.com/beta)

<comment><USER5> I followed the same flow for learning Spanish as you, and your site looks excellent. I too have a bunch of infinitives memorized via Anki, but would like to practice all forms of conjugation, and manually creating more flashcards is simply too labor-intensive.

One thing I'd like to see is the flashcard interface translated to Spanish. I learned Spanish in Spanish, for the most part, and I get confused when I see "imperfect" and I have to remember that it's really what I learned as "pasado/preterito imperfecto." Built-in pronunciation via TTS would also rock! One could probably write a userscript to do this, but it's always nicer to be built in.

<comment><AUTHOR> Thanks! I found anki is great for vocab but for verbs there are just so many conjugations that you end up with too many flashcards. Plus making them is a bore as you say...

This is already a feature but maybe it's not clear. Click on the drop down in the top right to change the language to Spanish

</comment></comment></comment><comment><AUTHOR> Creator here. I only started learning to code properly 7 months ago and react ~3 months ago, so I'd love any feedback.

I hope to add audio, more tenses and more feedback (on your progress through each round) soon.

I wrote a blog post on the development here for anyone interested: [https://andycloke.github.io/Building-Verb- Master/](https://andycloke.github.io/Building-Verb-Master/)

This was my CS50 final project. Can't recommend the course highly enough.

<comment><USER6> Very impressive for less than a year's worth of development experience. Appreciate the simple, clean design too. Congratulations on the launch!

How did you load the verbs + conjugations into the system?

<comment><AUTHOR> Thanks a lot man! Most of the design credit should go to React Toolbox: [http://react-toolbox.com](http://react-toolbox.com)

The verb data is from: [https://github.com/ghidinelli/fred-jehle-spanish- verbs](https://github.com/ghidinelli/fred-jehle-spanish-verbs). I wrote a node script to turn it into a more efficient format.

If you're interested I wrote a little post about making it here: [https://andycloke.github.io/Building-Verb- Master/](https://andycloke.github.io/Building-Verb-Master/)

</comment></comment></comment><comment><USER7> Funny, I am Spanish and I just realised how confusing the verb 'to feel' can be.

The app translated it to 'sentirse', and I didn't do it correctly. Just after that I found the error.

'To feel' can be translated to 'sentir' or to 'sentirse' and both are correct depending on the context. 'To feel the wind' would be 'sentir el viento', but 'to feel bad' would be 'sentirse mal'. I conjugated 'sentir' and it was asking for 'sentirse'.

<comment><USER8> I don't think there is anything special about the verb "sentir". "Sentirse" is just using it in a reflexive way, and the same holds for many other verbs: acostar, cepillar, duchar, levantar, etc.

<comment><USER9> Was going to say exactly this. Nothing out of the ordinary here. OP appears bilingual but must not spend much time translating between languages. You will face such problems (maybe they can be thought of as an example of an impedence mismatch [0]) whenever going between languages, especially when you're crossing language families.

[0] [http://wiki.c2.com/?ImpedanceMismatch](http://wiki.c2.com/?ImpedanceMismatch)

</comment></comment></comment><comment><USER10> Great minds think alike! My friend and I built a similar web app for learning Spanish conjugations: [http://practicarapp.herokuapp.com/](http://practicarapp.herokuapp.com/). I found that it was a perfectly-sized project for learning React/Redux.

<comment><AUTHOR> Nice work! Yeah couldn't agree more. It really brought home how great Redux is even for smallish projects like these

</comment></comment><comment><USER11> Looks fun. Congrats on learning React. I haven't wrapped my head around it yet. (But then again, I avoid front-end like the plague...)

I found an "undefined" thing: [http://d.pr/i/Dd2eA](http://d.pr/i/Dd2eA)

Also, the steps aren't really clear. I got "tener - to have" and "Yo", and I put in "tengo" and hit Enter, and it took me back to the main page, where I had to hit "Play" again. I would have expected it to give me another tense or another verb, but that's not what happened.

I tried again by hitting the envelope arrow, but it basically did the same thing.

It's a neat concept (and reminded me that I need to retake Spanish 101) but it could probably use some more documentation and testing. Hope that was helpful!

<comment><AUTHOR> This was a bug, Sorry! I'd previously set the target score to 15, but I changed it to 1 whilst debugging something this afternoon. Noob error - <USER2> now :)

Edit: Not sure what the undefined bug was will keep looking, ... thanks for flagging it up.

I added the tooltips in the game to explain what to do but I agree it could be more intuitive.

</comment></comment><comment><USER12> By looking at the first page, Spanish verbs are so similar to Italian and French ones, almost certainly Portuguese and maybe Romanian. I wonder if translating the data file at [https://github.com/andycloke/verb-master- development/blob/ma...](https://github.com/andycloke/verb-master- development/blob/master/src/data/index.js) would be enough to make a similar site for those languages. There are some differences in the pronouns to account for but it's probably a little work on software and a lot of work at building the database.

</comment><comment><USER13> This is awesome, though there's a bug somewhere that causes any character input into the field to submit. Perhaps triggered by going back and forth to the main menu.

Also it would be useful if you could have a 'hint' mode for the tense so you can remember which one it is. I can never remember the _names_ of the tenses!

EDIT: Seems to be triggered reliably if I get something wrong. Then any character entered into the box will cause it to submit. Quitting and going back resets it.

<comment><AUTHOR> Thanks! Great shout on the hint mode.

I don't quite understand the bug - could you post steps to recreate? For me submitting a wrong answer shows the conjugation table, then takes you to the next question :/

<comment><USER13> Perhaps it's a Firefox problem? I'll try it in Safari (EDIT - seems to only trigger in Firefox, so might be a plugin conflict or something weird - probably wouldn't worry too much).

1) Load site, play

2) Get verb wrong - shows the hint table

3) Get to next question, first character entered into the box submits the form (usually incorrectly, of course!)

4) Normal behaviour resumes if I hit quit and play again

<comment><AUTHOR> Will take a look at this tomorrow - <USER3>

</comment></comment></comment></comment><comment><USER14> On a apge liek this [1], the tooltip when mousing pver 'present' is numbered '2.', and the tooltip when mousing over 'hervir - to boil' is '1.', which is the opposite of the order on the page.

[1]: [https://andycloke.github.io/verb- master/#/?_k=efs1q4](https://andycloke.github.io/verb-master/#/?_k=efs1q4) Whe I mouse-over

<comment><AUTHOR> Hi cheers for the feedback.

The thinking behind that was that when you on first start it says: '1 - conjugate this verb' '2 - for this person' etc. Which I think is the most logical order.

However I wanted to keep the verb close to the input box so that you can see it close by as you type your answer. That's why the numbers don't follow the order on the page.

I might do this differently in the future - I could maybe get rid of the numbers when you put your mouse over them, but keep them for the initial intro.

</comment></comment><comment><USER15> Great work!!. Are there any techniques to remember tough Spanish words while practising ?

In case if its English verbs,I am able to see few listed here.

[http://learn.groupsone.com/how-to-remember-english-words- for...](http://learn.groupsone.com/how-to-remember-english-words-for-gre/)

Can you help me out with similar techniques for Spanish?

</comment><comment><USER16> Very cool! It looks like the 3rd person singular and the 2nd person plural forms are swapped throughout the imperative though: "nadad" should be swapped with "nade" in the imperative affirmative, no "pidáis" and "no pidas", etc.

</comment><comment><USER17> This is great, I'm spanish and I never learned to speak (read pretty well). My conjugation is abysmal so I sound like some kind of backwoods hill billy (the spanish version of that). I may give this a go, get conversational. Great project!

</comment><comment><USER18> I did this when I was studying Czech - [http://conjugate.io](http://conjugate.io)

I think I spent more time futzing around with the app instead of learning the language :-D

</comment><comment><USER19> very nice, congrats! :) I only miss to enter words by pressing Enter instead of clicking on the arrow button

<comment><AUTHOR> thanks a lot - I forgot to add that to the shortcuts table but have added it now

</comment></comment><comment><USER20> The Hamburger Menu Icon is also shown on bigger viewports... something you might wanna fix ;)

<comment><AUTHOR> Thanks - Unfortunately that's just the way the component library (React Toolbox) behaves. I could probably force a 'display: none' or something but I'd rather spend my time adding more feature :)

</comment></comment><comment><USER21> I have a trip to Spain coming up soon, thanks!

</comment><comment><USER22> congrats it's very nice!

</comment><comment><USER23> sweet man really great work. excited to see more languages on this. :)

</comment><comment><USER24> It's a blank page.

</comment><comment><USER25> Useful. Thanks, Andy!

</comment><comment><USER26> this is super cool

</comment><comment><USER27> Awesome! I have been trying duolingo, but it's kind of a drag and I feel like I never understand verbs well. This is a nice complement!

Also like the nice and clean look. I know I've seen it before somewhere. Where did you get the inspiration for it?

<comment><AUTHOR> Cheers! The look is all Material Design using the React Toolbox library</comment></comment>


How big will the iPhone get? - <AUTHOR> https://www.economist.com/graphic-detail/2018/09/13/how-big-will-the-iphone-get <comment><USER2> Can we just get a iPhone se with upgraded internals please? It's the perfect sized phone. Don't need bigger or thinner, just faster, better storage, and more battery life. Also leave the headphone jack too.

Thanks from the folks who are not upgrading their iPhones.</comment>


An Introduction to Quantum Computing for Non-Physicists (2000) [pdf] - <AUTHOR> http://arxiv.org/pdf/quant-ph/9809016v2.pdf

<comment><USER2> This lecture explains a domain specific language for describing and simulating quantum algorithms. It makes quantum algorithms at least accessible to programmers (non-physicists).

[http://channel9.msdn.com/Events/Lang-NEXT/Lang- NEXT-2014/LIQ...](http://channel9.msdn.com/Events/Lang-NEXT/Lang- NEXT-2014/LIQUi-A-Software-Design-Architecture-and-Domain-Specific-Language- for-Quantum-Computing)

Read the paper here:

[http://arxiv.org/pdf/1402.4467v1](http://arxiv.org/pdf/1402.4467v1)

</comment><comment><USER3> Here's a link to a Squankum, a Java applet I wrote that simulates single-qubit visualization and operations.

It's 10 yrs old though. Any suggestions for the best way to modernize it? Eg, in JS or HTML5? I know little about current web front-end tech.

[https://github.com/jeffwass/Squankum/blob/master/README.md](https://github.com/jeffwass/Squankum/blob/master/README.md)

<comment><USER4> There is this [http://www.quantumplayground.net/#/home](http://www.quantumplayground.net/#/home) and it is done in webGL. Although it doesn't use the Bloch sphere.</comment></comment>