skysight-inc/HackerNews huggingface dataset:
You are correct that for chained CPI to measure inflation, the basket of goods would need to remain constant. Among other things, if we want CPI to be well defined in 1970, then CPI in 2012 would need to exclude all goods invented after 1970.

If we did this correctly, inflation would likely be drastically lower. The biggest driver of inflation is health care, and 1970's health care is pretty cheap.

In fact, CPI only measures instantaneous inflation - the inflation rate of today's basket of goods. It is fundamentally incorrect to treat chained CPI as inflation, particularly over long periods.

If you actually want to measure inflation between two endpoints, you'll actually need a formula which depends on the starting year - i.e., you'll have CPI1970 which will be fundamentally different from CPI1990 or CPI2012.
I think I agree with you, but just to debate a bit: couldn't you contribute to open source for entirely selfish reasons?

For example:

- There is no existing project that completely meets my needs. This one almost does. I can patch it, but maintaining a separate fork would be a lot of trouble. Therefore, the easiest thing to get what I want is to contribute a patch to the main project.

- I want to prove to the world that I'm a good developer so that I can achieve my career goals. I can't easily show off my closed-source code. Therefore, the easiest way to get what I want is to release good open source code.

- I like having lots of open source software available for free, and I want to keep that paradigm functioning, therefore I view contributing as an investment with a good payoff for me. (This one is a bit more of a stretch.)

I think you can contribute to open source for truly selfish reasons, and that can work out well for everyone. It's similar to how you can run a business purely for profit, and as a necessary means to that end, provide a good product for a good price.

However, in practice, I personally contribute to open source partly for selfish reasons and partly out of altruistic ones.
Actually, if you enter it well rested the first 36 hours (with a couple 5-10 minute catnaps) can be quite productive, with only minimal reduction in productivity. Particularly if you get into the "zone."

It's after that 36 hours, that you need to get about 10-12 hours sleep to get caught up, and then have a few sane days.

Before we do complex cut over onto a new software system, we usually make sure all of our software engineers are very well rested leading into a friday night, in case we've got a couple all nighters ahead of us.

Anybody who tries to do back-back 36 hour death-marches with only 5-6 hours of sleep in between is setting themselves up for the seriously reduced productivity you've described. Nothing good ever seems to come of that.

So - in this scenario, I think they did precisely what they should have, but they shouldn't push their luck.
Pattern languages are new to me but I'd guess that I know more about programming languages in practice than 97% of programmers, and 100.0% of the people (by definition) who think VisitorSingletonFactory classes are a good idea. So if I'm getting fundamentals wrong in that part of the discussion, and I could well be, then I think there are precious few people getting this stuff right.
I'm in their private beta ... there's no actual payment processing ... just the API in a sandbox.

No word on pricing either.
Speeding algorithms by shrinking data
That's what Global Game Jam is for, it's a 48h competition for writing games. I attended two of those, and during those 48h took maybe total of 8h naps here and there. Amazing experience. But yes, really, at some points your brain just stops working.
Given that the US population can't even agree with itself, it's likely that the US population does not, in fact, understand how prices affect them day to day.

Or, more precisely, the US population does not accurately remember prices from years ago. I definitely couldn't tell you how much milk cost in 2005.
Only two years ago, it was common when releasing a game to have players on Intel chips whose latest drivers would not support earlier than OpenGL 1.3. And this was for brand new hardware.
The situation looks way better now.
Ask HN: any conference video/slide aggregator out there?
With so many worldwide web/tech conferences, keeping track of the freely available talks is difficult - as is finding talks on a particular topic.

Is there an existing aggregator out there? Google has not been helpful.
>> "open source only really works if everybody is contributing for their own selfish reasons."

One interpretation of this statement is that, if I'm trying to contribute altruistically by solving a problem I don't personally have, it may be that nobody has that problem, or it may be that my solution doesn't help those who do.

Whereas if I solve a problem I have in a way that satisfies me, there's at least one data point to say that it's a good solution, and it's likely that others will benefit.

The common phrase for this is "scratch your own itch."
I'm genuinely curious- what's keeping people on Skype?
There are better alternatives out there now (Google+ Hangouts, for example). Will this push any of you Skype users over?
The worst part for me is having four friggin' variations of the same rule, quadrupling my loc, and making a mess of the tidiness of it all.
PyCharm really irks me when it gives a warning when I declare an empty dictionary using a literal {} rather than the dict() global function.

It does the same thing with [] and list().

I'd rather just use what feels right at the time thanks, PyCharm.
People had cable and DSL for years before YouTube showed up.
Verifiably false. Look at the November 17th $600 Call option for GOOG today. Its selling for $59.40 it has an intrinsic value of 59.05 and a time value of $0.35. In this case the time value is two orders of magnitude _less_ then the intrinsic value. That's just one example to prove my point. Your whole concept of options is bad, and you should feel bad
I do it, and have done it for a pretty long time. In the vast majority of cases, it's (almost) in the form of sitename@myemailaccount.com - which is usually pretty easy to remember.

