Roundabouts: A Misunderstood Intersection - <AUTHOR> http://wabe.org/post/roundabouts-surprising-facts-about-misunderstood-intersection <comment><USER2> My favorite local junctions is the magic roundabout in Hemel Hempstead, UK [1]. A traffic circle (roundabout with traffic lights) would have also worked for this junction, but instead they used a ring of mini roundabouts, one placed at each entrance/exit road, connected to one another by short dual carriageway sections.

This allows for traffic to flow both ways around the circle, while forcing drivers on the "roundabout" to slow down to navigate the mini roundabouts, while not forcing people to stop completely for lights. In practice it works incredibly well, maintaining a steady flow of traffic even under heavy congestion. IMO it works far better than a controlled roundabout, and it a lot more fun!

It's also a favorite for driving test examiners...

[1] [https://www.google.co.uk/maps/place/Hemel+Hempstead,+Hertfor...](https://www.google.co.uk/maps/place/Hemel+Hempstead,+firstname.lastname@example.com,-0.4733136,253m/data=!3m1!1e3!4m2!3m1!1s0x487640d05cd71ac1:0xf0e07f1fcfdff2b2?hl=en)

<comment><USER3> Minor point, a roundabout with traffic lights is a gyratory

<comment><USER2> I did not know that term, thanks!

</comment></comment></comment><comment><USER4> _2\. As you exit, it 's nice to use your turn-signal to alert the driver behind you._

I always thought the main point of using your turn-signal is (apart from that it is the law, at least where I live) to alert the ones _in front_ of you, i.e. so that drivers wanting to enter the roundabout know they can do so already without having to wait for you because you're leaving it anyway and hence leave a void where the next car can enter?

<comment><USER5> I'd never enter a roundabout with an approaching car signalling that they are intending to exit. Some people wrongly signal early (they're actually intending to leave at a subsequent exit), some set their indicator (turn- signal) on when they entered the roundabout and just keep it on, some are indicating because they changed lane on the roundabout. I've seen too many side-on collisions in these situations.

Basically, I drive defensively and don't trust other people's signalling. (UK driver)

<comment><USER4> _I 'd never enter a roundabout with an approaching car signalling that they are intending to exit_

Too late to edit but thinking of it, neither do I. It just allows you to start planning/reacting earlier.

</comment></comment></comment><comment><USER6> Roundabouts have started appearing in Thailand, a country where most of driving population do not hold any form of driving license and had only minor handed down informal training, the results are comical, although there is probably some scientific value that can be taken away if studied seriously. The most common observation I found is that most give way to entering traffic (i.e. they stop in the roundabout), there are of course less common instances of going around with hazard lights on, and going the wrong direction, and even just driving over them completely ignorant, by less common I mean <20% not the exception you witness elsewhere. If you're on holiday in Koh Samui, Thailand and from a country where roundabouts are popular then this location [https://www.google.com/maps/place/Ko+Samui,+email@example.com...](https://www.google.com/maps/place/Ko+Samui,+email@example.com,100.060806,70m/data=!3m1!1e3!4m2!3m1!1s0x3054f1501c66266f:0xedd55abd3d7d8330!6m1!1e1) will provide a good few minutes of free entertainment, just don't stand too close to the road, luckily though an ambulance is usually stationed a few metres away. Unfortunately this roundabout doesn't work (in terms of optimal traffic flow) for the reasons above and unlike "a north Georgia town" education isn't going to be possible when they have no license or training, and more importantly not a care in the world.

</comment><comment><USER7> The problem with roundabouts in the states is circular:

Nobody likes them or knows how to use them so they need to have tons of signs and restrictions on them so people don't kill themselves or go around the wrong way (the ones near my parents house actually have stop signs at every entrance). This complicates things and stops them working very effectively, resulting in people not liking them or knowing how to use them right.

If they had simply dropped them in place without comment, people would have spent a few weeks crashing into each other and then figured it out and they would work fine.

<comment><USER8> Mythbusters did a '4 way stop' vs roundabout comparison a few years ago[0]. It was interesting to see American drivers who were mostly unfamiliar with roundabouts warming to them.

[0] [http://www.wimp.com/testroundabout/](http://www.wimp.com/testroundabout/)

</comment></comment><comment><USER9> One thing this and the comments really highlight is how different driving styles are in different countries. I wonder how much this is responsible for traffic accidents?

As an example:

\- In the US people aren't taught (or don't care about) lane discipline, where as in Europe you will make people very angry driving slowly in the inside lane [0]. As such undertaking is usually prohibited in Europe, where as it's allowed in most cases in the US.

\- If you are waiting to cross an on oncoming lane of traffic and someone coming towards you flashes their lights, in the Middle East it means "wait, I'm coming", where as in the UK it means "go ahead, I'll stop".

[0] Italy is my favourite for this. People will come up behind you (doing 160km/h, while you are doing 130km/h and the limit is 110km/h :D) and start tailgating and flashing their lights until you move.</comment>


Show HN: Device agnostic fitness tracking with friends - <AUTHOR> Hey HN'ers!
If you sit around a computer all day and are looking to be more active, or are just active in general, check out our app!
https://itunes.apple.com/app/apple-store/id903459923?pt=265797&ct=hn&mt=8
or
 https://play.google.com/store/apps/details?id=com.activityclub
We have been hacking on this for 2 years and it's finally nearing a state where we are stoked about!
Launched last Aug (2015) to the public. Coming up on our 1 yr anniversary and starting to get some traction.
Two of us have _each_ lost about 70lbs while building the app (the rest of the were already skinny, cheaters!) and so it has not only been very fun, but also very rewarding.
The tech:
Backend on GCE:

    - 1 api server

    - 1 worker server

    - 1 redis server

    - Cloud SQL 2nd Gen

    - <$160/mo

    - Autoscale enabled

    - Managed by chef

  - Rails & Golang

    - features first in ruby

    - later are optimized in golang micro services

  - Heavy user of NSQ

    - platform is largely asynchronous

  - Avg external (rails) response time: 20ms

  - Avg internal (golang) response time: 1ms

  - Avg requests/day: 1.3 million
 Frontend:
iOS:

  - 90% swift app

  - 10% obj-c

  - Switched from Core data to Realm, and haven't looked back

 Android:

  - RxJava based

  - Slowly converting to realm from just basic http cache architecture
 Stats:
- 2.5 devs
- 1 pr person
- 1 business person
- ~40,000 users
Get some points, and feel good about your body, you only get one! (for now?)
Thanks for reading! All comments welcome
email@example.com <comment><USER2> hey one of the 2.5 devs here, been involved with this project for a while now. Thanks HN community for checking it out!</comment>


How I got the media to talk about my side project - <AUTHOR> How I got the media to write about me:
Hey everyone. Here's a repeatable, step-by-step process I figured out to get media to write about me, resulting in a backlink, traffic, publicity, and, of course, subscribers. I used this to get mentioned in MarketingProfs (a major marketing site) and Forbes.
I know it's long but I tried to make things as concise as I could.
First, you have to consider things from the journalist's perspective. Why should they write about you? Most journalists have "beats". That is, topics they cover. You need to have something that they like that they will cover (usually a piece of content). For me, I did original research. An easy way to validate this is to see whether they have written about similar things in the past. Remember, journalists get a lot of pitches. Most of them are not targeted.
A note on research. It's not nearly as intimidating as it sounds. There's a lot of public data out there. You can also analyze a small amount of data (like 100 rows of something). You can use free online tools to come up with some graphs.
Then, get a list of 50 journalists you think are a good fit.
Then, you want to follow them on Twitter, respond to a few of their tweets. This at least puts you on their map.
If you want them to cover a piece of content, ask them beforehand whether they'd be interested in the piece and some questions they have about the topic. Journalists like to collaborate on research.
Then, create your content with their feedback.
Finally, let them know. If you did it right, you'll have a few stories written about you.
Be sure to continue to nurture the relationships you've built. <comment><USER2> It would be great to see the piece of content and final articles you describe and to know more about tools for research with use cases.

<comment><AUTHOR> I didn't want to seem too promotional but sure.

