skysight-inc/HackerNews huggingface dataset:
> In reality, "premature optimization is the root of all evil" is advice given to new programmers so they don't waste time dinking around with micro-optimizations instead of thinking about algorithms, data structures, and higher order reasoning. (Or worse, muddying their code up to make it "fast.")

It's also for experienced programmers who dink around with macro-optimizations. For example, designing an entire application to be serializable-multi-threaded-contract-based when there's only a handful of calls going through the system. Or creating an abstract-database-driven-xml-based UI framework to automate the creation of tabular data when you have under a dozen tables in the application.

premature optimization is the root of all evil is a really really important mindset, and I agree it doesn't mean to not optimize, and many developers seem to take it that way.

X+1 = How many transactions your business does today

Y = How many transactions your business needs to do in order to survive

Y/X = What the current application needs to scale to in order to simply survive. This is the number where people start receiving paychecks.

(Y/X)4 = How far the current application needs to scale in order to grow.

The goal should be to build an application that can just barely reach (Y/X)4 - this means building unit tests that test the application under a load of (Y/X)4 and optimizing for (Y/X)4

Spending time trying to reach (Y/X)20 or (Y/X)100 is what I'd call premature optimization.

Disclaimer: (Y/X)4 is no real point of data that I know of, just something I pulled out as an example, anyone who knows of actual metrics used please feel free to correct.
Not at all. ^site1^site2 would only work if it was your last command.

The idea, I believe, is when your browsing around multiple versions of the same directory structure. The 'cd site1 site2' allows you to jump directly to the equivalent directory in the other structure.

The equivalent in bash would be something like: cd `pwd | sed 's/tmp1/tmp2/'`
Why Bitcoin will succeed
I concur. I'm 34, been programming "properly" (think C, C#, JavaScript, Python, Objective C etc) for over 20 years now, and I've noticed that in the last couple of years most of my productive coding time is just thinking.

3 hours of sitting thinking about a problem, then 30 minutes of coding. I would never have done that at 20, I'd have opened an editor and started typing because I was still learning the intricacies of the platform.
The problem is when you visit a customer using a commercial UNIX system with System V compatible commands like sh and vi.

I always have fun to see junior guys trying their way around such systems.
JSF Configuration Context-Parameters
The examples they give seem off to me - slowly-evolving thought pieces. (Of course, I understand that their examples are limited to topics they would typically cover.)

> ...and then build the article as the story develops over time, rather than just cranking out short, discrete posts every time something new breaks.

Seems to me that this format/style would be perfectly suited to more quickly-evolving stories like the Boston Marathon bombings.
If this bothers you, you might want to consider a religiously affiliated counselor. Many religious institutions offer different forms of counseling as part of their ministry. Sometimes it is just for members, but other times it is open to all.

For instance, it is quite common for pastors to have some psychological training so that they can assist their parishioners. Of course, the quality of counseling can vary quite widely depending on their natural talents and how well they were trained.

If you're non-religious, I've heard that Jesuit and Benedictine counselors tend to be quite good about taking you on your own terms.
I moved from OMZ to Prezto for this reason (its a fork of oh my). But prezto is slow too.

The only recourse I think is to go back to a clean zsh and build your own .zshrc. There are other leaner zsh "frameworks"[1] I have read of, but i intend going back to stock zsh soon.

1) - see zshuery and zsh-m on github.
Over here, on Linux-land, I used to have PS-envy whenever I thought about the PowerShell. You cured me!

Though I don't use Trash/Recycle myself, to contrast, I like the simplicity of

rm -rf ~/.local/share/Trash/info ~/.local/share/Trash/files
He probably doesn't have 64 threads, but he may have much more than 64 files or sockets. After all, the response was to the statement that "WaitForMultipleObjects as a kind of super-select to wait on anything". It clearly isn't, with this arbitrary limitation.

The problem with Windows is that there isn't any such super-select, unlike on Linux (see epoll, signalfd, timerfd...). You should take a look at my SO answer which lists six different ways to use sockets in Windows: http://stackoverflow.com/questions/11830839/when-using-iocp-...
I see your zsh and I raise you fish: http://ridiculousfish.com/shell/