If someone was directly targeting me, and had my email address from another site, they could probably figure out what I'd used elsewhere. But if it's just a script running through email addresses harvested from site A, then mine will almost always be irrelevant on site B.

The main reason I use it though is that it's a great way to figure out where spam is coming from. Last week for instance I got a "male enhancement" spam from an email address I've only ever given to scan.co.uk. That addres is now on my block list and I doubt I'll be buying through them again.
7 PR tips for startups
Tons of folks (think: grandmothers and parents and other potentially non-tech-savvy folks) have been using Skype to communicate with family members across the globe for many years. Simply expecting them to switch to Google Hangouts is a tall order.
> Last time I looked, you could turn the D garbage collector off (both completely and temporarily).

You can, but it's hard to ensure a strict no-allocation policy afterwards (someone did it recently).

A moderate amount of allocations each frame is usually ok, and this routinely happens in C++ engines too. In my opinion, it's absolutely possible to make a game with D and GC enabled. It's a bit like not making too much drawcalls in a frame.

Eg. for this game I only made one struct pool and that was it: http://www.gamesfrommars.fr/wormhol/
I just realized this:

Companies totally unaffiliated with Windows manage to produce browsers that have bleeding-edge feature parity all the way from XP through 8 (not to mention two other major OSes).

But when the company that fucking makes Windows manages to make their (less functional) browser work with a single version of a single OS they themselves produce and support, it's a news item.
"I agree configurability can be a cop out (and iOS is almost a monument to that view) but there are some things where there are really good reasons why you might make it something the user can work with..."

Totally agree! For example, allowing a user to make a site's font larger is great for accessibility - and just plain nicer for folks with less than perfect eyesight.

"...and this feels like one."

Totally disagree! ;) The issue at hand isn't accessibility, it's fundamental user experience. Since the first iPhone came out, the core of Apple's UI guidelines has been (paraphrasing, of course) "don't make anything smaller than 44px, because that's the smallest area an average-sized finger can reliably tap." Now, they've thrown that out the window. 44px on iPad isn't the same physical size as on iPad Mini, and that's where designers run in to trouble.

Every element on a page - form fields and buttons, line height, images, spacing around and between content, etc etc - all need to be adjusted for the physical difference in size between the iPad and iPad Mini. A gap between two buttons that is "just right" on iPad may very well be too small on iPad Mini, and we, as designers, have no way to make it better. That's the problem.
The differences all appear to be related to touch, which is not too surprising.
Maybe the answer to this question sheds some light on that: http://cstheory.stackexchange.com/questions/9639/how-did-knu...
Show HN:  My "weekend" project, an ML dialect and compiler
I was thinking it holds up quite well, compared to my subjective memory of websites from that vintage. There are no scrolling banners or other dancing garbage (with the exception of one animated GIF that is relatively restrained), and the layout wouldn't look out of place today if the elements had a bit more room to breathe.

Even the markup is surprisingly clean:

* Most tag names are lowercase

* Attributes are double-quoted

* Some style attributes with CSS

I'm surprised to see FrontPage generated this code - I remember it being more gnarly than this. That said, I'm enjoying the historical artifacts:

* Table-based layout

* <font> tags

* <body> tag has background, vlink and alink attributes

* URLs apparently map to actual HTML files
It's actually becoming more of a problem. The longer screen of the new iphone for example.
Your competence as a programmer was not questioned, Michael, and was not even remotely a consideration. Have a beautiful day!
Rs.250  Free Jabong.com Discount Coupon
One way it reads very different to me is the way all of the sources are (in parenthesis) directly after the statements. I don't read a lot of campaign websites but I've not seen one that has so many direct sources for this many statements.

It's quite refreshing actually.
Hm. Open source has desirable attributes, but saleable and scalable are not always among them. Put money into a hard problem and it may get better - so commercial products that solve hard problems are generally better.

Some point is being made about stellar performers being able to solve problems that can be solved (reliably) no other way. This means as the economic pressure on developers goes up, the ante goes up, everybody has to solve harder problems on tighter schedules and budgets, it will take crews of stellar performers to get anything done at all.

I don't see how this means management will wither and fall away. Those crews will have to be handled with kid gloves, fed pure, hard problems and have their output harvested and deployed by other teams of capable IT specialists. How does that happen without management?

If you focus only on the tiger team, then yes self-managed teams of smart people may sometimes be able to produce rapidly, if they are comfortable with one another, have compatible work habits, and so on.

Heck even building that team requires careful management.
Happened to me too. I have no way to tell them that I am indeed not xXx_Rastafarian_xXx .
UX and customer satisfaction in a complex world
Have you ever tried to port a package that is using autotools to a platform that is not based on GNU/Linux?

