skysight-inc/HackerNews huggingface dataset:
"neither effective, nor established, nor principled"

http://en.wikipedia.org/wiki/Structured_programming

Isaac Newton "stood upon the shoulders of giants." Interesting to see that you know better.

-----------------------

"...someone told you..."

Actually, I learned what I'm sharing in this thread (and much, much more) from MANY excellent mentors. I hope you find some, too.

----------------------

"The number one sign you're a crappy programmer"

I have hundreds of (well paying) clients that would disagree with you.

----------------------

I "foist" standards only upon those who work for me. You won't ever have to worry about that.
How many times does the word "internet" appear in the book, "The Road Ahead" in 1994?

Zero.

Kinda ironic, huh?
rokhayakebe: Why would or wouldn't you?
John Kao has a plan to help U.S. compete, regain foothold in science and technology
Follow Up to Crappy Programmer Thread
I am adding this thread for 2 reasons: the original thread has become very cumbersome and the debate got out of hand to the point where someone referred to my arguments as "idiocy". This is unfortunate in a forum like this. I come here much like everyone else, to share and learn and take a nice break from time to time.

Perhaps I didn't explain myself well enough in the previous thread. Well, here goes...

I wrote the Fixed Assets module for a division of CSC in 1987. Everything went pretty much as planned (analysis, design, coding, testing, deployment) until the code review. The beta customers were very happy, but my code could not be accepted into the repository because it was in violation of their standards. The minor violations (usually variable names) were easily fixed, but the biggest violator? Early exits. I thought that this was ridiculous and used many of the same arguments people used in the previous thread: less code, cleaner, faster, easier to read, etc., etc., etc.

The response... "You don't understand. We have a backlog of 495 bugs on the bug list. The original cause of about one third of these was the original programmer violating "single entry/single exit".

This was hard for me to wrap my head around. How could cleaner, simpler code be harder to maintain? Because you can't count on those who follow you to be competent. So there are standards that a lot of people much smarter than me came up with to minimize the problem down the road.

I have fixed thousands of bugs since then and my lesson was well learned. About half the bugs I've seen were caused either by poor variable naming or single entry/single exit violations. Sure, ther program worked fine at first, but after many mods, things got lost. Structured programming was meant first and foremost to extend the life of the code by avoiding this.

So I ask any programmer, "How long do you expect what you're writing today to be in production? What changes will be needed in the future? Who will apply them? Will they have enough time to do it right? Will they be competent?"

(Hint: The answer to all of those questions is, "I don't know.")

That's why I offered a few "tips" related to structured programming. I didn't make any of this up. I speak from the experience of cleaning up lots and lots of messes. Your code may look beautiful today, but who knows how others will mangle it down the road.

Do what you want with my input, just like any other. Take it or leave it. Just a little offering from a digital canary in the coal mine.
My follow-up thread:

http://news.ycombinator.com/item?id=83196
That's the definition of poverty in the U.S. For the poor in Asia and Africa poverty still means not getting two square meals a day and sometimes starving to death.
Never Say Die
Good article, but it doesn't mention where these emmigres are going. Anyone know?
http://www.salarydom.com/index.htm use this, i do not know whether this data is actually good, but better than nothing. seems accurate to a degree.
Mortgage Failures Could Create Nightmare
"M/S Explorer" Crashed? =]
This idea is definitely a step forward for me in understanding why I prefer one language over another. Thanks to the poster.
...says the company whose business depends on exactly that behavior.

That said, at my day job working for one of the largest US multichannel retailers, we see this behavior a lot.
Detail Obsession: Four Ways to Take Control of Your Work
Buffet's success has always been based on having loads of ultra-cheap capital lined up from insurance companies he generally owns big stakes in. He waits for obvious bargains at times when credit is tight and then acquires big positions. He is not really an investment guru. He has good connections.

People who do not understand this about Buffet try to extract more lessons from him than makes sense. The lesson to get from Buffet is "Have very rich business partners and friends." He got where he is by shaping the playing field to his advantage, not by having special investment skills and knowledge.

