skysight-inc/HackerNews huggingface dataset:
Do you like your job? Do you like the people you work with? Do you respect your boss? Do you feel like you're learning new things there on a regular basis?

The reason I ask is because some jobs -- ok, many jobs -- drain the energy out of you. It starts while you're at the job and then affects the rest of your evening once you leave the office. You get home and pretty much the only thing you can get up the energy to do is peel the wrapper off a takeout sandwich and turn on the television. It becomes a cycle, and the cycle becomes a habit, and pretty soon you're staying awake at night thinking existential thoughts.

The solution? Find a job that gives you energy -- one that gets your brain working again. Going home energized and focusing that energy on your own projects is just as much of a cycle and habit-forming as going home on watching TV until bedtime.

I know, it's easier said than done, but it can be done.
You're talking my language!

jdennis@gmail.com

Whoever is interested, please email me. I'll send out a message with all the email addresses I receive to coordinate. And ya'll can pass it around accordingly.
sigh

Why is it all who moan about Perl immediately point to a regex written in perl and cry "Look! That's perl! It's unreadable!" No dumbass, that's a regex, and regex by the way, looks about the same in every language. It just so happens perl is better at regex than most other languages and perl coders aren't afraid to use it (and unfortunately many abuse it).
I read the flicker thread and don't remember any hurled insults... did I miss something?
"I'm going to disprove your generalization with my anecdotes."
Pick up the book "The Elements of Typographic Style" or just read the first chapter. Not sure if that counts as one of those studies that uses poor methodology, but they generally go with serif for easier reading of long passages, but not much difference with short passages. More importantly, column width, line spacing and justification (depending on columns of course) can also make a huge difference in readability, so its not just the font that's important.
It's a phone. Being taken out of its box. If I knew I could get people reading my blog by putting up pictures of things leaving boxes, I'd have gone one better and done a whole gallery of me "unboxing" and putting together my IKEA bed.
Predictions: What Technology will Replace
So there's a bunch of Perl lovers kneejerkingly responding to this post that the author doesn't "get" it.

Now I myself love Perl and code in it for a living and I think the author does in fact "get" it, it's just that he thinks Perl is a problematic language precisely because "getting it" is required to use it well. It's something he's explained a little further over here:

http://www.prescod.net/python/why.html

You may disagree with him and feel that an easier language does not a better language make (I'm not sure I'm convinced either) but complaining he hasn't read the documentation is proof that you yourself haven't grasped what he's actually talking about.
The Death of the Desktop
Tech meetup is pretty decent

http://newtech.meetup.com/1/
He's not. Read the example again. He's pointing to code that:

- uses the implicit $_ variable

- twice

- and modifies what it points to

The regex is just for dramatic effect.
Which library is that?
How many hours a day do you work? What are you actually doing?

I've been working as a programmer for about 6 years, and most of my time now is not spent coding but answering email, on the phone, debugging, etc. When I actually get to do some programming, I still enjoy it.
Fed Concludes Economic Woes Likely to Spill Into 2009
I'm in a similar situation as you. Recently, however, it's a little worse because I actually do have less time to work on my own projects than I did before. So most of the time I can't work on my own projects, even if I wanted to, because I have other priorities and responsibilities.

So at times I feel frustrated when I wish I was hacking and learning but I can't. And it's not that I'm unhappy when I'm not hacking (I am very happy), it's just that I never get a chance to do what I _really_ want to be doing.

And the root of the problem is not that there isn't enough time or lack of energy. The problem is that most of my time is spent at a job where I'm not doing what I like to do, and it is draining. I'm a software tester, and I test other people's buggy software without even having the chance to fix it myself because there's a hard line between Engineering/QA (coders/testers) in this company.

However, even if I was working as a full-time programmer I would probably not be doing what I like doing anyway. I'd still be a monkey (or robot, however you look at it) coding what other people (i.e. PM) have badly designed.

So after reading some of PG's essays, I came to the realization that the solution to my problem is to start a startup. I'm young enough to take the risk, and the worse thing that could happen if it fails would be to look for another, better job possibly in a startup where corporate culture is frowned upon. And then maybe correct the mistakes I (or my team) made the first time around and try again.

I'm kind of rambling here now, so I'll just end it now by saying that if you don't think you'll ever find a job where you will do what you love to do, you should start a startup instead of keeping that day job. If that's too far-fetched of an idea you would pursue, well then others here have posted some good suggestions.
You're situation is almost exactly like mine. Same age, same recent job change etc. While reading your question, I really questioned whether I had wrote it myself 3 or 4 times. The one exception being that I'm starting to get my personal work done, slowly but surely.

My biggest issue was a dead-end job, now that I've got a much more fulfilling job, things have improved drastically. Currently, the hardest part for me is balancing personal time (time with wife and dog) and professional development time (anything with computers, coding, reading development books etc). What has been working well is just to set aside time. To make that extra time that seems to never come after work, I wake up early and read/program.

