Warning to YC applicants: We're going to restart HN tonight - <AUTHOR>

So if you're editing your YC application in the application form (which I wouldn't recommend anyway), click regularly on the Save button at the bottom of the page.
We restart HN every 5 or 6 days, or it gets slow (memory leaks).  Usually we do it at night and don't say anything about it, but since people might be editing YC applications, I thought I'd better issue a warning.
I haven't said when we're going to restart it, because I don't know.  It shouldn't matter anyway; just don't depend on it. <comment><USER2> I'm not going to lie, I had a good laugh thanks to this post. Not that I fault the method being used to combat memory leaks. Depending on how much (of pg's) time a restart takes, this may be the most efficient way of handling it, but the idea that the site where we all discuss the finer points of multi-region- zone-datacenter replication redundancy just gets restarted when something isn't working correctly humors me.

<comment><USER3> Pretty sure the most efficient way of handling it would be to port the site to something that wasn't Arc. These problems exist because Hacker News is half science project, half production site.

<comment><USER4> The best part is that it's becoming one of the more influential tech sites on the web now, kind of proving the point that hacking together something great (and NOW) can provide tremendous value to lots of people.

<comment><USER5> I am a diehard HN fanboy, love the community, love getting my daily tech news here; but... anytime I want a good laugh I like to crack open the source code of Ycombinator's home page

I mean... c'mon

 _

_

<comment><USER4> It's even funnier when I think that HN is probably more popular than anything I'll ever work on. Apparently people don't care that you are using the latest dynamic stylesheet code generator or whatever, so long as the information is presentable and the community is good.

<comment><USER6> There's plenty of people that care, but it seems like it's not going to be fixed anyhow, so you don't see many complaints.

Personally I'd love it if the HTML template of HN would be a bit more semantic. I've had at least four false starts where I was like "yeah I'm gonna build this piece of userscript JS so I can more easily <check replies to my comments or whatever>" only to hit a brick wall when I am reminded how awful it is to parse, even with today's advanced DOM querying features. Fortunately there are those with more perseverance, so I am thankful to at least get to use someone's bookmarklet that adds comment-folding to HN :)

</comment></comment></comment></comment></comment></comment><comment><USER7> I love the informality of this post.

Just "hey, guys, we're gonna flick the lights on and off sometime tonight; just a heads up in case you're working on something."

Never change, HN.

<comment><USER8> Yeah, you never really know how the sausage is made. You can watch all these videos and conference presentations of our-awesome-system-to-ensure-super- duper-scalable-uptime, spend hours debating this or that architecture, and generally be less productive than if you just kick the box in the right place, every so often.

<comment><USER9> Yeah... writing a site as simple as HN that doesn't fall over in a week isn't rocket science.

<comment><AUTHOR> HN wasn't designed to minimize development effort. It was written to exercise an experimental programming language whose implementation is not (to put it mildly) optimized for performance. Considering its origins, it's surprising this site even has the performance it does.

<comment><USER9> So to be clear: you care more about the integrity of exercising Arc via HN than you care about your users. Because we both know that writing HN correctly would reduce latency dramatically along with short- and long-term ops effort. It'd also fix all those nasty "dead or expired link" errors. Also, users wouldn't be terrified to click "reply" without copying their posts to the clipboard, first.

<comment><USER10> Ostensibly, HN is a tool used to support YC's business. Though I believe that PG, _et al_. recognize it's importance to a broader community, it is not primarily an end in itself.

I suspect that the HN software does much more important but less obvious things which meet YC's goals than those you mention. I also suspect it does those things well.

As for page expirations, well, they aren't a deal breaker for me.

<comment><USER11> > I suspect that the HN software does much more important but less obvious > things which meet YC's goals than those you mention. I also suspect it does > those things well.

If I was PG I would test YC founder's time/frequency spent on HN against the success of their startups. I would use that data in evaluating new applicants. This test might ferret out founders with a procrastination problem.

I might also try discovering possible throw away HN accounts created by founder's applying under their official HN identity. That could really ferret out some assholes not technically competent enough to cover their tracks and dumb enough not to think this possibility through.

Also, PG's essays are one of the great success stories of content marketing.

That's how I found this community, and although I probably will never apply to YC, the enthusiasm for it's backed startups have rubbed off on me. I wouldn't have been an early AirBNB or Dropbox user if not for those essays.

<comment><USER10> My conjecture about the secret sauce is more along the lines of using statistical techniques to foster better discussions.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Better yet, copy the application questions to a text file, write your answers there, and when you get ready to submit your application, copy in the answers and hit "submit".

You'll want to preserve a copy of your application for future reference anyway.

<comment><USER13> _Better yet, copy the application questions to a text file, write your answers there, and when you get ready to submit your application, copy in the answers and hit "submit"._

When HN gets busy, that is also helpful for posting comments. Sometimes even when I type one of my shorter comments, by the time the comment is done and I select "reply," the response is "unknown link," a sign of a time-out condition. (I probably type slower than many programmers.) Fortunately, my browser preserves my form submission if I encounter that condition, so then I copy the whole comment and try again. Anything long that takes looking things up I compose in my text editor, and then paste in all at once (as for another reply I posted today).

</comment></comment><comment><USER14> Out of sheer curiosity, is the restart a manual thing, or is it just on a cronjob? I'm thinking by the wording of the OP, it's done manually, but I'm still going to ask :-)

<comment><AUTHOR> I do it manually.

<comment><USER15> How do you know it has crossed slowness threshold to prompt restart ?

I check HN couple of times a day and I have not felt any performance difference.

<comment><USER16> Zapier sends him a notification of course... ;)

</comment></comment></comment></comment><comment><USER17> Wow, it's scary enough writing a comment in HN without a copy in my paste buffer. You would be a very brave man to do your application straight up.

<comment><USER18> Been using <http://getlazarus.com/download> for years - much happier!

<comment><USER19> Wow, there really seams to be an addon for everything, even if they make a simple thing more complicated. Why don't you just copy your post before you hit the 'submit' button? Easier, faster, better?!

FWIW: Use Ditto if you don't want to lose the previous buffer content.

<comment><USER18> > _Why don't you just copy your post before you hit the 'submit' button?_

Three simple (pragmatic) reasons:

1\. Most of the time I forget.

2\. Sometimes I'm writing multiple comments in HN and elsewhere simultaneously. And, sometimes I write quite long, carefully thought out comment on a forum I visit frequently, complete with images and all that (the forum runs phpBB and doesn't have a 'save draft' button). We need to change the web server before we can move to a better forum engine (vanilla, perhaps) and it's a small forum and doesn't worth the effort until we move the forum to another server later this year.

3\. I usually use Safari betas (on OS X), and they're not famous for being stable and while the whole app rarely crashes, after they've moved to WebKit 2.0, occasionally something goes wrong and it has to refresh all open tabs and flush anything that's been in the text fields. So, even if I do #1, the danger is still there.

:)

</comment></comment></comment></comment><comment><USER20> Memory leaks? If you're in the market for a Performance and Availability engineer with 15 years' experience in making this sort of problem a happily- fading horror story, send me a message. ;)

<comment><USER21> It's written in Arc, which is written in Racket... you might find yourself coming up against the limitations of tools which were designed by academics, for academics and never meant to be used in a production site.

<comment><USER22> Plus I'm sure I've seen pg say somewhere it runs reasonably well now, and when it starts going they flick the switch and bring it back up.

</comment></comment></comment><comment><USER23> I'm curious, does the use of continuations prevent HN from running multiple processes & from being load-balanced?

<comment><USER24> > does the use of continuations prevent HN from running multiple processes & > from being load-balanced?

AFAIK HN doesn't use continuations, but closures.

Something along the lines of(imitation of arc challenge in flask):

<https://gist.github.com/3998745>

</comment></comment><comment><USER25> Social news sharing FTW! I love how we can help others get this news simply through our engagement.

