Nokia OVI Marketplace sucess story| 34+ million downloads - <AUTHOR> http://mobileperry.com/?p=391

<comment><USER2> They have 38% of the global smartphone market. How is that a success when iphone and Android both have over 1 billion app downloads each?

That must be like 1 app to every 5 smartphones Nokia has out there.

</comment><comment><USER3> Adopt Android or die Nokia!</comment>


Unmasking the "Anonymous" Hackers  - <AUTHOR> http://spectrum.ieee.org/tech-talk/telecom/security/unmasking-the-anonymous-hackers

<comment><USER2> I like the second comment:

"Anonymous is an internet-era gang, plain and simple."

Indeed they are.

<comment><USER3> Not quite sure I agree. Anonymous has zero financial incentive to do any of this, which may or may not be a requisite to gang-status. Either way, it's still a point worth considering.

<comment><USER4> I don't think gang members do it for the money, but rather for the social status. By definition you don't have that here; as soon as someone proclaims herself a "leader" they get raided just as hard as any of Anon's targets. Moot has a love-hate relationship with Anon and certainly isn't a leader figure in a sense that he isn't directing raids.

So to your point Anon is something very different than traditional gangs, but I think that's because there's no hierarchy to aspire to, rather than lack of money.

<comment><USER5> Ok, but how the heck can you get social status when you are completely anonymous and no one knows who you are, not even your fellow gang members? They don't seem to have unique Anonymous ids, or do they?

Oh wait, now I see. That's your point - that the difference is they don't have social status. OK, good point.

<comment><USER6> If you recall the last zf0 zine (zf05.txt), Anonymous was shown to have a loosely organized group who directed raids when they picked up enough momentum and convinced enough kids and btards to launch LOIC. Most other anon jump on when there is sufficient critical mass and coverage, resulting in more lulz to be shared all around. Technically we are all Anonymous.

</comment></comment></comment></comment></comment><comment><USER7> It's amazing how a writer can get so many things wrong in such a short article.

<comment><USER7> I guess I should expound: The title of the article is silly. Anonymous is a concept and perhaps the first large scale stand alone complex (SAC) (<http://www.cydeweys.com/blog/2008/01/28/scientology-sac/>) we have seen emerge. Trying to unmask an SAC is a sisyphean effort because it acts as a scale free network. This is very important to white hats who need to protect against attacks. We aren't dealing with your garden variety skiddies or black hats. As evidenced by the attacks in Operation Payback, Anonymous has created a voluntary botnet with LOIC's new hivemind feature. Anonymous is something different.

The author states: "Whenever a thread is particularly weak, discussants mark it with an image of Guy Fawkes." This is wrong. The author is attempting to show knowledge of chan culture, but he can't even get basic facts straight. Another example: "Once, hackers in the group busted into an online children's game, flooding an animated swimming pool with their own characters." Also wrong. Five minutes on Google will tell you about the raid on Habbo ([http://encyclopediadramatica.com/The_Great_Habbo_Raid_of_Jul...](http://encyclopediadramatica.com/The_Great_Habbo_Raid_of_July_2006)). Not only is Habbo not a children's game -- its target market is teenagers -- the raid shut down numerous aspects of the game. Sloppy research and/or writing on the author's part. And then there is his use of the word "hacker" and the phrase "busted into" to describe the act of registering an account. The author seems to have a fundamental misunderstanding of what he is writing about.

All of these details are important to anyone that wants to understand Anonymous, which should include any white hat, and especially those of us who work on multi-player web based games. It's amazing how a writer can get so many things wrong in such a short article.</comment></comment>


Why HN was slow and how Rtm fixed it - <AUTHOR> http://ycombinator.com/newsnews.html#19jan <comment><USER2> "In 7 seconds, a hundred or more connections accumulate. So the server ends up with hundreds of threads, most of them probably waiting for input (waiting for the HTTP request). MzScheme can be inefficient when there are 100s of threads waiting for input -- when it wants to find a thread to run, it asks the O/S kernel about each socket in turn to see if any input is ready, and that's a lot of asking per thread switch if there are lots of threads. So the server is able to complete fewer requests per second when there is a big backlog, which lets more backlog accumulate, and perhaps it takes a long time for the server to recover."

I may have misunderstood but it sounds like you have MzScheme facing the open internet? Try putting nginx (or another epoll/kqueue based server) in front of MzScheme. It will handle the thousands of connections you have that are waiting for IO with very little incremental CPU load and with a single thread. Then when nginx reverse proxies to MzScheme each request happens very fast because it's local which means you need much fewer threads for your app server. That means less memory and less of the other overhead that you get with a high thread count.

An additional advantage is that you can enable keepalive again (right now you have it disabled it looks like) which makes things a faster for first-time visitors. It also makes it slightly faster for us regulars because the conditional gets we do for the gif's and css won't have to reestablish connections. Less connections established means you give your OS a break too with fewer syn/syn-ack/ack TCP handshakes.

Someone mentioned below that reverse proxies won't work for HN. They mean that caching won't work - but a reverse proxy like nginx that doesn't cache but handles high concurrency efficiently should give you a huge perf improvement.

PS: I'd love to help implement this free. I run a 600 req/sec site using nginx reverse proxying to apache.

<comment><USER3> Or I don't know, use continuations in a place that's actually appropriate? John Fremlin showed that even with horrible CPS rewriting and epoll you can get way better throughput in SBCL (TPD2) than nginx. MzScheme comes with native continuations. It's not hard to call out to epoll.

Instead everyone in the Lisp community (pg included) is still enamored with using continuations to produce ugly URLs and unmaintainable web applications.

<comment><AUTHOR> _Instead everyone in the Lisp community (pg included) is still enamored with using continuations to produce ugly URLs and unmaintainable web applications._

If you read the source of HN, you'll see that it doesn't actually use continuations.

I find the source of HN very clear. Have you read it? Is there a specific part you found so complicated as to be unmaintainable?

<comment><USER4> > If you read the source of HN, you'll see that it doesn't actually use > continuations.

> It had to be some dialect of Lisp with continuations, which meant Scheme, > and MzScheme seemed the best.

(From further down the page).

I'm confused. What needs continuations?

<comment><AUTHOR> I just wanted to have them in the language. The fact that I don't currently use them in HN doesn't mean they're useless.

<comment><USER5> I always thought the purpose of Arc was to be cruft-free, "don't include it unless it is actually needed".

</comment></comment></comment></comment></comment></comment><comment><USER6> Since no one has mentioned it yet - Varnish-cache.org, written by a FreeBSD kernel hacker, has a very nice feature, in that it will put all overlapping concurrent requests for the same cacheable resource "on hold", only fetch that resource once from the backend, then serve the same copy to all. Nearly all the expensive content on HN would be cacheable by varnish. Then you can get it down to pretty close to "1 backend request per content change" and stop worrying about how arbitrarily slow the actual backend server is, how many threads, how you deal with the socket, garbage collection, and all that.

<comment><USER7> Reverse proxies won't work for HN, because requests for the same resource from multiple users can't use the same results. Not only are certain bits of info customized for the user (like your name/link at the top), but even things like the comments and links are custom per user.

Things like users' showdead value, as well as whether the user is deaded, can drastically change the output of each page. Eg, comments by a deaded user won't show as dead to that user, but they will for everyone else...

<comment><USER8> Varnish supports edge side includes. The header bar could be an ESI and the rest of the page could be cached

<comment><USER7> > _and the rest of the page could be cached_

Except they can't, for the reasons I mentioned above. Eg, if my account is deaded, when I view a thread with one of my own comments, it looks different than if someone else was viewing that some thread, especially for those of us with or without showdead checked in our profiles.

Its not as straightforward as you would like it to be.

<comment><USER9> The majority of requests probably come from live accounts in good standing or from people not even logged in, so the majority of requests could still be cached.

<comment><USER10> Interesting point: what percentage of viewers are logged in? I was presuming it was high, but I guess I really don't know.

</comment></comment></comment></comment></comment></comment><comment><USER11> Off-topically, piecing together the years that the previous posts were made, it looks like February 4 2009 had a downvote cap of 100. It's 500 as of late last year. That suggests the annual karma inflation rate in the HN economy is sqrt(5), or ~224%.

</comment><comment><USER12> I worked at a startup once that made a network card that did this type of buffering (wait for whole HTTP requests, then forward as a lump to the host, across a local fast bus).

Pretty whizzy, definitely helped server scaling.

We started shipping in 2001; the dot-com bust more or less canceled any interest in the product, and canceled the company, too . . .

<comment><USER13> What was the name of the company/product?

<comment><USER12> Akamba

</comment></comment></comment><comment><USER4> 1 thread per connection??? Not doing continual GC in a separate thread and instead taking 7 seconds and blocking everything?

What is this the 1990s?

<comment><AUTHOR> Feel free to fork MzScheme and replace the garbage collector with a new one that runs continuously.

<comment><USER4> Surely there's a way to target the JVM?

I'd trust my life on the JVM, it's pretty battle tested, and the GC is simply awesome.

<comment><USER14> > I'd trust my life on the JVM

You sure you want to do that? :-)