Among those of us that have attempted or have done that port, most will probably not look particularly favorably on autotools again.

One of the easiest approaches here involves reverse-engineering the autotools product from a test run performed on a GNU/Linux box, and then translating and building a platform-specific script.

From what I can tell of it, autotools makes substantial use of GNU/Linux features. Which is certainly fine for its intended platform and typical usage, but it's an approach that is Not Fun for porting that code.
Fluent interface and method chaining - A good programming approach
Not an iOS user, so I wonder: what would have happened if you didn't have a Twitter account ? Or is it mandatory now ?
From the article:

I’ve been reviewing lot of code lately for various open
source and internal projects written in Python. As part of
those reviews, I have noticed what I think is a trend
toward using dict() instead of {} to create dictionaries. I
don’t know exactly why this trend has emerged.

My guess for why this trend has emerged: People prefer javascripts object literal syntax where the attribute names are not quoted.

After writing javascript:

var o = { a: 1, b: 2};

... it feels a bit clunky to write Python:

o = { "a": 1, "b": 2}
add "low-fps gif animations" to that list
5 big tech issues await Obama in second term
I came here to have a rant about autotools being mentioned and found a lot of people doing the same.

Thats a sign something needs to be taken out in the yard and shot if there ever was one.
Garbage collection is not the main problem, for that you just need to take care not to stress the garbage collector.

The main issues are the pauses caused by the JIT and lack of memory layout control, which is very important to take advantage of how caches work.

Additionally current JITs, except for Mono, don't explore the set of available vector instructions.
Sorry if I seemed aggressive and snarky. OOP gets my blood boiling. The disgraceful state of most software architecture is a hot topic for me, having seen a couple of companies fail on account of code quality issues.
Looks like the high school homepage I did in 1994 when in 10th grade ;)
The main problem with Mono is that not the full .NET API is supported by it.
Startup Tag Wall is a cool idea
Does anyone know why video conferencing is so poor now? Even on 30mbit/10mbit connections on both ends, we still get drops and lags a few times per 20 min call on both skype and google voice. It seems like latency is the real issue, though larger uplinks on your average person's connection will surely help some too.
How Small Businesses Can Improve Mobile Device Security
Hacker hacked into Adobe servers and dump data of 150000 users
The existing user base. When you communicate daily with a ton of customers using Skype, switching to something else seems a remote prospect at best.
hooray for http://www.dolekemp96.org/about/cookies/cookies.html
Ahh, 1996 was an awesome year for websites.

Space Jam: http://www2.warnerbros.com/spacejam/
Complete with the security of '96:
http://www.dolekemp96.org/divider.gi
[Intentionally broken link]
> This submission is part of a depressing trend in HN I'm seeing

It's a trend in the kind of SEO douchebaggery we should consider boycotting.
3 Signs Your Relational Database Must Go
this looks like simplified dilinger.io (whıch i like, thanks joe mccann!)with youtube but without the export options . If I want to include js files it can considerably slow down the "real-time" updating process, no?
Show HN: a web app to trigger Travis builds periodically
No need to use edlin. Just copy con: file.txt and make a .bat file!
How to Detect iPad Mini Using Javascript (new method)
Update: It looks like these values are reporting viewport width and height at the time of tab creation and are not updated on rotation.
OOP philosophy is to turn concepts from your problem space into custom data types. The article suggests that this is not always the simplest and most practical way to architect every piece of your solution. That's all.

The underlying reason is that data types must address (in some way) a number of requirements: copyability, management of owned resources, conversions, limits, etc. You need to take care of all that for every single custom data type you create, or your code will be a minefield of half-baked data types. This large base cost for data types in turn makes the classic 'divide and conquer' strategy for software development more costly, which triggers further practical problems with overgrown and over-engineered types.
Doug - thank you for this piece. It clearly took a lot of time to research/write and in addition to providing an interesting insight, provider a great look into disassembling and interpreters.

I would hope that over time insights like this combine with others to create a set of "best practices" across a language. After all, readability is largely tied to convention (multi-line ternary if statements excluded!).

The real benefit of these performance tweaks comes in those people writing libraries. After all, most of the matrix routines we depend on today still tie back to FORTRAN - amazing we are using 40 year old code!

Thanks again.
The language is F#, basically the code does this:

1) Creates a type which is a discriminated union called Color, that can have three different values (RGB, HSV or CMYK).

2) Defines a function which converts a color of any value (RGB, HSV or CMYK) to HSV.

The argument, although implicit, from me was that even though this can be easily represented using OO, this approach is far cleaner and easier to read (once you know the syntax and concepts obviously - but that can be said for any language), and that the poster above me saying that the benefits of a "good abstraction" becomes apparent implying that this good abstraction can only be supplied by OO, which is not true.