Oh, and as for "editing your YC application in the application form" ...I wouldn't recommend it, either. Use something that doesn't require an internet connection, and save often. [Don't forget to actually fill out and submit your application, though. =]

</comment><comment><USER26> How does the restarting affect people filling out the application form? As long as the restart happens between pressing the save button, would there be any problems? The only problem that I can forsee is if the save button is pressed while the server is restarting.

<comment><USER27> The wonders of continuation-backed web development. Have you ever had an "unknown or expired link" issue on hn? Im pretty certain they are the same problem.

<comment><USER28> I suspect this isn't a full server restart, and is more just the app reclaiming memory from per-user data, like a session expiring.

<comment><USER29> At very least the process(es) running the site would be restarted.

</comment></comment></comment></comment><comment><USER30> If you restart while I'm in the middle of describing how my start-up simultaneously solves every problem from your frighteningly ambitious post, know now that I will NOT be retyping it.

</comment><comment><USER31> Im sorry for my ignorance, but I dont understand how HN can have memory leaks. I learned Scheme in school and from what I remember memory is handled automatically (in the particular one we were studying I think it was via reference counting). Is Arc that different from Scheme or am I just completely unaware of how Lisp works behind the scenes?

<comment><USER32> Garbage collection is cruise control for memory management, but you still have to steer. The only thing GC gives you is automated cleanup of orphaned data; if you're sloppy about holding references you don't need anymore, the GC won't help you.

</comment></comment><comment><USER33> aahh!! now i know why my application submit button would work sometimes even after i had the browser open for a few hours. Now I know that whenever it didn't work I could have been a victim of this restart.

thanks for the info.

</comment><comment><USER34> What time are the applications due? It just says Nov 2. Should I assume just after 11:59 Nov 1st?

</comment><comment><USER35> So hang on... you're telling me there are people who consider themselves geeks who don't use the Lazarus plugin (<http://getlazarus.com/>) in Firefox? (Or an equivalent, but Lazarus was developed by a friend of mine, so I prefer it.) That's just weird.

</comment><comment><USER16> Thanks for the heads up.

</comment><comment><USER36> dat computer science dat lisp dat dat

</comment><comment><USER9> > We restart HN every 5 or 6 days, or it gets slow (memory leaks).

Because competence wasn't worth it a few hundred restarts ago and isn't worth it now.

<comment><USER37> Because trolls are the best way to make people laugh.</comment></comment>


Why Your Form Help Tips Should Open on Mouse Hover - <AUTHOR> http://uxmovement.com/forms/why-your-form-help-tips-should-open-on-mouse-hover/

<comment><USER2> I hate to give UX snark back to a site called uxmovement.com, but IMO we should be eliminating "mouse hover" and such from our vocabulary. Touchscreen devices have no such concept, and it's time we begin designing our websites to work without this relic.

Someone viewing the site in the example on a touchscreen is either going to tap that without fear (which is ok) or never go near it because they fear leaving the page (their thesis statement). In other words, their UX is already poor for a huge class of existing devices.

<comment><USER3> You don't have to have the _same_ experience on all devices, but a _good_ experience on all devices.</comment></comment>


KDevelop 5.4 beta 1 released, testing appreciated - <AUTHOR> https://www.kdevelop.org/news/kdevelop-5380-released <comment><USER2> Nice and the change to Kate to support LSP are awesome.</comment>


Intel i7-4770k overclocked to 8.0 GHz - <AUTHOR> http://www.tomshardware.com/news/Intel-Haswell-Overclock-i7-4770K,22454.html

<comment><USER2> I'm skeptical. I don't know the exact breakpoint, but pushing enough power through the small (and very dense) circuits of a processor can't go beyond a certain level based on our current CPU cooling technology. The heat at that density just becomes too high and too localized.

<comment><USER3> Liquid nitrogen or helium. But if someone went to the trouble to use these substances, they'd likely show it in action instead of some computer screen.

<comment><USER2> Late reply, I know :( - Actually, it's not even the cooling outside the CPU that's the real problem, it's moving heat away at a microscopic level near each transistor. With enough power going through enough circuits nearby, the material the CPU is made out of becomes the issue.

Consider a block of metal submerged in a (hypothetical) liquid at near 0 degrees K. Despite how much heat this liquid can draw out of the block, if heat is being generated too quickly at the very center of the block, it's possible that the heat conductivity of the metal block itself limits the efficacy of outside cooling, resulting in an "overheating" center.

</comment></comment></comment><comment><USER4> I'm a bit saddened that nearly ten years after we reached 3GHz, desktop clock speed increase has come to a halt.

I know that FSB speeds are irrelevant now more than ever with multithreading and multi-core architectures, but the performance afforded by high-clock chips in high-demand areas, along with multi-core technology, it seems could be far greater than it is now.

Especially with several 8GHz nodes, it seems like cheaper supercomputing could be more viable.

Am I wrong, right, misguided, inaccurate, incorrect?

<comment><USER5> Clock speed hasn't increased, but instructions per second per core has more than doubled over the last decade, and instructions per clock cycle per core continues to increase (<http://en.wikipedia.org/wiki/Instructions_per_second>). Slower than Moore's law, but it's something.</comment></comment>


On the Scarcity of Bitcoin - <AUTHOR> https://jsfour.substack.com/p/on-the-scarcity-of-bitcoin <comment><USER2> There is more to gain by breaking Bitcoin the more it is worth. There is also more to gain by keeping it from breaking. The optimistic perspective is, that it will adapt along the way.</comment>


Developers - Working in consultancy vs pdt-based company? - <AUTHOR>

I'm hoping to get a rough survey of the sentiments by most developers regarding their employment. I know the dream of most hackers is to work in large tech companies like Google and Facebook, but other than that - what is the major difference/ turn-off of working at a consultancy-based company vs a product-based company? <comment><USER2> I know of no down side or turn off to being a consultant. I have more work than i need. I work with who I want and deal with zero politics. Plus people are happy to see me and when I'm done people are happy to pay. Working as an employee is the exact opposite in every way.</comment>


Android Is a Dead End - <AUTHOR> http://www.osnews.com/story/29924/Android_is_a_dead_end <comment><USER4> This is a very confusing argument. The summary seems to be Android defined as "a Linux kernel with libraries" is a dead end. Well, okay, although given its deployment on 2B devices it's probably the best argument for Linux.

A couple of years ago Android replaced Dalvik, the runtime for all apps. Did anyone say Android is a dead end then? Nobody defines Android in this way, by a single component, and in a way the author even acknowledges this. You might as well say given enough time Linux itself is a dead end.

What Android is is what Andy Rubin originally said it would be - an open source mobile operating system. And I doubt this will be a dead end any time soon, certainly not in our lifetimes. Important libraries and frameworks themselves will be improved and replaced as they have been for many years now, and yes perhaps Linux itself will be succeeded. But why would anybody care, especially if its transparent to users and even to developers (I'd imagine maybe a Linux emulation mode for NDK users.) To me, this sounds like a healthy project, which is sort of the opposite of a dead end.

<comment><USER5> > Well, okay, although given its deployment on 2B devices it's probably the > best argument for Linux.

One could have said more or less the same about Symbian not that long ago.

> Nobody defines Android in this way, by a single component, and in a way the > author even acknowledges this.

That's right, it's not defined by any particular software component. Any particular component can be replaced until the whole thing is replaced, a la Theseus's ship. So what is Android - what can't be replaced?

The answer is the development model. This can't be replaced because it's definitional to Android. You said it yourself: Android is "an open source operating system." More specifically, it's an open source OS that follows a particular development model:

1\. Development of mainline Android happens behind Google's closed doors, and is thrown over the wall to OEMs. 2\. Development of Android for particular devices happens behind OEMs closed doors, and is thrown over the wall to customers.

#2 is the rub. It annoys customers, who have to wait to get updates and fixes. It annoys developers due to the fragmentation problem. And it annoys Google because they don't control the update cycle, and instead have to shoehorn things into Google Play Services, etc. But critically it doesn't annoy OEMs, who love being able to apply their kernel "fixes," shovelware, and other familiar Android condiments.

Google would love love love to transition to a ChromeOS-like model, where they can exercise a lot more control. But they can't just do that outright - <USER2> would revolt. They probably can't do it at all within the confines of Android and the development model they've established. That's their key problem.

> But why would anybody care, especially if its transparent to users and even > to developers

It won't be. There is no universe where Google can provide a new OS that works on all their customers devices and supports all the apps. The best they can hope for is a new OS with a compatibility layer that works well enough - <USER3> Apple's transition from classic Mac OS to OS X.

But as soon as OEMs get wind of those, you can bet they'll be tripling-down on Tizen or forks or whatever. That's the dilemma that Google finds itself in.

Android is a sort of asymptotic dead-end, where Google can keep providing fixes like Dalvik->ART, but those can't address the essential problems. Eventually those problems will be severe enough to open a space for a new offering to thrive. Google hopes to own that offering, cannibalizing Android instead of letting someone else eat it.

(Oh, but then there's China...)

<comment><USER6> > Development of mainline Android happens behind Google's closed doors, and is > thrown over the wall to OEMs

You don't know much about Android, do you?

Here's Android: [https://github.com/android](https://github.com/android)

Developed behind closed door? I don't think so.

Maybe you meant iOS, though? Because that OS is certainly being developed behind closed doors.

<comment><USER5> I am sorry to inform you that Google engineers are not doing their daily pushes to github.com/android.

Yes, Android is developed behind closed doors. Primary development occurs with a Google-private repository, and only made public at or near the point of a release.

This is different from the way Chrome, ChromeOS, Linux, Swift, etc. are developed, where primary development occurs in the open.

<comment><USER6> Ok.

So how do iOS and Windows Mobile fare in your opinion?

<comment><USER7> When did the OP ever mention iOS or Windows Phone being OSS? They've never claimed to be either.

</comment></comment></comment></comment></comment></comment><comment><USER8> I would say apps are at a dead end. The way we are using our mobile devices with rows and rows of single purpose apps seems so... primitive now.

I mean, you need "Pizza Place" app to order pizza, "TicketMaster" app to order concert tickets, "HotelWhatever" app for hotel reservation, "Parking Meter" app, "Fitness" app, "News" app, etc...

Like I said; rows and rows of information silos taking place on your phone, unable to talk to each other, requiring new account for each of them, entering your credit card again and again. It's terrible.

Now let's say you want to order pizza. Instead of downloading yet another app, you could just type "order pizza" in the search box and an interface is created by the OS and you can chose the pizza place you want, toppings, etc, and the OS handles everything (adresse, payments).

AI is getting more and more capable and I think we reached the end of the _" There's an app for that"_ era. Can Android evolve to this post-app paradigm? I don't think so. Same thing with iOS.

That's why, I think, Google is working on Fuchsia.

<comment><USER6> > you could just type "order pizza"

"Type"? What year is this, 2005?

That's a surprisingly narrow view of what the future looks like.

Today, you can already ask your phone "order pizza" and it will do just that. Whether it's done by an app or an intent or a web site is irrelevant: it just works.

Which is why the OP article "Android is a dead end" is so preposterous. There is no analysis, no reasoning, no evidence. Just a silly claim that criticizes the OS used by 80% of the phones in the entire world for simple click baiting.

<comment><USER9> The year is 2017, and speech to text still isn't perfect.

<comment><USER6> And it will never be.

For English, and this kind of specific sentence, it's above 99%, though. Good enough for you?

What you are doing is called the Nirvana fallacy. Look it up, and stop doing it.

<comment><USER9> I actually meant more the speed rather than the accuracy. At least on my phone, it takes a fair bit longer to listen to me and process my voice than to swipe in two words.

</comment></comment></comment></comment></comment><comment><USER10> Extend, engulf, devour.

Most of the comments here miss the point of the article. The article author is saying that Google will replace the Linux component of Android with something proprietary. Then Google will have total control, and will be able to prevent Android clones.

Already, Android apps make such heavy use of Google proprietary code that open source Android systems such as Cyanogen and FDroid have mostly given up.

<comment><USER11> Except that the only evidence provided is Fuschia which is open source

<comment><USER12> Also, how does google prevent Samsung & co from taking over the AOSP codebase ?

Sure they could add rules to the "Google Play agreement for Fuchsia" but they are already in hot water because of the current Play Store contracts.

</comment></comment></comment><comment><USER13> So... there's absolutely no proof of what this article says, other than the existence of Fuchsia? Whose purpose we don't even know yet.....

</comment><comment><USER14> Don't know if it's a dead end or not, but both the apis and the developer tools are a massive clusterf#%k compared to Apple and Microsoft. Just one head scratcher after another, especially if you dare to support older versions. In comparison, Apple has a relatively pain free API, and lets you access it with one of the most elegant languages I've ever programmed in (Swift). After delving into Android just for a bit, it is no surprise that there are so few decent, non-trivial apps for it, and even Google's own apps work better on iOS.

<comment><USER4> Interesting POV, but I'd much rather develop for Android than any other platform. You are correct that currently developing for Android is not for the faint of heart. Happily, it also turns out understanding Java and Gradle and IntelliJ is generally useful for a software engineer and let me develop for many more targets and vendors than one. And since all the components are all open source, the community can provide excellent updates, bugfixes, support, libraries, frameworks, etc.

Not to bash on Swift, but even with the incoming Swift 4 they still don't even have an ABI compatibility story (leading to bigger apps since they to bundle the runtime, and framework/library devs can't offer binaries), and they even had to break source compatibility (though the compiler will have a flag to compile Swift 3). And since most Android app development actually depends on the Android Support Libraries, you can provide great compatibility to current devices. Whereas - and this is according to iOS devs - supporting the latest version of iOS usually means abandoning supporting previous versions. Also, I heard the newest xcode 9 just got refactoring support - cute!

<comment><USER15> Your argument is moot, if you replace Swift with Objective C. Also you don't have to abandon previous iOS versions to support the latest, it just doesn't make sense to when 90% of the users are on the latest.

</comment></comment></comment><comment><USER6> Pretty silly.

Let's take a look at the landscape:

\- Windows Mobile: irrelevant market share, closed source.

\- iOS: 10-20% market share depending on the country, closed source.

\- Android: 80-90% market share. Based on Linux, open source.

I know who I'm rooting for.

</comment><comment><USER16> > over the coming two to three years, Android will undergo a radical > transformation. This transformation will be mostly transparent to users - > their next Android phone won't actually be "Android" anymore, but still run > the same applications, and they literally won't care - but it won't be a > Linux device, and it won't suffer from Android's core problems.

How laughable. Google can't even get most users on a two year old upgrade let a loan an entire rewrite.

</comment><comment><USER17> createArticle(template='IsDead', target=buzzwordList.get(random()))

</comment><comment><USER18> Apple's iPhone is central to the product/value they deliver. And it's treated as such by Apple.

Google's Android is not. They deliver ads, and now some services that don't depend on ads. They needed to keep the channel open for these, in the face of a mobile transition that could otherwise be dominated by Apple and maybe Microsoft. Thus, Android.

Of course, this was also back when Google was still willing to really take a flyer on something.

</comment><comment><USER19> Surprised at the lack of comments about how Kotlin might help the situation.

</comment><comment><USER20> Android is slow? that's news to me. Been using Android for years.

<comment><USER21> Try out an iPhone for real world use.

I did the opposite. Android is extraordinarily slow ("feels unresponsive") even on high end hardware compared with a comparable iPhone. I had to use a Galaxy S8 for a spell at work and every non-keyboard tap seems to generate a half-second-plus delayed response.

I actually thought something was wrong (malware on a recycled company device?) and wiped the phone, installed all patches, and... still slow as hell despite the hardware that is 4x more powerful than my iPhone 6S.

It's as if they somehow ported the as-yet-unfixed lagginess of all Linux desktop managers to the phone on purpose, because they didn't know the world could be better.

And no, I'm not a fanboy, my phone is my only iThing. And no, there was no MDM or AV installed on the phone by my company that caused this lagginess.

</comment></comment><comment><USER22> "X Is Dead"

straight to the front page with this one!

I, for one, love my Google Pixel :)

</comment><comment><USER23> Seems to me the long standing "Java is slow" versus "that's an old wives tale, Java software can be as fast native" all converges right down to the evidence of Android - compared to iOS, it's slow. If Java was just as fast then this would never come up.

<comment><USER24> Java can be performant, but still typically has a huge footprint and memory profile. Others will point out that there are multiple implementations of Java, which is true, but to what adoption? IMO, the only thing propping up Java is legacy enterprise and Android. The adoption of Go, Rust, et al show that people just aren't that into VMs anymore. They had a place in the self hosted world, but in the microservice/cloud world, it's a -lot- of overhead. The same is true in smartphones...we have a huge memory use problem in Android. It may be 'performant', but it's still a resource dog.

<comment><USER25> > people just aren't that into VMs anymore

Bytecode can be translated quite well to native code. So I'm wondering if this isn't about "VMs versus native" as much as it is about "garbage collected versus unmanaged memory".

<comment><USER26> What's an example of an ahead-of-time compiler that takes bytecode and spits out native code? Can you do inline assembly for the target architecture? I heard a million time how JIT and JVM "could be" just as fast (or some claim faster) than AOT but in practice it hasn't happened. High performance code is written in AOT/native languages.

<comment><USER27> >What's an example of an ahead-of-time compiler that takes bytecode and spits out native code?

I believe that is how .NET works (the byte code gets distributed, and the user compiles it to native immidietly before execution).

Also, Android's ART is the replacement for Dalvik that compiles Dalvik bytecode into native code at installation.

<comment><USER16> Actually, ART is now "JIT guided AOT." The JIT will (re)compile code as needed but the JIT code is stored to disk, thus creating an AOT binary on future runs.</comment></comment></comment></comment></comment></comment>


How to Explain ADHD [video] - <AUTHOR> https://www.youtube.com/watch?v=jhcn1_qsYmg <comment><AUTHOR> Of particular interest to folks here may be the links and citations in the video description.</comment>


Phusion Passenger 4.0 Release Candidate 6 - <AUTHOR> http://blog.phusion.nl/2013/04/09/phusion-passenger-4-0-release-candidate-6/#.UWQSq3xIdd4.hackernews <comment><USER2> Just like the first release of Passenger, I am very impressed and can't wait to try out these new features. Kudos to Phusion for providing such great software.

</comment><comment><USER3> Would you consider this an alternative to Google App Engine? (except that it's focused on Rails instead of Python/Java/Go)

<comment><USER4> No. Phusion Passenger is software. Google App Engine is a PaaS.

</comment></comment><comment><USER5> So I'm curious, what does this really do? A wrapper container around nginx/apache?

<comment><USER4> Phusion Passenger is an application server that supports Python (WSGI) and Ruby (Rack). It does not wrap around Nginx and Apache, it _integrates_ into Nginx and Apache. From a user's point of view, it behaves like an Apache/Nginx module, i.e.:

1\. You configure it through the web server.

2\. Everything you need is started along with the web server, and shut down along with the web server. You don't need to start any external components and hook them into the web server. Compared to many other alternatives, this reduces the amount of moving parts and makes administration easier.

Technically, it runs a lot of stuff outside the web server's address space for stability reasons. All your actual apps do not run inside the web server, but in their own processes. It uses a lot of Unix technologies under the hood to make things stable and robust, though it hides all that from the user. The philosophy is that software should Just Work(tm) and that everything should be as easy as possible for the user, even if that means Phusion Passenger's own authors have to write tons of code to make it so.

Here are some of the things it does for your web app:

\- It manages your processes: starts them when needed, shuts them down when not needed, restarts them when any crashed. This way you don't have to setup process supervision systems like Monit, God, Daemontools, etc for your apps.

\- It manages your sockets in a smart way. It buffers requests and responses in order to protect you from slow clients and other network issues.

\- It provides easy security by running your apps as the right user, so that you don't have to setup su/sudo scripts.

\- It manages your resources. It limits the number of processes to prevent your system from running out of memory. It can automatically adjust the number of processes based on traffic, so that an app is only active when it's actually being used.

<comment><USER6> Well, the Passenger rubygem does sort of "wrap" nginx too, since it will compile and install nginx with Passenger enabled into a gem path and provides a command to start/stop that specific app server without needing to configure nginx.

<comment><USER4> You are talking about Phusion Passenger Standalone. That is a third mode, which kind of behaves like it wraps Nginx.

First first two modes, Phusion Passenger for Apache and Phusion Passenger for Nginx, behave like Apache/Nginx modules.</comment></comment></comment></comment>


Profitable & Proud: Shopify - <AUTHOR> http://37signals.com/svn/posts/2378-profitable-proud-shopify

<comment><USER2> Not to be a stickler, but the series plainly says "'Profitable and proud' is a Signal vs. Noise series that profiles companies that have $1MM+ in revenues, didn't take VC, and are profitable..."

And here, in just the second post of the series, a company states "taking this investment from John H. Phillips was probably the best decision we ever made. Apart from allowing us to meet payroll for the first year..."

That's not exactly "didn't take VC".

<comment><USER3> This update was just posted to our blog:

This was originally posted as part of our "Profitable & Proud" series but commenters rightly pointed out that Shopify's angel investor broke the "no funding" rule that is part of the series. We'll leave the interview up but we're removing it from the P&P series. We're sorry about confusing our readers and Shopify (we are the ones who originally approached them about participating). Thanks to all who pointed out the error and stay tuned for another P&P profile that does fit the bill.

<comment><USER4> This is an odd decision. The Shopify story seems to be consistent with both the letter and spirit of the P&P series.

It's consistent with the literal interpretation of the rules because they state "didn't take VC" and not "didn't take funding".

*See my earlier post in this thread to see why I think it's also consistent with the spirit of the P&P series.

<comment><USER5> The key is that we want companies for this series that are bootstrapped. Companies that didn't take outside funding to run operations, but either put in their own money or didn't go full-time until they were profitable.

Shopify is still a great story and we're leaving it up. It just didn't fit the narrow criteria of the category we created.

<comment><USER6> The fact that you couldn't easily tell whether the company fits your criteria shows that your criteria are pretty much meaningless. Is there a reason for all this, besides to glorify your own company, which fits the criteria? "Ideology" is the word that comes to mind. You create arbitrary divisions, and then drum up emotions to make it seem like people on the other side of the imaginary fence are different and unworthy.

<comment><USER7> Beyond ideology, this series can help entrepreneurs in regions where VCs are highly conservative and bootstrapping is the only way you can even take risky business decisions.

</comment></comment></comment></comment></comment></comment><comment><USER8> Their Unicorn system for paying out bonuses is a great idea: Revenue sharing across the entire staff, but distributed based upon input from the staff.

<comment><USER9> It seems like a great _idea_ and if it works in practice, great. It's the sort of idea that could cause bad feelings to fester with the wrong group of people though. [Warning: gross generalizations ahead..] Think what happens when grumpy-but-reliable "server guy" doesn't ever get any bonuses because people don't understand what he does while "pretty girl on reception who buys candy bars for everyone on Thursday" does OK, etc.

<comment><USER10> This would be less of an issue with a smaller team like Shopify. As you get bigger you're right, it starts to become a popularity contest. At < 30 employees though, everyone knows who is making real contributions.

<comment><AUTHOR> I'll let you know soon. We are over 30 people already ( 2 people started since the interview ).

The point of the system is that for a bonus system to work well the people who give the bonuses need to know about the individual people's contributions. From the company perspective, people who are very helpful to other employees are very valuable and Unicorn rewards this. People who finish big and hard projects are obviously valuable to the entire company and Unicorn rewards this. People who may be solid but are grumpy and don't like to show off their accomplishments... well... If they leave over unicorn and end up being replaced with people who do the things that are rewarded by the system then I'm happy with this outcome.

So far it's been a huge surprise to see where the money goes in Unicorn and I'm thrilled with it.

<comment><USER9> _People who may be solid but are grumpy and don't like to show off their accomplishments... well... If they leave over unicorn and end up being replaced with people who do the things that are rewarded by the system then I'm happy with this outcome._

Do you prefer less-talented, extroverted employees over more-talented, introverted ones?

<comment><AUTHOR> Being a (hopefully) talented introvert myself I definitely don't optimize for that :-)

I don't think it's fair to see our system so black and white. First of all, i'm sure it has problems. Probably many. However, bonus systems all have problems. The traditional top down, performance review style bonus system definitely works best for the extroverts. From what i've seen of unicorn, the people who are most rewarded are the quiet but helpful kinds.

Also, if unicorn helps to get people into the habit of sharing their accomplishments with their friends and coworkers then I think that's worth it all by itself. You have to share your accomplishments. Everyone loves to work with people who do great stuff. But if those people don't tell you about the great stuff they do then you cannot know about it and you cannot partake.

<comment><USER11> Any chance of sharing some screen shots or code on how one actually awards accomplishments? Is it like a badge system where there are a set number of achievements, or is it something like a "free form" achievement where one states how it can be solved and a way for the system to know when it has been solved? Is it something like: "Fix bug #30 and get $10"? Or is it something like: "Solve 20 bugs in one week and get $10?"

I'm just thinking of doing something similar for my own little shop too...

<comment><AUTHOR> I described it below. I think your approach would vastly overcomplicate a system like this. It's essentially a freeform money transfer system. You click on a person, you enter an amount and we have a ledger system that moves the money from your bonus budget into someone else's bonus receivables.

Originally we thought we will have to protect against bonus trading but instead we simply trust our employees as we should. If two people start trading bonuses then this may be a fireable offense.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> _sigh_ These types of companies sound like amazing places to work.

At the same time, it is somewhat depressing because they don't seem to hire non-programmers. I'd love to work in an environment like this, but do any of these awesome companies hire 30-year old MBA grads who are technical but don't program?!

<comment><USER13> What does it mean to be technical, but not to program?

<comment><USER12> Personally, it means that I have programmed in a prior life, understand web programming (rails, javascript, et al), can talk intelligently about technologies, but don't want to actually program for a living.

EDIT: Another important point - understanding the business implications of technologies. A lot of people understand the business side, or understand the technical side, but few really understand how they fit together, and how their relationship truly impacts a company.

<comment><USER13> Thank you; great answer.

</comment></comment></comment></comment><comment><USER14> "We use Ruby on Rails, we are in the ecommerce space, and we are profitable. That seems to make us a Perfect 10 in the VC world."

\-- When did Ruby on Rails become a driving factor for a VC?

<comment><AUTHOR> Almost from day one. This has probably changed now but don't forget, Shopify is one of the biggest Ruby on Rails sites on the web and I've been part of the Rails Core team since it's inception (until recently).

Rails stood for something new, it was a paradigm shift of sorts. That's what every VC in the world looks for.

The VCs who correctly predict which technologies fuel innovations always do very well. See Peter Fenton of Benchmark to illustrate the point at hand.

<comment><USER15> Do you mean the spotify.com frontpage or the content loaded in the Spotify app ?

</comment></comment></comment><comment><USER16> It's worth noting that Shopify totally reevaluated their model and changed not only their prices, but what they charge their customers for, well after launching and becoming quite popular.

I think the how and why of that decision and process would be really interesting to HN readers trying to put a price on their own product(s).

<comment><AUTHOR> Oh boy. Changing our business model was one of the worst days of my life. I recently relived that day when I saw the ZenDesk thing unfold. Luckily we had grandfathered all our customers when we did the big switch. The problem was that our old system was setup so that Shopify was very cheap for people who weren't successful and became quickly expensive for people who actually sold a lot of product. Everyone who expected to setup a 1M revenue store ( e.g. everyone ) picked up a calculator and realized that.

Once we changed to more of a subscription model for our pricing we ended up getting a lot more customers who build successful businesses. Even though in reality our product became somewhat more expensive overall.

</comment></comment><comment><USER17> Humorous to see a HN front page article bash Yahoo Stores. (IIRC, PG's well- known essay on why he loves Lisp talks a lot about building what would become Yahoo Stores.)

<comment><AUTHOR> Yahoo stores was a great product for as long as Paul worked on it.

</comment></comment><comment><USER18> One of the reasons for Shopify's initial popularity was their plan that only charged a transaction fee. No setup or monthly fees. They quickly abandoned that and now all programs have a monthly fee.</comment>


Show HN: Sixel-tmux, display graphics because it does not eat escape sequences - <AUTHOR> https://github.com/csdvrx/sixel-tmux <comment><AUTHOR> Following the discussion on ET, here is my current work on a tmux fork to focus on accurate rendering of graphics (ANSI and sixels)

My main goal is to be able to use sixel-gnuplot (a simple recompilation of gnuplot with the sixel backend enabled: [https://github.com/csdvrx/sixel- gnuplot](https://github.com/csdvrx/sixel-gnuplot) ) on both remote and local hosts, in split windows.

A few issues remain to do that, but it already works in horizontal split windows after 2 days: [https://github.com/csdvrx/sixel-tmux/blob/master/sixel- tmux....](https://github.com/csdvrx/sixel-tmux/blob/master/sixel-tmux.jpg)

You can recompile the source within msys2 on Windows 10; I also provide a binary on [https://github.com/csdvrx/sixel-tmux/raw/master/sixel- tmux.e...](https://github.com/csdvrx/sixel-tmux/raw/master/sixel-tmux.exe)

<comment><USER2> I took a look at this but at the moment you are just commenting out the bits that stop tmux sending SIXEL to the outside terminal, so there is still a lot of work to do for proper SIXEL support:

\- You don't check if the terminal outside even supports SIXEL. A major tmux design feature is that it avoids sending output to a terminal if it doesn't know it will understand it.

\- What if there are two clients attached, one in a terminal with SIXEL, one without? Does it need to draw an ASCII placeholder?

\- The SIXEL image needs to be saved so it can be redrawn if needed (current window is changed, detach/attach, scrolling into history etc).

\- If the SIXEL image is scrolled partly off the terminal or the window pans so it is partly off the terminal, the image needs to be cropped to the right size and drawn at the right place.

\- The problems with the timer and large DCS, just turning this off is bringing back the problems with fast output it is intended to solve. A better solution would be to only disable these while a DCS sequence is in progress.

If you get it working with these addressed I would be open to merging it into tmux itself.

<comment><USER2> An achievable option in the short term would be to do the following:

1) Fix the DCS issue as I suggested.

2) Check if the terminal supports SIXEL (there is a code in DA or DA2, or perhaps we need a flag).

3) If the terminal supports SIXEL, pass it through, if it doesn't then ignore it.

This would allow SIXEL to display on output although it would be corrupted as soon as tmux redraws. It would be a start however and could be added to tmux immediately.

<comment><USER3> You can try this:

[https://gist.githubusercontent.com/nicm/9acc00b67035b5f2b8a8...](https://gist.githubusercontent.com/nicm/9acc00b67035b5f2b8a81ec11c197b15/raw/e8f0c259f8b8146670a331f4aac544d0787e9152/gistfile1.txt)

Which does the basics of this:

\- Bump the sequence timeout to 5 seconds instead of 100 ms for more time for SIXEL images but still not let the terminal hang forever. This could be made more sophisticated perhaps.

\- Check the code in DA for SIXEL support and also check a terminfo(5) extension flag Sxl.

\- Recognise SIXEL sequences and pass them through (like the 'tmux' passthrough escape sequence) and copy them to the attached outside terminals if they support SIXEL (DA or Sxl set).

I didn't try to disable the terminal-can't-keep-up code during DCS, that is more complicated because some panes may be inside DCS and some may not. I only have a small test SIXEL image so I would need a larger one that demonstrates the problem to look at that.

I probably won't move this any further forward unless someone tests this, but it may be a good start for further work on SIXEL.

<comment><AUTHOR> Interesting, I will have a look and test it, thanks!

For images to test, on debian I recommend you install libsixel. You can then just use img2sixel to convert a jpg to sixel. Alternatively, install gnuplot- nox and:

export GNUTERM="sixelgd size 1280,720 truecolor font arial 16"

then you can test with various screen resolution and sizes, like:

echo plot sin(x) |gnuplot

Yes, my approach does not solves all problems. It is just a quick and dirty fix to show sixels in the current window because I use gnuplot very intensively on remote hosts. As soon as I switch to another pane, the output is lost. But I use plots mostly to get a quick idea of how things are going, every few minutes or hours.

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

1\. yes I do not check for sixel capacity. My approach is that any sequence I do not know about should be left as is, because it may have been made for a good reason, and there will always be newer sequences and terminals I don't know about. For graphics such as sixels, your approach to check for sixel capability might be better as they will need to be redrawn

2\. what to do if there are 2 terminals attached is linked to #1. I would by default output the same sequence, because I do not touch what I do not know! If you are checking capabilities, it may be best to show an empty block of the same size at the place where the sixel output would be (a placeholder). Another option would be to use a converter like libcaca to turn the sixel into a rough ascii rendition. It would add a dependency to tmux, but also add a feature for terminals that can't keep up, here because they don't know how to interpret sixel

3\. and 4. saving the sixel image is what mlterm does. You could save the .six files in ~/tmux/%PID%WIN%PANE

If you want to be consistent with text lines, you could keep all images until the text line after the sixel image is thrown out of the history.

<comment><USER2> You can try the sixel branch in tmux - the top of the branch does some conversion and scaling (currently fits image to the pane and scales to the terminal xpixel/ypixel) so it might interfere too much but if you just took b34111b3 and d2e3f3c1 you would have plain passthrough (I might make a separate branch for that actually).

There is still a lot of work to do, I haven't decided if the best option would be to store all images in a big list and draw them separately when needed, or whether to mark the cells they cover and draw the SIXEL when the cell is drawn. SIXEL seems to have some strange behaviours and xterm seems to have a few bugs so I'm not sure how close to emulate everything - it might be better just to do it a sensible way. I don't think many applications will rely on being able to draw on top of SIXELs or have partial characters appear underneath.

I couldn't get img2sixel to generate the right colours, but convert from ImageMagick worked.</comment></comment></comment></comment></comment></comment>


Do What You Love - by Tom Kelley - <AUTHOR> http://blog.sokanu.com/do-what-you-love-by-tom-kelley

<comment><USER2> " _In the pursuit of self-discovery, Kelley suggests keeping a laboratory notebook tracking the happiest moments in life to discover our own true passions._ "

Smart idea - we often assume we know ourselves and motivations better than we actually do. Keeping one of those little pocket cahier Moleskines around to jot down any loose ideas you have is just a good idea in general, it's a way to see what background tasks your parallel processing right brain has been working on while the left brain has been cranking through the work that pays the bills.</comment>


Suspect shot, in custody at LAX after TSA agent fired upon - <AUTHOR> http://www.cnn.com/2013/11/01/us/lax-gunfire/index.html?hpt=hp_t1 <comment><USER2> This is slightly off-kilter, but,

Can anyone who was there verify the "stampede" or "mayhem"? I'm really curious about the actual truth of how crowds of people react to imminent danger; I keep hearing one thing about how people go nuts and another about how this is completely untrue.

<comment><USER3> I haven't found very much for verification overall, but this Fox Sports columnist seems to have been tweeting live from within. [https://twitter.com/foxsportsreiter](https://twitter.com/foxsportsreiter)

<comment><USER2> Yeah, the problem with the theory is that media personalities are specifically problematic. =/

</comment></comment></comment><comment><USER4> I still wish people would not refer to TSA employees as "officers", they don't have peace officer status they don't have any law enforcement training. Call them employees.

[1] [http://thehill.com/blogs/floor-action/house/198357-house- gop...](http://thehill.com/blogs/floor-action/house/198357-house-gop-looks-to- strip-tsa-screeners-of-officer-title)

</comment><comment><USER5> My google-fu (or maybe just my patience) doesn't seem to be good enough to find it but does anyone know where one might find a list of all incidents of this type? As in all airport shootings?</comment>


Trump's FCC: Tom Wheeler to be replaced, set-top box reform could be dead - <AUTHOR> http://arstechnica.com/tech-policy/2016/11/trumps-fcc-tom-wheeler-to-be-replaced-set-top-box-reform-could-be-dead/ <comment><USER3> Just kill me now: "Top down power grab" my ass. The one guy punching up for consumers is gonna be out, I didn't even realize that... Dark days for internet in the US.

<comment><USER4> The subtitle of the article is: "Democrats' last-minute rulemakings could be easily reversed once GOP takes over."

That's the problem with executive rule making - changes in the executive lead to changes to the rules. If the rule was not made by consensus, why expect its repeal to be by consensus either?

<comment><USER5> Agreed. Whenever President Obama would make an "end-run around Congress" by signing a new Executive Order, _nobody_ should have been cheering it because each EO can be easily nullified by a successor.

Consensus is neither easy nor guaranteed to generate a result that makes all parties equally happy. But it _is_ more likely to prevent radical changes in the future.

</comment></comment></comment><comment><USER6> I wonder if Trump supporters will care iF he really does appoint FCC chair in favor of big business over citizens?

Do the majority of Americans even know what the FCC is or does?

<comment><USER7> The majority of Americans see free data for streaming video and music from a carrier's partner as a feature.

They look no further into it

</comment></comment><comment><USER8> Who cares if set top box reform dies? Government worrying about cable settop boxes in the age of streaming boxes and services like SlingTV is as silly as worrying about desktop browser monopolies in the age of mobile.

I have six tvs all with some type of streaming box and all of my video comes over the internet. I would have had to pay $60/month for set top boxes if I had go with cable. I pay $50 a month for Sling, Hulu and Netflix and I have Amazon Prime.

The market is working.

<comment><USER9> Those streaming devices won't help much if the FCC doesn't stop your <local monopoly ISP> from kneecapping Netflix, Amazon, etc by trying to profit both ways... we all know the rest of the net neutrality speech.

Interesting times ahead.

<comment><USER8> Luckily, I had two choices for unlimited high speed internet - <USER2> business - $120 for 50/10 - and AT&T Gigapower (1000/1000) for $70/month.

With Google still nipping at AT&Ts heel in my area, hopefully it will keep everyone honest.

</comment></comment></comment><comment><USER10> To many important civil service positions are at the whim of the president all bar the cabinet and SPADS (Special Advisors) etc should be career civil servant. It would alos clean out the swamp to use his phrase.

The recent clusterF with the FBI is another example of a political place man failing grossly</comment>


A new wave of startups that rewards the individuals generating value - <AUTHOR> http://www.nytimes.com/2016/07/21/business/smallbusiness/a-new-wrinkle-in-the-gig-economy-workers-get-most-of-the-money.html <comment><USER3> The example is a co-op comprised of professional photographers. According to the article, the co-op screened out over 90% of applicants. I suspect that selling stock photography on the web is not most of the accepted applicants main gig.

These aren't people waiting in line for another person's sushi or drycleaning. The article's title is a bit misleading. This is a niche in the world of professional photographers that doesn't really generalize to the scale of an "economy".

<comment><USER4> the article evidences a situation that COULD becomes a pattern, and a pattern that improves the gig economy. I don't think the title is misleading, but your judgment is. The same can happen in every "gig economy" platform, like online transportation (with local taxi unions owning the app) or a neighborhood managing it's own home renting app. This would be a lot safer, wouldn't? :)

<comment><USER5> This could be a dumb question, but is there anything stopping a large startup like Uber from being more generous with the cut its drivers get? How is it more feasible for a small company to do this?

<comment><USER6> Some numbers: Uber charges riders $0.18 per minute and $1 per mile. They take a 20% cut (plus the whole of the $1 base-fare). Drivers estimate that they spend 20% of what remains on tax and vehicle costs.

That's not an enormous margin, but it's large. Uber is still expanding rapidly in driver count, in geographic range, and in product range. That takes quite a bit of money, especially the geographic range - Uber runs pretty vigorous ad and lobbying campaigns to influence regulators and oppose taxi agencies.

 _Fasten_ is a startup whose entire business model is "Uber but better for drivers". They advertise to consumers that they take a smaller cut, and hope to attract more drivers with their better rates. My guess is that Uber will crush or acquire them after dropping prices (or raising driver share) in the relevant markets.

So I think the answer is: Uber could do this, but it would slow their growth. Once they're an entrenched player in most markets, I would expect to see driver share (and possibly rates) rise a bit to maintain supply, but right now they're funneling everything they can into expansion.

(And, I'm sure, panting at the thought of using self-driving cars to turn that 80% into profit.)

<comment><USER7> 20% of what remains on tax and vehicle costs?

FICA alone for a self employed person is 15% (although it's a bit lower in effect b/c of deductions). Add in state and federal income tax, fuel, maintenance, and vehicle depreciation, and you're talking _way_ more than 20%.

<comment><USER6> Yeah... I was honestly confused by those numbers, but I'm citing self-report by Uber drivers (there are a _lot_ of forums online discussing these issues).

They reported 10% on tax and 10% on fuel/maintenance. If you live somewhere with cheap gas, and don't count depreciation, then that 10% is plausible (obviously depreciation matters, but I think they didn't count it).

The 10% on tax is odd. Possibly it's about the self-employment premium (i.e. "How much of my earnings do I lose for driving Uber instead of working McDonalds?") Or possibly it's after EITC and other balancing factors - if Uber driving is your only career you aren't likely to be in a high tax bracket.

<comment><USER7> It's possible they really are paying 10% of their total paycheck in taxes after the EITC, but only if they are making very little money and have children.

The other possibility that I didn't think of is that it's 10% of their total paycheck because they spend half of their paycheck on deductible expenses, but that doesn't mesh with the 10% expenses section.

I think the most likely explanation is that the drivers you're talking about are underestimating taxes due. They have to pay themselves since there's no withholding, and it usually takes years before underpaying taxes catches up with you.

And yeah vehicle depreciation is a big expense. It's probably more than 1/3 of total pay if a driver is actually making a small enough income to have a 10% tax rate.

I've heard many Uber drivers who say they are making almost nothing after expenses including vehicle depreciation.

<comment><USER6> This seems like a good summary.

It's worth remembering that a lot of Uber drivers are making relatively little money. Some are students, some are part-timers, but no matter what Uber ROI drops off more aggressively than most jobs (you work surge times, then constant-demand times, then your rates collapse).

I definitely have the sense that Uber's current model isn't sustainable - <USER2> money looks good because they constantly bring on new drivers who underestimate tax and depreciation, and count their salary in weekly-paycheck terms. I suspect that either they'll become more generous once they're spending less on regulation/campaigning, or something else will fall apart.

<comment><USER8> It may be sound for part-time drivers. If they are people that need the cars for other activities, depreciation is a sunk cost, and should not be taken into account.

But that does not make the basis for a sound self-driving fleet.

<comment><USER7> Depreciation is also a function of mileage.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> This isn't the "gig economy" as that phrase is traditionally understood, it's an artist's cooperative.

Workers only get most of the money in a co-op because they're co-owners. By contrast, most "gig economy" situations involve a VC-funded middleman trying to create a dominant position in a two-sided market so they can make most of the money.

</comment><comment><USER10> The tiered share classes is the key here. A cooperative is great and all, but who puts up the money to start it and market it at first? Those people will get paid first

<comment><USER11> That is the same question i am thinking about. I have a small software shop in NYC. One of our clients suggested a co-op model. Im thinking using the example in this article and apply to software. Building apps. Design. UX. I have a local talent pool who i work with on a gig based set up. I get a gig ,set up the team , take down the project , move to the next. I am now thinking if this guy gives me money for the co-op idea and how much THEN figure the structure. From the article, it's what's known as a multi-stakeholder cooperative, with three classes of shares: one for executives, one for staff and a third class for providers. thoughts?

<comment><USER12> I'm a little uncomfortable with the executive class of stock ownership there. How do they maintain their accountability to the other two classes? How are voting and profit options arranged?

Anyway, you might do well to look at how the Mondragon Cooperatives structure their worker ownership schemes. They have a seniority model, where member- owners pay into a capital account when they join. Capital accounts accrue interest at the same rate (the percentage of profits distributed as dividends), but because older accounts have larger balances, they grab a larger share of the dividend. By the same token, workers adjudged to bring greater value to the company have larger initial capital accounts than the guy at the loading dock.

In lieu of an executive class of shares (which is sure to cause grumbling one day), why not give the individuals taking the initial risk a larger initial capital account (i.e. share of the financial pie)? That way, you retain a single class of stock, remain accountable to your peers, yet retain a portion of any future profits commensurate with the initial risk you took?

<comment><USER11> I looked them up: [https://en.wikipedia.org/wiki/Mondragon_Corporation](https://en.wikipedia.org/wiki/Mondragon_Corporation) I just dont know who sets this up in accordance with laws in New York State ( a lawyer i'd imagine ,duhh. lol) but the nitty / gritty details, like mapping value to capital etc... This model is VERY interesting and I believe the main 3 guys can pay into the initial capital account from a large project we are starting in September. If you don't mind i'd love to talk more via email. thoughts?

<comment><USER12> Absolutely. Hit me up. I can also try to put you in contact with more knowledgeable people.

<comment><USER11> gimme your contact info... mine is in my profile

</comment></comment></comment></comment></comment></comment><comment><USER13> Lots of conjecture and few facts in this article.

</comment><comment><USER14> It would nice to see this sort of thing extended to other sectors, Upwork strikes me as an ideal candidate.

<comment><USER15> Burgeoning sector in the gig economy: picking up other people's dog poop. [http://pooperapp.com/](http://pooperapp.com/)

(Seems ripe for a Augmented Reality / Pokemon Go integration.)

<comment><USER16> That must be a joke, like the site looks legit, but it has to be a joke..... right?....

</comment></comment></comment><comment><USER17> Our site ([https://motionarray.com](https://motionarray.com)) does things differently. We take the entire site's earnings each month and distribute 50% to all of our producers based on their products' download percentages.

For example, if one producer somehow managed to have only their products downloaded for the month, they would take home the entire 50% of the site's earnings.

<comment><USER18> You charge producers FIFTY PERCENT to create content for your website? This is what is wrong with the 'Gig Economy' \- you charge too damn much with out providing value yourself or to the sellers. What do you provide for the 50% you are charging? It sure is not web design or marketing - I looked at your website and it looks like you just bought it from ThemeForest.

<comment><USER17> I'm not going to waste my time with responding to this. You obviously haven't a clue or an eye for design for that matter.

<comment><USER19> Not even Google/Apple take such a large cut and they catually provide more value to their value-creators and they also don't try to sell themselves as altruistic

<comment><USER17> We're actually very competitive:

[https://themeforest.net/become-an-author](https://themeforest.net/become-an- author) [https://www.pond5.com/sell-stock-footage](https://www.pond5.com/sell- stock-footage) [http://www.istockphoto.com/sell-stock- photos.php](http://www.istockphoto.com/sell-stock-photos.php)

</comment></comment></comment></comment></comment><comment><USER20> This is something I've been thinking about a lot recently. I'd read this as the creators being compensated directly from the market place. There are so many industries where the creators of something are very much removed from the market place, so much so that there are many middle players that make more money than the original creators.

</comment><comment><USER21> Since when do individuals in the "gig economy" not receive most of the rewards? AFAIK, companies like Uber take a small cut of the far, not the other way around.

<comment><USER22> They take 25%+ of gross which is pretty high. And that's because they are burning billions of equity trying to capture the market. I wonder what happens when they want to start making real money.

</comment></comment><comment><USER23> This may be relevant: [http://m.youtube.com/watch?v=xzYgiOC9cj4](http://m.youtube.com/watch?v=xzYgiOC9cj4)

</comment><comment><USER24> What the article described is good old fashion socialism. Employee ownership is an old idea. The intellectual laziness in this article is astounding.

</comment><comment><USER25> Nice submarine ad.

</comment><comment><USER26> We changed the misleading title to a more representative sentence from the article. If anybody suggests a better (i.e. more accurate and neutral) title, we can change it again.

<comment><USER27> What's the opposition to sticking with the actual titles chosen by the authors?

<comment><USER26> For the most part that's just what we do, but the important exceptions are when a title is misleading and/or linkbait. This is in the HN guidelines: [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html).

</comment></comment></comment><comment><USER28> Oops, this wasn't meant to be a top level comment.

<comment><USER26> OK, we've moved your comment ([https://news.ycombinator.com/item?id=12137751](https://news.ycombinator.com/item?id=12137751)) to the parent comment you were quoting from, and will detach this one so it doesn't distract from the discussion.</comment></comment>


With Sync Solved, Dropbox Squares Off With Apple's iCloud - <AUTHOR> http://www.wired.com/epicenter/2011/12/backdrop-dropbox/

<comment><USER2> Neither of them really "solve" sync. It's still a problem for complex applications but it works for say, 80% of the solutions.

Anyways I use both and to me they aren't really competitors. Apple doesn't allow stuff like Dropbox to have tight integration with IOS - the biggest value iCloud provides is stuff like Photo syncing, which they aren't even good at.

Funnily enough, what I do is enable iCloud photostream, then store my iPhoto library in Dropbox. The idea is that whenever I take a photo on my iPhone it gets seamlessly synced AND backed up automatically OTA.

<comment><USER3> People solve sync and make judgements (right or wrong).

That's why version control with full history is infinitely better than sync solutions for file management.

</comment></comment><comment><USER4> I love Dropbox and use it on all my devices. However, I really wish they would implement permissions on shared folders. It's one of the two most requested features that users want, but they still won't implement it [<https://www.dropbox.com/votebox>].

As soon as someone comes along that has integrates as seamlessly on my Windows PC, Linux PC and Android phone AND offers permissions on shared folders I will jump ship.

I don't know why, but it actually makes me cross that they aren't listening to their user-base.

<comment><USER5> I know at least Egnyte (<https://www.egnyte.com/>) offers folder permissions, and has clients on Windows, Mac, Android, iPhone and iPad. The Linux client is available on some NAS devices and also as a VMWare appliance.

Disclaimer: I work for Egnyte.

<comment><USER4> Thanks, I'll look into it. Although, am I right in assuming that you don't offer a Linux desktop client?

<comment><USER5> Right, no Linux desktop client at the moment. I don't think it would be especially difficult to make one, but we'd need enough demand to make the investment.

But having said that, we do provide WebDAV API. Every modern OS I know of, including Linux, can mount a file system over WebDAV. It is not very efficient, and doesn't have all the features you would get with a client, but at least you have access to your files.

Some people actually prefer to use only WebDAV, because that way as soon as you cut network connectivity the files are not accessible (security feature).

</comment></comment></comment></comment><comment><USER6> Reading these stories is a bit depressing. Coding since 5? Solving problems with Finder even Apple couldn't figure out? Is this really the level of technical accumen needed to make it in the startup world?</comment>


Pick a Number Between 1 and 99 - <AUTHOR> http://blog.matthen.com/post/8554780863/pick-a-number-between-1-and-99-write-it-as-a

<comment><USER2> out of curiousity:

      require 'numbers_and_words'

      def convert(locale, numbers)
        I18n.with_locale locale do
          numbers.map { |i| i.to_words.length }
        end
      end

      def eliminate(locale, numbers = (1..99).to_a)
        eliminated = convert(locale, numbers).uniq
        if (numbers - eliminated).empty?
          eliminated
        else
          eliminate(locale, eliminated)
        end
      end

      %i[en es ru fr ua hu lt lv et tr de it nl se].each do |locale|
        print "#{locale}: #{eliminate(locale).join ', '}\n"
      end

results:

      en: 4
      es: 4, 6, 5
      ru: 6, 3, 5, 4, 11
      fr: 3, 5, 4, 6
      ua: 5, 3
      hu: 5, 2, 4
      lt: 4, 2, 6, 5, 7
      lv: 5, 7, 11
      et: 4
      tr: 2, 3, 4
      de: 4
      it: 3
      nl: 4
      se: 3, 4

so if i'm not mistaken 4 is four letters long on most of these languages, but you can see there are some other destinations on other languages</comment>


Ask HN: Need help with distributed application infrastucture design - <AUTHOR> Hey HN,
I hope some smart brains here can lead me to the right direction. I am looking for a simple yet robust data replication and transfering mechanism for a web application i am writing.
The main things i need:
1) Replicate login & configuration data to X nodes (email servers)
2) Count emails by status (dropped, forwarded, ...) [statistics]
3) Save (some) emails back to the Web application [logging]
4) 2 & 3 are A LOT of data. It must be able to handle that without losing any
The guys from the postgres IRC made me realize that multimaster is not only overkill (and many people are afraid of running them) but also simply not the right solution.
1) is easy using Postgres master slave replication
2 & 3 however are not so easy in my head. And 4 is kind of out my knowledge scope.
I've thought about the following 3 implementations:
a) Doing a Master-Master replication. Having the secondary master doing the hard work. Like replicating to others, plus receiving statistics (directly over network). I am not sure how smart it is to use the same database, even more in such a approach.
b) Doing statistics (and most likely also the email logs) in a seperate database, that provides a thin API my application can query & cache. Statistics are everywhere in my interface, so i would likely still replicate/cache the relevant data back to my main application. But the heavy writing does not directly impact my web application.
c) Maybe using something like logstash to handle the information load and drip the relevant info out into the web applications database.
I realize this topic is just hard, however i feel like i am missing something obvious. <comment><USER2> I don't have any specific experience with emails but any time I need to move a lot of data around I go with Apache Kafka and Apache Flume.

Write all of your emails into a kafka topic from your webapp. Read from the topic to do processing. Use flume to sync results back to your webapp db.

1) For this I would probably use something like Chef/Ansible but I don't know the first thing about configuring email servers. You could have something that wakes up, reads the latest config off a topic, and then applies that config via a config management tool.

2) You can throw Apache Spark on to the kafka stream to calculate these aggregations.

3) Flume can read the emails and then save them back to wherever you need (this is typically s3/postgres for me). Flume can scale out over the kafka topic naturally using the same consumer group id.

I like this approach because you can scale it cheaply and easily by starting with kinesis streams instead of kafka if you don't have the ops resources to run kafka and running spark in stand alone mode until you need a cluster.

With spark you can do your statistics in there (streaming over a time window or batch) and then sink them over to your stats db.

With the flume/kafka combo you can treat kafka as the "channel" and you get some nice transaction functionality out of flume that makes handling failures a breeze.

It does take some tooling/monitoring to run confidently and the whole apache "big data" ecosystem is daunting at first but its well worth it in my opinion.

<comment><AUTHOR> This sounds super interesting. I never worked with any of these, but this sounds more or less like what i need. Kudos

</comment></comment><comment><USER3> So basically, 1) is like keeping account related data in LDAP with per-MTA replicas, 2) is like collecting statistics, and 3) is like forwarding e-mail messages to another system to handle there? Did I get that correctly? And what is 4) "A LOT of data"?

<comment><AUTHOR> I was hoping it is clear enough :)