> Java technology is not fault tolerant and is not designed, manufactured, or > intended for use or resale as on-line control equipment in hazardous > environments requiring fail-safe performance, such as in the operation of > nuclear facilities, aircraft navigation or communication systems, air > traffic control, direct life support machines, or weapons systems, in which > the failure of Java technology could lead directly to death, personal > injury, or severe physical or environmental damage

<http://technet.microsoft.com/en-us/library/cc976720.aspx>

<comment><USER4> Yeah I'd trust my life on it. I've had java processes running for several months without issue. The hardware fails before the jvm does.

I wouldn't trust anything from microsoft though.

</comment></comment></comment></comment></comment><comment><USER15> The traffic graphs linked in this post [0] are an interesting addition to the "How often do you visit HN?" poll [1] that was done a week ago. From the graphs, it looks like there are about 10x as many page views as unique IPs.

[0] <http://ycombinator.com/images/hntraffic-17jan11.png> [1] <http://news.ycombinator.com/item?id=2090191>

<comment><USER16> Anyone have an idea what the huge spikes in unique IP's are all about?

</comment></comment><comment><USER17> pg / rtm: If you need any FreeBSD-related help, please let me know (preferably not in the next couple of days, though...). There are lots of HN fans in the FreeBSD developer community.

</comment><comment><USER18> Which is why it's good to have a mature VM underneath your language. Paul's choice of basing an implementation of Arc on MzScheme was a very good one (I remember people criticizing him for not building a standalone implementation with a new VM).

I write time-critical applications in Clojure and JVM's -XX:+UseConcMarkSweepGC flag is a lifesaver. We no longer get those multi- second pauses when full GC occurs.

</comment><comment><USER19> YC ranks 2400 on Alexa, and I'm sure most of the traffic is HN. I bet you'd be hard-pressed to find a top 10k site written in Scheme. Does anyone know of one?

<http://www.alexa.com/siteinfo/ycombinator.com>

<comment><USER11> And, presumably thanks to tptacek's hard work, one of the key search terms bringing people in here is "sous vide supreme".

</comment></comment><comment><USER20> Or you can put a reverse proxy in front.

<http://joshua.schachter.org/2008/01/proxy.html>

(Like I suggested in 2009...)

<comment><USER21> BTW, you suggest pound for the slow client problem, but according to this email it doesn't help for that.

[http://www.apsis.ch/pound/pound_list/archive/2010/2010-11/12...](http://www.apsis.ch/pound/pound_list/archive/2010/2010-11/1289960900000)

<comment><USER20> Pound helped this problem for delicious in 2005, and by the time I wrote this article it was starting to not be the right answer. In 2011, it's definitely wrong :)

</comment></comment></comment><comment><USER22> I feel silly asking, but who or what is 'rtm'?

<comment><USER23> Some punk skript kiddie who broke the internet in 1988.

<comment><USER24> I hear he crashed 1507 systems in one day.

<comment><USER25> Yo, this is RTM!

<comment><USER26> Well that's great. There goes MIT.

</comment></comment></comment></comment></comment><comment><USER27> When I read this headline, my immediate thought was "Oh, he must have forgotten to shut down the copy of his worm that was running on the HN servers."

<http://en.wikipedia.org/wiki/Morris_worm>

<comment><USER28> Please, retire that stupid "joke". It's 22 years too old.

<comment><USER29> First time I had heard it.

</comment></comment></comment><comment><USER30> pg: you could probably try to write an event driven HTTP server on top of Arc, so that you don't have this kind of problems. Something like node.arc

Also if I understand correctly you use flat files that are loaded into memory at startup. It seems like that switching to Redis could be an interesting idea in theory, as it is more or less the implementation of this concept in an efficient and networked way.

Probably with such changes you can go from 20 to a few hundreds requests per second without problems.

</comment><comment><USER31> > _when [MzScheme] wants to find a thread to run, it asks the O/S kernel about > each socket in turn to see if any input is ready_

They've never heard of select()? </snark>

But really, is there some reason that it's hard to collect up all the fds at once or something?

<comment><USER23> Read C10K? Both select() and poll() have this problem internally. You have to use one of the more advanced techniques available if you really want to scale. epoll(), kqueue() or friends.

<comment><USER32> poll() is _slightly_ better than select(), because you only have to iterate over the file descriptors that were passed, rather than from 0 to nfds.

<comment><USER33> It doesn't hurt that its interface is far more pleasant to use than select's, either.

</comment></comment></comment></comment><comment><USER34> Not being able to handle 20 requests/sec quickly, in 2011, for a read-mostly website is just shameful.

<comment><USER35> I think that all depends on the purpose of the site. If I were paying a subscription to access the site I would be within my rights to object. As it is, with HN being a free service, built to be the application spurring the development of Arc, whose reference implementation is intended for exploring language design and not performance, I wouldn't choose the word "shameful" to describe this situation.

<comment><USER34> I guess it depends on your priorities. Personally, I think the community discussion here is far more interesting than the toy language project it runs on. If you think Arc is the future of computing you may think of this discussion board as just a convenient test suite for the language.

Either way, it's 2011 and that really is some spectacular slowness.

<comment><USER35> My comment was not expressing an opinion on the relative values of Arc and the HN discussion community. HN delivers lots of value for the modest price of your time. Claiming that its performance is shameful when it isn't being directly monetized, or even indirectly monetized like Facebook &co., is unfair.

If you were talking about Facebook, Twitter, or Basecamp, that would be a different matter.

</comment></comment></comment></comment><comment><USER36> Sounds like there is a scalability issue within MzScheme in that it iterates over the number of threads, asking each thread about the sockets it has. As one can tell, once # of threads and # of sockets grow - finding which thread to run in user space becomes awfully expensive. As any clever admin will do, a least invasive fix involving limiting the number of connections and threads was done - with what sounds like immediate results!

I have no idea what MzScheme is but I am curious about why is HN running threads in user space in 2011? The OS kernel knows best what thread to pick to run and that is a very well tuned, O(1) operation for Linux and Solaris.

<comment><USER37> not to mention that one thread per connection is, well, extremely outdated.

<comment><USER38> I don't know much about MzScheme, but it's quite possible that "thread" means "stack", not "OS thread". One context stack per TCP connection is quite sustainable; with Haskell's threads and Perl's coros, I run out of fds long before I'm using any significant amount of memory. (This is somewhere around 30,000 open connections on my un-tweaked Linux desktop. I know I can do a lot more if I tried.)

The issue, in the case of HN, is with O(n) IO watchers. Most sockets are idle most of the time, so you really want an algorithm that is O(n) over _active_ sockets, not O(n) over active and inactive sockets. You typically have so few active fds at any time that the n is really tiny, making massively scalable network servers trivial to write. But you also have a lot of connections at any one time, so if you are O(n) over active and inactive fds, then you are going to have performance issues. Basically, you don't want to pay for connections that aren't doing anything.

Fortunately, we have the technology; epoll on Linux, kqueue on BSDs, /dev/poll on Solaris. You just need to use an event loop, so it does all the hard stuff for you (and so you don't have to worry about the OS differences). Hacking a proper event loop into MzScheme may be hard, but it's absolutely necessary for writing scalable network servers. Handling 10k+ open connections is trivial with today's technology. And, all the cool kids are doing it (node.js, GHC, etc.).

<comment><USER39> My understanding is that MzScheme / Racket has a proper event loop.

<comment><USER38> Yeah, I have no idea. All I know is that proper threads do not bloat anything, and that proper IO watchers are not O(n) over inactive connections.

</comment></comment></comment></comment></comment><comment><USER40> Would be interesting to see if traffic goes up after this and is elastic. Marissa Mayer had a talk at some conference in 2009 where she explained her early tests on number of search results on Google - 10, 20, 25, 30 - but in the end it was just about the speed associated with loading the pages that accounted for the number of pageviews and visitors.

</comment><comment><USER41> _"It turns out there is a hack in FreeBSD, invented by Filo, that causes the O/S not to give a new connection to the server until an entire HTTP request has arrived."_

I wouldn't call it a hack, but a feature ;-)

        # Buffer a HTTP request in the kernel
        # until it's completely read.
        apache22_http_accept_enable="yes"

Is HackerNews web scale?

<comment><USER42> What does "web scale" mean? I see it thrown around a lot without much explanation.

<comment><USER43> <http://www.youtube.com/watch?v=b2F-DItXtZs>

<comment><USER41> A transcript can be found at <http://mongodb-is-web-scale.com/>

_"Shards are the secret ingredient in the web scale sauce. They just work."_

</comment></comment></comment></comment><comment><USER44> HN only supports 20 req per second???

<comment><USER40> flat files, no database

<comment><AUTHOR> That's not the bottleneck. Essentially there's an in-memory database (known as hash tables). Stuff is lazily loaded off disk into memory, but most of the frequently needed stuff is loaded once at startup.

The bottleneck is the amount of garbage created by generating pages. IIRC there is some horrible inefficiency involving UTF-8 characters.

<comment><USER45> Are you using any sort of in-memory fragment caching? That seems like it might reduce some render overhead.

<comment><AUTHOR> A great deal, and it does.

</comment></comment></comment></comment></comment><comment><USER46> I have a proposal to settle flamewars by the way. I had meant to propose something like this (a debate solver) for years. Here it is:

After 4 levels of back and forth (Joe says "...", Tim replies, then Joe replies once more, then Tim replies again), freeze that branch, hide it from the general public, and turn the branch into a settlement: both Tim and Joe are allowed one final comment each, that they both approve. Only once they have posted this compromise, is it shown in-place, where the original sub- thread used to be.

Simple. Prevents endless arguments. Good for everyone.

<comment><USER47> Hmm, I have had ideas for something similar, but which involves having to choose a side of the argument (ie, agree with parent or disagree) before posting. Once chosen, you can only vote on your 'side' (either up or down). Poor arguments on your 'side' can be killed with sufficient downvotes, so that the ensuing set of arguments hopefully ends up being the best set. This tends to happen in an informal way on HN, but only because people largely behave. In other forums, not so much. Perhaps glomming together your idea of maximum posts per user on a topic, along with side-based voting, some type of civil debating platform coudl be developed. After all, in actual debates you get 2 chances to state your position and a final sum-up.

</comment></comment><comment><USER48> is there any reason the noobs url (29 Apr: Faster, Fewer Flamewars) ~ <http://news.ycombinator.com/noobs> shows no results?

<comment><AUTHOR> It has since been split into noobstories and noobcomments.

</comment></comment><comment><USER49> Who's Filo? David Filo?

<comment><USER50> Yep. He's still a mensch. Yahoo did some incredible stuff on Apache & FreeBSD back in the day. I remember a hack that added hardcoded HTTP headers to the image files on disk, to squeeze that extra nilth percent out of the server.

<comment><USER51> That's awesome!

</comment></comment></comment><comment><USER52> I was getting connection errors less than an hour ago, so I'm not sure if it actually worked.

</comment><comment><USER53> Sounds like a switch to async I/O would be helpful.

<comment><USER54> Well, HN is written in Arc, which is a layer on top of MzScheme. MzScheme handling of sockets is actually already done with the select() syscall, and its "threads" are lightweight non-blocking threads (think Erlang). So it's already async but with "sugar".

</comment></comment><comment><USER55>
      > In 7 seconds, a hundred or more connections accumulate. So
      > the server ends up with hundreds of threads, most of them
      > probably waiting for input

This is why Nginx handles large site much better. The request are queued without spawning threads. Evented I/O for the rescue.

</comment><comment><USER56> Let's hope that puts an end to all the time-outs!

Thanks for the work and it sure seems to be a lot more responsive.

</comment><comment><USER57> Does seem a bit faster -- could be placebo though :)

</comment><comment><USER58> Neat. All I can say is: Thanks!

</comment><comment><USER5> Reverse-proxying via nginx would solve this problem and more: the arbitrary 30 second limit on form submission (hotspots sometimes are slow...), nginx could handle rate limiting & logging instead of srv.arc, etc. The Arc codebase would btw be smaller and cleaner (no policy/sanitization code, etc.).

Serving static content via Apache was a first step ;-)

