skysight-inc/HackerNews huggingface dataset:
I think whenever the topic of premature optimization comes up most people forget the whole Knuth/Hoare quote:

> We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

Everyone seems to latch on the second part, but the first part, and the context, are very important. At the time the quote was first coined they were considering "premature optimization" to be the use of "inc eax" instead of "add eax, 1". The key, I think, is the bit about small efficiencies -- we shouldn't worry that "inc eax" uses two bytes less than "add eax, 1" from the outset, but cache thrashing should definitely be a concern.

Optimization is something that should always be in a programmers mind, especially when programming embedded machines. If you're not at a point where you are optimizing the code you are working with then you should be writing it in a way that it can be optimized down the road.

I would think that anyone who uses "premature optimization is the root of all evil" as a retort is fair game for being challenged on how they would actually optimize their code when they have the chance :)

(disclaimer: I write code for video games, my world view may not be the same as yours, though I still believe this applies globally.)
Probably not. I know a lot of designers who have become good enough at programming to do most of the things that good programmers can do. I know very few programmers who are even passable at design work.
Zappos Headers
GiveWell
How many "apps" does facebook have?

Because the app count should be subtracted from the user count.

I bet the real number of active accounts is half that or less.
There's a difference between being slightly better than something that's still satisfactory, and being good in comparison to something that's no longer satisfactory. Look at X11: everyone used XFree86, even though forks were possible—until they decided to go in a direction people didn't like. Then people started using X.Org pretty damned fast.
Don't a lot of Open Source companies make you sign copyright over? Or is that not the case. How did MySql handle this since they were dual licensed?
Changing which root certs your browser (or everyone's browser) honors is a less dramatic move than deprecating the world's best-tested crypto protocol and replacing it with something new.
Only if you sign a contract like that in founding or funding the company. Most entrepreneurs I know actually start many things as once- so I would guess they don't let set a clause get in and/or they set up another shell entity to own their other work.
I agree there has to be a saturation point they will reach. I thought it would have been reached before 500 million users though. I think Facebook could do very well in China, just like they are on the way to becoming #1 in India and Brazil.
I'd change this text: "Hackathonia is about bringing bright, motivated people together to build amazing apps in competitive yet collaborative, team-based competitions known as "Hackathons"."

I'd put something like:

"Hackathonia is a great way to find "Hackathons" near you. Hackathons bring bright, motivated people together to build amazing apps in competitive yet collaborative, team-based competitions."

That way you get to the meat of what you do faster.
Spot the Latest Trends
I'm not really familiar with Perl 6, but I'm pretty sure it's still dynamically typed.

Perl 6 allows optional typing.

After all, it targets Parrot, which is specifically advertised as being a low-level target for dynamically typed languages.

Parrot allows type checking. Very few languages of which I am aware perform it to any degree, but nothing about Parrot rules it out.
As someone who learned C++ few years back let me tell you that professors in Universities actively discourage use of Boost.

I'm curious - why is this? Do they just not like students leaning on libraries at all, or is it something specific about Boost? I suppose supporting an entire classroom of students trying to install/build the thing across a dozen different operating system versions might be something that a professor would want to avoid, but this is a general problem with most tools, so I don't think it should be such a show stopper...

For me, Boost is to C++ as Apache Commons is to Java: literally the first thing I drop in to any project where I'm going to be doing heavy lifting. To some extent, these two mature and highly useful libraries (I guess I should say collections of libraries, really) are the main things the corresponding languages have going for them.

C++ without Boost is just an exercise in pain and humiliation, IMHO...
No, but the documentation is horrible. Somebody should create those 2-3 pages of documentation.

Actually the web.xml spec got much worse somewhere in the increasing version numbers of Java Servlets. I rememeber just thinking "WTF" when I realized it was several 100 pages now. It definitely doesn't need to be that long, but I guess they wrote the documentation "enterprise style". It's just off-putting, who cares if the documentation could be simpler? They didn't make it simple, so I don't like it. Especially since the job of a Java developer is essentially digging through the mountain of specifications.

In my companies library there is a book "Handbook Of Java Development" with 1300 pages in small print. I think somebody left it there as a cruel joke.
"I've built some large machine learning systems with it and I couldn't be happier."

Does Haskell have good matrix libraries? That seems to be at the core of a lot of machine learning tasks, and when I briefly checked a few years back, I didn't see any Haskell native matrix libraries. I think there were LAPACK bindings, maybe.
That's essentially the same idea. See also "working with Unicode strings in different encodings" or "working with values of different (but compatible units)".
I'd never never heard of Amdahl's Law before so I looked it up on Wikipedia.

Essentially, Amdahl's law is used to find the maximum expected improvement to an overall system when only part of the system is improved.

http://en.wikipedia.org/wiki/Amdahls_law
A good IDE can help most of the issues you mention. Eclipse is free and you can compile Java web apps in it without Ant. I've worked places whose deployments involved making a WAR file from Eclipse. Configuring Tomcat in Eclipse takes a few clicks to basically just point to where you have your Tomcat directory. Compiling from Eclipse requires you to click a green arrow icon.
Don't forget about java!

public static interface a
{
public int a( int a );
}

public static a sum( final int n )
{
return new a() { public int a( int a ) { return a + n; } };
}

public static void main( String[] args )
{
System.out.println( sum( 3 ).a( 5 ) );
}
Thanks for pointing out the right term. However, the site does not use HTML5 placeholder and instead rely on plain JS to do the trick. What I wished for was a behavior like in the demo here: http://diveintohtml5.org/examples/input-placeholder.html
That is 500 ACTIVE they say. I'd guess they have close to 600million accounts, maybe 650m.
For me, it's purely emotional.

My last class at Uni 2 years ago was a survey of web dev technologies. We built sites using ASP.NET, Perl, PHP and JSP. Java and asp.net were tied for worst experience ever. Setup and configuration of the Java stack was 2/3rds of the project. And, that's after taking 2 years of Java in school. Setting up a Java stack on a Ubuntu or a Windows box was equally as painful for me at the time.

My experience at school as made me loathe to try anything Java related. And, while I love the idea of the jvm, I have a pretty visceral emotional reaction to anything java related. I know it's wrong, but I can't even bring myself to do the installation required to mess around with Clojure or Scala.

I get the same vibe from a number of young developers I come across at Hackers and Founders SV meetups that have recently graduated from school. Someone mentions Java at our meetups and everyone at the table groans.

Python and Ruby are essentially lingua franca here in Silicon Valley startup culture, with C and C++ mixed in for speed. I've settled on Python/Django for day to day dev work.

In my case, even though Clojure and Scala look really sexy. The thought of installing a jvm based development environment makes me break out into a cold sweat. If I'm going to play around with a "sexy" language to learn stuff I'm going to play with Haskell, Erlang, or O'Caml, just to avoid using the jvm.
substantially isn't really defined. and if you submit them to article directories and the like... whose responsibility is it?

Oh yeah, don't point to the original article, build it to your landers :)
I would love to see the recursive XP desktops. And a Hackintosh too! (Tiger runs well with VMWare, so maybe that's possible)
Arguably, ruby does this.

If so, you could make the argument that an ORM library does the same thing.

I don't make either argument.
fyi, Webvanta is built with Ruby on Rails, and a bunch of other stuff... It is a designed as a SaaS system and uses a cluster of servers running various things (nginx, clustered MySQL, and a few others). As noted above, there's some more details on the technology we use at www.webvanta.com/technology.
I agree, but look at how many comments on the post. Perhaps there are some parallels to selling to customers, what matters not is what you have, what matters is how you color it?
Premature optimization can be a form of procrastination.

If you're looking for a way to avoid something, PO is an easy out. It even looks like you're doing something.
Yes, but the question was about jsp, which doesn't require any fancy tricks. :-)
90210 Mobile Media? Text VIP to 90210 for Details
I have recorded the video, it's pretty awesome. Uploading to youtube in a minute!
So this is an article about how newspapers need to learn how to deal with the web as a source of news. A few years back I read Walter Isaacon's biography of Benjamin Franklin and guess what - Franklin and plenty of other Americans back in the day ran tiny newspapers comparable in content to today's blogs. I'm going to end up doing a blog post about it at some point, but it kills me that journalism and freedom of the press today are considered to be the New York Times when the founders were thinking more like the Pennsylvania Gazette.
I sent them $50 two years ago, and I got swamped by mail. Definitely off putting.
Except future rounds of capitalization might be invalid since Zuckerberg didn't have the legal right to dilute the shares he didn't own.
Concur on both. It sounds like we're in the same tiny statistical bucket.

By the way, there is a variant of "googleable" that I find to be a valuable property for names in a codebase, and that is "greppable". I try to make sure that the name of any important concept is a unique string in the program, so a simple grep will yield all the places it occurs. I'll even rename things that aren't as important, if their name includes this string, to preserve said uniqueness. (And no, the 'find usage' feature of IDEs doesn't come close to satisfying this need, since a concept can appear in many ways that don't yield to code analysis, such as comments.)
Use netbeans! I haven't had to manually hack a web.xml or build.xml in years. I do lots of Java development without touching XML.

Managing that stuff should be left the IDE, that's the sort of thing that XML was originally meant for, at least.
Apple lays out location collection policies
Sadly, I've done this even knowingly. It's like mentally pacing from one side of the room to the next. Aware you're doing something, but it's not necessarily getting you anywhere.
You could argue that considering the public perception of MPs right now £65k isn't too bad for them.
Not necessarily just politicians, but government workers in general. Low level people like janitors are generally overcompensated compared to their peers, but higher positions like programmers, scientists, analysts, managers, etc, typically make far less than their industry counterparts. I personally know a few government scientists who make about 40% of their industry peers.

Because of that, I think you see a lot of corruption, indifference, or laziness due to workers "compensating" for the pay differences. It certainly doesn't help morale.
What a load of crap. I have worked for the same company for 12 years and have provided more value every year. Several of my co-workers are in similar situations. Alex Papadimoulis obviously doesn't understand how to do proper staff development. Software development organizations have little or nothing in common with law firms.

And the use of the word ‘crisis’ in the title is stupid. Everything is a crisis now; we have a healthcare crisis, unemployment crisis, foreclosure crisis, energy crisis and apparently now we can add IT turnover to the list. If everything is a crisis then really nothing is a crisis.
They call it patent trolling; I call it poetic justice.

The companies that are extorted by patent trolls are the same group that agitated for today's over-broad patent system in the hope that they could wall out smaller competitors with thickets of mutually cross-licensed defensive patents. They created the conditions for parasites to thrive - now they have to live with the consequences.

...or they could support patent reform.
Tell HN:  Appsumo's current deal is nice for startups/freelancers
Just thought I'd spread the word, since its a lot of good stuff for a fresh startup or freelancer:

- 6 months of MailChimp, BatchBlue, FormStack

- $120 credit at FreshBooks

- 100 pack of Moo MiniCards

$55, plus some of the proceeds donated to National Wildlife Fund.

http://www.appsumo.com/

Feel free to flag as spam if anyone doesn't think this is appropriate.
Has been revised.
$75,000 for a satellite black box plus $3-$5/minute to send the data?

Just screw one of these onto the plane:

http://www.findmespot.com/en/index.php?cid=102

$170 + $99/year for the data plan.

They would have a much better idea of where the real black box landed for a trivial cost.
AppSumo Entrepreneurs Bundle ($55 for Mailchimp, Freshbooks, and more)
I've argued in the past for 'const' being a feature of C++ that would add value to other languages, but this article shows it's a more subtle and confusing abstraction than it appears. I'm not convinced the abstraction actually leaks - both the author's complaints are examples of "things you thought const guarantees when it doesn't" rather than "ways to circumvent what const guarantees" - but it doesn't mean what you'd instinctively hope it means. (I feel this oblique Princess Bride reference is justified given that, if you say 'const' in any part of your program, you really do have to keep using that word.)

With all the talk of "support for immutable datatypes" I hoped Scala would do more to support this sort of programming - e.g. statically guarantee a function didn't mutate its arguments - but it actually offers less than C++ did. Forcing you to make the val/var choice for each variable is a nice improvement over Java's "mutable unless you go out of your way", and having performant immutable collections solves a common case (final reference to a mutable HashMap); but you're still basically relying on code inspection or documentation to tell you whether a given class is immutable. Having the type system able to tell you that would help both the authors of a class and its consumers.
Damn, that is annoying! It totally screws up the back button functionality in Safari:

http://imgur.com/41rrV.png
"Does Haskell have good matrix libraries?"

Last I checked it didn't. But you can FFI bind to any C/Fortran library of your choice(which is what I did).
Apple, Google, and Others Hit With Patent Lawsuit Over Spam Email Identification
I wonder if the effectiveness of #1s is based on the person's interests and what itches they are scratching. Since for many devs their first inclination is to scratch their development itches... however in a fair few cases you are putting yourself in a market where your own audience might be able to do as well/outdo you, making things tougher.

When you're writing tools for less technical groups, and taking the effort to make them highly usable by those who are less technically savvy the odds of running into similar problems are lower.
Why do you believe the market works worse than in the past? I'm genuinely curious why you think this, because based on what I can see, the market is vastly more efficient today.

In the past, you'd pay a market maker 1/8 or 1/4, and even then only in thickly traded securities. In thinly traded securities, your order might just go unfilled. The market makers were humans with a physical seat on the trading floor rather than a server in a colo and you'd pay your broker $100/trade (assuming you could get him on the phone).

Now you pay a $0.01-0.02 spread, maybe $0.10 on thinly traded securities. You pay your broker $0-$10/trade and you can trade from your N1 or iphone. A colo server is also much cheaper than access to the physical trading floor.

HFT provides value: liquidity and immediacy. If you don't believe that is worth $0.02, you can place ALO orders and you won't need to pay for it.
I know that Fleaflicker which was posted here was a java based app. So they are out there, but I think more of them are from the 2000-2003 time frame. Has anyone here gone from the Java Stack to RoR? What would you recommend to anyone making that transition? I want to make my next project a "learn a new lang" web project. I fairly strong understanding of the Java MVC(Spring, Struts 1), and DB transactional frameworks(Spring JDBC, Hibernate) and wonder what I should be reading for a transition?
How do you do #2? Do you have a solution in mind and then look for customers or is it a matter of asking people what their problems are or a bit of both? Do you do cold calls?
clickable: http://www.appsumo.com/
I find javadoc very ugly and annoying to look at. Dumb reason, I know but I can't get past it.
Schmidt makes great arguments for why government should not meddle with newspapers. Unfortunately the same arguments could be made to say government should not meddle w/ ISP's who charge web services for premium pipes.
c'mon now. boo on sneaking an affiliate link in.
The most important things we changed are:

- Pluggable dispatcher, as the original webmachine copies all dispatch rules for every request. This gave us the greatest speedup as a Zotonic server typically has hundreds of dispatch rules.

- Removal of all process dictionary use. This makes testing easier and also gave a nice speedup.

- Use proplists instead of dicts for small dictionaries.

- Use a memocache for the resource callback functions.

- Removed the use of parametrized modules, this enables us to copy less data (and gives simpler code).

- Added support for protocol upgrades (for Websockets)

Our dispatcher also accepts regular expression checking on uri parameters. And it uses a different approach to vhost handling, allowing a redirect to the main hostname (which is needed when you set browser cookies).
This explanation, while popular, always seems to willfully avoid taking social capital into account.

"There's there door, you can leave any time" isn't an answer to the people who are invested in a community and actively seeking ways to ensure its success.
1. Perhaps we need to actually have the hardware before we can start playing with it, and come up with solutions. That's how it usually goes.

2. Maybe they are jumping ahead to "many-core". Instead ask: what can we do with this extra silicon? In the past this lead to cache; pipelining; a faster multiplication technique; on-board maths "co"-processor. Today, it gives us systems-on-a-chip; hardware video-decoding; absurd GPUs; and even physics PUs.

I spoke to the person who developed that multiplication technique, and he said that it was due to extra silicon being available - it was inconceivable before then, in that people did not conceive of it because they could not conceive of something so wasteful of silicon.
You can do that with a JSP page, and Tomcat. You can use JSP very much like a scripting language (no need to hit a servlet, controller, etc), but obviously it can get a little messy to manage depending how large of app you write.
* More than 500 million active users
* 50% of our active users log on to Facebook in any given day
* Average user has 130 friends
* People spend over 700 billion minutes per month on Facebook

# More than one million developers and entrepreneurs from more than 180 countries
# Every month, more than 70% of Facebook users engage with Platform applications
# More than 550,000 active applications currently on Facebook Platform
# More than one million websites have integrated with Facebook Platform
# More than 150 million people engage with Facebook on external websites every month
# Two-thirds of comScore’s U.S. Top 100 websites and half of comScore’s Global Top 100 websites have integrated with Facebook

http://www.facebook.com/press/info.php?statistics

They aren't going anywhere for awhile, this is exactly why I've spent so much time developing apps JUST for FB.
It mentions Postgres in the installation instructions. Works for me, although I suppose it's better if it's not tightly bound to one particular thing.
Personally I think that the chaps should focus on making the product even better instead of branding - the name can obviously change later when they decide to push for market release and by then they probably would be clever enough to seek the wisdom of someone to help them there.
Very impressive - so is the main use case remote desktop without installing any software (Goto My PC killer)? Or browser testing? Or what?

I think it's awesome I'm just having trouble visualizing a use case that isn't super nerdy.
IMHO the answer is here in this thread... which would you choose?

a) php
b) rails
c) Java + JSP/Servlets/JSTL/Tiles/Struts/Spring/JSF/Play/Wicket/GWT/Stripes/Tapestry/WebObjects
Bach didn't write pop music that was the product of the current culture. He wrote in a style that was considered archaic and byzantine; a dead style even in his time. Baroque music was dead and classical music was on the rise. He was always well respected, but never popular in his lifetime (or generations after).