Try it. It's better.
These days, I use Zsh on OpenBSD.

I don't use Plan 9, code in D or write LuaTeX, but I do use Emacs and wear a monocle. The last two are not a coincidence as the first (arguably more adequate substitute for God), invariably leads to the latter, most excellent eye wear.

And a note to my Mac friends : "Using csh is like trying to type with your feets[sic] (if you're used to zsh or ksh)."

http://forums.bsdnexus.com/viewtopic.php?pid=177#p177
LZW compression is primitive. Even in simplest case of all transparent pixels it can only do "repeat previous pattern and add 1 pixel to it" and has to start over every 4K repetitions.

But it's also easy to hack! I've developed lossy GIF compressor: http://pornel.net/lossygif

it's still worse than PNG, but would be awesome for animations. Anyone wants to help? https://github.com/pornel/giflossy/
zsh is mostly a superset of bash. you will get by.
The Geometry of Unfolding Tree Leaves
Redundant Array of Intelligence Depots :)

You'd just have to make multiple copies and put them in various locations. If you're going through the trouble of making 1, you might as make more than 1, in case the primary gets destroyed.
How to be more productive: don't intentionally and permanently stop producing things forever. :(

I have little tolerance for people that are hypocritical on that scale.
Might be the case for some, but I don't have such problems.
Keeping The Big  Small: How To Avoid Duplicate Downloads In Responsive Images
You're assuming a free market, which stops working when you have too much differentiation between products. Free market analysis stops working when you consider that at one point humans are part of the decision making process
With random allocation you need good entropy and distribution must be very uniform, otherwise you get the dyno issue we saw with heroku. I think random would still be blind to various jobs, where even the smallest of timing optimization would yield some real improvement. Perhaps with a mixed approach, and a nearly similar priority range (+\- a priority level) might be useful. Sounds like a good time to find some research about the topic.
Insofar as one is the same human being, with the same energy reservoirs and time management skills as before your child was born, this is unlikely.

Your whole post drips with resentment-fueled bigotry and ignorance, making me wonder if you're fighting for attention at your workplace or whatever, feeling unloved. Here's an internet hug. Hugz.

Many years back I -- a new graduate employee -- was chatting with my boss, who was a part owner of the company/president. He had five kids, or maybe even six. He asked me when I was thinking of having children (it was still too early for me, but just as a conversational thing), and my honest answer was that I didn't know how he could afford it.

He then told me about an Arabic parable or the like that each child comes with a bag of money.

That seemed counter intuitive to me, but my life has proven it out. I now have four children, and I would wager good money that I know more current technologies, in much more depth, than you do.

If you have the capacity, having children has a profound ability to make you focus: While I am the same intellectual being, like the vast majority of developers I was absolutely pissing time away before children, and I doubt I passed even 5% productivity. Slashdot was the Reddit of the time, and doing asinine, meaningless implementations for days on ends was just a normal day. And I know this is the case for most developers.

Now I don't have time for the bullshit. I focus specifically on the things that yield success, in the most efficient manner possible. I'm still only maybe 15% productive (still piss away a lot of time), but the result is my own company, a lot of success, etc.
I agree that computer literacy is becoming as important for everyone as reading/writing and arithmetic skills.

What I'm unsure about though is which specific skills and knowledge are most important. For instance, a huge number of people would benefit from more advanced skills with something like Excel, both in their home life and even more in any kind of job where you use a computer. But then there's a set of people who would benefit more from knowing how to do some other thing on the computer.

Everyone's subset of knowledge of English reading/writing is only slightly different. But with computers two people can know a lot about computers but know hardly anything in common. So what should be taught?

I've long thought that the most important thing is to be curious and willing to try things on the computer, because you'll end up figuring out whatever you want. But maybe there are people for whom computer skills would be very useful but they'll only learn them if it's taught. I know there are a lot of things I learned in college that I wouldn't have discovered on my own because I never would have known to read about them.
Just using zsh as a drop-in replacement for bash is pointless. You'd need to discover its features and customize it to get added value.