Don't reinvent the wheel!

<comment><USER59> Did you just tell people running a company that reinvented funding with their custom written news site written in their own programming language with a custom web server that they shouldn't re-invent the wheel?

They think they can build a better wheel. They seem to like doing it and have a habit of it. There's nothing wrong with that.

<comment><USER60> Unless they built their server with nand gates, I don't see running nginx reverse proxy to be incoherent with their philosophy.

<comment><USER59> Right, they only re-invent wheels when they feel they can make a better one. I don't think they feel they can go through the effort of fabricating a better chip. Though I wouldn't put it past rtm to try.

The philosophy "Don't reinvent the wheel" however, is definitely inconsistent with their philosophy. They will reinvent the wheel whenever they feel they can make a better one. Just because they haven't reinvented every wheel does not mean "don't reinvent the wheel" applies to this group.

They chose to create the best solution they think they can. They don't seem to care whether or not that involves reinventing wheels. The original argument that they should seems pretty silly.

<comment><USER61> I think he means that the nginx reverse proxy is just a part of the infrastructure, like the server, OS, MzScheme etc they use.

<comment><USER5> Totally. "If you want to make an apple pie from scratch, you first need to recreate the Universe" -- Sagan.

</comment></comment></comment></comment></comment></comment><comment><USER54> _> It turns out there is a hack in FreeBSD, invented by Filo, that causes the O/S not to give a new connection to the server until an entire HTTP request has arrived. This might reduce the number of threads a lot, and thus improve performance; I'll give it a try today or tomorrow._

Anyone know if they're referring to "accept filters" here? FreeBSD folks can "man accf_http" if they're curious, which does prevent a request from being handed off to the application until the complete (and valid?) request has been made. Certainly not a "hack" but a feature of the OS itself.

Or they could use a proxy. All this "fuck me I'm famous" attitude is stupid.

<comment><USER37> this seems impossible for item pages due to how continuation ids are used for replies

<comment><USER54> This could be resolved using consistent hashing or a critbit tree.

</comment></comment></comment><comment><USER54> Lisp is definitely not a slow language: you can handle the crazy rate of 20 requests/second on a multi-core server!

<comment><USER28> If you choose to. We pushed north of 800 r/s in production, and just shy of 4k in our LAN, that's using stock hunchentoot with just mere _customization_.

This guy here broke the 10k barrier:

<http://john.freml.in/teepeedee2-c10k>

</comment></comment><comment><USER62> Yes placebo, oh our brains, though its not mid day just yet :)

</comment><comment><USER63> Sorry, guys, it was entirely my fault. I got Michael Grinich's iphone HN app and just love the damn thing. :)

</comment><comment><USER64> I find it disturbing to see people asking "Who is Rtm?" "Who is filo?"

I understand if you are in tech you might not know figures in history or literature... but these guys?

Every time you login to a UNIX/Linux system you use the passwd file and related setup - authored at least in part by Rtm's father.

<http://www.manpages.info/freebsd/passwd.1.html>

Rtm has done lots in his own right as the wikipdia pages show.

But seriously - if you don't know who these people are you really should.

Read this: <http://www.princeton.edu/~hos/Mahoney/unixhistory>

and maybe ESR's writings and that online anthology of the early Apple days and old issues of 2600, etc, etc

I am sorry - but it is really irritating to me that someone would be on this site and really not be aware of the deeper history and culture. It is not that deep - 1950s to present (to cover Lisp).

As Jay-Z (whom you probably know) says - "Go read a book you illiterate son of a bitch and step up your vocab ..."

<comment><USER22> You're making little sense. So "go learn" but "don't ask?"

<comment><USER64> You write for a major magazine on the subject. Yes - I would hope you know more about the history of this topic than I do.</comment></comment></comment>


TicketMaster and Live Nation Agree to $2.5 Billion Merger - <AUTHOR> http://www.techcrunch.com/2009/02/10/ticketmaster-and-live-nation-conduct-25-billion-merger-create-live-nation-entertainment/

<comment><USER3> How do you innovate around a potential monopoly like this? If ticketmaster starts becoming more like a scalper in its operations, then the secondary ticket market becomes pretty useless. Or, do the ticket prices just increase even more in the secondary market.

Normally, I'd say this would make ticketmaster RIPE for disruption, but they're the gatekeepers. You can't get tickets any cheaper than what they sell them for. If they also interlock with the record labels, it's going to desperately slow innovation in the music industry around concert tickets and alt. revenue sales.

Thoughts from the ticketstumbler guys?

<comment><USER4> I'm afraid you would have to beat them at their own game - <USER2> relationships with each venue (convince them you will help them sell more tickets, or give them a larger cut).

At its heart its not a technology problem, although you'd have to employ technology to operate cheaper that ticket master. (Which includes preventing bots or scalpers from grabbing all the good tickets for hot shows right after they go on sale).

my 2c

Edit: Perhaps one way around this problem is to provide an easy way for venues to sell their own tickets. Let them setup their own web-front where they can sell will-call or even mailed tickets. Allow for features like will-call ticket transfers. The question is if venues that don't already do this will be convinced to. I'm not sure what is keeping venues like The Fillmore from using any web presense other than Live Nation and TicketMaster. Hopefully its just technophobia, not any actual lock-in...

<comment><USER5> Yeah, it is lock-in. Live Nation owns The Fillmore (and 130 odd other live music sites). So they aren't going to be interested in any web solution you could come up with. They don't care about any new customer friendly features because there's no where else for customers to go. If you want to see your favorite artist, it's not like you can buy tickets to the other show at the venue across the street the next night.

</comment></comment></comment><comment><AUTHOR> Monnnnopoly!

<comment><USER6> I think this will get blocked in antitrust. Presumably Obama will be more active here than Bush was.

<comment><USER7> I think in the current economic climate it will pass. Ticketmaster/Live Nation will say the only way they can be profitable is to consolidate.</comment></comment></comment>


Animate in Xcode without code - <AUTHOR> http://canvaspod.io

