"TLDR" is unnecessary - <AUTHOR> http://douglastarr.com/tldr-is-unnecessary <comment><USER2> TLDR is a pragmatic device; it's a written discourse marker. Calling it "unnecessary" is just like saying that "well...", "y'know", "so...", "like" and all those other little "filler words" that your high school English teacher doesn't like are "unnecessary". In formal prose, where all that's supposed to matter is textual semantics, sure, they're not necessary, and I wouldn't use them there. But in informal discourse, they're essential; not for conveying propositional information, but for negotiating social discourse information.

<comment><USER3> Yes, exactly.

The "TLDR" is all-caps, so it grabs your eye out of the wall-o-text that you may be skimming over, and says "hey here is my basic point". And maybe then you'll go "hey that's an interesting point" and scroll back up and read their lengthy argument, story, or whatever, in all its labrynthine discoursiveness.

And now to demonstrate it I will include some lorem ipsum. Hipster Ipsum, to be precise. Swag polaroid tempor iphone echo park ethnic 8-bit, cosby sweater beard semiotics in. Magna organic neutra, exercitation laborum quis jean shorts aliqua ex eiusmod gluten-free pitchfork butcher. Cosby sweater disrupt keytar qui, beard pariatur lo-fi sustainable magna skateboard sint farm-to- table umami. Intelligentsia pour-over flexitarian, banh mi meh ad meggings thundercats ex. Labore tofu aliquip officia kale chips, bushwick single-origin coffee. Quinoa laborum velit 3 wolf moon placeat eiusmod, nisi brooklyn cred VHS stumptown. Gastropub try-hard intelligentsia, fashion axe 3 wolf moon wes anderson actually officia proident laboris american apparel do.

High life pitchfork ad tousled wolf, fugiat gentrify put a bird on it keytar nesciunt beard aliqua jean shorts post-ironic laboris. Flexitarian vice aliquip pork belly non, anim commodo eu. Dreamcatcher nulla cred, echo park church-key retro sint neutra vice mustache. Vero deep v art party, blog organic bicycle rights labore pinterest wayfarers polaroid quinoa jean shorts vice. Ad banh mi authentic art party. Trust fund et banjo bespoke portland. Cardigan disrupt american apparel aliquip kale chips non.

Craft beer vero cosby sweater kale chips ex nihil cardigan, truffaut authentic photo booth sed. Irony ethnic keytar post-ironic, ugh enim tonx truffaut before they sold out. Kale chips tattooed terry richardson keytar marfa carles artisan, sunt flexitarian vice ex. Umami sapiente direct trade etsy ut, hoodie readymade jean shorts brooklyn VHS cray polaroid. Anim pork belly swag minim. Master cleanse narwhal cred pinterest. You probably haven't heard of them wes anderson est, high life truffaut culpa stumptown ethical williamsburg vero sapiente.

Etsy plaid irony, brooklyn post-ironic williamsburg dolor butcher master cleanse pariatur aliqua next level cred. Seitan aliquip qui disrupt lomo literally. Sapiente tumblr laborum, gastropub bicycle rights non post-ironic pug ut. Do nisi narwhal, ad odio before they sold out disrupt brunch tumblr polaroid dolore +1 odd future. Viral officia readymade, plaid forage assumenda post-ironic cupidatat you probably haven't heard of them portland sint qui. Cardigan try-hard portland id selfies four loko, assumenda ethical letterpress aesthetic. Neutra non art party locavore aesthetic, actually freegan tonx cardigan godard ex gentrify.

TL;DR: One sentence with a block of all-caps beginning it sure catches your eye at the end of a long post.

<comment><USER4> Interesting tangent, as someone who was fluent in Latin many moons ago (could speak it at an English conversational pace), I literally had to force myself to ignore your filler (which includes several Latin fragments).

<comment><USER3> It's from a "Hipster Ipsum" generator. Designers traditionally use a piece of malformed Latin to indicate "there is some text here" without having actual text.

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

</comment></comment></comment></comment><comment><USER5> I don't think this is generally true. The purpose of long form writing is to make the reader draw a conclusion that they may not agree with at the beginning of the article. Studies have shown that once we form a conclusion, we're much less likely to change our minds, so if an article lead with a controversial point we'd internally say "no!" and stick to it rather than letting the article make its point. By not knowing exactly what an article is arguing, we're more receptive to things that could go against our intuition.

I do agree that TL;DRs can be elided for articles that simply state facts or uncontroversial ideas.

<comment><USER6> That's both a very narrow, unhealthy view of writing and a pretty fatalistic attitude towards your readers. I don't like TL;DR any more than the author of the article, but I don't think having an abstract or brief synopsis decreases the likelihood of you "winning" the essay—or if it did, that this alone would constitute a good reason not to use them.

<comment><USER5> I think you misunderstood my comment. I wasn't speaking just about having a TL;DR or not but instead more about the difference between long essays and short passages.

Characterizing my opinion of writing as either something you 'win' or 'lose' is itself narrow (and frankly, almost insulting). I have to feel that you coming off this way is a byproduct of the Internet. I'm not trying to chastise you here. I understand that what I wrote initially might come off in a way I didn't intend, but you have to meet me halfway by assuming I'm not a total jerk.

Writing isn't about winning or losing, it's about sharing ideas. And yes, there are better ways and worse ways to share ideas. A conversation around a dinner table is probably better than an essay ever will be - but you can still try to get there. You can either hear this fact and say "aha, I should try to be more clear in sharing my ideas" or you can say "that's fatalistic, and writing isn't a game." I can't fault you for choosing the latter, but I do ask that when I choose the former you remember that I do it just because I want to be understood.

<comment><USER6> Please accept my apologies. Lately it has felt like everyone around here is trying to win. I should not have assumed you were and I seem to have fixated on the wrong elements of your comment.

</comment></comment></comment></comment><comment><USER7> The US military frequently uses the abbreviation "BLUF" (Bottom Line Up Front) for the same purpose as TLDR at the beginning of an email. It's not like the idea of tldr is some perversion born of the Internet.

<comment><USER8> One of my favorite pieces on writing is "Effective Writing for Army Leaders," available at <http://www.au.af.mil/au/awc/awcgate/army/p600_67.pdf> . They have hilarious side-by-side comparisons of poor and good writing, such as pg. 13 and 14 (pg. 7 and 8 by page number). I found this during a brevity kick I had after reading David Sirlin's "Writing Well."

<comment><USER9> That's pretty awesome! Although I think the elements of the "poor" example that draw attention to some potentially pertinent information shouldn't have been removed. (For example, the fact that the applicant is not mission- essential during a training cycle, and that given he has not previous cold- weather injuries, he may be less susceptible to them.)

</comment></comment></comment><comment><USER10> A TLDR already has a name, a "summary". Not only a mere extra 4 characters, it's not an acronym for a phrase but a word that says what it is. Amazing, really.

The biggest problem I find with TLDR is that people that use it do so incorrectly. You don't put your summary at the _end_ of the article. You put it at the beginning.

I also find many writers who use TLDR explicitly are rather poor writers. Lots of spelling and grammar mistakes, and the inability to make concise, cogent points. And not knowing what cogent means.

<comment><USER2> That biggest problem you find is your own creation- it is a result of assuming that "TLDR" is the same as "summary". While it may have the same literal meaning, clearly it is _not_ the same as "summary", because you find it to be used differently. This is because it has a different purpose in discourse. Most synonym pairs are like this; you think they have the same meaning, until you do a corpus analysis and discover that they're used totally differently in practice. Truly perfect synonyms are extremely rare.

<comment><USER11> I've never seen a TL;DR that wouldn't serve the reader better if it were put at the beginning, rather than the end.

<comment><USER12> Often when I begin writing a comment the ideas I want to get across are only half-formed. Once I've written out a bunch of text exploring an issue I often hit themes and conclusions that weren't clear to me before I started typing.

It seems bad to admit this, but I'm either too lazy to go back and rewrite or I just don't care enough about the audience to give them a well-formed read. Occasionally I think I'd feel "dirty" going back and putting the conclusion at the top, as though I'd be pretending that the insight came to me fully-formed, that my stream of consciousness just happened to dispense a perfect micro- essay on the topic.

That said, many of the best comments I read are "well-composed", and the posts made without relfection or consideration probably contribute to the decline in tone.

TL;DR: I'm conflicted.

</comment></comment></comment></comment><comment><USER13> From a UI/UX perspective: "TL;DR" improves scannability.

As a reader, prefacing that first line/paragraph with "TL;DR" means that all I'll have to read is just that part. This is useful because not everyone uses their first paragraph or sentence to outline the general idea of the article. For example, there might be an anecdote, or a quote, or whatever else to start the article.

<comment><USER6> It's pretty poor UI/UX compared to what we used to use: long subtitles and abstracts set out in separate fonts at the beginning of documents. It's an improvement on a wall of text, but it's not an improvement on traditional writing styles so much as an improvement on slightly older internet writing styles.

</comment></comment><comment><USER14> TLDR mostly shows up in places like Reddit. The communication that happens on Reddit is unlike anything we've ever had, millions of people all gathering to casually talk with each other. There is no expectation of depth (anymore, anyway), nor do people put much stock in Reddit comments. Thus TLDR helps people's ideas get across and also probably improves readership of comments (people read the TLDR, and then realize they should go back and read the whole thing). It's a new construct that has evolved for a new form of communication.

<comment><USER15> > There is no expectation of depth

There is in some subreddits. Not the big ones, but that's the point of having subreddits, isn't it?

Any time you want to generalize about all of Reddit, think of New York City: "There's no expectation of depth in New York City" just sounds wrong, doesn't it?

<comment><USER14> True, but TLDR also tends to not show up in smaller subreddits (at least, the smaller ones I am subscribed to).

</comment></comment></comment><comment><USER16> I agree in principle, but I feel like the author might be missing the point; the reason "tldr" is used is _because_ it has evolved as an efficient speech marker.