This niche of just-out-of-school/barely-in-the-workforce programmers could use some kind of online social group.

Does anyone know of an existing site or group that is fills this void?
Perl isn't difficult, it's just quirky:

Perl OO: In Perl classes are called "packages". There are no private methods or private members, everything is mutable.

Sigils: @foo is an array, %foo is a hash, but $foo can either be a string (scalar), a number, a reference to hash, a reference to an array, a reference to a function, or a reference to an object.

Built-in functions that operate on arrays (push, pop, foreach) do not accept references to arrays, unless put an @ sigil in front: pop $foo <-- WRONG! pop @$foo <-- Oh sure, OK!

Lots of special variables: $ in combination with just about any other non alpha character means something in perl. The most often abused is $_, the default variable.

Libraries and package files have to end with 1; or return some non-zero value.

So sure, plenty of quirks of to learn, but so every lanaguage.
"Requires Windows Vista/XP"

Boo.
Well you folks on the west coast started "valley girl" - does that even things out?

Rent might be expensive here, but the west coast is hardly the cheapest place to live either. Just look at prices in LA for example.

True, if you want to live in the middle of one of the most expensive cities in the world, its going to be expensive. But if you move out of the center of Manhattan and into the rest of the city, it's not as expensive at all.
Twitter During a Zombie Outbreak
It just goes to show you that it can sometimes be hard to tell what will be a money-maker on the internet.

Some friends of mine made a TON of money by putting videos online about how to make babies. Except, they weren't really making them, they just got the people in the room and had them practice a lot. They said that sometimes it wasn't even a man and a woman, it'd be like two women or something. I told them I couldn't figure out who would be so dumb as to watch that sort of thing; they weren't even doing it right! But they said they made a ton of money on it.
He didn't point out that directly but I do agree that $_ is overused among perl coders.
No, but I second this feeling. A year ago I was hacking away, loving every minute of it. Now I'm in a managerial position at a non-technical company so that I can pay the bills and wow, does it sting.
One other heuristic I follow that's not mentioned in the essay is: If one branch of an "if" statement is much shorter than the other, change the condition so that you can put the short branch first.