<comment><USER2> Never tried that component, but not being able to set a custom font for a text view is such an obvious miss for an OS that claims to be so much text oriented. I can't count the number of times i've had to bind a UILabel into my code just to set the font.

I know, UIApparence should be the way to set fonts everywhere, but that defeat the purpose of rapid prototyping IB is made for.

<comment><AUTHOR> There's a third party plugin for Xcode claims to do this called MoarFonts and asked you for $10, however I have not tried that. Runtime attributes patch wouldn't take effect instantly in IB but it works reliably well in our experience.

<comment><USER3> Link to MoarFonts: [http://pitaya.ch/moarfonts/](http://pitaya.ch/moarfonts/)

</comment></comment></comment><comment><USER4> User defined runtime attributes in IB are great. We use them for font name and other handy things (like CALayer attributes for corner radius, shadows, etc).

A word of caution, though. Using key paths in your categories like "fontName" is pretty dangerous. Apple could add such a property, or your users could already have one on their object, that would cause problems. I would suggest including a prefix or suffix, e.g. "cvs_fontName" similar to three-letter- prefixing.

I'll second the mention about checking the release notes of the latest iOS/Xcode beta, for those who have access. Moarfonts seemed promising, but caused nothing but problems when we tried it.

</comment><comment><USER5> For anyone building the sample project getting _vImage related compiler errors, link Accelerate.framework.

I can't figure out why that's an issue though — URBImageMediaViewController (dependency where the error comes from)'s sample project doesn't link against Accelerate.framework either, but it builds fine.

<comment><USER6> Hey Max, are you talking about the Ripple demo or the Canvas one? I'll definitely look into that. :)

<comment><USER5> Hey :)

Canvas one.

<comment><USER6> Ok, will look into it!

</comment></comment></comment></comment><comment><USER7> Does it work on Landscape iPad? Some of the new iOS7 animation APIs have odd issues on that orientation.

</comment><comment><USER3> Nice work. Keeping animation in the presentation-layer makes sense for 90% of the projects.

Any reason for the iOS 7 requirement?

<comment><USER8> Using the new keyframe animation API by the looks of things.

<comment><AUTHOR> Yes it's using the keyframe APIs, it might be more like an experimental code style for now, but we will keep revising to make it better.

</comment></comment></comment><comment><USER9> This looks pretty awesome. Excited to give it a try.</comment>


To-Do Lists Don't Work - <AUTHOR> http://blogs.hbr.org/cs/2012/01/to-do_lists_dont_work.html <comment><USER2> My to-do list is a brain dump typically. I then have an area at the top of my todo list for stuff that has to get done - like jobs for clients or server maintenance, etc.

I also use a Notepad window on my desktop that I don't save that lists the things that I HAVE To get done TODAY. One of those items may say "Finish ONE item at the top of your todo list" and the others may mention various projects that have to get SOME attention at some point during the day - if even 5 minutes.

Every day that changes.

There's no realistic way to put my todos in a calendar. I'd spend half my day moving shit from one day to another. My first entry each day would be to update the calendar, and if I finish that task in time, do the stuff for that day.

I have to agree with a lot of his points about how Todo lists don't work, but I live by the fact that if I don't write it down, it WILL get forgotten, so if it's in a big todo list, so be it, at least I have a record of everything with notes attached to each item.

<comment><USER3> My method is like yours, basically. I use Notepad and good-old paper.

I'm leary about the idea of ever having a "living calendar". You've gone from the one dimensional todo list of "what" to a more complex decision tree with another dimension of "when" in addition to "what".

I do like the concept of a "living todo.txt". Sure it is unrealistic to be able to strike off every item on your ToDo, but every day brings re- evaluation. Approach your todo like Yoda - there is "only do, or do not".

</comment></comment><comment><USER4> yes they do.

It's true that, if you want a list of "what to do next" they are not good. But if you want a list of "what I have to do", unprioritised, subject to change, there's little can beat just writing it down with a checkbox next to it. It makes it real, gets it out of your head. Gives you a place to write little related notes about it.

If you use a todo list regularly, you'll be aware of the dangers of ignoring the bigger items, or choosing the fun items. Like I said, they work if you use them as a list of things to do, not as a list of how or when to do them.

<comment><USER5> Normally I keep my "must do" list in my head. Occasionally the list gets too big and I can't remember it all, I write it all out in TextEdit and leave it open and delete lines as I finish items until the list is empty. I only do this for important items; (i.e wishing your best friend happy birthday) If items are unimportant then its not too big a deal if I miss it today (i.e add X to your website), as long as its not deadlined of course.

</comment></comment><comment><USER6> Cool article.

Reminds me of the best calendar/to-do list software I ever used and have spent years trying to re-locate on another mobile os: DateBk6 (<http://www.pimlicosoftware.com/datebk6.htm>)

What did it do?

1) It let you make to do items, but assign a date to them too.

2) If you didn't assign a date to them, they'd stay in your general to-do list.

3) If there was a date for the to-do, the to-do item would show up 2 days in advance, right on my daily calendar (not in a to-dolist).

4) Each day, I could promote items from my to-do list for that day, onto the calendar at a specific time.

5) MOST IMPORTANT: If I didn't finish something, scheduled for a specific time, or a date, it would carry over each day that you don't get them done.

I've never been more productive in my life than the 2 years I used this app on Palm OS. The hotkey to a calendar means I pressed two buttons and I was directly in the calendar to enter a to do.

No bullshit swiping, tapping, home screen, start an app, click a plus. It was made to capture things quicker than writing them down. I've tried Android, Windows Mobile, iOS and this Palm App still kicks everything's ass.

Just thinking about it makes me want to buy a Palm Treo PDA and start kicking butt again.

<comment><USER7> I'm guessing you've probably already tried it out, but if you haven't, you should check out Things:

<http://culturedcode.com/things/>

<comment><USER8> Try as I might... I can't justify, or figure out how $50 (+ $10 for a mobile app - used to be $20) for a To Do list, however nice, is worth it.

<comment><USER6> I'd pay $1000 for the right app from any app store today.

The problem is they all suck because they do a few things well and none do the simplest the best. I've spent hundreds of dollars.

The closest I've found to being reasonable is omnifocus but it too is missing the calendar, but it does tasks well.

<comment><USER9> I also had Palm m515 and DateBk in the good ol' days. If you have iOS device, try Pocket Informant. This is what I use now and I think it covers most, if not all, of your requirements and syncs with toodledo and google calendar too!

<comment><USER6> What's another $12.99.

I have to admit though, I'm kind of scared, because it appears to have the same level of detail that DateBk did.

I purchased the new version of DateBk called Pimlical for Android and tried it out today. Not quite there but definitely a possibility. Since I'm on iOS I'll try it out.

If this works, I can't begin to put in words how indebted I'll be fore the reco

</comment></comment></comment></comment></comment></comment><comment><USER10> This post should really be titled 'How Not To Create a To-Do List'

I'm a firm believer in the GTD (Getting Things Done) school of thought, which addresses many, if not all, of these concerns .

Paradox of choice: You should never have a choice of when to do items. Instead, pick a time every day/week to organize your to-do list and figure out when things should be done, and in what order. This should be _separate_ from the time that you're doing tasks. So when you reference your to-do list, the choice is always simple: 'Can I do the next item on the list _right now_ or not?'. (In practice you bend this rule slightly - but only by a little bit... a lot less than most people think).

Heterogeneous complexity: See above. Also, write down time estimates for each task and time yourself.

Heterogenous Priority: To-do list items _should_ be on your calendar. A calendar is a to-do list, and a to-do list is a calendar. If your two are separate, you'r doing it wrong (according to GTD). And if it's on your to-do list, it should be done today or not at all. If you didn't get to it, before immediately bumping it to tomorrow, ask yourself whether it really needs to be done, and whether it actually fits with your long-term goals.

Lack of context: GTD specifically recommends partitioning tasks by context.