If you think about forum posting as a medium, then a "tldr" makes sense -- generally, you scroll _down_ a list of messages. When you encounter a wall of text, you can either start reading (to see if you'll want to read the rest), or keep scrolling past until your eyes reach the "tldr" symbol, which draws you to the main "point" of the post without requiring you to mentally invest in reading the whole first paragraph.

</comment><comment><USER17> I don't agree with the Douglas's interpreting an author's own writing of a TL;DR as answering the question of whether the author himself read it -- rather, it is pre-empting the question that might be asked by readers.

While it is true that it is entirely possible (and common practice) to provide the content of a TL;DR in the first sentence, it might not _always_ be there. The reader can only know if the first sentence was a summary by first reading it (see the Halting Problem).

TL;DR is an elegant solution to this problem because it only requires five (minimally four) characters to be read to identify the summarizing statement, and then consume its content. And with the immense amount of content begging for my attention on the Internet, I for one appreciate being able to quickly determine if reading the article in question is something I will likely want to do.

TL;DR: TL;DR != opening sentence

</comment><comment><USER18> I disagree. While something that is well written shouldn't need a tldr, it does service as a device for people who consume a lot of text. Its a standard shorthand indicating the author did in fact write a summary

<comment><USER19> Agreed. Plus, people are trained to ignore "wall of text" but will indeed read text labeled as tldr. It's communicating a summary. Due to the mixed bag of good writing on the Internet, we as readers cannot rely on the first sentence being an all encompassing summarization of the points.

</comment></comment><comment><USER20> TLDR: Write like Hemingway, not like Faulkner.

<comment><USER21> Hemingway is not the example you're looking for: <http://en.wikipedia.org/wiki/Iceberg_Theory>

<comment><USER22> I agree but edw519 is a smart guy and I would give him the benefit of the doubt and assume he attempted to capture the essence of a "tl;dr" comment: short, vaguely corresponding to the material, and ultimately misleading.

<comment><USER23> I might add traumatic to that little list, having just read A Farewell to Arms.

</comment></comment></comment></comment><comment><USER24> I find this a pretty weak argument against the tl;dr. "tl;dr" has become a noun, that means one-line / extremely short summary. Language sometimes grows like that.

A better argument against the tl;dr would be that the piece you're writing it for becomes redundant, provided it's an accurate tl;dr. The term tl;dr wouldn't be needed then, because the tl;dr itself becomes your piece.

If it isn't an accurate tl;dr, there's no reason for providing it in the first place, except maybe for giving a rough idea of what your piece is about. OP rightly points out, though, that conventions already exist for just that. A descriptive title or an introduction clearly distinguishable from the rest of your piece, for example.

</comment><comment><USER25> If you really need a TL;DR, you failed to fulfill your promise to the reader. Writing should be concise, accurate, and to the point, and we as writers should always strive live by the wisdom of Strunk: "Use less words."

When someone opens your webpage, they are entering into an implied agreement with you. They are seeking information and you are supplying it to them. If they are unwilling to uphold their end of the bargain by demanding a TL;DR from me without giving me the chance to read my words, I don't feel any obligation to satisfy them.

The other half of this implied bargain is that I simply offer what they came to find, and if I fail them in that regard, then I should be required to post a TL;DR because all 2000 to 3000 words I blathered out should be in 50 words or less. If I was able to offer a 50-word summary, then I would have simply tacked on an extra 25 words and eschewed the TL;DR.

If you don't like my attitude, that is fine. You probably aren't my target audience, and this is fine. The World Wide Web is a very large place.

<comment><USER26> > Writing should be concise, accurate, and to the point, and we as writers > should always strive live by the wisdom of Strunk: "Use less words."

I think the feeling is often "I made this so long because I did not have time to make it shorter."

Of course on the web, this is short-sighted and self-defeating. If you have a valuable thought that you commit to the web, you do so in the hopes that it will be read many, many times. You only have to write it once.

So to agree with dizzystar, respect your (potential) readers and spend a little more time making that thought concise.

<comment><USER25> It is short-sighted and self-defeating because there is nothing written in stone that says that your content is immutable.

I love it when I receive emails from readers asking me to clarify some point, or telling me about spelling errors. I also get requests to remove paragraphs. After about 5 minutes of pondering it, I find that they are usually right. It's not that difficult to delete a paragraph.

</comment></comment></comment><comment><USER27> But how does the reader know you are one of the authors that summarise succinctly at the beginning of every article? Especially as they reader may read many articles of differing quality a day. tl;dr to me, is like statically typed English, it improves readability if you know to look for it.

<comment><USER28> Yup, composition on the Internet is different from composition for print in which "good writing" used to mean 1) intro, 2) body, 3) conclusion. Now it means: "get to teh point!!!" and maybe, if you have time, elaborate so people can follow your train of thought. When people are used to affording only 140 characters of attention, you wind up skipping all the formalities. TL;DR is a sigil. Sometimes people put it at the bottom (jerks), but at least it's easy to spot.

</comment></comment><comment><USER29> TLDR is just a warning to the reader that the rest of the text might not be worth his time. It also helps to make explicit that the paragraph following it is a summary of the post.

</comment><comment><USER30> It's the same basic principle as newspaper articles, or the essay format you were taught in school: summary first, details later. Or make your points up front, then prove them.

That only solves a part of the problem, though. Highly upvoted long comments on Reddit are particularly frustrating because so many of them have content that's weak or just plain wrong. I'm convinced that only a small fraction of voters actually read them.

<comment><USER31> There is also a strong bias toward upvoting more visible content. Higher-voted comments appear first on the page, getting more exposure. For that reason I've made it a habit to read comments in bottom-to-top order, in order to artificially make my votes more fair.

</comment></comment><comment><USER32> I'm not taking style notes from anyone who uses the word "leverage" instead of "use"

</comment><comment><USER33> TL;DR is for people who forget "statement, explanation, example". Usually, they write some poorly formed paragraph and put a "TL;DR" at the end. Often, that TL;DR is simply the "statement" part of the paragraph that should have been at the very beginning anyway.

TL;DR: most people can't English anymore.

</comment><comment><USER34> Didn't tl;dr start as an insult? What the article is describing is a response to the insult that is tl;dr.

<comment><USER35> Yes, tl;dr (too long; didn't read) was originally used on the somethingawful forums as a dismissive reply to a long wall of text post. Eventually, an OP would preemptively include a TL;DR line in a post to give a warning/summary.

<http://www.quora.com/TL-DR/What-is-the-origin-of-TL-DR> seems to offer a decent history of its early usage.

</comment></comment><comment><USER36> Pedantic, but: tldr existed well before reddit.

<comment><USER37> I know I saw it on the SA forums, where it may have originated. People would reply "too long; didn't read" to dismiss a post, which eventually was abbreviated to just "tl;dr". Anticipating this reply, authors of long posts would end their post with a "tl;dr" summary.

<comment><USER23> Not all the sure about the source as a reference, but Urban Dictionary got TLDR in 2003. Reddit is 2005ish I think. <http://www.urbandictionary.com/define.php?term=tldr>

</comment></comment></comment><comment><USER38> TL;DR, summary, critical précis, abstract, thesis statement, inverted pyramid and similar rapid summation styles are both useful and have a long tradition.

TL;DR is an inherent criticism of writing that lacks sufficient discernable coherent structure to rapidly assimilate meaning, whether by want of language, typography, or simply cogent thought. There's a lot of sloppy writing on the Internet (and off).

TL;DR is a recognizable convention that serves a purpose. It can be tagged on by others (the way I first saw it used), or be added by the original author, usually in self-deprecating jest, with the meaning of "do you find this too long to read, here's my summary" . Better if people would write clearly in the first place. Surely that's a simple technical problem, no?

TL;DR: Essay misses origins, benefits, and use-conventions of this hack.

TL;DR is, however, remarkably ineffective when it happens to begin every paragraph of an essay. Please avoid this use case.

</comment><comment><USER39> This post is poorly argued in my opinion. The author fails to provide an example of the "tools to summarize and communicate your thoughts" which he speaks of. As a result, the specifics of his argument are left to conjecture of the readers, producing an unfocused discussion.

My take on 'TLDR'. It isn't typically equivalent to a well structured opening paragraph. As others have mentioned, it's more akin to an abstract, as used in academic writing.

It denotes that the author will most likely use brief text to summarise and, for the sake of efficiency, it may be in a completely different writing style to the rest of the text.

TLDR is a useful tool for allowing readers to make a rapid decision as to whether the following content is relevant to them. In some ways I see it as a courtesy to the reader.

</comment><comment><USER40> I think this a great point. If you're in the habit of writing a TLDR for articles, maybe you can try writing the TLDR and then afterwards removing the 4 letters "TLDR" and leaving the sentence there. It's great to summarize in the first sentence.

</comment><comment><USER41> TL;DR is not merely about summarizing. It's a way, especially in the Reddit community, to add something extra. TL;DR can be a summary, but it can also be a tool for sarcasm, smugness, or getting a certain tone across. Sure you can summarize yourself in the opening line, but you can also make a calculated choice to use TL;DR for some other motive. I often find TL;DR to be a cynical view of your readership because it's as if you're stating, "I know what I wrote is long, and you readers aren't taking the time my writing deserves! So I'm just going to put this summary at the end to shut you up."

</comment><comment><USER11> TL;DR is a useful convention for busy readers, but it should be __at the beginning __, not the end.

Look at the _lede_ (the first sentence or two) of any article in any newspaper. It's marked in bold face, and summarizes the whole story. It helps the busy reader decide if he wants to "drill down" by reading the rest of the article. TL;DR could do the same thing, if only people put it at the __beginning __.

I teach essay writing, so I have strong views about this. ;)

<comment><USER42> You know, I think you're on to something here, but I believe that on forums such as reddit, the tl;dr is usually read first anyways. People seem to skip to the bottom of a long post to see what the conclusion is.

<comment><USER11> So why not save the reader some effort by putting the TL;DR at the top?

</comment></comment></comment><comment><USER43> This is a bit ridiculous. Moving the summary to the beginning is no better. Simply write more concisely and elegantly.

My favorite illustration of this was in the movie "A River Runs Through It"—a young Norman brought his essays to his father, who would say always "Good. Now make it half as long." This was repeated a few times, then it was good enough. Would that more writers could follow this mantra.

<comment><USER44> No matter how concise and elegant your writing is, chances are it won't fit into a single sentence. TL;DR still has a purpose.

</comment></comment><comment><USER45> As a cofounder of <http://tldr.io> I'd say that having a tl;dr separated from the main article is very useful for readability. Like ps for example it helps structure the text. tl;dr version of articles are essential to get directly to the point. As an heavy reader I like to have theses summaries detached from the article.