Buffet doesn't avoid technology because he "doesn't understand it." He avoids technology because ALL he is looking for are temporarily depressed assets that he has an easier time lining up capital for than others. It's rather oversimplifying, but he's kind of a one trick pony. The theoretical MO of most investors is to allocate capital for new business opportunities, and that's just not what he does.
Without looking it up, US and Australia for young professionals, France for old rich people.
While haven't recently seen it , the ruby-talk list has had a permathread of "Python v. Ruby". With the exception of some trolling, the responses tended to be some variant of "try both and pick the one that best fits your head."

I was struck by how little the Ruby community (at least at the time; this may have changed in the last year or two) seemed to care if other people dropped their current fav language to become Ruby converts. Rather, the mood was, if you choose Ruby, great, we're here to help and welcome, but if you don't, we hope you choose something that makes you happy.
Disclosure: Author has a long position in AAPL

The whole thing read as if he was also on Apple's payroll.
The Giving Season for Entrepreneurs
The messianic zeal of Christianity's shameful Crusades a thousand years ago

What a strange tangent. The Muslims were in the "holy land" (and a thousand other places) because of incomparably violent zeal. I suppose the defense of Vienna is also shameful for the zeal of the Sobieski.
I'm curious: how many of those single exit/entry bugs were caused because a function mucked with global state?

Again, I haven't seen this problem in the wild, and I have trouble seeing how it could exist. My functions tend to be actual functions - they don't touch state outside of the function (and lexically enclosing scopes, for closures) - and so if a function exits early, it just gives the wrong answer. This is caught immediately by the unit tests; there's no place for bugs to hide and cause problems later.

The one exception is UI-intensive code, which often requires state because users expect their UI to change in response to distant changes. For this, any "hidden" state is clearly documented and included in the tests, just as if it were the return value of the function. All other destructive updates touch the UI, so they're fairly quickly visible when screwed up (and I have individual tests for subwidgets, that test the GUI components in isolation).

I see a lot of the tenets of structured programming as holdovers from when it was okay to mutate variables. It's state that's the true cause of bugs, not single-entry-single-exit.
Is this a long-winded way of saying that two wrongs make a right? That if "they" use torture we ought to use torture? That...

Oh, sorry, my mistake, I thought I was on reddit. I'm actually on ycombinator, which is a completely different community. Let's talk about startups, please.
Tip: Avoid unnecessary Ajax traffic with session state
Let's talk about startups, please.

You will notice:

1) The lead article is not about startups.

2) I quoted a passage that was from the lead article.

3) I commented on that passage.

So, if you have some sort of objection, please refer to the person who submitted it, or to the author, and not me. Thanks.

ADDENDUM: two wrongs make a right

Sometimes. http://en.wikipedia.org/wiki/Tit_for_Tat
This takes me back. My roommates and I spent a year in college trying to get a browser to work on Windows 3.11 for Workgroups. We failed. I had to wait until Windows 95 came out the next year to get on the damn Web.
getting Xcode requires you to be involved with a stupid Apple Developer Connection program

Xcode was on the install CD that was in the box my macbook came in. I hadn't heard of this Apple Developer Connection program until now.

you don't get automatic package management like in Linux

http://www.macports.org/
10 Absolute "Nos!" for Freelancers
I have three words for you, my friend: "electric space heaters". :)

I won't dwell on the fact that laptops are ergonomically evil and will eventually send you to the doctor with one form of RSI or another. If you don't already understand this, it will be very hard to convince you.

Instead I'll point out that your productivity is proportional to how much monitor you've got. Researchers have measured this [1][2], hackers [3] and techies [4] have testified to this, and Apple has sold a lot of incredibly expensive 30-inch displays because of this. Why are you killing your own productivity in order to save the cost of running an electric space heater? Is it the coffee? Don't get hooked on the coffee!

[1] http://www.useit.com/alertbox/screen_resolution.html