Lack of commitment devices: Having the list pre-sorted (ie, sorted at a time separate from when you're actually 'doing work') addresses this somewhat. It's not a cure-all, but honestly, if you're having trouble committing yourself to do the tasks as you prioritized them last night, I can't see how you'd be any better off with _no_ structured list guiding you.

As for that last element: Yes, you _do_ need to learn how to say 'no', but if you say 'no' based on a careful, logical evaluation of your to-do list at a time when you're not doing work, you'll be making a much wiser judgement than if you say 'no' because you're feeling overwhelmed by all the things that you're keeping in your head.

<comment><USER11> "A calendar is a to-do list, and a to-do list is a calendar." Well, no, a calendar is an absolutely-have-to-do-at-that-specific-time list. I don't see how you could've gotten that idea from GTD, because David Allen recommends not using your calendar for todos that you'd _like_ to have done today, but don't _need_ to have done today. Conflating calendar and to do list will quickly lead to what dkarl calls the "Do this now or you're a bad person" phenomenon, and lead you to stop using todo lists altogether because they're so depressing.

The biggest win of todo lists for me (I use the GTD-esque Things) has been that it gives me some assurance that I've got everything that I have to do or want to do (even someday/maybe projects) written down and in one place, so it doesn't soak up cognitive energy throughout the day that would be better spent just doing things.

</comment></comment><comment><USER12> To-do lists do work. What the author lacks is a today list.

The purpose of the to-do list is to keep track of everything you have to do for the rest of your life. You should not be working off of it everyday or, as the author notes, it will overwhelm/paralyze you.

The purpose of the today list is to focus on one day at a time. A today list is a subset of the to-do list, the items you need to think about that day.

This simple distinction goes a long way. With a today list, you can actually get through your day, and feel good when the list is done.

</comment><comment><USER13> I have tried several different software solutions, including writing my own web apps, but I always give them up.

This is the only solution that has worked in the long run for me: a simple text file. Each day I start a new list of items by putting today's date at the top of the file. Only things I can finish that day are added. The next day, if I didn't finish something and still consider it important, it's copied to that day.

<comment><USER14> Yawn,

I can relate to your problem very much. I've also tried multiple software and finally I have come back to use notepad on Windows. I have done a small setup to make my todo list simple and accessible:

1\. Press f5 to get date time stamp

2\. List down all your task without numbers one below the other in the beginning of the day or as the tasks get assigned to you.

3\. As you complete each task write DONE in front of it.

4\. At the end of the day group all the tasks with DONE if front of them below the date you completed, pushing the rest of task below

5\. Come back next day to your task list and add an empty line. The tasks without DONE are still pending, follow from step 1.

How to make your todo list accessible on a Windows machine:

1\. Created a "TODO" directory and add a text file call it todo.txt

2\. Create a shortcut of the file, rename it to "todo" and cut-copy-paste the shortcut to C:\windows\system32

3\. Now press "Windows key + R" and type "todo" in the command window. This will open your list.

I have been using the list for over 6 months now and this is how it looks:

9:39 AM 1/16/2012

DONE ESA Request retrieve the lost records

DONE Update the email notification when esa request status changes

9:04 AM 1/17/2012

DONE Follow up with CA about MS Project installation.

10:23 AM 1/19/2012

DONE Site Usage Report 1. Change Column order 2. Sort By 3. Relative Path

3:55 PM 1/20/2012

DONE Complete the code for MUSE FeedIn

Document the feed in issue from Pedagogue.

MUSE Win 7 MUL compatibility

Clarity DDS BO Server specs.

<comment><USER15> You can assign a unique shortcut key directly within a shortcut's 'Properties' if desired (either this or just hit the Windows key and start typing to let Windows Vista+ search for it); in an everything's-working-perfectly world the text file and/or the shortcut can be anywhere. Anything unnecessary in the system folders tends to be bad news.

</comment></comment></comment><comment><USER16> A week or two ago, I read the book _Willpower_ by psychologists Baumeister & Tierney. They include a chapter praising To-Do Lists.

Who should I believe, 2 famous psychologists who basically invented the entire subfield dealing with willpower, or a consultant business blogger?

<comment><USER17> 1\. Tierney is a journalist. (Neither Wikipedia nor his nytimes.com bio seem to specify what his degree is in.)

2\. Though this was not its intent, Markovitz's article can be taken as a warning about particular failure modes of to-do lists rather than an unequivocal critique of them.

I agree with your point, though.

(Edit: Maybe you were thinking of Dianne M. Tice.)

<comment><USER16> > 1\. Tierney is a journalist. (Neither Wikipedia nor his nytimes.com bio seem > to specify what his degree is in.)

Whups. You're right; I went back and it seems I confused the journalist Tierney with Baumeister's 'protege', Heatherton.

</comment></comment></comment><comment><USER18> I forget where I heard this routine (Lifestyle Business Podcast maybe?), but I've found it very helpful. It goes something like this:

-Write to-do items on a post-it note

-Scratch them off as you accomplish them

-When the majority of the post-it is scratched, start a new note, beginning with the few items that did not get finished from the last post-it

-Evaluate the items that you didn't accomplish from the last post-it. How many times have you copied them from one post-it to another? If more than twice, it is either not important or you are seriously procrastinating. Do it, outsource it or just delete it and move on.

<comment><USER19> My entire working day revolves around a list in front of me that I treat just like this.

Post it notes just aren't big enough for the amount of items I have to do most days.

</comment></comment><comment><USER20> I can agree with Markovitz's point that todo lists are not the best productivity boosters available, but I don't really agree with his conclusion that putting everything in your calendar is an improvement.

Some points:

1\. A todo list is better than nothing. It may not make you a productivity god, but it will keep you conscious of what you have to do for the given period (day, week, month, whatever).

2\. Your calendar likely isn't set up to function as comprehensive task- management software. I use outlook at my office, and sure it has some task- list features, but they're woefully lacking in features. I posit that doing your todo list in outlook is of no benefit over doing your todo list in notepad. To use the language of the article, there's still the problems of "heterogeneous complexity", "lack of context", and no "commitment device". Sure it gives you a better idea of priority (e.g. my calendar says I have to do this right now) and how much time a task MIGHT take, but I can ignore outlook popups just as easily as I can my notepad todo list. And trust me, I have.

Using a calendar to schedule your work doesn't solve the underlying problems that cause most people's productivity to suffer: motivation and distraction. If my motivation to complete a task is low, having it on a todo list vs a calendar (or even in comprehensive task-management software) makes no difference--I still don't want to do it, and I can and will still be distracted by crises, email, and the internet in general.

</comment><comment><USER21> I actually have given thought to writing an app that works along the same lines. A shared planner that someones and their groups can use. Take for example a household, everyone in the household can enter tasks, either their own or group tasks. When they do, they place a priority on them and a estimated time to complete. Tasks can have subtasks, this way a group of tasks can be rolled up into a task project. As well, scheduled tasks can be entered into it, that have very specific time requirements. Such as go to the doctor at X time/date. From there they system can generate a calendar of tasks that are to be completed. The user can then mark a task as completed or not, if it is not then the task list is recalculated based on priority and schedule tasks. I saw the same issue as the author, tasks have to transfer to the calendar, if they don't they get skipped. The thing that a system like this would do is show the aging of a task is being procrastinated on.

The other idea that I had was to have a checkbox on every task that asked if someone could be hired to do a task. If the answer is yes and at a certain aging point, the app would ask if they want to solicit bids on the task, the app would then place the task in a market place where people could bid to perform the work of the task. This way people could hire to complete the task once they realize that it has languished in their queue.

</comment><comment><USER22> I posted a comment there, but I thought I'd bring it here as well.

His title should be "To-do-lists-without-context-and-forced-prioritization don't work"? It's clear it's not living by the calendar that solves everything, it's the proper elimination of unnecessary tasks and doing the things that are important first. I think the best part is the one sentence that said "whether or not you can or should (say yes) to a project". That's the hard part. That's the part I think we all need to learn, and doing that first is a priority over changing how you manage your lists.

I've seen too many managers at big companies who live by the calendar. It's obvious. They always say, "let me check my calendar first". Is this how you should be managing your priority and time? Shouldn't your decision to do anything be on the importance and urgency of your tasks? (You can always delay the less important tasks).

I think this is a failure in most time management strategy. Anyways, I'm a developer of Priority Matrix (www.appfluence.com), which is about managing priority, rather than time, and I'm bias against the calendar as a pure way to manage anything. I think it's a hard problem to solve, and I do spend half by time writing lists, and half my time determining what's critical.

Interesting post. Thanks for sharing.

</comment><comment><USER23> For me, To-Do Lists solve the problem of choice paralysis. They don't solve the author's problem, which others have pointed out is time management.

</comment><comment><USER24> I created <http://goalstacker.com> to address this problem. It's not the list that kills you, its the list you can never finish that kills you. In order to be productive each day, its nice to have a small set of obtainable goals that you can actually finish. This list need to take into account how much time you have and how much time it takes to complete these tasks.

I think the author's method is pretty close, the only problem with a calendar is that if you don't finish the task then one of two things usually happen:

1\. You forget about it and it fades away never to be completed. 2\. You have to keep moving it to a different day until you complete it.

</comment><comment><USER25> I agree, to-do lists don't work, and the proposed agenda thing won't work either (not for me at least). I am hooked with GTD (<https://en.wikipedia.org/wiki/Getting_Things_Done>) and use <http://activeinboxhq.com/> with gmail. It sounds like an advertisement, but this method really works for me and gives me control over my workflow (100s of emails per day).

<comment><USER15> The key takeaway for me from GTD was the need for 'what is the [very specific] next action' instead of a TODO as a pile of stuff.

</comment></comment><comment><USER26> Bad advice. To-Do lists can work well, if you have the right tools and use them effectively.

I know the cool kids love to criticize IBM Lotus Notes but it has several great features for managing To-Dos.

* To-Do documents can be created with priorities and deadlines (including repeating).

* To-Dos can be assigned to yourself or others.

* To-Dos can optionally display on your calendar, and if you like it will show all overdue To-Dos on the current day.

* Any e-mail can be easily converted into a mini To-Do with a follow-up date and comment.

</comment><comment><USER27> This is true for me. Now I just need a simple interface to list out everything I need to do, and then move it to a calendar so it gets done.

<comment><USER28> For the simple interface you might want to check Workflowy (<http://workflowy.com>). Not sure if it can integrate with a calendar.

I use Daylite. A bit heavy sometimes and the learning curve is steep, but once you get the hang of it, is fantastic.

</comment></comment><comment><USER29> I recently started using Checkvist, and like it better than anything else I've tried so far, because

\- it supports hierarchies;

\- tasks can be assigned due dates, and can then be viewed in chronological order;

\- tasks can be tagged;

\- it's on the web

</comment><comment><USER30> I think what the author is trying to say is two things:

1) It's a bad idea to have a "Do this now or you're a bad person" list. I have to admit I've tried that many times, and it never had the effect I hoped for. It's also bad to keep an "ARRRRGH I WILL DO THIS I ABSOLUTELY WILL I COMMIT MY LIFE TO THIS" list, because at some point you fail to live up to the title, and then you just feel silly. I learned that through bitter experience.

2) TODO lists don't solve all the problems that might prevent you from doing the things on your list. To me, saying TODO lists don't "work" for this reason is a little bit like saying that taking a GPS and a first aid kit when you go backpacking doesn't "work" at preventing you from dying in the woods. I mean, how much can you expect? _The Chinese general Han Xin used geography as a commitment device: he positioned his soldiers with their backs to a river so they couldn't run away from the enemy._ Oh, wow, I guess you can expect a lot. Hmmm... maybe Perl has a command for threatening the user with death. Actually, I'd be amazed if it didn't. It's probably one of those default behaviors I'm always suppressing. I'll have to work out the details, but some kind of cron job approach seems promising.

Personally, I find that TODO lists work well as a small tool in the UNIX environment of life. It works well with other simple tools. For example, when I get in the car leaving work, I need to combine sex different kinds of information. There may be a seventh, but I can't remember what it was, so I'll just keep things moving.

1\. I need to know how tired I am -- I basically just ask myself. If I'm too tired to answer, I take a nap in the parking lot and ask again when I wake up.

2\. I need to know if I have any plans for the evening -- my calendar tells me that.

3\. I need to know how good a case I can make for slacking off that evening, i.e., how much I have worked out, studied, read, and kicked ass at work that day and earlier that week -- for that I consult my memory. (I find it gives more desirable answers than other devices.)

4\. I need to know what kind of things I can or need to get done. That's the TODO list! When I start to think my TODO list is so large and complex that it seems to need some kind of data model of its own, then that means I spend a few minutes a day reviewing it and tidying it up. It isn't wasted time. There are some things I write off and say, "Screw it, if I need to know this I'll look it up in some kind of information system." My TODO list is more important than that. I want to review what's on it on a regular basis, because that stuff needs to be in my _brain._ Maybe not completely and precisely, but at least a quick scan every day. When it gets too big to scan over quickly in five minutes and completely rework in twenty, then I know I'm making plans that are much too elaborate to ever correspond with reality. "Plans are useless; planning is essential." Your TODO list is a "plan" and is therefore constrained to be very modest in scope. Artifacts produced during "planning" should be immediately thrown away, since 1) they have already served their purpose, and 2) they should be recreated from scratch every time.