My reasoning is also involves memory: While the reader is reading the first branch, he needs to hold the possibility of an "else" branch in his head, along with the condition. By minimizing the length of the first branch, you minimize the amount of time he needs to remember this.
It never seemed like a hard up place when I visited. Expensive yet, but people seem to be pretty comfortable (perhaps I didn't see a chunk of society that struggle to eat, but I doubt it).
Agreed. I couldn't program as a hobby when I was a software engineer. So what I did was simply to change my job. I moved into more business-y consulting, and regained my interest in programming almost immediately!
Multiple DNS implementations vulnerable to cache poisoning
I thought I was the only one who felt this way. I'm in exactly the same boat.

I always mean to start a neat little project but it's been about a year and a half now and I haven't done anything substantial.
Simplistic for an experienced developer. But this is the approach I find myself taking when I'm working with an inexperienced programmer or intern. It helps to ask "why" over and over.
Why you shouldn't buy the iPhone 3G on Friday
> He shows a piece of code that uses a regular expression over implicitly-defined variables.

His snippet is perfectly idiomatic perl code and I find it easily legible. His point is that it's pretty hard to parse that without having already spent some hours with the perldocs. Fair enough.
The best book on the subject I know of is Introduction to the Theory of Computation, by Michael Sipser. Very readable and lucid. Great exercises.
Is artificial intelligence finally here?
Chris Anderson at Wired blew it with The End of Theory. The real story is that bottoms-up AI is here.
JSON 2 HTML
http://nirmalpatel.com/json2html/

Inspired by http://news.ycombinator.com/item?id=239735 I decided to create something that made it easier for me to get JSON objects into HTML so that I could quickly move onto styling.

JSON 2 HTML (json2html.js) allows for easy conversion of JSON objects into semantically meaningful HTML. Arrays are converted to Ordered Lists (OL) and objects are converted to Unordered Lists (UL) where each List Item (LI) has a class equal to the key of the value in the object. Strings are checked for urls which are automatically converted into links. Booleans, numbers and null are converted to strings. The result is then stored in a placeholder div. CSS is used to format the output.
Not to discourage your perfectly valid interest in this subject but I am curious about the percentage of software engineers that use any knowledge of computational complexity in their everyday work.
Peer brand pressure? (lack of a better word).
I liked Creative much better than Ipod(really), but I did end up using ipod more often.
Getty Images Begins Licensing Flickr Photos
I'm saying that people would rather work for someone who has experience building and selling a successful venture where the employees felt they also gained, vs. working for someone with experience building and selling a venture where the employees were laid off and received little for their trouble.

Case in point: Some time ago up here in Toronto there was a venture founded by someone who had built a company with much talk of going public but one thing led to another and he sold it to a large US conglomerate. Due to the way the terms worked, most of the people with stock options ended up with a few hundred dollars.

As you might expect, the operations were slowly wound down and everything moved to the buyer's head offices state side. People found other work.

One tech manager put it this way: "I got big screen TV money out of the deal, but I wanted house money or at least car money."

He told me this while explaining why he was avoiding calls from head hunters staffing up the founder's new company.

The net-net of what I'm trying to say is that if you are running a smaller start-up, and you might want to do it again, consider making sure that the employees perceive they benefit from the deal and not just the major shareholders.

You make the call.
Biased but interesting. Seems to me that there are only two examples of 'strange' here the 'while(<>)' and the regex. Interesting thing about regex---python itself uses perl compatible regex, so throw that item on the trash heap. As for the other its shorthand for grab a file from the command line, open it, Feed each line(\n terminated) to $_(could just as easily been a declared variable, but $_ is always there) and parse it with the regex. While you're at it, throw away the first and second parts, set $_ to the third part and continue. After that get another string from the file. All of this is covered in Wrox's Perl for Beginners as well as else where. I've done reasonable projects in both languages. Don't have anything bad to say about Python--- just wonder what all of the 'have to prove my language is better' crap is coming from...
All he really says is that complex languages are harder to learn than simple ones. No kidding. His specific points are valid, except I'm not sure what's wrong with references in Perl.

I still much prefer Perl over Python and C++ over C, and I would recommend my preferences even to a beginner. The steeper learning curves are justified by the power. I disagree with his assertion that you should choose a language on the basis of how easy it is to learn. I also think his Perl vs Python debugging claim is baseless.
Creating their own virtual worlds gives them access to their own real (virtual) estate that they can plaster with ads.

Avatar based chats are probably better than existing text-in-a-window ones for multi-person conversations because of the ease with which we can localize and assign voices to faces. I'd consider this the first significant step (by Google) in doing away with physical co-location of office workers.
It's tough to start working on something after you just got home from an 8 hour stretch of work. Some of the things I've done are:

- In the beginning, start projects on weekends or holidays. If you're not already burned out, you can get a solid start on something that will carry you through the work week. It's tough to start something at 9 PM, but if you've got a foundation, you can come up with 1-2 hours of work and not feel disappointed that you didn't do more.

- Pick a project that will allow you to accomplish things in 1-2 hour work sessions. If you try to build the next Google, you probably will never have a working result. If you try to build a simple app, you can take it in small pieces, adding functionality in short work sessions.

- Pick tools/projects different from what you do at work. Tired of lousy source control systems at work? Use Git for your next project. Tired of J2EE/Spring/Struts? Use Ruby on Rails or Python. The goal here is to make your project different from your work activities, so it doesn't seem like an extension of your work day. This also lets you pick up other technologies you might not have a chance to learn through work.

- Find somebody else to work with. If you have a friend to encourage you, you'll be more motivated and can split the work, getting more done.
A sidenote about reading on the web: I skipped straight to the conclusion.
I don't think so. As long as there are no issues of nested scopes you should use $_ plenty.
Blog of a quantum computing theorist:
http://www.scottaaronson.com/blog/

P vs NP Millenium Prize intro paper, which is fairly accessible:
http://www.claymath.org/millennium/P_vs_NP/Official_Problem_...

Complexity Theory: A Modern Approach (out of Princeton):
http://www.cs.princeton.edu/theory/complexity/

PRIMES is in P (famous paper):
http://www.math.princeton.edu/~annals/issues/2004/Sept2004/A...
This reminds me of The Sims: Online game from back in 2002. Even the music sounds similar to The Sims game.
Perhaps a ycvalidator service is needed?

Accept url, download cached version of page, and use for comparisons to subsequent (and possibly different) url postings of same content.
http://www.complexitytheory.com/

Edit: The lectures don't seem to be up there anymore but he links to this book which is free online pre-publication: http://www.cs.princeton.edu/theory/complexity/

Rudich's lectures are up for his undergrad class though, http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15251/di...
The solution manual to Sipser's first edition is available through bootleg bittorrent trackers, which makes it good for self-study.
I would suggest
"Computational Complexity" by C.H. Papadimitriou

Great material, great exercises, very good bibliography
Why Twitter doesn't need to worry about Friendfeed
Web Design Circa 2057: buynlarge.com
By the way, you asked me to time getpid against "a function that returns a constant integer". Obviously that's a silly comparison (getpid isn't really returning a constant; it's a vectored call and it has to pull the PID out of a structure offset from %%fs). But here's a fairer fight: getpid vs. a trivial LFSR:

s = (s >> 1) ^ (-(s & 1) & 0xd0000001);

I also timed it the way you asked, with wall clock time over 100M iterations (10M runs too fast to time). Surprising even me, getpid wins by almost a full second.

Got another challenge for me to write code for?
One of my all time favorite videos - Where the Hell is Matt?
Every time I look at Perl code I always go away pissed of for one of two reasons. A) The person that wrote the code did something super hackish and non-sesical which I attribute to the low quality of the language itself. B) I look at things like %, $ and @ and wonder why the hell I have to tell it what the variable type is. And don't even get me started on things like "Chomp" who's behavior changes depending on the value of some cryptic global variable $_\ @%#@#@^$&$*#%&@!
The hip thing is definitely true but I think it depends on age.
Dude, quit your job, work at a coffee shop, and build things because you want to build them. Your skill will return, the light will return to your eyes, and your career will improve.