</comment><comment><USER46> I like how the first sentence embodies the very idea it is espousing. If you read only that sentence and close the page, you've still have taken away 80% of the information of the piece.

An important UI component for this technique to land: the first sentence must be short, and on its own line. Do that well, and a "TL;DR" prefix is optional at best.

</comment><comment><USER47> TLDR: Today's emerging conventions are tomorrow's traditions.

The tools that the English language now has to summarise and communicate thoughts most likely emerged as a convention after years or decades of use, just like any other part of linguist evolution.

I also disagree that having an acronym unfamiliar to someone would prevent them from reading on.

</comment><comment><USER45> So the TL;DR of this article is:

\- Author should summarize their idea in the first sentence of their writings.

\- Prefixing this summary with TL;DR is useless and asinine as it stands for "Too Long; Didn't Read".

[http://tldr.io/tldrs/50f34acc3ea2fa3e06001f25/tldr-is- unnece...](http://tldr.io/tldrs/50f34acc3ea2fa3e06001f25/tldr-is-unnecessary)

</comment><comment><USER48> I like TLDR for being able to cmd+F to it quickly. In a well written article with an abstract or a good first sentence, I still have to find the first sentence. With a TLDR, I can jump to that section quickly. I know this sounds like the height of being lazy, but I assure you, it's not.

<comment><USER11> Wouldn't it be even better if the TL;DR was at the __beginning __so you didn't have to cmd+F for it?

<comment><USER48> It would be, but having honing in on a specific set of characters is easier than trying to figure out which one is the summary sentence.

<comment><USER11> I don't see why you're saying "but". We can put the summary at the top __and __mark it with TL;DR.

</comment></comment></comment></comment><comment><USER49> I think TL;DR; also serves an important role of sarcastically dismissing unreasonably long diatribes that go nowhere, say for a Steve Yegge blog post or something like that. Although, I agree for prefacing you're own work with TLDR, it is somewhat annoying usage.

</comment><comment><USER50> I disagree, I'll often look for a TLDR to get a summary of an article if I'm unable to spend full time reading it, for example when at work.

I do agree that the acronym TLDR doesn't make sense, perhaps we need a new acronym?

</comment><comment><USER51> Great point, although tl;dr works for short comments, whereas the "trick" of putting the summary in the beginning of a text needs some actual "body" before it works - otherwise it is just confusing.

</comment><comment><USER52> "I'm sorry I wrote you such a long letter. I didn't have time to write you a short one." - Blaise Pascal

Editing takes time, much quicker to slap a TLDR on top I suppose.

</comment><comment><USER53> "p.s." is kind of unnecessary too these days but you can still use it. I like "TL;DR". I think of it as a sub-headline.

</comment><comment><USER54> TLDR is the common man's academic abstract.

<comment><USER55> The abstract is academia's TLDR.

</comment></comment><comment><USER56> or just accept that TLDR means more than what your narrow definition and current pet peeve would otherwise allow?

</comment><comment><USER57> TLDR; TLDR has a higher visibility.

</comment><comment><USER58> No

<comment><USER59> TS;DR.

</comment></comment><comment><USER60> But how can I know if it's summory or just first sentence?

</comment><comment><USER61> It means "too long; don't read." I'm not sure why the past tense variation sticks; but it's a label/post-it/card/sign/placard/billboard/sign- post/warning/caute!/message not to read the identified text for concern of irrelevance.

It's like a voting system. The ";" functions as the hash tag: "#tldnr", "#tldr", etc.

<comment><USER62> This just simply isn't true. It does mean "too long, didn't read" as in, "this wall of text is too long. I didn't read it."

<comment><USER61> Honestly,

"T L ; D N R"

and

"... Too Long; I didn't read it"

Doesn't make sense. "N" does not pick out the beginning of any word. If you chance across the tag, your interpretation is less obvious than,

"... Too Long; Do Not Read"

The contraction makes sense, and thus the natural transformation into a meta- informative suggestion makes sense. Contractions serve to convey information, usually engendering more intimate dialogue. So it also invites the question of "why not"? And we all know how that goes. It invites the author and really any reader to a game not dissimilar to trolling, usually. It may not take a position necessarily, in terms of the message, and this is not required of what I am saying; however, an explanation of why one would post it at all stands in order. I think the conveying of information to other readers is also important.

<comment><USER61> tl;dnr

Yes, of course I read it; but _why_ am I posting it?

</comment></comment></comment></comment><comment><USER63> Don't bother reading this. You are not missing anything.

</comment><comment><USER15> In academic writing, "TL;DR" is an "Abstract".

I'll start deriding TL;DRs as unnecessary when academic writing no longer uses the Abstract.</comment>


Goodbye Mozilla - <AUTHOR> http://chrislord.net/index.php/2017/06/28/goodbye-mozilla/ <comment><USER2> Mozilla was never able to leverage its success in the desktop browser market into a successive platform story that evolved into mobile and beyond. They realized this too late, and then their extreme over-correction was to build a new mobile operating system. However an open-source OS already existed in the market with AOSP so FirefoxOS needed to try to thread a convoluted set of needles to justify its existence. It actually was a confusing set of Android Browser web-apps mixed with an OS for new devices -- a contradictory strategy that they could never resolve.

The worst part of the current tech-environment is that companies are dead years before they even know it. The next platform is already tearing apart your current one, while its in its infancy. And the entrenched players in the next space will be incredibly hard to unseat.

By the time you recognize the threat, attempt to turn the ship to respond, you are already deep down aware that there is very little chance of a happy ending. This results in convoluted late-stage product strategies that have 3+ directions since management knows no single one of them are viable.

This is a deeply uncomfortable truth that keeps me up at night.

<comment><USER3> Thank you for stating this. What people forget is that the early Android Browser was really, really bad. Chrome helped considerably, but it wasn't released until several years into Android. Also remember that Chrome was not preinstalled when it came out; you had to download it.

Firefox had an opportunity to become what Chrome for Android eventually became; the better 3rd party browser. But they made 2 critical mistakes (as an outside observer):

1\. They didn't take mobile (and specifically Android) very seriously at first. Fennec felt like a side-project at best. 2\. XUL didn't work very well on Android, and it took them a long time to make the switch to native.

I believe things could have turned out very differently had they done the right thing from the beginning.

<comment><USER4> I'm sorry but I couldn't disagree more with this comment. I don't have stats on Firefox or Chrome (or even the native browser) usage to hand, but I really think these are largely irrelevant.

1) Most people experience most of the "web" on their phones via a non-browser. This may be by clicking on a shared link within the FB/Twitter/WhatEver app and seeing it inside an integrated WebView, or it may simply be viewing content normally available via the web through the lens of an app presenting the "same" content "natively". Either way, the point here is that browsers have had less of a role.

2) For a comparatively new OS (Android is ~10 years old, modern Desktop OSes being 30+) people browsing the web directly are going to stick to the default. They're going to downloads apps for things their phone doesn't already do; for webpages, it already has an app for that. Android Browser is the "Blue e" here.

The above may not be the case for the typical HN crowd, but it's quite naïve to think the majority want and act the same as we.

I am hopeful that this trend is changing - that slowly dedicated mobile web browsers are becoming a more viable option - but certainly this was not the case when Fennec was launched. The best we could hope for was for Chrome/Safari to gain ground over "apps". Mozilla's offerings never stood any real chance of being super successful in this early climate and tbh FirefoxOS, ill fated as it was, was probably the least worst chance they had to do so.

<comment><USER5> I know a few people in addition to myself who run Firefox on Android so they can use uBlock.

<comment><USER6> You can use uBlock on FF for Android!?

I really want uBlock and uMatrix like on the desktop. When I tried from within FF on my phone neither were supported.

<comment><USER7> Were you using the iPhone version? That, like all alternative browsers on iOS, is just a shell around Safari, not the real thing.

<comment><USER8> Similarly, the recently unveiled Firefox Focus is a wrapper around webview.

We seem to be heading towards a browser engine monoculture, and i am not sure i like that even if said engine is open source.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> To me, Mozilla jumped the shark when they did not take a principled stance against web DRM. At that point, to me, their raison d'être of advocating the open web was meaningless, since today, in contrast of when they started, the most popular browser is an open-source product anyway and there is a relatively healthy ecosystem of decentralized power across commercial companies in place to check and balance each other. The place where it breaks and a non-profit model would have been helpful was pushing back on DRM, but Mozilla chose to play along sacrificing its principles for popularity as any other commercial entity would.

This is why people like Richard Stallman who don't compromise on principles are critically important.

<comment><USER10> Mozilla did take a principled stand against DRM. It proposed an alternative to EME that involved watermarking content rather than client-side DRM. But the combination of Google, Microsoft, and Netflix was enough to win over the W3C, and by the time that the developer community at large finally got up in arms about it (late 2012, early 2013) it was already too late to change course; by that point, Chrome was already shipping EME for use with Netflix. The tragedy is that Mozilla did try, and nobody cared. And, frankly, even if they had cared, I don't think any amount of dev outrage would actually counter such an influential industry consortium (but maybe I'm just cynical).

<comment><USER11> > And, frankly, even if they had cared, I don't think any amount of dev > outrage would actually counter such an influential industry consortium (but > maybe I'm just cynical).

I don't think the industry consortium is really even that relevant here; it was proposed to the W3C in Feb 2012 jointly by Google, Microsoft, and Netflix, and already had a fairly well fleshed out proposal. It was shipped in Chrome, with Netflix supporting it, little over a year later. I'm fairly certain those three companies would've gone ahead with it _regardless_ of what the outcome of the W3C proposal was.