As a simple example, in bash if you use tab completion and there are multiple options, pressing tab again just reminds you that there are multiple options accompanied by a passive aggressive beep (it used to be this way at least). zsh lets you cycle through the possible completions.
The caching misbehavior of referencing counting has been greatly exaggerated, especially in the context of UI where responsiveness is much more important than raw CPU speed. Also, the ref counting tradeoff seems to work better for device (e.g. all the cool kids [1] are doing it).

[1] https://developer.apple.com/library/mac/documentation/Genera...

.NET still does GC, it is only the WinRT APIs (something like COM) that manage resources through ref counting. There is some cool interop magic that makes this somewhat transparent to the programmer.
Measurement can confirm or potentially at the limits replace the deep understanding you discuss.
Is performance behind other OS'? Serious question, because empirically I'm not aware of any particular performance lag.
I think this is a hard topic to cover because each app fails for it's own reasons, I've got one too(it's actually a webapp/website) and my biggest mistake was never marketing it, then lost all the momentum to keep improving it and stalled developments altogether...
Furthermore, it doesn't appear that any of these fad language repositories do any sort of package signing, so you're vulnerable not just to the people who upload their own code, but anyone who may compromise the mirrors, too, because even if you trust the source, there's no way of verifying the code hasn't been modified on the mirror.

See also: http://cristianobetta.com/blog/2013/02/02/ruby-gems-are-not-...
My first thoughts when I read this:

1. It's easy to screw up a relational database. I've seen more than a few mature relational databases... Most of them have plenty of sins, near-crippling performance snafus and other horrible legacy. Any database that is big enough and growing enough is a beast to manage.

2. From the slides, I think this guy took "Schema-Less" as a cue to stuff completely arbitrary data into MongoDB. No wonder his indexes went crazy. You still need to think about the data you're storing & the relationships. You need a design whatever database you use.

3. Any relational databases I've seen at scale have a lot of flattening. I've seen intra-day transaction dbs that are completely flattened. If your next port of call is a highly normalised relational database, you're going to hit another wall fast enough.

4. Two Phase commit. Seriously. Forget it. I've spent half my career in financial institutions. Quick, fail-fast processing with a reconciliation process is by far the most common approach. 2PC actually slows you down and introduces another component that gets in the way. It's used very sparingly (and even then, usually causes a world of pain).
Education economics upside down
Very late reply, but I tried win7 x64 and x86 with 4GB. Taskmgr shows the ram usage jump from 900MB to 2.5GB after a fresh reboot.

I tried downloading the entire page (html,css,js) and increasing TOTAL_MEMORY (et al) in the js, but with the same result.

Nightly-23 from 07 May (firefox-20.1, same result). It did work on ubuntu-amd64 though.
Full Stack Developers: Renaissance Men of The 21st Century
Sen. Leland Yee Proposes Regulations On 3-D Printers After Gun Test
You are right, it's a lot of tools for FE development. However, (IMHO) when I used this toolkit, I felt very productive, for example, if you make a change in the CSS, the UI is automatically refreshed (no need to manually refresh). The final build process optimizes PNGs among other things. All in all, it felt that someone has thought of everything that a webdev needs and put it in.
> It's better.

What's "better" about it?
Backward compatibility is an OS performance metric. Maybe sales is too. Microsoft has to think long and hard about any kernel change. In some irony, Microsoft doesn't own the Windows code, and any individual can own the Linux kernel - i.e. Windows lacks forks.

That Microsoft discourages individual junior developers from cowboying, is a point in their favor. Optimization for its own sake is not what benefits their users - real research does.
What shall we call WINE then? A "pretender"? I'm serious btw. I've never seen a good concise explanation of the way WINE works in comparison to say, an emulator. I have a fairly good idea myself, but I wouldn't want to have to give more than a very brief talk over it.
Linux/UNIX is not omnipresent. Better use Windows?!

You should use different software or customizations when it's a good trade-off, not because everyone else is or isn't doing it.
All your base belong to the Twidiocracy
Stop designing in abstracts. If you're making a browser-based app, design it in the browser.

Also, no app fails _just_ because it had bad marketing and design. There's probably an underlying flaw in the concept itself. I'd look there first.
yes, bash is great except it's not default sh.
While we're at it why not regulate lathes, cnc machines, and hand tools?
> McDonald appear to recognizes that flaw, and is trying to fix it. He admits he's not a dev, and so he tries to understand enough to do no evil.

But as TP said, a bit of programming teaches you nothing useful about managing tech.

If I'm going to deal with builders in my job, it doesn't help anyone that I spend a weekend building a bird feeder. They talk structural integrity and insulation levels to me, and my experience based managing "How do you assure the planks are aligned correctly? I have some extra nails in my shed - can I reduce costs by donating them to the project?" does nothing but annoy and insult.

As a techie, my job is to make technical decisions, and translate technical considerations to the business people. I do not expect them to understand my field; I expect them to respect my expertise.
The best hacker I ever knew used dvorak. He went off the grid to become a welder or something, but he was _fast_.
Really? Here are the last three big ones, and there was a bad one in 1889–1890 about which we don't know much except that "About 1 million people died":

Hong Kong Flu (1968–1969), "killed an estimated one million people worldwide." http://en.wikipedia.org/wiki/Influenza_pandemic#Hong_Kong_Fl...

Asian Flu (1957–1958), "Estimates of worldwide deaths vary widely depending on source, ranging from 1 million to 4 million." http://en.wikipedia.org/wiki/Influenza_pandemic#Asian_Flu_.2...

Spanish Flu (1918–1920), "It infected 500 million people across the world, including remote Pacific islands and the Arctic, and killed 50 to 100 million of them—3 to 5 percent of the world's population at the time—making it one of the deadliest natural disasters in human history."

"Most influenza outbreaks disproportionately kill juvenile, elderly, or already weakened patients; in contrast the 1918 pandemic killed predominantly previously healthy young adults." http://en.wikipedia.org/wiki/1918_flu_pandemic

That was the big one, and if you talk to your elders they'll remember the first hand stories they heard about it. Few families escaped unscathed, I lost a great-uncle. A repeat would be catastrophic, and efforts to avoid it are not "overhyped", except by the always excitable media. To dismiss such a well documented, in living history threat as being "for the benefit of pharma companies" is beyond blind.
We have been working on the notes feature.It should go live within 2 weeks :)
Great insight thank you for sharing!
No they are not - and a lot of people misunderstand why.