The OO representation would either be one class called Color which always stores it values in one format (say RGB), and then have get/set:ers for manipulating it as CMYK, RGB or HSV. The other way would be an abstract base class called Color which subclasses ColorRGB, ColorHSV, ColorCMYK, etc.
Well done, and not all that dated looking.

Although, in my head, everything on that website reads in the voice of Norm MacDonald's Bob Dole impression.
I always chortle when people say stocks fell 50%. If a house is selling for a trillion dollars, and it falls back to a million, would you be surprised? No.

Well then, if the market is overpriced by 100% and it falls 50% - why would you be surprised or worried. If the market continued to crash - you would be unemployed - as domestic consumption cycled down. We'd either end up like the Japanese or the Germans - either way - we'd all be fucked.
This's one of those rare moments I love to live in Brazil.
Is Python call-by-value or call-by-reference? Neither.
"CNET had profited from the distribution of file-sharing software that could be used to download infringing material"

We're living in interesting times. While they're at it, things that ought to be banned: (1) web browsers, for they could be used to download infringing material, (2) storage mediums of all sorts and sizes, for they could be used for storing the infringing material, (3) headphones and speakers, for they could be used to listen to the infringing material, [...], (n) knives, for they could be used for killing people, etc. Let's make the World a better place.
The tightness of the layout probably stems from low resolution screens. In '96 the most typical display size was something around 640x480 or 800x600, not a lot of room to breathe there.
Yep, apparently it's solely the new MS touch/pointer API which is missing. Which is kinda weird considering they submitted their pointer API to the W3C as an alternative to Apple's touch events, it's not going to help their case if they don't bother implementing it themselves.
Easy enough to fix. Don't upvote. Flag. Don't add comments (which drives it up the front page) Enough flags and it will disappear down the HN drain.
10gen Announces Strategic Investment from Intel Capital and Red Hat
Project ideas to help you learn a language
All comments focus on the 'rendering' issue, what about log/traffic analyses ? The root of the problem is Apple not following standards and pushing 'native apps'.
Highlights On The Business of Software (2012)
Dilemma: the size of a finger doesn't change just because your screen is higher resolution. A button and interface designed for the mini might look goofy on the larger device; an interface designed for the larger iPad might be entirely unusable on the Mini. And it's reasonable for designers to want to solve that problem.

Furthermore, your example is anecdotal and fairly meaningless. I've got a 15" screen that's 2880x1800, so what of it? I definitely don't run it at native resolution—it's scaled 2x, or 1.5x down. And it Just Works because there are APIs for native applications and in CSS that expose the pixel density so that developers can deal with it gracefully. Why not do the same for other devices which are also supposed to be high resolution—and more importantly—resolution independent?

The truth is, all of these devices have different pixel densities, and we're supposed to be moving in a resolution-independent direction, such that the physical size of the device and the number of pixels on its screen are completely arbitrary and controllable variables. Especially on mobile, interfaces depend on physical size, not on resolution; the size of a the main input mechanism does not depend on screen resolution or device size—it is static. It is a finger. We should be able to control the UI correctly instead of kludging around the problem.

This idea that you shouldn't need to design apps correctly is simply an excuse for the lack of means to do so. It's a poor argument.
Here is the quick and dirty recipe for making money off volatility.

Buy a put and a call option for the same strike price. On both options place a trailing stop at a fixed point ( <- that's where skill / statistical analysis comes in ) After one of those two orders execute cancel the second order and place a new trailing stop at a lower value to prevent additional loss.

If the stock goes up you sell the put and ride the call until the price drops or you liquidate.

If the stock falls you sell the call and ride the put.

Your risk is total to the loss in time value of the option for the duration of your trade , and is capped at a maximum of the sum total of the two trailing limits on your initial purchase. If you would like me to run the numbers for it please give me a security and I can even tell you where to set your puts ( I have computer programs I use to calculate reasonable stops , and execute this particular strategy )
Found this gem on the news page
http://www.dolekemp96.org/praug296.htm

> "There's no doubt we'll look back at Web sites today and basically say ... that they were quite primitive. They don't customize what they present to the viewers' interests. They don't remember: Have you been there before? What have you seen before? And that's got to change." -- Bill Gates, MSNBC, July 15, 1996

How right he was!
Toyota to recall 2.7 million cars worldwide
Might as well ban the whole internet - it can be used to infringe!
old technology for us.. something completely new for young generation. not to mention it's a cool looking gadget. I'd have to see how nice the projection is to finalize my opinion however..
What are you using Python for? There are plenty of occations where I have made lists of dictionaries, e.g. when I have have large amounts of data that have to be outputted in a certain way, or if it's just logical to store dictionaries instead of instances of some custom class. No performance critical stuff though, and I've almost never used dict(), but still, calling this irrelevant for optimization is a bit harsh...