[2] http://research.microsoft.com/displayArticle.aspx?id=433

[3] http://jeremy.zawodny.com/blog/archives/005541.html

[4] http://chris.pirillo.com/2007/05/31/dual-monitor-display-inc...
Video Interview Graeme Smith Co-Founder of Oxy Systems creator of Phling!
"For most of my lifetime, it's been a given that the top Canadian talent in any field would eventually move to the States, or spend significant time there."

I think that is true in some fields, like the performing arts and untrue in others like engineering esp. telecommunications where top talent is homegrown thanks to the likes of Nortel and now RIM. These people do not want to move and there is a critical mass that hasn't gone away even after the bubble burst.
I'm a coffee shop programmer as well. Not always, but whenever I want to avoid the potential distractions in my apartment (tv, xbox, bed) I take my laptop and work from a coffee shop for the day. It's also a nice change of scenery.

The freedom to be able to work from anywhere is one of the greatest things about this arrangement. Sometimes I travel to visit friends and family, and that doesn't stop me from doing my work because all I need is my laptop.
That was how I've always seen Ruby and Python. I've tried Python before and didn't like it. It had nothing to do with any technical reasons and was purely aesthetics.

The article's main point is that Ruby is supposed to make you feel good. It's origin is Japanese, and the language itself is more like a Zen garden. 'Harmony' is a word that has as much impact in the Japanese and Chinese cultures as 'freedom' and 'dream' does in America. Although diluted from its contact with the youthful American culture, those cultures has a fascination with ancient, or at least the wisdom of the elders. Here, there is a fascination with the youthful and the new. That's why you see news of 12-year-old kid raising $6 million in VC funding for an MMO e-commerce product.

In Chinese and Japanese stories, both old folklore and current modern renderings of it, there are stories of the young getting rewarded for listening to the old sages. In the Japanese stories in particular, there is a common theme of the older generation passing on the world to the newer generation by allowing them to make their own mistakes while having faith that they will survive and prosper. Translated into American terms, at best you would hear "get rewarded for working hard", and "we're younger so we know what's 'cool'."