1) Is actually a Web application, but yeah #1 is kind of clear

3) Is only logging as well. So not time critical, emails are handled by the "nodes" themself. Reason i mention them outside of statistics is because statistics are just a few numbers, this is actual data and may need to be threated differently.

4) It should handle up to a few thousand emails per second.</comment></comment>


Halfempty: Fast, Parallel Testcase Minimization - <AUTHOR> https://github.com/googleprojectzero/halfempty#introducing-halfempty- <comment><USER2> This is neat! I was surprised to see that the main contribution here is parallel processing. For something like fuzzing, it seems like a very obvious optimization strategy.

Hopefully time saved results in more bugs found :)

</comment><comment><USER3> Where can I get this crashinput.gz ? :-)</comment>


Interested in service which creates automated tests in few minutes? - <AUTHOR> http://testomato.com/rxcy1

<comment><USER2> There are no details. What kind of tests? What languages? What is even being tested?

Also, without telling me anything you then expect me to tell other people about you. What am I suppose to say: here's something someone said might be interesting once we find out what it is, but to find out what it is you have to tell other people it might be interesting as well?

</comment><comment><AUTHOR> Hello - we are in a phase of project when we gather feedback and are preparing initial prototype. We'll send details to the people who expressed an interest (submitted the e-mail).