5\. I need to know where the things on my calendar and my TODO list are so I can estimate driving distances and aggravation. For that, I use (in descending order of priority) my memory, map links in my calendar, Yelp, and Google search. I may also need to know what time various stores close (memory, Yelp, Google.)

6\. I need to know what time it is. My phone tells me this.

Trying to keep all of these things in a single place seems both challenging and pointless. Also, there are also many subtleties.

For example, on some days, working out is slacking off, because I use it as a way to put off some coding I planned to do. Clearly, though, if I've been working out a lot, then I've earned the right to slack off, but not the right to slack off by working out, because that can lead to injury. This is a difficult problem to systematize. I have an elegant proof that an org mode solution exists, but constructing a concrete instance has defeated me thus far. At the moment, I'm trying to devise a solution using ruled and unruled index cards, paperclips, and color-coded rubber bands. Suggestions would be welcome.

On other days, I don't have the discipline to work out, so I'm lazy and write code instead. It even happens that I can't face the prospect of going to the gym like I planned, so I give myself the night off, and feeling freed from the boring, mundane obligations of middle class life, I find that what I really want to do is go to the gym.

(If you've followed along this far, then I hope you are starting to suspect that there is only one information processing device known to humankind that is intelligent, sophisticated, and irrational enough to model this behavior.)

Some days I just open a bottle of wine and order a pizza, and I earn this indulgence by going to bed at 10pm and getting up at six to study. That seems easy enough to plan out in a calendar, but what if my girlfriend calls me at 9:55pm and asks me what I'm doing? My calendar will be invalidated, and I will be too distracted to correct it. This situation also raises the question of what kind of list or other device I should use to decide what to do the morning after a night of drinking, because I usually wake up at 5am with not much intelligence or physical stamina but with infinite patience, which sometimes results in me cleaning my apartment for three hours, which is, like, three month's worth of cleaning for me. What would Han Xin make of that, eh?

Seriously -- not that any of the foregoing was false, because it's actually all true, except for the part about index cards -- life is too complicated to make anything but the roughest plans. This is as much true of buying groceries as it is of personal development as it is of software development. Motivation, discipline, and all such things cannot be handled by lists and calendars. They are handled by 1) recognizing what they are and reflecting on them, and 2) if necessary stopping, closing your eyes almost all the way, and calming yourself until you are able to reflect on them. At least, that's what works for me. And if that fails, I give myself the night off. If your decision-making is still consistently wrong even after you've made a strong effort to put yourself in a calm and open frame of mind, then it's because you're tired, sick, or mentally conflicted; tend to your physical and mental health first, and the rest will follow.

Or maybe you really, honestly, with your best heart, do not want to do what you are trying to make yourself do. "Der Mensch kann zwar tun, was er will, aber er kann nicht wollen, was er will." You can do what you want, but you can't want what you want. I.e., saying that you consistently fail to do what you want, even when you take care of your physical and mental health, is like saying select is broken. When you think you're having problems doing what you want, it's more likely that you don't really want what you wish you wanted. Not that you have to accept that -- I think it's overblown to say you can't want what you want. It's just another thing that requires work. And if you don't _really_ want to want it, my advice is just to forget it, but you can go all Inception on your motivations if you want (... to want... to want....)

If it still matters, I keep three TODO lists. I have an Evernote note which contains (at the bottom) my long-term shopping and TODO list and (at the top) my daily shopping and TODO list. It's in Evernote so it's always just a few seconds away. Every day, I copy (NOT move) a few items (or none) from the long-term TODO to the daily TODO, taking into account various due dates, business hours, driving constraints, and how much time and energy I expect to have. (This is a pretty easy problem for the human brain to generate a reasonable solution for, and I defy anyone to produce a system or computer program that can do it.) Often the "daily" version of a long task says "start X" or "continue X" or "spend twenty minutes on X." If an item from the long- term list gets completed during the day, I remove it from the long-term list later. (I rarely forget to remove an item from the long-term list, and when I do, it's AWESOME.) My work TODOs are handled in org mode. They sit at the bottom of my work log, and I touch them every day, reworking and reordering them as necessary. They're much simpler to handle: I just do them in order, modulo dependencies. Yet even at work I make occasional concessions to enthusiasm or the lack thereof.</comment>


Should Americans Care About Apple's iPhone Factory Conditions? - <AUTHOR> http://business.time.com/2012/01/26/should-americans-care-about-apples-iphone-factory-conditions/?xid=gonewsedit

<comment><USER2> Inasmuch as the thought of it, and the guilt you feel for supporting it, affects your decision to buy, yes. Otherwise, no.

The USA is _NOT_ responsible for the working conditions in _any_ other country, even though Apple clearly condones it. If Americans really cared, they'd eschew Apple for other brands, but they'd probably find pretty quickly that those other brands have similar work situations in their suppliers camps.

Additionally, even though China is not as freely capitalistic as we are, those workers still have the God given right to not engage in that work, or to seek work elsewhere.

Based on what I've heard from friends in China, the workers _know_ going in that they will be pretty much held hostage working for just enough to pay for food and housing provided by the companies they work for.

Choosing to do so is still a choice, and if they have choice, they can still say no.</comment>


'Thermal inductor' could convert boiling water to ice with no energy input - <AUTHOR> https://physicsworld.com/a/thermal-inductor-could-convert-boiling-water-to-ice-with-no-energy-input/ <comment><AUTHOR> Paper here: [https://advances.sciencemag.org/content/5/4/eaat9953](https://advances.sciencemag.org/content/5/4/eaat9953)

</comment><comment><USER2> To convert boiling water to ice involves a net _removal_ of energy. Inputting energy would keep heating the water.

Note the article describes a way of moving the heat from one container to another - basically a heat pump just like any airconditioner produces 'cool'. (on one side of the system only, the side of course gets hotter.)

<comment><AUTHOR> > To convert boiling water to ice involves a net removal of energy. Inputting > energy would keep heating the water.

A refrigerator also requires energy.

<comment><USER2> > A refrigerator also requires energy.

Yes. To move the refrigerant around and compress it. The real work of a refrigerator is done by the Latent Heat of Evaporation and its corollary the latent Heat of Condensation.

In the change of state between liquid and gas, the latent heat is the same, but in one direction (gas to liquid) energy is released, and in the other direction (liquid to gas) energy is required.

Note that since the heating-cooling both produces heat and 'cold', a heat pump is the most economical way of drying clothes. The energy in the hot air evaporates the water in the clothing into water vapor which then passes over the cold plates and condenses that water vapor into water which is drained away. The heat energy produced by the condensation of the water vapor evaporates the refrigerant which is then compressed, releasing energy to reheat the circulating air so it can evaporate more water. Neat, hey?

[https://www.youtube.com/watch?v=IWqNmOLHwt0](https://www.youtube.com/watch?v=IWqNmOLHwt0)</comment></comment></comment>


In Mariana Trench, every animal tested had plastic in its gut - <AUTHOR> https://www.theatlantic.com/science/archive/2019/02/deepest-ocean-trenches-animals-eat-plastic/583657/ <comment><USER2> " _For a long time he stood gazing at the owl, who dozed on its perch. A thousand thoughts came into his mind, thoughts about the war, about the days when owls had fallen from the sky; he remembered how in his childhood it had been discovered that species upon species had become extinct and how the 'papes had reported it each day - foxes one morning, badgers the next, until people had stopped reading the perpetual animal obits._" \---Do Androids Dream of Electric Sheep? (1968)

<comment><USER3> Man can be forgiven for not being able to do more to stop its effect on nature. To control the pollution emitted by a 7 billion strong global population is a Herculean task, and it's only been about 70 years that we've known that nature is suffering from industrial civilization, and thus that pollution control and habitat preservation is something we ought to do.

<comment><USER4> I am a conservationist to what some would say is the extreme and yet I agree with you. My eco-actovist friends would probably never talk to me if they heard me agree with you but it's true. We are naive. Some of us are greedy and through greed destroy, but even those people are naive. We are still monkeys with rocket ships. Forgiving ourselves coupled with dedication towards preservation of life is our only way forward. Everything else is ugly.</comment></comment></comment>


Hilarious bargaining (Luis von Ahn) - <AUTHOR> http://vonahn.blogspot.com/2009/04/one-expensive-flea-market.html

<comment><USER2> Which of these is not like the others?</comment>


The Toddler at Y Combinator - <AUTHOR> http://www.fastcompany.com/3049622/how-i-get-it-done/the-toddler-at-y-combinator <comment><USER2> I was my son's primary caregiver for several months while my wife recovered from surgery (for 1 month she was unable to provide any care, even 'babysitting'). He was around 9-12 months. It was far more exhausting than anything else I've ever done. I went to the grocery store while he slept, laundry in the mornings. I wrote code at night or nap time, or sometimes during the day when he was content to play with toys.

You very quickly learn to drop the stuff that doesn't matter; I'm a more productive developer today because of it. I was forced to develop a critical eye and abandon designs that didn't work immediately. I also lost my taste for TV shows, movies, and most podcasts; now I'd rather build something than consume content.

Good for Julia; I have a lot of sympathy. Frankly I have a lot of sympathy for single parents as well... I used to have harsh uninformed opinions on the subject (that I see often repeated around HN and tech in general, especially by privileged young guys like myself). Then I had to live it for reasons entirely outside my control.

</comment><comment><USER3> I remember Adam from our batch! Cool kid: precocious, though he did come _this close_ to spilling things on my computer a couple times :)

</comment><comment><USER4> Seems like a good outcome in the end... but the landlord asking her to clean bathrooms to stay there? What the hell?

<comment><USER5> I'm guessing this was cleaning the toddler affected bathroom(s).

Have you seen what young child of the correct age will do to a bathroom in a single session? It's amazing! There's always number one, and possibly number two spread around. I still don't know how so much mess can be made without intentional effort.

Source: I work from home, with children, clean bathrooms.

<comment><USER6> I will suggest that what is true of your children in your home is not universal truth. My kids were holy terrors on multiple fronts who could not be trusted for 30 seconds. Pissing all over the bathroom and smearing poop around was not one of the things they did.

The request for one of the few women in the house to clean the bathrooms in order to stay reads as straight up sexism to me.

</comment></comment></comment><comment><USER7> Startups are challenging, but that's definitely an added challenge Julia. I wish I had known about the housing challenges during yc, maybe we could have helped somehow :(

Not to distract from this story, I've been impressed with my experience donating on Zidisha -- repayment has been incredibly quick, and it's rewarding to reinvest funds.

</comment><comment><USER8> "I did the right thing, she thought. But I'll never do it again."

Somebody should change that for incubators and YC, being the most forward thinking and advanced one, should be the first to try:

IDEABOLT: Apply to next HN with non-profit startup to care for kids (preschool 2-5) of HN batchmates onsite at YC (with its blessing, taking over a large room or some converted space nearby). Not only this would increase the pool of applicants greatly (really?) it boosts the coolness of HN close to \infty.

The service will be free (9-5) so how to make money? Investigate innovative preschool learning methods using the kids (of course, with parents permission). This target group is perhaps the least served child demographic (no good solutions for something as mundane as poop/feed tracking, [https://news.ycombinator.com/item?id=10075191](https://news.ycombinator.com/item?id=10075191)), except mundane stuff like diapers and bottles).

"He even struck up a bond with Paul Graham. Most people either talk down to two-year-olds or ignore them. But Graham took the time to figure out that Adam was fascinated with trains, says Kurnia, and the two of them spent 10 minutes drawing trains on a white board. Graham treated Adam like a little founder, interested in his interests."

I would have expected this! OK, Add to the idea to mine kids for ideas, _Big_ fashion.

<comment><USER6> If you are serious, you could research how on-site daycare was handled during WWII to entice women into the work force and help them succeed. It has been done before, and very successfully, but only long enough to win WWII and then send women back home in droves to be full time moms -- which they mostly were happy to do, in part because prior to WWII everyone was suffering through The Great Depression and savings rates for a great many de facto _2 income, no kids_ families during the war was as high as 50%. People were happy to buy a house in the 'burbs and live the good life after suffering through the depression and then the war back to back. But lots of interesting things happened during WWII. As part of your research, you might start by watching historically based movies, such as _A League of Their Own._

<comment><USER8> I _was_ serious, however the scope I had in mind was perhaps different than what you are suggesting in that:

1) The target is not just women, it's founders (men and women), and specifically founders at incubators where the work effort is intense. That way the scope of the proposal is limited to manageable proportions.

2) We're not talking about _any_ onsite daycare but a very specific case.

3) The main goal is not to "entice women into the workforce" or to increase women in tech (although this great benefit may come as a side benefit) but to disrupt childcare for this particular scenario.

So the important questions are: how would preschool childcare be done different, how can kids really create something useful, can a company use this as a sustainable resource, etc.

<comment><USER9> It's vaguely disturbing to hear suggestions to use children as experimental subjects. It makes sense across a population (eg, all of UK) to do clustered RCTs, but the YCombinator nursery group would be tiny and so the evidence gathered would be weak, which makes (imo, I'd be interested to hear what the ethicists say) it more problematic.