So you hear a lot of news of young startups and the kids that started them up. When you hear of old Mrs. B starting up a new furniture chain because she had a disagreement with the upper management of the company she owned and sold to Warren Buffett (http://mba.tuck.dartmouth.edu/pages/clubs/investment/WarrenB... ), you don't get the sense that Mrs. B is lording it over her hirelings, "You should do this because in my experience ... ". Instead, you get the sense that at age 97, Mr. B. is still more youthful and active than the executives she hired in her first company.

The point is that the cultural undertones of 'harmony' gets seriously lost when transplanted into the American culture. People here often have other reasons for picking up Ruby.

So why might someone here write in Ruby? Because its expressive power gives you the freedom to make real what only you can see (vision). Because you can concentrate on improving the product and add new features. Because it is part of the current crop of technologies that lowers the requirements for a startup ... so you can drop everything, pursue the American dream -- write something millions want to use, make some big bucks, and retire young so you can enjoy the rest of your life. Or at least before you hit middle age.
"Oh, sorry, my mistake, I thought I was on reddit. I'm actually on ycombinator, which is a completely different community. Let's talk about startups, please."

Supposed to be cute, I guess, but you must not be paying attention--note the "title" tag on each page and count the number of programming-related submissions on the main page.
I'm not buying it. The bottleneck in my productivity is definitely not switching between virtual desktops and windows. More/bigger monitor is a "nice to have."
School officials unite in banning Wikipedia
New Facebook App Brings Radio to the Profile
This application lets Facebook users embed net radio streams in their profile, and has a popout player with all your favorites stored.
Who voted this thing out of the crib? If you find this article to be fascinating or new, then I hope to god you're not designing any systems I use...
Perlmonk's Tweaks for their Social Voting/Karma System
Suzie is basically correct. The only way you can truly "fire" someone in Canada is by demonstrating "just cause". (eg. they steal from you, continual - documented - bad performance etc. etc)

Now, it is always possible to render the relationship with the employee null and void by just stating that their services are no longer required and paying them the appropriate severance money. As an employer, you're also required to give two week's notice, but most give pay in lieu. Severance basically works out to 1 week's pay per year of service on top of that.

Most employers will give a little extra to stay out of legal tussles.
The article sounds so beautiful, so beautiful, all the joy and the flowers and the harmony and the japanese and the danish and the total lack of language wars and crusades ... sorry, seems I've fallen asleep at the keyboard.

Anyone remember how you felt when you moved from C++ to Java? Wasn't it a joy? As if somebody had thought, hey I'll make a language for people to enjoy. No memory management! Yeah! No obscure macros! Just clean, beautiful code that everybody could immediately understand and nobody would shoot themselves in the foot.

We didn't think about how many times we would have to type getSomeField() { ... } and setSomeField(...) {...}. We didn't think about how entire frameworks, byte code manipulation weirdness, special purpose runtime containers, poorly integrated language extensions, etc would have to be written and deployed to overcome the metaprogramming deficiencies of Java. We were so glad to get rid of those breathtaking C++ compiler errors resulting from template crazyness that we didn't think about how statically typed languages really need type parameters.

For short, we didn't think about anything relating to the power of the language, we just felt joy and a big relief that the C++ curse had been taken from our souls, aching for harmony.

At least for myself I can say I'm not going to make that same mistake a second time. F..k harmony and joy! Let's switch our brains on before we jump onto the next language! I'll take a language war any day if it makes me think hard about how the features of a language behave once a system grows.
Second the fact on laptops - they are indeed ergonomically evil, unless you have a laptop stand with an external keyboard ...but then you might be on a "web 2.0 three month mashup" - in which case it is probably ok , anything longer and youll screw up either your wrists or your neck if not both.
If you want to have good food too consider moving your startup to india - it costs around 60$/mnth for your own personal cook.
EOL's are skipped on posted comments. Please fix.
It is still very true today. The worst cases I've seen are family computers where the kids will click "Yes" or "Allow" to any message they get on IE (thanks to their Vista training), basically installing every piece of malware imaginable. Then their parents wonder why it's so slow and get 20 popups "when they use the internet." sigh That's why I recommend Macs.
Ask YC: Web apps you like
I just stumbled upon getsatisfaction.com thru jottit, and thought: "Wow, that is a nice idea and execution".

I thought the same thing of del.icio.us, before yahoo bought it.

What are some startups/web apps that you think are really well executed?

Preferably new ones, not ones everyone knows about.
Is Hacker News just for YC startups or is everyone invited ?
just a doubt that i had looking at the post on allowing job posts by other startups
How does the coffee shop feel about having people work at their tables all day? I have considered doing this, but I can't quite figure out the etiquette.
Everyone seems to be invited. I enjoy it :) Great crowd.