I understand that you might not want to tell other people unless you know more details. I respect that. We'll share details with you as soon as we have something ready.

</comment><comment><USER3> Without any details it sounds like vaporware.</comment>


Ask HN: Do an AMA (December 2016) - <AUTHOR> To everyone who wants to share their knowledge and help others: Do an Ask Me Anything session on HN.
HN is full of smart people. They often appear in comments, but threads get closed after a while and leave no way to reach the authors out. Let's have them here.
Suggest a topic you want to answer questions about in comments. Ask your questions to other authors. Topics uncommon to HN, like woodworking and singing, are especially welcomed. <comment><USER2> Mine: Sorry for the mundane question, but what is your system architecture like and why? Some people work on 1-tier, some on 3-tier, some on CQRS, some use a combination of things. It helps others to know what approaches people are using to solve problems.

</comment><comment><AUTHOR> My take: Economics, economic growth and development.</comment>


Show HN: Experimental Universal Translator 0.0.1 - <AUTHOR> https://evergreen-labs.com/sato.html <comment><USER2> It seems to be specifically for men. I'd edit the service description to be more inclusive. Version 0.0.2 Now translating for her, too!

<comment><AUTHOR> Done! No need for code update... it works for her too. thx for reminding.

<comment><USER2> Good stuff. I was just kidding about the grand version update to commemorate the inclusion. Probably about 100% of females that saw the old blurb will welcome the update.</comment></comment></comment>