</comment></comment></comment><comment><USER12> Google cache: [http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://chrislord.net/index.php/2017/06/28/goodbye- mozilla/)

<comment><USER13> Also, this delightful add-on for Firefox: [https://addons.mozilla.org/en- US/firefox/addon/wayback-machi...](https://addons.mozilla.org/en- US/firefox/addon/wayback-machine_new/?src=search)

<comment><USER14> Why only one cache when you can have several?

[https://addons.mozilla.org/firefox/addon/resurrect-pages- isu...](https://addons.mozilla.org/firefox/addon/resurrect-pages-isup-edition)

</comment></comment></comment><comment><USER15> The author's remarks about FirefoxOS actually mirror my own perspective as an outsider. It was a _beautifully_ -made product that felt mismanaged and somewhat unfocused. It was definitely prematurely killed just as it was coming into its own.

I'm still sore about that.

<comment><USER16> I'm sore about it too. I had one of the original phones and I loved it. It was simple and elegant. The author mentioned something about spending too much time copying Android. That was definitely misplaced effort. Why not spend the time making something original? IMO, Mozilla spends too much time in general copying others. Look at the Firefox browser. It seems more and more like Chrome every release. I much preferred the original Firefox.

<comment><USER17> They should've just made the phone boot directly into the browser, and then focus all energy on making the browser better. One app. No screens, widgets, dialer, anything. Add all of that as open web APIs as users demand them. Don't bother with UI beyond proof of concept, let the web optimize it.

You sacrifice the best things about a web OS if you wrap it in a traditional OS UI.

<comment><USER18> The implication that "a web OS" is what people want raises some question marks. I use the web a lot on my phone--for reading documents. I use applications for interacting with services because, still (and this is years after FirefoxOS), the experience of using a mobile web app, especially for integrating with hardware, is awful. There may be something of a chicken-and- the-egg problem here, but at the same time--if it's awful, it's awful, and so going towards real applications is the only thing that makes sense unless you want to make devices that are awful. Nobody wants to make devices that are awful.

Letting "the web optimize" your _dialer_ , though, is perhaps the most dangerous idea I've heard in a while. Core applications under no circumstances should be _optimized by the web_ because that's how you get malware masquerading as those core applications. No bueno.

<comment><USER19> > the experience of using a mobile web app, especially for integrating with > hardware, is awful

I think the implication is that if FirefoxOS had focused on making it _not_ awful, they would have done really well.

It'd be awesome to have a phone for which app development is _all_ done in HTML / CSS / JS while still remaining fast and efficient.

<comment><USER18> Lots of things would be awesome. You have to have something that is not awful to get people invested in pulling something off.

</comment></comment></comment></comment></comment></comment><comment><USER20> Mozilla isn't Google or Microsoft. They can't afford to spread their focus, and resources, so widely that effective focus on any particular area is degraded.

<comment><USER21> Google and Microsoft can't afford to do this either :)

<comment><USER22> Clearly they can. Google especially likes throwing stuff at the wall and seeing what sticks. Whether or not their brand can afford the failures, is another question, but from a financial standpoint, they're much better equipped to weather a failure than Mozilla is.

<comment><USER21> " Clearly they can. Google especially likes throwing stuff at the wall and seeing what sticks."

Having worked there for 11 1/2 years, i can tell you this is not really accurate (it was until ~2007).

It certainly may _appear_ that way to the outside, however :)

<comment><USER23> I'd put the start date of the "throw stuff against the wall and see what sticks" era at 2004 and end date in late 2010 or early 2011, basically when Larry became CEO again. I started in 2009 and we were still very much encouraged to throw stuff at the wall and see what sticks. It continued, for me personally, until early 2013, but I suspect that company policy changed around early 2011 and it just took 2 years for the memo to filter down my management chain. (I worked in one of the oldest and most experimental departments, Search, and a bunch of my management chain was pre-IPO and so had a lot of latitude with what they did.)

</comment></comment></comment></comment></comment><comment><USER24> Mozilla failed projects as an argument is not really valid as the others (like Google or Microsoft) fail a lot too.

</comment><comment><USER8> As an aside, I have found Firefox on Android to work fine as long as the device is relatively pristine. But quickly deteriorates in performance and responsiveness as internal storage fills up etc. This while webit/blink based browsers seems to behave fine under the same conditions.

<comment><USER7> If you think Firefox on Android is fine, please go to [http://browserbench.org/Speedometer/](http://browserbench.org/Speedometer/) and let us know how it does.

Safari on my near 2 year old iPhone 6s scores 89.

Mobile devices are approaching desktop performance for web, but I have never seen anything approaching this from Firefox on Android.

</comment></comment><comment><USER25> I can empathize with the author on wanting to leave when not feeling like an essential part of a team. Personally, I like coding and designing, and definitely I like being part of a team and working towards a goal. But for all the dev managers out there: try to inoculate some form of ownership, so that your devs feel a sense of belonging.

Its not so much that I actively seek to leave when that happens as much as I become more receptive to other opportunities. And recruiters and other companies are very good at luring candidates, so it all adds up.

</comment><comment><USER26> Any info on Mozilla's speech recognition efforts?

Is the aim to do the actual work on the client?

Slightly related if anyone knows: is speech recognition a priority for the folks at Gnu/FSF?

<comment><USER27> The speech recognition effort span a few projects:

\- [https://voice.mozilla.org/](https://voice.mozilla.org/) to collect training data.

\- an implementation of the DeepSpeech algorithm, with a goal of running inference client side. ([https://github.com/mozilla/DeepSpeech](https://github.com/mozilla/DeepSpeech))

</comment></comment><comment><USER28> wow, the are way too many toxic teams at Mozilla :(

I'd expect the company to be pretty democratic. but every month you hear a story like that.

specially shocking: "What business a not-for-profit company, based primarily on doing open-source, web-based engineering has making physical, commercial products is questionable, but it failed long before that could be considered." ...and that was right after their failed mobile phone line failure!

<comment><USER29> I guess one of the problems of Mozilla (as a not-for-profit company and with current trend on social media behavior) is that every single person working there feels entitled to criticize the strategy, just like what happens today in polítics.

<comment><USER30> Why shouldn't they criticize strategy? Do you expect people to just blindly follow and abide by what the company's leadership sets out to do?

<comment><USER31> Mozilla people for some reason feel they can criticize their own company _publicly_.

That just isn't done elsewhere. You criticize internally and form a front to the outside. Meanwhile, Mozilla employees cry for their own CEO to be fired. That's just insane and wouldn't fly elsewhere.

<comment><USER32> Mozilla has never run under the model of a traditional closed-walls corporation, at least with respect to personnel.

It's first and foremost an open-source community, and some people are paid by Mozilla Corp. or Mozilla Foundation to dedicate their entire working time to that community. Allowing open dissent has always been one of the community values, so long as it's otherwise respectful.

[https://www.mozilla.org/en- US/about/governance/policies/part...](https://www.mozilla.org/en- US/about/governance/policies/participation/)

At least as of a couple of years ago when I left, there were no internal guidelines above and beyond these.

Socially, of course, you could shoot yourself in the foot just like anywhere else, but we did enjoy a great deal of intellectual freedom and were expected to be vocal if we thought something should be different. I can't possibly view that as a bad thing.

The Eich situation was and still is touchy, and I won't go much deeper into that other than to echo Fabrice's comment that it was originally driven by a handful of Foundation employees that weren't part of his company (Mozilla Corporation is a different corporate entity than Mozilla Foundation) and to add that within Corp there was a diverse range of opinions, both privately and publicly expressed.

As for "wouldn't fly elsewhere," there's never been any particular ethical reason why an employee shouldn't publicly speak their mind short of spilling trade secrets. The reason has always been fear of being fired. Influence via fear has some pretty sharp downsides, and I'm happy to see the current trend of people submitting to it less.

<comment><USER33> >I'm happy to see the current trend of people submitting to it less.

How so? I think most people have gotten the memo that if you want to keep your job you will toe the line and only say things that couldn't possibly offend anyone. Not only did influence via fear win, it has become so entrenched that it isn't even visible anymore.

<comment><USER31> Blurring the line between internal and external discussion in this is silly. You should be free to speak up internally and having fear there is detrimental.

But hanging internal disagreements out for the competition? Stupid. There's no upsides.

 _there 's never been any particular ethical reason why an employee shouldn't publicly speak their mind short of spilling trade secrets_

It's not about ethics. The public perception of a company matters. Hanging internal disagreements out there does _not_ help so you're just hurting yourself.

<comment><USER34> Hi, I was harsh on your other reply -- too harsh. Sorry.

Here, I totally agree. Mozilla grew a dysfunctional pattern of participants (more likely to be employees than not in my experience, but Mozilla hired most of the active contributors) stabbing projects, individuals, and other sub- groups in the back, under cover of "being open". This was inevitable given the framing in the "open vs. transparent" document:

[https://wiki.mozilla.org/Working_open#Open_vs._Transparent](https://wiki.mozilla.org/Working_open#Open_vs._Transparent)

Even now, Mozilla punches itself in the face too often, with punchers (and sometimes punchees!) claiming it's all for the best.

Taking care to give colleagues a chance to interact over a nascent or less- than-clear technical controversy, before blogging or tweeting, is not being "closed". It is standard peer review with scalability via layers-of-the-onion socializing combined with the "hermeneutic spiral".

Shooting first, fast, and in public in a large community with competitors and press listening is "open" in a vacuous sense, but it has the downside risks you note.</comment></comment></comment></comment></comment></comment></comment></comment>


Intuition in Mathematics (2012) [pdf] - <AUTHOR> http://www.as.miami.edu/personal/echudnoff/Intuition%20in%20Mathematics.pdf <comment><USER2> A quote from Von Neumann comes to my mind:

"Young man, in mathematics you don't understand things. You just get used to them."

<comment><USER3> The same might be true of electrical engineering. I find it quite difficult sometimes to develop intuition about how electricity moves in analog circuits.

</comment></comment><comment><USER4> Intuition in mathematics is just as important as it is in any other human endeavor. On the other hand, there are many results and methods that are deemed non-intuitive - by students and (consequently) by instructors. Some of the results are so non-intuitive that they may end up being labeled "pathological" \- despite being, in fact, completely logical consequence of the assumptions, of which one of the most well-known is Axiom of Choice. Another example is that differential forms are often seen by students as very non-intuitive compared to vectors, even though they are much more useful and can be efficiently used in more general settings than vectors can.

<comment><USER5> > Some of the results are so non-intuitive that they may end up being labeled > "pathological" \- despite being, in fact, completely logical consequence of > the assumptions, of which one of the most well-known is Axiom of Choice.

That's not true. The axiom of choice is actually famous for being _independent_ of ZFC, meaning that it cannot be proven or disproven using the usual axioms of set theory. That's why it's an axiom: you need to assume its truth without grounds.

Also, in intuitionistic logic, the axiom of choice is provably false.

<comment><USER6> Firstly, the sentence you quoted, while unfortunately ambiguous, is correct if you take "of which" as picking up "assumptions" instead of "results". That is, the assumptions, of which a famous one is AC, have counterintuitive consequences, of which the original poster does not give an example but Banach–Tarski is a commonly cited one.

Secondly, the axiom of choice may be independent of ZF (depending on whether ZF is consistent) but it is certainly not independent of ZFC :).

<comment><USER5> > Firstly, the sentence you quoted, while unfortunately ambiguous, is correct > if you take "of which" as picking up "assumptions" instead of "results".

Oh, _that 's_ what Koshkin was trying to say.

> Secondly, the axiom of choice is not independent of ZFC, it's independent of > ZF (assuming ZF is consistent) :).

Ah, the C stands for choice...

</comment></comment></comment></comment><comment><USER7> While the author has ample experience in the field of philosophy and has spent considerable time studying intuition (curriculum vitae: [http://www.as.miami.edu/personal/echudnoff/CV.pdf](http://www.as.miami.edu/personal/echudnoff/CV.pdf)), the writing style seems too informal and personal for my taste. Without looking up the author, I would not have dared to guesstimate that the author is an associate professor, but rather a hobbyist. Perhaps such a style is common in the field (I rarely read philosophy papers), but coming from a natural sciences background it seems very odd.

<comment><USER8> I don't think informality is what's objectionable, I think it's good when papers are more accessible without sacrificing precision or expression.

The problem here seems to be witting skills. For example, this should never be a sentence: "That is the aim of section 1."

<comment><USER9> Non-native speaker here. What is wrong with this sentence and how would you improve it?

<comment><USER10> Remove it. If you've stated your goal, that should be clear. There is no reason to state that you've stated your goal.

<comment><USER11> There are undertones here. What the section really says is that mathematical intuition has different aspects that are very distinct, and that a discussion of some of these will follow. Which ones these are and why these were chosen will be discussed in Section 1.

The task of the editor is never to impose their style upon the author. There are different writing styles even in academic writing, a wordy one, one that chooses outrageous words, a very terse one, and the awful MBA-style kind.

What's worst is an editor that sees a sentence that he does not understand, and edits that, thinking it's just style but completely changes the meaning.

<comment><USER10> The editors job is to improve the writing by making it easier for the intended audience to read and comprehend.

In this case, the sentence can be easily worked into the preceding sentence which it echos - by changing the place holder clause "The first order of business is.." to "The aim of section one is..".

<comment><USER11> That version loses the emphasis on recognizing that there are distinct aspects of mathematical intuition. Congratulations! You successfully changed the meaning of the sentence! The intended audience is mathematicians and philosophers, these people can be expected to have full grasp of the English language and to engage with the paper.

I once was working with a horrible boss like that. I'd write a draft of the paper, she would not understand subject or prose and change some sentences into something else, based on her limited understanding of the subject and the prose. It was excruciating. You'd read her draft full of MBA-speak and couldn't make out the meaning of some of it!

<comment><USER10> First off all, the meaning is equivalent and this sentence is completely unnecessary. Repeating your intents in sequential lines doesn't add meaning.

"The first order of business will be" is a placeholder used in speech, to me it has the equivalent meaning of "Uhm, I will be". Care to elaborate further on what you think the special emphasis of this phrase is in this context?

>Congratulations!

Not to edit your style bro, but the condescension is a bit much. Seems like you have just soured on editors due to some bad personal experiences. Editing is suppose to be a two way conversation in which the editor marks up all possible errors and you accept the changes that you think add clarity or just rewrite it yourself knowing that your previous version was unclear to at least 1 person.

That said, I don't really see the grey area in this case.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Funny related reading: Imre Lakatos - Proofs and refutations

<comment><USER7> Freely available version: [https://math.berkeley.edu/~kpmann/Lakatos.pdf](https://math.berkeley.edu/~kpmann/Lakatos.pdf)

<comment><USER12> Only a part. It was published several times (as a paper, thesis and a book at least and the book is much longer).

Anyway this part looks good enough to catch some points.</comment></comment></comment>


Show HN: A Facebook profile picture guessing game I made - <AUTHOR>

Over the past few days, I've been working on this fun idea I had when I first saw the blur.js post, here on HN. My first though was to make a game using it. So, I wrote Friendblur.
Check it out: http://friendblur.com/
This was my first Backbone.js app, as well. It seems to work pretty good on IE, FF, Chrome and Safari. I used Bootstrap to quickly get it out there. There's no server side database or anything, yet. I don't keep track of scores or anything. The only thing the server does is pipe facebook image data back to the user, because that was the first idea I had as to how to get around a cross-domain issue with blur.js.
So, if anyone knows how to get image data somehow from the browser cache or something, that'd save me some bandwidth. :) <comment><USER2> Nice work, it's an interesting mechanic.

You might want to look at some kind of scoring system + sharing of that score to increase sharing of the application.

ie "I guessed 10/20 of my friends profile pictures".

This would allow you to use it as a competition entry mechanic for brand promotions. We do this kind of thing all the time: <http://nativedigital.com.au/social>

<comment><AUTHOR> Thanks for the feedback. That's kind of my goal for tonight. I'm going to keep track of the total number of rounds that each person has guessed correctly, I think. Something along those lines. I think this would maybe prompt people to want to have a lot of successful rounds, which means played a lot of rounds.

<comment><USER2> Nice. And then maybe high scores and leaderboards?

<comment><AUTHOR> Yea. I've got it logging when a person wins a round, now. I was thinking though, maybe I should only log consecutive wins, otherwise it'd just be the person who plays the most. Consecutive wins might keep the leader board empty, though. :P

</comment></comment></comment></comment><comment><USER3> Nice work. Think it would be fun to have just one image..and the player gets quick feedback on whether their guess is correct or not. Then, quickly goes to the next pic. Just a thought.

<comment><AUTHOR> This is how the app idea started, actually. When I showed it to some friends and watched them play, there just wasn't enough sense of a game mechanic, I guess. When I showed my dad, who is not the most technical guy, he saw the timer and felt rushed to guess before it was up. That's when I realized that I should make it more of a per-round type thing, and the goal is to get all 3 correct. It just felt more natural, I guess.

</comment></comment><comment><USER4> Fun. I would love a pause button, so that I can take a break - or look up the person's profile that it just showed me.

<comment><AUTHOR> It does pause if you win the round. I could easily add a pause button, though. You also give me a good idea - I should make the names at the end of the round be links to their profile, too.

<comment><USER4> A 10 second pause at the end of the round is not enough for me to get a drink of water. A button would have helped me.

<comment><AUTHOR> I mean, if you guess all three of the friends in the set, it stops the timer all-together. I will add similar logic to a button, as well.

</comment></comment></comment></comment><comment><AUTHOR> Clickable URL: <http://friendblur.com/></comment>


Diablo 3's Launch Day: An Example of Gaming Companies that don't Understand Ops - <AUTHOR> http://blog.johnryding.com/post/23123247449/day-1-user-reviews-of-diablo-3-an-example-of-gaming

<comment><USER2> The guys that do World of Warcraft? Really? This is troll bait isn't it? I'm being troll baited right now.

</comment><comment><USER3> Is this a desktop only problem, or does it extend to console players too?</comment>


Environment Variables and Path in Windows 10 - <AUTHOR> https://plus.google.com/+ArtemRussakovskii/posts/CCM4hXzpRTv <comment><USER3> What's completely inexplicable is why it took 23 years to do this. Consider this:

(1) It's self-contained piece of UI code. It's not like this change will permeate effects throughout the OS.

(2) It's a few man days of work. Let's say that as a super-exaggerated-extreme estimate, it is still only a few months of work.

(3) Nobody was dependent on the current behavior.

(4) Everybody hated the current behavior. Programmers jumped through hoops like copying&pasting the strings into an editor, making a change, and pasting it back.

(5) They had at least 23 years to fix it (since at least Windows 3.1).

There are more plausible explanations about MH370 than there are about Microsoft's thinking here.

<comment><USER4> What's even more inexplicable is that you can't do the same on Linux. For all the developer-friendliness of the platform, nothing infuriates me more than having to edit my PATH/LD_LIBRARY_PATH/etc. by editing my .bashrc and then having to log out and back in again. Not to mention that programs you start from the GUI launcher don't source that file so if you need a program to start with one of them set, you actually need to edit .profile... wait no that doesn't work, I mean /etc/profile.d/99-my-path.conf... no actually it's /etc/environment... or is it /etc/profile... oh fuck this I'll just write a small shell script that sets PATH and launches what I want.

Like... in Windows _motherfucking_ NINETY-FIVE you could edit your PATH variable without having to restart, why do I have to log out and back in in 2015 for Linux to accept those changes. Why do I have to mess around with random scripts that may or may not be executed by one of the many steps launching my session. What is this madness.

<comment><USER5> Isn't just starting a new shell suffice? (Usually I'm lazier and just say ". ~/.bashrc", knowing that it might not be idempotent but I don't care.)

<comment><USER6> If you place environment variables in ~/.bashrc, it would work. However, generally they are placed in ~/.profile which is read only when a _login shell_ is launched. (And ~/.bashrc is not even read when you start a GUI session, anyways.) This is especially problematic in the GUI environment because in that case the login shell is the desktop environment itself. So you need to restart the whole environment (close all the windows, logout, and login) to load the new environment variables.

Windows gets over this problem by letting the login shell (explorer.exe) reload the environment variables in place. So, if we are to do the same thing in Linux, we might have to patch bash, zsh, and GNOME etc. to understand the environment variable change events and reload itself appropriately. I'm not sure where to start, but I believe this is the one thing that Windows did right, so I want to see it happen.

<comment><USER7> Changing how the environment works isn't a trivial change, it would have far- reaching consequences, and every program that reads the environment would need to be patched, not only the shells and display managers.

<comment><USER8> If the aim is to replicate how Windows works, only the GUI shell would need to reload environment variables (i.e. the process that forks when you start programs using whatever the desktop's idiom is).

<comment><USER7> This seems inconsistent behaviour to me. Some running processes reload the environment and others don't. Maybe in Windows they can get away with it, but that doesn't mean it's a good idea.

<comment><USER9> To be fair: The Windows way is kinda consistent: If the environment definition was changed, everyone gets a window message. It's just that no one but explorer.exe cares about that and reacts, as far as I'm aware (Raymond Chen had a recent article mentioning exactly this).

So, the OS tells everyone 'Hey, you totally could update your environment'. But your running instance of Skype or whatever just doesn't need to care.

<comment><USER10> Raymond Chen article for anyone that is interested: [http://blogs.msdn.com/b/oldnewthing/archive/2015/09/15/10641...](http://blogs.msdn.com/b/oldnewthing/archive/2015/09/15/10641604.aspx)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> If we're ragging on ancient Windows history, could Microsoft please make Notepad kinda usable? Here's two simple changes that would hugely reduce the incidence of me roaring at my machine when I remote into a server that doesn't have Notepad++ yet:

1.) Don't set the filter on the file open dialog as .txt, by default, just make it all files.

2.) Handle newlines properly, even if they are evil Mac or Linux style ones.

For the love of Cthulhu, don't rewrite it as a Modern app, just fix a few of the things that have been irritating for twenty years.

<comment><USER12> > For the love of Cthulhu, don't rewrite it as a Modern app

I'm honestly curious about this remark.

If Modern apps today were as limited as they were in Windows 8 then I'd wholeheartedly agree with you. But I actually find Modern apps in Windows 10 to be quite usable now that they can be freely resized and managed like any regular application.

I personally use several modern apps on a day to day basis, namely Mail, Calendar, Finance, Reader, Calculator, and the Office apps (in place of the full suite that I no longer have installed, saving several Gigabytes on my SSD), and I really struggle to think of any glaring issues that would make someone so vehemently condemn this entire class of apps.

<comment><USER13> I personally find them to be slow to start. For example, the calculator app has a loading screen. A loading screen for a calculator! It's usually about second or half a second, but sometimes it is more. The Photos app has a similar slowness when opening that is annoying when browsing folders of photos.

<comment><USER14> I used to have the same issue with Windows 8.1 but since Windows 10 they load almost instantly.

</comment></comment></comment></comment><comment><USER15> And next year when ASP.NET 5 ships, we'll finally be able to use environment variables for appSettings [1] instead of the hacked up mess that web.config is right now.

[1] [http://docs.asp.net/en/latest/fundamentals/configuration.htm...](http://docs.asp.net/en/latest/fundamentals/configuration.html)

<comment><USER16> Isn't it bad? Given that only admin/power user can change environment variable, this will be a issue in shared hosting right?

<comment><USER17> Have you ever seen a shared web hoster that used Windows server edition? Shared hosting usually runs on LAMP.

And server admins/devops won't have a problem. Applications will hopefully use variable with a prefix, e.g. App123Debug

<comment><USER16> Yes, all the time. Azure / EC2 all provide top class windows hosting. But for low cost shared I am stuck with arvixe and aspdiscount or so... But yeah I have only windows hosting over 10 years . Gives me everything PHP, python, .net , MySQL , mssql. I find Linux shared hosting too restricted. especially with sql server express edition...For me writing .net (actually vb.net) is way faster personally than even C# I use it all the time , I use c# only when some function is missing even then I use c# via library and still keep the vb.net. Though lately vb.net sample codes is very low but easy to convert from c#. Tried python like it but that 4 whitespace or whatever freaks me out. Currently on Go and Erlang learning path... but yeah IIS 8.0 excellent platform for low traffic websites

</comment></comment></comment></comment><comment><USER18> always felt like the Windows mechanism of having at least one non-ambiguously global place to set environment variables to be super useful to deal with (instead of the ubuntu '/etc/environment/', except when it's '.profile', except when it's '.pam_environment', except when its '.bashrc')

<comment><USER19> Baseless argument. Windows also splits the environment between the HKLM and HKCU hives. It just gives you a handy window to edit both at once.

.profile is a login script, not the recommended place for setting variables although historically it has been because /etc/environment and ~/.pam_environment are relatively recent additions to Linux. (Why didn't distros adopt the ~/.env though that other Unixes, like AIX, use?) But there Windows also has the profile login script and I don't know if it's possible to export environment variables from it but that serves the same purpose of ~/.profile.

So all those things you say are bad about Linux exist on Windows.

<comment><USER18> I'm not against there being many different hooks in your average linux distro, but googling 'how to set environment variables in Ubuntu' gives you 20 different answers, with many conflicting statements between them.

</comment></comment></comment><comment><USER20> I've wondered why they didn't fix this so many times over the years. Every time I saw that one inch wide, unresizable text input for the PATH or other variable, I got that feeling of exasperation you get when you know a company doesn't listen to its customers. It would have been the easiest thing in the world to do and yet it took over a decade to do it.

</comment><comment><USER21> I dream that someday I can cut and paste from the command prompt. I mean, I'm really happy that Microsoft is actually making improvements to parts of windows that have been needlessly awkward for decades.

<comment><USER22> You can cut and paste from the command prompt if you go to properties and check the "Quick Edit Mode" option. It lets you highlight with the left mouse button and copy by simply clicking the right. w/o quick edit you first have to select 'Mark' from the context menu then you can highlight text to copy paste. It has worked this way as long as I can remember.

<comment><USER23> And, bizarrely, the keyboard shortcut to copy marked text is Enter.

<comment><USER24> Because Ctrl+C was used for "interrupt" long before the concept of copy-paste came into being. Enter is often used to signify the positive end of an operation.

<comment><USER25> If you enable the Ctrl shortcuts for clipboard operations, what shortcut do you use to stop a running process? Has one been made available?

<comment><USER26> How about Ctrl+C? The meaning is unambiguous: If there is a selection, Ctrl+C is handled by the console host and copies the selection. If there is no selection, Ctrl+C is passed on to the running program which then does whatever it likes with it (i.e. in many cases terminate itself).

<comment><USER25> Your suggestion makes sense, but my previous question was referring to how Windows handles this. Do you know if it's possible to assign Ctrl+C to both operations for the Windows 10 command prompt?

<comment><USER26> That was a description of how Windows handles this. Basically, the current selection and those capabilities are part of the _console host_. Your application running in a console window has (to my knowledge) no idea of those features; it cannot tell whether there is a selection or not or what to do with it because they happen transparently a layer above your application (between your application and the window manager, essentially).

So the question you're asking is a bit moot, in a way, considering that the answer is yes, because that's exactly the way it is. It cannot be any other way, as far as I can see.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER27> Hopefully there is no more maximum length that PATH could be. My last experience was with Windows 7, so maybe a lot has changed since then. Nothing more annoying than having a custom CMD shortcut that loads a script to add things to PATH that got truncated otherwise, and maintaining that script as new programs were installed and wanted to keep adding to PATH.

<comment><USER24> _as new programs were installed and wanted to keep adding to PATH._

That's more a problem with those programs than anything about the length of an environment variable.

<comment><USER28> You're technically correct, but you're really underplaying how goddam troublesome it can be.

Just a couple days ago, I tried to add a tool to my PATH and it wouldn't stick because both Intel and Microsoft decided that their utility needed not only both Program Files and Program Files (x86) for each (doubling their PATH usage), but Intel also decided to arbitrarily use positively uselessly long directory names. As in, I actually think it's plausible Intel specifically did it to screw over PATH usage.

Infuriatingly, the hard PATH limit is _after_ any environment variables have been expanded, meaning there's no reasonable way to compress the path down. (Never mind that it also only expands variables less than the string 'PATH'.) In the end, I used DIR to find what the 8dot3 representation of each repeated or long directory was.

Now I have enough free characters, but no fracking idea exactly where they point. It's the sort of crazy that I really thought would have been lic'd by now.

Edit: I forgot to note that the hard limit is a truncation. So while you can happily add to the PATH variable in the (now out-dated) dialog, the actual console won't see all of it. I had moved folders around before my rant above such that my final PATH exactly ended on "\node\bin". It's sort of a weird game of PATH golf at this point for me.

<comment><USER29> Did you take a look at those Intel binaries they wanted on the PATH? They are all diagnostics tools that so far as I know aren't very useful to the average developer, much less the average consumer. There really doesn't seem to be a reason for Intel to add them to the PATH, because how often do people make support calls directly to Intel?

I just remove the Intel folders from my PATH (every time one of their drivers resmashes them into the PATH).

</comment></comment></comment></comment><comment><USER24> Does the "Edit Text..." button still allow access to the old single-string version? If so, that would be good - nothing worse than making one thing easy to do, but making something else that used to be easy nearly impossible.

</comment><comment><USER30> You can't believe how many of the legacy stuff Windows still has. The folder sharing dialog is still clunky like it's 1998.

<comment><USER31> It would be nice if Windows had something equivalent to Airdrop. Then again, it probably wouldn't help when sharing files been Windows and OS X.

<comment><USER32> I don't have a windows laptop with bluetooth to test, but doesn't bluetooth work for this? I haven't used Airdrop though so I might be missing something. But for example I've used it to send from my mac to android tablet when the terrible osx/Android file manager program fails to work.

Edit: I think I fat finger downvoted parent, sorry

</comment></comment></comment><comment><USER33> I never thought Windows would bring innovation in this dimension! I hated the PATH dialog for so many years so that I stopped hoping for anything better.

Maybe someday we will have a decent terminal window, too!

<comment><USER34> > Maybe someday we will have a decent terminal window, too!

Have you checked lately? ;)

</comment></comment><comment><USER35> Now Mac OS X is the only major operating system without an easy way to modify environmental variables. Sure, you can edit your `.profile` or `.bashrc` or `.zhsrc`, but those settings do not carry over to your GUI applications, like the IDEs I am used to.

<comment><USER36> Which is weird because it _used to_. But ~/.MacOSX/environment.plist (easily edited in the plist editor) got deprecated and isn't used any more.

Edit: Don't know if you know this, but you can use "launchctl setenv key value" to set environment variables that get used by GUI programs. Unfortunately there are 2 _huge_ caveats: 1) it's not persistent so you need to make something that load them at boot time, and 2) if you load them too late, they won't be part of the Dock or Finder process and you'll need to restart those processes to get your custom env vars in there. When you click something from the Dock, it inherits the environment from the Dock, so it's important to get your vars into the Dock itself.

I've now grown used to running a script manually at boot time and then doing "killall Dock" so that when I launch Emacs or XCode I get the right PATH. If someone has a smoother solution, I'd love to hear it.

</comment></comment><comment><USER37> You can use 'set' to view envars. Want to see your postgres envars? Type 'set pg' and it will show anything starting with 'pg'.

You can use 'setx' to permanently set envars too.

You don't need to logout to use them, just restart cmd or whatever program you use.

<comment><USER38> Or you can just use PowerShell, which allows you to manipulate all kinds of things in a filesystem-like manner (PSProviders):

Get-ChildItem env:

New-Item -Path "env:\myvar" -Value "MyValue"

Amongst other things, it works for the registry and even Active Directory.

Edit: for persistency you actually need to use [Environment]::SetEnvironmentVariable("TestVariable", "Test value.", "User")

<comment><USER26> I answered an interesting SO question on that recently, which asked how to save and restore the environment in PowerShell. Turns out, the environment being in a PSDrive helps very much with that because you can treat the variables just like you treat files:

        # Save environment
        $savedState = Get-ChildItem Env:

        # Restore environment
        Remove-Item Env:*
        $savedState | ForEach-Object { Set-Content Env:$($_.Name) $_.Value }

</comment></comment></comment><comment><USER39> I want to know why we are still using environment variables (and paths to a lesser extent), other than the fact that they are heavily ingrained.

Are there OSs out there that address this solution in a less archaic way?

<comment><USER40> TempleOS has something like a set of environment variables for each task - <USER2> the user asks for a variable and it isn't found, then the parental task's variables are checked, followed by the next parental task's variables etc., all the way up to Adam, which would be like global environment variables.

[http://www.templeos.org/Wb/Doc/Mysteries.html](http://www.templeos.org/Wb/Doc/Mysteries.html)

</comment></comment><comment><USER41> Aren't environment variables kind of a bad thing in Windows? They're global so installing an application that twiddles with them could break another application. Isn't that what we had the registry for and now AppData?

Path is a bit different because it's helpful being global so any command prompt can use it. Though the start menu search bar doesn't seem to so wouldn't it be better moved to a setting in the command prompt and Powershell applications themselves?

</comment><comment><USER42> Doesn't matter; I use Rapid Environment Editor

[http://www.rapidee.com/en/about](http://www.rapidee.com/en/about)

</comment><comment><USER17> It took them only 25 years to improve the UI (since early days of WinNT 3.1). Unsexy parts of the OS are rarely touched, e.g. the Windows system font folder import dialog used to look like a Win16 file open dialog even in Win7.

On the other hand, it was probably by design. Microsoft wanted to promote the Windows Registry and GUI of Win95/NT4 and made the command prompt (cmd.exe and other Unix/DOS alike parts) unpopular and not easy to use.

</comment><comment><USER43> I hope this means that somebody also fixes KB329308, which I'm pretty sure was still around in Windows 7 (unless it already got fixed in 8/8.1) [1]. It's pretty easy to get bitten by this when setting up Java build tools on Windows.

[1] [https://support.microsoft.com/en- us/kb/329308](https://support.microsoft.com/en-us/kb/329308)

</comment><comment><USER44> The UI was bad, but the length limit is my biggest grief with the path environment variable. A lot of useless drivers and software feel that they need to have their own entry and if you have enough software installed in a box, very bad things will happen when you reach that limit, starting with the windows UI falling apart.

</comment><comment><USER45> And each entry is still limited to MAX_PATH.

</comment><comment><USER46> I don't know why everyone says copy paste from/to an text-editor... I copied a path into my clipboard and wrote ;{past-shortcut} and click ok. And the path was added.

In terms of developer UX, i now have to do 1 step more (click add button, paste the string, click ok, click ok).

PS. It was rare that i actually had to change a path

</comment><comment><USER47> It's nice that MS is picking up the slack. Pity that all sane developers have already moved to OSX or Linux.

<comment><USER48> That's not true at all. In the corporate world Windows is still the default because of many the tools used to make large organisations flow are available only on Windows. OSX and Linux is used a lot as well, but it's most common in small organisations and new "hipper" companies.

</comment></comment><comment><USER49> Now if only you could change the Path without logging out and back in.

<comment><USER50> You can. At least for cmd.exe you just have to open a new console, but no need to fully log out and in again.

<comment><USER26> This works for any application started by Explorer (which also means the task bar and start menu). Windows broadcasts a message that the environment has changed and Explorer listens and updates its environment accordingly.</comment></comment></comment>


Nikon Picked 32 Photographers to Promote a Camera. All 32 Were Men - <AUTHOR> https://www.nytimes.com/2017/09/14/technology/nikon-female-photographers.html <comment><USER2> Ahh, yeah. I was checking out the 2017 Quiltcon awards. Of the 70 winners across all the categories, 1 was a dude.

[https://community.themodernquiltguild.com/resources/quiltcon...](https://community.themodernquiltguild.com/resources/quiltcon-2017-award- winners)</comment>


Further Evidence That Reality is a lot more complicated than we think it is - <AUTHOR> http://www.iflscience.com/physics/measurement-rules-quantum-universe

<comment><AUTHOR> Physicists have succeeded in confirming one of the theoretical aspects of quantum physics: Subatomic objects switch between particle and wave states when observed, while remaining in a dual state beforehand. Now, Dr. Andrew Truscott of the Australian National University has reported the same thing in Nature Physics, but this time using a helium atom, rather than a photon.

[http://www.iflscience.com/physics/measurement-rules- quantum-...](http://www.iflscience.com/physics/measurement-rules-quantum- universe)

</comment><comment><AUTHOR> The published details are here [http://www.nature.com/nphys/journal/vaop/ncurrent/full/nphys...](http://www.nature.com/nphys/journal/vaop/ncurrent/full/nphys3343.html)</comment>


Ask HN: How do you deal with impostor syndrome as a software contractor? - <AUTHOR> Backstory: I have been hired as a software contractor, and I start work next Wednesday. The position is fully remote and requires around 50 hours per week. I am a self taught developer with 4 years of experience, and I am struggling with impostor syndrome.<p>I am good at the languages I will be working with, but I am anxious that when I start the job, I will need some time to acclimate myself to an architecture that other people have written. Do companies usually give a contractor some time to warm up to a new environment? Do you have any tips on how I can get my bearings faster in a new environment, or on how to be a good contractor in general? <comment><USER2> I have worked somewhere that hires contractors, and yes there is a period of acclimation required and this so expected. Just getting the requisite software and system setup and familiarising yourself with the application is a few days.

One good thing to do is take a look at a any bug lists and see I there are any quick wins you can see. This helps you get involved and to learn the system without needing to pick up an involved and complex ticket.

<comment><AUTHOR> Thank you, I appreciate you taking the time to help. This is relieving to know.

<comment><USER2> Where I work we use git/GitHub, the readme docs should enable a new developer to set up easily. If your new employer doesn't have something like this, a great first thing to do is document the set up process, useful for your learning and for the next contractor after you. You can feel like you are adding value straight away. If it already exists the a) your set up is easier and b) you can alter it if necessary i.e you find an unmentioned issue and fix it.</comment></comment></comment>


Volkswagen Group to become a world-leading provider of sustainable mobility - <AUTHOR> http://www.volkswagenag.com/content/vwcorp/info_center/en/news/2016/06/2025.html <comment><USER2> ...until they get caught again red-handed.</comment>


NordVPN transfers data to tracking service - <AUTHOR> https://www.kuketz-blog.de/android-nordvpn-uebermittelt-e-mail-adresse-an-tracking-anbieter/ <comment><USER2> my summary (not a native speaker and pasting the full translation was too messy).

the nordvpn app for android is sending device data to multiple trackers.

It contains all the normal things you probably expect, screen size, manufacturer, uuids for advertising etc but also some _strangely_ specific stuff.

This includes sensor data (Gyroscope, Accelerometer, etc)

from the json sent to "AppsFlyer":

        sensors":[{"sT":4,"sV":"BOSCH","sVE":[0.015487671,0.022598267,-0.013870239],"sVS":[-0.061203003,-0.059432983,0.04260254],"sN":"BMI160 Gyroscope -Wakeup Secondary"},{"sT":1,"sV":"BOSCH","sVE":[0.6355438,6.844879,7.2422333],"sVS":[0.1184082,6.7634735,7.1632233],"sN":"BMI160 Accelerometer -Wakeup Secondary"},{"sT":4,"sV":"BOSCH","sVE":[0.015487671,0.022598267,-0.013870239],"sVS":[-0.061203003,-0.059432983,0.04260254],"sN":"BMI160 Gyroscope"},{"sT":2,"sV":"Yamaha","sVE":[46.717834,-18.313599,-34.529114],"sVS":[46.717834,-20.56427,-33.029175],"sN":"YAS537 Magnetometer"},{"sT":2,"sV":"Yamaha","sVE":[46.717834,-18.313599,-34.529114],"sVS":[46.717834,-20.56427,-33.029175],"sN":"YAS537 Magnetometer -Wakeup Secondary"},{"sT":1,"sV":"BOSCH","sVE":[0.6355438,6.844879,7.2422333],"sVS":[0.1184082,6.7634735,7.1632233],"sN":"BMI160 Accelerometer"}

<comment><USER3> Some apps need gyro details to determine if the app is being reverse engineered. The idea being if the device is static and not moving then it is been run in a virtual machine and being inspected.

<comment><USER4> They want the data, they don't need it.

This is probably either a 'grab whatever you can' or a panopticlick-like strategy though.

</comment></comment></comment><comment><USER5> I am strangely reassured by the GDPR email I got from my VPN provider. They are in a EU country, so breaking the GDPR will have consequences. They state clearly what they store and what they are required to store. There is an actual company in an actual house and they are in a jurisdiction I understand. No shady parent companies and weird tax schemes to get money from Panama companies.

These kinds of VPN services have always seemed shady to me.</comment>


Show HN: Latest headlines in pure HTML, for Irma people on low connection - <AUTHOR> https://www.alexkras.com/textnews/ <comment><AUTHOR> I am kind of away form keyboard, but saw that Tweet from @samccone pointing out that [http://lite.cnn.com/](http://lite.cnn.com/) was making users download React...

[https://twitter.com/samccone/status/906714941360553986](https://twitter.com/samccone/status/906714941360553986)

I wanted to provide a lighter way to get latest headlines on poor connection.

It's a quick edit to my old project( removed Boostrap, Google Analytics and added Twitter feed for #irma) [https://www.alexkras.com/simple-rss-reader- in-85-lines-of-ph...](https://www.alexkras.com/simple-rss-reader-in-85-lines- of-php/)

If anybody knows a good RSS feed to add, or wants to fork it and do a better job, please be my guest.

<comment><USER2> Not to take away from this project, but apparently CNN has pushed out a change now (they were having some SSR issues at first). Now it loads roughly 59KB (~7KB if you have uBlock Origin blocking the analytics)

<comment><AUTHOR> Cool, thanks for pointing it out. I am all in favor of CNN getting their act together for this!

<comment><USER2> Definitely. Would love to see more sites embrace this. I was glad to see that NPR has a text-only news site too.

Of course the benefit of your project is you get to pull from multiple news sources instead of just one, so that broadens the information available.

Still sad to see that on CNN's lite site the analytics js file itself is ~7 times larger than the page. 52KB of analytics for a 7KB page seems crazy to me. Still better than forcing users to download an entire copy of React for a text page, haha :)

<comment><AUTHOR> I agree 100%</comment></comment></comment></comment></comment>


Show HN: I made 1M (!) syntax highlighting themes - <AUTHOR> https://www.syntaxenvy.com/0782664 <comment><USER2> Each click on random adds a browser history item. _So_ many "back" clicks to get back out.

</comment><comment><USER3> Very cool, played around with it for like an hour and found a good one.

Nice looking website too.

</comment><comment><USER4> Killing me. I'm going to have to try all of these. I should be mad

</comment><comment><USER5> FYI: You have DEBUG = True in your Django settings file.</comment>


Ask HN: urgent Security and unsuaul user activity - <AUTHOR>

Hello.. I need to ask about something... There is a visitor who keeps visiting my website through multiple proxies at the same time, but as you know.. most of proxy services pass the real IP in the requests.
And after his visits, a mysql db errors keep raising..
I need to know.. is it normal that a user visits a website through multiple proxies at the same time? <comment><USER2> You are probably better off asking this somewhere like stackoverflow or severfault but it sounds like someone might be trying an sql injection attack. See if you can grab the url and querystring of the pages that are being visited

<comment><AUTHOR> Hi and thanks for your response.

But I need to know in general.. is it something usual that someone visits a website using multiple proxies at the same time?

<comment><USER2> I doubt it is 'someone' as much as it is 'some bot' searching for sql vulnerabilities. We occasionally notice a similar thing with a a bunch of visits to a page with attempted sql injection in the query string. As long as your inputs are sanitized (and you arent returning details on errors) you shouldn't have a problem.

</comment></comment></comment><comment><USER3> It's probably a botnet performing automated SQL injection checks on your site; you definitely need to make sure that you are correctly sanitizing any user input, especially if it's echoed back to the page (XSS) or used directly in a database query (SQL injection).

 _Especially_ if you're having database problems, you're going to want to check things. If you have a database of accounts, you might even consider taking the site offline until you can verify that it is secure (and that it hasn't already been dumped to an attacker).</comment>


Show HN: BlackFriday Deals for Developers - <AUTHOR> http://blackfridaydealsfordevelopers.com <comment><AUTHOR> Yesterday I was looking for good BlackFriday deals for developers (i.e: courses, ebooks, dev tools,…) I asked on twitter, and called some friends but I didn't get what I was looking for. And then a friend of mine asked me to send him any good deals I'd find.

So I thought maybe instead of tweeting about the deals I find and share them just with this one friend, it would be much better to build a small web app to list all these good deals, and allow other people to collaborate and add the deals they come across.

So I spent a few hours last night and I built… wait for it… BlackFridayDealsForDevelopers.com

I hope you'll find this useful

<comment><USER2> The horizontal ad at the top skews mobile fyi.</comment></comment>


Rockstart's class of 2013: ready for action   - <AUTHOR> http://startupjuncture.com/2013/06/14/rockstarts-class-of-2013-ready-for-action/ <comment><USER2> Thanks for the write up Sieuwert, which was your favourite?</comment>


HTTPKit — A lightweight HTTP server framework for Objective-C - <AUTHOR> https://github.com/fjolnir/HTTPKit

<comment><USER2> There is also: <https://github.com/robbiehanson/CocoaHTTPServer>

This works on Cocoa an iOS and supports:

        - Built in support for bonjour broadcasting
        - IPv4 and IPv6 support
        - Asynchronous networking using GCD and standard sockets
        - Password protection support
        - SSL/TLS encryption support
        - Extremely FAST and memory efficient
        - Extremely scalable (built entirely upon GCD)
        - Heavily commented code
        - Very easily extensible
        - WebDAV is supported too!

(Not the author, just a user).

<comment><AUTHOR> HTTPKit does support WebDAV, Auth & SSL. But CocoaHTTPServer looks nice as well.

</comment></comment><comment><USER3> The OP also created a language on top of objective-C. Although I have no interest to learn any more languages, I have to applaude him. Objective-C could be clunky and his language Tranquil, takes some of the productivity of newer languages we've come to expect. Very cool!

<comment><USER4> They also submitted it to HN a few months ago, but didn't get any comments – <http://news.ycombinator.com/item?id=4386177>

</comment></comment><comment><USER5> Could this be used as a method of communicating with an iOS device as if it were a server (e.g. sending updates from a real server to the iOS client (which now behaves like a server))? Somewhat of a replacement for notifications, perhaps?

<comment><USER6> I used Mongoose [1] to do exactly that for devices that share a local network (auto-discovery and everything). So yes, it's definitely possible :)

[1] <http://code.google.com/p/mongoose/>

</comment></comment><comment><USER6> I would love to see a LUA scripting framework built into this. I built an iOS app with an embedded web server, and dealing with dynamic text generation in Objective-C is a pain.

<comment><AUTHOR> You'd be interested in one of my other projects, TLC then :) It's an objective-c bridge for lua, with which httpkit will work out of the box

<https://github.com/fjolnir/TLC>

<comment><USER6> I'll have to try it out. Thanks!

</comment></comment></comment><comment><USER7> Really cool, OP. Looking forward to reading through this more thoroughly tomorrow, but I'm a big fan of these types of small side projects.

</comment><comment><USER8> Can someone please explain the point of something like this? it's so verbose.

<comment><USER9> Maybe the author had a need for it, built it, and is throwing it out there for anyone else who might have a similar need? Maybe you need to embed a web server in your app for something? Maybe you're really comfortable with ObjC and just want to get a quick server up for prototyping? Maybe you don't find it to be too verbose, and prefer having code that's easily self-documenting instead of relying on framework knowledge? Maybe you like being able to use a framework like Foundation (which has had 20+ years of history)? And so on.

<comment><USER8> Everything you've mentioned could possibly be a decent reason for this beast. I'd just love to hear what they were. You make something like this for one of two reasons.

1) you've got a lot of spare time on your hands and wanted to test your skills and show your love for a language. Based on the outlandish hello world example (which is useless for most web developers), this is most likely.

2) you had some ridiculous constraints and really absolutely had to build a web sever in objective-c. In this case, a better use case or example would be appreciated.

<comment><USER10> 3) You think that having a common language for all parts of your project could be an advantage, for example sharing your model code. Especially valuable if you've decoupled your model from your delivery framework like Uncle Bob told you ...;-) [http://www.confreaks.com/videos/759-rubymidwest2011-keynote-...](http://www.confreaks.com/videos/759-rubymidwest2011-keynote- architecture-the-lost-years)

4) You find that the very _small_ amount of spare time this sort of thing takes is worth it, even if just for kicks.

5) You miss WebObjects.

6) In addition to having code commonality, you might be interested in performance that allows you to not have to worry about scaling out for much much longer than other common solutions (or requiring rewrites if you're successful). For example, my own embedded Objective-C web lib (based on libmicrohttp) clocks in at around 30K requests/second even when initialized via script on my laptop, whereas something like Sinatra does around 900.

[http://blog.metaobject.com/2012/03/30k-requests-aka-wrk- is-f...](http://blog.metaobject.com/2012/03/30k-requests-aka-wrk-is-fast.html)

[http://blog.metaobject.com/2011/12/ruby-and-rails- scalabilit...](http://blog.metaobject.com/2011/12/ruby-and-rails- scalability.html)

7) You think textual verbosity is a good thing when it adds to readability.

8) You want to embed a web-server in your iOS and/or MacOS X app. Peer to peer, like the Internet was originally intended. While it may be possible to achieve with RoR or Sinatra or the like, an ObjC lib is just less hassle.

<comment><USER11> > 5) You miss pre-v.5 WebObjects

FTFY :)

<comment><USER10> Thanks! Exactly what I meant :)

In other words: there was a WebObjects after v4? ;-)

</comment></comment></comment></comment></comment></comment><comment><USER12> How well is it supported outside Mac OS X?

<comment><USER10> It should/will obviously also work on iOS, and using an Objective-C web- framework, your iOS device actually performs comparably to Ruby running on big iron. Imagine a server rack filled with old iPhones, or maybe a "server desk drawer" :-)

While I don't know about this kit in particular, I've had good results with both Cocotron and GNUStep in getting ObjC/Cocoa code to Linux and Windows.

Recently, I also had some Objective-C code running on my Android phone, but that sort of thing is experimental and not well-supported yet.

<comment><USER12> My tools have to be usable in all OS my customers require me to work on, hence my question.

<comment><USER10> What other OSes do you require? GNUStep lists various BSDs, various Linuxes, HP/UX, Solaris, Windows and some embedded systems:

<http://wiki.gnustep.org/index.php/Platform_compatibility>

I also had a large-ish system running on AIX.

<comment><USER12> Currently I only do job related work in C++, JVM and .NET.

Never looked too much into GNUStep, because it is not clear to me how far Cocoa and the latest language changes from Apple are supported by gcc and clang + GNUStep.

On my line of work it is the customers that decide the technology, not me, so they have a hard time thrusting Objective-C outside Apple's environment.

</comment></comment></comment></comment></comment><comment><USER13> Neat, I like it!</comment>


Show HN: MyStock.Photos – Beautiful, free stock photos - <AUTHOR> <comment><AUTHOR> Seeing lots of people in our team passionated about photography I thought such initiative would boost their motivation, help our projects and the community and it worked.

If you are wondering how this is better or different than sites like Pexels for e.g, is the very first reason sites like Pexels exist since they are just a search engine getting photos for independent photographers and sites like this one.

</comment><comment><USER2> Since it's not easy/convenient to copy a part of link text in some broswers, here's the actual link: [http://mystock.photos/](http://mystock.photos/)

@maldinii: Your HTTPS is broken (certificate CN is "justfreethemes.com"). Might break the site for people with extensions like _HTTPS Everywhere_.

<comment><AUTHOR> thanks for letting me know!</comment></comment>