Chinese researchers build cell-size bots to carry drugs - <AUTHOR> http://www.zdnet.com/cn/chinese-researchers-build-cell-size-bots-to-carry-drugs-7000020698/ <comment><USER2> It seems a little bit misleading to call them "Microbots" when they are essentially tiny cages propelled by magnetic fields from outside the body.

Still excellent research though.

</comment><comment><USER3> Picture? Details? The article is a puff piece.

<comment><USER2> The article links to this:

[http://www.scmp.com/news/hong- kong/article/1308876/chinese-u...](http://www.scmp.com/news/hong- kong/article/1308876/chinese-university-scientists-build-tiny-robot-battle- human-diseases)

It gives a better idea of what they're talking about.</comment></comment>


Show HN: Guardscript – Detect any changes made to your JavaScript files - <AUTHOR> https://www.guardscript.com <comment><AUTHOR> Hey HN!

I created GuardScript because in my previous company we started to include more and more third-party Javascript from SaaS services on our homepage, and this created security risks for us [1] [2].

In order to reassure us, a few of these companies created independently what is essentially GuardScript: a service that monitors every few minutes any changes made to your Javascript files and sends you a notification with the changes made. You can then detect any malicious modification by analyzing these results.I decided to build it for a broader audience.

I'd love feedback and suggestions on how to make it better.

Thanks!

[1] [https://www.theregister.co.uk/2018/09/12/feedify_magecart_ja](https://www.theregister.co.uk/2018/09/12/feedify_magecart_ja) [2] [https://www.zdnet.com/article/hackers-breach-statcounter- to-...](https://www.zdnet.com/article/hackers-breach-statcounter-to-hijack- bitcoin-transactions-on-gate-io-exchange/)

<comment><USER2> Why wouldn't someone just detect changes to the files at the OS level?

<comment><USER3> It sounds like this is talking about 3rd party scripts included in the page. Like Google analytics and the like.

<comment><AUTHOR> Exactly.

</comment></comment></comment></comment><comment><USER4> This is good, but this won't stop the first few visitors from getting pwned. Client-side check (SRI) is still the best solution.

<comment><AUTHOR> You are right. SRI is the best solution and I mention it in the FAQ. Unfortunately, it can't always be implemented. See my previous comment :

Well many companies that offer you a service don't include the Subresource integrity Tag. Check for instance Stripe : <script src="[https://js.stripe.com/v3"></script>](https://js.stripe.com/v3"></script>) or Facebook : <script async defer src="[https://connect.facebook.net/en_US/sdk.js"></script>](https://connect.facebook.net/en_US/sdk.js"></script>)

If they offer you a javascript and it has to change frequently to fix bugs, for instance, they don't want to be bothered with having to coordinate with all their customers to change the subresource integrity tag...

In this case, our service could be an alternative.

</comment></comment><comment><USER5> > How do you detect the modifications? We compute the hashes of the files > regularly. If only one character in a file changes, his hash will change.

Does this include HTTP headers? For instance a yay.js framework that helps people print 'yay' to the console could return:

      HTTP/1.1 301 MOVED PERMANENTLY
      LOCATION: http://evil.evil/evil.js

      console.log('yay!');

<comment><AUTHOR> No it does not include the headers. Only the js file downloaded.

</comment></comment><comment><USER6> Pricing seems high to me. A sub $10/month plan that lets someone check 30 files once a day or even once a week would be useful.

Plenty of small companies have god awful Wordpress sites with a ton of insecure JavaScript files. They don't need to be checked every 10 minutes but they do need something to check.

<comment><AUTHOR> Thanks for the suggestion.

</comment></comment><comment><USER7> I get relying on 3rd party libraries, but not hosting them yourself and just hoping that the current host never gets sold/owned/etc? That sounds insane to me...

Sounds like _curl | insmod /dev/stdin_ level insane

<comment><USER8> Some 3rd party services, though, serve up libraries, e.g. disqus.

<comment><USER9> And those 3rd party libs can dynamically load other files via script tags. The first level does not even have to change for dynamically loaded scripts to change.

</comment></comment></comment><comment><USER10> Apart from the "SaaS services" (I mean, are they really services for services?), this seems to boil down to:

"We can't trust SaaS.... so we built a SaaS to alert you when the JS delivered by your SaaS changes...". So now you have to trust this SaaS to tell you that the other SaaS is still trustworthy.

<comment><USER11> That's the premise behind most security software. We can't trust the internet, so download a firewall from the internet to block traffic from the internet.

<comment><USER10> The software you download is generally signed by a party that you do trust though, and then runs locally on your computer.

And of course, that also doesn't _really_ apply if you're using an operating system that includes a firewall by default.

</comment></comment></comment><comment><USER12> Looks very cool. You have a typo in the pricing area of the page: it says "Sart Free Trial" instead of "Start Free Trial".

<comment><AUTHOR> Thank you, I have corrected it

</comment></comment><comment><USER13> Imagine an internet where instead of making this tool, people stopped including billions of third party scripts.

<comment><USER4> Imagine an operating system where instead of making this tool, people stopped including billions of third party libraries.

</comment></comment><comment><USER14> You could do this with a free serverless function on aws, why would I pay for it

<comment><USER15> To save time you'd otherwise spend writing and testing the serverless function. This applies to literally every SaaS.

<comment><USER14> This isn't particularly a hard thing to do, and the testing framework is pretty much baked into AWS. There are libraries to do this already.

You do you though.</comment></comment></comment>


Designer Quit His Day Job to Solve Knotting Problem with Your Headphones - <AUTHOR> http://webandtechs.com/2015/01/this-industrial-designer-quit-his-day-job-to-solve-your-knotting-problem-with-headphones/

<comment><AUTHOR> Title is little misleading. Actually, its about Spoolee the headphone gadget which solves the problem that your headphones kept getting knotted up.</comment>


Our new listing site,kuenzaa.com redesign - <AUTHOR> https://www.kuenzaa.com/ <comment><USER2> Good luck with the new site.</comment>


NASA Open APIs - <AUTHOR> https://api.nasa.gov/index.html <comment><AUTHOR> > _Each rover has its own set of photos stored in the database, which can be > queried separately. There are several possible queries that can be made > against the API. Photos are organized by the sol (Martian rotation or day) > on which they were taken, counting up from the rover 's landing date. A > photo taken on Curiosity's 1000th Martian sol exploring Mars, for example, > will have a sol attribute of 1000. If instead you prefer to search by the > Earth date on which a photo was taken, you can do that too._

So when do codebases for `strftime()` functions get extended to deal with extraterrestrial timezones?

<comment><USER2> Every string-formatting function must have a new prefix of "m" for Mars- safety: msprintf, mstrftime, etc. An extra int argument must be included to indicate whether to format in Martian or Earth sols. Clearly the addition of this new argument will 100% future-proof the API against any other modifications required as humanity expands into space.

<comment><USER3> Wouldn't it be better to just add an argument for which celestial body the calculation is being performed for? This would be more flexible in the future.

I guess this would work well for other bodies as well, like moons.

<comment><USER4> ...if you look up fast enough, you might just see the tail end of the joke as it passes over your head.

<comment><USER5> Talking to yourself, there?

</comment></comment></comment></comment></comment><comment><USER6> > Sounds (beta)

> Sound exists in space. Sometimes. And NASA has released a series of space > sounds via sound cloud. We have abstracted away some of the hassle in > accessing these sounds, so that developers can play with the audio files. > For example, a useful application would be an automatic filter to identify > human voices in these audio files. For now, that would help identify > content. Later, however, when we retrieve sounds from far-off planets, we > can apply the filter to identify unknown human space colonies. That was a > joke. Sort of.

[https://api.nasa.gov/api.html#sounds](https://api.nasa.gov/api.html#sounds)

<comment><USER7> The entire document is written in a pretty informal style.

</comment></comment><comment><USER8> Cool - data sets around Landsat 8, APOD, Near-earth Asteroids, Mars rover photos, the NASA patent library, even historical audio recordings. Hope they keep adding to it!

Wish they had something for the ISS for example - experiment feeds, positioning, historical activity etc - or is that found elsewhere?

<comment><USER9> There's this website ( [http://isslive.com/displays/index.html](http://isslive.com/displays/index.html) ) with amazing amounts of live data hidden behind a horrible UI.

For example, right now I can see that control gyroscope #1 is spinning at 6,601 rpm, drawing 0.67 amps, and have a vibration of 0.007Gs, with bearing temperatures of 39.1C, and 35.8C.

I looked into snarfing the data at one point, and concluded that it was doable, if a little painful.

</comment></comment><comment><USER10> Looks like they use [https://github.com/tripit/slate](https://github.com/tripit/slate)

</comment><comment><USER11> Very cool. Anyone has ideas on how this data can be used, what kind of applications can be built with this?

<comment><USER12> Hi, I just build a small Android app using the rover-photo APIs: [https://play.google.com/store/apps/details?id=com.siddharths...](https://play.google.com/store/apps/details?id=com.siddharthsrivastava.marsrovershots)</comment></comment>


The most famous loop: the Carnot Cycle - <AUTHOR> https://alexdanco.com/2020/06/19/the-most-famous-loop/ <comment><USER2> This is a false historical analogy wrongly applied to a vague case of "business loops". Neither Carnot nor Clausius defined entropy as "disorder", they defined it as a coordinate of thermal interaction since it became clear that temperature isn't a coordinate, but instead a potential. The "disorderliness" character of entropy as a thermodynamic parameter came later.

Anyone who uses entropy interchangeably with "disorder", "chaos", etc. might be interested in reading this: [https://aapt.scitation.org/doi/10.1119/1.5126822](https://aapt.scitation.org/doi/10.1119/1.5126822)

The term "disorder" is defined much less rigorously then "entropy".

> The second insight in here is that if you allow the ebb and flow of > disorder, your loop can pass between high and low potential energy states a > lot more efficiently.

Regarding these ideas of letting "chaos-entropy" prevail in your business for short period of times only to bring it back to order and use the effects of "potential energy variations" to get higher outputs... Sounds like an excerpt from a poorly written pseudo-management textbook purchased for $19.99 at an airport kiosk.

<comment> tedk-42 Without reading your article, isn't it fair to say entropy is a measurement of disorder in a system?

Higher disorder equals higher entropy. So you can kind of see how it's fair to use the terms interchangeably

<comment><USER3> No, just read the article dude.

</comment></comment></comment><comment><USER4> Just off the bat I can't help but think the citric acid cycle is probably more famous?

(Just checked google, and it has 55,000,000 results for the former, and only 3,000,000 for "Carnot cycle)

<comment><USER5> "Citric acid cycle" (and Krebs cycle) is much more common than "solar cycle" (which was my second guess), which in turn is more common than Carnot cycle, in a Google n-gram search:

[https://books.google.com/ngrams/graph?content=Carnot+cycle%2...](https://books.google.com/ngrams/graph?content=Carnot+cycle%2Ccitric+acid+cycle%2Csolar+cycle%2CKrebs+cycle%2CKrebs+cycle%2Bcitric+acid+cycle&case_insensitive=on&year_start=1800&year_end=2008&corpus=15&smoothing=3&share=&direct_url=t4%3B%2CCarnot%20cycle%3B%2Cc0%3B%2Cs0%3B%3BCarnot%20cycle%3B%2Cc0%3B%3BCarnot%20Cycle%3B%2Cc0%3B%3BCARNOT%20CYCLE%3B%2Cc0%3B.t4%3B%2Ccitric%20acid%20cycle%3B%2Cc0%3B%2Cs0%3B%3Bcitric%20acid%20cycle%3B%2Cc0%3B%3BCitric%20acid%20cycle%3B%2Cc0%3B%3BCitric%20Acid%20Cycle%3B%2Cc0%3B%3BCITRIC%20ACID%20CYCLE%3B%2Cc0%3B.t4%3B%2Csolar%20cycle%3B%2Cc0%3B%2Cs0%3B%3Bsolar%20cycle%3B%2Cc0%3B%3BSolar%20Cycle%3B%2Cc0%3B%3BSolar%20cycle%3B%2Cc0%3B%3BSOLAR%20CYCLE%3B%2Cc0%3B.t4%3B%2CKrebs%20cycle%3B%2Cc0%3B%2Cs0%3B%3BKrebs%20cycle%3B%2Cc0%3B%3BKrebs%20Cycle%3B%2Cc0%3B%3BKREBS%20CYCLE%3B%2Cc0%3B.t1%3B%2C%28Krebs%20cycle%20%2B%20citric%20acid%20cycle%29%3B%2Cc0)

</comment></comment><comment><USER6> Scientism is rampant in business thinking — especially physics envy.</comment>


Post-quantum cryptography - <AUTHOR> https://en.wikipedia.org/wiki/Post-quantum_cryptography <comment><USER2> Shameless plug: a few months back, I was going thru a coding bootcamp and for a 2-day sprint (forgive me) I wrote a simple, entirely insecure Lamport-Merkle digital signature algorithm implementation [0] in JavaScript based on the "spec" outlined in the Wiki [1].

It uses nothing but Merkle trees and SHA-256 hashes, lacks documentation and should be used by no one, but the code is pretty simple to follow [2] and I'd appreciate any and all comments/criticisms in terms of implementation, optimizations, usage requirements and API improvements:

[0] [https://github.com/sunny-g/Lamport- Merkle.js](https://github.com/sunny-g/Lamport-Merkle.js) [1] [https://en.wikipedia.org/wiki/Merkle_signature_scheme](https://en.wikipedia.org/wiki/Merkle_signature_scheme) [2] [http://blog.sunnyg.io/2014/12/13/merkle-key-trees-and- signat...](http://blog.sunnyg.io/2014/12/13/merkle-key-trees-and-signature- scheme/)

</comment><comment><USER3> By the way, this is a pretty good intro to post-quantum crypto if you are more mathy.

[http://pqcrypto.org/](http://pqcrypto.org/)

The NSA announced they will be transitioning to quantum resistant algorithm in the "not to distant future".

[https://www.nsa.gov/ia/programs/suiteb_cryptography/index.sh...](https://www.nsa.gov/ia/programs/suiteb_cryptography/index.shtml)

So this is something that may be getting a lot more press in the...not to distant future.

</comment><comment><USER4> Q: Why should we care about this? Why not deal with it when quantum computers finally start cracking existing crypto?

A:

1\. It takes time to implement new methods. Would it be acceptable for there to be a period of months or years during which we can't make credit card transactions, etc.?

2\. Coded text of messages encoded using conventional cryptographic methods can be intercepted, archived and then broken at a later date. If you make a purchase today, somebody archives the coded exchange, and a quantum computer capable of cracking the encryption used in that exchange becomes available before your credit card expires, you've got a problem. You've got an even bigger problem if you transmit information that remains sensitive for longer than your credit card info.

As a general rule, don't use conventional encryption methods to transmit information with long-term sensitivity (e.g. medical records, etc.).

<comment><USER5> > As a general rule, don't use conventional encryption methods to transmit > information with long-term sensitivity (e.g. medical records, etc.).

So what do you suggest I use _today_ , given that I have a medical record here and I need it over there?

<comment><USER6> One time pads sent via some secure service is about all I can come up with. This works provided you know who you are going to talk to and don't suddenly run out of "pad". Sounds like an awful business model. I'm sure some consultancy could sell it though.

<comment><USER7> Post-quantum crypto already exists afaik, the only issue is performance and key sizes (I guess this supposes the of quantum difficulty of certain problems).

<comment><USER8> It's not enough to have an algorithm. You need to get down to "what do these bytes mean" and "what exactly do I do with them" and have that be implemented. It's a considerably more painful process than you might think if you haven't been exposed to IETF things.

</comment></comment></comment></comment></comment><comment><USER9> I originally just told clients worried about this to use a split signature between a top classical one, NTRU, and McEliece. Was always interested in the Merkle Signatures, though, thinking they could be improved. To my delight, there's been quite a bit of progress there including unlimited signatures. I want more peer review before widespread deployment of them, though.

[https://www.schneier.com/blog/archives/2015/03/friday_squid_...](https://www.schneier.com/blog/archives/2015/03/friday_squid_bl_470.html#c6692293)

My niche, high assurance, has seen a lot of use of old, Merkle trees for memory encryption and obfuscation. A few examples.

[https://www.schneier.com/blog/archives/2014/06/friday_squid_...](https://www.schneier.com/blog/archives/2014/06/friday_squid_bl_430.html#c6672924)

Note: Merkle seems to be one of the under-appreciated cryptographers of history. His legacy might live on and get better than ever post-Quantum, though. ;)

Personally, I think this is another spot where a mini-Manhattan Project worth of brains should be put into. Specifically, finding more problems that can be turned into good, asymmetric crypto. I'm sure there's already a list of potential ones that a ridiculously hard to solve. Just need bright people thinking hard on how to leverage them for key exchange at the least.

</comment><comment><USER10> No need for an algorithm when using Steganography and Deniable Cryptography. A lot of the quantum-breakable debate pretty much ends with those two. They are in-fact bulletproof and resistant to all attempts to uncover the message, if done right, of course.

[https://en.wikipedia.org/wiki/Steganography](https://en.wikipedia.org/wiki/Steganography)

[https://en.wikipedia.org/wiki/Deniable_encryption](https://en.wikipedia.org/wiki/Deniable_encryption)

<comment><USER11> > if done right, of course

That's a pretty big if.

Do you have any examples of steganography software tha you think does it right?

</comment></comment><comment><USER12> Thing is, all these cryptography will still be beaten by phishing attacks as long as we have humans as user and password field for authentication.

</comment><comment><USER13> [https://github.com/polysome/vane](https://github.com/polysome/vane)

</comment><comment><USER14> This is really a misnomer and should be called "post-Shor cryptography".</comment>


Why Do Buses Bunch? - <AUTHOR> http://setosa.io/bus/ <comment><USER2> I enjoyed the callout to this when I was reading Google's Percolator paper a few years ago:

> The random-scanning approach requires one additional tweak: when it was > first deployed we noticed that scanning threads would tend to clump together > in a few regions of the table, effectively reducing the parallelism of the > scan. This phenomenon is commonly seen in public transportation systems > where it is known as "platooning" or "bus clumping" and occurs when a bus is > slowed down (perhaps by traffic or slow loading). Since the number of > passengers at each stop grows with time, loading delays become even worse, > further slowing the bus. Simultaneously, any bus behind the slow bus speeds > up as it needs to load fewer passengers at each stop. The result is a clump > of buses arriving simultaneously at a stop [19]. Our scanning threads > behaved analogously: a thread that was running observers slowed down while > threads "behind" it quickly skipped past the now-clean rows to clump with > the lead thread and failed to pass the lead thread because the clump of > threads overloaded tablet servers. To solve this problem, we modified our > system in a way that public transportation systems cannot: when a scanning > thread discovers that it is scanning the same row as another thread, it > chooses a new random location in the table to scan. To further the > transportation analogy, the buses (scanner threads) in our city avoid > clumping by teleporting themselves to a random stop (location in the table) > if they get too close to the bus in front of them.

From here: [https://ai.google/research/pubs/pub36726](https://ai.google/research/pubs/pub36726)

<comment><USER3> > To further the transportation analogy, the buses (scanner threads) in our > city avoid clumping by teleporting themselves to a random stop (location in > the table) if they get too close to the bus in front of them.

Subway trains do this "to regulate service" iirc is the term used on the London Underground.

Takt time[1]and Drum Buffer Rope[2]both related concepts of regulating flow through a process/system.

[1] [https://en.m.wikipedia.org/wiki/Takt_time](https://en.m.wikipedia.org/wiki/Takt_time)

[2] [https://en.m.wikipedia.org/wiki/Theory_of_constraints](https://en.m.wikipedia.org/wiki/Theory_of_constraints)

<comment><USER4> London subway trains teleport themselves?

<comment><USER5> No they don't. When you hear "to regulate the service" what they actually do in my experience is delay trains to try and introduce a more even service.

So if you have trains that are:

|--|--|--|</comment></comment></comment></comment><comment></comment><comment>|--|

Then they will delay some of the trains such that it becomes:

\---|--|--|--|</comment><comment>--|----|

i.e. reduce the speed of the lead trains to try and reduce bunching.

So generally if you hear "to regulate the service" it means you're in for a longer journey than normal.

I believe there are passing points along the tracks, I don't think they can be used to leapfrog, and there's no such thing as "express" services.

<comment><USER6> I've often felt that maybe the front bus should skip a few stops, but unfortunately, the fuller a bus is, the bigger the chance that someone has to get out at every stop, and that means people are going to get in at every stop too.

Maybe the empty rear bus should overtake the front bus, but that's not always possible.

Teleporting to a random stop would be really annoying for people who had to get out at the next stop. That's only an acceptable solution when the bus is completely empty.

<comment><USER7> When I was growing up in Calgary when buses bunched the lead bus would linger at a stop specifically so the other buses could pass and even out the ridership.

The transit system even employed this on purpose at busy times since Calgary is such a suburban city. It's fairly rare in the morning for people to need to get off until a major intersection or light rail station. Buses were sent in pairs (sometimes three) to run the same route, leapfrogging each other at every stop. If someone did ask for a stop the driver would radio ahead and the lead bus would skip the stop. Taking the bus route at a leapfrog time really did cut the journey time down significantly. The technique doesn't work quite as well coming home since you can't predict when people will need to get off.

</comment></comment></comment><comment><USER8> Would it help to have the trailing bus pass the leading bus when they bunch up?

My reasoning:

(1) As the article said, full buses move slower because more passengers means more boarding/unboarding time at stops.

(2) The lead bus is the fuller, slower one. Slower bus in front means buses get closer together.

(3) If one bus passes the other, then you have the faster bus in front and the slower one behind. They should then get further apart.

At least they should for a time. The now-leading bus is going to scoop up a lot of passengers at the next several stops and the now-trailing bus won't, so the leading bus will eventually slow down. So it's not perfectly self- balancing or anything, but maybe it would get some distance between them. More distance than not doing it.

<comment><USER9> You are forgetting people who would want to get off that stop, so this is may not be an option.

<comment><USER10> The bus in front will have more people, and more likely to stop to let people off (and on).

Meanwhile, the one following behind will be emptier, and thus less likely to need to stop, meaning it can easily pass the one in front (while that one is at a stop for entering/exiting passengers) and then itself take on more passengers at the stops ahead --- which then gradually slows it down too, but at the same time the one behind will be mostly emptying.

I'd say it is reasonably self-balancing.

<comment><USER11> Wouldn't that mean when the bus overtakes it's now taking more passengers and therefore slowing down. The bus it just overtook (which would have quite a few passengers) is now speeding up (but also having to drop off passengers, possibly even stopping at the same stops the previous bus just stopped at.

So it just adds more bunching, doesn't fix anything.

If the bus that overtakes doesn't stop at the next stop but overtakes several stops (or until a passenger needs to get off but should be rare as emptier then the bus it overtook). And then start from there.

Someone mentioned this solution but called it random teleport.

</comment></comment></comment></comment><comment><USER12> This is very common in Manhattan. Whenever I saw a full bus, I'd skip it and wait for the next one, because it was almost certainly going to come along within 5 minutes and be pleasantly uncrowded. On a busy route, it's the sensible choice.

On longer-distance commuter routes, where the scheduled times are 30-60 minutes apart, I wouldn't usually take a chance on waiting for the next one, but I even did that on occasion when a bus was particularly-overcrowded.

<comment><USER13> It's mostly been fixed in London. They used to be famous for no busses for 20 mins then 3 at once but they are now controlled by a central computer system which knows all the positions via gps and cell data.

<comment><USER14> That's fascinating. Are there any writeups on it?

<comment><USER13> [https://en.wikipedia.org/wiki/IBus_(London)](https://en.wikipedia.org/wiki/IBus_\(London\)) is part of it. Also [https://www.intelligenttransport.com/transport- articles/688/...](https://www.intelligenttransport.com/transport- articles/688/the-ibus-system-serving-as-the-backbone-for-londons-bus-network/) [http://www.eltis.org/sites/default/files/case- studies/docume...](http://www.eltis.org/sites/default/files/case- studies/documents/ibus-leaflet_3.pdf)

It's not actually clear if the de-bunching is algorithms or humans:

>Headway information, the time gap between consecutive buses, will be available to a bus driver at all times on a screen so that they can make decisions such as slowing down or speeding up to help maintain a regulated service and stop undesirable 'bunching' of buses.

<comment><USER14> Either way that's a great use of technology. AVLs and annunciators aren't exactly new technology (both exist with SF's Muni, for instance), but the MTA has definitely not used this data to avoid bunching — even in the subway.

<comment><USER13> Yeah. Sometimes when you get a bus to X it'll stop saying 'this bus terminates here' after about one stop, well short of X. When I asked the driver WTF he said it's the computer system and if they have too many empty busses going down one route they'll reallocate. There's nearly always another bus a couple of minutes behind to take you to X.

I was thinking someone could build quite a lot of the functionality into a free phone app if the drivers were willing to use it.

</comment></comment></comment></comment></comment></comment><comment><USER15> It is also worth noting that in real life passengers are not uniformly distributed through time. When school lets out, or a train arrives at the station full of transfer passengers, etc. you can get a huge burst of traffic at one stop that screws up everything.

This can have knockback effects, because if buses show up late to their terminal they have now also started their return trip late.

EDIT: edited a word

<comment><USER16> Not to be a pedant (too late), but you probably meant 'uniformly distributed' in this case.

<comment><USER17> Not pedantic at all, this is a very crucial distinction.

<comment><USER18> "Uniformly distributed" : the number of passengers is the same for every time of day

"Normally distributed": number of passengers versus time of day roughly looks like a bell-shaped curve, a Gaussian.

I hesitated writing this, pushing the pedantry up a notch, but then considered spacecraft crashing into Mars due to failure in technical communication, and recalled colleagues __with college degrees in computer "science" __who rejected the paradigm of Evolution of species as "only a theory", so here I am writing it down to remind myself of the difference between normal and uniform distributions.

Also, I worked briefly with some Ph.D. Queuing Theory people that one time.

Maybe there should be an academic discipline of "Commuter Science".

</comment></comment></comment></comment><comment><USER19> This happens all of the time in Boston, especially with the bigger bus lines. No number 1 bus for 30 minutes, then 3 or 4 of them. Regardless of the cause, it's very frustrating as a passenger from a UX standpoint.

<comment><USER20> The dreaded 66 lining up one after an other

</comment></comment><comment><USER21> It's effectively a greedy algorithm where the first occurrence takes the most time, and there are no passengers left for the second bus, so it's load time is lower, and it will catch up. It's a pretty visualization though :)

</comment><comment><USER22> Thanks for letting me relive nightmare memories of Grand Ave in Chicago! I always wondered, why couldn't the bus drivers be in communication and have the front bus just skip a couple of stops (where people are waiting) when they bunched, which was often even 3 buses!

<comment><USER23> If nobody signals to get off, buses sometimes will skip if they're bunched. I've seen it in at least three cities before. I have no idea if it's policy or if the drivers on those routes juts took matters into their own hands.

I see bunched buses on the stop right outside my work basically every day. Sometimes four from one route and another three from another parallel route all within a ~5 minute span.

Mercer in Seattle is... not great for traffic.

<comment><USER24> Not stopping when nobody signals is the point of the signal right:).

<comment><USER23> Right I mean not stopping when there's no signal _and there are people at the stop waiting to get on_.

</comment></comment></comment></comment><comment> munk-a Interesting, that simulator shows buses that are often full.

I think that's a rather rare case and know of a pretty graspable reason why lower fill buses clump up quite a bit. Assume that a stop produces a customer every minute or so, if a bus is five minutes late to the stop (lets say due to traffic) it will take a bit longer to load customers than normal adding slight amounts to its delay over time - concurrently, the bus behind it will always miss out on the customer potential that the first bus is carrying (so five people on that first stop), this will lower its loading time and cause it to gain time and run ahead of schedule - further lowering the loading time.

What can happen with longer commuterish buses is that the first bus can try and counter this effect by either pulling ahead/behind a stop and unloading passengers only, or by skipping stops if no one wishes to disembark, this shifts the load over to the later bus and can equalize the system - but this sort of thing happens all the time.

Additionally, even without that issue, buses are variable, they usually run in the same lanes as traffic and can be delayed for other reasons, high frequency (2,3,4,5 minute lines) will often have a speed deviation that exceeds the frequency, leading to the common effect of waiting six minutes for a 3 minute frequency bus.

<comment><USER25> In Seattle, where we mostly lack any sort of useable rail, it's entirely normal to have full busses, especially at rush hour. Bunching does happen and I love it because it makes my commute home quiet.

<comment> munk-a Yea uh... can you guys fix that? Metro is a godsend and Seattle suffers greatly from the lack of it - it's super annoying to try and bus to interesting parts of the city because the traffic in those areas tends to be terrible.

(I'm in vancouver now but for a while I was regularly flying in from the US and I'd usually fly to seattle and then catch the train/amtrack bus up the last leg due to the stupidly large price difference)

</comment></comment></comment><comment><USER26> See also: [https://en.wikipedia.org/wiki/Bus_bunching](https://en.wikipedia.org/wiki/Bus_bunching)

</comment><comment><USER27> Perhaps relevant previous article on same subject and discussion:

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

</comment><comment><USER28> "This bus is being held at this stop for a short while to even out gaps in the service". - Welcome to London.

</comment><comment><USER29> "Why do Buses Come in Threes"

I read this book when I was 12 which opened up my mind to the hidden maths of everyday life.

I recommend to read this book, even as adults, but HIGHLY recommend to give to children to let them read about and discover coincidences like common birthdays, fractals in nature and many others.

Author link: [http://www.robeastaway.com/books/why-do-buses-come-in- threes](http://www.robeastaway.com/books/why-do-buses-come-in-threes)

Goodreads: [https://www.goodreads.com/book/show/1225641.Why_Do_Buses_Com...](https://www.goodreads.com/book/show/1225641.Why_Do_Buses_Come_in_Threes)

(Not including Amazon link on purpose)

</comment><comment><USER30> There are several ways to avoid this.

1\. The buses have predetermined stop times, signalled by a beep. You don't get on in time, you don't get on at all. Makes the delays predictable, regardless of the number of passangers.

2\. Lines go from A to B and back, rather than in circles, so the delays cannot accumulate.

These are known and widely used. There is no reason why this should happen.

<comment><USER31> #1 is extremely non-ADA compliant but might work in countries other than the US.

</comment></comment><comment><USER32> Very nice visualization. Minor suggestion... I would put a [Delay] button on each bus - to avoid the explanation.

<comment> munk-a It'd also be nice with a capacity slider, the flow of buses will vary differently if they average a lower fill rate.

</comment></comment><comment><USER33> MTA has this interesting animation to explain the same problem, but in the context of subway.

[https://www.youtube.com/watch?v=eShtZSx4kWc](https://www.youtube.com/watch?v=eShtZSx4kWc)

<comment><USER34> The NYT also did a good visualizition about subway delays [https://www.nytimes.com/interactive/2018/05/09/nyregion/subw...](https://www.nytimes.com/interactive/2018/05/09/nyregion/subway- crisis-mta-decisions-signals-rules.html)

</comment></comment><comment><USER35> This happens daily on the Muni 30X in San Francisco. What this algorithm needs is a comfort level such that a persons decision to get on a bus is a function of their expected comfort level and expected arrival time.

</comment><comment><USER36> I remember a while ago reading about how bus arrival times in some South American country were studied and showed to follow psuedorandom distributions.

I don't remember the source, but the key differentiator [in that country] is that there is a person at the bus stop that tells the bus driver the time that the previous bus was there. This will cause said driver to increase/decrease speed in effect to counter bunching with the next bus.

Unfortunately, I also don't remember how rigorous the study was.

<comment><USER37> Here is a nice article about that [https://www.quantamagazine.org/in- mysterious-pattern-math-an...](https://www.quantamagazine.org/in-mysterious- pattern-math-and-nature-converge-20130205/)

</comment></comment><comment><USER38> I have some feature (slider) requests to see the effect of extra variables

\- Passenger boarding speed, theoretically we could stop bunching if passengers got on immediately

\- Bus capacity, maybe the front bus can avoid being bunched if it drops capacity with respect to its delay (it's likely an invalid solution for the real world though)

\- Poisson generation of passengers instead of uniform. Maybe delays aren't even necessary for bunching. It seems the schedule is quite an unstable equilibrium.

</comment><comment><USER39> On busy routes one solution is to have longer buses and allow passengers to enter and exit in all doors. In Gothenburg they run these buses on certain routes: [https://sv.wikipedia.org/wiki/Stombussar_i_G%C3%B6teborg#/me...](https://sv.wikipedia.org/wiki/Stombussar_i_G%C3%B6teborg#/media/File:Gothenburg- bus-16-by-BIL.jpg)

<comment><USER40> How's this any better? Now instead of having two or three buses that sometimes bunch up, you have 1 bus that's (essentially) always bunched up.

<comment><USER39> It comes one every five minutes during rush hours. You'll increase capacity by around 50%. Don't see how a longer bus will bunch up more?

</comment></comment></comment><comment><USER41> It even happens on games. For example, "Cities: Skylines" has a mod[1] that keeps it from happening. The strategy is making the following bus wait a little bit if the gap is too small.

[1]: [https://steamcommunity.com/sharedfiles/filedetails/?id=53140...](https://steamcommunity.com/sharedfiles/filedetails/?id=531401164)

</comment><comment><USER42> There is one line where I use this to my advantage, I could wait at the bus stop for the next 417, but if I miss it by a short time I know that if I catch the 137 that the 417 will pick up all of the passengers from the stops and so the 137 won't have to stop as many times, and I will usually be able to run from one to the other.

</comment><comment><USER43> I suspect that cars bunch too. For a given traffic volume, if they're going slower, then they have to be closer together, which causes cars to slow down even more. This is a feedback cycle.

Buses bunching might be more noticeable because buses tend to stay in the right lane.

</comment><comment><USER44> The layout of the page appears to bunch on mobile Safari on iOS as one long, skinny column for the main text.

Edit: Written on an express bus that doesn't bunch, although yes normal buses bunch, including purposely for peak times where there's lots of passengers.

</comment><comment><USER45> It seems like phantom traffic jam. [https://www.vox.com/2014/11/24/7276027/traffic- jam](https://www.vox.com/2014/11/24/7276027/traffic-jam)

</comment><comment><USER46> I've always wondered why we don't just account for full bus/train loading deloading plus a buffer. Each stop has the mass transit stop for multiple minutes. Bingo, automatic buffer. If the bus is running late, it stops briefly.

<comment><USER47> The trade off for this, though, is increased travel times.

</comment></comment><comment><USER48> When buses are clumped like that, the leading bus shall not stop at the next bus stops until the distance between them becomes sufficient.

<comment><USER49> But what if I (or all passangers) want to get off at the next stop?

<comment><USER50> Then you could get out at the current stop and let the next bus take you to the next one. I've seen this in New York where trains become 'express trains' Im shure other cities do this too.

</comment></comment></comment><comment><USER51> I feel like I must encourage everyone to play Transport Tycoon Deluxe, or OpenTTD.

</comment><comment><USER52> This doesn't work on iOS safari?

</comment><comment><USER53> You should add a button for people to "work remote" if you want 10x karma.

</comment><comment><USER54> _How_ buses bunch is fairly ovious: the trailing bus has few people to pick up so it moves faster, uselessly catching up to the full bus.

 _Why_ they bunch up is actually a different reason: the operators don't give a darn about sticking to schedules and/or tracking the other buses and maintaining space.

<comment> munk-a Out here (vancouver) operators are allowed to skip stops when full, so they are able to recover from this state gracefully.

Depending on the frequency of the bus route I'd prefer adherence to a schedule vs. efforts to minimize bunching. With frequent buses I think the schedule ends up being irrelevant - but if the hourly bus I occasionally take pulls in fifteen minutes early or late then I will be pissed, especially on the early side.

<comment><USER55> Are they allowed to also skip stops where people want to get off?

<comment><USER56> Clearly not. You're not going to hold people captive on the bus just to make up a few minutes. However that doesn't mean the bus drive has to accept new passengers when someone does get off (it's not common that happens but I have seen that happen before and it's highly infuriating for those waiting for the bus. Which is likely why it's not common)

<comment><USER55> My experience on crowded buses is that typically every stop gets rung for anyway, so skipping isn't an option.

Of course, if it were possible to open only the back doors and let people off but not on, that might help, at the expense of leaving the people waiting to get on enraged. But then you also have the problem that on a crowded bus it can be really tough to squeeze past the rest of the passengers to get off, which also slows everything down.

The whole thing is miserable, and mostly these routes just need more buses (plus the articulated ones that hold 60% more people).

<comment> munk-a Vancouver buses have this ability! And they will often specifically refuse to let new people on the bus if they are at or near capacity.

It noticeably speeds up things.</comment></comment></comment></comment></comment></comment>


So you've read SICP, now what? - <AUTHOR> Perennial Lisp newb question... SICP used a scheme dialect. How big of a difference is there really between Common LISP and scheme? Which would be the better place to start if building apps for other people to use? <comment><USER2> How "big" a difference? I'm not sure how to quantify those differences. I'd probably just search the web for the differences then decide for yourself if you think they're "big" differences. The _mindset_ is the same (for me).

For building apps it's hard to say. Depends on who/what you want to target, really, what platform support you need, and so on.

</comment><comment><USER3> [Differences]

In so far as the differences are tiny the fights between their proponents vicious.

To _me_ , the difference between MIT Scheme (the dialect in SICP) and ANSI Common Lisp (what 'Common Lisp means these days) is, in some ways a Turing Tarpit. Common Lisp is a _big_ language and has explicitly defined procedures to perform many ordinary type tasks and domain specific languages for loops and formatting text all built in. It was built by consensus on top of existing commercial implementations and rolled many vendor specific features into the spec -- some for compatibility, some because they were good ideas, some because the group defining the language had to pick something.

Scheme is a 'small' language and it's smallness is at least in part motivated by the pedagogical purpose of which SICP is an artifact. Unlike Common Lisp, procedures for many ordinary tasks are external in the standard libraries (plural) and to me, the standard libraries reflect the same philosophy that led to their creation...just as they exist to keep some useful constructs out of the language, the resist inclusion of other useful constructs. For example, standard Scheme does not include `(while...)` nor do its libraries. Everyone gets to write their own macro.

The different origin stories explain a lot of the difference. Common Lisp was created by and for working programmers and done while those programmers were working. Industry was involved...Steele's _Common Lisp: The Language_ was published by Digital Equipment Corporation (DEC) press. Scheme grew out of academic AI research at MIT.

Recently, I've been thinking that the big difference between Common Lisp and Scheme and pretty much every other programming language comes from its concurrent development with Lisp Machines. The hardware abstraction of the programming language means that there is no programmer/user dichotomy. Common Lisp just has users and they are users in the same sense as Windows users or OSX users.

In terms of language design, this created a context where telling the user to type

      (rename-file #P"foo" #P"bar")

For the same reasons a user might be instructed to click on the start menu or the trashcan icon or File->New. The high bit of typing s-expressions in Common Lisp's design is not writing programs, it's using a computer. The parallel is the high bit of s-expressions in Emacs Lisp is editing text.

[Now what]

1\. Probably the simplest step from SICP toward writing applications is the Racket ecosystem. It is robust and well documented and well maintained and _beginner friendly._

2\. The second set of alternatives are Clojure or ClojureScript. They are less beginner friendly and are harder to learn without a background in the underlying platforms (JVM and the browser).

3\. Common Lisp would be my third choice as a recommendation for developing applications. It's the least newbie friendly of the three and the ecosystem of widgets and add-ons is harder to navigate: partly because age means that there is obsolescent advice and abandoned tooling, partly because it is a mix of commercial and open source projects (and therefore the default is very often, if you want it open your wallet), and partly because it is from the age when Read the Manual was the answer to everything except an actual bug [but see item 4].

4\. Common Lisp would be my first recommendation for what to _learn_ next. Partly because the RTM age produced really good manuals. _Common Lisp: The Language_ is very readable while still being a specification. Partly because the best book on programming I've read is Norvig's _Paradigms of Artificial Intelligence: Case Studies in Common Lisp_...someone said it was, I picked up a copy and they were write.

Another reason to learn Common Lisp is as a stepping stone to Clojure. Although nobody says it because it would be horrible for marketing, understanding Common Lisp is necessary for really understanding why Clojure is the way it is: Leiningen is just another system definition facility, the high bit of the REPL is using a computer not programming one, and probably a number of things I have thought of yet.

Good luck.</comment>


Resig: Javascript Performance Rundown - <AUTHOR> http://ejohn.org/blog/javascript-performance-rundown/

<comment><USER2> _We already see TraceMonkey (under development for about 2 months) performing better than V8 (under development for about 2 years)._

Zinger.

On the other hand, it's impressive that people at Google saw JS VM's coming two years ago and already shipped it with Chrome, while Mozilla still has it as an about:config use-at-your-own-risk feature in an unreleased version of FF ;)

But I like that people are taking this personally :) browser wars rock on!

<comment><USER3> It's an unfair zinger from what I've read. TraceMonkey may have been in development at Mozilla for 2 months, but significant portions of it came from Adobe and their Tamarin Tracing team. You can't dismiss the development time of the nanojit contribution just for hyperbole's sake. When I saw John Resig, who I very much respect for his work on javascript, make that statement, I realized there's a PR war going on here.

This was a cool article on TraceMonkey development: <http://andreasgal.com/2008/08/22/tracing-the-web/>

<comment><USER2> It would appear that TraceMonkey does optimization differently, and they both have a long way to go:

Here is what feng (@chromium.org) said on the v8-users list:

 _V8 has a simple compiler that generates dummy code ;-), there are a lot of rooms to improve from traditional compiler optimization perspective. It does not even have a register allocator.

What V8 focuses on is the bottleneck of JavaScript: property lookups. You can read papers about inline caches (small-talk, Java, etc).

Some background in GC is helpful too, currently V8 has a generational GC.

From I knew, TraceMonkey is quite different, it does speculative optimizations, which is a very interesting subject of VM and compiler development/research. It requires a interpreter/dummy compiler to fallback when speculation goes wrong. In some sense, both does runtime speculation, but inline cache patches the code if it speculates wrong, and trace jit falls back to safe solution._

</comment></comment></comment><comment><USER4> Since John's site is down temporarily I'll link my tests here [http://waynepan.com/2008/09/02/v8-tracemonkey- squirrelfish-i...](http://waynepan.com/2008/09/02/v8-tracemonkey-squirrelfish- ie8-benchmarks/)

PS. I didn't know the secret v2 Dromaeo tests... running and updating now.

</comment><comment><USER5> These numbers are not at all what I got, testing yesterday. Especially the Dromera tests, where the latest webkit nightly didn't finish even close to that.

I wonder where the discrepancy comes from?

<comment><USER6> Apparently there's a secret v2 test, did you use that? <http://v2.dromaeo.com/>

He also says he used Safari without Squirrelfish in these tests, due to compilation issues on Windows.

<comment><USER7> I'm pretty sure Squirrelfish is still under pretty heavy windows development. For non-windows, they use some special GCC things that aren't supported under VC++, which they use to compile the windows version (AFAIK). Even if it ran, Squirrelfish is slower under windows because they have to cut out some of the optimizations.

</comment></comment></comment><comment><USER8> 404.

<comment><AUTHOR> It's back</comment></comment>


Estimated losses would make Snapchat the most unprofitable social media IPO - <AUTHOR> https://sentieo.com/blog/why-snap-will-be-the-most-unprofitable-social-media-ipo-ever/ <comment><USER2> This is a lot of analysis to hang on leaked 2014 numbers. It's a rapidly growing and changing company.

<comment><USER3> But also a company that shares very little. Snapchat's positioning has always felt relatively scammy to me. Look forward to some amount of transparency around traditional metrics either as a result of this suit or through the IPO process.

<comment><USER4> Snapchat would be a better company if it wasn't ran by a complete a-hole who refuses to support anything but iOS..

Facebook will eat their lunch if they don't go cross platform.

</comment></comment></comment><comment><USER5> HN's algorithm has a sense of humor: this pairs nicely with the other front- page story about the 2014 prediction that Facebook would be dead by 2017.

<comment><USER6> Facebook does feel like it is dying though.

1\. A lot of my friends are leaving facebook 2\. A lot of my dev friends no longer build on facebook's platform 3\. Most of the young kids I know have moved to Snapchat. 4\. Most of the older kids I know hang out on Instagram. 5\. All the friends that worked at facebook have left to go work elsewhere.

<comment><USER7> I don't notice my friends leaving and I feel like it's dying too. The content just feels so manufactured and empty. About 80% of my news feed is:

1) Friend X liked a photo of someone I've never met and likely never will meet

2) A recipe video that I would never make, or some household 'lifehack' I would never use.

3) Meaningless images - 'Happy Friday', 'Share if you hate winter', 'Like if you love Christmas', etc.

Their engagement numbers may still be rising, but it feels like they've favored pushing up that metric at the cost of having actual quality engagements. It's all been hollowed out.

<comment><USER8> I'm very curious what their engagement numbers look like when broken down by region. It feels like FB is drying up in the west, and they're propping up their numbers by expanding in the east (especially their initiatives in India).

</comment></comment></comment></comment><comment><USER9> This could as easily have been titled why X will be the most profitable social media IPO ever. It reads more like someone is hoping for them to fail and is grasping for reason to justify this unpleasant emotion.

Snapchat established itself in a challenging marketplace dominated by large, successful and well funded companies. Something Google inspite of all its engineering prowess, financial resources and influence has failed repeatedly to do. They have not even come close.

Let's give the founder some credit for gaining a large and engaged userbase. Its a huge achievement in any context and given competitors are making money there is no reason think Snapchat can't.

</comment><comment><USER10> IPOs don't really generate profit for companies. They allow one group of people to trade equity for cash and a second group of people to make the exact opposite trade. On net, society is left with exactly the same amount of equity and cash. If the IPO jumps, it means the sellers lose while the buyers win. If the IPO falls, it means the sellers win while the buyers lose. In either case, it's pretty much distributional and zero-sum. I don't understand why this headline is newsworthy. Profit is not the purpose of IPOs.

(To be clear: IPOs do have purpose. They generate cashflow. And they diversify/broaden the investor pool.)

</comment><comment><USER11> Since Facebook's IPO, which tech unicorns still feel bullish?

Here are the tech IPOs I can think off the top of my head. Maybe it's selection bias (I only remember the ones that don't look healthy), but this is what I thought of, and they all are not doing well compared to their IPO price, or were on a heavy downward trend:

\- Box [http://finance.yahoo.com/quote/BOX?ltr=1](http://finance.yahoo.com/quote/BOX?ltr=1)

\- Pandora [http://finance.yahoo.com/quote/P](http://finance.yahoo.com/quote/P)

\- Twitter [http://finance.yahoo.com/quote/TWTR](http://finance.yahoo.com/quote/TWTR)

\- Tableau [http://finance.yahoo.com/quote/DATA](http://finance.yahoo.com/quote/DATA)

\- Groupon [http://finance.yahoo.com/quote/GRPN](http://finance.yahoo.com/quote/GRPN)

\- Twilio [http://finance.yahoo.com/quote/TWLO](http://finance.yahoo.com/quote/TWLO) (too short of time to tell, but including it here anyway)

LinkedIn had fallen far from its high until Microsoft bought it: [http://finance.yahoo.com/quote/LNKD](http://finance.yahoo.com/quote/LNKD)

King (Candy Crush, etc.) was bought by Blizzard but even with the premium it sold at, it was still about 25% off its IPO: [http://fortune.com/2015/11/03/activision-blizzard-king- digit...](http://fortune.com/2015/11/03/activision-blizzard-king-digital/)

Of course there have been other unicorns, less sexy media (including non- American) darlings that might be doing just fine. And of course Facebook still looks strong, but FB always seemed like it would do string, at least out of all the other social networks. I admit that I'm not much of a Snapchat user, even though many of my friends have migrated over. But does it really have the same potential as FB to integrate itself into all areas of digital life? Even if SNAP has strong underlying numbers, it'd be an outlier if it remained strong 3-5 years from now.

On a sidenote, would love to see an update to this NYT interactive at the time of Facebook's IPO: [http://www.nytimes.com/interactive/2012/05/17/business/dealb...](http://www.nytimes.com/interactive/2012/05/17/business/dealbook/how- the-facebook-offering-compares.html)

edit: added KING (Candy Crush makers)

<comment><USER12> SHOP (Shopify) is doing pretty well and their upcoming plans/platform seem to bode well for them.

<comment><USER13> I didn't even know Shopify was in the unicorn category. I previously worked on a project that generated coupon codes programmatically for a Spotify shop. I just closed my testing account a couple days ago, and thought to myself 'wow, Shopify is still a thing'. No offense, I'm a programmer so I'm completely ignorant to the value I guess.

<comment><USER12> For any retailer selling a physical product, Shopify makes it super simple to list products and connect them with platform apps for fulfillment, marketing, etc.

My company, Pavlok ([http://pavlok.com](http://pavlok.com)), is built on Shopify, and it's helped us hook up all our shipping/billing/marketing/payment services. Shopify is also a really awesome company -- we were one of their 2015 winners of their Build a Business Competition where they flew us to Necker Island to spend a week with Richard Branson, Tim Ferriss, Seth Godin, Daymond John, etc. Not many companies make a trip like this happen :) [https://youtu.be/tmuF1xaW3Z0](https://youtu.be/tmuF1xaW3Z0)

</comment></comment></comment></comment><comment><USER14> The $1.05B revenue for 2017 figure is completely made up.

But even if you assume it's real, the $25B valuation still makes zero sense. 25 times the annual revenue, not the profit.

<comment><USER15> Even more so when you consider the chances of Snapchat still being a thing in 3 years, let alone 25

<comment><USER16> Three years ago, in college Snapchat was hugely popular. Three years later, today, it is still hugely popular.

Of course, if you only heard about it on HN/tech sites, you might think Snapchat is a recently popular phenomenon.

<comment><USER17> Yeah, it's only been getting more and more popular as people realize it actually fills a real communications niche, and isn't just for sending dirty pictures.

</comment></comment></comment></comment><comment><USER18> i find it hard to believe that it could do worse than Twitter.

<comment><USER19> sorry for repeating myself, but I think they will have a much harder time and will do worse than twitter. At least with twitter you can identify an interest graph. Snapchat is similar in a sense but monetizing stories is a tough sell, because there is no real contextual information on what your friends are actually creating stories about. I just don't see people following brands on snapchat like they do on twitter. Snaps filters I will say are effective, but just how effective we'll see.

Snapchat's entire premise is based on ephemerality so even if someone were to advertise or brand, it goes away and is done. You can rewatch stories but even that is limited. Like twitter I don't see this product crossing over to a more general use of the population like facebook. Even expansion overseas will be hard because there are already major messaging platforms that have a strong foothold. Line, whatsapp, Snow ( snapchat clone), wechat and kikao. I also can't see them really expanding beyond the US.

<comment><USER20> You are forgetting how geo-targeted it is, from the filters to grouping snaps about a single event together. You can sell ads for music festivals, concerts, sports games, informal social gatherings, etc based on where it is and who is there.

<comment><USER19> correct this is how their AR filters work, but really any ad network can geo fence and geo target.

</comment></comment></comment></comment><comment><USER21> for employees, it'll be because backloaded RSUs

</comment><comment><USER22> When social media get started loading fun part, then, they should think how to convert into a tool people can use within their daily social activities – increase user coupling grade.

</comment><comment><USER23> When you use Snapchat you will notice that most of the top "news" publishers are the sort of Daily Mail and other tabloids infested with celebrities and kardashians bogus stories. It does not allow you to curate newsfeed per your taste. The publishers I want to read/watch/follow are not on Snapchat or I can't pick and create my selection. Unlike Facebook, where my wall is full with informational posts catered towards me, by me. This can tell you a lot about who is paying for advertisements on Snapchat and what type of audience they are catering to with what kind of content. It reeks desperation.

Edit 1: Grammar

<comment><USER24> I often find it nearly embarrassing to check my "Stories" section on the bus, because right there at the top is some sort of sensational headline with an out-of-context, usually quite risqué photo.

In the recent past, the first few tiles would show some Kardashian sister in a wet shirt, bathing suit, or less. Just a couple days ago, I want to say, was a revolting picture of just two large tongues lashing one another... One of the best parts about my jailbroken iPhone 6 was that I could tweak Snapchat to hide those (along with the "Featured" Stories below, today in which is a whole communal story dedicated to _eating pasta_ ).

<comment><USER23> How did you tweak your Snapchat? Spare me Google research.

<comment><USER24> On iOS it was Snap++ or Phantom. Both tweaks can hide your Snapchat ads. Requires an iPhone running iOS < version 10.</comment></comment></comment></comment>


General Engineering Attraction and Retention (Gears) – STEMming the Tide - <AUTHOR> http://people.uwm.edu/nsfpower/gears/ <comment><AUTHOR> "Our early analysis suggests that men and women actually appear to leave engineering at roughly the same rate and endorse the same reasons for leaving"</comment>


Microsoft announces $39.99 Windows 8 Pro upgrade offer for most Windows users - <AUTHOR> http://www.engadget.com/2012/07/02/microsoft-announces-39-99-windows-8-pro-upgrade-offer-for-most/

<comment><USER2> Wow, Microsoft is surprising me more and more lately.</comment>


Pickadate.js - A fully responsive and lightweight jQuery dateinput picker - <AUTHOR> http://amsul.github.com/pickadate.js/

<comment><USER2> So many datepickers out there ... and while choice is nice, why do so few of them include time (which is a pretty common use-case)?</comment>


Reports from Nest Secure customers who are unable to arm/disarm or lock/unlock - <AUTHOR> https://twitter.com/nestsupport/status/996955985343270913 <comment><USER2> This is what the future will bring more of - not some all powerful AI - just a bunch of crap that didn't need to be tethered to the cloud that suddenly stops working without much explanation, as the Deal With It dog laughs and dons his sunglasses.

Edit: typo

<comment><USER3> Soon you will be able to tell which coffee machine your coworkers own by observing which days they are grumpy after missing their coffee due to brand specific server outages.

<comment><USER2> Or was it that they just couldn't get their Ion to dispense the water they needed to brew?

[https://www.avclub.com/guy-reviews-his-offices-terrible- new-...](https://www.avclub.com/guy-reviews-his-offices-terrible-new-smart- water-cool-1820402910)

<comment><USER4> Their Nest cams got hacked and they ended up on suspicious websites doing suspicious things, oh wait, someone covered that already.

</comment></comment></comment></comment><comment><USER5> There's a Nest system in the house I rent in. It didn't work from phone/web, so I just walked over to the actual thermostat on the wall, and it worked just fine.

AFAIK from reading the Twitters last night, you could still punch the numbers into your home locks and get inside. So the things just took us back a few years in terms of smart phone access, but the core device still works.

<comment><USER6> Smart devices need dumb backups. It's perhaps fortunate for Nest customers that Nest knows that.

<comment><USER7> So far, the "smart" (read: network connected/controllable) devices I've owned have all had fallback options. I used to have a Nest at my old place but I left it when we sold (didn't feel like replacing it and couldn't find the old thermostat). If it somehow lost connectivity, it still functioned as a thermostat, albeit one with more potential for a software crash or firmware brick. Neither ever happened in the few years I had it.

With Hue bulbs, if you can't control them due to not having your phone handy or LAN issues, you can always just flip the lightswitch off and back on to get them back at "normal" brightness and color. Again, it's not something that I run into often but if someone else is visiting and doesn't care if the lights are dimmed blue or whatever for movie watching, they can still use the lights as normal lights.

Got a window AC in a small room that I can control via LAN but again, it still has a regular remote and buttons on the front if that fails or I want to disable it.

The only things I typically run across in the consumer space that don't work this way are IP security cameras that depend on remote servers in order to work. The ones that won't just send an h.264 or MJPG stream over the LAN are forever off my list for this reason (as well as a dislike of recurring bills). But I at least understand why many people don't want to set up a NAS or spare computer running software to receive the feeds over their LAN so I get why they exist. I just don't particularly like them. I'll stick to IP cams on a separate local network that I can access remotely via VPN into my home network. If nothing else, I don't have to depend on anyone else's service and I don't need to expose some backdoor-ridden device to the WAN.

</comment></comment></comment><comment><USER8> Why would they depend on the internet to allow you to control a device at your home? NFC? Bluetooth? Wifi? Ignoring the obvious security problems of these devices being internet-connected, it's just a crap design from a usability standpoint. (where "usability" includes "can use it when the internet goes out")

<comment><USER9> Could they create a way to host a service at your home for direct connect from the app so connectivity doesn't rely on a cloud service? Sure. Most consumers don't care though. I certainly don't care. This is the first major Nest outage I can remember. It would take continued intermittent outages for me to re- evaluate my Nest devices at my homes.

Either a cloud app is going to go out, or my home internet is going to go out. I don't expect 100% uptime because I'm realistic, and expecting non-cloud infra devices with no time commitment is a pipe dream.

<comment><USER10> ... or batteries run out. That's happened twice for me with when I'm only using a smart lock occasionally.

<comment><USER11> Not an issue with smart thermostats, their batteries are constantly charged through the wiring.

Plus, if your batteries run out, then you wouldn't be able to change the temperature anyway. You have far bigger problems than the device being online only.

</comment></comment></comment></comment><comment><USER12> Please let me quote from Mostly Harmless by Douglas Adams:

The major difference between a thing that might go wrong and a thing that cannot possibly go wrong is that when a thing that cannot possibly go wrong goes wrong it usually turns out to be impossible to get at or repair.

</comment><comment><USER13> Title is a bit misleading, as the devices evidently didn't stop working via physical controls.

That said, were they... really not monitoring their service?

<comment><USER14> Sometimes monitoring fails too.

<comment><USER15> Who monitors the monitors?

</comment></comment></comment><comment><USER16> On behalf of everybody who had entirely too much fun during internet of shit talks at the ten or so last congresses:

If only somebody told us that would happen!

</comment><comment><USER17> SmartDevices are inherently fragile due orders of magnitude more points of failure. Instead of "Smart" functionality being optional it (due commercial interest) becomes core control circuitry on which the functionality depends.

An example(hypothethical) SmartFishtank which dispenses food to fish with pre- programmed schedules and monitors/adjust water temperature. Its connected to internet and can be monitored remotely. Users can even upload new feeding schedules. What happens if its hacked? Fish can be boiled, starved or overfed because SmartFishTank has control over the whole device.

In another corner there is a electronic fish tank with mechanical feeder that is set to one of 3 feeding modes. The fish tank monitors temperature and acidity, but cannot adjust it and only send a audible alarm or a SMS message. However whatever happens to the electronic components, they cannot harm the fish inside because its purpose is to just receive data.

</comment><comment><USER18> You'd think if you could trust anyone with uptime of the most important IOT stuff(locks, thermostat etc) , it would be Google. Yet here we are, smh!

I like automating or wiring up my home with connected devices, this outage is making me thing twice.

<comment><USER19> Why not do it yourself over the LAN? Seriously, I dont see any point in having home data get sent to some scummy third party.

I have a few of these "smart" devices in my home, and they are assigned to an IP block that has absolutely no internet access. They have to be controlled internally, and are not allowed to phone home.

One of my next projects will be an open-source Alexa-like that runs completely in the LAN (unless you specifically ask for things like the weather).

<comment><USER20> This already exists to some extent: [https://mycroft.ai/](https://mycroft.ai/)

</comment></comment></comment><comment><USER21> I get the feeling we have pointless products more often than not these days. All these advances, just to create a speaker that listens to you and helps you shop. And now this, there is going to be a whole lot more e-waste in the coming years because of manufacturer antics like this.

</comment><comment><USER22> Yikes. I would definitely be re-thinking my home security if I normally use my locks remotely and I was suddenly unable to.

A house burglar could effectively use these tweets as push notifications telling them to go rob some smart™ homes in their local rich neighborhoods.

<comment><USER14> They just can't use the app to control it. The physical lock still works, so they just have to use the key.

For a night it turned into a regular lock.

<comment><USER22> I'm just imagining the case where someone has gotten very used to using the smart lock in a way where they lock it remotely. I guess that could be blamed on the user, but it's definitely not going to encourage them to buy any more Nest products.

<comment><USER23> Yeah one could imagine the house locking itself when a car drives away.

<comment><USER14> There isn't ifttt for Nest Secure yet, but it does integrate with Nest Cam and nest Thermostat.

My workplace was across the street from my house though so I had trouble with the GPS stuff on ifttt when I tried it a few years ago. Bah.

<comment><USER23> You weren't driving across the street, were you? b^)

</comment></comment></comment></comment></comment></comment><comment><USER24> I was considering getting some of these devices but things like this scare the fuck out of me. Let alone if Nest goes away you end up with some useless bricks. Any suggestions for self hosted smart locks?

<comment><USER25> Coming from an infosec background and having touched on physical security, just don't use a smart lock:

\- Best case, even with a responsible implementation, you're introducing more variables than are necessary into a supposedly secure system. If one of your dependencies fucks up, your lock is exploitable.

\- Worst case, you have a typical IoT device, where the "S" stands for "security."

\- In _either_ case, you're likely still going to include a physical lock mechanism for keys as a backup -- so you're basically just increasing the attack surface (significantly, I should add) by doing this.

Smart locks are currently high-risk appliances, and I'm fairly confident that most others with a security background will agree with me on that.

<comment><USER24> What would you do if you rent an apartment to several people per week? Because even "don't copy" keys can be copied.

<comment><USER11> Most smart locks only replace the "back" part of the lock anyway, or augment the physical key slot to leave it as a backup, so, the point still stands that it only introduces new attack vectors. You'd still have the problem of someone being able to copy your "do not duplicate" key not to mention bumping/picking the lock, along with hacking the smart portion of the lock.

In the end, it's your decision, but the OP's comment stands fully: all the same attack vectors still exist, along with a bunch of new ones at the expense of convenience.

<comment><USER26> > You'd still have the problem of someone being able to copy your "do not > duplicate" key

Only if you distribute the "do not duplicate" key, but the whole point is to not do that.

</comment></comment></comment></comment></comment><comment><USER16> May be a larger Google problem, I just wanted to stuff a German link [0] into Google translate to post it here, and Google translate gives me a

403 Your client does not have permission to get URL / from this server. (Client IP address: 84.131.XXX.XXX)

(That is a standard German Telekom IP, usually Google only acts up when I do anything funny.)

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

(I got google to translate, still no luck with translate.google.de )

</comment><comment><USER27> On the one hand, expecting your remote-controlled lock to work _all_ the time (as in 100% uptime) is unfeasible, since it is impossible to achieve 100% uptime. Almost everyone buying a smart lock probably expected it to have 100% uptime though, and I'm sure they didn't read the small print w.r.t. uptime SLAs.

On the other hand, it's probably no more inconvenient than locking yourself out, something that happens every now and again for anyone. Except you don't have yourself to blame, but Nest.

<comment><USER28> I haven't locked myself out of my house since I was about 12, and the dumb lock on my house has had 100% uptime for the 10 years since we've moved in. So I don't totally get the appeal of a "smart" lock.

<comment><USER29> Give access to cleaners? Renting? Airbnb?

</comment></comment></comment><comment><USER30> I have had trouble with Nest devices staying on an IP address after the lease expires, messing up the network once that address gets used by someone else. I had to reserve IPs for each one in the end. More than once, I have had a Nest smoke alarm go off for absolutely no reason, in an empty house. It's always nice to get an alert on your phone at work telling you your house is on fire. I don't think their QA department is the best.

</comment><comment><USER31> Does anybody know if this has anything to do with GKE? Last night right before I noticed the Nest app was unresponsive, I noticed my entire Kubernetes cluster was randomly brought down. At first I thought it was for some kind of maintenance, but thought it was strange that it wasnt brought down gracefully. I still have no idea what happened.

<comment><USER32> As of a little over a week ago my nests (camera, thermostat) were connecting to AWS systems, not Google Cloud. Am traveling so can't tell if this has changed since then.

<comment><USER31> Ok, I guess I just assumed since Nest is a Google company... but I can check that. Thanks for the tip!

</comment></comment></comment><comment><USER33> When I had a landline, I literally never picked it up and had no dial tone. When I had an ADT security system, I never had a single failure with it.

Meanwhile I have never regularly used a web service that didn't have at least one outage.

</comment><comment><USER34> Our Nestcam has been flickering on and off since about 3:30pm PDT yesterday. I assumed it was something with the wifi, but it looks like it's just upstream server issues. I guess that's a relief?

</comment><comment><USER35> Smarthome devices that can't function at some level without a cloud service are trash. Do yourself a favor and skip wifi cameras all together, use an IP camera and a NVR.

<comment><USER36> IP camera's are a pain to "open to the world" \- hence why "cloud cameras" have been so popular. I suspect there are now modern, IP cameras that aren't cloud reliant but the avg user doesn't care.

<comment><USER35> It's kind of a combination of things — IP cameras definitely don't have the greatest software... and combined with shitty entry-level routers port- forwarding is definitely frustrating to the average person... then you get into dynamic IPs from ISPs, etc...

It's just annoying that there's no middle ground between "hold my hand with a cloud service" and "I want to spend a little effort to not be 100% reliant on external services"

Google could decide to fold Nest service entirely (luckily there aren't signs of that) and at this point you'd have thousands of thousands of devices in a landfill. It's so irresponsible. Historically you could have a CCTV setup running for 10-20 years without huge issues.

>I suspect there are now modern, IP cameras that aren't cloud reliant

It's surprisingly limited and still a bit expensive. Foscam/Hikvision have been getting better, but it still feels a few years behind when it comes to firmware... and the notification and advanced "human detection" are obviously better with a cloud service.

</comment></comment></comment><comment><USER37> People unable to unlock their doors? I hope they give a detailed postmortem.

<comment><USER38> Unable to unlock doors from the app or other automation - the keypad still worked.

Still, this is the problem with all cloud based home automation platforms.

</comment></comment><comment><USER39> You are the beta-tester.</comment>


Debian putting everything on the /usr - <AUTHOR> http://www.theregister.co.uk/2016/11/24/debian_testing_merged_codeusrcode/?mt=1480127476882 <comment><USER2> In my opinion, this is getting rid of a minor historical relic, instead of the major relic of Linux booting. That ugly hack known as initramfs should have been obsoleted at least ten years ago. It was useful back when you had to worry about keeping all your boot files below the 2gb mark on a disk, but these days, all it does is create a second, ephemeral, userland in a more difficult to debug container. Put the various boot binaries into /bin and /sbin, statically linked, and completely visible to even the running system. Cleaning relics should start with getting rid of entire filesystems that just make it harder to administer a system.

<comment><USER3> initramfs isn't (and wasn't) at all about keeping your boot files below the 2gb mark on a disk. It's about actually mounting your root filesystem, either on a fully-modularized kernel where all of your (hundreds of) block drivers are in modules, or where root is coming over a network block device, or a USB disk, or a SAN, or a complex RAID, or an encrypted disk where you need to enter a password or use a hardware token or whatever.

Basically, rather than encoding tons and tons of crazy special-purpose logic into the kernel to mount every insane iteration of root filesystem, you just get the bootloader to stick a CPIO image in RAM for the kernel to get at and then use the normal userland tools to do what you want.

IMHO, initramfs is the opposite of an ugly hack.

<comment><USER4> Though I take your point and mostly agree, is there any reason this _couldn 't_ be done with a static boot binary entirely in RAM? Since the kernel is modular anyway, much of the special purpose cruft loaded by the initramfs could just be loaded and unloaded with a boot script of some kind right? I mean: it could all sit on the same filesystem without having a CPIO image on disk? Grub supports pretty much every filesystem already so loading this initial kernel image from the network or wherever could just start there.

<comment><USER5> Mounting root file system might nowadays conceivably involve some non-trivial userspace code that never even was implemented in kernel space. Few examples:

\- Searching for root filesystem based on it's contents (in simple case UUID, but mechanisms like "contains this file" are used sometimes) instead of "physical" location \- Encrypted root filesystem (requires some kind of UI for entering the passphrase) \- LVM2 (which is set of userspace utilities that configure more general kernel modules that know nothing about the actual on- disk format) \- while there is slightly hackish kernel support for configuring network interfaces before having userspace and mounting rootfs from NFS, such thing cannot possibly deal with all variants of network configuration (eg. VLANs, 802.1x, ...) and possible network filesystems/block devices. \- root on ramdisk, copy-on-write overlay filesystem or something like that.

To summarize: it's entirely possible to have the system boot of PXE, authenticate via WPA-EAP on wifi and fetch it's own root filesystem into ramdisk via HTTPS while storing writes onto NFS somewhere. Implementing all which is required for that in kernel space is neither possible nor useful.

By the way, the point of initramfs is that it is loaded into memory by bootloader using whatever means the bootloader has and the image does not have to be on rootfs accessible to kernel (for PXE it typically isn't).

<comment><USER4> Ok. That's a great summary and good point about non-trivial userspace bits. I hadn't considered how complex "booting" as a process has become...

</comment></comment></comment></comment></comment><comment><USER6> What's the point? Why not do it the other way around and put everything in /bin? It almost feels like /usr is the new root.

<comment><USER7> 1\. Less disruption. Most software is already installed to /usr.

2\. Installing all software to /usr means that /usr can be made read-only when not installing/upgrading software. This isn't possible if installing to the root, as directories like /etc and /var have to be left writable.

<comment><USER8> Do you mean the partition containing /usr will be mounted ad read-only?

<comment><USER9> He said _can be made_ , that's an option.

</comment></comment></comment></comment><comment><USER10> So, I'm of two minds on this:

On one hand, I'd go farther. I like apt, but I wish that distros would use the same packaging system and same package format. There is little value to them being different between distros, it just causes more work for repackaging/deployment/config. Even distros that build everything could all do that the same way, so any distro and its apps could be fully built from source, if the source is available.

On the other hand, this isn't great. Having variety in paths, although it's basically security via obscurity like using non-standard ports, is still an additional level of security. And think of all of the existing config/repackaging scripts/etc. that will fail.

But, I'm not an admin nor in devops, so I'll defer to those that actually are impacted...

<comment><USER11> _On one hand, I 'd go farther. I like apt, but I wish that distros would use the same packaging system and same package format_

I agree however that's rather off topic. This is not about harmonising between Linux distributions. The fact that other distros did it is merely used as an argument to show it's possible and without any major issues for anyone involved.

 _Having variety in paths, although it 's basically security via obscurity like using non-standard ports, is still an additional level of security._

No, it isn't. The way you find binaries (when paths aren't hard coded) is by looking through the $PATH environment variable. Both /usr/bin and /bin are part of that on any Linux distro so there is no obscurity or any kind of security gained from this. Though the advantage of having everything in /usr/bin is that /usr can be mounted read-only meaning an attacker will have a much harder time modifying the binaries initially (unless they can do some local privilege escalation and remount the partition).

 _And think of all of the existing config /repackaging scripts/etc. that will fail._

They won't. Even those with hardcoded paths to things in /bin won't be affected since usrmerge will provide the symlinks for those binaries. And anything properly written will be searching for binaries through $PATH and be equally unaffected. There's a few crucial tools that will likely need to be updated to be aware of this change but the Debian project will take care of those.

<comment><USER10> You seem convinced that $PATH handles everything. That's not accurate. Deployment scripts can make automated changes to config files and need paths. One package assumes a hardcoded path for another package- typically a symlink, but if those symlinks are moving around, that could break.

And the package management system isn't off-topic if one of the reasons for moving paths is to become more standard. Apt, Yum, Pacman, etc. all have different ways of doing things, and if the goal is to become more standard, then you have to wonder why the Linux community has not banded together on a single packaging system standard.

<comment><USER11> _Deployment scripts can make automated changes to config files and need paths._

And proper deployment systems can handle this. Or it's templated and can be changed with a single variable. We're also not talking about every possible binary ever, we're only talking about /bin which is a limited and well-known set of things, for which symlinks will exist. It will not affect any piece of software ever and associated configuration files, the blast radius is very small and well understood.

 _And the package management system isn 't off-topic if one of the reasons for moving paths is to become more standard._

That's not the reason. The reason the move is happening is because there is no real point in having /bin and /usr/bin separate. It's a historical relic which offers very little benefit to users and is largely confusing to newcomers. Debian isn't making the move to standardise with what other distro's are doing, they're doing it b/c it makes sense for their users. It just so happens that others have come to the same conclusion and since they've made that change before we can learn from how and why they did it.

 _then you have to wonder why the Linux community has not banded together on a single packaging system standard._

You should read up on how dpkg and rpm were created, and why every other package format and package manager ever has been too. Besides the history, every single one of them has their flaws and issues. If we had one that was perfect, that solved every single issue related to package management ever, in a platform independent way that we can all agree on I'm pretty sure everyone would be using it. I'm all ears for proposals though, but so far any time this has been attempted it hasn't gotten anywhere. And this is a completely different domain than moving /bin around.</comment></comment></comment></comment>


The End of Men - <AUTHOR> http://www.theatlantic.com/magazine/archive/2010/07/the-end-of-men/308135/

<comment><USER2> This is interesting.

From the standpoint of maintaining the relevance of men, I'm not super worried about colleges being dominated by women because I don't see college as being a good way to stay up-to-date with job skills or even to learn more basic skills. But maybe this is more a comment about the inadequacy of traditional learning (and my own issues with not finishing college) than it is about the concept of higher education in general or men and women.

My reasoning is this: I dropped out of college after about two years. I had finished most of my general education requirements. However, I don't feel as though the general education information was mainly focused on really relevant knowledge or skills. Some of it was definitely important, but a lot of it was either outdated, not particularly relevant or important, or much further in depth than I needed to go. That also goes for the classes related to computer science that I took.

I taught myself the most important skills that I have ever acquired in my life, computer programming, before I entered high school.

I also don't think that the mechanism of learning in college is very efficient. In other words, here are some books, some lectures, and some tests. Everyone is expected to go the same pace. I feel that online environments and self-paced computer based training are much more efficient and useful, and more practical for obtaining the newest skillsets.

Anyway that is a little bit out of the way of the main topic perhaps, but it might be more relevant than you think. I think there may be quite a few males who are taking a path similar to my own which involves more hands on self training, quite possibly lots of them in technology related fields. I also think that there may be significantly more men who are inclined to start their own businesses.

So I guess I am not really worried about becoming irrelevant just yet.

If I get a degree it will mostly be so that people can't hold the lack of it over my head for the rest of my life, rather than because there is a degree program that really has value from a learning perspective.

</comment><comment><USER3> This is two years old and has been discussed into the dirt.

<comment><USER4> For reference: <http://news.ycombinator.com/item?id=1420553>

</comment></comment><comment><USER4> This is really just an accident of demographics. Women choose more risk-averse careers, hence female employment is less affected by economic corrections than male employment. The only reason it seems new is that previous recessions happened when there weren't nearly as many women in the workforce.</comment>