It's true that in any normal year more people die from known diseases, and that pandemics are a rare occurrence. But when they happen they kill a lot of people. The 1918 flu pandemic killed 100 million people. 1 out of 20 inhabitants on the planet. And remember that this was back when we didn't fly around the planet giving a virus the possibility of spreading to the entire globe within a few days.

That's why pandemics are so scary - when they kill they kill a sizable portion of the earths population.
I use Dvorak. I never bothered to maintain the QWERTY keyboard for vim movement. Now, it seems completely natural to navigate with the Dvorak mappings for h,j,k,l, etc. I can't easily navigate one-handed, I guess, but that is never really a problem.
It's got all the zsh features and doesn't need 4 seconds to start, like zsh did for me with oh-my-zsh.
Ask HN: Boston (free) hacking spaces?
Hi HN Boston, I'm a learning web dev who's passed intro CS courses but still feels the need for guidance at times. I also want to get out of the house.

I think a hacking space would be great for me to meet others and work together at times.
But I'm not interested in a coworking space.

Is there a (free) area where devs congregate and where I can meet people?

Thanks.
I think the list is incomplete. One needs to know how to sell your product too inorder to become a "Renaissance man".
To be fair, and in context: neither does Microsoft.
Path replacement is also possible in bash, as in:

cd site1 site2

if you just add this line to your ~/.bashrc:

function cd() { if [ $# -eq 2 ]; then builtin cd ${PWD/$1/$2}; else builtin cd $1; fi }
The canonical version is Alan J. Perlis Epigram 21:

'Optimization hinders evolution.'

If you have a black box, then optimize the fuck out of it. The Windows kernel is not a black box.
just use antigen instead of omz - it can use any plugin from omz but seems to be a bit more lightweight
Mailbox, Google Maps, iCatcher (podcasts).

Apple has changed, and it has changed for the better.
I think the zsh-vs-bash debate is centered on minimalist vs. full-featured. For instance, the git completion example is very ugly in zsh to me. I know what git commands do, and I'd much prefer for the completion to take 1-2 lines total than one line per possible command, as in the zsh example. The prompt examples are similar -- my PS1 is

local green="$(tput setaf 2)"
local reset="$(tput sgr0)"
export PS1="\[$green\]>>\[$reset\] "

And a multiline prompt, let alone one with right-justified elements, is pretty gruesome to me.

The first slides about availability on Macintoshes don't resonate, because I'm going to have MacPorts on any dev box and use that to install the latest. It's more likely I ssh to a server that has Bash 4 and no Zsh than anything else, so it also makes sense to know bash and have a good .bashrc ready to scp up there if I'm going to be doing a lot of work on the server.

zsh spellcheck is very annoying, thankfully it can be disabled. This is my preferred spellcheck solution ;^) https://github.com/mtoyoda/sl

All that being said, zsh is a really cool piece of software. It's one of those things I've always wanted to really stretch to its limits, but I've never been able to hang with it for more than a few months, which I doubt is enough time to really become accustomed to the workflows zsh allows (like the /u/b/... expansion example in the slides).
Show HN: Second Screen discussions in Twitter
hjkl are almost worthless compared to other means of navigation and you wasted 2 hours and 10$ to fix them for good.

Vimtutor teaches you most of what you learned but for free, within Vim itself and in the context of actual text editing.

If you want to learn Vim, use it.
I guess they were finally able to turn it off and then on again.
Why are clients shocked by the price for web development?
In my experience as a web developer for the past year, it seems that many clients are shocked by the price for a website where they want specific functionality created just for their business. Why is this?
It's amusing watching Americans boast about working past the norm 9-5 hours and calling the rest of the world lazy. My response, "What are you proud about? After working twice as hard, you have the same quality of life as friends in Canada, and statistically speaking you'll drop dead sooner because of stress."

That always wipes the smug grin of their faces.
Bash has been the default shell since OS X 10.3 in 2003.
Around 250k to 500k people die from influenza epidemics each year (according to WHO, and the Doctor). The second wave of 1918 flu pandemic killed around 30M to 100M people from the 500M people infected.

There's two factors to flu virus : spread and severity. The last influenza pandemic may have been "overhyped" and exploited by pharma companies, but we were also lucky that it had high spread but relative low mortality rate.

The NCoV seems to have a high mortality rate. "Prevention is preferable to cure" (moreover when there isn't any cure ready yet).
Agreed re: looking at well written open source code.

For example, take a look at the source code for Flask, the micro-framework: https://github.com/mitsuhiko/flask
Considering linux actually hasn't done this yet, that seems like a weak argument. Are there better examples?
In a publicly traded company, such as Microsoft, that doesn't take long. It is shareholder value. It is not Optimization "for its own sake" promoted in the article. I savvy developer made need to run business tests against their software.
From http://www.goodreads.com/quotes/65213-briefly-stated-the-gel..., a quote by Michael Crichton:

"Briefly stated, the Gell-Mann Amnesia effect is as follows. You open the newspaper to an article on some subject you know well. In Murray's case, physics. In mine, show business. You read the article and see the journalist has absolutely no understanding of either the facts or the issues. Often, the article is so wrong it actually presents the story backward—reversing cause and effect. I call these the "wet streets cause rain" stories. Paper's full of them.

In any case, you read with exasperation or amusement the multiple errors in a story, and then turn the page to national or international affairs, and read as if the rest of the newspaper was somehow more accurate about Palestine than the baloney you just read. You turn the page, and forget what you know."

Nowadays I only follow the conventional media to know what they think is important, since that drives a lot of important things.