Ask HN: Is there a script to download past 3 months of HN or top n posts? - <AUTHOR> I have a long flight ahead and this would be really helpful! I hope it doesn't affect any ToS. <comment><USER2> As far as I know, the best way to get bulk data is using the Hacker News dataset on BiqQuery: [https://cloud.google.com/bigquery/public-data/hacker- news](https://cloud.google.com/bigquery/public-data/hacker-news). It's updated daily as of earlier this year.

</comment><comment><USER3> Not quite what you asked: [https://github.com/minimaxir/get-all-hacker-news- submissions...](https://github.com/minimaxir/get-all-hacker-news-submissions- comments) source: [https://news.ycombinator.com/item?id=14337275](https://news.ycombinator.com/item?id=14337275)

search related: [https://hn.algolia.com/?query=bigquery-public- data:hacker_ne...](https://hn.algolia.com/?query=bigquery-public- data:hacker_news)

found:

[https://news.ycombinator.com/item?id=14580698](https://news.ycombinator.com/item?id=14580698) (New HN data dump available with over 14.5m entries) 7.3GB through 2017Jun)

[https://news.ycombinator.com/item?id=10440502](https://news.ycombinator.com/item?id=10440502) (Tell HN: Full Hacker News dataset now available on BigQuery)

</comment><comment><USER4> It's not a script, but you can use Algolia search bar :)

[https://hn.algolia.com/?q=&query=&sort=byPopularity&prefix&p...](https://hn.algolia.com/?q=&query=&sort=byPopularity&prefix&page=0&dateRange=custom&type=story&dateStart=1504238400&dateEnd=1512086400)</comment>


Obama goal: 98 percent of US covered by 4G broadband  - <AUTHOR> http://www.networkworld.com/news/2011/021011-obama-goal-98-percent-of.html

<comment><USER2> Is this really a pressing issue? Considering all the other shit that's going wrong with the U.S. today, does a lack of 4G broadband coverage really merit this money and attention?</comment>


Show HN: Thankadeveloper.org - <AUTHOR> http://www.thankadeveloper.org/

<comment><AUTHOR> Hi HN,

I made this site, and I'm in two minds at all whether to publicise it (further than just telling a few friends).. anyway, decided to post it here to hopefully get some feedback. It's just running on a single heroku dyno, so hopefully you don't like it that much ;)

Anyway - the idea came to me after listening to a Changelog episode on the burnout of Lee Hambley of Capistrano fame. I thought that maybe it'd be nice to enable messages of thanks to be sent to contributors to projects.

Thing is, I'm really not sure it's a good idea at all! I like the idea of it not being about money, but I wonder if people will feel obligated to respond (they shouldn't, it's supposed to be a one-way put of happy messages!). Also, the service works by pulling out commits, grabbing a committers email, and sending them the message... and people may hate that. That said, all the messages will be moderated, so nothing nasty will get through.

I dunno, what do you think? If you were a committer on a project and you got this message - would you think: "hey, that was nice", or would you think "Where the hell is this spam coming from?"

I was thinking of shutting it down before even posting this, but I thought, what the hey, I should at least see what people think!

Best, Patrick

<comment><USER2> I think it's a good idea. A lot of developers labor in obscurity for years, and never really get much credit.

<comment><AUTHOR> Glad to hear it! I guess what's holding me back is that I'm not sure if I would ever send a thank you message!! heh, I mean I do on twitter or whatever, I'm just wondering if others think it's OK or if it's an invasion of privacy (which is the last thing I'd want to be doing)

Anyway, feel free to thank your own side project - you can see what the message comes out like and retweet if you still like the idea.</comment></comment></comment>


Ask HN: What are the best resources for learning Ruby/Rails - <AUTHOR>

I'm looking to teach myself a new Web Dev language and have landed on Ruby/Rails. What are the best resources out there for learning Ruby/Rails if you are already a programmer with web experience? <comment><USER2> Michael Hartl's Ruby on Rails tutorial is a good start (look closely, there is free access online):

<http://railstutorial.org/>

It's not perfect, but it does walk you through the process of setting up a proper environment, using git for version control, and pushing to Heroku for rapid deployment. He even explains different basics and features of the Ruby language, so you can start here without learning Ruby if you so desire. Definitely complete the additional tasks at the end of each chapter as they are very helpful.

Also, I found it helpful to browse through the many open-source Rails projects you can find online, particularly on github.

</comment><comment><USER3> If you'd like to learn from a book, Agile Web Development with Rails is nice. [http://pragprog.com/titles/rails3/agile-web-development- with...](http://pragprog.com/titles/rails3/agile-web-development-with-rails- third-edition)

<comment><USER4> This book isn't coming out until late 2010, is it worth waiting or buy the 3rd edition available now?

<comment><USER5> You can buy the ebook now. I have it and it's great so far (2/3rds of the way done)

</comment></comment></comment><comment><USER6> Here's my big list from a few months ago:

<http://news.ycombinator.com/item?id=1088737>

Also, although I've only skimmed mhartl's book, it looks great and has already been updated for Rails 3: <http://railstutorial.org/book>

And for the edge rails guides (Rails 3): <http://edgeguides.rubyonrails.org/>

</comment><comment><USER7> I highly recommend <http://railscasts.com> if you haven't found it already. Great stuff ranging from beginner to pretty advanced.

</comment><comment><USER8> Not sure why you'd want to learn Ruby/Rails. Ruby has been dropping in use for a few years now, and it looks like that downward trend will accelerate.

Have you considered Python/Django?

<comment><AUTHOR> Is that really true? Most of the companies I've talked to are looking for people with Ruby/Rails experience. I've seen some looking for Python Django experience, but far less. I currently do Python dev at work. I've looked a Django, but I wasn't super impressed, but again maybe I'm just not finding the right resources for learning to work with it. Any suggestions there?</comment></comment>


Moore's Law won't kill passwords - <AUTHOR> http://www.lightbluetouchpaper.org/2013/01/17/moores-law-wont-kill-passwords/ <comment><USER2> The problem with passwords is the human element.

People pick predictable passwords. Thanks to compromises of large sets of random passwords, we know far more about how to predict passwords than we ever did in the past. That means that, given a new password database, we can crack more passwords with a shorter search.

But it gets worse. A long time ago, people interacted with very few systems with very few passwords needed. Today people interact with many systems, and most still use very few passwords. (Yes, I know all of the ways to make more passwords feasible. The fact is that people don't do that.) Therefore if you target a low security system, you frequently get access to much more worthwhile accounts on another system entirely.

Because of both problems (particularly the second), passwords alone are not sufficient for anything that actually needs reasonable security.

</comment><comment><USER3> As far as password cracking is concerned, it has a HUGE bottleneck as discussed here, <http://security.stackexchange.com/a/25392>

The only threat to safety will be the human element as btilly suggested.

<comment><USER4> Passwords are lousy. Really lousy. As you point out the problem isn't with the security of them (when properly applied) but because it's all just so klunky and annoying and different websites have different implementations.

I know at least two websites that ask for a username, a password, and they also give a capcha. I have some websites that won't let Chrome save my password.

Really, I want a hardware thing with a long secure passphrase, that has all my other usernames and passwords (12 character alpha numeric with upper and lower case) in it, that confirms my identity to all these different websites. (Can I do this with Yubikey? or anything else?)

<comment><USER3> Yubikey works well but its only valuable when more number of websites support it.

Similar project without the hardware is mozilla's persona, which is an open standard if im not wrong and it is better than signin using fb or gmail, as it wont be sharing any user data with website.

</comment></comment></comment><comment><USER5> If Moore's Law won't kill passwords, something else should. My motto for computer security is that if it's only protected by a password, it is not safe.

What the world needs is a future proof de-facto way of two factor (or more) authentication.

</comment><comment><USER6> I think the article completely misses the point. The password hashes we have _now_ are often considered to take millions of years to be bruteforced, which is a wrong assumption.

We don't really know what the future tech will be like. Most changes are evolutionary, but who knows, maybe tomorrow we'll have a quantum CPU with a trillion times more computational power.

<comment><USER7> Quantum computers don't work this way.

Solving 1024-bit key in SHA (or sth) will take as much as 512-bit key using a comparable traditional computer. So it's still hard, and will always be.

<comment><USER8> The problem is different for encryption schemes relying on hardness of integer factorization.

</comment></comment></comment><comment><USER9> It's not just a computational expense of one password hashing that has to be considered, the possibility of having the hashes precomputed can't be ignored. In such a light, we definitely have to start using longer passwords or passphrases regardless of the expense of computing one hash. Otherwise the search space is simply too small.

<comment><USER10> Pre-computed? You mean rainbow tables right? They have gone the way of the dinosaur with salts. Bcrypt has a big fat salt making it mightily impractical to use rainbow tables as the space required is so large.

<comment><USER11> Sadly, many systems for many years will still use unsalted MD5s. Rainbow tables will still have a place in the cracker's toolkit for some time.

<comment><USER12> Another problem with rainbow tables is that their size depends on the password length, and with current technology they become impractical almost as soon as brute forcing, and much sooner than smart dictionary attacks (e.g. hybrids where you take a dictionary and for each entry try every possible way to add 3 random characters).</comment></comment></comment></comment>