Job posts are just for YC startups, afaik.
What are the best practices for releasing code from a development to production server?
We are currently using Ant, and were wondering if there is a different way of doing things.
It's better to go to two or three or more coffee shops in a day. Rotate. Buy stuff.
Social Media Marketing Campaigns: How to Set Goals and Define Your Target Market
This article talks about the common goals for social media marketing and includes suggestions on how you can determine your target audience.
Something to waste your time:  X-Plane 9 beta 2 demo (this is by far the best flight simulator)
Peer-reviewed academic books and papers can be inaccurate and/or biased in some way. (Hopefully ( http://en.wikipedia.org/wiki/Peer-review#Criticisms_of_peer_... ) less so than Wikipedia.) That doesn't mean they should be 'banned', only that there is no way to avoid critical, reflective reading whenever it matters to you that the information and arguments you are putting together are right.
Like Perl, Scala adheres to the "There is more than one way to do it" motto.  Is that bad?
Infinite Cheese: 3-D Fractal Demo in F#
What a cop-out. Those teachers are banning one of the greatest sources of information on the Web today just so they don't have to teach their students the concept of 'caveat emptor' (http://en.wikipedia.org/wiki/Caveat_emptor). All sources have some error and bias, not just Wikipedia. You want to deal with that, teach? Require more sources.

How much you want to bet those same teachers go home and watch Fox News at night?
If it's not crowded I doubt they care how long you stay. On a weekday during business hours excluding lunch you're fine.

Trying to do high concentration work in a coffee shop would be impossible for me, personally. I don't understand how one could do development. The places I go the general idea is that people are interruptible and open to some conversation and maybe a date.

I have used hotel lobbies. Find a spot to sit and hack the guest wireless for access. The decor and furniture at a nice hotel can be enjoyable. Sometimes you can find an open conference room.

The public library is an obvious option, but they tend to close too early.

Another option is to sneak into local college libraries, or even unused campus classrooms with wireless access.
You know what, you're right and I'm wrong. Communities are whatever their members make of them, and the upmods for your comment suggests to me that this community thinks that's worthy of mention.

When I said startups, I actually included programming as part of startups, due to the flavour of PG's essays, so I thought the article was relevant for ycombinator. But again, it's not up to me.

And honestly, I wouldn't have said anything about your comment except I had just come from reddit, where more than half of the comments on the programming sub-reddit were about whether he should have included pictures, about whether the actress was hot, and about whether Japan really does have a cultural identity distinct from America.

I guess I was just crotchety about the fact that nobody seemed to be paying any attention to what I thought the article was about. I was being selfish.

I was wrong to try to tell you what you should and shouldn't say on a forum: forums are for the members, they needn't follow my preconceptions about what is on or off topic, what is relevant, or what is or isn't important in an article.

So... if you want to get into a whole Christians vs. Muslims through history thing, I'll get out of the way.
I'll give you the vote because very often hard-set rules in programming are not good.
Yes, of course.

Uncoincidentally, most of Asia and Africa are not very capitalistic
great read, I think the biggest problem is toilet breaks, at home you don't need to take your laptop with you :p And if you do I don't want to know about it...
I tend to use my laptop on the go and in the living room and not much for work. I have several desktops for developing on.

Lets not forget desktops are cheaper than laptops so you could do it cheaper by buying a desktop and a coffee machine ;)
IE Program Manager on cooperating with the Web Standards Project
I've told people about the coffee shop office idea, and no one's really come up with good objections. Just mix it with this and you're all set:

http://www.theonion.com/content/node/32374
Hacking natural languages
In the past 2 years I've adopted Ruby for 99% of my coding needs. My experience sounds different to yours:

I started with plain C when PCs were so slow you needed a compiled language. When I moved from C to C++ in order to better write Windows applications, it was nice to have classes, constructors/destructors to make memory management easier, but the other stuff (eg. templating system and supplied hash/array/string classes) caused pain and I avoided it.

I was excited about Java. It seemed like a cleaner language for ex-C programmers to move to OO, but then I got really irritated when trying to actually use it for developing real applications, for all the reasons you mentioned.

I kept searching, dabbled with functional programming in Haskell, and happily used Perl for a long while until finally discovering Ruby.

To me, Ruby was like a Perl that really was more enjoyable to use. By that I mean I really value a system that quickly lets me express my thoughts and lets me get applications up and running faster. Often, well-written Ruby looks like pseudocode.

In my case, subconsciously the enjoyment factor of the language really was a stumbling block that slowed down my progress on my projects.

There have been no downsides. CPUs haven't stopped getting faster since my first steps in ASM/C 15 years ago, so I have no Ruby performance problem. Architectural changes that Ruby enables make it fun to write performant code.
That onion story got me busting up laughing.
I agree that a language should be chosen primarily for the features that suit your needs. Expressiveness, stability, reliability, etc.

But within a given domain, there is often no clear choice which has the best features. This is especially true for Ruby, Python, and Perl. Some people are happy in the fires of CPAN hell, for example.