I also object to your claim that Lord of the Rings invented its genre. I don't know who considers Inception a masterpiece in the same way Lolita is. And so on. I'd complain more about all the wrong things you wrote, but I wonder if there's a point. It just bothers me when people try to get all intellectual about things of which they clearly have no knowledge.
Altogether these optimizations make quite a big difference, removing over 1ms from every request.

if you're interested you can clone zotonic's webmachine from deps/webmachine in the zotonic hg repo.

we sent these changes to basho (justin sheehy) but up until now they never took a look at it although they promised it. We're still hoping they include the changes however.
@DBAHULK: HUMAN HAVE NO CACHE LAYER, WANT MORE DB? HULK LAUGH. HULK THEN CRY
". You can easily rent 10 virtual machines with Linux, Windows, MacOS, and other operating systems and test your software."

Linux I can see. Windows and especially OSX though, won't that create licensing issues and a special deal with MS / Apple to provide those VMs?
75% of gamers have bought virtual goods
I dunno, I'm just surprised to see the lack of recognition apparent in a thread on Hacker News about someone who I think of as a notably important figure, a hacker elder. I'm not from that era, maybe I just read too much Slashdot back in the day.

I think a lot of people are turned off by esr because of his arrogance and ego.
Ruby deployment has gotten at least an order of magnitude less painful in recent years, particularly with Passenger (http://www.modrails.com/). On a couple servers I run the average memory footprint of a Rails app on Passenger (per instance) is 50-60MB.
And are they successful? Do you make money from them (if that's your aim)?