I'm not even kidding. Take a few years away. You'll build something so much cooler than you would at these apparently soul-destroying jobs you've got.

I did it, and I'm now showing off what I've built at damn near every Ruby conference in the United States, plus ones in Scotland and Canada. I just recently had to very reluctantly cancel on speaking at a Smalltalk conference in Amsterdam too.

Nobody gave a crap what I was building back when I was building what the suit monkeys told me to. Now people are interested, and of course the job offers these days are much more interesting as well.

Ironically nothing makes a suit monkey drool more than meeting a programmer who several years previously told some other suit monkey to go fuck itself.

Might seem like a paradox but your best career move is to stop working for a living.
This is developer Matt Harding's tour around the world. I just love the visuals, the music, his dance. Brings a smile to my face every time. Why can't we all just get along?
Spacius A Space Adventure (in javascript)
So, by "not the same 9-5 lifestyle," what do you mean? I would hesitate to put words in your mouth, but please tell me the startup lifestyle you have in mind, and whether it is of equal quality. I'm going to give you a handicap, though: You cannot use the concept of "doing something you love," because you cannot require that your employees love it as much as you, or you'll find nobody at all.
> itostr takes time to mentally process (or pronounce), if I had to read your code. integer_to_string takes no effort and can't be confused.

The idea is that the first time you saw `itostr` you'd do something like this:

* Jump to the definition of `itostr` (a couple of keypresses in Emacs).

* Read the Edoc comment for the function ("Convert integer to string").

* Jump back to where you were (one key combo).

Sure, if the function was named `integer_to_string` you wouldn't have to do the above. But this was a trivial example. Many functions would take more than three words to describe what they are doing precisely, especially when your functions are granular and do exactly one thing. This can quickly lead to long lines, which I find hard to read and ugly.

At the end of the day, it's all down to personal preferences and style. I like things this way, and you like them the other. It's just the way it is, and there are arguments for both approaches. For me, the benefits of terse naming outweigh its disadvantages, and the advantages of long descriptive names.
Are you sure getpid() is doing a system call and not reading TLS?
Am I the only one who is concerned that when the Metaverse comes, we'll all be cartoons and giant walking penises?
(I should also mention there are employers with 0% suit-monkey DNA, and building cool things for their own sake draws out these employers as well.)
It's a SPACE ADVENTURE! You know you wanna play.
I didn't pollute my mind by reading this - I only saw it because of some bug in my TechCrunch-links-screening script - but what on earth could make somebody think that Microsoft crossing the line could be news? That's all they ever do.
This is trouble for <a href="http://areae.net">Areae</a>, an online gaming platform startup that has Raph Koster and a few other names (including a friend of mine).
My comments:

> x=5 || x = 5

Noooo. That first one is backwards. Extraneous spaces annoy me to no end. Makes it a pain to search for things too.

On the other hand, using newlines to break things up at commas for example, is great. But that's not applicable here.

> class fooclass: ... ||	class Fooclass(object): ...

Is this a joke?

> d = dict() || frequences = {}

How can you say that longer names are always better? (Is that part of the message here?) Usually most variables are throw-away so using short names should be the most common case. Similar to mathematics.

> # Use iter* methods when possible

This should mention that thread-safety is probably the most directly relevant use case for the non-iterable methods.

> # coding: latin

Better to use this:

#!/usr/bin/env python
# -*- coding: UTF-8 -*-
Perhaps it would seem more Googly if it were called "Google Rooms" instead of Lively.
I would have to disagree with you on this matter - Basecamp on its own provides enough features for most users, and their API is powerful enough to allow for nearly limitless expansion. Where I feel the company fails is in promoting this API to consumers. If the company had a directory of third party tools, a job board for Basecamp API developers, and built a few extension tools of their own I feel they could appease the nay-sayers while sticking true to their philosophy
Thanks for that, not sure how I managed to miss something so obvious back then!
E-Commerce: Secrets and Mistakes