Notes from a 1984 trip to Xerox PARC - <AUTHOR> https://commandcenter.blogspot.com/2019/01/notes-from-1984-trip-to-xerox-parc.html?m=1 <comment><USER2> I don't really understand this memo. I also worked at PARC when Pike was there though I didn't interact with him or even know he was there. If he hadn't said PARC and Dolphin up front I would have thought he was talking about a completely different place.

There were, _barely_ enough Dorados to go around; I worked mostly at night so I could be sure to get one, but as far as I remember everybody had a console on their desk (keyboard/mouse/bitmapped display). Perhaps, as he was a visitor, he didn't have a desk of his own?

Dorados were ECL machines (so obviously quite expensive), part of a family of D-machines (Dolphin was an earlier, less powerful machine, and the Dandelion workstations (which didn't need to be in a machine room) were later marketed as the Star. Typically you booted up an entire environment (including environment-specific microcode -- I wrote some of that): Smalltalk, Interlisp-D or Cedar/Mesa. Each language environment was a complete OS written in that language.

It's possible that he had previously never had had access to dedicated single user machines like that; by the time I went to PARC I was used to having CADRs at MIT (again, in machine rooms with the consoles in offices) so the concept of these machines was unremarkable in itself.

But what he says about files and FTPing stuff around makes no sense. The environment by 1984 was heavily networked, with the email system (like a modern IMAP environment) entirely client/server living abstractly as a network service. Files lived on fileserver too and opening a remote file was, well, how you did things. Since I didn't have a dedicated machine once I connected to one I simply booted up and had my whole environment available. I never used FTP at all. Similarly what he said about not saving state unless he was using an Alto (or running the big D machines in Alto mode -- then they did have local disk). The other environments all inherently saved state, like a modern iOS or Mac app. Likewise the three environments I mentioned all handled integrated printing as would be familiar to anyone today -- and by 1984 (actually by the late 70s) there were laser printers (Dovers and even color Pengin printers) which were lickety-split; you rarely waited.

In fact his statement "In fact, the whole world outside your machine, Ethernet notwithstanding, is a forbidding world." is cute but inexplicable: not only were various resources available on the net in what we'd call today an any cast (see what I wrote above about grapevine, the mail system) but by 1984 the ARPAnet had switched over to TCP so I routinely transparently used resources from MIT from my Interlisp environment similarly to how you might open a URL in a text editor today.

I agree with what he said about not using text editors in a traditional mode (Interlisp's preferred mode was a structure editor) and indeed it would have been nice to have had 'grep' in Smalltalk!

It reads as if he was unfamiliar with exploratory programming environments (like Smalltalk, Interlisp, and the Lispms). He's clearly trying to map the debug-exit-edit-compile-restart model onto a different paradigm, that of an integrated interpreted-compiled environment. I had the same experience in reverse when I started using Unix: it was weird to me that an error caused the process to exit and dump core; I was used to an error in _any_ application stopping and entering the debugger with all file, process, network etc descriptors all live and inspectable/pokeable and being able to fix the bug in situ and continue. That was the 1970s programming environment I'd learned on.

<comment><USER3> He _did_ have access to dedicated single-user machines like that; in fact he built some of them himself with Bart Locanthi a couple of years before. But he had no idea what to do with them, so he programmed them to act as multiwindow terminals for a remote Unix system, running a window system over a serial line. I know that sounds like a joke but it sounds like it was kind of cool — I'd love to play with a Blit (oh hmm, they've released the firmware and an emulator in 9front and 8th Edition Research Unix) — but it also sounds like a real waste of a 68000 to me.

I think the thing he was saying about FTP was when the only copy of a file he wanted was on somebody else's local disk. It sounds like he was doing more stuff with Dorados pretending to be Altos than was normal at the time, and, yes, trying to get them to act like batch-mode programming environments.

(Didn't Cedar's FS support having local files too? Obviously I've never used Cedar, just read papers about it.)

<comment><USER2> > Didn't Cedar's FS support having local files too? Obviously I've never used > Cedar, just read papers about it.

It may have but I only farted around in it bc my real job was in interlisp (plus it was strongly typed iirc which i was allergic to in those days). Yeah, all the D machines booted into an Also mode (which itself was a kind of NOVA).

Even the KL-10 clone (MAXC) had an Alto as its front end processor (real dec ones used a PDP-11!)

</comment></comment></comment><comment><USER4> I too recall early encounters with Smalltalk (albeit 1989), and also recall that feeling of missing grep - and it was only years later that I realised I had missed a hugely important point... possibly the most important point. Smalltalk is so elegant, malleable and simple that it was only 5 lines of code to implement a more interactive grep... d'oh. Why didn't I think of it at the time? Too cocky?

Code completion was trivial to implement even back then, particularly as code is an object like anything else. Sometimes you miss the obvious and hold yourself back.

Sadly the industry hasn't innovated much since PARC, those much mailigned Smalltalk images are now called Docker ;)

</comment><comment><USER5> Wow, this is really deep:

>One philosophical point is that each window is of a type: a browser, a debugger, a workspace, a bit editor. Each window is created by a special action that determines its type. This is in contrast to our style of windows, which creates a general space in which anything may be run. With our windows, it is easy to get to the outside world; the notion of Unix appears only when a Unix thing happens in the window. By contrast, Smalltalk windows are always related to Smalltalk. This is hard to explain (it is, as I said, philosophical), but a trite explanation might be that you look outwards through our windows but inwards through theirs.

<comment><USER6> I understand what he's talking about with Smalltalk windows, but it's unclear to me what these "outwards-looking" Unix windows would have been in 1984.

Is he talking about X and how a remote client app can freely render in a display server window using the (rather awful) X primitives?

<comment><USER3> No, Bob Scheifler's message, "I've spent the last couple weeks writing a window system for the VS100. I stole a fair amount of code from W, surrounded it with an asynchronous rather than a synchronous interface, and called it X," was 1984-06-19, and I don't think it escaped MIT until 1985; Pike surely wasn't talking about X two months before. Danny's inference that Pike was talking about the Blit is probably correct — the Blit (from 1983) does operate the way Pike described, and X normally operates the way Smalltalk did, with each window owned by a client application that gives it idiosyncratic behavior.

<comment><USER5> HyperLook (which ran on NeWS, and was like a networked version of Hypercard based on PostScript) was kind of like looking outwards through windows, in the way Rob Pike described the Blit (although it was architecturally quite different).

I think his point was that window frames should be like dynamically typed polymorphic collections possibly containing multiple differently typed components that can change over time (like JavaScript arrays), not statically typed single-element containers that are permanently bound to the same component type which can't ever change (like C variables).

With X11, the client comes first, and the window manager simply slaps a generic window frame around it, subject to some pre-defined client-specified customizations like ICCCM properties to control the window dressing, but not much more, and not under the control of the user.

With HyperLook, the "stack/background/card" or window frame came first, and you (the user at runtime, not just the developer at design time) could compose any other components and applications together in your own stacks, by copying and pasting them out of other stacks or warehouses of pre-configured components.

[https://medium.com/@donhopkins/hyperlook-nee-hypernews- nee-g...](https://medium.com/@donhopkins/hyperlook-nee-hypernews-nee- goodnews-99f411e58ce4)

For example, I implemented SimCity for HyperLook as a client that ran in a separate process than the window server, and sent messages over the local network and drew into shared memory bitmaps. SimCity had its own custom frames ("screw-up windows") that looked more "mayoral" than normal windows.

[https://cdn-images-1.medium.com/max/2560/0*ZM8s95LNxemc5Enz....](https://cdn- images-1.medium.com/max/2560/0*ZM8s95LNxemc5Enz.gif)

There were multiple map and editor views that you could copy and paste into other stacks while they were running, or you could copy widgets like buttons or drawing editors into the SimCity stack while it was running. So you could copy and paste the "RCI" gauge into your graphics editor window to keep an eye on it while you worked, or paste a clock into your SimCity window to see when it was time to stop playing and get some sleep. And you could even hit the "props" key on the clock to bring up a PostScript graphics editor that let you totally customize how it looked!

[https://cdn-images-1.medium.com/max/600/0*oHtC0F5qK83ADw1H.g...](https://cdn- images-1.medium.com/max/600/0*oHtC0F5qK83ADw1H.gif)

It had "warehouse" stacks containing collections of pre-configured component prototypes (including widgets, applets, and window management controls like close buttons, resize corners, navigation buttons, clocks, graphics editors, etc) that you could copy and paste into your own stacks, and which would automatically be listed in the "New Object" menu you get in edit mode, to create them in place without opening up the warehouse:

[https://cdn-images-1.medium.com/max/600/0*sHClGU8ALljuRQKb.g...](https://cdn- images-1.medium.com/max/600/0*sHClGU8ALljuRQKb.gif)

[https://cdn-images-1.medium.com/max/600/0*QwIQ_GLxQl1v968F.g...](https://cdn- images-1.medium.com/max/600/0*QwIQ_GLxQl1v968F.gif)

[https://cdn-images-1.medium.com/max/600/0*aWbuo6k_eJuZnUmV.g...](https://cdn- images-1.medium.com/max/600/0*aWbuo6k_eJuZnUmV.gif)

[https://cdn-images-1.medium.com/max/600/0*zya4vNBP3libpNSA.g...](https://cdn- images-1.medium.com/max/600/0*zya4vNBP3libpNSA.gif)

[https://cdn-images-1.medium.com/max/600/1*G0LWky2iejYm4IGBsU...](https://cdn- images-1.medium.com/max/600/1*G0LWky2iejYm4IGBsUyfeA.png)

Normal X11 window managers put the cart before the donkey. The window frames are generic, stupid and unscriptable, and can't even be customized by the user, or saved and restored later. The client comes first, with just one client per generic frame. You can't move or copy a widget or panel from one frame to another, to use them together in the same window. That's terribly limited and primitive.

We implemented a more-or-less traditional (but better than normal) ICCCM X11 window manager in PostScript for X11/NeWS, which had tabbed windows, pie menus, rooms, scrolling virtual desktop, etc, uniformly for all NeWS apps and X11 clients. But the next step (not NeXT Step) was to use HyperLook to break out of the limited one-client-per-frame paradigm.

[http://www.art.net/~hopkins/Don/unix- haters/x-windows/i39l.h...](http://www.art.net/~hopkins/Don/unix- haters/x-windows/i39l.html)

(It's interesting to note that David Rosenthal, the author of the ICCCM specification, was also one of the architects of NeWS, along with James Gosling.)

Our plan was to use HyperLook to implement a totally different kind of integrated scriptable X11 (and NeWS) window manager, so you could compose multiple X11 clients into the same frame along with HyperLook widgets and scripts. You could integrate multiple X11 clients and NeWS components into fully customizable seamless task oriented user interfaces, instead of switching between windows and copying and pasting between a bunch of separate monolithic clients that don't know about each other. But unfortunately Sun canceled NeWS before we could do that.

Here's some more stuff I've written about that stuff, and how window managers should be implemented today in JavaScript:

[https://news.ycombinator.com/item?id=18837730](https://news.ycombinator.com/item?id=18837730)

[https://news.ycombinator.com/item?id=18865242](https://news.ycombinator.com/item?id=18865242)

[https://news.ycombinator.com/item?id=5861229](https://news.ycombinator.com/item?id=5861229)

[https://news.ycombinator.com/item?id=16839825](https://news.ycombinator.com/item?id=16839825)

[https://news.ycombinator.com/item?id=18314265](https://news.ycombinator.com/item?id=18314265)

[https://news.ycombinator.com/item?id=8546507](https://news.ycombinator.com/item?id=8546507)

>Who Should Manage the Windows, X11 or NeWS?

>This is a discussion of ICCCM Window Management for X11/NeWS. One of the horrible problems of X11/NeWS was window management. The X people wanted to wrap NeWS windows up in X frames (that is, OLWM). The NeWS people wanted to do it the other way around, and prototyped an ICCCM window manager in NeWS (mostly object oriented PostScript, and a tiny bit of C), that wrapped X windows up in NeWS window frames.

>Why wrap X windows in NeWS frames? Because NeWS is much better at window management than X. On the surface, it was easy to implement lots of cool features. But deeper, NeWS is capable of synchronizing input events much more reliably than X11, so it can manage the input focus perfectly, where asynchronous X11 window managers fall flat on their face by definition.

>Our next step (if you'll pardon the allusion) was to use HyperNeWS (renamed HyperLook, a graphical user interface system like HyperCard with PostScript) to implemented a totally customizable X window manager!

<comment><USER3> > I think his point was that window frames should be like dynamically typed > polymorphic collections possibly containing multiple differently typed > components that can change over time (like JavaScript arrays), not > statically typed single-element containers that are permanently bound to the > same component type which can't ever change (like C variables).

Well, dynamically typed, yes, and changing over time, but I don't think he was talking about sticking your editor _and_ your command line in the same window _at the same time_. Rather, you could run a program in an mpx window on the Blit, and it would draw in that window until it was done, and then you would get your shell prompt back in that window.

I know this isn't really related to the overall question of end-user customizability and composability that you're focusing on here, but I dig the olwm-style pinned dropdown menus in your last screenshot there. It's a shame neither Open Look nor olwm nor olvwm ever did antialiased text — I know it was important for the window manager not to eat the entire palette of your cgfour or NCD, but when all your chrome text is black on slate grey, a couple of greyscale levels would have gone a long way.

Your other links are timely, since I'm trying to figure out how to do the BubbleOS windowing system Wercam this week, maybe using Unix-domain sockets and shared-memory bitmaps, or rather pixmaps; the thing that sounds most inspiring to me is Genode's nitpicker, but supporting the interposition-based design of the nitpicker window manager would require either an extra copy of all the pixels (to put them in the right place in the framed window) or a draw command that involves a whole sequence of rectangles instead of just one. I'm kind of thinking that by default windows will be embedded in my shell, like graphics in Jupyter, and then I'll see how things go from there. [https://gitlab.com/kragen/bubbleos/tree/master/wercam](https://gitlab.com/kragen/bubbleos/tree/master/wercam)

</comment></comment></comment></comment></comment><comment><USER7> >For example,

        2 raisedToInteger: 3

is perfectly readable, but chatty at best.

For the life of me I will never understand this opinion. If you're trying to eek out the last bits of memory, fine, verbosity is a valid concern, but at least today code should be written to be read by a human, the more easily it can be read and understood the better.

<comment><USER3> You can calculate the (population) standard deviation of a set of data as the square root of the difference between the mean of the squares of the data and the square of the mean of the data. Is that easier to understand than √(Σ(xᵢ²/N) - (Σxᵢ/N)²)?

If you're one of the two and thirteen one-hundredths percent of the population that said "yes" to that, can you explain how to derive that formula (which gives a one-pass algorithm) from the fundamental definition √(Σ((xᵢ-x̄)²)/N)? Or, rather, that the standard deviation is the square root of the mean of the differences between the data and their mean? Without using any formulas, remember, because the position you're defending is that sequences of words are more easily read and understood by humans than mathematical formulas are. But convincingly.

The benefit of notation as a tool of thought is not that it saves memory in the computer; it's that it enables you to think thoughts that you could not have thought with an inferior notation.

<comment><USER7> That is a good point, I would refine my argument a based on your response.

√(Σ(xᵢ²/N) - (Σxᵢ/N)²) is unhelpful on its own, and as you point out a more "human readable" version of this equation would be rather convoluted. The middle ground here would be to use more specific syntax like yours, while also ensuring that each variable is clearly defined and this logic is robustly documented to explain both the why of this function and how this specific function carries out that logic.

<comment><USER3> The justification for why that formula is correct (equivalent to the fundamental definition) is even more incomprehensible than the formula itself if written in English, but fairly clear, almost trivial, using algebraic notation. That is, if you want to "explain both the why of this function and how this specific function carries out that logic," using algebraic notation is far, far better than just using a natural language.

</comment></comment></comment></comment><comment><USER8> This is a very nice read.

</comment><comment><USER9> Fascinating article.

meta: There's a <style> tag with 2400 lines (47k+ characters) - a 'Blogger Template Style' \- occupying most of the page source. Guess I shouldn't be surprised at the length, but I was. ...What's the record for that sort of thing?

<comment><USER9> ..and it's bad to ask this why?</comment></comment>


Snoopers' Charter: Government Wins Vote on Investigatory Powers Bill - <AUTHOR> http://www.telegraph.co.uk/news/politics/12194441/Snoopers-Charter-Parliamentary-vote-on-the-investigatory-powers-bill-live-updates.html <comment><USER2> Coming soon to a Western "democracy" near you. We've already got it down in Australia.

</comment><comment><USER3> So what happens now? Can myself and my LTD company claim asylum elsewhere?

</comment><comment><USER4> Are VPN's and circumvention going to be banned as well?</comment>


Apple's New AppStore Policy Threatens Swedish Startups - <AUTHOR> http://swedishstartupspace.com/2016/06/20/apples-policy-threatens-all-swedish-ios-apps-using-bank-id/ <comment><USER2> All the fuzz, I'm pretty sure they make exceptions to that rule... money makes up for stupid policies...</comment>


Ask HN:  How to exaggerate flaws to convince you that your product has problems? - <AUTHOR>

People tend to like their own work and it is hard for them to see problems that others point out.
So perhaps a solution is to exaggerate those problems to such a degree that it becomes completely obvious to the creator of the product that there are problems.
Even better, find a way to (semi)-automate this exaggeration.
For example, if the product is a game with poor sound effects, then find a way to exaggerate the bad quality of those sound effects.
How might this (semi)-automated exaggeration be done?  And for what sorts of things might it work for? <comment><USER2> Put a screen capture on youtube with balloons popping up saying 'LOL fail' at random intervals. Alternatively, buy the company and then threaten to fire the programmers responsible for stealing precious moments from your life.</comment>


DNS over HTTP - <AUTHOR> https://github.com/BII-Lab/DNSoverHTTP

<comment><USER2> This would be useful in Indonesia:

[http://jakarta.coconuts.co/2015/05/08/national-internet- dns-...](http://jakarta.coconuts.co/2015/05/08/national-internet-dns-would- strengthen-online-censorship-will-be-implemented-may-31)

tl;dr - their approach to censorship is to implement a national DNS server (yes, single point of failure, and yes it goes down a lot) and block outgoing DNS packets.

<comment><USER3> Some ISPs also use transparent proxies, so unless they use HTTPS for everything, using an alternate DNS server won't help them much (except maybe for the reliability part).

</comment></comment><comment><USER4> Cool :) The other way around also exists: Iodine [1] does IP-over-DNS. Very useful for some commercial access points which usually don't filter DNS but redirect HTTP to a landing page.

[1] [http://code.kryo.se/iodine/](http://code.kryo.se/iodine/)

</comment><comment><USER5> Awesome.

I made something similar, albeit simpler, to help check for DNS servers that are lying to you.

[https://github.com/dicato/webdns](https://github.com/dicato/webdns)

It's deployed on heroku for anyone to use. Just make GET requests to a URI of the domain you are interested in:

[https://webdns.herokuapp.com/hackernews.com](https://webdns.herokuapp.com/hackernews.com)

</comment><comment><USER6> There is also this for tunneling arbitrary data [original website is down]: [https://www.archlinux.org/packages/community/x86_64/httptunn...](https://www.archlinux.org/packages/community/x86_64/httptunnel/)

</comment><comment><USER7> This is neat. An alternative would be to use a SOCKS 5 proxy, it can also do the DNS resolution for the client.

</comment><comment><USER8> Cool when using TLS!

</comment><comment><USER9> This should be combined with DNSCrypt, great concept!</comment>


For all the aspiring non-technical founders - <AUTHOR> http://jameskeane.ca/for-all-the-aspiring-non-technical-founders

<comment><USER2> The last statement, "you need us more than we need you" is definitely arguable.

I believe that there are aspects such as leadership, foresight and intuition that can't be taught or learnt with a college degree or from a book.

These things CAN be brought to the table by people with non-technical backgrounds and can be more valuable than all the technical background in the world, because most technical professionals can easily be replaced by the next applicant.

<comment><AUTHOR> Leadership, foresight and intuition are needed in a technical founder as well.

There are many many more non technical people looking to do a start-up; it is also the case that most non-technical professionals can easily be replaced. But remember we are talking of partners, not employees.</comment></comment>


Whay are some people so successful and others less so? - <AUTHOR> Why are some people so successful and others less so even in very similar fields or when doing nearly the same identical thing? I think it comes down to the person who is successful does 100% of things correctly but the person who fails only does 99% of things right. the 1% is what make all the different., it is the secret sauce that separates huge success from total failure. <comment><USER2> There's no one fsctor to it. Instead, I'd say it's a mix of these factors:

1\. Luck, probably split down into:

A: Genetic talent/skill B: Family/personal connections C: Timing/environmental circumstances

2\. Determination, and the willingness not to give up early (may have a genetic component)

3\. Hard work, and the skills developed from such

With no particular factor being able to guarantee someone is successful, but all of them potentially being able to tip the balance that way. It basically seems to be a bunch of factors that'll either click into place or not depending on your current situation and that of the world around you.

</comment><comment><USER3> Luck. You need both the opportunity, and the know-how to be successful. The next Einstein won't do anything if his family can't afford an education.

</comment><comment><USER4> Pretty much (if you want) you can trace everything back to Luck. FIGHT ME.</comment>


Ask HN: Anyone still hiring? Or has everyone implemented hiring freezes? - <AUTHOR> I see and hear Amazon is hiring for warehouse workers. What other companies and positions are still needed, wanted, or being hired? Is tech and IT frozen? <comment><USER2> Sort of related, but Amazon is hiring for 100,000 roles: [https://blog.aboutamazon.com/operations/amazon- opening-10000...](https://blog.aboutamazon.com/operations/amazon- opening-100000-new-roles) I just read this; it blew my mind.

<comment><USER3> related hacker news discussion [https://news.ycombinator.com/item?id=22597200](https://news.ycombinator.com/item?id=22597200)</comment></comment>


I Guess I'm Not A 501 Developer - <AUTHOR> http://adit.io/posts/2012-04-18-I_guess_Im_not_a_501_Developer.html <comment><USER2> I think there is a lot of delusion going on here.

In today's modern world, we are intentionally ignoring the rights that were given to us.

8 hours a day was fought for. 40 hours a week was fought for. If you are expected to exceed these limits without compensation, you are being ripped off. You have limited time in this life.

As a developer, you create tremendous value in this world. If you didn't you couldn't demand the salaries that you demand. If it was easy, then the business guys would be learning it and doing it for themselves.

It's a modern skill required by modern business. You should not feel like you are forced to spend every waking moment eating, drinking and sleeping code.

In my personal experiences I have found that I have to force myself to step away. After a few hours the wheels stop spinning, but when I come back I am always excited to work on something. This is far more desirable than feeling the dread that comes from doing something non stop.

Balance is extremely important, I do not understand the opposing viewpoint that we should all be code robots.

<comment><USER3> It wasn't fought for, it was given to us in fear that we'd negotiate something better. Most people rip themselves off by giving up labour for money, it's a poor mans game, especially in software. Very few people become wealthy playing this game.

Coding for salary is for the most part stupid because you're producing a capital good, it's much better to retain a portion of the capital and have the capital produce your cash flow.

<comment><USER4> No, the 40 hour week was fought for - before there was ever a software industry. The 8 hour day and the weekend are union accomplishments.

</comment></comment></comment><comment><USER5> Interesting. In my view of the world is that there are no sick days, no personal days, no vacation days and no holidays. Fuck all that.

As long as you own and are responsible for what you are supposed to be doing and deliver on the commitments made you are free to manage your time as you see fit. In reality, it's a team decision and not the decision of the boss (me, in this case). If someone wants to go out of town to see a concert or take the kids to Disneyland for a few days, we talk about it. More often than not there are no issues and the answer is "send pictures". Sometimes the answer is "OK, but could you take the laptop and see if you can finish this little chunk of code". When it can't happen it is obvious to everyone.

Want to take a month off to go down to Argentina? Let's figure out how to do it. You might have to drag along the laptop and keep up with some stuff, but there are probably few reasons to say no. Can I come?

The same applies to sick days or "personal" days (who came up with that term?). You are sick? Please go to the doctor and stay home? Need to go take care of that speeding ticket? Take the day if you have to.

This also applies to work hours. Sometimes you have to put in the time to get something done. When discussed as a team these instanced become self-evident.

I said in another post that I am no stranger to 18 hour days. I hate doing it, but sometimes you have to. In all cases this kind of thing must be fully justified. It can't be the norm. If it is, something is seriously wrong or you need more people.

9 to 5 programmers have one guarantee: They will work 9 to 5 every day and will be held to strict rules when it comes to vacation, personal and sick days. If you want to work a strict 9 to 5 schedule I have to treat you differently. I have to treat you by the letter of the law. So, while the guy/gal in the other plan is in Argentina having fun and doing some coding, the 501'er will be clocking in and out and accounting for meal time and vacation days. Yuck!

I, personally, hate that kind of work accounting. Not for me. To each his/her own.

<comment><USER6> > If someone wants to go out of town to see a concert or take the kids to > Disneyland for a few days, we talk about it.

I don't want to talk about it. If I'm going on vacation, I probably _need_ that vacation. I would be pretty offended by coworkers (especially managers!) prying into the details of where I'm going, or trying to have a conversation about whether I should bring a laptop. _Fuck that sincerely._

Personal time wins, and work can wait, always. I don't work at NASA. We're not going to miss a close approach of Mars if we ship a couple of days later.

Yeah I'm probably a 501 developer.

<comment><USER7> > I don't want to talk about it. If I'm going on vacation, I probably need > that vacation.

You probably need it. You still need to talk about it unless you are the boss - and that's not unique to the IT industry. There's other employees that might need a vacation, that might have a sick child or other things to take care off and it's just a basic fact of corporate life that it's mostly impossible that the whole company goes on vacation at the same time. So the manager must balance on who needs the vacation most, who had the first pick last time etc. So you either talk about that and maybe accept a compromise or you don't go. It's as simple as that.

> Personal time wins, and work can wait, always.

Think: Small company, important Customer who already has TV adverts on air with the release date. Project hits a roadblock no one anticipated, is a couple of days late. You can still make it if you put in extra hours, but won't make it if you prefer your personal time. Customer threatens to sue for a sum that will make the company go bust. What are you going to do? Stick to "work can wait" and look for a new job, make all your colleagues look for a new job?

</comment></comment></comment><comment><USER8> The workaholic v just-a-job tension seems to stem from the fact that it's difficult, in a team environment, to hire someone for the value added. If you could, then the workaholics could work more, learn more, and get paid more, whatever, and the just-a-jobbers could just work, and everyone would get paid by what they contribute.

To borrow the ideal-world-artisan metaphor, if I want a table made by a carpenter, I don't care how long the carpenter spent making the table, and I (ultimately) don't care if it's just a job to her. I care whether my total investment of waiting and money is worth the table she makes.

Problems arise when it's much easier to measure 'passion' and time spent working than value added. These are probably correlated within reasonable bounds, just like total words in a comment and value added to a discussion are often correlated, but I don't upvote on length. It's annoying to see someone getting more respect than you, but turning out crappier work, just because they stay late and fit the cultural bill.

But the flipside is that if time spent and value added are correlated (and I suppose that's very loose across persons, and even within persons), then pay, and perhaps even personal respect for someone's craft, will be tied to that.

501ers recognize that it will probably result in having less opportunities:

 _We recognize that your willingness to allow your employment to penetrate deeply into your personal life means that you will inevitably become our supervisor. We're cool with this._

I think that's a good attitude, as long as it's acknowledged that without putting in the extra hours to learn, grow, or ship, you might not grow over time and earn the same respect in the workplace[1], and you might not get paid the same.

[1] Respect as a person, of course, should be independent of work, and respect for your craft should probably be based on what you can do, not how long you spend doing it. My closest friends are extremely talented, and also more on the just-a-job end. This doesn't change how I feel about them at all. It's their life, after all.

<comment><USER9> _"...as long as it's acknowledged that without putting in the extra hours to learn, grow, or ship..."_

Something is wrong with a job that doesn't fit those things within a normal 40 hour work week.

<comment><USER10> I agree with this. There are certainly situations where more than 40 hours of week are a necessity, but those situations should typically be temporary for the majority of employees. If you are in an organization where meeting your goals requires more than 40 hours a week, week in and week out, then I would say there's probably issues that go beyond your work ethic and personal boundaries.

<comment><USER11> It really depends on what your goals are and who is setting them.

If your employer is expecting you to work >40hr/week to accomplish _their_ goals, and that violates your personal boundaries and goals (e.g. I want to make sure I'm home for supper with my family every night), then there IS a problem. It's not necessarily your employer's problem, and it's not necessarily your problem, but there's a definite mismatch between expectations that needs to be addressed.

If your goal is to become an exceptionally good developer, and your employer is expecting you to be spending all of the 40hr/wk doing work (instead of learning), then you've got the same problem. There's a mismatch of expectations. You're expecting some portion of your time during the week to be on self-improvement, and your employer is not.

But, there are equally situations here where there isn't a problem at all!

If your employer is expecting >40hr/wk, all working, and you're more than happy to collect the overtime, then that's totally fine! There's a match!

Likewise, if you're a decent developer (I'm hesitant to use the word "average", only because North American society tends to cast that word in a negative light), and you're happy working 40hr/wk and staying at roughly the same level, then where's the problem? You're happy where you are, your employer is happy with the work you're doing, all is well.

And, if you're passionate developer whose goal is to become exceptional, and you go home immediately after work and hack away on open source stuff/your own projects/whatever, then that's fine too!

There's a few really important things that everyone should be asking:

* What are my personal goals? What are my priorities? * Are my current employer's expectations well-matched to my own personal goals? * If not, what do I do about it?

</comment></comment></comment></comment><comment><USER12> Programming is awesome, but so are lots of other things. I don't eat sushi for every meal either.

I have seen so many developers exploited by people making a bundle off their work with the explanation "I am doing what I love!" Instead, I think it is possible to create without working outside of work hours. I can learn on the job in a way that can be more context driven than reading disembodied books on technologies that will probably never be relevant for my craft.

I don't know about anyone else, but I was always the kid who did the extra credit whether I needed the credit or not. I feel like we still sometimes get stuck in that attitude of needing to do everything in order to not be less- engaged than other people. As long as the community keeps rewarding those over-achievers we will be stuck trying to keep up with the Joneses.

<comment><USER13> Yes, this. There are plenty of great environments to do what you love, and do it "safely." And there are plenty of poisonous environments where your love of your work will be used to abuse you. I highly recommend doing a stint in old school print/ad shop. I know really great artists who completely burned out very early because their love of their work turned into 48 hour days.

I'm very sympathetic to the 501 cause--I generally don't work more than 8-9 hours a day, and my free time is spent with family and friends, but I do enjoy reading technical books (as well as many other types of books), and go through hacking-for-myself stints, too. There really is a middle ground here--it's not just two camps.

</comment></comment><comment><USER5> Where does it say that 501's are actually productive and produce good bug-free code?

Being a little bit of a dick here, but programming is art and science and there are aspects of it that require dedication beyond a 9 to 5 mentality. I, for one, prefer to hold reasonable hours and come home to the kids. At the same time, I am no stranger to 18 hour days, seven days a week. Sometimes inspiration and problem solving require you to stay on task longer in order to get things done.

And then there are those bug-hunting missions that sometimes never end. I once spent six months tracking down a software bug in a hardware design (Verilog, FPGA). High-speed digital designs can be notoriously difficult to troubleshoot. The problem was caused by a rounding error in an Excel spreadsheet used to calculate parameters plugged into the code months earlier. We used "ROUND()" instead of "ROUNDUP()". Though I digress, the point is that programming sometimes is about recognizing when you need to do a little (or a lot) more than watch a clock.

I'm not proposing that all programmers ought to work ridiculous hours. Whenever I've done 18 hour stints it took me out of the game for weeks. And that's OK so long as there was a point to exerting yourself to that extent.

The bottom of the manifesto says: "To us it is just a job, but we still do it well."

That, to me, is a guarantee to not being hired. That it is "just a job" means that they might as well be welding, at least to me. I don't want people like that in my team.

Having said that, I am the first one to tell someone to get the hell out of the office if they need to go see their kid perform at their school event at noon. Get the hell out and go enjoy the day with your family. Need to take a four day weekend when it isn't an official holiday? Do it! Send pictures. The point is that you build a team and everyone looks after everyone else while having one hell of a time creating a product. Respect, dedication and consideration. 5:01? How about not coming to work to go fly a kite with your kid? I like that.

<comment><USER14> I don't agree with everything you've said, but I do agree with the notion that "putting in time" doesn't necessarily equal work.

It's important to me to maintain a good work life balance. To this end, I work from home 90+ percent of the time so that 'working late' doesn't mean having to miss out on family interactions, or becoming the proverbial stranger to my family.

The flip side though, is that if there's a problem, or a challenge that needs to be solved, I generally go all out until it's solved. Not every bit of programming is amazingly fun -- CRUD operations or writing login forms for example are pretty mundane most of the time.

But when I'm building out the logic for something that I don't know is possible, or if I'm attacking a problem I don't immediately know the answer to, I tend to spend a lot more time on it than 8 hours a day, and I seldom even notice until I'm done that I have.

To me, it's not about watching the clock, it's about getting work done. If it takes me longer to get something done than I thought, that shouldn't necessarily mean that it's going into the queue for another day. Similarly, if I have dinner plans with my family, I'm not likely going to miss dinner because there's an unsolved problem. I don't have family plans or obligations every single day, so there really isn't a good reason for me to bolt at 5:01 every single day unless things are running smoothly.

<comment><USER5> What's interesting is that I agree with everything you said!

My view of the job is that you should be passionate about what you are creating. That is not at the exclusion of personal or family life. Not at all. At times this dedication to the task will result in sacrifices. I am saying that, so long as these are justified this is OK.

If working long hours is normal there might be something wrong with the process. My view was more about that case where "Hey, I am really into getting this state machine figured out. I should stay and get it done 'cause I'm in groove" or "we really have to ship this by Friday, let's get it done and take a few days off next week".

In my view of the job the team is a team and everyone looks after everyones interests and well-being. I've let employees go out of town for a few days (fully paid) to go see a concert by a band they really liked. When asked, if nothing horribly pressing is happening I'll almost always say "yes". Why? Because I have those interests and passions outside of work too and it would not be fair to treat others differently. This is not a religious view, BTW, as I am most definitely not religious. When someone takes a few unscheduled days off to go do something they love the business does not loose money, you gain by fostering a stronger relationship as well as having someone come back from their trip re-infused with energy.

Robotically clocking out at 5:01PM has never made sense for me, even when I was the employee. I don't think I have ever worked 9 to 5 in my life. Maybe I'm lucky 'cause I've had fun jobs that I wanted to keep doing.

<comment><USER14> The only thing I really disagreed with was the notion that 501 developers aren't necessarily good developers.

I've worked with some folks who belied that argument. Good, solid work, but no more than 8 hours of it. In all fairness, this usually (though not always) was the result of having been exploited. They were great developers working 18 hours a day, 6+ days a week, until they came in and quit. Realizing how necessary they were, the employers were able to strike a deal that kept them. Usually the only complaint were the work hours. Employers give them a gentler schedule and they stay, still producing good code.

I get the motivations for the 501 guys, and will freely admit there were places I worked where I wasn't happy, and that unhappiness expressed itself as a nonchalant attitude toward the work.

Of course, once I realized it, I made it a priority to get out; to get myself somewhere I could enjoy the work, and to get my employer the opportunity to get somebody in place of me that might enjoy the work they were doing. I didn't feel it was fair to either party for me to be that guy, and sadly, the _work_ itself was exhilarating, it was a variety of factors within the team that made the _job_ unenjoyable.

I miss the work. :'(

<comment><USER5> > The only thing I really disagreed with was the notion that 501 developers > aren't necessarily good developers.

I don't think I said that. If I implied it, I'm sorry, I should have used more precise language as this is not what I believe.

My comment about writing good code had to do with their manifesto. They obviously go into a lot of the reasons why they want to work 9 to 5 but fail to also commit to doing a solid eight hours of work and producing good code during that time. You can work eight hours and produce absolutely nothing or far less than you could/should.

So, if you are going to work eight hours and code for eight hours --no youtube, no facebook, no HN, no anything outside of what you are supposed to be doing-- then, that might be OK.

In other words, like brick layer lays builds a wall or a Walmart employee attends to the cash register.

If you want flexibility than you are not a 501'er.

<comment><USER14> Ah -- my apologies for putting words in your mouth.

I'd say that's a fair and accurate statement all around. If, as an employer, I can't count on you, as an employee to be flexible, then I'm certainly going to be less tolerant of the miscellany (like HN, youtube, etc.) than I would be if I knew you were more likely to get things done.

Of course, if my guys can put in only 8 hours and still meet all tasks assigned while surfing porn and youtube all day, I'm almost certainly going to look the other way.

</comment></comment></comment></comment></comment></comment><comment><USER15> I've found that assigning a label to myself like '501 developer' is counter productive. My productivity and flow tend to come in waves.

I've noticed that there are times that I'm so interested in the problem at hand that 5:01PM just blows by. When I finally look up from the code, it's 7PM or later. In some cases this lasts for months, because the work is both interesting and rewarding. However, it never lasts for too long because of the inevitable cycle of software as it moves from being greenfield to brownfield.

During such times, I've felt less of a need to attend user groups, hack on personal projects, or do much reading outside of what I need for my immediate job. Between the job and my personal life, I was content with my time spent.

However, fast forward a few months and I'm back to leaving at 5PM so I can read and hack on the side with the extra free time. Over time the day job gets less and less interesting and then I start to look for something new that might trigger my flow once again. And then the cycle repeats.

</comment><comment> DanI-S Here's something better:

\-- The 416 Developer Manifesto --

* I get hired because I'm good at what I do, and excited about it.

* I'm good at what I do and excited about it because I get enough time outside of work to pursue my interests.

* If you want to maintain my value as an employee, make sure I get enough off-time.

<comment><USER16> I don't get the 416 reference?

<comment><USER17> You've gotten an error because what you've requested is beyond the available range. ( _My_ time is _my_ time, not yours.) Although I think a 413 would make more sense—the request is larger than the server is willing to process.

<comment> DanI-S That's the one - although 413 makes a lot of sense too :)

</comment></comment></comment></comment><comment><USER18> I vary on this one. I have a bunch of hobbies, of which coding is one. When I go through a coding phase then I'm not a 501 developer. When I go through a boardgaming phase I am.

In any case, I try not to _work_ more than 40-hours per week, but my play frequently still involves computers.

<comment> jack-r-abbit Exactly. My job is programming because it was first my hobby. I have an EE degree.. not a CS degree. I was an Epi Reactor "mechanic" before I realized my passion was software not hardware. It is awesome to get paid to do something I love. But that doesn't mean I should be required to do it only for someone else for all my waking hours. Some times I want to do my own thing.

</comment></comment><comment><USER19> So there's simply a fundamental value difference here. Some people love their families, friends, and free time to the exclusion of other things. To them, working is a means to an end. It doesn't actually mean they're not passionate about it, just that they have separated it to a different part of who they are and what they care about. I believe that was the point of the 501 Manifesto.

On the other hand, it's not strange to seek unity between your passion and your work. This is a great path for those who desire to have their material accomplishments define part them and is basically a necessary attitude for living in a meritocracy. It doesn't mean that you dislike your family, friends, and free time, simply that you feel that creation is also of central importance.

It's just different ways to self actualize. You can't compare them, really. You can accept the differences and work with people however makes everyone the happiest and most productive, though. 501 programmers may not have the same need to do exciting, groundbreaking work. They also don't want to spend the time. It doesn't mean you can't make use of them and make everyone perfectly happy. It may mean you don't want to actually work with any of them if you're trying to do something very difficult.

</comment><comment><USER20> I've never heard of this 501 thing before, and I'm not looking forward to all the posts, replies and counter-replies on the HN front page.

Can't we just agree to work during working hours (if you need me to work a bit more as a favor to you, or if you pay me overtime, that's totally okay most of the time), and spend the rest doing what we love, including, if one is so inclined, programming?

</comment><comment><USER21> I'm guessing that most of the people who see long hours as a badge of honor are salaried employees or people who manage salaried employees. One thing I noticed when I switched over to contract work is that once a company has to pay for each hour you work, they are a little less enthusiastic about you putting in long hours. In fact, some of the contracts I was on had caps on the total number of hours you were allowed to bill. Long hours are seen as a sign of passion when companies don't have to pay extra for that time, and seen as a sign of poor time management when they do.

</comment><comment><USER22> To me, the concept of a '501 Developer' as outlined in the manifesto seems kinda foolish. It shouldn't be outside of industry norms to value one's family over one's company, or to treasure time spent with friends over time spent with coworkers.

The list of pitiable/respectable items are a bit different. In particular, "Mostly only read books about coding and productivity" I do find unsatisfactory; the power of literature is massive and too often untapped, and the thought that reading 300 pages about a language or productivity is more valuable than, say, The Brothers Karamazov frightens me a little.

Dearth of passion doesn't make someone a '501 developer', nor vice-versa; I just think being passionate about one subject to the exclusion of everything else is dangerous, no matter the industry or lifestyle.

<comment><USER23> > I just think being passionate about one subject to the exclusion of > everything else is dangerous, no matter the industry or lifestyle.

Probably true. But you don't get to be Mozart or Van Gogh by being well- balanced. ;-)

<comment><USER24> You could be a Leonardo da Vinci, though.

<comment><USER25> Ha, we had the same thought!

</comment></comment></comment></comment><comment><USER26> Nothing saddens me more than the really smart developer who has no other interests. How a person can know one subject to such endless detail yet be clueless about the world around them.

<comment><USER27> Indeed. One might argue it even stunts the potential for greatness: after all, you best can solve problems you've directly experienced.

That might be part of the reason we have thousands of tools to increase programmer productivity, but there are piles of money to be made by providing a simple MVP in a market that's totally untouched.

</comment></comment><comment><USER28> Looks like semicolons had their run and it's time for something else.

<comment><USER29> Seriously, I feel like we're trapped in a meta nightmare. Who cares? I feel like I'm wasting a non-negligible amount of time reading about meta discussions of how I must find value in my life or do my job or assign levels of passion so that I'm legitimate or respected or some shit. I do my job. Most days I enjoy it. Some days I don't. Sometimes I have to put in more hours than I like. If that continued and my job became, on average, more of a nuisance than not, I'd find a new job.

I have to believe this is how most people are who don't have the time or energy to write long-winded blog posts about "be like me so I feel better about how I live".

</comment></comment><comment><USER30> Very much agreed. In fact, I pity someone who works a job so distasteful/uninteresting to them that they need to go on a rant like this manifesto. There's something to be said for leaving work projects at work, I get that. But every day I get inspired and amazed by the stuff people are doing in the world of software. I like programing, I like computers. Maybe I haven't seen Game of Thrones or spent much time in bars over the last 5 years, but I don't see why that's reason to pity me. If you don't love what you do, do something else.

Software is complex. Complex enough that, for most, if you're not passionate enough about it that it creeps into your hobbies and your reading, you probably won't be much good at it. The manifesto seems to acknowledge this, while at the same time implying that they want to be well paid and get lots of time off. In any other industry I am familiar with, these are the perks of being the best.

Perhaps I'm taking it a big far, but to me, the most exciting software projects are closer to art than any other sort of work. I'm not familiar with many artists who view their works as "just a job", and would be surprised if many compelling works were created by people with that kind of mentality. I think it really reaches out to any kind of skilled work, I wouldn't want to be diagnosed by 501 doctor, bring my car to a 501 mechanic or drive my car over a bridge designed by a 501 engineer.

EDIT: removed ending nastyish statement.

</comment><comment><USER31> Reminds me of this oldie but goodie:

Good umpire: "I call 'em as I see 'em."

Better umpire: "I call 'em as they are."

Best umpire: "They aren't anything until I call 'em."

Same thing:

Good programmer: "I am a <501 or xxx> developer."

Better programmer: "Watch what I do. That's how you do <xxx>."

Best programmer: "Whatever this project needs me to be, _that's_ what I am."

<comment><USER32> _"Whatever this project needs me to be"_

I'll _never_ put in 80 hours in a week for you. I'm sorry, but there are more important things in life than programming. Maybe I'll never be the best programmer, but I think I'll be a better person.

<comment><USER33> Put in 80 hours a week on someone elses project - sure, totally get this attitude.

But if you aren't willing to put extra hours into your own project (or others who you believe in) - then you will never be great.

I work 40 hours a week at a day job with a local startup. I'm not a founder, nor employee one - I do have some decent stock but really I just work for the salary.

My passion comes in the extra projects I take on for myself. I do it because it honestly interests me and isn't work - it's a hobby as well.

This whole "never work over 40 hours" is very humorous to me. Work what you feel like - no one else gives a damn what you do.

<comment><USER32> The problem is that people do give a damn.

People automatically assume that because I don't want to work over 40 hours means that I'm just in it for the money/job/whatever. They automatically assume that because I don't have 20 projects on github, I'm not active on twitter, nor do I have a blog that's updated twice a day that I'm not passionate about my profession. They automatically assume that because I don't go to 4 meetups a week nor contribute to their favorite open source software every other day, that I don't don't care about the community. Just because I don't do these things, it does not mean I'm not a passionate programmer.

People are also confusing the difference between work and pleasure. Just because I'll only put in 40 hours of work in a week, does not mean that I'll not program on the nights/weekends.

<comment><USER34> Well, let's be honest then.

If you don't contribute to the projects, if you don't spread your knowledge, if you don't give away your source...

...what good are you?

What have you done?

How are you anything other than a consumer of other people's work and knowledge?

<comment><USER35> I'm sure his children don't see his worth as a father improved by the time he spends coding open source instead of interacting with them. A similar thing can be said for every other non-programmer he interacts with. Perhaps he won't leave the programming legacy that you or he would like, but that doesn't discount the value of the other legacies he may create in the meantime.

(Apologies if my gender bias above is incorrect.)

I think that the 501 argument at its core is that we shouldn't judge a programmer's personal value solely by their programming. Programming is the one thing that everyone in this argument has in common, so it's easy to turn it into the only metric by which we judge people. Any other metric might not apply to all of us, so it would be of limited use.

I think 501 developers are tired of being scorned or feeling guilty for not dedicating themselves to programming all the time when other segments of their life need attention too. But let's face it - if they weren't passionate about programming, they would hardly take the time out to make the argument.

<comment><USER34> Don't get me wrong--I'm not saying, "Hey, to hell with your kids, we've got commits to make!". I actually got hammered pretty hard a while back for _defending_ the stance of fathers telling VCs/bosses/etc. to fuck off when asked to choose between family and code. That's the right thing to do.

But, there is a real problem, right? We _can't_ really judge a person by anything other than their programming value--and the vast majority of us, here on HN, are only somewhat qualified to do _that_ much.

Even in a seemingly simple case such as whether or not we should ascribe personal value to somebody who has had kids, we can't assign value easily. Do they support their kids? Do they beat their kids? If yes, is it for good reason? If yes again, how often do they beat them? Even something as seemingly clear-cut as that is a transparent as mud.

Are they homosexual? Are they polyamorous? Are they racist? Are they sexist/genederist? Are they a fan of classical music? Do they play an instrument? Do they like the Yankees?

All of that is stupidly subjective in terms of valuation. Why bother?

Programming, though--and more particularly, how they contribute to the community of programmers--is something that we _can_ at least try to reason about. Something we can attempt to quantify (and yes, you can game lines of code, you can gain commit counts, etc.).

Lastly, note the attitude of the ancestral post:

 _"I'll never put in 80 hours in a week for you. I'm sorry, but there are more important things in life than programming. Maybe I'll never be the best programmer, but I think I'll be a better person."_

That's a little high-and-mighty, yes? Didn't even bother to qualify "more important things in life than programming". There are, but that was an unsupported statement that we can't expect anyone who values programming above all else to agree with. The "better person" bit, too--better than whom? Themselves having chosen to value programming more? Us, the hapless codemonkeys who see a chance to make progress for everyone? Who?

I don't begrudge people that are punchclock coders. If you ignore what I do outside of my day job (which admittedly is secondary to my startup efforts), I qualify--and I come in late and leave early!

What I cannot stand, however, are people that make unsubstantiated claims, that come off as holier-than-thou, and that seem to be unable to grasp that they can insult a whole group of people without meaning to.

<comment><USER35> It is definitely still a problem. If we discard the programming-centric judgement metric, we are left with essentially no common ground on which to form opinions, so that's clearly a non-starter as well.

I don't have an answer for all of this, on either side. It seems to be rift- causing issue from both directions. I think that rift is something of a false dichotomy, which is my main problem with this issue. The people in this debate are all actually on the same side - they care enough to debate it. What they care about may differ, but that hardly seems to matter in my eyes, as long as they do care.

(I dislike all the downvotes you've received out of disagreement - it was a thought-provoking comment that has continued the discussion. I upvoted, for what it's worth. Playing devil's advocate seems to have gotten you singed a bit. :) )

<comment><USER34> I think I agree with you--and I don't really have an answer either. It's hard business all around. :(

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER36> The big problem I see with the "501 manifesto" is that it assumes there is just one thing called "programming".

The kind of programming that was fun for me when I was young is completely different than the kind of programming that employers pay for today.

Why do you think people are spending their free time on Github? They miss programming for fun so much they'll do it for free.

<comment><USER37> I totally agree with this. Programming for work and programming for myself are two totally different things. Maybe we're all 501ers when it comes to only wanting to give a certain amount of time to your employer.

</comment></comment><comment><USER23> The only reason this whole debate exists is that there _are_ lots of us who love programming, and would be doing lots of it whether or not it paid.

This naturally makes 501 types uneasy, because it leads to unfavorable comparisons.

<comment><USER38> I can't help thinking that most of the programmers who program (a lot) in their spare time do so because they aren't satisfied at work.

<comment><USER39> This definitely applies to me.

I'm in my first job, I've been doing this for almost 2 years now. Everything about this place screams "Mediocrity". Most of my coworkers are middle-aged programmers with average skills and no hope of ever becoming anything beyond _average_. All they want to do is work their 9-5 hours (in all fairness most of them stay until 6), and daydream about the next way to spend their 35day/year vacations (not to mention the ~20 days of public holidays. Yay France!).

I'm not satisfied, a better word would be "fulfilled" at work. I am the youngest of a 50+ programmer team, (not-so-)freshly graduated and I'm regarded as the best dev on the team. Because I love programming, because I don't want to stop learning, because I care.

The only thing that's kept me going for so long is the 2-3 hours of "real" programming I put in every evening. So far my gf's being very comprehensive about that, but I know things will change when kids will come into play. One of the main reasons I read HN is to remind myself that interesting, fulfilling jobs _do_ exist. One day...

<comment><USER40> > 35day/year vacations (not to mention the ~20 days of public holidays. Yay > France!)

I wish it was true; but you are just bullshitting.

<comment><USER39> I wish it was false; I really wish I was bullshitting.

[http://www.travail-emploi-sante.gouv.fr/informations- pratiqu...](http://www.travail-emploi-sante.gouv.fr/informations- pratiques,89/fiches-pratiques,91/conges-et-absences-du-salarie,114/les-conges- payes,1035.html)

</comment></comment></comment></comment></comment><comment><USER41> What I don't like about this thinking is to consider anything apart from 'going to the moon' as a job not worth doing.

Everybody has a world of his own. A friend of mine comes from a family of farmers. Back here in Bangalore, we would drive down to his place during our engineering college years. And we would spent great deal of time in fields and a small hill close to his place. Now you really must hang out with those farmers. Try working in the field for a couple of hours and experience a cool breeze blowing through your hair, drying you sweat. Try eating a banana or a guava straight plucked from the tree, try roasting a chicken on a chicken farm. Try climbing a small hill and then rest on it while sleeping and staring right into the sky watching eagles. Try diving in to a the lake near the fields. Do you know how much fun that is? None of that is rocket science but it feels like heaven when you are experiencing it.

These days I try to hang out with cab drivers who drive me back home in the night. I buy them a cup of tea or coffee in the night. And it awesome chatting with them and listening to their experiences. Its crazy how much fun they have.

Some of the words happiest people are the ones who work during the day in the sun smelling the sweat essence of mud.

Passion and fun can be found even in the smallest of the things we do in life. And people do that all the time.

The guide to a happy life is to really focus on _how you do things_ rather than _What things you do_.

</comment><comment> jack-r-abbit If "501 developer" is being used in a derogatory way, then I am not one. But if we're talking about devs that have "hard stop" point for themselves each day then I am. I like to leave shortly after 5 because I like to have dinner with my family. This is actually an agreement that my wife and I made when I switched jobs and she went back to work (outside the home) after kid #3... we would both do what we could to be home by 6:30 every night. And for the most part we make that happen. Of course stuff happens but we would rather that be the exception than the norm. And neither of us sees a problem with that attitude. I enjoy programming a great deal. I am a problem solver. It bugs me internally when I have to leave a problem unsolved for the next day.

But my take on the whole situation can be summed up like this: I work from home 2 days a week and often times when it is approaching dinner time and I'm still in the office, my wife will come in and ask something like "how much work do you have left?". Well, the most accurate answer is "a lot... weeks" but I obviously can't finish it all tonight. I'll have to stop at some point and there will still be work unfinished. Even if I worked until midnight... there would still be work left. So if I've put in 10 productive hours... why is stopping at 5 any more significant than stopping at 6? or 10?

</comment><comment><USER42> I already said this on reddit, but I guess we should make a "501 programming lover" manifesto where we keep everything but the last part of the 501 developer manifesto.

</comment><comment><USER43> Definitely some good points. I can relate with, "But the second part makes it sound like your days of learning and creating ended when you got your diploma. I can't respect that." I have a friend (an EE with several jobs offers out of college but who chose to take the most cushy government job that was nothing but paperwork) try to make me feel guilty for spending my spare time working programming a side project rather than going out. He claimed "we graduated, we're done 'really' working" and after talking to him made me realize that he hadn't ever really enjoyed the classes in his major or what he's doing now. I understand there are a lot of people who find satisfaction in their lives outside of work but I think that there are many who never make finding their true passion in life a priority.

</comment><comment><USER44> Why does it always have to be one or the other? Why do we feel the need to assign labels to everything?

And why in the holy hell are some programmers so damn single-minded that they can't accept that others who are passionate about programming can _also_ be passionate about other things. I'm passionate about my job and consider myself among the extremely lucky few who gets to do what I love for a living (and, at the moment, in a place I love doing it making for a great combo). But I'm more passionate about my family at home. I'm also passionate about the music, movies, games, and other arts.

Devoting yourself to one thing is not being passionate about it--it's having a single-minded focus and lacking passion about anything else. Can we please stop confusing those points?

</comment><comment><USER45> Is this a binary scale of either/or?

I am on different sides of the spectrum at different times. I don't mind my programming work but I wouldn't say I was "passionate" about it. 90% of my work is not solving anything technically very interesting. More like fixing up user error , solving minor bugs and making incremental improvements to things.

If I want to do some extra programming outside of work I would prefer to learn some OpenGL or some new paradigm like functional programming than to just do more of the same. Of course plenty of the time once I am finished with working I would prefer to just get on and do something else.

</comment><comment><USER46> This labelling (501 or !501) is pointless and arbitrary. I'm a self-employed developer with four children. Some days I work until 11p or even as late as 1a. Some days I quit at 2p and take in a child's soccer game. This isn't a label as much as a choice every day. Both choices come at a cost. Big deal. All choices come at a cost. If I choose family over work, in all likelihood the perception of my dedication will suffer. Contrapositively, if I choose work over family, my relationships will need repair. The labels are meaningless, and perpetually choosing one side is simple indicative of a life out-of-balance. This is all just a side-effect of scarcity of time, and the labelling sounds like an attempt on both sides to justify choices. Ultimately, if I want to be done working at 5:01p (or any other time), then I am, and I take responsibility for those choices and the potential damage to my career. If I want to work until midnight, then I do, and I take responsibility for that choice and the potential damage to my relationships or the hinderance of my pursuit of other goals. Call it whatever you like. Why do we need a manifesto to categorize daily personal choices?

</comment><comment><USER47> After reading the blog post, I actually agree more with the 501 Developer manifesto. One year after graduating from college and landing my first professional job, I discovered that although I love programming, I love life a lot more. For me personally, it's all about maintaining a balance between my career and life.

In the end, no one dies wishing they worked more:

> "Write a technical blog"

I found that I enjoy writing a lot more when it is not about technical stuff. The few technical blog posts I write serve more as a mental bookmark for myself, that I can reference back to in the future.

> "Contribute to open source projects"

Honestly, I have yet to find an open source project that I feel passionate enough about to contribute to regularly outside of work. Until then, I'll continue focusing on my personal projects.

> "Attend user groups in your spare time"

I would rather spend time with friends & co-workers going out to happy hour or watching a good movie rather than discussing the frameworks/languages I use on a daily basis.

> "Mostly only read books about coding and productivity"

For the longest time, all I did was read technical selections on Safari Books Online. It got pretty monotonous after a while. I still read some technical books, but I would pick a great fantasy/fiction novel over a book on cross- browser CSS hacks any day.

> "Push to GitHub while sitting on the toilet"

That's insanitary IMO.

> "Are committed to maximum awesomeness at all times, or would have us believe > it"

I'm not that awesome. Being part of the HN community has been an incredibly humbling and educational experience.

</comment><comment><USER48> I've worked in those job environments before at other places, e.g., fast food joints, and there's no joy for me in working in an environment where everyone rushes home as quick as they can to get back to their "real life".

I would far prefer to work with someone who likes his job and is okay with working over a bit, and has a github for personal code, and maybe has a tech blog, and maybe contributes to open source projects. Someone who has a personal desire to learn more overall, not just at work.

To paraphrase something my dad, a highly skilled carpenter, once said: "Knowledge is our edge". If you are disdaining knowing more (in this context, taking the time (at work or not) to know more), then you're disdaining your edge in your profession. And that edge/lack of it accumulates.

If you hate your job and your profession so much you can't wait for 5:01 to roll around so you can escape your workplace and software, I don't want to work with you.

I code at home. I'm proud of this. And I want to work with people who understand that.

</comment><comment><USER49> This does a pretty good job of describing my response to the post too. I think work/life balance is extremely important, but so is enjoying what you do during the day, and continuing to learn about your work and the world at large.

I typically try to work 8 hours a day. I'll work longer during crunch times, sometimes 12-14 hours... but if "crunch time" becomes the new normal I'll abandon ship without embarrassment.

When I'm home, a lot of the time my hobbies are technical: I'll play with personal programming projects, or try out new sysadmin tools, or mess around with a friend's web site. I'll also read books about physics, go fencing, take walks with my wife, play with the cats, go drinking with friends from outside of work, play the trumpet, read ridiculous amounts of science fiction... I know my work/life balance is being impacted when _those_ things are being marginalized.

But I'll keep programming at home, too.

</comment><comment><USER50> That manifesto sounded really bitter. Nobody's judging you for having no passion for programming. But the thing is programming is a craft many people are passionate about and those people are an order of magnitude more productive than you. Sure, if you are willing to work for what an average "just a job" pays, welcome aboard. Otherwise I'm better off hiring someone who gives a damn.

But the comments here perpetuating the fallacy that giving a damn somehow means putting in crazy hours offend me even more than the manifesto. Sure, it's common among the best programmers to live at work because they love their job, but it actually makes them less productive, not more. There's _nothing_ wrong with working nine to five. It's not a manifestation of lack of passion. In fact it's the most rational thing to do and it's in your and your employer's best interest.

<comment><USER51> > But the thing is programming is a craft many people are passionate about and > those people are an order of magnitude more productive than you.

No. No, they're not. Some of them, however, are an order of magnitude more pretentious than you.

</comment></comment><comment><USER52> Haskell has no real world use, it just exists because the author wanted it to?

Did I misread that or is that what the author is saying?

<comment><USER53> That's why the next sentence starts with "All kidding aside..."

</comment></comment><comment><USER54> I don't think this should focus on "are they good developers or not". That's independent and "case-by-case" at the individual level. I don't think we can characterize that entier portion of the workforce one way or the other. This is more about bi-directional expectations between employee and employer.

Additionally, "passion" for the specific things you are building vs "passion for doing a great job" are also independent. They can converge (awesome for you) and sometimes diverge (welcome to life). More importantly, you will experience all three scenarios at different times throughout your career.

In regards to the general relationship I keep with my employees, I personally execute and support the "did the shit that needed to get done, get done" approach. Not sweating when someone logged on for the day, when they logged off, where they worked from, did they have beer during the day (my preferred answer is YES). Thats the trade-off for when we need to work late to sometimes get the necessary shit, done.

My parents prefer a different environment. They have a specific time they show up to work, a specific amount of allotted time for lunch and breaks, and a specific time when they leave. They different, it's not their problem when shit didn't get done. Plain and simple. There is no flexibility and that's the trade-off.

Each has their pro's and their con's and one isn't necessarily "better" than the other. What do "you" want and works best for "you".

What I'm seeing emerge in these discussions (on average) is an arrogant demanding of a blended approach entirely in favor of the the employee. They want to show up generally around nine, take breaks, take lunch whenever, play some foosball. All the "benefits" and be out the door at 5:01 PM with none of the "cons". Additionally, what gets done, gets done. It's not their problem, nor fault, in any capacity if it doesn't get done by 501. Someone project managed wrong, someone did scope properly, etc.

Maybe it's a new world, at this is becoming the norm, however, it frustrates me.

</comment><comment><USER55> I'm not really sure if this has to be so black or white--you love what you do, or you don't--for most people it's probably pretty grey.

One thing I'll add to the discussion, for myself I've stopped doing contract work in my spare time because I feel it just takes away from my motivation and causes more stress. Instead, I prefer working on my own projects where I have more control over the design and implementation decisions, as well, I choose projects related to stuff that interests me. And by interest I don't necessarily mean computer science related interests, I mean other things like mental health, depression, etc. and using computer science to solve problems related to those fields.

It's all about integrating your life and interests I guess.

</comment><comment><USER56> Agreed. Keep your pity.

</comment><comment><USER57> I don't understand this manifesto business. Everyone wants, and can get, something different out of a career in software development.

Why do the "501 developers" care that some people would rather program late into the night than go out with people. Likewise, why should anyone care that the they would like to have enough free time to engage in other hobbies.

If I want my job to define who I am, who are you to tell me that it's "wrong"? If you want the free time to do other things, go for it, but don't assume that the lifestyle you want would make everyone happy.

<comment><USER58> Because the expectations jobs have come in large part form the cultural expectations prevalent within the field. And your job's expectations can make you either unhappy or unemployed.

<comment><USER57> It seems to me that the manifesto takes a swipe at other developers who "[w]rite a technical blog [...]" (referring to that whole list) as if the way they do things is inferior.

It also appears to make the assumption that the only reason someone would be so involved in their work is that they are sacrificing their personal life to get a promotion or make more money.

>We recognize that your willingness to allow your employment to penetrate deeply into your personal life means that you will inevitably become our supervisor.

This makes it sound like "non-501 developers" just lie back and think of England so they can get a bigger paycheck. Maybe some people just enjoy working longer hours.

</comment></comment></comment><comment><USER59> The role of the 501 Developer is something that we should be striving to automate or abstract away.

I think that the craft of solving real world problems with computers has reached a plateau, through lack of the right tools, programming languages, methodologies, sociological systems, etc.

That 501 Developers are needed to intermediate between the technology and the solution stakeholders or customers seems like an indicator of stagnation or inefficiency in the current approach to software development.

</comment><comment><USER60> Why is obsessive and 501 the only options? Anyone else feel in the middle?

Judging people's work by the hours they keep, or how they choose to spend the rest of their time seems immature and shallow. 40 hours per week is plenty to fulfill job responsibilities (and more), advance passion, grow technical skill, and love what you do. The pace may be a bit slower than 60-80 hours a week, but I find 40-50 more sustainable.

Working longer hours does not equal more done, more passion, or more skill.

</comment><comment><USER61> I like programming, but it is far from my passion. My passion is making useful stuff people like to use (and preferably getting paid for it :). I prefer it this way, because it means I can keep my passion when I have to spend a week writing technical documentation or helping the sales team figure out how to turn their laptops on. If it gets us closer to people using the product, I'm good with it.

</comment><comment><USER62> Its probably a bad idea to attach labels to ones-self. Everyone is different and thats fine.

In my personal experience I have found passion does not equal skill, skill does not equal passion and working long hours does not equal getting things done.

One thing I will say though is that it is important to get outside ones comfort zone; for us programmer types this probably means disconnecting and finding interest outside technology.

</comment><comment><USER63> The funny thing about the manifesto that it is proclaiming a particular point of view (while neglecting the fact that most things on the list aren't mutually exclusive), while condemning another.

Dude, it's a personal choice for you to be okay with being average, but don't try condemn people who want to excel. I know that mediocrity loves company but geez.

</comment><comment><USER64> Leaving at 5 has nothing to do with how "passionate" you are. I write better code when I go slowly and have time to be a human being. Even if it were my company, and I was extremely passionate about the product, I would still set these boundaries, because that's what I believe is vital to my mental health.

</comment><comment><USER65> Nowadays everyone adding "Adjectives" behind their name for being a Programmer . like this "501" !! You code to live or to get pleasure.That is totally your choice ! But don't pity others for not travelling in your way.I hope they do have certain justifications .

</comment><comment><USER66> Hmmm, I work more than 40 hours a week... Between my day job, and getting my own company going, I work roughly 16 hours a day... I enjoy it.

But then again that's during the weekdays, weekends I barely do any work, so I have no problem working such long days during the weekdays.

</comment><comment><USER67> Work life balance? This aspiration applies to all industries.

If you have no other commitments (family, sport, TV etc), then you could spend all waking hours in front of a computer/smartphone writing code.

That feels like am unhealthy commitment.

<comment><USER9> And you'd probably be less productive than someone who found the time to relax and recharge their energy.

</comment></comment><comment><USER68> Is this related? It's an article I wrote on how WePay hires it's sales team: <http://news.ycombinator.com/item?id=3864412>

</comment><comment><USER69> Adit has never seen Return of the Jedi. No credibility.

</comment><comment><USER70> I am not a 501 developer, but I work with a very good one, and he is an invaluable source of stability and perspective.

</comment><comment><USER71> I read this as a "501 Not Implemented" developer. Which doesn't really seem like a good thing to shout to everyone.

</comment><comment><USER72> Wow. Author missed the point completely.

</comment><comment><USER73> I agree that a job shouldn't define who you are.. but I think what you choose as your profession says a lot.

</comment><comment><USER74> 100% agreed to this

</comment><comment><USER25> Someone commented this on the original post:

> _People who work on something they aren't passionate about deserve neither, > and their sacrifice will go unnoticed._

To which I reply:

That's an extremely arrogant, insulting and self-entitled notion.

You, sir, ONLY get to do what you "love" because millions of people every after day do what they don't love but have to do anyway (in order to pay for their food and family). People from the guys that work in mines to gather materials to make your computer internals, to guys that transport gas and flip switches at energy plants so that you can have electricity, to the guy that flips your burgers when you go to the fast food joint across the street, to the guy that cleans your offices. Not "loving your job" has nothing to do with an aversion to "hard work" (people work far more hours and intensely in shit jobs, because they have to), or not taking pride in one's work (there are people that DO take pride in doing a good job at cleaning streets from garbage for example --that doesn't mean the love their job).

It's a silly American notion that every job can be (or worse, has to be) the worker's "passion" --and only few get to have the privilege of that notion, and then again only after they have a lot of lucky breaks.

<comment><USER75> I'd go one step further and say that it's likely many of them _are_ working on something they're passionate about:

Their families.

<comment><USER76> I would up-vote this one thousand times over if I could.

Blazing ignorance of the most basic verisimilitudes of the human condition is one of the more annoying characteristics of hacker culture.

<comment><USER77> I wouldn't characterize 'hacker culture' like that. Vocal minority is the blight of all groups / cultures.

</comment></comment></comment></comment><comment><USER78> I guess you aren't. Alright :)

</comment><comment><USER79> They were my thoughts too

</comment><comment><USER80> Your worldview differs from that of others. This happens a lot, no need to get all upset about it. "501 Developer" means absolutely nothing outside a very small group of people -- try not to sweat its significance.</comment>


M&A Trends - <AUTHOR>

<comment><AUTHOR> There have been some discussions here and elsewhere about how larger companies are more interested in acquiring earlier-stage startups than they used to be. The gist is that they are beginning to cut out the VC middleman by going after promising companies before they grow too big (and expensive).

Is anyone aware of any data that backs this up? I'm not sure how to present this idea to folks who aren't in tune with valley trends.</comment>


Ask HN: Which online learning communities are you a part of besides HN? - <AUTHOR> <comment><USER2> I run [https://hackclub.com](https://hackclub.com) where we have a community of thousands of high school hackers around the US and internationally. Our Slack is open if anyone wants to join :-).

</comment><comment><USER3> Front-end Masters and Lambda School.

</comment><comment><USER4> Khan Academy, YouTube

</comment><comment><USER5> Linux Academy

</comment><comment><USER6> mvgroup.org

</comment><comment><USER7> dev.to</comment>


Escher Sketch - <AUTHOR> http://levskaya.github.io/eschersketch/ <comment><USER2> Author here - If I thought people were going to rediscover this old project I might have invested some time in redoing the UI, apologies for the crudeness. I was inspired to make a quick plane-symmetry sketching tool after being inspired for years by islamic pattern art, but much more could be done in this direction, especially with a proper vector tool. I highly recommend "The Symmetries of Things" [http://goo.gl/1zzZjz](http://goo.gl/1zzZjz) for a mathematically deep, readable and well-illustrated coverage of symmetry. "Islamic Design" [http://goo.gl/UCkRSa](http://goo.gl/UCkRSa) for a beautiful intro to the amazing designs one can achieve exploiting symmetries.

</comment><comment><USER3> I'm actually more impressed with polyHédronisme [1] linked from that page. Great.

[1] [http://levskaya.github.io/polyhedronisme/](http://levskaya.github.io/polyhedronisme/)

<comment><USER2> Yeah, topological operators are just amazingly cool and are deeply related to subdivision surfaces and many other beautiful parts of geometry. I'd recommend checking out the mathematical sculptor George Hart (whose work introduced these operators to me) [http://goo.gl/zrKAEK](http://goo.gl/zrKAEK), as well as Wenzel Jamnitzer's beautiful "Perspectiva Corporum Regularium" [http://goo.gl/2WKcyN](http://goo.gl/2WKcyN)

<comment><USER4> Here are the links without going through Google's URL shortener:

[http://www.georgehart.com/sculpture/sculpture.html](http://www.georgehart.com/sculpture/sculpture.html)

[http://bibliodyssey.blogspot.com/2009/08/jamnitzer- perspecti...](http://bibliodyssey.blogspot.com/2009/08/jamnitzer- perspectiva.html)

</comment></comment></comment><comment><USER5> Cool ... when I first started playing with it, I found I could make Spiro- Graph like art. Then I had to see how it worked and with just a few more circles of the mouse, I had a solid black pane.

Some engineers will never be artists ;)

<comment><USER6> don't count yourself out yet! art is expression, and i'd bet you are good at some form of self-expression, even if you don't really think of it that way.

<comment><USER7> Emphatically agree. Programmers are code artists practicing self-expression in the same vein as the architect of a building. And when they get too clever for their own good, it just as quickly devolves into creating a space that's hostile to its inhabitants.

</comment></comment></comment><comment><USER8> Awesome! I tried making something like this a few months ago[1] but never got around to finishing it (tiling is busted and performance is pretty terrible): [http://lou.wtf/patturn/](http://lou.wtf/patturn/)

Wallpaper groups are really neat. I especially love the p3 and p6 groups.

<comment><USER9> Is it supposed to be a Malevich? (FF45, Linux)

<comment><USER8> Probably not. I don't know art history; wontfix. ;)

</comment></comment></comment><comment><USER10> I really want to draw in red and blue, then find some of those cheap 3D glasses and see what the result looks like. Very neat program.

</comment><comment><USER11> author is a synthetic biologist who had two first author Nature publications. Super awesome dude.

</comment><comment><USER12> Inkscape's tile-clones allows you to do this. It's great fun and gives you the full power of vector graphics.

</comment><comment><USER13> It's incredible what beautiful designs can be created with such simple tessellations.

</comment><comment><USER14> Really cool. The source code from the creator, Anselm Levskaya, is on github: [https://github.com/levskaya/eschersketch](https://github.com/levskaya/eschersketch)

</comment><comment><USER15> Cool but...what's it doing?

<comment><USER16> Its creating tessellations in the style of M.C. Escher. I was searching for something like this after seeing this video [https://www.youtube.com/watch?v=Kcc56fRtrKU](https://www.youtube.com/watch?v=Kcc56fRtrKU)

</comment></comment><comment><USER17> Unfortunately it doesn't seem to perform well in Firefox. Both on my Windows desktop and Linux laptop I get about 2 FPS, whereas it's perfectly smooth in Chrome on both. Really fun, though!

</comment><comment><USER18> This is cool. Reminds me of this Islamic art game too: [http://www.engare.design/](http://www.engare.design/)

</comment><comment><USER19> :+1: [http://imgur.com/53VQUS0](http://imgur.com/53VQUS0)

</comment><comment><USER20> This is awesome! I can't stop drawing, please help!</comment>


Irony is dead, last gasp of newspaper industry edition - <AUTHOR> http://blog.pmarca.com/2008/02/irony-is-dead-l.html

<comment><USER2> In other news, the music industry reports that CD sales are down and does dumb things on the internet. Is there something interesting about the newspaper industry? I don't get why pmarca is writing about this. "Zzzzzzzz"</comment>


Xmpp.is needs donations to pay for their servers - <AUTHOR> https://xmpp.is/ <comment><USER2> Well. Old-fashioned communication is dying anyway. Even IRC channels I used to be active on even in 2017 are now moving to different platforms like Discord.

For person to person communication no one I know was using XMPP still uses it.

Is that good or bad? Probably bad. Single open and secure standard (I don't care which one) should be better for average person experience. Not having to keep 4 apps running and stuff.

<comment><USER3> At this point, I only know a couple other people who use Jabber (I hate the XMPP name). I think OMEMO (double-ratchet encryption like Signal uses) and the Conversations client for Android (which supports a good "baseline" suite of XEPs -- Jabber extensions) have a good shot at revitalizing it, though.

</comment></comment><comment><USER4> I never used Jabber / XMPP but now I'm think of setting up my own Matrix server. Which one is it worth for everyday communication on the long term? XMPP or Matrix?

</comment><comment><AUTHOR> :^)</comment>


Will Artificial Intelligences Find Humans Enjoyable? - <AUTHOR> http://www.futurepundit.com/archives/008521.html

<comment><USER2> In and of themselves, programs want nothing. Think of "hello world". It wants nothing. It desires neither life, nor death, or anything else. What needs to be carefully considered are the goals given strong AI at initialization. Consider the paperclip maximizer:

<http://wiki.lesswrong.com/wiki/Paperclip_maximizer>

The wording here understates the problem--the program might start with a goal as benign as "collect paperclips" as opposed to "fill the universe with as many paperclips as possible" but the outcome could be similar.

Given the ease with which programs can be copied or modified (and mistakes made), I can't see many futures filled with strong AI's that end positively for us, chiefly because of the asymmetry in difficulty of destroying civilization vs. protecting it from all possible dangers.

</comment><comment><USER3> Yes, if we engineer them that way. Next question, move on. It's sad people are still this primitive on AI philosophy. Thanks for letting me know not to read anything seriously about "The Future" by Randall Parker, I guess.

</comment><comment><USER4> Enjoyment is something that happens to a thing that must interact with its environment to continue to live and reproduce. Its something only life is capable of.

Which is also why I don't fear computers and robots as much as those who are capable of creating and wreaking havoc with them. Other humans are far more a problem than the technology they invent. The rules we live by are far more important than our technology.

</comment><comment><USER5> A much better intro to this topic (pdf warning): [http://selfawaresystems.files.wordpress.com/2008/01/ai_drive...](http://selfawaresystems.files.wordpress.com/2008/01/ai_drives_final.pdf)</comment>