7 billion is way too much. We simply cannot continue to eat cows at that rate. Worse: if we want to stay at 7 billion the "poor" countries won't be able to raise their standard of living. We already bombed: too many cows farting, too many fossil fuels being extracted.
We're already killing bees, potentially disrupting the gulf stream (up to the point where it's expected to be so problematic for planes in as few as 25 years that planes shall need to use safer, and longer, aerial routes). We're already seeing people trying to push "protein from eating insects" in the western world: simply because we're way past the limit with cows. We're also killing too many trees.
"No more population bomb", I agree with that. But we already bombed and it's gonna get ugly.
Totally different experience here. I've written more than ten books and I'm coding nearly full time.
Keyswitch matters a lot. I've tried Cherry MXes, ALPS and I've used good old IBM Model M for more than a decade.
One year ago I discovered Topre switches and now I'm using a HHKB Pro 2 (Happy Hacking Keyboard Pro 2).
I know it's great on HN to get upvotes to write: "TFA is pointless, it's not X that counts but Y" but IMHO you're totally off.
The switch does matter a lot. First find a switch that doesn't destroy your fingers' joints and that feel good, then find a keyboard with a form factor that you like, then find a key layout that you like (Dvorak or QWERTY or whatever).
The reason JavaScript is dog slow is single-threading. That's quite a huge handicap on today's hardware and it's only gonna get worse and worse until JavaScript engines becomes multi-threaded.
Besides that, I don't disagree with TFA when it says: "Garbage collection means cleaner APIs which can intelligently allocate their own buffers and can therefore relieve the user of what can be a tiresome or error-prone burden."
But that's certainly not an explanation as to why GC languages are not slow. (and I'm not saying GC languages are slow: all I'm saying is that saying that GC leads to cleaner code has nothing to do with performances of the runtime)
That dude was already trolling Usenet's comp.lang.java.* newgroups back in the days...
And I hated the dude back then. But now to be honest he's obvioulsy more experienced and although he's not a native english speaker some of his writings are quite OK. For example I've seen some good Emacs functions and explanation from him.
It is impossible to reverse because information is lost. There's an infinite number of "plain text" leading to a same hash.
If you could reverse, say, SHA-1, then you'd just have invented the best compression scheme ever and the world as we know it would be no more: the implication would be huger than anything we can imagine. You could compress a full movie in a SHA-1 hash. Not. Gonna. Happen. It is impossible.
The problem is not reversing information: reversing is simply impossible.
The problem is finding collisions and hence being able to create plain texts that shall lead to the same hash.
Congratulations and thank you Linus. Thank you so much.
As Linus said (paraphrasing): "I realized that in two weeks I could code something better than any single VCS out there".
Linus' kind of passion and hatred towards mediocrity (CVS and SVN) is a kind of attitude we need more. Not from everybody but from the true creators. Linus is one of these "unreasonable man" upon which progress depends on.
Long life Linus and long life is "vocal" point of views.
I used to compete in TC many years ago... Back in 2005 or so. I was a high-ranked "yellow" coder in division one. I never made it to red.
It's a humbling experience: some of the topcoders there were simply geniuses. One of them red coder had won some US national math contest four times or so. They were making tens of thousands of $$$ by participating in contests.
You're not beating these "red" topcoder guys: you simply are not smarter than them. And I'd say that saying that a guesstime of 90% of the coders here couldn't reach high-ranked yellow either is probably very conservative.
They're not just Mensa and Triple Nine and whatnots: they're also very knowledgable about computer science and both algorithms and "tricks"... And boy do they type fast.
So what's next in typical HN fashion? Criticizing "intelligence" as not being representative of coding skills, criticizing IQ tests as not being representative of intelligence and criticizing top coder as not being "real programming" and hence not representative of coding skills, etc.
What I really liked about TopCoder is that it was (probably still is) a "put up or shut up".
You think you're better than 75% to 100% of coders out there? Go participate to a few TopCoder contests and get your arse handed to you and then we'll talk again.
NVidia being a "distant fourth" as TFA mentions is directly linked to their lame behavior since basically forever with Linux.
As Linus recently said in a talk at Aalto uni, NVidia badly wants a part of the "900 000 new Android phones bought everyday" market and them being at only 6% is pathetic.
But you get what you deserve: this is karma getting right back at them.
As Linus said in it's Aalto talk: "Fuck you NVidia", referring to the fact that their share of Android phones was lame and mediocre and that this was directly related to their attitude.
I'll make sure to never ever buy any laptop / desktop / Android phone / tablet containing an NVidia chip.
Karma is a bitch and it took a long time for NVidia to get it deep. But this time they got it very, very deeply.
People still complain about how complicated it is to match parentheses and other non-sense like that.
Truth is things like Emacs' paredit are the nuts. Honestly you have to go out of your way to get unmatched parenthesis/brackets/braces when you're using paredit.
Coding in Clojure with paredit feels like you're directly manipulating not text but the AST.
People who have never slurp'ed and barf'ed Lisp code using Paredit or something similar simply aren't qualify to comment about the difficulty of editing Lisp code. As simple as that.
Clojure puts the emphasis on functional programming and the context should hardly ever be "global".
So I don't think it would make much sense: the context is the sexp you're currently in (recursively of course) and that's it. Sure it may help a bit if you're inside, say, a let and have a "long" function: so you'd be on a "var" (they're not vars but bear with me) and that same var would be highlighted inside the let. Why not but... You do know anyway that it cannot come from anywhere else because you shouldn't be using globals in the first place.
I do certainly try to only write referentially transparent Clojure function so this kind of coloring really wouldn't help me a lot.
Now of course there is an Emacs minor-mode which does modify the background of each sexp recursively inside your function should you like such a thing. (I'm personally fine with indentation and rainbow parentheses but YMMV)
Well... "Code like this" and "micro-optimization" are basically what powers the 900 000 Linux / Android smartphones sold daily and 1000+ cores CPUs running Linux.
The very reason why such an OS is so fast on such a wide range of devices is because there are kernel developers who value micro-optimization and who constantly revisit their program, trying to lower the number of cache misses and trying to reduce contention.
As Linus Torvalds recently --and a bit provocatively-- said: "I don't do web development... Because I like programming".
We're living in the comfort of our unit tests and frameworks and whatnots and can afford to be on our good practices high-horses... But we should never forget that meanwhile there are people out there bringing us the best of the best because, precisely, they're doing everything we see as "wrong".
Most non-vim / non-Emacs users are actually doing post-fact rationalization: you never hear, say "Text editor Blub is faster to edit text than Emacs/vim". What you hear them say is "You don't need to edit text fast, most type spend coding isn't spend typing but thinking".
That is 101 post-fact rationalization: they try to justify the fact that they fully know their editor isn't faster to edit text by explaining that no one should care about the speed it takes to edit text.
This is silly beyond imagination. In a way I'm glad such people aren't part of the vim / Emacs community because you can't really have a meaningful discussion with these people: they're trying to shift the topic.
Appeal to authority: I suggest reading Paul Graham's "Beating the averages" and "Being Popular".
Then come back arguing but please cut the post-fact rationalization dishonesty.
FWIW I'm using IntelliJ IDEA since version 4 or so (bought version 12 during doomsday 75% off but didn't even install it yet)... Yet I spent nearly all my coding time inside Emacs.
As soon as you start to write Lisp / elisp to adapt Emacs to your workflow (and not the other way round), a whole new world opens to you.
Yup. Mainly a Java dev here and I haven't even yet installed IntelliJ 12 seen that I'm always under Emacs. I figure out that during some crazy refactoring session IntellIJ may come handy due to Java / Visual Blub's extreme verbosity and redundancy and countless lines of unnecessary code that can be generated automatically (really highlighting one of the many Blub flaws)... But I prefer to code.
Yes it is. I think part of the problem is that during the interview and interviewers themselves can answer questions like: "How would you inject here xxx using Spring" (or whatever) and the developer can say something like "I'd use the @Value annotation" and that's basically all the interviewer also happens to know, in his very particular OO+XML+Hibernate+SQL hell.
Yet none of them have basic computer science skills.
Part of the problem is all these people who think that plumbing frameworks and APIs is "programming" while it's just code monkey'ing.
At one point we should get back to the real basics: I know my computer science stuff and I could actually write frameworks and APIs.
We should focus more on interviews that tests basic CS programming knowledge and understanding how you create a framework, not how you use one... Because obviously people knowing enough as to how to create a framework know how to use one.
"...containing a database name that begins with '-'..."
And some people are laughing at me when I establish guidelines mandating (and enforcing in build scripts) very script rules as to precisely which subset of ASCII is allowed in filenames / identifiers / etc. in our codebase and in the builds we're producing.
"I'd personally like to do a Paul Krugman generator. But I don't have the CPU power to crank out that level of bullshit."
You made my day, nearly spilled my coffee ; )
It's easy: never predict anything more than a few months ahead ahead and for any problem suggest to a) print more money (even minting $1 trillion coins if needed) and b) involve more state.
Modifying what is served to users and the fact that they ISPs can technically enforce things such as x-strikes means that we're just that close to disrupting major botnets.
All it takes is one major ISP to start serving pages saying: "You're computer is infected with a virus / trojan. If you take no measure to remove it in x days we'll cut your Internet access. (click here to know more)".
It's not fool proof but it potentially could ruin the botnet industry.
"When you are intellectually advanced to the point where sexist jokes simply make you want to rip out the throat of the party saying them"
If you're intellectually advanced you do not want to rip people's throat off. That's what 80 IQ points drunk rednecked hillbillies do when they're upset.
When you're intellectually advanced you own little sexist people using words until they want to rip your throat off because they you made them realize how miserable they were for behaving that way.
I'm using IntelliJ IDEA on Linux since version 4 or so (we're now at version 12).
And I agree with you but...
The trick is to use a pixel perfect font with no anti-aliasing at all and to set the correct vertical spacing between lines and then IntelliJ is just going to look fine (for a Java app).
So first you go download a real font (a font made especially for programming, like the Proggy fonts which you can get at proggyfonts) (I take the .ttf version)
You relaunch IntelliJ and then go to:
Settings / IDE Settings / Appearance / Editor / Colors & Fonts / Font and then you set your pixel perfect font, say :
ProggySquareTT (Size: 16, Line spacing: 1.3)
(oh and btw IntelliJ is so stupid that if you have "Show only monospaced fonts" checked it won't understand that Proggy is monospaced and hence not show it into your fonts choice list)
I'm 40 years old and still have 10/10 eye vision, which I attribute to two things: avoid dark characters on light background scheme anytime it's possible and never ever using anti-aliased fonts (which are blurry)
"Pixel perfect" is the way to go here. And anyway anti-aliased fonts under Linux are so fugly compared to OS X / Windows that you're really not missing much by going pixel perfect.
Regarding the other IntelliJ IDEA fonts (the ones which are not the editor / console), I'm stealing a Tahoma.ttf from Windows and settings everything to be Tahoma.
Same for my Emacs but for whatever reason under Emacs I'm using Terminus and not Proggy at the moment ; )
Now of course it's really sad that the only "ok" desktop UI ever made with Swing is the one made by JetBrains: it took people who wrote the fscking most advanced Java IDE to come up with a reasonably looking Java Swing app : (
The Eclipse guys didn't even bother and created their own UI (SWT) which kinda speaks volume about the nameless mediocrity that Swing is : (
Excellent! The $6 / set for the first run, if he sells all his sets, is precisely what I just had computed.
(I just love the article by the way).
But I've go not idea how he arrived at $11.37 / set, can someone explain this as if I was a five years old? (but a five years old who could compute the net to be $6 in 20 seconds ; )
What I also understand is that if he prints more than the first run, then his $1500 design, $69 domain ($69 for a .com WTF !?) and $150 for coding+shopify integration do not need to be taken into account anymore. So if he sells his entire first set and make +$2000 / $6 net profit per set, then on his second set he would make about $11 / set for the second run. Is that the $11.37 !?
I take it the marginal cost is about $9 (you still need dice, papers, stickers, etc.), but you don't need design + coding + domain name anymore.
(btw I'm a dev, not an economist / accountant / whatever)
7 billion is way too much. We simply cannot continue to eat cows at that rate. Worse: if we want to stay at 7 billion the "poor" countries won't be able to raise their standard of living. We already bombed: too many cows farting, too many fossil fuels being extracted.
We're already killing bees, potentially disrupting the gulf stream (up to the point where it's expected to be so problematic for planes in as few as 25 years that planes shall need to use safer, and longer, aerial routes). We're already seeing people trying to push "protein from eating insects" in the western world: simply because we're way past the limit with cows. We're also killing too many trees.
"No more population bomb", I agree with that. But we already bombed and it's gonna get ugly.