The article: [http://growista.com/viral-posts-new- research/](http://growista.com/viral-posts-new-research/)

Forbes mention: [https://www.forbes.com/sites/cherylsnappconner/2018/02/19/by...](https://www.forbes.com/sites/cherylsnappconner/2018/02/19/by- the-numbers-how-viral-content-is-evolving-and-what-entrepreneurs-need-to- know/)

Another media placement: [https://www.marketingprofs.com/charts/2018/33655/what- goes-v...](https://www.marketingprofs.com/charts/2018/33655/what-goes-viral- learnings-from-100000-popular-content-pieces)

I used python and matplotlib to do the research on data I got from buzzsumo.com</comment></comment>


Show HN: Stu – Build automation / make replacement for data mining projects - <AUTHOR> https://github.com/kunegis/stu <comment><USER2> Related Blog with usage examples: [https://networkscience.wordpress.com/2016/04/01/stu-build- au...](https://networkscience.wordpress.com/2016/04/01/stu-build-automation- for-data-mining-projects/)

</comment><comment><AUTHOR> Hello everyone; the defining feature of Stu is that it allows to parametrize rules and to execute a rule over a set of values for each parameter. This can be achieved more or less easily with other Make-like tools, but Stu makes it the central concept and therefore has a clean syntax for it. Stu is mainly used in data mining projects where we often iterate over many datasets, many variants of algorithms, etc.

<comment><USER3> So, I'm torn, because there's really something to scratching your itch your way.

But there's a saying: A year in the lab saved me hours in the library. It applies to code, too.

Make has some profound science and experience crystallized in its approach to the world. Anyone starting down their road with a new code base is making a strong statement, whether they realize it or not.

I'm not sure I know what you mean by 'parameterized rules'. but if you mean something as simple as 'A target to be built can imply more than one token to be used in the rules to generate it' then I think you're reinventing wheels.

It's a lot of fun to build a green field that does just what you (think you) want, and then take the first few steps to generalize it, and think "I've built a new tool!". But somewhere in there you'll become an old fart, and wonder why These Kids keep on re-inventing tools that have been written well, and worn butter-smooth by the passage of many nerds.

Meh. Take a look at how you can calculate multiple tokens from a target string,

[https://github.com/rout39574/make_an_example](https://github.com/rout39574/make_an_example)

it may not be your cup of tea.

old fart out.

<comment><AUTHOR> Hi; a parametrized rule in Stu would be something such as:

list.$NETWORK.$METHOD.$STYLE.txt: data/$NETWORK.txt compute_$METHOD.py style_$STYLE.css { python compute_$METHOD.m --dataset data/$NETWORK.txt --style style_$STYLE.css }

GNU Make supports individual parameters with '%', and Cook [1] supports multiple parameters with '%1'/'%2'/etc.

The second defining feature of Stu are what we call 'dynamic dependencies', which work like this:

@all: [dep];

>dep: NETWORKS.txt METHODS.txt STYLES.txt { for NETWORK in $(cat NETWORKS.txt) ; do for METHOD in $(cat METHODS.txt) ; do for STYLE in $(cat STYLES.txt) ; do echo list.$NETWORK.$METHOD.$STYLE.txt done done done }

I.e., a filename in brackets is first built, and then Stu will parse its content as a list of dependencies.

Myself I have used Make for years in the KONECT project [2], and implementing these types of things is possible with Make, but only using some very verbose and ugly hacks that become unreadable very fast. Also, I don't know of another tool that has these features, and therefore I wrote one; the one that comes closest is Cook by the late Peter Miller.

[1] [https://ftp.gnu.org/non-gnu/cook.README](https://ftp.gnu.org/non- gnu/cook.README) [2] [http://konect.uni-koblenz.de/](http://konect.uni- koblenz.de/)

</comment></comment></comment><comment><USER3> Make has done 'dynamic rules' for a long, long time.

[http://make.mad-scientist.net/papers/advanced-auto- dependenc...](http://make.mad-scientist.net/papers/advanced-auto-dependency- generation/)

</comment><comment><USER4> How is this different from drake?

drake - Data workflow tool, like a "Make for data" (in Clojure): [https://github.com/Factual/drake](https://github.com/Factual/drake)</comment>


Dear Java library guy - <AUTHOR> http://blog.tmorris.net/dear-java-library-guy/?utm_source=twitterfeed&utm_medium=twitter <comment> brown9-2 Dumb code can be written in any language.

<comment><USER2> True, though some languages are more inviting.

<comment><USER3> I don't get it. What does this have to do with Java?

</comment></comment></comment><comment><USER4> I like the check for /etc/passwd. For a second the thought that it might just be the most ghetto platform check heuristic ever blipped into my mind, and then I remembered that integer arithmetic is totally portable anyway so it doesn't matter -- and it's Java, so it doesn't matter. I hope OP actually saw this code in the wild somewhere; that'd be kind of amazing.

</comment><comment><USER5> DRY humor?

<comment><USER6> Don't know. Maybe some humor, but definitely not dry.

<comment><USER5> DRY bumor?</comment></comment></comment>


Tumblr is not alone - <AUTHOR> http://www.google.com/search?hl=en&q=inurl%3ASELECT+inurl%3AFROM+inurl%3AWHERE+intitle%3Aphpmyadmin&btnG=Search

<comment><USER2> Heh. Lot of them are secured though.</comment>


Who Killed Bitcoin - <AUTHOR> https://medium.com/@mkogan4/who-killed-bitcoin-d121aadee28c <comment><USER2> > Empirically, value of bitcoin relative to other cryptocurrencies appears > unconnected or only weakly connected to the properties that we think give it > value in the first place.

This is an important point that anybody who has been into cryptocurrency for a while can attest to. We have watched the Bitcoin network exploding in price while meanwhile becoming worse and worse at what it is supposed to do.

Enthusiasts have changed the goalposts, claiming that Bitcoin instead is like digital gold, an idea which Satoshi himself convincingly argued for: [http://satoshi.nakamotoinstitute.org/posts/bitcointalk/428/](http://satoshi.nakamotoinstitute.org/posts/bitcointalk/428/) However, since there are now so many competing products to Bitcoin, equally as scarce but with many better features, I'm not sure peoples' faith in its long- term value can hold forever.

<comment><AUTHOR> Agreed, but I was trying to show some evidence for this, specifically by looking at ytd appreciation of various crypto relative to bitcoin.

</comment></comment><comment><USER3> Poor clickbait. First few words from the post are as follows: "Well, nobody, yet. And, perhaps, nobody ever will.".

<comment><AUTHOR> clearly, nobody has yet killed it because it's still alive. Do you have any substantive comments, though, on the content?

<comment><USER4> There is no content.

From the intro, I was expecting some kind of analysis of the most promising "next-gen" crypto currencies, and how they are better or not better than Bitcoin. When I got to the end I thought for sure there was more to go and maybe the page hadn't loaded fully.

<comment><AUTHOR> well, I guess we have to agree to disagree. It's a short note making a simple point, but I strongly disagree that there is no content. In fact, it sounds like you enjoyed the content so much, you were hoping for more :)

<comment><USER5> Doesn't change the 'note' clickbaity nature, OP.

<comment><AUTHOR> Look, the title was clickbait. it worked, cause lots of people clicked on it. the content, in my opinion, wasn't.

</comment></comment></comment></comment></comment></comment><comment><USER6> I think the next global recession will kill Bitcoin. It's supposed to be a"store of value", but as soon as stuff hits the fan, people are going to flee to safety and convert their Bitcoin to usd, cny, eur, and krw and Bitcoin will tank as a result. The crypto currencies with more purposes will take a hit, but come back stronger.

<comment><AUTHOR> Perhaps, but a global recession of a large magnitude may not happen for many years.

</comment></comment><comment><USER7> I was expecting some extensive discussion about how bitcoin might die- for example, through extensive monitoring of transactions, state regulations, 50%+ attacks from state actors, spikes in electricity cost. More interesting than "well maybe a better cryptocurrency might take over".

<comment><AUTHOR> yeah, but I don't think it's going to die from any of those things you mentioned. it's too robust. that's why those things are not in the note.</comment></comment>


Titanium – a Clojure graph library built on top of Titan - <AUTHOR> http://blog.clojurewerkz.org/blog/2013/02/11/introducing-titanium/ <comment><USER2> Does anyone have experience working with Titan, either on the side or in production? Is Titan production ready?

The flexible storage backends, clustering, and the open source license are all very enticing. I've been looking for a graph database for an upcoming project and have yet to find something that really matches what we're looking for.

<comment><USER3> I'm currently playing around with it for a large internal development project. My only concern (and why I'm leaning towards using Neo4j at least initially) is that I don't really yet have a good indication if I'm going to be dealing with enough data to warrant a big distributed solution.

I'm actually right now mostly messing with TinkerGraph (an in memory graph database that's part of the Tinkerpop utilities that the Titan guys make).

<comment><USER4> With Titan/BerkeleyDB you will get blazing performance for a single-machine distribution. One of the wonderful innovations of Titan is vertex-centric indices that is even necessary at single-machine scale.

      http://thinkaurelius.com/2012/10/25/a-solution-to-the-supernode-problem/

Next, if you decide to scale horizontally, then you can simply change the storage.backend=cassandra and thats that (of course, you need to do a bulk data transfer from BerkeleyDB to Cassandra).

<comment><USER3> That's good to know actually; I think that'll probably be a good approach for my application.

For what it's worth, it was seeing a video of you giving a talk about Titan that made me start looking into it. It seems super neat.

</comment></comment></comment></comment><comment><USER5> Another Titan library for Clojure is Hermes: <https://github.com/gameclosure/hermes>

<comment><USER6> my team has made a ton of contributions to hermes - it's a pretty solid library. that said, i'm happy to see more traction for clojure + titan, especially from the clojurewerks crew.

</comment></comment><comment><USER7> Does anyone know if this supports (efficient) graph-rewriting?

I'm thinking of this kind of patterns:

If there are nodes n and n' such that

      - there's an edge from n to n' and

      - n has a label XY

then add label Y to n'

So what I'd want to do is match basic patterns and then add nodes, edges, and labels.

<comment><USER8> There is support for graph rewriting for a Titan-backed data-set using Faunus. Titan does not support global graph operations. Therefore, Faunus was created to allow you to perform offline graph operations much like the one you've described.

<comment><USER7> thanks. that looks interesting.

</comment></comment></comment><comment><USER9> Bolth. Bolth? Bolth.

[https://github.com/clojurewerkz/titanium/blob/master/src/clo...](https://github.com/clojurewerkz/titanium/blob/master/src/clojure/clojurewerkz/titanium/conversion.clj#L26)</comment>


Evidence of Cosmic Impact at Abu Hureyra, Syria at the Younger Dryas Onset - <AUTHOR> https://www.nature.com/articles/s41598-020-60867 <comment><USER2> Bad URL.

Maybe this one?

[https://www.nature.com/articles/s41598-020-60867-w](https://www.nature.com/articles/s41598-020-60867-w)</comment>


How to Use Clojure for Scripting - <AUTHOR> http://asimjalis.github.io/blog/2016/12/07/clojure-for-scripting.html <comment><USER2> "This turns Clojure into a scripting language much like Python, Ruby, Perl, or Bash" would be if you added a sleep(45) to the beginning of every script you wrote with them. All the latency of a compiled language with all the bugs of dynamic one. :)

I'm (mostly) kidding...

I _want_ to like clojure. I've always had a soft spot in my heart for lisp, and clojure seems to be the best contender for hitting the right balance between the classic "no syntax at all, just more parens" and various more modern takes on "It's lisp, but with our own weird syntax bits layered on." Unfortunately the JVM'ness of it has shown through so much as to kind of turn me off. (Not least of all the overhead of starting a JVM to do anything.)

<comment><USER3> If you think Clojure has too much startup overhead for scripting, maybe Pixie[1] will pique your interest.

[1] [https://github.com/pixie-lang/pixie](https://github.com/pixie-lang/pixie)

<comment><USER4> Here's a wonderful talk to introduce its design and value [https://www.youtube.com/watch?v=1AjhFZVfB9c](https://www.youtube.com/watch?v=1AjhFZVfB9c)

</comment></comment></comment><comment><USER5> If you want to keep the repl running this is fine, but for scripts, you should be using planck[1] or lumo[2]. Planck in my experience has nice command-line args parsing by default, both should be fast enough not to be annoying when running scripts.

[1] [http://planck-repl.org](http://planck-repl.org) [2] [https://anmonteiro.com/2016/11/the-fastest-clojure-repl- in-t...](https://anmonteiro.com/2016/11/the-fastest-clojure-repl-in-the- world/)

<comment><USER6> Seconded. Planck is fantastic for scripting, and the accompanying tutorial[0] is great for getting started. The only problem is that its OSX only

[0] - [http://planck-repl.org/scripts.html](http://planck- repl.org/scripts.html)

<comment><USER7> I don't get it, why didn't he used nodejs from the start instead of JSCore so it would have windows,linux,osx support?

<comment><USER8> So that it would have iOS support via JSCore.

</comment></comment></comment></comment><comment><USER9> You don't need that `cemerick.pomegranate` import. Boot can already do that - the `deps` functions should look like this:

        (defn deps [the-deps]
          (merge-env! :dependencies the-deps))

<comment><AUTHOR> Nice. I like it. Thanks!

</comment></comment><comment><USER10> Only sort of related, does anyone have any insight into whether Slamhound will eventually support ClojureScript? Namespace declarations were probably my least favorite part about Clojure until I happened on Slamhound, now I pretty much don't have to think about them. Working with ClojureScript without Slamhound is rather annoying...

</comment><comment><USER11> Boot is too slow to start. Use Lumo, which is based on Node.js and boots really fast. And npm packages are available too. Well, it's more JavaScript than Java.

[https://github.com/anmonteiro/lumo](https://github.com/anmonteiro/lumo)

</comment><comment><USER12> I thought Boot's scripting features were removed in the 2.0 release? If I remember correctly, there was a major overhaul in both its API and feature set. I'll have to revisit the changelog/docs.

Anyways, running a clj file using the provided shebang does indeed work! Albeit _much_ more slowly than a comparable Perl|Python|Ruby script.

</comment><comment><USER13> I love it. Simple and easy to get started.

</comment><comment><USER14> how do you start a boot repl in production?</comment>


Napster sold for a song to UK virtual events company - <AUTHOR> https://arstechnica.com/gadgets/2020/08/napster-sold-for-a-song-to-uk-virtual-events-company/ <comment><USER2> It's amazing that anyone paid $5 for the name now. Who do they expect to care at this point? A reverse takeover for one last pump and dump hurrah?</comment>


We need your help - <AUTHOR>

Hey guys,
Not sure if this accepted here but just don't know where to head to.
We are three guys working on this relocation platform that connects international students going abroad with apartments.
We just completed our MVP and its kinda exciting but we need to start doing some offline business which includes taking pictures of apartments and we have gotten total 30 apartments.
We need a small angel around to hire an interior photographer & marketing
We need support.
If you think this is a good fit, please email me @ email@example.com
Thanks <comment><USER2> Read the FAQ and the Guidelines.

Your post is too general (headline, questions, are you recruiting or looking for "help?" do you want feedback on your product?)</comment>


Sorry Left AND Right, No Job Requires A College Degree - <AUTHOR> http://www.forbes.com/sites/johntamny/2013/02/10/sorry-left-and-right-no-job-requires-a-college-degree/

<comment><USER2>
        President Obama regularly talks up the need for more
        math classes "to equip our children for the future."
        The latter is odd and a bit dated, particularly when
        we consider that computers and calculators have largely
        made the need for math knowledge something of the past.

I recently read a comment saying

        "Everyone who talks about advanced math think it's
        just more of the most advanced thing they know."

Thus if you never did school algebra, you just think advanced math is just sums with bigger numbers. If you did do school algebra, you think advanced math is just using more variables in bigger equations. If you did calculus you just think it's more convoluted differentiation, or integration. If you did calculus of variations, you think ...

Well, you get the idea.

Yes, computers these days can do arithmetic much better than people can. And given the equations to manipulate, they can do the school algebra and calculus better than people can.

But that's neither what advanced math is, nor what advanced math gets used for.

Sorry Forbes, you certainly don't understand math, or the math. While it may be true that jobs don't require degrees, in many cases they certainly need the skills that degrees are supposed to impart. Whether they succeed in that, or whether they're now just a mill for turning out bits of paper, that's another question.

</comment><comment><USER3> A quote from the article: "President Obama regularly talks up the need for more math classes 'to equip our children for the future.' The latter is odd and a bit dated, particularly when we consider that computers and calculators have largely made the need for math knowledge something of the past."

This is absolutely false. What computers and calculators do is arithmetic, not mathematics. To do math above the trivial, you still need a properly trained person.

This doesn't argue against the point of the article, which I agree with. But the fact that calculators and computers can do arithmetic shouldn't be used to argue against math education. That would be like arguing that, because computers can spell-check, we no longer need readers, writers or literacy training.</comment>


Why the U-Shaped Travel Neck Pillow Is Useless (2017) - <AUTHOR> https://www.theatlantic.com/health/archive/2017/10/against-the-u-shaped-travel-neck-pillow/542472/ <comment><USER2> The neck collars link brings me to a weird scam website.</comment>


Making Our APIs Solid, by Breaking Them in Production - <AUTHOR> https://heap.engineering/making-our-apis-solid-by-breaking-them-in-production <comment><AUTHOR> Heap CTO here – would love to hear about measures you've taken to make your APIs solid or answer any questions you have!</comment>


A Response to Ineffectual Java-NG Proposals - <AUTHOR> http://blog.fogus.me/2010/09/21/a-response-to-ineffectual-java-ng-proposals/

<comment><AUTHOR> From TFA:

      // The point is... if you're going to invent a
      // new Java that breaks compatability, then
      // at least try and fix some of the major issues
      // like verbosity, invariants, inference, checked
      // exceptions, and mutability.  Go wild.  Everything
      // presented here could be compiled directly into Java.</comment>


Ask HN: For Thiel Fellowship, what if I'm under 20, but my co-founder isnt? - <AUTHOR>

I couldn't find anywhere on their rules page that addresses this concern directly.
It says you can apply as a team up to 4 individuals, but can I apply by myself and bring/support my co-founder with me with the fellowship's pay IF I get it?
Well, first off, do I still qualify to get the Fellowship if I'm under 20, but my co-founder JUST turned 20 last week? <comment><USER2> I'm nowhere near 20, and know only what I've read online about the Fellowship, but based on my life experience only, I would recommend you apply -- don't worry about the rules as much as pitching yourself and opportunity.

Advice worth what you paid for it! (And, good luck!)</comment>


Internet Archive building damaged by fire - <AUTHOR> http://www.bbc.co.uk/news/technology-24848907

<comment><USER2> They are asking for donations to recover: [https://blog.archive.org/2013/11/06/scanning-center-fire- ple...](https://blog.archive.org/2013/11/06/scanning-center-fire-please-help- rebuild/)

<comment><USER3> Are they covered by insurance at all?

</comment></comment><comment><USER4> You can donate BTC: [https://archive.org/donate/bitcoin.php](https://archive.org/donate/bitcoin.php)

<comment><USER5> [https://blockchain.info/address/17gN64BPHtxi4mEM3qWrxdwhieUv...](https://blockchain.info/address/17gN64BPHtxi4mEM3qWrxdwhieUvRq8R2r)

Apparently they currently have 52BTC in that address, about 15000USD. Not bad. Hope the private key wasn't in this building :)

</comment></comment><comment><USER6> TLDR: Don't worry, no data was lost.

<comment><USER7> "However, the fire did cause the loss of some materials that were being prepared for digitisation - the full extent of which is still being assessed."

</comment></comment><comment><USER8> This was posted yesterday and was on the front page for most of the day:

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

(hell, it's still on the 3rd page)

</comment><comment><USER9> "No data was lost, a spokesman said"

:D

</comment><comment><USER10> BREAKING: the internet is on fire</comment>


Drinking with Co-Workers - <AUTHOR> https://slate.com/human-interest/2018/02/harassment-isnt-the-only-reason-we-should-rethink-drinking-at-work.html <comment><USER2> Got a buddy who works for github, he went out drinking at a local pub after work, started flirting with this woman, they had drinks at the bar and chatted for awhile flirting back and forth.

Two other women co-workers overheard the conversation between the two, and then reported HIM to github HR.

HR actually tracked the github female employee down and asked if she was sexually assaulted by him, and she said no. He got a warning from HR, even though he did nothing wrong.

Been working tech for almost 30 years, seeing co-workers drinking and banging for years, office parties getting wild, co-workers sexting over IM, even a couple who freaky in the att wireless datacenter, lots of couples getting married.

Now having a beer with someone is potentially HR violation. Crazy.</comment>


Why do software engineers put off writing documentation comments? - <AUTHOR> https://www.quora.com/Why-do-software-engineers-put-off-writing-documentation-comments?share=1 <comment><USER2> For me, this feels more like a problem of mindset. I'd talk to one of my fellow developer and after giving him feedback that this 500-line bash script desperately needs to be broken up into functions, he replied: "of course, we'll do that when there's time". The problem is, there's never time.

Documentation is best written right when you finish writing the code and you're happy with it. At the very least, I'd recommend writing comments which will make the author remember the most important things that need to be documented.

Lack of docs, or 'we'll refactor it later' code has also become my #1 reason for refusing to merge. I'd allow it if and only if the deadline is today, and it's Friday at 3pm.

It's also true though that a lot of my fellow developers were just utterly bad at writing documentation. If I saw an attempt, though, I'd merge and fix the docs later (or pester them about fixing it later).

</comment><comment><USER3> The biggest reason is probably that no one who matters to their careers will criticize them for not writing comments. That goes double for documentation outside comments, which they know from experience no one will read, anyway.

</comment><comment><USER4> When writing code, you don't want to context switch to writing doc comments while holding the problem in your head. So you do it after the fact, if at all.

<comment><USER5> I've switched to writing my docs first when writing libraries. it's like a play on test driven development. The benefit is that I start with a sane and interface if the first thing i think about is the user and not the implementation.

</comment></comment><comment><USER6> bc cms's generally have terrible wysiwyg editors and devs would rather be coding.</comment>


Dear HP: Please Keep Making Those TouchPads - <AUTHOR> http://techcrunch.com/2011/08/23/dear-hp-please-keep-making-those-touchpads/

<comment><USER2> Large amounts of unintended irony in this piece featuring tablet advice from Arrington ( _red flag_ ) that amounts to "HP should sell large numbers of hardware for low margin".

You mean, just like the PC business they're trying to exit? And the console business that can't shoot straight because the era of $60 apps is fading fast?

Because you know, Best Buy is super excited to buy tablets from HP for just under $200 and retail them for $200 while being shut out of the app/ad/bandwidth/content ecosystem.

To make an ecosystem only strategy work today I think you need to have your own distribution network and HP isn't really in a position to burn bridges with Best Buy over the rounding error that is their tablet business.

<comment><USER3> I agree with you, beside the Best Buy comment. They already operate with small margins for the hardware, where they make most of the money is selling you all the other crap with it, from the case for your brand new tablet to a 3 year extended warranty.

</comment></comment><comment><USER4> I don't think people bought the TouchPads because they wanted a low-quality "couch surfing" device; they bought them because they knew it was an incredible price for the hardware, and with all the media hype happening, they had to buy them before they ran out and then figure out a use for them later.

Even _I_ was considering buying one, and I _knew_ I would have played with it for half an hour and then never touched it again.

<comment><USER5> I'm with you, I think that if the Touchpad had launched at a $99 price, it would not have flown off the shelves the way that it has these last few days. Part of the reason people are buying them is that it is their last hurrah, no Touchpads will ever be made again. There is a very real novelty factor there. On top of that, it is not just a $99 tablet, but rather a $400 savings.

<comment><USER6> Borders stores were packed during liquidation sales, despite the fact that there were few real bargains to be found. People love a perceived bargain.

</comment></comment></comment><comment><USER7> It seems I'm in the minority here, but I really like what Arrington is saying.

People will pay $100-$200 for a dedicated eBook reader. As much as I love my iPad, it does come with a few extra things that one doesn't necessarily need. There's room in the market for a $200 tablet from a consumer point. I have no idea if it makes sense from the manufacturer's point of view, though.

That said, this recently created space [cheaper tablets] has started to be dominated by Android tablets. Can webOS find a place there? I don't know. But I think it will have a greater chance of taking on this market than the $500 range overwhelmingly handled by Apple's iPad.

 _edit: if they go as cheap as chips and hardware + a little more, they can also have a huge impact on basic tablets used for education, etc. in my dream world, techcrunch somehow licenses webOS and makes the CrunchPad once and for all._

 _double edit: in the comments someone suggested subsidizing the tablet device to lower its cost and making it up using app sales or a subscription. think game consoles. that would be interesting._

<comment><USER8> Why will "people" pay that? I know it's cheaper than the kindle. Apart from the novelty factor though, why would anyone pay that much for a device to read books?

I have a 2003 version of an actual ebook reader with a passive screen. If all you are after is an ebook reader I am sure these things would sell for $20 at the most and you could make a happy profit. What a bargain eh?

The problem is that the market is not driven by people's desires, but rather by moneymakers' profits. If we can't make 25%+ on each sale, why bother?

<comment><USER9> I'm confused, the TouchPad is cheaper than a Kindle, true, but the Kindle has demonstrated that there's a huge market for $100-150 eBook readers. The TouchPad just isn't the right product.

</comment></comment></comment><comment><USER10> 7" Capacitive (Android) tablets are already under $200: <http://s.dealextreme.com/search/capacitive+android+tablet>

These aren't crappy, low powered devices, either. Take this one: [http://www.dealextreme.com/p/7-capacitive-screen- android-2-3...](http://www.dealextreme.com/p/7-capacitive-screen- android-2-3-tablet-pc-w-wifi-hdmi-otg-3d-acceleration-1-2ghz-4gb-72878). It is Android 2.3, 1.2Ghz processor, HDMI out, etc etc. The only weakness is it is WiFi only, but it is only $166.

There are still supply constraints around larger 9" & 10" capacitive screens, but 7" screens are getting cheap enough now that it's possible 7" capacitive tablets will drop below $100 by the end of the year (depending on the exchange rate though..)

</comment><comment><USER11> WebOS is a terrible, flawed, slow as molasses OS.

WebOS will _never_ gain traction because apps on it will always be much slower than native compiled apps on iOS or even JITed apps on Android.

It's that simple. No amount of buzzword compliance is going to change that.

Just look at this benchmark:

<http://images.anandtech.com/graphs/graph4658/40733.png>

The device/OS which relies on JavaScript performance for _everything_ is the slowest when it comes to JavaScript performance. :) Even if they could 2-2.5x performance, it'd still be noticeably slower than iOS or Android.

Anyone who thinks people are buying these TouchPads because they think they're a viable product is delusional at best. People are buying them because they're $99, and $99 doesn't buy you much these days.

<comment><USER12> That's why I want one to test my web apps, keeping in line with yesterday's discussion - <http://news.ycombinator.com/item?id=2911935>.

But I haven't seen any fire sales here in the UK. The cheapest I've found is for ~£160 on ebay from people who bought the $99 ones in the US.

<comment><USER13> Dixons/PC World/Curry's had one yesterday online, and in store today. Reduced to £89 I believe.

<comment><USER12> I checked online yesterday but didn't see any reduced prices. I called Curry's just now and they had a recorded message saying they've sold out. I can't believe I missed it!

<comment><USER14> I think I got one on Dabs earlier before they sold out (got a confirmation email but whether they had any stock is another matter). Your best bet is play.com, who haven't lowered their prices yet but probably will.

</comment></comment></comment></comment></comment><comment><AUTHOR> Fire sales always have a novelty. Its not so much the price point but the innate human desire to pick up things at a price they otherwise could not have afforded or wanted to.

</comment><comment><USER15> translation:

Dear HP: Please Keep Burning Money For Our Entertainment

<comment><USER16> With HP focusing on enterprisey software, it'll never again be as entertaining to watch.

But I trust somehow reason will once more shine its light onto HP's board, that they will fire this idiot and abandon his silly idea of turning HP into SAP.

</comment></comment><comment><USER17> I think that's called Groupon. Taking billions of dollars of investor money and tying it up with no hope of making a single dime. You'll get millions of users and entrench yourself deeper and deeper in a broken business model.

</comment><comment><USER18> Dear Techcrunch,

Android tablets will soon be sub-$200 and will come in any number of form factors, styles and configurations using an OS that actually has a chance of long term support. In fact if all you want is a web browsing device they are there already and have been for a while.

<comment><USER19> Dear zmmmmm,

But they are using an OS that is competing directly with Apple and are therefore bad. Even if they do everything we just said we wanted for the price we said we want.

Yours, Techcrunch (especially MG Siegler).

</comment></comment><comment><USER20> "But one thing I was very right on is the huge demand for a less expensive tablet computer"

Arrington should be a futurist/ecomonist, not a op/ed writer -- after all, he was "very right" with this prediction! :-)

But, IMHO, I think he was very wrong that Crunchpads would have flown off the shelves. Brand names matter to consumers when it comes to consumer electronics (do you hear anyone talk about the notionink Adam anymore?). You can find a $200 tablet out there if you want to, but I don't see a lot of people looking beyond the brands they already trust for a solution.

</comment><comment><USER21> The TouchPad will make a great economics case study for price elasticity of demand (<http://en.wikipedia.org/wiki/Price_elasticity_of_demand>). I'm sure someone has already worked out a model somewhere.

</comment><comment><USER22> There is the WeTab which is in that price range with a GNU/Linux on it. MeeGo.

</comment><comment><USER23> dumbass.

[http://arnovatech.com/products/arn_10/index.html?country=us&...](http://arnovatech.com/products/arn_10/index.html?country=us&lang=en)

people's ability to refuse to do a 30 second google search before they spout crap continues to amaze me.

<comment><USER24> I didn't realize a company was offering Android tablets, $199 for 10" and $99 for 7". That's quite cool. Thank you for posting the link.</comment></comment>


Amazing trick to make that 5AM morning routine stick - <AUTHOR> https://medium.com/@newbieag/this-one-amazing-trick-that-makes-the-5am-morning-routine-easy-700c8d56edd0 <comment><USER2> Oh my goodness. Do the people who write this stuff actually believe that what works for them is going to work for other people? If that were the case the world would be full of well adjusted people who get up at 5am.

First of all the tiny flaw in this plan is the first step - wake up at 5am. Sorry not happening for me.

And what hubris to claim that people have to get up at 5am to be productive? People are different.

</comment><comment><USER3> Want a morning routine? Live somewhere that doesn't disrupt and energize/enervate your evening routine.

Live somewhere where you can leave a window open (seasonally) and wake up with the birds and the weather.

Live somewhere that doesn't suck you into another schedule.

Then, let nature take its course.

Of course, our modern world makes this varying degrees of impossible, for many of us. And we compensate. And end up with what we have.

For me, I'd be much more of a morning person, if I didn't have the neighbors and neighborhood from hell.

So... context? Be careful of your choices. Seemingly simple ones, can have very big implications.

P.S. This is _my_ experience. Not necessarily everyone's.

</comment><comment><USER4> TL;DR: Practice your morning routine during the day to make getting up early in the morning easier.

<comment><USER5> Thank you. That was an awful read.

</comment></comment><comment><USER6> ignoring the circadian rythm like that might cause depression in the long term. For me the deepest and most refreshing sleep is between 4am and 7 pm. So if I would want to make that trick for starting the day work, I'd have to wake before it starts or after it ends.</comment>


Is there such thing as a "Startup Site?" - <AUTHOR>

Since becoming a newcomer to the [internet] startup world about a year ago, I have soaked up endless amounts of information. But I have learned bits and pieces from hundreds of different sources. I already had a business background but that becomes irrelevant in many ways once you enter the tech world.
Is there a "startup site" that teaches you many of the most important aspects of building a new company online? I don't mean the programming, coding, design aspect. But something that would teach you or at least aggregate info that could be considered the most important elements to building a startup. I'm talking from idea conception to what a landing page should be and A/B testing all the way to pitching VC's or Angels.
Maybe even a site that used relevant information/perspective/opinion presented here on HN as advice and guidance but in an organized fashion...
Does anything like this exist? <comment><USER2> I would suggest you read the Lean Startup book by Eric Ries and perhaps browse thru videos at Udemy, several videos are free and they sell great content like the StartUp MBA, etc.

I like listening to the This Week in Startups show every week and also to read Hacker News daily.

Try to follow as many relevant people as possible in Twitter and also build a strong list of RSS to follow.</comment>


Show HN: Realtime UI Application Customization Framework for IOS - <AUTHOR> http://mofram.com

<comment><USER2> It's a strange approach to ui customization. Should check it out.

</comment><comment><USER3> Sounds interesting. Really want to give a shot.

</comment><comment><USER4> interesting idea</comment>


'Sophisticated' Android malware hits phones - <AUTHOR> http://www.bbc.com/news/technology-30143283 <comment><USER2> I noticed this has the smell of press-release-as-a-news-report, with Lookout being an Android security company, and them being pretty much the only source in the article. Makes me a little skeptical on how big of an issue this really is. I wonder if there's any solid estimates on what percent of devices are in these phone botnets, and in what regions.

I would be interested in knowing more about how they actually compromise individual devices, but the article, and the linked Lookout blog post, seem light on those details.

</comment><comment><USER3> Hmm.

> Mobile security firm Lookout said the bug, called NotCompatible, was the > most sophisticated it had seen.

> The cyberthieves behind the bug had recently rewritten its core code to make > it harder to defeat, it said.

> The bug first appeared in 2012 and was now on its third iteration

Am I misinterpreting this, or is it common to refer to malware as "bug"? What a nice source of confusion for a programmer! It almost seems as if it is done on purpose to coin a new term.

<comment><USER4> I assume they're using the other definition of the term "bug" as in "you caught the cold bug." It might be local (UK specific) slang though that catching a "bug" is akin to catching a disease or virus.

<comment><USER5> Never heard of that.

Regards,

A Brit.

<comment><USER6> Well ... it _is_ pretty commonly used in the UK to mean disease/virus etc. such as 'a stomach bug', but I still don't think that excuses or explains its usage in this article. To me that just reads like a poor use of technical terminology.

But yeah as another commenter noted this article is aimed at a non-technical audience.

</comment></comment></comment></comment><comment><USER7> [https://blog.lookout.com/blog/2014/11/19/notcompatible/](https://blog.lookout.com/blog/2014/11/19/notcompatible/)

This blogpost delivers both technical details AND better writing.

</comment><comment><USER5> Not sure if it's related, but when browsing sites on my phone I have noticed a lot of ads on websites that redirect you either to a page with an Android download on it, or to a specific game in the Play store. You leave the page you wanted to look at entirely.

<comment><USER8> I've gone to Firefox+AdBlockPlus on my Android phones, after getting one too many Play Store popups. It makes browsing a lot less aggravating. No, I don't want to play Candy Crush.

On PCs, I prefer using NoScript instead, but NoScript could get kind of bothersome on a phone.

<comment><USER9> "Do you want to install our Android app?" ugh. If I did, I'd be LOOKING YOU UP IN PLAY!

Probably the most frustrating thing. Rooted phone, with adblock installed, using Chrome.

</comment></comment></comment><comment><USER10> Are there any current methods of detection? What about this warning of "any app that required a security update to be installed before it was run" \- what is that going to look like? A standard Android warning/request dialog?

<comment><USER11> > A standard Android warning/request dialog?

No, Android does not have standard dialog that requests do make security updates.

There is a notification/activity, that alerts you, when system update is available.

In some rare cases, there may be messagebox telling you, that Google Play Services need to be updated (and after tapping OK, it opens Play Store for you).

What the article describes, is more like drive-by-installation malware. You need to enable unknown app sources (and acknowledge the warning dialog), as well as verify apps. Then you need to download apk and install it.

To make comparison with PCs, it is similar to some random web site persuading you to download random binary and run it as root.

<comment><USER12> > No, Android does not have standard dialog that requests do make security > updates.

OTA updates are in all modern Android devices and it does ask you to update when new versions come out. They aren't security patches necessarily or communicated that way though, they are OS updates, that reflash your phone.

</comment></comment></comment><comment><USER13> Maybe it's the jet lag talking but it seems like the tenses are all messed up in this article, for example "was now" is used in places where they're speaking about the present status of the malware.

</comment><comment><USER14> Hm, I don't see any reference to an exploit that's being used. What versions of Android does this affect? It says 2012, so this could very well have been eradicated.

<comment><USER15> The exploit is social engineering:

"NotCompatible is being spread via spam and websites seeded with booby-trapped downloads"</comment></comment>


Ask HN: Which small laptop for Ubuntu development work? (mid-2014) - <AUTHOR>

I'm looking to buy a small (12" at most, preferably smaller; 8"-10" would be ideal), lightweight laptop or tablet/laptop with available docking station. It must have a not-slow x86 processor and SSD, and at least 8 GB memory. It must work well with Ubuntu; Ubuntu will be used as the primary OS, not via VMWare.
Nice-to-haves: Ideally, the fan would be relatively quiet, and it would have a webcam (that works under Ubuntu). A stylus would be cool.
Non-requirements: gaming, media, good GPU, screen quality, sound quality, stylish looks. I don't care if it's thin, rather i just want a small length and width.
Some systems i have heard of that might (or might not) fit the above criteria are the 11" MacBook Air, the 12" Microsoft Surface Pro 3, the Lenovo Yoga 2. What are the other options? Which is best? Thanks <comment><USER2> The Yoga 2 and Yoga Pro are very good, cost effective, but a little bit heavier than the MS Surface Pro 3. The thing with the Surface Pro 3 is that it isn't a "laptop" it is a tablet with a keyboard, I like the keyboard for what it is, but I would never code full time on it (or use it as my only PC).

The MBA is wonderful, really just wonderful, I have nothing but good things to say about it as a small light laptop. It is a little expensive but the touchpad is darn good and the keyboard is also a pleasure.

I'd strongly suggest you head down to Best Buy. They have the Yoga 2, Surface Pro 3, AND MBA. So all three of your core options. Get a feel for the weight and the trade-offs.

PS - I own a Surface Pro 3, it is good, but it is ultimately a tablet that can run x86-64 applications, and even with the kickstand it isn't as usable as a "real" laptop. Plus the dock is super expensive in its own right.

PPS - Given your list and your requirements I suspect you'll get the MBA. It is the "boring" option but something can be said for just getting something which will simply work and is popular enough so you'll get good driver support on Ubuntu.

<comment><AUTHOR> i haven't tried the Yoga yet but i will soon. It sounds like you've had a great experience with the MBA, though, thank you, that helps.

</comment></comment><comment><USER3> I currently use a Thinkpad x230 with Ubuntu. It has a 12.5" screen. I've been satisfied with it. I'm not sure about the current version (x240 [0]), though. They also have a tablet version.

[http://shop.lenovo.com/us/en/laptops/thinkpad/x-series/x240/](http://shop.lenovo.com/us/en/laptops/thinkpad/x-series/x240/)

<comment><AUTHOR> Thanks -- it looks like a decent computer.

<comment><AUTHOR> (I do worry about the size though; my current computer is a 10.1" Fujitsu Lifebook T580 and i really appreciate its small dimensions -- as noted in the post, what i'd really like is something between 8" and 10", but i might go up to 12" if i have to)

</comment></comment></comment><comment><USER4> I wouldn't try Ubuntu on the Surface 3 Pro. I'm pretty sure you will have problems with the keyboard ... like these guys here:

[http://www.geek.com/microsoft/linux-users-rejoice-heres- ubun...](http://www.geek.com/microsoft/linux-users-rejoice-heres-ubuntu-on- the-surface-pro-3-1594864/)

Don't get me wrong, I like the specs of Surface 3 Pro, I just don't think it will work so great with Ubuntu.

What you should do is to do some research about how Ubuntu runs on the hardware other people suggests.

Personally I would go with a Dell XPS 13" that already comes with Ubuntu 12.04 installed. The system will probably work well with Ubuntu 14.04 too. Also it has 8GB or RAM and 256 GB SSD.

[http://www.dell.com/us/business/p/xps-13-linux/pd](http://www.dell.com/us/business/p/xps-13-linux/pd)

<comment><AUTHOR> Thank you, yes, I'm aware of the keyboard problems with the the SP3, but i'm confident they'll be fixed soon and in fact some people have claimed to have fixed it already on their systems eg [http://ubuntuforums.org/showthread.php?t=2231207&page=2](http://ubuntuforums.org/showthread.php?t=2231207&page=2) . However i do agree that that is likely a sign that there will be other annoying problems. The Dell XPS 13" looks great, but i'd really like a smaller computer. I currently have a 10.1" Fujitsu Lifebook T580 and i really appreciate its small dimensions. 12" is already a big stretch for me, and i'm not willing to go any larger, especially since most of the time the computer will be plugged into my external monitor and keyboard anyways.

<comment><USER4> Probably a MacBook Air 11" is the best choice for you. Be sure to check online if other people had problems installing Ubuntu on the Air.

[http://www.phoronix.com/scan.php?page=article&item=ubuntu_14...](http://www.phoronix.com/scan.php?page=article&item=ubuntu_1404_mba2013gl&num=1)

</comment></comment></comment><comment><USER5> I strongly recommend an Acer C720. The conversion is mostly painless and the portability is incredible. Aslo, once it's set up I've had to do nothing.

At least consider it. For someone who works at the office on a MacBook Pro retina with 16 gb of ram the 2gb isn't a cause for concern either though you will notice it while compiling anything.

<comment><AUTHOR> Thank you, unfortunately the 8GB is a requirement as i sometimes work with some large datasets in Numpy.

</comment></comment><comment><USER6> Give DellMini9 a try.</comment>


A World Without Clouds: Cloud Loss Could Add 8 Degrees to Global Warming - <AUTHOR> https://www.quantamagazine.org/cloud-loss-could-add-8-degrees-to-global-warming-20190225/ <comment><USER2> As an American, I'm frankly sick of the US inaction on climate change. It makes me hate being an American. It almost makes me want to live somewhere saner from a climate pov. (Disclaimer: I'm a pacifist.)

</comment><comment><USER3> As much as I hate the idea because of the complexity involved and possible side-effects but maybe climate engineering will be actually unavoidable in the long run.

That _does not_ mean that we shouldn't try everything possible and maybe not- yet-possible to avert the worst.

</comment><comment><USER4> This might be slightly off-topic but I wonder why, in the context of Global Warming, solutions like this [1] aren't more widespread.

[1] [https://www.ted.com/talks/allan_savory_how_to_green_the_worl...](https://www.ted.com/talks/allan_savory_how_to_green_the_world_s_deserts_and_reverse_climate_change?language=en)

<comment><USER5> If you follow the link you'll see that they've made a note that a number of scientists disagree with him. These two articles came up immediately after going to his Wikipedia page: [https://www.sciencedirect.com/science/article/pii/S0308521X1...](https://www.sciencedirect.com/science/article/pii/S0308521X13001480?via%3Dihub)

[https://www.hindawi.com/journals/ijbd/2014/163431/](https://www.hindawi.com/journals/ijbd/2014/163431/)

<comment><USER4> Thanks, I've missed that

</comment></comment></comment><comment><USER6> I remember that there was work kicked off when 911 grounded global flights, and the contrails from aircraft declined reducing cloud cover, but that doesn't seem to be mentioned in this article.

Frightening stuff, climate change and nuclear weapons, not a good mix.

<comment><USER7> I'm much less worried about nukes than about climate change tbh. Looking at the big picture, they basically cap the extent of humanity's madness, presumably before it's possible to trigger a Venusification of the planet and just sterilize it outright (i.e. thermal equilibrium at ~120 degree Celsius).</comment></comment>


Show HN: Compliance and Payroll for International Remote Workers - <AUTHOR> https://remotehr.co <comment><USER2> I can't see exactly what you are offering in the "compliance" space. Does this handle paying/withholding taxes for international workers? Or is this just a dashboard showing you sent them money?

<comment><AUTHOR> Compliance is making sure they signed the right documents (W-8EBN for remote workers) and that they provided their real address. (It differs a lot depending on the state/country).</comment></comment>


Advice for Software Apprentices - <AUTHOR> http://bthdonohue.com/2019/09/27/advice-software-apprentices.html <comment><USER2> Good list. I've just met some boot camp grads at their graduation demo day sort of thing, and I think a lot of this would apply to them.

They all called themselves full-stack, but the author is right, this is spreading themselves far too thinly given the amount of knowledge and experience they actually have. Instead pitching themselves as "frontend focused with some backend Node experience" would be far more convincing to me when hiring.

One thing that bothered me was that they all called themselves a "Junior Software Engineer". Technically this is sort of wrong, as none have been employed and so don't yet have a title. For practical purposes I understand wanting to have a title to pitch yourself as, but I don't think anyone is a Junior after 3 months of training. After 3 years at university, or 1-3 years in industry (depending on candidate and environment), I can see Junior being an appropriate level. I wonder if "apprentice" is a better level for them to call themselves.

Maybe boot camps should be encouraging that title, and maybe even helping companies develop progression plans. I'm skeptical about hiring a boot camp grad straight out of a program because of how long it may take them to become productive. If the program provided a sort of roadmap, with further skills development, I can imagine being more interested as there might be less uncertainty. That's not to say we couldn't develop this roadmap ourselves with the candidate, but the boot camp providing it may help pitch candidates to employers.</comment>


XML is not S-Expressions - <AUTHOR> http://www.prescod.net/xml/sexprs.html <comment><USER2> XML definitely adds features over sexps, and is good for adding markup to primarily text-based documents, where the concept of bare text has an intuitive meaning, and elements denote a formally defined machine-readable layer on top.

However, the fight occurs when XML is used as a generic serialization format, or even as syntax for a programming language. There, the features only add redundant complexity (what does unquoted text mean in an ant build file? why am I putting quotes around identifiers, and why am I including the redundant end tags when my editor indents for structure?). When your format already has specific semantics, the wiggle room between element/attribute/text only adds inflexible accidental complexity.

<comment><USER3> JSON is another contestant in the generic data serialization space, which is doing better than sexp - possibly due to the ubiquity of javascript (free- riding the web). Though, for this technology generation, the fight is over.

I think there'll be another chance when SOA/web services are superseded; but there's still huge scope for improvement within their present architecture/ecosystem (e.g. REST vs. SOAP vs. ?).

For programming languages, sexps are competing against all the other language syntaxes out there, not just XML. I agree that it seems odd that ant uses XML though... perhaps the extensibility of ant is easier with some kind of generic format (like XML/sexp/JSON)? yet other languages manage to be extensible via functions/classes/modules etc.

Thank goodness no one uses JSON to encode a language (in the way that ant uses XML).

<comment><USER4> _Thank goodness no one uses JSON to encode a language (in the way that ant uses XML)._

Heh. Of course, they don't need to. As the French guy says in the Holy Grail, "we've already got one, it's very nice!"

<comment><USER3> If Javascript used JSON in the way I described, it would look _something_ like this ( _view page source_ for original):

      {
        "function": {
           "signature": {
             "name": "byId",
             "args": ["id"]
           }
           "body": {
             "return": {
               "call": {
                 "target": "document",
                 "method": "getElementById",
                 "args": ["id"]
            }}}
      }}

<comment><USER5> Lets assume that an identifier array that starts with the word "function" is a function declaration, and has the additional place arguments _name_ , _argList_ , and _body_. Now we get something like this:

[ "function", "byId", ["id"], [ "call", "document", "getElementById", ["id"] ] ]

<comment><USER3> Yeah, I was thinking that. You're also omitting an explicit _return_ , I would guess by assuming the value of the last statement (as an expression) is to be returned (this won't work in general, because Javascript allows multiple returns, like C or Java). It's closer to a lisp syntax, by using nested lists instead of structs/maps. I submit that it's against the spirit of JSON to be able to name the values, and then not use that ability. I think you're Greenspunning it ;-). Sure is shorter though. :-)

<comment><USER5> I could include multiple statements and allow returns like this:

["function", "byId", ["id"], [["return" ["call", "document", "getElementById", ["id"]]]]]

(basically lisp syntax substituting JS array notation.) My point is that JSON is capable of being terse, and XML is not. XML attributes are unordered, so you have to use child nodes, which have to be named. The best you could do is:

<func><sig name="byId"><arg name="id"/></sig><return><call object="document" method="getElementById"><args><variable name="id"></args></call></return></func>

Which is significantly longer than a positional JSON serialization. XML is also harder to implement a parser for, and existing libraries tend to be difficult to use (python etree and ruby's implementations are a much better direction). Now, someone else's raw XML is often easy to understand, whereas my array based JSON format would clearly require domain knowledge. Because of this, I prefer JSON for small network requests that are consumed by scripting languages.

For larger, disk files, the overhead of XML is marginalized, and the extra formatting might help in hand editing and error correction.

As for Greenspunning, I think its a perspective issue. The example was one of code serialization, so the lisp syntax is particularly well suited to the problem. Programmers also have the domain knowledge, so the less verbose format is still easy to understand.

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> The article is refuted by both reality \-- the godawful messes that people have made out of XML, the complexity of the systems built on top of it, its failure to amount to more than a bloated machine format, and the exodus in favor of more lightweight notations like JSON -- as well as by itself: the author expects the reader to consider the proliferation of single-shot technologies built on XML as a good thing and not a Tower of Babel. He lists DTDs, RELAX, XML Schema, XPointer, XQuery, XPath (edit: whoops, I snuck that one in), XSLT, and CSS and cites the "decades of person-effort embodied in those specifications" as if it were an argument in their favor!

I found this statement in the article interesting: "The central idea of the XML family of standards is to separate code from data." It explains why all the systems that express programming constructs in XML are such monstrosities (including XSLT, which he cites approvingly and yet which totally violates this separation). I wonder what the author would say to the people who do this kind of thing? They're not using it according to specification?

Edit: some of the arguments are out of date, too. I don't know anything about Lisp documentation in LaTeX; the open-source Lisp world tends to generate HTML documentation from s-expressions, as for example here: <http://www.weitz.de/cl-ppcre/>.

<comment><USER3> Do you have references for that exodus?

By Google, XML is winning 50 to 1 - but declining, and JSON is growing: [http://www.google.com/trends?q=xml%2C+json&ctab=0](http://www.google.com/trends?q=xml%2C+json&ctab=0)

However, a factor is that people already know about XML and don't need to search for it. e.g. HTML is declining even faster: [http://www.google.com/trends?q=xml%2C+json%2C+HTML&ctab=...](http://www.google.com/trends?q=xml%2C+json%2C+HTML&ctab=0&geo=all&date=all&sort=0)

<comment><USER4> Ooh, duelling URLs, can I play? :)

<http://www.google.com/trends?q=xml%2C+javascript>

 _Do you have references for that exodus?_

Not really. I'm talking about what I observe in the hacker world, which is a thoroughgoing trend away from XML. Do you really see it otherwise? It's not all going to JSON of course.

Most of the XML stuff is in big enterprise projects and, for some value of "count", those just don't count. Last I checked the IT pundits were declaring SOA dead, after having milked it for a decade.

<comment><USER3> Hmmm... I don't think hackers ever went _towards_ XML. The old C hackers hated it (too inefficient.)

The nice thing I see in XML is that it abstracts out grammars (using XML Schema / DTD). For JSON, a grammar isn't used - it's a nested tuple transmission format - sort of a dynamic type systems, but without, er, types - just tuples that can contain anything. It's agile, and all you need in many cases. And JSON is a natural for web-client stuff.

BTW: who said SOA is dead? SOA doesn't solve any pressing problem, but all the vendors switched to it.

<comment><USER4> By the way (I can't resist one more comment), apropos this:

 _The nice thing I see in XML is that it abstracts out grammars (using XML Schema / DTD)_

Have you ever used XML Schema on a real project? I tried, on a nice meaty project, for perhaps a year. It turned out to be as awful to work with in practice as it sounds good in theory. It's the kind of thing people write design specs for, and then after the standards are ratified they write books about it, without ever actually themselves building anything. Meanwhile, pity the poor schmucks who get the book and try to use it on a real system, wondering what they're doing wrong for a year until they finally figure out that the problem isn't them.

To give you an example: what happens when you give one of these systems a chunk of data that doesn't match its nicely specified schema? Well, with the tools we were using at the time, you get something like "Error type error the int at position 34,1 of element XSD:typeSpec:int32 type invalid blah blah blah". What can a system do with that other than tell its poor user, "Invalid data"?

Now I suppose you'll tell me that we just picked the wrong validator. :)

<comment><USER3> Error messages are difficult to do right, and it's one area where (for example) DSL's tend to fall down. You might have a beautiful DSL, and think that it's finished, because you - as the designer - don't make mistakes with it (perhaps because you're really smart; really know the tool; or really haven't used it). Even some fully fledged languages have poor error reporting.

For a grammar specification language (like XML Schema) to do a really good job, it really should also formalize how to specify error messages for that particular grammar. I'm not sure how hard it would be to do this, and I haven't seen any research on it.

An odd thing about XML Schema is that it's not very resilient - when this was supposed to be one of the cool thing about "extensible" XML. The next version is a little better at this. But it sounds like in your case, you wanted to get an error (because there was a real problem), it's just that you couldn't trace where it came from, or what its meaning was in terms of the system. It sounds like a hard problem. BTW: would using JSON or sexps have made this problem any easier? I think it's much deeper than that.

<comment><USER4> Agreed about errors. A good error-handling design for system X often needs to be nearly as complex as the design of X itself, and more importantly, needs to have the same "shape" as that design; it needs to fit the problem that X solves, speak the "language" that X and the users of X speak. Typically the amount of work involved, and the importance of it, are badly underestimated. Usually people work on what they think of as the cool parts and neglect the rest. (This is the reason DSL error handling tends to suck.) Maybe they try to hack the rest in later. By then it's much harder -- you have to rework the kernel to allow for the right kind of hooks into it so your error messages can have enough meaning. The advent of exceptions, by the way, was a huge step backward in this respect. It made it easy to just toss the whole problem up the stack, metaphorically and literally!

Getting back to XML... it's unsurprising that XML Schema isn't resilient. It's one of the most rigid technologies I've ever seen. Rigidity gets brittle as complexity grows. The error-handling fiasco of XML Schema isn't an accident. It's revealing of a core problem. Don't think you can sidestep the issue just by saying, well it's hard. :)

 _Would using JSON or sexps have made this problem any easier?_

Sure. I've done it both ways, there's no comparison. It's not the data format alone that makes the difference, but the programming and thinking style that the format enables. These structures are malleable where XML is not. Malleability allows you to use a structure in related-but-different ways, which is what error handling requires (a base behavior and an error-handling one). It also makes it far easier to develop these things incrementally instead of having to design them up front. So this is far from the only problem they make easier.

<comment><USER3> With malleability, I think you're talking about low-level control, where you work directly in terms of the data structures that will be serialized as JSON. You might be translating between the domain data structures and the JSON structure; or they might appear direction as JSON. This is malleable in that you tweak it however you want; and it's simple in that you have direct access to everything. You can do validation in the same way. If something goes wrong, you have all the information available to deal with it as you see fit.

The wire format doesn't affect this approach - it could be JSON or XML. However, JSON and data structures maps cleanly, because it's an object format already. To do the same thing with XML requires an extra level, and you get a meta-format like xmlrpc, which is pretty ugly.

So I think you're talking about a kind of object serialization, with object- to-object data binding.

XML Schema is an attempt to factor out the grammar of the data structures, so that they can be checked automatically, and other grammar-based tasks can be automated. I think this is a worthy quest, succeed or fail. One specific failing we discussed was error messages.

I'm trying to grasp your point of view, and presenting what I think it is, so you tell me if I got it right or not (assuming you see this reply).

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> From the article: "Nor is it an accident of history that Lisp programmers never came up with these technologies for Lisp data. The central idea of the XML family of standards is to separate code from data. The cental idea of Lisp is that code and data are the same and should be represented the same."

No, that's not the central idea of lisp. The closest "central idea of lisp" is that code should have a standard and convenient representation so it can be readily manipulated by programs.

Lispers separate application code from application data. They do so even when the application data is a program....

It is true that Lisper's didn't engage in years of meta-whinging and defining transform languages, but the fact that the XML folk did was more of an accident of history. When the Semantic Web hype was in full-swing, the Lispers were still licking their wounds from the AI winter.

And, how is that Semantic Web coming along? Pretty much where the Lisper's left it....

</comment><comment><USER7> No love for the binary formats?

Let's hear it for ASN.1 (<http://en.wikipedia.org/wiki/ASN.1>), so good that google can reinvent it as protocol buffers (<http://code.google.com/apis/protocolbuffers>) and get people interested.

More seriously, yes, binary formats have their problems. And ASN.1 in particular suffered/suffers from being pre-unicode (and thus having a number of different + mostly useless character set types).

But it seems to me that this nested tag-length-value structure (ASN.1 and protocol buffers) occupies a design sweet spot.

</comment><comment><USER8> He makes some good points that I didn't consider when first I hated upon XML. I agree that XML is better for its problem domain than s-expressions, but in that case the whole article is an apples to oranges comparison.

He claims that syntax is important, otherwise we'd still be using binary formats. If that's true then the only reason syntax is important is for humans, because machines can read binary formats just as well as anything else. So why compare it to s-expressions instead of to a human-friendly ideal? Is XML the best human-friendly markup language possible? Yes his paragraph is similarly readable in both forms, but would it be if wrapped in XML namespace clauses and an XML Schema? Would the s-expression version be if wrapped in a macro to parse text outside quotes as significant text?

The purpose of XML shouldn't be to make everything more XML-y, but to make everything easier. Maybe it does, in big enterprisey systems and between large data silos. Look at the recent ODF v. Office XML file formats. Have any of you been tempted to process Microsoft Office documents directly because now they're XML they must be easier than the old binary formats?

It's still not human friendly - you can't use the Jabber protocol by hand over telnet like you can use POP3, SMTP, IRC.

<comment><USER3> > you can't use the Jabber protocol by hand over telnet like you can use POP3, > SMTP, IRC.

There's an intriguing view that text can't be used by hand either - you have to use a "text shell". Wouldn't a fair comparison use an "XML shell"? If it knew the schema, it could even autocomplete/intellisense for you, showing you the available choices at that point... it's pretty cool how XML has factored out the grammar of a language, in a reusable way.

I don't know the Jabber protocol, but the difficulty I've experienced with web-based XML protocols (web services) is that the http header needs the length of the message, which is hard to do by hand - it's not due to XML (and a "http shell" would fix that...)

<comment><USER9> http-twiddle mode for Emacs is handy for tinkering with web-based XML stuff:

<http://github.com/hassy/http-twiddle/>

</comment></comment></comment><comment><USER10> "The XML one does not use standard human-punctuation characters as markup. It doesn't require quoting of apostrophes, double quotes or parentheses."

(:p "Lisp doesn't require quoting of apostrophes (') or parentheses (()) either...")

</comment><comment><USER11> I think when arguing about XML, many people forget its relationship to SGML. Many of the drawbacks in XML are design decisions made in order to maintain backwards compatibility with SGML tools that were in use when XML was devised.

In order to simplify parsing (and in order to enable parsing a well formed document without knowing its DTD), XML threw out much of the syntactic sugar that SGML had to offer such as implicitly closed tags. I.e. Many people think that
foobar... is invalid HTML because of missing 	. In fact, it is perfectly valid because the HTML (SGML-)DTD specifies that a -tag implicitly closes a preceding . Most think it's a browser-hack. It is not.

What both XML (and SGML) add over S-EXPR is support for expressing grammers, a well-defined validation mechanism and quite good support for coping with different character encoding.

</comment><comment><USER12> I'm surprised no-one mentioned SXML, Kiselyov's representation of XML in Scheme. His paper, "A better XML parser through functional programming", can be found here: <http://okmij.org/ftp/papers/XML-parsing.ps.gz>.

The introduction covers the difficulty of parsing XML fairly well, which is another way of saying that XML does have a fairly complex "model" behind it that Lispers often ignore.

<comment><USER6> Lisper's know that XML has a fairly complex model behind it. That's part of the argument against XML because the complexity doesn't seem to buy much.

</comment></comment><comment><USER13> Erik Naggum on XML vs. S-Expressions:

"They are not identical. The aspects you are willing to ignore are more important than the aspects you are willing to accept. Robbery is not just another way of making a living, rape is not just another way of satisfying basic human needs, torture is not just another way of interrogation. And XML is not just another way of writing S-exps. There are some things in life that you do not do if you want to be a moral being and feel proud of what you have accomplished."

(<http://www.schnada.de/grapt/eriknaggum-xmlrant.html>)

<comment><USER14> Pretty strong words for such a trifle.

<comment><USER13> Yet it is not a trifle.

Wasting what might amount to thousands of man-years by forcing talented people (who might otherwise accomplish something meaningful) to build workarounds for an inferior technology is every bit as criminal as, say, embezzlement.

<comment><USER14> By the same logic, QWERTY forcing talented people to develop RSI should get the same treatment..

<comment><USER13> I can see no reason why not.

</comment></comment></comment></comment></comment><comment><USER3> I have a corollary to Greenspun's Tenth Law, which is that:

      Lisp programmers see everything in terms of as an ad hoc,
      informally-specified, bug-ridden, slow implementation of half of Lisp,
      and don't see other benefits it might have.
      That is, Greenspun's Tenth Law is true - for Lisp programmers.

I came to this conclusion because of a tragic pair of research papers, which had a fantastic usability idea. The second half of the first paper took the focus off the usability, and developed it into a very simple functional language. In their next paper, they dropped the fantastic usability idea completely, and made it into a lisp. :-(

Some XML standards fell into a similar trap, by wanting languages that process XML to be themselves written in XML - such as XSLT. It's a nice abstract concept to be able to process yourself... but at the price of abominations like "i < 10".

Adam Bosworth pointed out that XML's XPath resisted this - by making XPath itself an embedded non-XML mini-language. Imagine an XML representation of path components - now _that_ would be verbose!

In a politically expedient move, I'd like to point out that pg didn't fall into this trap: he made the DSL for users of Viaweb to customize their store to _not_ be lisp (though an easily mapped subset, if I understand correctly.) It's a non-lisp mini-language.

Great link from the article, about "principle of least power", for mini- languages: <http://www.w3.org/DesignIssues/Principles.html#PLP> Constraints are very empowering, because you know what to expect.

Regarding XML: I'd always thought it was just one of many possible syntaxes for representing hierarchical data; and it really didn't matter which syntax you used. As in a lingua franca (or any standard), provided that it is barely adequate, the key thing is that everyone agrees on it. XML became the Chosen, de facto standard, because everyone was already familiar with HTML, propelled by the mass adoption of the web. So the question becomes: why did we get HTML (based on SGML), instead of S-expressions? The article gives reasons, but I guess the short of it is that if a group of people work towards a specific purpose for years, and are successful at it (as SGML was), it is probably a good base to start from if you want to do something similar, i.e. describe documents.

Also, more directly, if I imagine a large webpage described with S-expressions, I think HTML is a bit clearer.

Nitpick: The article omits that quotes (or apostrophes) must be escaped in XML attributes.

Very telling points about LaTeX - that like XML/HTML, it also uses named end- tags; and that Lisp documentation itself is used LaTeX instead of S-expressions - drinking their kool-aid; but not eating their dog-food.

<comment><USER6> > Very telling points about LaTeX - that like XML/HTML

No, it's a demonstration of ignorance. LaTeX wasn't written by Lispers, it is merely used by them. The fact that they find its design decisions acceptable must be weighed against the cost of their alternatives. That doesn't imply that they wouldn't have been happier with a more lispish syntax.

At the time that those decisions were made, LaTeX was pretty much the best alternative. The fact that Lispers, like almost everyone else in related communities, made that decision merely says that Lispers don't cut off their noses to spite their face.

<comment><USER3> The article suggests Lispers could have used sexp as a front-end to LaTeX, in the same way that XML was used as a front-end to LaTeX. Very easy to do.

> If S-expressions were easier to edit, it would be most logical to edit the > document in S-expressions and then write a small Scheme program to convert > S-expressions into a formatting language like LaTeX. This is, what XML and > SGML people have done for decades [...]

<comment><USER6> Note that such front-ends are inherently leaky. If all they do is transform syntax, they're probably a bad idea.

Note that the point of using s-expressions as a front-end would be programmatic generation, not by-human editing. (Neither sexpressions nor xml is actually all that friendly for editing text.)

Do XML folks really think write front-ends for ease of editing?

<comment><USER14> S-Expressions are OK to work with as a human if you have a decent editor that helps you indent and balance parens.

</comment></comment></comment></comment></comment><comment><USER15> ...but it would be better if it were.</comment>


A safer git checkout - <AUTHOR> http://cirw.in/blog/git-aliae-2

<comment><USER2> Perhaps I'm missing something, but in years of development using git as our scm, I have never used checkout -f. I've used reset --hard HEAD here and there. Is there any difference in their use?

Also, are there a lot of developers who work for hours without committing? I've only found myself in a situation where I could possibly lose hours of work a few times and each time this happens I realize I was treading thin ice.

Lastly, and maybe this is also just me, I keep my repos in Dropbox. Github is our main repo store, but I've got an extra level of protection, especially since Dropbox allows you to rollback file changes.

<comment><USER3> I've worked with developers that went days without committing... it was maddening.

<comment><USER4> Can we all work on this? Somehow nobody seems to treat writing crappy commits (messages like "work since Tuesday" or "it works now") like they would writing crappy code. Version control is _fundamental to our job_.

<comment><USER5> Most developers learn by example. I've looked for resources on using vcs properly but the few that existed weren't very good. A great resource would be a showcase for a collection of great commits. It doesn't exist as far as I know unfortunately.

<comment><USER6> as davvid says, the git project is an excellent place to start. The git project inherited a lot of its practices from the linux kernel project, but they are different enough to make looking at both interesting.

The archive for the git list is at [1].

The other great thing to look for is a well designed standard, with examples, for how a commit message should look. Most everyone who uses a standard uses The Standard* [2], so I would suggest you do the same.

* Except that many projects don't require the sign-off

[1] <http://dir.gmane.org/gmane.comp.version-control.git>

[2] [http://tbaggery.com/2008/04/19/a-note-about-git-commit- messa...](http://tbaggery.com/2008/04/19/a-note-about-git-commit- messages.html) (I am pretty sure there is a very similar post from Linus on a mailing list somewhere, but I can't find it. This is the most commonly linked to that I could find.)

[EDIT] formatting...

</comment></comment></comment></comment></comment><comment><USER7> I've been using Git for a couple years now, and I don't think I've ever lost any work.

Even if you do `git reset --hard HEAD~5`, "throwing away" your last few commits, they aren't actually discarded yet. You can do `git reflog` to see them and then `git checkout -b some_commit_hash` to recover one to a branch, or `git reset --hard some_commit-hash` to set this branch back to that point.

Only if those commits stay orphaned for a while (a week or two?) will Git truly discard them.

<comment><USER8> It becomes dangerous if you have changes in your working tree. You truly lose those changes with a "git reset --hard HEAD" or the forced checkout.

<comment><USER9> Exactly. As mentioned in the article, `git reset --keep` is the preferred way to do it these days. It preserves uncommitted worktree changes.

</comment></comment></comment><comment><USER10> Dear author: the plural of alias is aliases.

<comment><USER11> I know :). See <https://github.com/ConradIrwin/git-aliae#faq>.

<comment><USER12> We make nouns out of adverbial/prepositional phrases often, and alias ("in other places [known as]" -> "a name by which one is known in another place") is just one example. We talk about items, but "item" is the adverb that means "also", and you'd find it in recipes: "2 eggs. Item: oil. Item: water.". (Less similarly, you'll see brochures called "take-ones".)

</comment></comment></comment><comment><USER13> Why not just use git stash?

</comment><comment><USER14> I don't see how git-cof is different/better than git-stash.

<comment><USER11> Git stash solves a different problem, which is "I want to save these changes, and get them back". git-cof is optimized for the use-case of "I want to get rid of these changes, and I'll probably never use them again".

The most obvious difference is that commits made with git-cof never show up in git log --oneline --graph; but also they get garbage collected automatically, you don't have to manually go through "git stash list".</comment></comment>


Google Flops & Failures - The Failed Google Graveyard - <AUTHOR> http://www.wordstream.com/articles/google-failures-google-flops <comment><USER2> That's what happens when you encourage your employees to build things on their own. You have more failures than successes as far as products go.

Personally, I like that Google has these pet projects that they try out for a while and see if they work. Not everything you do is going to be successful.

I'll take my gmail/maps/apps/reader and be happy. And who knows, maybe in the near future they will come out with something new that I can't live without.

<comment><USER3> Exactly -- without having swung and missed so many times, they wouldn't have hit so many out of the park, too.

Gmail, Maps, Docs, and Reader all started out as these same sorts of embryonic projects that got critical mass and justified their development into the blockbuster services they are now. It seems ingrained in Google's corporate culture to push things out there and see what has staying power. Some things stick and some don't, that's life.

</comment></comment><comment><USER4> You know what else is a failure? Presenting text in a JPG in 10 point font.

<comment><USER5> I was going to say the same thing. When I first visited the page, I quickly scrolled down to the bottom of the page, thinking "I hope I get past this huge ad and on to the text of the article." Luckily, I realised my mistake and moved closer to the screen in order to read the tiny text.

</comment></comment><comment><USER6> They forgot:

1\. Lively 2\. Google Print

Also, Google Answers _preceded_ Yahoo Answers -- they got that wrong.

</comment><comment><USER7> Google Answers predated Yahoo Answers by quite some time (3 years).

<comment><USER8> That's just not true. Maybe a Yahoo! Answers redesign and rebranding, but certainly not the launch of Yahoo! Answers which was formerly known as Ask Yahoo!

<comment><USER9> That's not actually correct.

Answers came from the Taiwan version of Answers, which was itself a clone of Naver in Korea.

Ask Yahoo was unrelated. And still appears to be there.

</comment></comment></comment><comment><USER10> Remember Google Knol?

<http://knol.google.com>

Their answer to Wikipedia....

<comment><USER11> It was never intended to be an "answer" to wikipedia.

</comment></comment><comment><USER12> They also seemed to forget the photosharing service hello.com

<comment><USER13> Wasn't it Picasa's project before Google acquired them?

</comment></comment><comment><USER14> great graphics on this badboy.

</comment><comment><USER15> Google Buzz listed but not Google Wave?

<comment><USER16> Someone scrolled to the bottom too fast.</comment></comment>


Show HN: Watch how much you earn in real time - <AUTHOR> http://bean-counter.s3-website-us-west-2.amazonaws.com/ <comment><USER2> Cute; I remember writing something like this in school that would display semester progress as a percentage out to a few decimal places so you could watch it tick up during a particularly boring class.

Bug: you're not displaying the minutes value of the starting time with leading zeros.</comment>


Coding has an effect in the way you think - <AUTHOR> https://medium.com/@JDcarlu/coding-has-an-effect-in-the-way-you-think-94d5b12b6778

<comment><USER2> Of course it has. Any activity that is meaningful has.</comment>


Why You (And Everyone Else) May Soon Be Taking 15 Photos Per Hour - <AUTHOR> http://blog.yourmemoir.com/post/74848226413/why-you-and-everyone-else-may-soon-be-taking-15

<comment><USER2> I guess random sampling really does matter

</comment><comment><USER3> I guess I need to take more photos!</comment>


Glenn Greenwald (2005): The Reality of Latin American Reaction to Bush - <AUTHOR> https://glenngreenwald.blogspot.com/2005/11/reality-of-latin-american-reaction-to.html <comment><USER2> > _As usual, the truth is vastly different than what the U.S. media is > reporting._

Fake News, circa 2005...</comment>