And I'm even more unsure about this bit:

> how can kids really create something useful, can a company use this as a > sustainable resource, etc.

Perhaps I'm misreading it? _Better Off Ted_ had a bit where the children in the nursery were put to work. I don't think that's what you're suggesting?

<comment><USER8> Exploiting kids as subjects does sound repulsive (although using them as subjects with parents consent is perfectly ok for scientific purposes, e.g. see Alison Gopnik's fantastic work and her TED talk: [http://www.ted.com/talks/alison_gopnik_what_do_babies_think?...](http://www.ted.com/talks/alison_gopnik_what_do_babies_think?language=en)). My suggestion was rather to use this group, which would be tiny as you point out, as a simple "sounding board", e.g. to develop new ways of teaching young children programming. Another way would be to get their ideas and keep them in the loop for development of new products targeting kids. Toy companies, such as Lego, routinely employ kids to test new toys but I think very few involve them in the _creation_ phase.

</comment></comment></comment></comment></comment><comment><USER10> Solving these sorts of problems better would do wonders for the persistent gender gap in high tech.

</comment><comment><USER11> _" The first time Kurnia showed up with Adam, it may have raised a few eyebrows. While other founders with children have occasionally managed YC by having their spouse join them in an apartment in the area, no one had ever attempted to care for a toddler, alone, through the program."_

Whenever you hear male founders/tech workers bitch & complain about women and tech and the level playing field, remember this example.

</comment><comment><USER12> > the landlord [...] threatened to throw Kurnia and Adam out unless she agreed > to clean the bathrooms

Pardon my french, but how the fuck is that legal? That's seriously messed up at a fundamental level.

<comment><USER13> I have literally no idea. I didn't think that a landlord could throw you out if you don't do a task for them.

</comment></comment><comment><USER8> "Moving quickly, she found she could cut the round-trip hike to about an hour. The only problem was when it rained, which happened several times. In those cases, she'd pass an umbrella up to Adam. He'd stay mostly dry, but Kurnia would be fairly wet by the time they arrived."

Wait, so none of her batchmates noticed this and offered her a ride for subsequent trips?

<comment><AUTHOR> Most of the time when I took Adam to YC, it was not for batch events but rather for one-on-one office hours. When batchmates were present, they would give us a ride, as did the YC partners when they didn't have other responsibilities.

<comment><USER14> My hat is off to you. I joke that I have a 7 month old son and a 14 month old startup but then I also split duties with my wife, so it's a tiny fraction of what you've dealt with.

"The website is crashing!" as an early phrase would be awesome and horrifying all at once. :)

</comment></comment></comment><comment><USER15> Whatever it takes for success. And pg is a genuinely nice fellow.

<comment><USER16> That vignette is classic pg. It makes me happy to see so well-chosen and vivid a detail in a report like this.

<comment><USER17> me too. i can just see it!

</comment></comment></comment><comment><AUTHOR> A lot of this discussion has centered on YC's support for parents / female founders. Since that wasn't the focus of the Fast Company article, I've shared my experience and thoughts on that subject more extensively here: [http://www.huffingtonpost.com/julia-kurnia/a-female- founder-...](http://www.huffingtonpost.com/julia-kurnia/a-female-founder-at-y- com_b_8010110.html)

</comment><comment><USER18> Huh they don't have digs for their batches. I would have thought they would.

<comment><USER19> That'd be an obvious next step for them, for sure.

<comment><USER16> I'd be shocked if YC ever did that. The presumption has always been that founders are adults who make their own decisions. YC partners aren't founders' bosses or life organizers. They just offer advice about startups.

<comment><USER19> I wasn't thinking like a kid-style dorm. When I was younger, I worked at a gas station for the summer in a tourist town (Tofino, BC). Gas station attendants aren't usually given free housing, but in this case the company did provide housing because they found it impossible to staff the place otherwise. The town got stuffed so full of tourists that there were no accommodations for the temporary summer staff. So hotel, restaurant, and even retail employers would have some kind of cheap and very rough housing deal for temp staff. Mattresses on the floor kind of thing, and only on an as-needed basis.

Because of the unique housing tension in SF, I'd guess that some employers do that there as well.

</comment></comment></comment></comment><comment><USER20> This is an amazing story. Reminds me of my mother. I need to call her...

</comment><comment><USER21> Nice timing of this article.

</comment><comment><USER22> Awesome!

</comment><comment><USER23> Perhaps I'm naive, but I would've expected the folks at Y Combinator to go a little above and beyond so a parent with a young child wouldn't have to stay in a 'flophouse'.

<comment><AUTHOR> I think most folks at YC weren't aware I was coming alone with Adam until well into the batch. They did go above and beyond to put me in touch with a housing advisor while I was in the area for interviews. The problem was that I was only staying for three months, too short a period to rent an apartment cheaply, and there didn't happen to be any women founders' shared houses in my batch.

In case it didn't come through clearly enough in the article, I should reiterate that the YC partners and my batchmates were super supportive and often went out of their way to make it easier for me to participate in YC events - offering rides, allowing Adam to tag along with me at office hours, helping to entertain him, and generally being extraordinarily patient and welcoming.

<comment><USER23> You don't need me to tell you you're a tremendous bad-ass, and I'm sure everyone was helpful and meant well, but if Y Combinator is truly trying to be inclusive they should've been more proactive here. I'm sort of shocked that at the most prestigious and successful incubator in the country, no one even seems to have even _asked_ the admitted founders about any additional responsibilities they might have like child or elder care.

<comment><USER4> Agreed. That's one reason (among others) I'd never consider applying to YC. It appears to be tuned to individuals without any encumbrances -- i.e. the young, unattached, and fairly well-to-do.

</comment></comment></comment></comment><comment><USER24> Impressive that Julia hustled so hard just to be there at YC, but disappointing that she had to. Why doesn't YC provide some basic support for its founders to attend the program? At a minimum, room, board and transport for founders and their families for the duration.

Not doing so will strongly select for people who already have the means to support themselves in Silicon Valley for 3 months, which is like saying "rich kids only".

<comment><USER16> Of course YC provides "support for its founders to attend the program". It funds them to do so. Nonprofits get the same funding.

I don't know about this case, but the article mentions "the meager monthly stipend she allowed herself", which suggests that Julia chose to spend as much of the funding as possible on the nonprofit itself, despite considerable inconvenience. If that's so, I admire her for it, and it's a strong signal of authenticity for Zidisha.

<comment><USER24> I also admire Julia for the commitment she showed. She made it work, and by the sound of it, it was damn hard.

Don't get me wrong, YC clearly provides great support in general for its founders. What I'm suggesting is that I would expect them to go that bit further to be inclusive - especially with their public commitment to encouraging female founders.

My impression is that the funding founders get is interpreted as funding for the company, rather than for the founder to live. Is that wrong?

<comment><USER16> > funding for the company, rather than for the founder to live. Is that wrong?

Oh yes, quite wrong. The #1 purpose of the funding has always been to cover founders' living expenses while in YC. It was more than enough for that when we went through it in 2009, and of course the startups get a lot more these days.

I should repeat that I don't know any details, but I bet you the YC partners had no idea of the lengths Julia was personally taking. (Literally! Commuting an hour on foot with a two-year-old is quite a length to take.) This is clearly a strong and determined person. It seems unlikely that she would have brought such details up or asked for special treatment in any way.

</comment></comment></comment></comment><comment><USER25> Why didn't YC offer a good childcare solution from day one?

<comment><USER16> You've been abusive in this thread in several ways, including by posting this three times. Please stop.

YC is an investor. It provides funding, not "solutions". Founders can spend the funding on childcare if they deem that best for their startup. Probably some do. It's entirely their call.

</comment></comment><comment><USER19> One question - why was Kurnia the one who had to take Adam? Wouldn't it be a lot more sensible to leave him home with the dad?

<comment><USER17> I can't speak for anyone else's circumstances, but I can't imagine ever opting for my two year old son to be away from his mother for three months. Happy to elaborate, if people are interested.

<comment><USER19> Please. I have no kids, hope to someday, but it seems to me that being separated from either parent for three months sucks equally for the parent, but the kid probably won't notice that much. It's not like he's breastfeeding or anything. I'm interested to learn how I might be wrong though.

*Yo, I asked a legitimate polite question in the interest of learning more, stating my preexisting assumptions and inviting people to educate me. The parent comment gave a very nice and informative reply which was helpful to me and likely others. I don't think that rates downvotes.

<comment><USER26> At two years old most children will have a stronger bond with the mother than the father because generally the bulk of care, including breastfeeding, has been administered by the mother up until this point in their life. There are likely genetic/chemical/evolutionary forces at play here too.

Even at three years old, my daughter would unquestionably choose to spend three months with my wife rather than me (I'm not hurt or offended by this!).

edit:

"but the kid probably won't notice that much"

The kid will _definitely_ notice :)

Being separated from a kid for three months would also be much harder emotionally on my wife than it would for me.

<comment><USER19> I was thinking that since kids mostly don't remember anything from before age 2-3, it wouldn't matter. But then again, it probably would matter to the parents, who wouldn't want to distress their kid regardless of whether he remembers.

<comment><USER27> Will not remember is not the same as will not affect, core emotional and psychological growth happens prior to 3, just because a child has poor recall does not mean they are not the sum of their experiences up to that point in time.

<comment><USER28> [citation needed]

The kid will definitely realize mom and dad are gone at two, they're not vegetables, but whether that has any impact on them later is not something that's been established by evidence. The idea that kids are the "sum of their experiences up to that point in time" is an old wives' tale.

<comment><USER29> I thought there was some evidence related to stress hormones, and the toll of being in a constant state of arousal due to stress. But that may be on older children.

<comment><USER27> [https://en.wikipedia.org/wiki/Early_childhood_stress_and_neu...](https://en.wikipedia.org/wiki/Early_childhood_stress_and_neurobiological_effects)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER30> I honestly do not see why the child had to go with. What was wrong with the husband taking care of him?</comment>


Aging, mediocre programmer seeks wise fellow programmers/technical folks - <AUTHOR> Very soon ageism will catch up with me and I'll be unemployed. ( I'm 42). I'm smart enough to do most business related software development but mediocre enough that I won't be hired by the likes of Google. As they say, most technical work or any work that requires deep focused thinking is a race to the bottom. I see great potential if programmers/technical folks are willing to put aside their overly individualist and reclusive tendencies, and start realistically co-operating. I'll like to get in touch with fellow techies who have realized this. And want to hash out ideas for any mutual co-operation. I have nothing concrete in mind yet, but I can be reasonably sure that I'm not looking for software related ideas.<p>A starting point could be some online forum where ideas can be exchanged. <comment><USER2> I'm in. I'm not that particular on the idea. I just want to make sure their are customers before alot of it is built.

<comment><AUTHOR> Agree it would be foolish to build something huge if there is uncertainty about customers. Expect an email from me.</comment></comment>