hacker news with inline top comments    .. more ..    13 Sep 2016 Best
home   ask   best   3 years ago   
EU Announces That All Scientific Articles Should Be Freely Accessible by 2020 futurism.com
1189 points by emartinelli  6 ago   132 comments top 37
anonymousDan 6 ago 10 replies      
Why on earth do people think this is to the detriment of publishers? This will effectively just lock in their profits by forcing all eu grants to include the cost of payments to publishers to make research papers open access. It just means the taxpayer is now paying for open access instead of individuals having to pay up themselves. Note I'm not saying this is a bad thing, and it is possibly worth publicly subsidising this as an intermediate step, but it is far from being one in the eye for publishers as other comments here seem to think.
thr0waway1239 6 ago 3 replies      
I sometimes wonder if companies like Elsevier are the patent trolls of the research publishing industry - with the same chilling effect on the spread of innovation. [1]

It will be interesting to see how this affects the quality of reviewing. I think the defendants of the current system (who usually say someone has to bear the cost of the review process) are going to be rudely surprised when the academic community embraces this with gusto. The parallel with OSS is interesting - somewhat in the same spirit as the programming community embraced open source, I think the benefit of open access is that the researcher evaluates the tradeoff between 'capturing value' vs 'making a difference', without worrying about the external factor of 'what does this external entity, which provided very little in terms of constructive input when the work was being done, allow me to do (with regards to publishing openly)?'.

But then again, I could be completely wrong, especially in domains like the physical sciences where I don't know how the incentives align. I hope it works out well, and that soon this is the just the norm in all countries.

[1] http://blogoftheisotopes.blogspot.in/2012/01/elsevier-backla...

exceptione 6 ago 1 reply      
Although I did not contribute to anything of this, it makes me a proud European. :)

I wonder if the US will follow suits when/if this happens. Any thoughts?


Edit: maybe it would be better to link to the original source instead [http://futurism.com/eu-announces-that-all-european-scientifi...].

bobthechef 6 ago 0 replies      
Because I don't generally believe altruism is a thing in politics, the majority of the article is just fluff and smoke. Scientific literacy? What a crock. Scientific papers aren't for boosting the kind of basic scientific literacy the links to. They are generally written for an already literate audience (putting aside the poor quality of a great deal of science and scientific papers). The overriding pragmatic motive here is hinted at in the following sentence:

"Ultimately, this decision comes as a result of a meeting by the Competitiveness Council,which includes the ministers of Science, Innovation, Trade, and Industry."

EU science, being what it is, needs to be more competitive. One way to become competitive in the face American or even Japanese competition is to take the open source/free software route and make research freely available. This makes the research more accessible, unburdens relatively poor European universities from having to pay expensive journal memberships, increases the ability of EU institutions to collaborate, and allows the EU to attract collaborators from abroad by removing financial thresholds. And because science in the US has stronger ties to industry, it plays an important role in determining the economic prowess of the US. Poor entrepreneurs can also benefit from the move. The EU is likely aiming in a similar direction (though I personally know members of European academia who dislike the collaboration between academia and industry).

rerx 6 ago 1 reply      
I wonder if this will mean that European scientist will only be allowed to publish in open access journals or if it will be sufficient if copies of the papers are made freely available. The APS, who publishes the Physical Review journals which are some of the most important in physics, for instance already allows authors and their employers to post their papers online free of charge [http://journals.aps.org/rmp/copyrightFAQ.html#post]. In my field everybody already puts every paper onto the arxiv anyway, so open access is almost a lived practice.
pjc50 6 ago 2 replies      
Note that the current publishing arrangements for "open access" can often involve substantial fees paid by the authors to the publishers. Arxiv is definitely an exception.
pietro 6 ago 0 replies      
The EU hasn't "announced" anything. There was a meeting between several influential people connected to the EU, and they reached an informal agreement on something related to freely accessible research. The "announcement" is nothing but the minutes of that meeting.
daveguy 6 ago 1 reply      
Cough sci-hub Cough

Edit: a few of the links on the wiki page still link to it.


They also have a Facebook page and an onion route.

couac 6 ago 0 replies      
This was a big announcement, but there was no action defined at the time of the announcement. I wrote about it several months ago, because I had many questions following this news: https://tailordev.fr/blog/2016/05/31/our-take-on-the-recent-....
d_theorist 6 ago 0 replies      
Here is what was actually agreed: http://data.consilium.europa.eu/doc/document/ST-9526-2016-IN... (PDF direct link)

The intention sounds good, but it seems like there is still a lot of detail to be worked out.

tiatia 6 ago 0 replies      
The EU announces? Didn't the EU announce that EU roaming should be free by 2017? Last thing I read that now this has a dozen limitations, including a time limitation of 90days and only if the SIM has been used in the home country for a while. Ok. Now lets see how this turns out.
kahrkunne 6 ago 3 replies      
Doesn't that just have the effect that everyone now has to pay for scientific articles? I mean, as a scientist, this benefits me, but I can see why your average Joe wouldn't be happy to pay taxes so he can read articles he can't understand...
d3ckard 6 ago 1 reply      
Great change! Makes me proud of european institutions.
akerro 6 ago 3 replies      
What if a paper was written by an international team with members from US/Australia?
lrmunoz 6 ago 0 replies      
After the final recommendation the European Commission has proposed about the abolition of roaming charges [1] I'm very skeptical about this type of announcement. Still publishers won't probably be able to lobby as hard as telcos though

[1] https://www.engadget.com/2016/09/06/european-commission-free...

r721 6 ago 0 replies      
stcredzero 6 ago 2 replies      
Some studies have concluded that there is now more social mobility in Europe than in the US. Now I see more and more "bellwether" laws and executive actions coming from Europe first. Does this mean that the US, being at the top of the hierarchy and in charge of the world's largest empire, has now ceded innovation to the up and coming powers, much as Britain did to the United States in the 19th and 20th century?
peter303 6 ago 1 reply      
Shift cost to author and grant agencies then. A couple of studies I have read says it costs about $1500 to review edit and publish an article. In addition several thousand dolars of volunteer time is provided by editors and reviewers. If the subscribers wont be paying, then costs will shifted to the author. Some free online journals already only charge the author.
faragon 6 ago 1 reply      
Why are not already free? Most EU scientific institutions take tons of public money (even private scientific institutions).
danjoc 6 ago 0 replies      
Does this include data sets used for publication? If so, is there a specified format for publishing data sets?
somid3 6 ago 0 replies      
This is such an incredible feat that I just want to trow a note here so I can reference in the future to show off. If the metric of global innovation has an exponential power, this act alone will likely increase that power by 10%
snvzz 6 ago 1 reply      
Why wait until 2020?

This should be effective today, while giving a few month grace period at most.

EGreg 6 ago 0 replies      
Does freely accessible mean copies can be hosted by anyone anywhere?

I would say that fingerprinting is still useful, to knowthat the original information hasn't been tampered with.

Why do we need publishers again?

fithisux 6 ago 0 replies      
The next step would be to make all drivers open source by 2020.
carapace 6 ago 0 replies      
(Thin sans-serif body text means you hate your readers. Making it grey means you really hate them.)
quirkot 6 ago 0 replies      
The demarcation problem just became the most important problem in publishing
MrForken 6 ago 0 replies      
Hmm the word Should is an indicator of where this is going
MrForken 6 ago 0 replies      
Notice the would Should in this headliner.
alekhkhanna 6 ago 0 replies      
Wasn't this news 3 months back ?
yiyus 6 ago 1 reply      
This will be probably be postponed to 2022. Then, in 2021, they will say that papers will be free only for 90 days.
aabbcc1241 6 ago 0 replies      
can we just put every paper on github ?
mordae 6 ago 0 replies      
pacificleo11 6 ago 0 replies      
arron swartz was right
hackaflocka 6 ago 0 replies      
Thank goodness for Europe.
dagurp 6 ago 1 reply      
*European Union
zakk 6 ago 2 replies      
That's incredibly stupid. The publishing of scientific papers has a cost, in terms of editorial service, proofreading, typesetting.

This cost will be paid by scientists, rather than by the readers. In other words, the papers will be free to read, but won't be free to publish.

I know as a fact that smaller research groups struggle to pay current publishing fees, and as a matter of fact the EU decision will increase them, making the situation worse.

denzell 6 ago 2 replies      
Why? whats next? Free newspapers.. free travel.. let's close all businesses.
Philae Found esa.int
1234 points by de_dave  7 ago   125 comments top 21
newscracker 7 ago 3 replies      
I watched this documentary called "To catch a comet" about the Rosette/Philae mission to comet ChuryumovGerasimenko. The achievement of getting to the comet and landing Philae, like many other achievements in space, is really phenomenal. So many things could've gone wrong, but the fact that the worst was Philae bouncing and getting stuck in a dark place (and not being able to perform fully) is a huge success beset by an issue of a smaller magnitude.

The description of the documentary says [1]:

> Unable to carry enough fuel owing to weight restrictions, the Rosetta scientists devised a delicate cat and mouse trajectory to reach their distant destination. In the ten years Rosetta had been in space she flew around the Earth three times, Mars once and the asteroid belt twice, to gain the momentum she needed to reach her destination. In the months before landing, the team navigated Rosetta safely to a world never before observed at such distances or accuracy. Rosetta orbited the comet before releasing Philae onto the surface.

Quoting from the article of this thread:

> We were beginning to think that Philae would remain lost forever. It is incredible we have captured this at the final hour.

This brings a much better ending for the people who worked on the mission for more than 30 years. [1] We tend to anthropomorphize things like spacecrafts, landers, rovers and many other inanimate objects. I think for the team (and many others following this news), this photo would be like being able to see a dear friend one last time, say goodbye in their minds and have some kind of closure.

The Wikipedia article, and especially the section titled "Landing and surface operations" [2], is also quite interesting to read.

[1]: http://www.pbs.org/program/catch-comet/

[2]: https://en.wikipedia.org/wiki/Philae_(spacecraft)#Landing_an...

lucb1e 7 ago 4 replies      
I didn't get why this was important and the article didn't reveal it upon skimming. Since it seems to get people very enthusiastic I gave it a proper read. After 11 paragraphs, the actual news is revealed:

> This [...] means that we now have the missing ground-truth information needed to put Philaes three days of science into proper context, now that we know where that ground actually is!

infodroid 7 ago 4 replies      
The hi-res image shows how just how unlucky a landing spot this was.


usaphp 7 ago 0 replies      
From Wikipedia about the comet: "One of the most outstanding discoveries of the mission so far is the detection of large amounts of free molecular oxygen (O2) gas surrounding the comet. Current solar system models suggest the molecular oxygen should have disappeared by the time 67P was created, about 4.6 billion years ago in a violent and hot process that would have caused the oxygen to react with hydrogen and form water. Molecular oxygen has never before been detected in cometary comas. In situ measurements indicate that the O2/H2O ratio is isotropic in the coma and does not change systematically with heliocentric distance, suggesting that primordial O2 was incorporated into the nucleus during the comet's formation. Detection of molecular nitrogen (N2) in the comet suggests that its cometary grains formed in low-temperature conditions below 30 K (243.2 C; 405.7 F)." [1]

[1]: https://en.wikipedia.org/wiki/67P/Churyumov%E2%80%93Gerasime...

thr0waway1239 7 ago 5 replies      
"At 2.7 km, the resolution of the OSIRIS narrow-angle camera is about 5 cm/pixel, sufficient to reveal characteristic features of Philaes 1 m-sized body and its legs, as seen in these definitive pictures."

I looked at the pictures and the human eye can barely see the lander. Considering that the chances of losing these landers is not that low, I don't understand why they don't make them visually more distinctive.

Andrew Ng gave a talk recently where he talks about designing the autonomous cars not for aesthetics, but predictability (via visual distinctiveness). [1] In the same spirit, shouldn't there be efforts to make these spacecraft modules more visually distinctive?

[1] https://www.youtube.com/watch?v=4eJhcxfYR4I&t=16m35s

movedx 7 ago 4 replies      
At some point in the future, someone is going to fly to that comet, land, get out of their vessel and walk over to Philae and smile, give it a pat on the head, and then take it home; someone in the future is going to be lucky enough to experience that task and become a part of its history.
proactivesvcs 7 ago 0 replies      
I found ESA's "Rosetta and Philae Cartoons" videos strangely touching: https://www.youtube.com/playlist?list=PLgx5PMpgonqUD1aO3g0bZ...

I hope they finish the series!

luso_brazilian 7 ago 2 replies      
The XKCD already updated the live comic about this subject [1].

All panels are available at its sister wiki [2]

In my opinion it is a beautiful work of art, pushing the limits of what the media allow the artist to do (the media in this case being comic strips in the webcomic format.

[1] https://xkcd.com/1446/

[2] https://www.explainxkcd.com/wiki/index.php/1446:_Landing/All...

cJ0th 7 ago 0 replies      
huhtenberg 7 ago 1 reply      
Is there a map that shows its original landing site and the final resting place?
andreygrehov 7 ago 8 replies      
Off-topic, but why do they usually shoot black and white? Is it something to do with the file size?
netgusto 7 ago 1 reply      
This made me smile. Nice news !
chakalakasp 7 ago 1 reply      
NASA and ESA's recent push to land things on comets and asteroids makes me pause and wonder if they have in the last decade or so calculated the orbit of an object that concerns them.
fuhrysteve 6 ago 0 replies      
Why did it take so many months for the orbiter to get a photo?

Compared to the rest of the achievements of this mission, it seems like this should have been relatively easy: 67P is all of like 2.5 miles wide and the orbit is at like 10 miles. You'd think that a few high res photos in a single orbit would capture nearly every inch of the entire rock.

DrNuke 7 ago 0 replies      
This is even more incredible than the already unbelievable amaze generated by this mission as a whole. Hat off.
b1gtuna 7 ago 0 replies      
Haha itsy bitsy little space craft hiding behind a rock!
bjd2385 7 ago 1 reply      
What's that rather straight `rod`-like protrusion to the lower-left? Looks like some kind of antenna.
zygomega 7 ago 0 replies      
Does anyone know why communication is being shut down? Can they leave it on so we can get telemetry?
gokhan 7 ago 3 replies      
Unless other parts of the comet is more flat, that landing gear design seems clearly wrong. It included bolting itself to the surface, if I remember correctly, but it seems almost impossible to fixate three legs with almost no gravity on that surface.
sqldba 7 ago 0 replies      
Poor little thing. God speed.
dandare 7 ago 4 replies      
Nice, but why is this information so "all-important"? How is it going to advance our knowledge of ... anything?
How Dropbox Hacks Your Mac applehelpwriter.com
1026 points by 8bitben  3 ago   404 comments top 40
newhouseb 3 ago 25 replies      
Hi HN Ben from Dropbox here on the desktop client team. Wanted to clarify a few things

- Clearly we need to do a better job communicating about Dropboxs OS integration. We ask for permissions once but dont describe what were doing or why. Well fix that.

- We only ask for privileges we actively use -- but unfortunately some of the permissions arent as granular as we would like.

- We use accessibility APIs for the Dropbox badge (Office integrations) and other integrations (finding windows & other UI interactions).

- We use elevated access for where the built-in FS APIs come up short. We've been working with Apple to eliminate this dependency and we should have what we need soon.

- We never see or store your admin password. The dialog box you see is a native OS X API (i.e. made by Apple).

- We check and set privileges on startup the intent was to make sure Dropbox is functioning properly, works across OS updates, etc. The intent was never to frustrate people or override their choices.

Were all jumping on this. Well do a better job here and were sorry for any anger, frustration or confusion weve caused.

ejcx 3 ago 11 replies      
Just wanted to give the author a shoutout for being awesome. This article is published with an AMP version[0] too, which is pretty unusual for smaller blogging sites.

AMP articles are so much easier on my eyes (and the author can't include their own javascript on an AMP page, so there is less bloat). I wish all bloggers started to publish AMP pages.

[0] - http://applehelpwriter.com/2016/08/29/discovering-how-dropbo...

gwbas1c 3 ago 1 reply      
I work Syncplicity, a Dropbox competitor and investigated building a feature that is similar to the Dropbox badge. (We call it the App Tab. Basically, it's UI that tacks onto Office that tells you that someone else is editing the same document.)

We've had requests for this feature for years. I can't stress how much customers request this feature; it's put a lot of egg on our face that Dropbox beat us to it.

In order to do this on Mac, we'd need to register ourselves as an accessibility client. I don't remember the details about registering ourselves, but from what I remember, it doesn't require hacking into OSX.

We've had to hack into OSX in the past: Adding menu items and icons to Windows Explorer is supported via well-documented Microsoft APIs. It wasn't until about 2014 that Apple supported this, prior to that, we had to reverse-engineer Finder. We didn't get OSX APIs to do this until we hired a contractor with "connections" to Apple he petitioned his connections to provide an API. I know that Dropbox, Google Drive, Box, and an open-source project called Liferay-Nativity all performed the same hack.

Based on my Syncplicity experience is that, what happens in these cases, is that a product manager gets so focused on the pixels that he/she is completely blind to the practical implementations. There's probably a bit of "I told you so" coming from some of Dropbox's engineers now.

ptomato 3 ago 3 replies      
It looks like in 10.12 Apple has added TCC.db to SIP, so this will no longer work Dropbox will, hopefully, actually be forced to request accessibility access like they're supposed to. I'm sure they'll still demand your admin password via a dialog that tries super hard to look like a system one to use for whatever other more or less nefarious purposes. Would be nice if there was an alternative that actually syncs as reliably and performantly, but in my testing that's very much not the case.

I appreciate the trend of Apple forcing Dropbox to stop doing dumb shit, though. (Previously, of course, the SIMBL-style Finder hacking)

tomku 3 ago 7 replies      
Non-clickbait title: "How Dropbox uses the root access that you give it during installation to give itself Accessibility authorization without triggering the usual popup".
antoncohen 3 ago 2 replies      
I have given Dropbox access to my files, admins rights, and ability to run in the kernel. I'm not freaking out about the Accessibility API.

setuid binaries:

 $ tree -p /Library/DropboxHelperTools/ /Library/DropboxHelperTools/ [-r-s--x--x] DropboxHelperInstaller [drwxr-xr-x] Dropbox_u501 [-r-s--x--x] dbaccessperm [-r-s--x--x] dbfseventsd [-r-s--x--x] dbkextd
kernel extension:

 $ kextstat -b com.getdropbox.dropbox.kext Index Refs Address Size Wired Name (Version) UUID <Linked Against> 163 0 0xffffff7f835b5000 0x6000 0x6000 com.getdropbox.dropbox.kext (1.7.5)

Sir_Cmpwn 3 ago 5 replies      
Great article, but poor conclusion. He finds that Dropbox is untrustworthy, a finding that likely surprises no one, and reaches for iCloud as the solution. Why move into another walled garden driven by corporate interests? OwnCloud or a similar self hosted solution would be better. I just use NFS and a dead simple storage server to make ~/shared available on all of my machines.
new299 3 ago 6 replies      
Dropbox circumventing security restrictions (albeit for legit reasons) is particularly worrying because they have board members who support warrentless surveillance.

In my mind Dropbox became a company not worth supporting when Rice joined Dropbox's board (http://www.drop-dropbox.com/). Personally, with a board member who advocates warrentless surveillance it seems unlikely that we share similar views on the security of my data, and I wont be using their service.

ThomPete 3 ago 1 reply      
Dropbox trying to find ways to push the platform is a good thing not a bad thing.

If anything Apple have put so many restrictions on OSX and isn't pushing for much innovation on their side to allow people to build ever more powerful apps.

I understand general security concerns but I don't understand the critique of a company like Dropbox. They are doing the user er service not a disservice by finding a balance between pushing the platform forward while still taking your security concerns into account.

I would personally be more concerned with the fact that Apple haven't done anything fundamental for the osx platform in quite a while which is the exact opposite of what they have done for iOS.

gruez 3 ago 6 replies      
The fact that any application can spoof the os password prompt makes me wonder why they don't have a prominent feature to show the prompt is from the OS. On windows there is the secure desktop with the dimming effect.
f_allwein 3 ago 0 replies      
For what it's worth, I posted on the Dropbox support forum asking them to explain. This seems to be the only way to contact them:https://www.dropboxforum.com/hc/en-us/community/posts/208945...
fifafu 3 ago 1 reply      
One thing to note: For non-sandboxed apps like Dropbox, the Accessibility API permissions don't really decrease security by a lot (in my opinion).

Most bad things can be done without the Accessibility API, e.g. apps can act as key loggers, take screenshots, encrypt all files your user can access, upload arbitrary things (unless you have a firewall enabled), synthesize mouse & keyboard events etc.

The Accessibility API makes some of those things easier, but if someone really wanted to attack you, he wouldn't need the Accessibility API.

For sandboxed apps the situation is quite different, because the Accessibility API would allow those apps to break out of the sandbox.

But of course Dropbox should have asked the user...

bahoom 3 ago 1 reply      
I'm using the same techniques for my apps to enable accessibility access (which is needed for window management), although I'm asking users for confirmation before doing so.

It's kind of hacky, but the standard Apple way (click the tiny lock icon on the bottom left, find the app in the list, click the checkbox) is way to cumbersome for users.

Why not displaying a simple yes/no popup similar to the "allow access to contacts / calendar items" dialog?

SpacemanSpiff 3 ago 0 replies      
I've recently started using Syncthing to synchronize files between different machines. I'm super impressed at the quality of the application, its stability, and the documentation. Syncthing is written in go and open source. https://syncthing.net/
Dylan16807 3 ago 3 replies      
I don't really understand the conclusion here. So the scenario is you trust dropbox with your files, and you trust them with a kernel blob implementing the filesystem, but you don't trust them to silently have accessibility rights?
devy 3 ago 0 replies      
If Dropbox app can do this, other apps can too!

I wonder if this will get to Apple's attention to "fix" it?

amelius 3 ago 1 reply      
I wonder what will happen when Apple plugs those security holes. Will Dropbox cease to run as it does now, and suddenly for instance lose important features?
hollerith 2 ago 0 replies      
My Dropbox story: after I upgraded from Mountain Lion to El Capitan, the sidebar in the Finder went buggy (no way to remove a folder from the sidebar without restarting the Finder). After I started arranging for this next command line to run at the start of every OSX session, the bug went away: `killall -9 garcon`. This garcon identifies itself in Activity Monitor as "Dropbox Finder Integration".

Needless to say, I never asked or gave consent for Dropbox to integrate with the Finder (and sync still seems to continue to work after I disabled it).

pkamb 2 ago 0 replies      
I didn't see it linked, so here's the Stack Overflow thread that documents some of these sqlite3 hacks for enabling access for assistive devices programmatically.


I love the first comment on the question:

> No, there is no way to circumvent the need for visiting this screen. It is one of the operating system's base protections. Any way that is found to circumvent this will almost certainly be patched out. Jul 17 '13

the_mitsuhiko 3 ago 2 replies      
Why does dropbox need to bring up a fake dialog? They could do the same with the system one.
bluetwo 3 ago 0 replies      
I noticed about 6 months ago that Dropbox was on this list and disabled it the normal way. It stayed disabled and also didn't cause any problems using the software.

Now, why how did Evernote get on the list?

finid 3 ago 2 replies      
On the Linux side, has anybody looked at what installing Dropbox does?

I'm guessing it's not going to be different from what it does on a Mac, but it would be nice to know exactly...

nhamausi 19 ago 0 replies      
Is this only on Mac, what about Windows (bypassing UAC?)
breatheoften 2 ago 1 reply      
Anybody know a good OS X app to scan the file system for suid binaries? I guess I could do this with find from the shell, but a little utility app with a nice ui (and possibily some integration with a database to hide or categorize by threat level) seems like a smart thing to have on my system and run every so often.
DonHopkins 3 ago 0 replies      
"but with the deliciously named dbaccessperm file"

I don't get it. What's so delicious about "dbacces"?

alphonsegaston 3 ago 1 reply      
Can anyone suggest a vetted-along-these-lines alternative (preferably open source) to Dropbox?
newman8r 2 ago 0 replies      
I don't use OSX or apple software anymore - but I remember that using dropbox on osx always felt like it went against apple's UX flow. I ended up getting really frustrated with it.
djabatt 3 ago 1 reply      
I wonder if Apple will thwart this hack with an update. Seems like anyone reading this will start using this hack. In the meantime a watchdog app on this hack would be nice to have and share with the world.
ommunist 3 ago 0 replies      
Speaking of alternatives, what's wrong with Resilio sync?
saynsedit 3 ago 0 replies      
"How Dropbox avoids prompting the user with countless confusing permissions dialogs so normal people have a greater chance of using it."
sambe 2 ago 0 replies      
This page went spam-redirect crazy on iOS. I flagged the story, but don't see anyone else complaining...
jackgavigan 2 ago 0 replies      
What Dropbox are doing may actually be illegal in the UK under the Computer Misuse Act.
outworlder 3 ago 3 replies      
Ok. Now that Dropbox is shady as well as overpriced, are there any good alternatives?
puppetmaster3 2 ago 0 replies      
I trust Dropbox way more than Apple.
0x0 3 ago 3 replies      
What the fuck Dropbox!

How do I get rid of the backdoor in /Library/Application\ Support/com.apple.TCC/TCC.db even after uninstalling Dropbox.app and rm -rf'ing ~/.dropbox and /Library/DropboxHelperTools? Do I just sudo sqlite3 and delete the row? Or is there an official tool (tccutil)?

Edit: Crap, there's a /Library/Extensions/Dropbox.kext too now. :(

owlieowl 3 ago 1 reply      
I just removed Dropbox. Web client from here on.
kmfrk 3 ago 1 reply      
yyyuuu 3 ago 2 replies      
Musonius 3 ago 0 replies      
My computer was slow and unusable, and then I uninstalled Dropbox.
0xmohit 3 ago 0 replies      
Moral: Avoid native apps if you can't avoid using them at all.
Im Joining Stripe to Work on Atlas kalzumeus.com
840 points by rmoriz  3 ago   315 comments top 46
stevoski 3 ago 2 replies      
Patrick writes in the article:

> I never thought I could build a Fog Creek, but I saw a bunch of other geeks building Poker Co-pilot and Perfect Table Plan and skeet-shooting scoring software, and I was pretty sure I could at least do something like that.

I'm the geek who built (and continues to run) Poker Copilot. Patrick got the order of events backwards.

What actually happened is that I started Poker Copilot in a large part because Patrick inspired me by managing to launch a software product (Bingo Card Creator) after just one week of development.

All the best working for a boss again, Patrick! I'm sure there will be plenty of interesting twists and turns in the years ahead in this remarkable life of yours .

grellas 3 ago 0 replies      
Back in the bubble days, all but a relatively few would-be founders found themselves crawling out of a hole and into the dark, as it were, in trying to figure out how to get from ground zero to a point of success: it was all super-bewildering and there were virtually no resources to help understand how it all worked: no helpful web-based forums to explain process or to share experiences, no solid resources for helping understand how best to launch, no easy access to funding, etc., etc.

Today, it is all different. We are all hyper-connected and the old barriers are much diminished. This means a founder in Silicon Valley, where the infrastructure is solid, can continue to do incredible things but, now, so too can founders everywhere. Yes, it can help to be geographically at the heart of it all but it is no longer an indispensable part of startup success.

I think Stripe's Atlas takes a huge additional step in helping to remove the accident of a founder's location from the list of barriers to entry in the world's startup club. I have explained my views in more detail here: https://news.ycombinator.com/item?id=11166417#11168750

And what a felicitous teaming between Patrick and Stripe to help further that goal. Great people all round, working to achieve great goals! I cannot imagine a better combination. Very exciting and congrats to all.

k-mcgrady 3 ago 10 replies      
First time I've seen Atlas. I'm immediately worried. If someone starts a company using this I presume it's subject to US laws? What does this mean:

1. For taxes? If I live in the UK and start my business with Atlas does the US get the corporation tax revenue or the UK (or a split of the two)?

2. For data security/privacy? Is the data I store now subject to access by the US government through National Security letters and the like? I believe that if I was storing EU citizen data I'm subject to privacy shield but all data would be more susceptible to US government requests. Is this accurate?

Edit: Quite shocked at the number of downvotes a completely legitimate question is getting...

davidw 3 ago 3 replies      
Sorry to hear about starfighter, but it looks like you've more than landed on your feet. Good luck! I think with a big company at your back, you may be able to leverage that to do some great things.

People in the US have no idea how easy they have it with creating a company, something I helped to fix a little tiny bit in Italy: https://blog.therealitaly.com/2015/04/16/fixing-italy-a-litt...

One of the key points:

> All told, the price of creating a company in Italy was several months worth of salary for the average Italian worker, whereas even at minimum wage, someone in Oregon could open that LLC after a few days worth of work.

robin_reala 2 ago 2 replies      
Slightly unfashionable to say this here, but this problem isnt necessarily something the private sector should be routing around but one that the public sector should be fixing from within.

At GDS (GOV.UK etc) were working on a programme called GaaP: Government as a Platform. This aims to provide components to radically simplify the difficulty of building services focused on user needs for the rest of government.

Tom Loosemoore (now ex-GDS but hey) gave this talk at Code For America last year: https://youtube.com/watch?v=VjE_zj-7A7A . Its obviously quite long (and in my opinion worth watching the lot) but the topic relevant part comes at ~28 minutes in. Here Tom demonstrates how pulling together the pieces of GaaP could potentially lead to registering s company in 3.5 minutes.

That a private sector company could do the same thing is great, but sometimes you need to refactor the root inefficiency rather than patch the symptom.

thr0waway1239 2 ago 1 reply      
I really like Patrick's work, and I have learnt a lot from it. I wish him the best for his employment at Stripe.

But I am going to ask all of you to tread carefully when taking advice from well-intentioned experts. Over a period of 9 or so years, Patrick went from expressing opinions about a) why desktop software is still viable b) why web based is a better option than desktop because desktop causes too many pains c) why doing a SaaS model is better than the one time web based software (web version of BCC) d) why it may not be worth the stress of (some stressful event associated with clients in medical industry) for a SaaS which is generating less than $2000 MRR e) why a business like StarFighter is better because you feel like waking up and doing it for 5+ years in a row and f) eventually there will be a good reason for the decision to leave/stop Starfighter. Amongst these opinions, there would be two kinds of takeaway messages - the ones which are true independent of the specific time period (don't piss off your customer) vs the ones which are more subjective and epoch specific - e.g. Patrick's own admission of benefiting from AdSense (via the Content Network or some such thing) for BCC, which was probably not true by the time it was expressed publicly and is almost certainly not true today.

There is almost positively going to be a fair amount of time lag before these ideas germinate in the experts' head and they slowly turn into action in their lives, and by the time they are ready to write about it, sometimes they are close to the winding down phase of said idea. For the people who are keen to "follow suit", as they say, it is very hard to know if it is a good idea to invest the next 3-5 years of your lives trying to adopt the same idea.

This is all fine and obvious, you say. My concern has to do with the "other side" of the picture. When people were lavishing praise on the SaaS model about 3-4 years ago, I suppose I wasn't the only one who wondered "Wait a minute. What about the fact that a SaaS business takes up your mind space 24 x 7 x 365? Isn't that a cost most of us don't wish to pay?" And after a while, Patrick mentions in a MicroConf talk about doing an eBook or WP plugin first before embarking on a SaaS - all great advice. Just wish more people consider the balancing forces and always ask themselves whether they are getting the full picture.

aresant 3 ago 1 reply      
Patrick @ Stripe just shared via Twitter that he sent original idea for stripe to patio11.

To which patio11 perfectly replied that note had gotten stuck in his spam folder :)


ericjang 3 ago 3 replies      
@patio11: may we get a post-mortem on Starfighter, and more details on what you learned about startups?
knite 3 ago 0 replies      
Congratulations! Will you be sharing details on how your salary negotiation went? Reference: http://www.kalzumeus.com/2012/01/23/salary-negotiation/
chatmasta 3 ago 8 replies      
What I like most about the long term vision for Atlas is that, if it's truly "as easy as spinning up an EC2 instance" to form a new corporation, then it will be possible for a single entrepreneur to create complex global corporate structures previously limited only to multinational corporations. How nice would it be, as say, a digital nomad, to be able to have a single "holding company" based in HK, and dynamically create a new corporation for every new project?
chuamo 3 ago 4 replies      
Why would someone making 30k a week as a consultant take a job[1]?


duked 3 ago 0 replies      
I'm happy for Patrick.

I have to say, to me the downfall of starfighter was predictable. I LOVED microcorruption it was something I could get in fairly quickly and enjoy. But starfighter was requiring too much commitment to get the basics of operation and if I'm looking for a job I'd rather invest that time into brushing up my algorithms (since that's the hiring criteria these days...) rather than reading some background to play a "game" to eventually beat challenges and maybe get a job interview :/

edpichler 3 ago 3 replies      
I am enrolling Stripe Atlas and, to me, incorporating in USA will give me access to modern banking services, and platforms, as Stripe, and it seems USA has very lower taxes than Brazil, my country. That's why I am interested.

It all seems fascinating, but I am afraid to continue and do the last step of the enrollment. I don't know how is the process to close the company, what the representative agent can do for me, how much is to have an account on SVB (after the 24 free months), if it's easy to legally hire a person to work remotely anywhere, and if for some reason I will need to eventually travel to USA.

If someone have a answer for one of questions, I will be thankful.

mendelk 3 ago 2 replies      
Is there any official communication re Starfighter?

All I can find is this:

> Starfighter is not only not hiring, but also closing its doors. We are 'pivoting.'


pmyjavec 2 ago 3 replies      
The overwhelming majority of jobs in the technology industry do not go to people who cold apply via jobs pages. This is important for you to know and operationalize.

A little off topic, but why is this? I don't doubt what he is saying but why is it not good enough to apply for a job via standard channels and not have to be in "the boys club" ?

red_blobs 3 ago 0 replies      
I feel like many startup founders, including Patrick, build the technology and hope the business will follow...usually with an unsuccessful outcome.

He's great at marketing. He should have spent a year building a network of employers with lower-tech solutions and then expanded it out with starfighter.

I've been following Patrick since the BoS days and all of his products have been pretty low profit. Enough to support himself only (some, not even this much) (I'm not including consulting, only products or services)

Money is the lifeblood of all companies and you will need it to truly change the world.

idlewords 3 ago 6 replies      
I don't see any advantage in incorporation if you want to run your own private business, but I'm willing to accept that I'm being the weirdo here.
matchagaucho 3 ago 5 replies      
I know from personal experience the sub-title to this article is "How I'm justifying a bad decision".

Entrepreneurs know when they're making a bad decision, whether consciously or not.

[Edited for brevity. No disrespect, but hate to see a Developer give up on their independence]

zbruhnke 3 ago 0 replies      
Congrats Patrick ... This is one of those blog posts that I read and completely think that I could actually go work for a company and be really happy which never happens.

I love what you guys are doing with Atlas and will be rooting for you and for Stripe Japan, sounds like a great opportunity to join that team for the right people!

emilburzo 3 ago 4 replies      
> The overwhelming majority of jobs in the technology industry do not go to people who cold apply via jobs pages.


Animats 3 ago 2 replies      
There are lots of services to help you incorporate. Incorporate.com and LegalZoom are well known. What's new about Atlas, other than bundling other services and charging more?
vanrysss 3 ago 0 replies      
I'm sorry to hear that Starfighter is shuttering, I had a lot of fun with the stock market portion.
cdnsteve 3 ago 0 replies      
Love this part:"When you have just enough crazy, you found a payments company, heedless of the fact that founding a payments company is doomed to failure because it involvesmountains of hard and boring work and the incumbents have billions of dollars."
antoniuschan99 3 ago 1 reply      
Wasn't Paypal taking payments over the internet in 2006?
secabeen 3 ago 2 replies      
>There Is No Future For Scarcity

This section worries me a bit, as it's the sort of thing that doesn't consider the possibility of a major world-wide crisis. There are plenty of conceivable futures where these things could happen. A simple one is a small-scale non-nuclear war between China and US, where they disconnect completely from the larger Internet, but we avoid a global thermonuclear war. The continental European countries saw a 50% drop in GDP through WW2, and it could very well happen again.

insomniacity 3 ago 0 replies      
patio11: I was just about to start making some progress on Starfighter... are you going to be able to leave it up, or does it cost too much?
pbnjay 3 ago 0 replies      
congrats patio11! - I think many of us agree that stability and less stress is a nice draw when you got young kids. Startups don't always play nice with family.
chmike 2 ago 0 replies      
Congratulation Patrick. This is a great news for Stripe, Japan and the world !

You just made me discover Atlas (I must have lived under a rock last year) and I'm really impressed by the idea. It is not great, it is huge !

I quickly looked through the Q&A and the first thing that strikes me is that the effective cost is not clear. Ok 500$ entry cost, but there are many other costs like bank, taxes, IRS, 125$ yearly for the agent, etc. Most of these costs aren't even clearly specified. Thus it's actually like an offer to buy a cat in a bag.

The strength of stripe is its simplicity and clarity. You know upfront what it will cost you. There isn't any hidden cost.

So Patrick, if you can have some influence, please help making Atlas as simple and clear as Stripe.

benjismith 3 ago 0 replies      
Awesome! I've been a big fan of Patrick since the days of the old Joel on Software forums, and I've always admired his plucky optimism.

Atlas is an incredibly cool, potentially game-changing project, and Stripe was already a game-changing company before launching it. I'm excited to see what happens next!

Way to go, Patrick!!

Scarbutt 3 ago 2 replies      
Are there any plans in Atlas to support Ireland?
cloudjacker 3 ago 0 replies      
> it introduced me to the unthinkable notion that regular old geeks like me could run software companies. I thought it was illegal, ... my background therefore suggested it was either forbidden, risky, or risked being forbidden.

I encounter this so much in the states. Everything self directed is "sketchy", "is that legal?". It is really sad, because those same people would fall for scams that actually are sketchy and illegal.

benmanns 3 ago 2 replies      
I applied to the Stripe Atlas beta but haven't heard any communication after doing so. Does anyone have insight as to how long the beta queue is?
lowglow 3 ago 0 replies      
I just want to point out that everything starts off as targeted marketing/spam.


Don't listen when people hate on you for sharing what you're working on. The only thing that matters in the end is success. :)

hypnotortoise 2 ago 0 replies      
It would be interesting to see the main building blocks of Atlas and if any of it have relations or takes inspirations from Blockchain Tech (e.g. Ether-based http://otonomos.com/).
strongai 3 ago 2 replies      
For what it's worth, I was never excited by starfighter because of its trading/markets premise - simple as that. It just doesn't float my boat. The entire proposition sounded far too much like real work. Game? Surely not.
Rapzid 3 ago 1 reply      
alexkehayias 3 ago 0 replies      
Looking forward to working with you! I'm joining next week to work on Atlas too.
jtcond13 3 ago 0 replies      
The penultimate paragraph here must have been difficult to write.
hvd 2 ago 0 replies      
Good luck Patrick on this new adventure.
nthState 3 ago 0 replies      
Nice work Patrick!
newintellectual 3 ago 0 replies      
Suggestion: target other - freer - countries as well. i.e. the other 96% of the planet.
2 days ago 2 ago 1 reply      
owathray123 3 ago 6 replies      
angersock 3 ago 4 replies      
btcboss 3 ago 0 replies      
Can you start by making Stripe mobile friendly lol :P my clock reads 2016.
_RPM 3 ago 1 reply      
Is Stripe different than PayPal besides maybe having a better API? Is Stripe a subset of PayPal?
You Suck at Excel with Joel Spolsky (2015) [video] youtube.com
939 points by carlesfe  5 ago   416 comments top 43
Benjammer 5 ago 13 replies      
This video of Martin Shkreli using Excel [1] is what really made me realize I suck at Excel...

[1] https://www.youtube.com/watch?v=jFSf5YhYQbw&feature=youtu.be...

tominous 5 ago 6 replies      
In my line of work I often see tech vendors and consultants trying to plan infrastructure changes using Excel (or worse, tables in Word, but we won't go into that). The results are horrendous.

They start with a manual inventory of the configuration in question, type it ad-hoc into a spreadsheet, then go through making manual changes, notes and additions until it feels good. There's lots of highlighting, different coloured text, etc like layers of sedimentation. Formulas are only used for sums and counts in an ad-hoc way.

The end plan always contains mistakes and omissions that really hurt during deployment time.

The correct way requires discipline: immutable input sheets (from machine-generated config dumps), a parameter sheet, output tables (with consistent usage of formulas with "$" notation to lock rows and columns), and cross checks with conditional highlighting.

Unfortunately this is really hard for people without programming instincts/experience. Good job security I guess. But if you can do it, it's both faster and safer than the manual free-form method.

IANAD 5 ago 13 replies      
First, I learned a lot from this. But, here's some light criticism:

1. Joel saying "I didn't understand that question" and then moving on might have been succinct and practical, but it was just not a good reflection of him.

2. He acts like R1C1 mode is the only way handle relative references for the first 13 minutes. One of the first things I learned in Excel was $ to pin a reference to row or column in what he calls "baby mode". I think it's not babyish to use $ which is more succinct; you can edit the formula and see the calculated value right away. It seemed like he waited a long time to talk about that.

3. "Almost none of which you can do in Google spreadsheets" at 18:15. Sounds so pro-Microsoft, right? Yet, if you look, he's obviously using OS X, which is surprising to me, because MS Office has historically sucked on OS X compared to its Windows counterpart, and it's been incomplete: https://9to5mac.com/2016/01/21/windows-mac-ipad-microsoft-of... even though, yes, it's a lot better than it used to be. Also, Google docs is free.

graham1776 5 ago 8 replies      
Is there a standardized excel knowledge test and or certification? As a senior analyst excel expertise is requisite, but is very hard to interview for...I had to make an excel test just to empirically rate our analyst candidates. I know there are the excel competitions (http://www.modeloff.com/) and great resources (http://www.chandoo.com/wp), but no rating system for knowledge (even basic) of excel. Think the big investment banks would be interested in "testing" their analysts empirically before hiring them?
cm2187 4 ago 3 replies      
There are lots of things he does that are still rookie mistakes! Like index/match without doing a strict match (microsoft: when are you going to add a shorter syntax for that??).

Then he probably does that to make it visual but he should be using his mouse a lot less. F2, CTRL Enter on a range to apply the first formula without applying the formatting.

Also two data tables one above the other. As one expands it will hit into the other. That's where excel lacks a feature that apple introduced in numbers: not using a unique grid but a table being its own grid, placed as a shape on a sheet. That solves lots of problems.

Range names are not a good solution with experience. You get name clashes when merging spreadsheets, ambiguous duplicate names when duplicating tabs. For formula auditing F2 is your friend. And there are some third party add-ins to go to a reference within a formula and come back with keyboard shortcuts.

And no demo of excel is complete without showing the power of array formulas. In particular SUM(Col1 * Col2 * (Filter1=Col3) * (ABS(Col4)<4)) to do a sophisticated conditional sumproduct.

vba 5 ago 4 replies      
Joel played a part in creating VBA for Excel (and likely the other Office clients) when he was a program manager at Microsoft in the early 90s (see http://www.joelonsoftware.com/items/2006/06/16.html).

I'm a developer on XL (at Microsoft), only half way through the video and have learnt a thing or two. Out of academic curiosity I sometimes ask old-timers if they ever worked with Joel. So far nobody recognizes his name, though there is next to none left in Excel who were XL in early 90s or before.

oli5679 5 ago 1 reply      
Excel is super useful for the range of tasks where speed and transparency to business execs is more important than flexibility or maintenance.

Its great to rattle something off in a couple of hours that you can email to your boss to tinker with

It's absolute hell flicking through tabs trying to find a bug or trawling through stack overflow looking at grim VBA contortions which have one-liner equivalents in python.

circa 5 ago 2 replies      
You instantly brought me back to the "You suck at photoshop" series.

Enjoy and you're welcome!


rtpg 4 ago 1 reply      
As a person who doesn't get to use Excel much but wants to... is there such thing as "fun" Excel problem sets? Like Eurler Problems but for Excel?

Some kinda meaty stuff rather than just "here's how you sum"

kevin_thibedeau 5 ago 2 replies      
Paste values isn't almost always what I want. When copying formulas around I usually want the actual formulas which have been judiciously constructed with fixed row and column references where needed. The default paste is ideal for people doing actual calculation in Excel.
robterrin 5 ago 2 replies      
Does anybody else feel that the vast majority of these things are either available in Google sheets or worth just doing in R? My last consulting project was on a VaR model built in VBA/SQL with a bunch of Excel sprinkled about and it was horrendous. Not Excel, VBA or SQL's fault, but it felt like a more thoughtful architect would have used better tools.
eriknstr 4 ago 1 reply      
I think the most interesting thing in this video was the explanation of R1C1. I've always thought of the apparent automatic changing of references as almost magic. Now I know.

For me, the most useful things he talked about was, in order; giving names to cells and columns, use of INDEX and MATCH, leaving space around tables, defining and using tables, pivot-tables, copying formatting with the paintbrush, goal-seek, and finally, control-semicolon to insert today's date.

The various forms of paste special, I knew about from before, and I also knew about the dragging to fill in values stuff.

All in all, a very good video with a lot of things I didn't know.

criddell 5 ago 0 replies      
That's a pretty good demonstration of some of the strengths of the ribbon interface.

After watching this, I went to Google Docs to try to reproduce some of this and it felt very clunky. The first thing I realized I didn't have is a styles manager but I was able to install an add-on. For other parts (like creating tables) I was stuck.

I wonder if a similar demo in Libre Office would be as impressive?

Edit: I just tried Excel Online and it worked surprisingly well. Last time I tried it, Google Sheets felt way better but now I'm not so sure.

TallGuyShort 5 ago 8 replies      
I've been using Linux on the desktop for years and have never missed Microsoft Office (except for Project, a little bit). Now seeing R1C1 notation is making me want Excel... Any recommendations for FOSS spreadsheet software that supports R1C1 notation or that is generally better than LibreOffice Calc?
Globz 5 ago 0 replies      
Great video, it actually reminded me of CTRL+D!

One of my many assignments at my job is to work with excel on a weekly basis exporting data dumps from MYSQL to excel ranging from 50k to 100k rows.

At first it was a daunting task but once I learned how to build some solid templates then all I had to do was to dump the data set into a tab and let the formulas do the work, everything was already formatted so I could just start validating the data then email it to the sales team for further analysis.

If you take the time to analyze your data sets and get to know how to handle each type of data then you can build some really solid template in a fairly short amount of time.

I try to avoid using excel as much as possible but this damn thing is so deeply rooted into the "business analyst" world that you can't really escape it so this is why I told myself that I would be better off mastering it and build solid reporting templates instead of trying to change their mind about using alternative software.

On a side note we started using WebFocus... that's another monster to tame...

Erwin 4 ago 1 reply      
I had a chuckle at Joey calling @ "a bagel". I guess that's a New York thing.

Over here we call them "elephant-trunk-A" (interestingly elephant symbols are quite common here in e.g. royal/government coats of arms and the "Order of the Elephant" being the highest chivalric order).

ForFreedom 4 ago 0 replies      
He says,"I am not taking your questions because your questions are stupid and check the internet"
pgt 4 ago 2 replies      
This is great. I just made a little internal slideshow for everyone at our company to get them to watch this. Link:


Thanks, Joel!

partycoder 5 ago 1 reply      
For many uses, I dropped Excel and replaced it with R. Doesn't hang with thousands/millions of rows.
Hydraulix989 4 ago 0 replies      
This guy was an ex PM for Excel at Microsoft.

He even had Bill Gates review his spec:


hkmurakami 5 ago 10 replies      
Things in which people consistently overrate their skills: Super Smash Brothers, Scalable Backend Systems, Microsoft Excel.
branchless 5 ago 0 replies      
Interesting, any recommended resources to take it up a level?
Gustomaximus 5 ago 2 replies      
I can't agree with'always name a cell/range' and dont put numbers. This gets very confusing for a second person working on the workbook. Typically sheets get large and they get all these names building up over time. You end up with no idea with what someone is referring to.

Also for 'paste special' I dint notice him mention Crt+Alt+V which is really shortcut vs using menu dropdown.

Ctr+D was new to me. Thats a great one.

thomasthomas 4 ago 2 replies      
i've worked for many banks. amazing how reliant the whole industry, therefore the world economy, relies on excel.


mooneater 4 ago 1 reply      
The Goal Seek part was painful to watch. Why would rounding completely break that? And why would it end up at 9 billion?
ishtanbul 5 ago 0 replies      
talking about the importance of variable input cells in minute 43 smh. working in finance this is not very impressive. also excel on a mac is inferior.

I think only about 1% of excel users actually build models with it so the need for advanced skills in using the program just aren't necessary, such as for storing data and maybe making pivot tables...

swingbridge 4 ago 0 replies      
Being an Excel jockey was "cool" in the 90s and 00s but all the cool number crunching kids are much more likely to be using something like Jupyter Notebook, R or homebrew command like stuff these days.
erikb 4 ago 0 replies      
He is so entertaining despite only having taught me one or two minor things.
rietta 4 ago 0 replies      
One thing I find interesting is that on the Mac OS X Excel, Cmd+T is the toggle for the relative/absolute cell references, but in Google Sheets it's F4, just like Windows Excel.
avindroth 4 ago 1 reply      
Is there Excel with vim bindings? Or anything with equivalent speed/modal editing?

Or is the default Excel good enough to warrant relearning all the navigation hotkeys?

And how is org-mode as an alternative?

hellofunk 4 ago 0 replies      
I take offense at this. Mr. Spolsky, you do not know me! King Kong ain't got nothing on me! I excel at Excel!
madengr 4 ago 0 replies      
Many years ago there was a harmonic balance (circuit) simulator in Excel. Pretty crazy.
trymas 5 ago 2 replies      
Good content, but could he please stop calling listener a dummy baby!

I understand that he is presenting to his employees or to some company, but it's still disrespectable. If he is not my greatest buddy - don't call me a dummy baby.

unixhero 4 ago 0 replies      
Yeah. He probably has a crowd that sucks at Excel because that goal seek stuff is not exactly a revolutionary Excel trick.
TimesOldRoman 4 ago 0 replies      
Wow I've read stuff by Joel but never watched; he comes across as a total prick.
FabHK 4 ago 0 replies      
Did he cover volatile functions? Did he cover F9 vs Shift-F9 vs Ctrl-Alt-F9?
lgomezma 4 ago 0 replies      
I really suck at Excel
s_chaudhary 4 ago 0 replies      
pandas anyone?
GrumpyNl 4 ago 0 replies      
wow, i want a i-phone so i can play a 25 year old game on it.
fu9ar 5 ago 1 reply      
idk im pretty good at exporting to CSV.
guyzmo 4 ago 0 replies      
well, the main feature Excel really suck, and makes it almost impossible to use: Undo/Redo. Why the hell did they make undo/redo work across spreadsheets (eventually reopening closed spreadsheets)?

And then, why is it impossible once you wrote some content, to copy it, undo writing it and paste it? The copy gets undoed!

To me, that behaviour makes Excel unusable.

And anyway, why would any decent SW engineer want to use Excel, which is like a 2 dimensional view of the world, whereas after a career designing software I can see the multiverse.

orbitingpluto 5 ago 0 replies      
Real men use PowerShell to edit their Excel files. :j

edit: I did do this once, but it didn't scale to larger files. Also, it was the only option on those Windows RT Surface tablets.

jackinmyshoes 5 ago 1 reply      
That was incredibly boring, why is this getting so many up-votes?
iPhone 7 apple.com
753 points by benigeri  5 ago   1724 comments top 114
slg 5 ago  replies      
I still can't get over the headphone jack. Apple does have a good record of abandoning technologies at the right time (floppies, CDs, Flash, etc) but the biggest difference is that those technologies were all on the downward slope of their popularity when Apple made the move and all had solid replacements available at the time. The headphone jack is just as popular today as it has ever been and it is still more convenient and dependable than wireless headphones for most people in most situations. Maybe that changes soon or maybe AirPods solve this for iOS users (they by design can't be a universal solution) but I can't help but feel that Apple is jumping the gun on dropping the jack. Although as an iPhone user, I hope I'm wrong.

Side note, I think it is hilarious that Apple can't get the AirPods to ship at the same time as the iPhone. Anyone who buys the new phone on release is going to be stuck with the crappy lightning headphones for at least a month and a half.

tptacek 5 ago 6 replies      
I think I speak for a lot of people when I say that cameras are nice and so are Retina displays but what we'd really like to see is a big splashy page about whatever's new with the Secure Enclave Processor in the 7.

Not because there's anything wrong with the 6! Ivan Krstic's talk about Apple platform security at Black Hat was probably the best talk of the whole event. Nobody is delivering seamlessly integrated chipset-up-through-application security the way Apple is. Forget about in mobile devices; I mean, in computing, period.

I'm excited to learn what else is coming there!

tebruno99 5 ago 17 replies      
I'm not even upset about the headphone jack. Whatever. I'm really upset because you won't be able to do the following:

1.) Audio+GPS+Charging in non-Bluetooth Car.

2.) Listening to music at desk and still have enough charge for the Audio+GPS for the drive home.

3.) No more listening to music/audiobooks as I fall asleep because in the morning the iPhone won't be charged for my desk usage the next day unless I wake up and plug it back in during my sleep.

They can do whatever they want with the headphone jack, but pretending like we don't need to plug the phone in!! Thats daft.

seizethecheese 5 ago 1 reply      
srikz 5 ago 2 replies      
I somehow expected a ton of conversation around the new A10 Fusion chip. After 340+ comments I couldn't find any mention of it (I just did a page search for A10, A10 Fusion). Apple were already ahead with their per-core performance but seems like they have widened the gap even further this time with their version of the big.LITTLE arrangement. Wonder how Qualcomm's next chips will be. From what I heard, 820 will be the last custom chip they will do and from now on the CPU will be just the reference ARM chips and they will focus on the GPU and better integration of radios on the chip. Someone with more knowledge (about Apple's and Qualcomm's chip) please fill in.
balabaster 5 ago 8 replies      
It's water resistant but water damage isn't covered under warranty? How can you have it both ways like that?

"Water resistance IP67 under IEC standard 60529. Liquid damage not covered under warranty."

How does one make such a big deal of it being water resistant (Product film: 1m 35s; "...to make this the first water resistant iPhone") but not cover liquid damage under warranty?

protomyth 5 ago 3 replies      
They used the word "courage" during the keynote. I would say the actual words are "lock in" and "licensing fees". I would have been ok with USB-C because at least those will be able to move between machines.

The adapter is useless for me since it doesn't allow power to be supplied so my long drives are now problematic. I guess I'll have to take that into account on buying the next car.

Rezo 5 ago 3 replies      
I'm disappointed by how boring the two-camera solution in the 7 Plus is. I was really hoping they were going show something interesting, like fusion of the two sensors through computational photography into one, with better low-light performance and less noise through downsampling. Or take +1 & -1 exposures simultaneously for a greater dynamic range.

Instead we got a button to switch from one lens to the other, for a 2x optical zoom. That's it. 99% of the time that second sensor and lens will do absolutely zilch. The computational bokeh appears to only use the 56mm lens for the actual photo, and the other lens to capture a depth map to compute the fake bokeh. This is hardly any better than the existing fake bokeh solutions shown many times before on Androids, Nokias and in iOS apps over the years that do the same, except it's a bit faster. The whole thing feels like just another checkbox feature, with very little actual value.

sxcurry 5 ago 3 replies      
Well, it's official - Apple has failed again! Doomed I tell you, doomed! Forget the performance enhancements, better battery life, fantastic new cameras, etc, etc - I have to use a new earbud cable. Plus, Jony Ive is going around putting super glue in all the old iPhone audio jacks, so I can't even use my existing earbuds with my existing iPhone. Plus, Apple is charging me $0.00 for the adapter so that I can use my ratty old earbuds with my new phone. Doomed, I tell you.
rad_gruchalski 5 ago 2 replies      
The premiere of the next mbp next year:"And... We listened to you. We've been hearing that you are upset about not being able to use the same headphones for your computer and iphone 7. We fixed that. We've removed the 3.5mm jack from the new mbp. It's magical."
randomsearch 5 ago 5 replies      
I have two thoughts on the headphone jack:

1. Most of the use cases being discussed here are irrelevant for the average iPhone user. Charging and listening at the same time is not a thing for most users. I know there are perfectly reasonable scenarios where it is useful, but most people don't care. Regarding battery life: personally, I use my iPhone quite a lot, often with bluetooth headphones, and I have had to charge it only once or twice during the daytime in the last two years. If you play a lot of games, or use GPS intensively for a few hours, then battery life could be an issue. For the average consumer, I don't think it will be a major concern.

2. OTOH, in the last few years headphones have become a very, very big market. They are a huge status symbol for teenagers and early 20-somethings. If you've saved a lot of money to afford a pair in that stage of life, the headphone jack is a big deal. It's not going to be "cool" to carry around an adapter all the time, and regardless people will hear "no headphone jack" and be annoyed. That demographic seems key to me in maintaining Apple's market lead over the long term, i.e. trend-setting young people.

Overall, I actually think that (2) will be a very big issue. Whilst I am of the opinion that wires are horrible in general, Apple may have misread its market here.

qnk 5 ago 3 replies      

 The high-gloss finish of the Jet Black iPhone 7 is achieved through a precision nine-step anodization and polishing process. Its surface is equally as hard as other anodized Apple products; however, its high shine may show fine micro-abrasions with use. If you are concerned about this, we suggest you use one of the many cases available to protect your iPhone.[1]
I think I'd go for the Black one instead.


Unklejoe 5 ago 4 replies      
Can the 3.5mm to Lightning adapters be legally produced without paying royalties to Apple for using the Lightning connector?

On a related note: I wonder if one reason for eliminating the jack is to close that open interface which some devices like the "Square" were using. I'm not sure how much of an impact this has though; it was just a thought.

jamesmccann 5 ago 5 replies      
Feeling pretty disillusioned by another iPhone andiOS update. The 3.5mm coupled with lightning instead of USB-C just look like obvious traps for lock in with no real gain (5hr of playback time?!)

iOS still continues its march of adding minor features that should be in regular OTA updates and packing them up with some serious marketing hype. There's barely any improvement here and most of the features are already well implemented in Android / Google Apps or Facebook Messenger.


niftich 5 ago 4 replies      
This is a Nice Device. You can read my other comments lamenting the headphone jack, this comment isn't about that.

The screen is beautiful. The two cameras are a clever trick that I hope work as well as advertised -- and their cameras have been historically very good. Splash resistance is overdue, but appreciated.

But A10 is a bit of a disappointment [1][2], only as powerful as the A9X. Do they have any new hardware encode/decode blocks at least?

With A9 they were having yield issues and had to different traces being manufactured by two different fabs to enhance capacity. What do we know on the chip front?

[1] https://www.techtastic.nl/smartphones/apple-a10-soc-van-ipho...

[2] http://www.trustedreviews.com/news/iphone-7-benchmarked-here...

primitivesuave 5 ago 4 replies      
I found the WhatsApp integration the most intriguing part of the announcement. By allowing calls from WhatsApp to also be received, I am assuming they are making the native calling/iMessaging API available to any iOS application.

While messaging with iMessage, Facebook messenger, WhatsApp, etc. can be done over WiFi only, calling is traditionally reliant on a cellular provider. The new iPhone only requires a WiFi network, and with the proliferation of WiFi and the first city-wide networks (e.g. Barcelona), it is possible that in the next decade all communication will be done over the Internet.

Also, during a recent trip to Japan I saw an $120 SIM card that gives unlimited Internet access for a year. This works out to $10/month, which is far less than what I pay for Verizon. So in a way this new iPhone may eventually cause cellular networks to primarily become providers of remote Internet access, as telephony shifts to the apps that the local people use to connect with each other.

artmageddon 5 ago 13 replies      
$160 for the AirPods? My goodness those are expensive.
koolba 5 ago 3 replies      
OT / @dang: This thread really makes one appreciate the new collapsible comments!
SurrealSoul 5 ago 16 replies      
Honestly if you had an iPhone 6 why would you upgrade? Better battery life is cool, and it being waterproof is novel. However, its basically the same phone for the end consumer.
bluedino 5 ago 4 replies      
Enough about the headphone jack going away - isn't anyone concerned with how big of a deal they made about Pokemon on the Apple watch?

Apple looked so uncool and out of it when they continued to talk about it. Half the crowd has forgotten Pokemon Go even existed by this point.

arihant 5 ago 1 reply      
I'm seriously not comfortable with getting audio through a digital port that has an authentication chip built in. That's HDCP and DRM for music waiting to burst into life.

"Unauthorized playback."

plg 5 ago 3 replies      
AirPods - so is walking around with a thing in your ear cool now? Around here it certainly still signals "I am a jackass"
mwalkerwells 5 ago 4 replies      
What are they going to do with the 3.5mm audio jacks on Macs? So Apple removes the 3.5mm audio jack from the phone & adds a lightening port to the mac?

It makes me imagine how nice it would have been to ditch both the 3.5mm & lightening port & replace it with a USB-C port across product lines.

Obviously that would have been even more drastic in many ways, but I can't help but think that they have painted themselves into a strange corner.

ChrisBland 5 ago 3 replies      
Cool - more dongles, adaptors + what not to carry around and lose and then pay apple another $40 for each time. I say this writing on my Thunderbolt display that has since been rendered obsolete if I ever want a new macbook
eriknstr 5 ago 0 replies      
I submitted the URL for archival as have a lot of other people done, but what I found strange is that there are archived versions of "page not found" results going all the way back to 2014.


Meanwhile, nobody has attempted to archive links for iPhone 8.

I guess maybe the IA crawlers found links to the page from elsewhere. Links made either by mistake or by someone making a joke about the release of iPhone 7 back in 2014 and betting on people not actually following the link. I dunno.

curiousfiddler 5 ago 3 replies      
I have a design issue with AirPods. When my earphones (with wire) fall off (and it happens when you're running or doing some other similar activity), I know for sure, that me or someone else accidentally won't crush them, because the wires often prevent them from falling on the floor. I don't know how the current design of AirPods would prevent that.
carlisle_ 5 ago 1 reply      
> 2 louder than iPhone 6s

Just the thing BART & MUNI really needed.

songgao 5 ago 1 reply      
2.4Ghz is super congested. 802.11g is. Bluetooth is. Even your microwave is on 2.4GHz. If everybody starts to use Bluetooth headphones all the time, I fear it's gonna make it totally unusable.
pawelwentpawel 5 ago 6 replies      
Can somebody explain why a lens with f1.8 is not able to provide the depth of field effect on itself?
jimjimjim 5 ago 2 replies      
so, what's the next market/eco-system?

mobiles are mature products and the players are strictly in cash-cow or market share mode. nothing of importance is changing.

I've got an iphone se and an iphone 4 and you can't tell me that's the most they can do for 6 years of product development by one of the richest companies in the world. (yes i know that it's faster with more a and more b and more c etc)

Apple needs to drip feed improvements over the next x years to keep sales up so we can't expect anything game changing.

"The Others" are trying this and that but nothing seems to be sticking, probably not able to drive consumer desire enough.

so if nothing is happening, what is the post-phone next-big-thing to get into?

ng-user 5 ago 4 replies      
> "Up to 5hr. of battery life on one charge"

How the fuck is it acceptable to completely remove the jack and replace it with this 'superior' technology?

centizen 5 ago 1 reply      
We knew it was going to happen, but I am still disappointed the 3.5mm jack is gone.
qaq 5 ago 2 replies      
I think Apple needs to add a few younger people to their executive team, because it seams they no longer can even pretend to be exited during the presentation.
xbryanx 5 ago 0 replies      
I know this is a minority use case, but my iPhone is a great tool for testing whether audio equipment is working or not when I'm doing media system installs. Simply plug in the iPhone and play some sounds. Alas...
BuckRogers 5 ago 1 reply      
They just solidified the iPhone SE as the best product they offer. No way to charge the iPhone7 and use wired headphones at the same time. A camera wart so the phone isn't flat like the SE. The loss of extra battery by going with a wart over a thicker, easier to hold phone like the SE.

I'll be sticking with my 5S, and my wife is no longer upgrading her 4S to the 7 as we were planning.

We love our iPhones, but we do need to replace hers and now looking for non-Apple alternatives since while I prefer the SE over everything on the market, she thought she was going to want the 7 Plus.

metafunctor 5 ago 1 reply      
The keynote was trying to boast the gaming capabilities with a demo of 400 monkeys.

Weak. Give me 400 monkeys, then 4000 monkeys, then 400 000 monkeys, and now the monkeys are forming a fractal, but the fractal is just the surface of a sphere, and zooming out there are a million spheres, and the spheres form a monkey.

Now THAT's a demo.

finnh 5 ago 2 replies      
picture two friends in a car: "oh hey this music is the jam, let me play it for you."

5 minutes of dicking with bluetooth pairing later: "FUCKING BLUETOOTH GODDAMN IT. welp, never mind"

(conversational lull follows)

chris_overseas 5 ago 1 reply      
From the website, big and bold: "iPhone. Now in stereo."

Honest question, not having owned an iPhone before - is this really the first iPhone that can produce stereo sound through the speakers? If true, that seems like a crazy thing to advertise given how standard a feature it has been in most phones for so long. On the other hand, if iPhones have had stereo output already, why shout about it now?

mrb 5 ago 2 replies      
Weird. Nowhere is stated the amount of RAM the phone has. Not even http://www.apple.com/iphone-7/specs/

Wikipedia claims 1GB (https://en.wikipedia.org/wiki/IPhone_7). Can't be right?

msie 5 ago 1 reply      
Being able to collapse comments comes in real handy here! Collapsing the headphone-jack threads...
obilgic 5 ago 1 reply      
One thing that hasn't been mentioned is AirPods seem super useful for taking phone calls and all the other apps such as Snapchat, I would wear them off all day.

Airpods might become the virtual reality for your ears.

cozzyd 5 ago 2 replies      
Well, at least the lack of a headphone jack might prevent some people from using a selfie stick.
davidiach 5 ago 1 reply      
I was really impressed with the new camera. It seems to me this was a bigger improvement than what they usually do.
AceJohnny2 5 ago 2 replies      
I was really curious how they'd handle wireless audio. In my experience, Bluetooth is slow to pair, connect, and glitchy in common environments. So I find it very indicative that the new Airpods do not mention Bluetooth, and the Beats Solo3 cryptically mentions "Connections: Bluetooth, Wireless" on its product page [1]. Sadly, I don't expect them to open their tech to 3rd parties soon :(

[1] http://www.apple.com/shop/product/MNEN2LL/A/beats-solo3-wire...

grandalf 5 ago 2 replies      
I've been trying out $49 Android phones lately after using an iPhone 6 Plus for over a year.

Android is getting to the point where most users will not really notice a difference between Android and IOS, even on a very inexpensive device.

overcast 5 ago 5 replies      
I especially enjoyed the last second comment under his breath regarding the matte black iPhone 7 pricing.

32GB standard for all models, except the matte black, which will ONLY come in 128GB, and you'll be paying $100 more at $750.

Nice underhanded move by Apple to maximize profit for what will undoubtedly be the most popular color.

First they force everyone to buy the 32GB upgrade last year on the 6S, now you're forced to do the same to 128GB, unless you want a rose colored phone.

The camera upgrade looks nice, but the headphone jack is a joke. Another wire that will inevitably fall apart like the other Apple lightning connectors.

EDIT: Jet Black, NOT Matte Black. Still dumb.

nikon 4 ago 0 replies      
Really boring and hard to justify the cash. Wish I had a 6S so I could keep it for a year or so... I have iOS 10 right now and it's quite laggy on my 6.

Regarding the comments about how do I charge and listen, I accidentally found this dock[0]. Not sure if it's a new product.

[0] http://www.apple.com/shop/product/MNN62/iphone-lightning-doc...

qaq 5 ago 6 replies      
charging while using headphones?
jakobegger 5 ago 0 replies      
The Airpods look like a genuine improvement. I really hate untangling my earphones every time I use them. The carrying case looks brilliant; much nicer to carry a smooth case than a mess of wires in my pocket.
jug 4 ago 0 replies      
Surprised to see them not move from Lighting to USB-C with this. Now we'll have a new generation of EarPods that won't fit their new generation of MacBooks. It seems disjointed for how coherent a company like Apple tends to be, now that they had the opportunity to unite their product line better with purely digital audio.

Was USB-C supposed to be their future or not...? It sounded like it when they introduced the MacBook. Do their teams communicate well with a lack of strife?

adolfoabegg 5 ago 4 replies      
They didn't mention wireless charging, did they?
brian-armstrong 5 ago 3 replies      
I'm curious if this spells the end for the headphone jack in the industry. Now that's gone from the iPhone, should we expect other phones to drop it? What about tablets and laptops?
lifeformed 5 ago 0 replies      
Is this website a terrible viewing experience for anyone else? The videos don't work, and I can't scroll the slideshows unless I flick super fast. I'm on Chrome desktop.
nickpp 5 ago 1 reply      
Still downscaling the iPhone 7 Plus resolution down to 1080p?! Still no 1-1 pixel mapping?!

I know nobody else cares...

coldtea 4 ago 0 replies      
I think the only people that are annoyed with the camera bulge (a functional bulge if there ever was one) are people with OCD -- it "ruins" the perfectly straight edge. It's not like you'll ever feel it in your pocket or something.

Meanwhile, just a decade or so ago most phones had camera bulges, edge bulges, antennas that stretched out from the body, were 3-4 times the thickness, etc.

MrLeftHand 4 ago 2 replies      
Great, now they have a phone with double camera wart and no jack.

Also what's up with Apple being so obsessed about pictures? I know you want to have the nude selfie in the toilet to be the best as possible, but come on!

And everything revolves around fitness. People wont get up from their bum, just because their watch tells them to. And the other who already do fitness don't need a watch to tell them how fit they are. They already know. Because they can feel it.

And I almost forgot that having now two different types of back casing is a feature apparently.

Last but not least, Apple is still ignoring the cries of millions of users about the battery life. That majority of the people would trade in the slim design for days worth of juice.

Who cares about paper thin phones when you have to put them into a case with extra battery within it to have it powered through the day?

Who cares about the seamless Jet Black casing when you put the phone into an ugly plastic case?

It looks like 'Form Over Function' again for Apple.

Good job apple, this is probably the most uninteresting keynote ever. Except for the people dancing in stockings at the end.

ksec 3 ago 0 replies      
Absolutely amazing HN thread, 1711 comment as of now and less then 10 are on A10 SoC?

It is truly a astonishing, how they manage to use the same TSMC 16nm, and get 40% single core performance increase. The rumors is the same SoC core from A9 but 40% higher clock speed from 1.8Ghz to 2.6Ghz, while keeping the same thermal envelop.

Some people were wondering if these Smartphone CPU can easily scale up the clockspeed. Turns out it can. And the performance could now exceed the baseline performance of Macbook.

i.e, Apart from compatibility reason, there is no longer a case for Apple to continue and use Intel CPU. A Quad Core A10 may even outrun the current Macbook Pro given the similar TDP.

coryfklein 5 ago 1 reply      
I'm having a hard time seeing the value add on the AirPods that justifies paying ~5x the cost of stock Bluetooth earphones.

Siri integration and easier charging is definitely really cool, but not worth paying $120 over regular Bluetooth headphones that will probably be copy cat'ing that functionality in t minus 3, 2, 1...

Pxtl 5 ago 1 reply      
I do hope that this will push Bluetooth technology forwards - on my android devices bluetooth audio sound-quality is poor and skips when you launch resource-intensive applications. Also, the UI for syncing and selecting bluetooth devices is generally mediocre and confusing.
HeavyStorm 5 ago 0 replies      
Question: besides a cool accessory (airpods), and a weird double camera thing, what's really pushing forward here?

Galaxies have been splash proof for some generations, and Bluetooth phones aren't new (only the design of this one seems to beat everything else).

Other than that, only traditional Moores Law advancements, like, more battery, more RAM, more processing power. None of these are enabling techs, in that they don't enable you to do anything that you can't with older devices.

So, I guess, update when the old one gives up the ghost?

OJFord 5 ago 0 replies      
RIP scroll. What a nasty web page.

It also looks really plastic-y in those renderings.

Animats 4 ago 0 replies      

Here's an ad for the 1957 Chevrolet Bel-Aire. (Available "with two four-barrel carburetors!" Two-tone paint! Tailfins!) There's about as much difference between the new IPhone and the N-1 model as there was between the 1956 and 1957 Chevys.

[1] https://www.youtube.com/watch?v=i-HelvOG5RE

AndrewKemendo 5 ago 1 reply      
It's hard to know without it in my hands how big of a deal the stereo camera is going to be. The fact that it wasn't designed for depth (at least publicly stated) makes it a little unnerving - for example having to compensate for two separate focal lengths to get good parallax is going to be a pain. However we built our SLAM around taking on dual cameras IF they happened to show up so we should be ok with some parameter changes on each input.

Anyway, AR is about to explode.

chadlavi 5 ago 1 reply      
everyone: "This does not perfectly fit my current unique use case, so damn it to hell"
Yhippa 5 ago 1 reply      
I'll give them credit for going deeper into features in he new phones. I question whether people will think to use them if they go into their phone for a specific task.
k2xl 5 ago 5 replies      
Honest question - Aren't IPhones already pretty water resistant?

Unless getting dunked in water, I haven't heard of anyone having any issues with water damaging their IPhone.

davidf18 5 ago 0 replies      
I'm most concerned about voice quality. Any indication that there are more or better quality microphones.

Also, I'm concerned about the LTE: on the Verizon network it sounds like they're using the same modem as the Galaxy S7.https://www.qualcomm.com/products/snapdragon/modems/x12

Is that correct?

neals 5 ago 1 reply      
How am I not going to loose those two tiny little earbuds?
hmate9 5 ago 1 reply      
I won't be buying the new iPhone but I thinks removing the headphone jack seems like an extremely small problem.

The main issue seems to be that you now can't charge and listen to music at the same time. How often do you actually do that? In the past 5 years I have probably done that once.

For those of you who do think it is an inconvenience, I bet there will be a product on the market in 2 weeks that eliminates this problem.

breatheoften 5 ago 0 replies      
I want a combination wallet+airpod dock+phone battery case. Wallet, airpod dock, retractable lightning connector (to charge iPhone), retractable usb cable (to charge battery). Battery doesn't need to be huge, just enough to get you another 20% or so phone charge -- and I imagine that would be enough battery for a whole lot of airpod recharges.
msoad 5 ago 4 replies      
I buy a new iPhone every year. I think phone utilization is so high that around $1 a day is nothing for it.

Compare it with cars clothes and other things

exodust 4 ago 0 replies      
I wish people would care for the environment more and keep their phones and devices for longer.

Even the packaging mostly ends up in landfill. There is something unhealthy about "shiny new toys" released every year that we must have according to the media's frenzy of Apple advertising.

walterbell 5 ago 0 replies      
The new "collapse subthread" HN feature was very useful for hiding 600+ messages in the headphone jack subthread.
ulfw 5 ago 0 replies      
I can't believe that even the newest Beats 3 Solo Wireless have Micro-USB charging. Talk about Apple not knowing what their product charging/connection strategy is! (Lightning for AirPods, but Micro-USB for Beats, Lightning for everything else, from Apple Pencil charging to Apple Mouse)
sofaofthedamned 5 ago 1 reply      
Does anybody have any technical details on these headphones?

Are they Bluetooth or not? Or is it the usual proprietary crap?

evan_ 5 ago 2 replies      
One major thing I haven't seen anyone mention about replacing wired headphones with wireless is that as far as I know, you're not supposed to use wireless headphones on a plane. I don't think you'd actually get hassled by a flight attendant but who knows.
72deluxe 4 ago 0 replies      
The TMobile/Google G1 I had used to have no headphone jack and relied on an adapter. It was really annoying.

One point about the stereo speakers is that you'd need to put your face/nose right next to the phone to appreciate the stereo, surely?

sudeepj 5 ago 0 replies      
Wouldn't the AirPods will be very easy to lose? What if they drop-off while snoozing. I mean with wired headphones, even if they come out of the ear (say while sleeping on a long travel) they are still attached to the phone and hence cannot lose them.
sundvor 5 ago 0 replies      
This comment will probably drown in the deluge, but it'll be interested to see if there market for higher quality Bluetooth DACs just got cracked open a bit. I use a Soundblaster E5 myself; this thing is great.
gchokov 4 ago 0 replies      
Let me say it simply, contrary to many others.. I am buying one.
icinnamon 5 ago 2 replies      
Confused about what earphones come with the iPhone 7. The standard analog ones (since an adapter is included)? Feels very backwards... unless I'm missing something...

Also, no new MBP is very disappointing.

saynsedit 5 ago 3 replies      
I feel like I can't buy this unless Apple pays its EU-enforced Irish tax bill. We give them money but the vast majority of it never goes back into the economy.

[Edited for technical correctness]

gigatexal 5 ago 0 replies      
The lack of the headphone doesn't bother me. I am excited to see what the future holds for digital audio out. I don't care for the airpods though.
alanmeaney 5 ago 0 replies      
Genius move by apple. Nothing said 'I'm cool' like the white headphone cables, same effect with new wireless Airpods
ngrilly 5 ago 0 replies      
The biggest drawback, maybe the only drawback of this new iPhone, is that you can't use the EarPods while charging.

(Edited for clarity)

nathancahill 5 ago 1 reply      
Interesting, the Unlocked option isn't available on the Apple Store right now. Temporary quirk until preorders?
pankaj_k 4 ago 0 replies      
If there's so much courage, they should remove them jacks from their macbooks also ;)
tempodox 4 ago 0 replies      
And destroying the headphone market with yet another incompatible plug. Count me out.
tetraodonpuffer 5 ago 1 reply      
what would be interesting for the iphone 7 plus would be to use the telephoto camera for a picture, and use the information from the wide-angle camera to improve the noise reduction in low light, I wonder if Apple is going to also do this (besides using it for bokeh)
alkonaut 5 ago 3 replies      
They claim the plus as "optical zoom" and talk about a 2x factor. Do they mean it can switch between a wide and tele focal length? That isn't "zoom" (at least not in the normal sense) - it's just two focal lengths with a switch. Did I understand the feature correctly?
fnj 5 ago 1 reply      
To all: it's Lightning [R], not lightening. Go ahead. Call me a nitpicker.
malloryerik 4 ago 0 replies      
What about the mic for voice calls?
gjolund 5 ago 1 reply      
I suppose the iPhone7 is nice if you like being told what you need by the largest corporation on the planet.
dominotw 5 ago 0 replies      
i don't take pictures or live a gregarious life of the people in the promo.
aledalgrande 5 ago 0 replies      
Does anyone know more about the cameras on the Plus? Are they synchronized via hardware?
asragab 5 ago 0 replies      
I look forward to measuring graphics performance in FMPF (Flying Monkeys Per Frame)
danra 5 ago 1 reply      
So disappointing they just decided to ignore "touch disease". Bad form.
mslot 5 ago 0 replies      
I wonder if the 2 cameras can be used as a stereo camera for augmented reality.
orf 5 ago 1 reply      
No headphone jack, and it still breaks when you drop it. Not worth it.
tintor 5 ago 0 replies      
No 3.5" floppy drive on the iPhone 7? What is Apple thinking?
twostorytower 5 ago 0 replies      
Looks like they silently killed off the 64GB version :(
modzu 5 ago 3 replies      
bet they bring back the jack in iphone 8
Enlovened 4 ago 0 replies      
_superposition_ 5 ago 0 replies      
Those won't get lost...
jcoffland 4 ago 0 replies      
Mehhhh... Who cares?
romanovcode 5 ago 3 replies      
Still no MacBook. What a shame.
alberthartman 5 ago 0 replies      
Steve jobs is dead. It shows.
_bojan 5 ago 1 reply      
Removed audio jack and still not waterproof.
drivingmenuts 5 ago 0 replies      
No audio jack - no iPhone 7 for me.

End of discussion.

sergiotapia 5 ago 1 reply      
You know I was annoyed the audio port being missing but after seeing the new airpods, I'm sold. They look amazing, and will be fantastic to use in the gym. I'm sold. Take my money!
mustaflex 5 ago 5 replies      
the price for heaven's sake... it's me or every year the new model gets almost 100 bucks more expensive the the previous one. We can expect a base price of 1000 in 5 or 6 years.
a_sriram 5 ago 3 replies      
I wonder why they removed the 3d touch?edit: I just saw the video...its still there. Looks like it is a default feature now. My bad.
pearjuice 5 ago 0 replies      
So it's water resistant but not water proof... It has 2 cameras like other Android phones had years ago. Basically same everything but with a Mario app and no headphone jack? Do you think Steve Jobs would have approved of this to hit retail?
bane 5 ago 2 replies      
It's official, Apple is basically resorting to nickle and diming their customers, except instead of nickles and dimes, it's $160 to achieve very basic functionality in order to achieve something that virtually nobody really honestly cares about. All that's been achieved is that Apple has now created/affirmed a new non-optional secondary market that they're now positioned to best sell into (Beats). There's not even the decency to see if people care about a thinner phone by offering both a thin model without a jack and a thicker phone with one (for some strategically important price differential).

But honestly, complaints and analysis don't matter, people will line up to buy this garbage and to make it worse it'll become a stupid trend that will bleed over into Android-land and now instead of the perfectly fine $10 headphones I picked up at Big Lots, I'll have to shell out 10x that so I can listen to a podcast on my way to work.

edit and they don't even have the respect for their customers to ship their stupid buds on time with the product that requires them...so that their customers can look like bluetooth douchebags from both sides.

Some bad Git situations and how I got myself out of them ohshitgit.com
702 points by emilong  3 ago   333 comments top 66
mhw 3 ago 3 replies      
One of the nice workflows that's already built in to the git command line tools is this one. When you're working on a branch and realise that a commit you made a few commits back has a mistake in it:

 # Make correcting change git commit --all --fixup=<ref of commit with mistake> # Continue working on branch, then at some point git rebase --interactive --autosquash
The --fixup option creates commits with subjects formatted like 'fixup! previous commit subject'. --autosquash uses these subjects when building the interactive rebase list.

Handy enough that I set rebase.autoSquash to true in my ~/.gitconfig so 'git rebase -i' always works like this.

eyelidlessness 3 ago 16 replies      
I can't believe no one has responded yet with "use a GUI". After gaining a basic understanding of how branches and merges work, and I do mean basic, I've never been able to screw up a local repo with a GUI client enough that I haven't been able to recover with the same GUI tools.

I understand that people need to know how to use their tools, but for git most people can get away with the very basic usage that GUIs provide. If you've made some unrecoverable mistake with an important set of changes, you can always review the history in the same GUI and reimplement the important changes in a new branch.

dep_b 3 ago 3 replies      
Somebody proposed to use a GUI. That doesn't solve the usability issues of Git. There's this triangle of what the user tries to do, what the commands and options are called and what they actually do. None of them really align, though with some careful use you can actually make Git do what you want - eventually.

I would like to understand what's the yearly damage of such an important tool being so difficult to use. People committing the wrong stuff, unmergeable messes, people not being able to correct their mistakes, there must be thousands of Git rookies fucking up their Git repo or throwing away their work just as I am writing this.

What would be the cost? Millions of Dollars? Perhaps even billions?

It's about as bad as 0 being a legit value for a regular pointer.

mathieuh 3 ago 3 replies      
I absolutely love git now.

I'm still at uni (at a highly ranked but actually crap university where we don't learn git properly) and this year was my 'year in industry' as we call it in the UK, and my first proper experience with git, aside from `git init` at the end of my project and pushing it to a repo.

I've become so much more confident with git. Seriously, with one caveat (i.e., you haven't pushed your changes to a branch which other developers are working on), it is almost impossible to break irrevocably. Even if you do accidentally break master/develop/whatever, it only causes a bit of hassle and grumbling.

Highly recommend that everyone take a bit of time to learn about "undoing" git commands, whether that's through soft resets, hard resets to origin, or the reflog.

Reflog is also useful for figuring out how someone else broke something and explaining what they did wrong, since you can see what branch they were on at what commit and what commands they ran.

I think git's main problem is the somewhat arcane language it uses, and lack of understanding of what's actually happening behind those words like "rebase", "commit", "patch", "reset" etc.

ThrustVectoring 3 ago 1 reply      
A somewhat lesser known git trick that's pretty much a strict improvement - use `--force-with-lease` for force pushing instead of `--force`.

What this does is check what's on the remote branch and compare it with what you think is on the remote branch, and only do the force if they're the same thing. So if someone pushes a commit, the force push errors out instead of silently overwriting it.

Basically every single time you want to force push, you probably should be doing a `--force-with-lease` instead. I can't think of a situation where you'd want to silently lose commits you don't know about rather than get an error.

mabbo 3 ago 1 reply      
One thing not covered very well was what to do if you push to origin. My favourite way to fix this: use git revert to create an exact opposite commit to your bad commit.

 git revert <bad commit> git push
It leaves a history of the mistake, for better or worse, but it does undo the mistake on origin.

wyclif 3 ago 3 replies      
If you're concerned about not knowing how to do certain things with git, and understanding at a deeper level how git works, I highly recommend reading Scott Chacon's "Pro Git" book:


froh42 3 ago 1 reply      
With all these recipies - one thing I do whenever I attempt some stunt in git: I assign temporary tags to every changeset that's important.

 git tag tmp git perform-stunt
This eases undoing the stunt without needing to find the "before" state from reflog. And if you use a graphical log viewer (I like SourceTree on Mac) you'll see the tagged state in the history view - which makes things a lot clearer.

And to be aware what happens, there one single explanation of git that helps a lot: http://eagain.net/articles/git-for-computer-scientists/

As soon as you start viewing git as a graph of nodes with branches/tags just being "marked" nodes a lot of things make sense, and whatever "git perform-stunt" you attempt it's easy to explain within that mental model.

niuzeta 3 ago 2 replies      
The last addendum reminds me of this inexorably relevant xkcd entry: https://xkcd.com/1597/
glandium 3 ago 2 replies      
> Oh shit, I accidentally committed to the wrong branch!

Other ways to do it (that don't require to retype the commit message):- rebase onto the correct branch:

 git branch foo git reset --hard HEAD~ git rebase --onto name-of-the-correct-branch HEAD foo git checkout name-of-the-correct-branch git merge foo git branch -D foo
- cherry-pick

 git reset --hard HEAD~ git checkout name-of-the-correct-branch git cherry-pick name-of-the-branch-you-mistakenly-committed-to@{1} (or git cherry-pick HEAD@{2})
> Oh shit, I tried to run a diff but nothing happened?!

You probably want to know `git diff HEAD` too.

Edit: formatting.

wfunction 3 ago 2 replies      
Surprised there was nothing on messed-up merges or rebases. They're some of the worst to get out of when you're not totally comfortable with git yet.
mcbain 3 ago 1 reply      
'sudo rmdir'? I don't think that does what they think it does.
srigi 3 ago 2 replies      
Doing mumbo-jumbo between branches with `git stash` is way to hell. Don't do it, you lose data. This fucker will unstash changes until first conflict, then it stop and present you with <<<<<<<ID and >>>>>>>ID which nobody understand.Well I understand it, but never know which is which (theirs/ours label don't help here). You try to undo everything, but then you're fucked - all unstashed changes are removed from stash while conflicts are still there. You must be very careful now not to lose changes. You won't succeed!

That is I believe `git stash` should be removed from git as evil data loosing feature, not needed. Instead just make an alias `git save <TEMP_BRANCH_NAME>` which saves your temporary work to the branch:

`save = !sh -c 'export PREV=$(git symbolic-ref HEAD|cut -d/ -f3-) && git checkout -b "$1" && git commit -am "$1" && git checkout "$PREV"' -`

chriswarbo 3 ago 0 replies      
Based on the article, and many of the comments here, I didn't realise how comfortable I have become using git!

For example, the last "bad situation" I had to get myself out of involved unreadable .git contents caused by filesystem corruption. If you can "rm -rf fucking-git-repo-dir" then it's not too bad; when that fails with an IO error is when things get interesting!

edem 3 ago 2 replies      
I really like this article but there is a problem with it: what happens if I use one of your techniques and I screw up? These steps you describe are a black box to someone who is no git savvy yet. While these definitely help but they propagate the "git is scary, cross your fingers" mentality. What I mean by this is that the reader won't be any wiser after reading

> git reset HEAD~ --hard

What is ~ after HEAD? What is --hard? Is there a --deep option as well?

So I think that you could upgrade this with some annotations over the cryptic parts with a little explanation. What do you think?

Illniyar 3 ago 3 replies      
Actually the easiest thing is simply not to care about how your log looks.

If you don't then there are ry only two things you need to know how to do:

If you didn't push to origin do an ammend. If you did, revert soft and commit the previous code to revert it (you can also put a stash or patch to apply it back).

Which frankly is what the article does, basically.

Hello71 3 ago 2 replies      
lots of these are unnecessarily complicated:

> Oh shit, I accidentally committed something to master that should have been on a brand new branch!

 # disappear the last commit and all changes from it git reset --hard HEAD^ # make a new branch using the last commit git checkout -b new-branch HEAD@{1}
> Oh shit, I accidentally committed to the wrong branch!

first, you don't need to git-add before and after stash, stash will save the working directory and the index (as documented in the DESCRIPTION of git-stash(1)). but for a more logical way:

 # disappear the last commit and all changes from it git reset --hard HEAD^ # get onto the new branch git checkout new-branch # grab the stuff from what was on the old branch git cherry-pick old-branch@{1}
> Oh shit, I tried to run a diff but nothing happened?!

 git diff --cached
recommended reading for intermediate git users: the DESCRIPTIONs of all of these commands (git-reset(1), git-checkout(1), git-cherry-pick(1), git-diff(1)), and the entirety of gitrevisions(7).

lambdacomplete 3 ago 3 replies      
Getting to "Fuck this noise, I give up." is a very clear indication that you aren't competent enough and you should take a GOOD course about git as soon as humanly possible.

Shameless plug: http://engineering.hipolabs.com/how-to-work-in-a-team-versio...

vacri 3 ago 0 replies      
Not quite in the spirit of this article, but "I just want this /one/ file without the rest of the changes from branch foo" is something I use all the time

 git checkout otherbranch git checkout firstbranch -- fileIwant maybe1more git commit -m "brought over files"

jmiserez 3 ago 0 replies      
This doesn't even cover half of the bad situations I've gotten myself in over the last few years :D

Long term, it's best to thouroughly read the man pages, e.g. nicely formatted here: https://git-scm.com/docs

mkj 3 ago 2 replies      
Another option is to use Mercurial with hg-git to GitHub for network effects.

I've been doing that for a while for dropbear ssh, it does hit occasional problems but is overall more pleasant than straight git.

atsaloli 3 ago 2 replies      
There is no substitute for understanding what's going on, especially using a power tool like Git.

It's a cute website, and useful, I really like it. This sentence,

 Bizarrely, git won't do a dif of files that have been add-ed to your staging area without this flag. File under \_()_/"
just screams to me (a professional Git trainer), "I don't understand the Git staging area! I don't know my Git fundamentals! Train me!"

noufalibrahim 3 ago 10 replies      
I don't know if this post was intended as humour or a way to vent out some frustration but in my experience, this path of treating git as "spell X solves problem Y" will always break down.

Version control systems are an important part of the programmers toolkit and it's worth investing a little time to get the fundamentals right.

Sure git is not the friendliest of beasts but what it lacks in interface, it more than makes up in internal consistency and trying to learn it "inside out" is a better long term investment than having a list of ways to solve "git problems".

Anthony-G 3 ago 0 replies      
From the section on using `git commit --amend`:

> This usually happens to me if I merge to master, then run tests/linters.

If this happens on more than one occasion, Id strongly consider creating a pre-commit hook to run tests and/or lint the changed files, e.g., I run `checkbashisms` and `shellcheck` as a pre-commit hook when working on shell scripts.

csbubbles 2 ago 0 replies      
You know, a few years back I had exactly the same attitude towards Git. I hated it, tried to approach multiple times and still hated it. But after working with Git on multiple projects, and having developed some deeper understanding of how things work there, I honestly think now that Git is one of the best tools that have been invented over last 20 years for improving the development processes and engineering excellence. I don't really want to defend it, the learning curve is apparently pretty steep (at least it was for me), but I would just recommend to not give up and keep trying. There are some good tutorials how to handle it and why it's helpful (Atlassian's Git book, for instance).
fizzbatter 3 ago 0 replies      
I constantly wonder if there's a "better CLI UI" that can be made for git, even if simply a wrapper around git.

Ie, if the implementation of Git is right, but only the cli commands/etc are wrong.. what would the right UX be? What would a friendly UX look like?

Seems like something a lot of people could love - even if blasphemy to Git purists.

adamkochanowicz 3 ago 1 reply      
Great article. A couple notes

Just git reset <ref> should do. The --soft flag is implicit.

Amending and rebasing is something you should be careful with. If you've already pushed, you'll now need to force push. If another person has put new commits upstream, they will be wiped out irreparably. Not saying don't do it, just that it's very risky.

Instead of deleting and recloning the repo at the end, if you're really at that point, just doing git reset --hard origin/master should be equally as effective with fewer steps and less time.

Pulling down the repo a second time, however, can be more useful for just having a snapshot of the code in a second location that is totally independent of git traffic (don't pull to it very often). Say someone force pushes something that removes code. Your snapshot or someone else's non-pulled repo is your only hope of getting it back.

m_mueller 3 ago 0 replies      
One of my SO questions could almost fit in there, somewhere before "Fuck this noise...":


hobarrera 3 ago 0 replies      

 git add .
Ugh, no, never do this, never recommend to users to BLINDLY ADD ALL THE CHANGES FROM THE WORKING COPY. I honestly can't think of any worse git usage than this.

Add the single change you missed, or even better, `git add -p`, to add chunks manually.

fizzbatter 3 ago 1 reply      
I've been debating starting a section of my personal site for stuff like this. Unfortunately it's a bit embarrassing, but i figure anything i have to google to learn, it would be beneficial to help others learn it as well. Everything from programming languages (lots of Rust errors are foreign to me, for example), to git issues.

I've often had the thought that if everyone did this it could have potential to be quite the open-sourced collection of material - a distributed self-answered Stack Overflow perhaps.

Is there any sanity in this? Or would posting everything as self-answers to Stackoverflow be more welcome to the average Googler? (higher ranking, better meta, more likely for the user to see it and community features such as commenting/voting/editing)

pmoriarty 3 ago 3 replies      
I've heard advice from #git on freenode not to use "git commit --amend", especially on shared repos.

I wish I still had a log of the conversation or remembered the exact problem that led up to it, but it involved a simple amend totally screwing up my repo, and I've avoided it since.

chriscool 3 ago 0 replies      
I just uploaded a presentation I gave last February called "Git back on your feet":


dahart 3 ago 1 reply      
Great idea! We need more basic git workflows described in plain English.

I was expecting some actual "bad" situations based on the title, and to be fair these were bad to me once and are bad for people new to git, but I'd love to see the level 2,3,etc. version of this article.

MattyRad 3 ago 0 replies      
> Bizarrely, git won't do a dif of files that have been add-ed to your staging area without this flag

Not sure what's bizarre about that. Doing so helps keep your commits clean and helps git tools (diff, git-gutter, etc) by ignoring things you've already stated are complete.

For example, I quickly fix a bug. The code is ugly and I don't want to commit it yet. So I add the bugfix files. Then I clean up the code (before commiting). Now I can do another diff between the staged and unstaged files, checking that it looks better than before, and still works. This way there is 1 clean commit "bugix" and not 2 commits "bugfix" and "bugfix code cleanup"

oskob 3 ago 1 reply      
Oh shit, I commited a binary file larger than 100 mb and now i can't push to github.com. Solution: https://rtyley.github.io/bfg-repo-cleaner/
random567 3 ago 3 replies      
The screwed up and committed to master should end with:

 git reset --hard origin/master
(assuming that the remote is called "origin") With the example in the text, you have to know the number of commits you've made to master.

felixschl 3 ago 1 reply      
I managed to "rm -rf .git" at one point. Took me about a minute to realize and -surprisingly after <c-c>-ing i lost nothing (as far as i was aware). Git is freaking hard to break. Also always remember git-reflog, it safes lives.
psyklic 3 ago 0 replies      
Also great for getting out of Git messes: http://justinhileman.info/article/git-pretty/
uhtred 3 ago 1 reply      
I prefer stackoverflow for things like this as I can see from comments and up votes whether the command does what the poster claims, or whether it is going to make things worse for me.
oneloop 3 ago 1 reply      
Git is complex and nuanced, and short term purple think it's faster to memorize some commands instead of understanding the fundamentals.

I kept having problems with git, so I read a fucking book on it https://git-scm.com/book/en/v2

I'm not saying I never get into situations I can't get myself out of, but the examples in the oh shit website now look like obviously trivialities.

0xmohit 3 ago 0 replies      
Nobody likes to read manuals or books, due to which one can see FAQs being posted on Q&A sites.

http://gitready.com/ contains a number of small articles categorized by beginner, intermediate and advanced that might be helpful.

Another resource for commonly used git tips and tricks: https://github.com/git-tips/tips

Zelmor 3 ago 1 reply      
Is the documentation really that bad? Would it benefit from a technical writer going over it? Is the project open for discussion on changes to the documentation?
hacksonx 3 ago 0 replies      
I moved to git at the begining of this year and I must say that I miss SVN. But everyone keeps telling me that git is better so I'm sticking to it.
partycoder 3 ago 1 reply      
Well, there are many more situations you can get into.

Like cherry picking, force pushing, merge --no-commit, rebasing... almost any operation can end up going wrong.

Just pay attention.

OJFord 3 ago 0 replies      

 # create a new branch from the current state of master git checkout -b some-new-branch-name # remove the commit from the master branch git checkout master
Or just `git branch some-new-branch-name`...

 cd .. sudo rmdir nsfw-git-repo-dir
That will only remove it if it's empty? Which it never will be, because there's at least `.git/*`...

Still, amusing :)

bwghughes 3 ago 0 replies      
Fucking love it.

alias gitshit="open http://ohshitgit.com/"

abarrak 3 ago 1 reply      
It's probably a good time to check if you have some safety against `rm -fr `.

Two days ago, I wanted to delete .git only, but accidentally as my fingers were accustomed with -fr , the command was `rm -fr * .git`. Rails server was running and some hope arose at the moment to just `lsof | grep` .. unfortunately that didn't work with me !

Ironically, all dot files have stuck as obvious :)

throw2016 3 ago 0 replies      
git to me is a work of art. There is a lot of complexity underneath but the end user sees something that is simple, fast and easy to use. It scales depending on user needs and It's easy to reason about.

This is a feat of engineering, to take something complex and make it easy for anyone to undestand and use. It shows real expertise and deep understanding of the area.

In many ways it's a shining example against the 'culture of complexity' that we increasingly find ourselves in. Here rather than simplying the objective is to be to make thing as complex as possible, usually in pursuit of extremely niche use cases or because either the expertise or the interest to simplify is not there. If git was designed in this culture it would be fragile, full of buzz words, poorly documented and prone to failure, and something only a few self appointed experts could reason about and use properly.

pc86 3 ago 1 reply      
> This usually happens to me if I merge to master, then run tests/linters... and FML, I didn't put a space after the equals sign.

Am I the only one that runs my tests before committing, let alone merging to master?

sytelus 2 ago 0 replies      
It would be nice to add these two:

Oh shit, someone checked-in huge file that shouldn't be in repo.

Oh shit, this folder I had been working on should have been in its own repo.

jakelazaroff 3 ago 0 replies      
> Oh shit, I committed and immediately realized I need to make one small change!

If you don't want to change the commit message, in addition to --amend:

 git commit --amend --no-edit

iatanasov 3 ago 0 replies      
The post is missing the most important command : git --help
init0 3 ago 0 replies      
for the rest of it there is http://git.io/git-tips
Gonzih 3 ago 1 reply      
why do you run git add . before git stash?
cyphar 3 ago 1 reply      
The last rmdir example should be rm -rf.
swah 3 ago 0 replies      
I fear Git so much that I make zip packages of the repo before potentially destroying operations.
alistproducer2 3 ago 0 replies      
One of my favorite teachers in school was a dude-bro programmer who pretty sure as younger than me. He'd spent a summer at Google and made us use git and gerrit. I'm honestly a much better programmer thanks to him. I'm still using the git cli to this day.

I also still say "new up" an object thanks to him. I'm not so proud of that one.

kuahyeow 3 ago 0 replies      
Most of the time, stay calm. Do not `git push` hastily, and check `git status` if you can :)
lordnacho 3 ago 1 reply      
Surprised he finds git to be complicated. It probably is deep down, but for day-to-day use, compare it to SVN.

Until I switched, there was always a panic when branching or merging. With git, I can branch like a nutter and things seem to still work out in the end.

Not sure why, perhaps someone else has a perspective on it.

EdiX 3 ago 0 replies      
All of those things and more are way easier to do with gitk and git gui.
jimktrains2 3 ago 1 reply      
If the owner is here: with javascript disabled the code is unreadable.
samoa4 3 ago 0 replies      
nicky0 3 ago 0 replies      
The last one is my usual tactic.
shklnrj 3 ago 0 replies      
It is not the fault of Git if to use it you have to know it!

However would appreciate a quick and dirty handbook.

cyberferret 3 ago 0 replies      
LOL. Bookmarking along with my other Git reference sites...
Annatar 3 ago 1 reply      
Yep, git sucks but it's all the rage now. Mercurial is 100x nicer to use and logical, but since it's written in Python it's slow as molasses, especially with large binary files.

Next on the list: Larry McVoy's Bitkeeper promises to be everything git and Mercurial aren't. (git is "inspired" (read: copycat) by Bitkeeper).

It's funny how Sun Microsystems influenced the industry in so many ways, isn't it?

How the Sugar Industry Shifted Blame to Fat nytimes.com
699 points by okket  12 ago   525 comments top 45
muzster 11 ago 5 replies      
RIP: British Scientist John Yudkin - The man who tried to warn us about the perils of sugar..

Source(s) :http://www.telegraph.co.uk/lifestyle/wellbeing/diet/10634081...


Edit: Lest we not forget his arch-enemy Ancel Keys

adrianggg 10 ago 11 replies      
I rarely say anything is black and white in this world but sugar is in my opinion. Without any doubt in my mind.

Recently in the last 3 months I gave up sugar, hard core, it's hard but the benefits are out of this world.

I was healthy and active. I ate healthy, or so I thought. Boy was I wrong and mis informed.

I had heard theories so I decided to check them out. I went all out to avoid sugar for a couple of weeks just to see. It was amazing.

I have lost 20 pounds that I didn't think was possible, I think better, I sleep better and I eat way less. I have way more energy, like I drank 5 cups of coffee all the time. I don't fade in the afternoon.

Those of you looking for a way to get more energy and focus at work, especially those working long hours in startups. I encourage you to go all out to reduce sugar intake to as little as possible. Of course eat whole fruits those are ok.

Best thing I have ever done in my life.

There's a saying "those on high sugar diets don't know what it feels like to be sugar free." It feels amazing. Try it. At least once in your life. You won't go back .

sorry that was long :-)

balabaster 11 ago 1 reply      
and this folks is why I have trust issues...

Scientists paid off by industry to make people look the other way, who then become head of some Governmental departments and agencies advising the world on whatever it was they were paid off for or have a conflict of interest in and the door keeps revolving...

It's a wonder we believe anything at all after the amount of lies and propaganda we're fed only to find out it's false... or are they lying now? Now we're being fed information that it's the sugar industry at fault and not the fat industry, while we have fad diets that are high fat, low carb, low sugar, because carbs and sugar are bad and fat isn't bad at all allegedly. Who is making the money from the increased fat sales and decreased sugar sales? Is it because sugar is cutting into their bottom line too much and fat is in cheap supply?

Why do we continue to believe the shit that pours out of the mouths of big agriculture and the nutrition agencies as if they haven't been feeding us bullshit for the past 50 years in aid of increasing profit. They don't give a shit about the consumer, they give a shit about whatever fuels the greatest growth in profits.

So this is why I have issue believing anything that any of them have to say about anything because it's all underhanded subterfuge and manipulation, with no end in sight.

timewarrior 11 ago 10 replies      
It took almost 50 years to starting to debunk health issues created by Sugar. It took decades to accept the health issues created by Lead and Asbestos.

Sometime I wonder if chemicals from bottled water, radiation from Cellular/Wifi/Bluetooth pose health risks and we will find it out decades later.

redwards510 11 ago 2 replies      
The documentary "Fed Up" is about sugar and was the first time I was made aware there is no daily RDA % for sugar on nutrition labels. They just have the grams. They lobbied very hard to make it that way, because having "4700%" for a daily RDA wouldn't look very good!
graham1776 11 ago 3 replies      
My wife and I rewatch the obligatory Lustig lecture about once a month to re-anger ourselves at sugar. Nothing motivates like a bit of biochemistry mixed in with political intrigue.


jly 11 ago 5 replies      
I think after the last few years of these kinds of things coming out, the takeaway is pretty simple: be fairly sceptical of 'advice' coming out of large governing bodies and instead just be sensible.

Don't eat too much food. Limit processed foods. Eat lots of fruit and vegetables. Eat a large variety of foods. Be active.

These rudimentary guidelines are clearly difficult for a lot of people to follow, but I think it's pretty easy to avoid negative diet effects by just doing what most people intuitively know as the right thing, even if we consume some of all types of food. It seems to me this is more about self-control and effort level than any scientific knowledge, at this point.

hx87 9 ago 5 replies      
I wonder if this has anything to do with my observation that it's ridiculously hard to find whole fat yogurt, especially whole fat Greek yogurt (!), in most grocery stores in the Boston area. Only specialist and high-end stores such as Whole Foods keep them in stock, whereas the proles get stuck with the sweetened, low-fat versions that contain up to 30 grams of sugar per serving.
aswanson 11 ago 2 replies      
The documents show that a trade group called the Sugar Research Foundation, known today as the Sugar Association, paid three Harvard scientists the equivalent of about $50,000 in todays dollars to publish a 1967 review of sugar, fat and heart research. The studies used in the review were handpicked by the sugar group, and the article, which was published in the prestigious New England Journal of Medicine, minimized the link between sugar and heart health and cast aspersions on the role of saturated fat.

The Harvard scientists and the sugar executives with whom they collaborated are no longer alive.

Good thing there is no collusion between big industry and paid off scientists like Willie Soon to direct the narrative around things these days.</sarcasm>

jamroom 11 ago 2 replies      
This quote from the article is a great one:

"It was a very smart thing the sugar industry did because review papers, especially if you get them published in a very prominent journal, tend to shape the overall scientific discussion"

Has the acceptance policy for prominent journals improved that we're sure this is not happening now? I have suspicions that this is likely still happening more frequently then we might expect (i.e. pharmaceutical trials, etc.).

smokeyj 11 ago 0 replies      
> One of the scientists who was paid by the sugar industry was D. Mark Hegsted, who went on to become the head of nutrition at the United States Department of Agriculture, where in 1977 he helped draft the forerunner to the federal governments dietary guidelines.

This is why I'm cynical.

kenjackson 7 ago 0 replies      
From the article I can't tell if the sugar industry hid or falsified data.

There are at least two ways you can look at this. Imagine if the sugar industry thinks they are getting a bad rap about heart disease, and want to get researchers to study the link and show that they aren't to blame. Conversely, maybe they knew there was a link and were paying researchers to downplay it (or worse).

I feel like this article just points out that the sugar industry funded research, but it never points to actual misinformation that resulted from it -- or did I miss it?

balabaster 11 ago 2 replies      
Follow the money and you will find the motive for what you're being told. There is a reason you're being told what you are and don't believe that it's for your own good. These industries and agencies don't care about what's good for you, they are self serving and only care about what's good for them. You're just the vessel supplying the cash they're after.
nnain 10 ago 3 replies      
What if this backlash against Sugar is as extreme as the initial marketing? What if 50 years on, people come back to say, "the generation that endlessly promoted tasteless food and took away the sweetness". Is there a proper study on the effect of eating a sweet chocolate everytime you feel like it, to some kind of happiness? Everyone just sees to be treating this as a magical wand... while still irrationally giving in to a lot of other hyped up food.
ianamartin 11 ago 2 replies      
Of course this happened. Duh. It's still happening today. I'm not saying where because I don't know where. But if you do the simple math about how many people are working as scientists, it's not hard to figure out that there are companies who could benefit from positive scientific findings--no matter how wrong--and realize that some of what we're reading in original research was paid for and not really true.

I wish people would keep that in mind when they get all worshippy about science being self-correcting and a great system.

It's not a particularly great system if you are looking, for example, for certainty. If you want absolute certainty, a good dose of syllogist reasoning will serve you better than any inductive method.

The problem is that syllogistic methods break down very quickly in real world applications because you have to find ways of classifying all the objects that may or may not fall into your category of "all", "some", or "none".

The scientific method is not a bad method, but it's not great. And it's weak in ways like this. It is not even close to the best method. But it's the only one we've found that's generally applicable to the human endeavor.

That's all it is. Better at being more general. I wish we'd get over ourselves and be honest about that.

henrik_w 9 ago 0 replies      
I thought the book "Why We Get Fat" by Gary Taubes was a pretty interesting read in the sugar vs fat debate.


deisner 8 ago 0 replies      
This is the definition of chutzpah: "The [sugar] association also questioned the motives behind the new paper.

Most concerning is the growing use of headline-baiting articles to trump quality scientific research, the organization said. Were disappointed to see a journal of JAMAs stature being drawn into this trend.

Yes, the dubious ethics and research quality at issue here are clearly JAMA's, and not the lobbyists' who, by their own admission, paid scientists to publish a journal article to exonerate their own industry.

matt_wulfeck 8 ago 1 reply      
This makes me remember the late Dr. Atkins of the "Atkins Diet" who was pretty much the laughing stock of dietitians then and now.

Yet people that tried the diet have found life-long positive health impacts. I'm one of these people.

I would also like to put some blame on so-called dietitians, who up until very, very recently would have warned you against a low carb diet.

Every dietician I talk to is so absolutely sure about what they recommend and believe.

truth_sentinell 6 ago 0 replies      
This teaches among many lessons, one in particular: We can't take anything for granted. A lot of people use research studies in arguments as it was the absolute truth. The papers can be wrong, or even true but for a narrower sample, or even worst, faked.
LordHumungous 10 ago 2 replies      
On the other hand, I think the low carb/keto people have taken the pendulum too far in the other direction. A lot of research seems to suggest that a plant based diet heavy on whole fruits, vegetables, grains, and nuts is healthier than one consisting of animal fats and protein. It makes sense when you look at the diets of the healthiest people on Earth. Just because excess processed sugar is bad for you doe not mean all carbs are unhealthy.
yotamoron 10 ago 1 reply      
The bitter truth about sugar: https://youtu.be/dBnniua6-oM
kevin_thibedeau 4 ago 0 replies      
Let's not forget how WW2 propaganda shifted blame to sugar. Where the fictional notion of a "sugar high" was invented to connote an illicit character that will get your children that much closer to the reefer madness. All to manipulate the public into conserving sugar needed for the war effort.
jbb555 11 ago 0 replies      
There seems to be increasing evidence that high blood sugar over a long period of time is very bad for you. That insulin response keeps this under control mostly... but that it was probably never meant to be active all day, every day. So eating lots of sugar (and carbs in general) at every meal is probably long term, not the best thing you can do.
mary_fortran 8 ago 2 replies      
The biggest problem with our health, however, is still Obesity. Just as the fat were mislead by being made to believe that "low fat == healthy" these people will be similarly think "low carb == healthy" and proceed to get obese on low-carb foods.

Face it, if you're a healthy weight, by body-fat percentage, you don't have to worry about fructose vs glucose or fat vs carbs.

Americans need to put their forks down. We need to start holding the overweight and the fat accountable for their expensive lifestyle choices.

ScottBurson 9 ago 0 replies      
This is the kind of thing I think of when people here on HN try to convince me that glyphosate is safe. When so much money is at stake, corporations naturally try to influence the science, and unfortunately, there are plenty of poorly-paid and/or dubiously-ethical scientists in the world who will take their money.

Under such circumstances I think we have to be massively skeptical of any result that aligns with the business interests in question. When public health is at stake, the burden of proof should fall very heavily on those claiming their product is safe.

grexe 7 ago 1 reply      
see also the really well done movie "That Sugar Film" (http://www.imdb.com/title/tt3892434/) where exactly this connection is laid out in the first part.
bonoboTP 7 ago 0 replies      
The lecture "Sugar: The Bitter Truth" by Robert H. Lustig explains some details about the harmful effects of sugar:


dxbydt 10 ago 2 replies      
Honey is a strange alternative to sugar. For the past 2 decades, I have used honey as the sole sweetener, though the rest of the family continues to patronize sugar :( The trouble with honey is that it's seriously pricey, and the community is a something of a cult - you have to know a lot of the terminology, otherwise you'll walk out with sugar-water. I take an empty 1 gallon jar to the honey store in Sac, and pay $100 to fill her up. I have experimented a lot with the cocktail over the years. Generally, avoid anything"American" ie. sweet light colored honey. Go for the raw unfiltered darkest thickest broth you can find. They have gigantic jars of various colors, so I sample from the darkest ones. Then add a few grams of propolis and a few scoops of nectar and a few combs. Top it off with manuka and part with $100. Lasts 3 months.It tastes weird and too thick and gooey, but it's an amazing product. All the debris floating around on it is supposedly packed with enzymes etc.
zizzles 7 ago 0 replies      
Obesity as the end all be all measure of health is flawed and out-dated.

The real damage is being done silently, ie. cell damage, DNA damage, telomere shortening, endocrine disruption.

Visual cues may or may not be there.

dennisgorelik 3 ago 0 replies      
Sugar industry is guilty in that case, but let's not put all blame on them. It is the whole society that wanted to believe that mass consumption of sugar is OK.
tlb 10 ago 1 reply      
The sugar industry was also the main driver of the African slave trade. When you have strong selection bias against morally principled people joining an industry (as there must have been in, say, 1850) it's hard for an industry to ever recover a moral compass.
amist 11 ago 6 replies      
What about the fat industry? Didn't they have enough money to pay for scientists to shift the blame to sugar?
Question1101 7 ago 1 reply      
So food with sugar but also a decent amount of fiber is fine? Like vegetables, certain fruit and whole grain bread?

What should the fiber:sugar ratio be? Broccoli has 1.7g sugar and 2.6 fiber per 100g. Bananas have 12g sugar and 2.6g of fiber. I guess you should avoid food that goes below 1:1?

Cozumel 8 ago 2 replies      
Can anyone recommend a 'healthy' alternative to sugar? Primarily for sweetening Coffee.
AWildDHHAppears 10 ago 0 replies      
This bad advice may have directly contributed to the deaths of millions of people.
tomjen3 11 ago 1 reply      
I am honestly mostly scared by how cheaply those scientists were brought. I mean 50 grand?
AdmiralAsshat 11 ago 0 replies      
We're going to need another Surgeon General's warning, it seems.
caub 4 ago 0 replies      
how to fat industry shifted blame to sugar in return
Ericson2314 6 ago 0 replies      
I'm American and sugar doesn't taste good; I must be very lucky.
gist 11 ago 0 replies      
This was a great documentary on the subject, I saw it on Netflix I don't know if it's there anymore though:



partycoder 9 ago 0 replies      
First of all, there is no daily recommended value on sugar because that value is 0.

Then, a can of regular Coca-Cola (and most sodas) has about 38g of sugar. 38g doesn't sound like a lot, but would you take a cup of coffee with 8 teaspoons of sugar? That's what 38g is, 8 teaspoons, for a single can. Many kids drink multiple cans a day, with sugary cereals, pancakes with syrup, snacks, and adding all that up they end up consuming over 100g and end up severe obesity and diabetes.

cloudjacker 11 ago 0 replies      
Well that escalated quickly

Only saw the documentaries a few months ago. I'm glad this awareness has pushed for deeper more reputable investigation.

smnplk 7 ago 2 replies      
you sir are my hero.
aiyodev 8 ago 0 replies      
The scientific consensus is that weight gain is caused by saturated fat. Anybody who disagrees with the consensus is anti-science and a fat-denier. Any scientists who disagree with the consensus must have being paid off by Big Fat.

Even Crisco agrees that their products are the cause of Global Fattening and is working on alternatives to oil. Companies that produce saturated fat products should have to buy Fat Credits and fat skeptics should be thrown in prison!

But what about all the actual scientific evidence that a low-carbohydrate high-saturated fat diet results in weight loss? Well, I never said that weight gain causes weight gain or a Global Fattening. What I said was it causes "Body Change".

Body Change means eating saturated fat will make you become deathly skinny or morbidly obese or grow a tail or get cancer or contract herpes or go blind or a million other medical problems.

Basically, if something is wrong with your body, it's because of Body Change. Child falls off jungle gym and breaks its leg: Body Change. Man dies of heart attack in China: Body Change. Conjoined twins: Body Change. Down's Syndrome: Body Change. Hot flashes: Body Change. Wet dream: Body Change. Body change hides under your bed at night waiting to murder you with saturated fats.

Some people say that Body Change is idiotic and unscientific! I guess they believe bodies never change. What morons!


fastoptimizer 11 ago 6 replies      
When in fact nothing can be blamed but our overconsumption of almost everything but vegetables and fruits.

I eat about 70% from my calories in carbs (some are refined), but it's just 2500kcal calories per day. I'm pretty sure the fact that average US citizen eats 3500kcal daily has more to do with anything than what particular ingredient one eats.

edit: some irrational unscientific and anegdotal statements require me to remove myself from discussion. thanks.. for the downvotes, I'm outta here boys! :wink:

Costa Rica has gone 76 days using 100% renewable electricity vox.com
570 points by denzil_correa  3 ago   349 comments top 15
jfaucett 3 ago 24 replies      
Notice this is because 80% of the energy obtained was from Hydroelectric power, which is a great energy source because it is reliable - unlike wind and solar which in this case provided 7% and 0.01% respectively and are not reliable. It frustrates me that so many environmentalists are still against hydro because it alters ecosystems when nature itself is inherently violent, dangerous and in a constant state of flux. I sometimes think they reject the idea that the whole point of existence is human flourishing and happiness. The biggest real problem with Hydro in the context of human flourishing is ensuring that the dams are well-constructed and nature proof i.e. hold up against natural disasters because if they don't downstream settlements and human lives can be at risk.
JoeAltmaier 3 ago 5 replies      
" its per capita electricity consumption is about one-quarter of, say, France or Belgium."

Its in the bottom quartile worldwide I believe.

Also the recommendations for the USA are way off. The "only way" to reach this goal is apparently to build lots of wind and solar. No mention whatsoever of nuclear, which is by far the more practical solution. And far less ecologically damaging.

pnw_hazor 3 ago 2 replies      
Would never work in the US because hydropower is not considered renewable.

"But in general, hydropower is not even considered a renewable energy in most states or, for the most part, by the federal government. "


jbrun 3 ago 4 replies      
Quebec has gone about 50 years.
eggy 3 ago 1 reply      
Costa Rica also sits on the Ring of Fire like I do here in East Java, so geothermal is accessible there.

Costa Rica did not have to maintain a standing army to protect its borders thanks in large part to relying on treaties and understandings with the US. This frees up some of their GDP for R&D into sustainable energy.

I wonder what the demand for electricity is in Costa Rica today compared to when I was last there in 1993. I was going to buy land then, but I was a bit wary of new laws on foreign-owned properties. It would have cost me a lot to bribe/pay my way to getting power distributed to my land. I was going to use a generator and solar panels anyway. Many people kept guns to defend their property from bandits in my travels there back then. I'm sure it has changed a lot. Selva Verde was my first 'eco-tourist' experience, and I remember talking to some of the worker's there, and the owner's daughter. I am glad to see the business model took off. It's a beautiful country.

edpichler 3 ago 1 reply      
Very good, this is a great step, but just a thing to be remembered: hydroelectric energy is renewable, better than coal, oil, etc, but it still kills a lots of animals and flood great areas, disappearing with waterfalls and changing landscapes.
ChuckMcM 3 ago 0 replies      
Interesting to see people pick apart what constitutes renewable and base loads etc. It is an interesting milestone that some part of the planet can be lived in with electricity that is only from renewable sources. That's pretty neat, you can live there after civilization collapses (assuming you can displace whomever is already living there :-)

Its a huge boon for a nation state to reach the crossover point of 100% renewables. Then they can start to grow it from there. It is much harder for a nation-state to simply lose access to imported energy sources, then there is the whole rioting and anarchy until enough population dies off that the remaining start seeing the others as necessary for survival not a threat to it.

sickbeard 3 ago 1 reply      
Same story every month. Can't wait for the 100 day update
m_mueller 3 ago 0 replies      
If anyone is wondering about the worldwide big picture of where electricity is coming from: I made this map / spreadsheet:


fuddle 3 ago 0 replies      
In some places in Costa Rica the electricity can be sporadic, when it goes out people use petrol powered generators.
mbloom1915 3 ago 0 replies      
As great as this is and large step for other countries very soon, decarb can only be achieved through transport efforts. transport makes up over 1/3s of emissions so why residential/commercial consumption energy efficiency is great, it is a tiny fraction of achieving overarching goal
jefurii 3 ago 2 replies      
Feels like the article was written by a pro-renewable reporter and edited by an oil-company exec. "Yeah they did it but you should be discouraged instead of hopeful."
taneq 3 ago 3 replies      
Objection: Geothermal technically isn't renewable.
gjolund 3 ago 0 replies      
Every fucking day I see this posted. Can we just update when they aren't using 100% renewable energy again.
pritianka 3 ago 0 replies      
Nothing important to say here, except, I just LOVE Costa Rica!
ITT Technical Institutes Shuts Down bloomberg.com
486 points by jlas  6 ago   297 comments top 45
donatj 6 ago 6 replies      
I went to a similar for-profit school in Minnesota who also similarly shut down last year.

I still feel like they get a bad rap. Was it overpriced? Probably. Did I learn a ton and have small class sizes. Absolutely. The instructors had all previously worked in the industry, and knew their topics very well.

On top of all that, after graduation their persistent pestering of "how many places did you apply to this week?" (surely to help their numbers) had a lot to do with me actually getting a job. I didn't want to let the lady that called me weekly down. It took a lot of persistence and interviewing but I finally got my foot firmly in the door about 6 months after graduation.

I've been gainfully employed in the industry for ten years, I'm debt free, and I'm happy. I'm thankful for my time there.

aaronchall 6 ago 8 replies      
The dream: take students who are mostly unprepared to succeed at college and educate & prepare them for success in the real world.

The reality: most of these students will not realize a return on the investment of their time and acquisition of a ton of debt that they cannot discharge in bankruptcy. Many will fail to attend class, fail to take notes, fail to do homework, fail to learn, and will not complete - but because they have already sunk huge costs into the endeavor, will continue incurring more costs in spite of the writing on the wall.

The economics means that these schools are unsustainable. However, some people find success through these schools. How can we continue to serve these people?

Perhaps we could avoid throwing the baby out with the bathwater by creating more community colleges, allowing more people to enroll in affordable community colleges, complete milestones at their own pace, while providing more direct subsidies of tuition for the truly needy. I agree that we would benefit from more German-style apprenticeship programs as well. For all of their worker protections, they still have incredibly low youth unemployment.

joedissmeyer 6 ago 6 replies      
I am personaly happy to see the hammer come down on these for-profit universities. I too feel for the students as I was one of the Corinthian Colleges students a few years ago at Everest University through one of the Florida campuses. My degree program was the A.S. in Computer Information Sciences -- such a waste. Look up the job placement rates for that program in 2010, just insane.

Thankfully I too have been able to take advantage of the Department of Education relief. But I have to go through the process of the borrower defense to repayment. It continues to be a tough process but at least it some form of relief for me.

I hope former ITT students are able to find a quick resoluton. This type of school shutdown is not easy on anyone.

On another note, I wonder if this is the start of the 'higher-ed debt bubble' that has been predicted for quite some time now...

mikestew 6 ago 3 replies      
I'll preface this with my lack of any love for ITT, but there's a piece of the story that bothers me:"Last month, the feds demanded the company produce an additional $153 million in collateralnearly double its $78 million in cash on handto cover possible losses that the government might incur if the company were to suddenly fail."

Here's how that sounds to me: "Well, ITT technically hasn't done anything illegal. But we don't like them. How much cash do they have? Double that amount and tell them we need this much for 'collateral' or we shut them down."

Can anyone fill in the blanks that Bloomberg didn't? What basis does the government have to make such demands (as it appears to me) out of the blue? Why make such demands knowing going into it that it will become a self-fulfilling prophecy? (That last question is kind of rhetorical.)

aerhakr 6 ago 0 replies      
My wife had worked as a temporary at ITT here in Calfornia. It was the most degrading work I have ever seen. She was teaching English courses, and 98% of the kids plagiarized, not even trying to cover it up. When she gave failing grades to the papers, the students fought back and the director at her location told her she can't do that. She quit that week.
kayla210 6 ago 2 replies      
I really feel for all the students who are so close to graduating and not knowing if they'll have anything to show for it.. And their credits will most likely not transfer to another school because of the different accreditations.
tzs 6 ago 0 replies      
For IT degrees (bachelor and master) for those who cannot go to a "normal" college for four years, an option to consider is the online non-profit Western Governor's University [1]. It is especially interesting if you already know much of the material through work or self-study.

It was founded by several state governors about 20 years ago, and is accredited by The Northwest Commission on Colleges and Universities.

It's pricing is interesting: $2890 per six-month term, regardless of how many classes you take or credits you earn during that term. If you want to take a heavy load to earn the degree faster and save money, you can.

Each degree program has a particular list of skills that you have to demonstrate competency in to earn the degree. They offer, of course, all the necessary classes to learn those skills, but you are not required to take those classes--you are just required to demonstrate the skills. If you have already acquired some of these skills elsewhere, you can take the test or do the project that demonstrates it and that will count toward the degree.

For most of the IT degrees you also earn several widely recognized third-party IT certifications, at no extra cost. For example the IT bachelor's program in network administration includes these certifications: MSCA Windows Server, CompTIA Linux+, CompTIA A+, CompTIA Network+, CompTIA Security+, and CompTIA Project+.

(The offer more than IT, BTW. The also have bachelor and master programs in teaching, business, and health).

[1] https://en.wikipedia.org/wiki/Western_Governors_University

paulddraper 6 ago 1 reply      
This is an instructive lesson.

"Free education" they say. "It will solve problems" they say. "Education will be better" they say.

No, it won't. Free education -- or subsidized loans -- puts a disconnect between education and its cost.

If the person paying is not the person deciding, a poor decision will be made. It's just like how HSAs prompt people to think about what they're spending their money on.

ITT would not exist but for government spending. Sure, some will beat the dead horse of more regulation. But the real answer is STOP SUBSIDIZING. Stop subsidizing education, stop subsidizing mortgages, stop subsidizing GM, stop blowing decisions sideways by removing the universal language of cost from the discussion.

clarkmoody 6 ago 5 replies      
It looks like the main problem in this whole scheme is the government-funded student loan program. ITT was wrangling to get access that that loan money as a key to its operations. Failing to comply with the Dept of Ed's requirements caused them to go out of business, since they would no longer have a place at the public trough.

How many state schools and private colleges could survive without government largess? We've seen a massive increase in tuition costs, far beyond inflation in recent years. Such is the result of artificially boosting demand for college on the backs of the taxpayer.

As for forgiving ITT student loans, I say no. Students are responsible for their own loans and (bad) decisions. By that reasoning, shouldn't we just forgive all student debt for anyone who didn't get their dream job straight out of undergrad? What about those who don't finish school but still have loans? For everyone but the far left, these ideas are ludicrous. Let's not make the taxpayer suffer twice for the poor decisions of others.

peterhadlaw 6 ago 2 replies      
As an alum of IIT (Chicago)... This is extra, great news.
brightsize 6 ago 0 replies      
Related: "The Law School Scam. For-profit law schools are a capitalist dream of privatized profits and socialized losses. But for their debt-saddled, no-job-prospect graduates, they can be a nightmare." http://www.theatlantic.com/magazine/archive/2014/09/the-law-...
tickthokk 6 ago 3 replies      
As a 2005 graduate of ITT, I'm glad. This was a long time coming. Now if only I could get my loans refunded :p
jrs235 6 ago 2 replies      
What enabled this greed scheme to work? Government guaranteed loans. The schools and institutions need to have some of their own skin in the game.
at-fates-hands 6 ago 0 replies      
I live in Minneapolis and the City Pages did quite an expos on them back in 2015. It was pretty eye opening and gives a really good glimpse into their tactics:


dbg31415 6 ago 1 reply      
What disgusts me most about the for-profit schools -- not to come off as too much of a snob -- is that the money we the taxpayers put into their pockets would be better spent improving community colleges and state schools.

I get not everyone needs to go to an Ivy League school, but for vocational basics -- what people are going to these for-profit schools hoping to gain -- community college should be "good enough."

I'd look at Bellevue Community College as a great example of a strong vocational tech school. That should be a model others could strive for. When I was younger I learned a great deal in BCC classes -- knowledge that was immediately beneficial to my day job as a software developer.

In contrast, the classes at BCC were far more hands-on training than what I got at the school I eventually graduated from. Educationally, community college I feel was better... but certainly for connections and networking the "name-brand" schools pay off.

ramblenode 6 ago 1 reply      
> Students now enrolled at the company's technical schools will be able to cancel any federal student debt they incurred for their education if they decide against transferring their credits elsewhere... Taxpayers will record a loss on those debt cancellations.

This seems very unfair to taxpayers, who are essentially forced creditors. If the college reneges on its contract with students, then the students should seek to reclaim their losses through a class action lawsuit against ITT. The government shouldn't be covering losses on what were, arguably, bad investments.

spudlyo 6 ago 0 replies      
Have you ever worked with anything ... High tech?


I asked that once during an interview, and was met with blank stares. Haven't asked it since, but I feel like it could have been hilarious.

koolba 6 ago 1 reply      
Question for lawyers in the audience: If ITT is shut down because the "education" it was providing was complete shit and not recognized anywhere else, does that mean that the usual rules about education related personal debt surviving bankruptcy wouldn't apply?
Unbeliever69 6 ago 2 replies      
Unfortunately, ITT is just the visible tip of the iceberg. There are MANY more for-profit schools of the same ilk as ITT that will fleece the same archetype of education-seeker. This isn't over by a long-shot. These schools are everywhere and they are probably chomping-at-the-bit to get their mits on displaced ITT students and all others that are susceptible to the type of manipulative and deceptive marketing practices that ITT, and many other for-profit schools, use.
JoeAltmaier 6 ago 4 replies      
Next, go after the public colleges? Other than brand, do they do a better job? Spend more than 30% of income on actual educational expenses (like IIT does)? I doubt it.

{edit}Seems like US Universities are about 1:1 faculty vs staff. Up from 2:1 40 years ago.

WheelsAtLarge 4 ago 0 replies      
Yes ITT was a money grabbing parasite and I'm glad they are gone. But the glamorous 4 years schools aren't as great as they set themselves to be.

Many students come out of the great schools owing thousands and having a very hard time getting a job.

This is not new. The fact is that universities weren't created for job training. Their job was to expand your knowledge. That's why you can get a degree in Greek mythology or Latin or whatever.

It was really a way for rich people to spend their time in something constructive. Somewhere the idea of a university and job training came together but universities aren't very good at job training so that's the big problem. We as a society don't have a great way to train the massed for society's jobs.

Community college focus on getting you to a four year college but they need to do a better job at job training.

For profit schools have tried but they focus on profits and lose sight of the students.

We blame the institutions but students also need to take responsibility. If you can't take the time learn don't expect to get a job where someone needs to have a productive employee to keep the business going.

Also the K-12 schools need to do something to fix the problem. How is it that a student goes through 13 years of school and not learn to be a productive employee? That the real shame.Yet we put the blame elsewhere.

Politicians love to argue the effects of same sex bathrooms but they aren't willing to take on why schools are failing society.

We need to fix that.

arikrak 6 ago 0 replies      
Instead of the government trying to protect their loans and end up doing the opposite, maybe the government shouldn't be in the business of lending money to individuals? Government + lending + a supposed social benefit = disaster. First it was with helping people own homes, and now it's with helping people go to college. It sounds nice, but by lending money the government can just hide the true cost of what their doing. (Meanwhile government loans for housing have gotten worse: http://www.economist.com/news/leaders/21705317-americas-hous...)
dccoolgai 6 ago 0 replies      
"It will now likely rest on other parties to understand these reprehensible actions and to take action to attempt to prevent this from happening again."


chris_wot 6 ago 3 replies      
So to mitigate the possible effects of the colleges all suddenly shutting down they were told to put up a huge amount of collateral, which caused them to all suddenly shut down?

That's quite a mitigation strategy the government has going on there.

JulianMorrison 6 ago 1 reply      
Every student's loans to these slimy operators should be simply struck off with no penalty.
KevinEldon 6 ago 0 replies      
Stop federally funding education. In the US we have 50 different opportunities to learn about how to create the best education system: all of these systems could learn from each other. When we allow federal funding of education we get much less diversity and innovation; we promote a mono-culture.
walrus01 6 ago 0 replies      
The entire concept of a corporate death penalty (in this case enforced by ITT no longer being eligible for federal student loans) is something that is not implemented nearly as frequently as it should be.
xenadu02 6 ago 2 replies      
Federal student loans shouldn't be available to any non-accredited institution. If your credit hours won't transfer then it isn't a real College or University.
Geekette 6 ago 0 replies      
Too little, too late; ITT and a whole legion of similar schools should have been erased long ago, given glaring evidence of their mismanagment, often misleading/fraudulent advertising, almost no value delivered (e.g. dismal grad job stats), waste of public money, etc. The pressing question is how long before ITT re-opens under a new name; I highly doubt it'll just go away.
sytelus 6 ago 1 reply      
There is a startup opportunity here. It actually shouldn't take a lot of resources for this kind of technical education. Get a community hall, few experienced volunteers and have them teach skills for free to anyone who is interested. Students just promise to pay portion of their income if and when they get job. A startup gets little cut for coordinating whole thing.
peter303 6 ago 0 replies      
Will coding academies go down the same route as for profit colleges? Right now they are the darling of politicians who think they could solve the country's unemployment and tech shortage problems. But once your put Wall Street in charge and scale them up handle large numbers of students, I wonder if they will become the next ITT.
emeraldd 6 ago 0 replies      
That's less than two weeks from when the Title IV "death penalty" (Assuming I have my titles right, it's been a while) was assessed. (https://news.ycombinator.com/item?id=12361737 )
Eric_WVGG 6 ago 0 replies      
bad news for late night cable ad revenue
coredog64 6 ago 0 replies      
Fingers crossed that UoP is next...
zomg 6 ago 0 replies      
people are so quick to make this a "for-profit" college issue, when it's not.

they shut down because the u.s. department of education banned them from enrolling new students who use federal financial aid.

what do you think would happen to "not for-profit" colleges if the u.s. department of education did the same to them? i'd argue it's the "not for-profit" schools who are driving tuition prices up because the government won't stop loaning money to anyone with a pulse.

dry up that loan money and watch prices fall from the sky.

__pid_t 6 ago 0 replies      
How's Devry? I worked with a person that got a degree from there. It's for-profit too. I can't imagine it's any better than ITT with it's vendor lock in.
tomohawk 6 ago 0 replies      
They should have spent the $18 million.


EDIT: Not sure what the downvotes are for. ITT gets shutdown, but Laureate does the same thing, but even more so and gets a pass. The only difference appears to be these kinds of payoffs to politicos.

gigatexal 6 ago 0 replies      
Yes! What a shameful institution.
ryanlm 6 ago 0 replies      
Not being able to transfer credits seems to be a good example of Vendor Lock-In.
colindean 6 ago 0 replies      
I was an IT instructor at one for two quarters in the late 2000s. AMAA.
matchagaucho 6 ago 0 replies      
It's one thing for a school to recruit students that aren't prepared for the curriculum, and subsequent debt.

But it's quite another problem if the school loses their accreditation and is unable to deliver a quality education.

whorleater 6 ago 0 replies      
Thank god. Next on the menu: University of Phoenix please.
rufius 6 ago 0 replies      
jhylau 6 ago 0 replies      
thank god
loco5niner 6 ago 0 replies      
Multi-process Firefox brings 400-700% improvement in responsiveness techcrunch.com
564 points by bpierre  6 ago   336 comments top 29
rsp1984 6 ago 8 replies      
We can learn from the competition, said Dotzler. The way they implemented multi-process is RAM-intensive, it can get out of hand. We are learning from them and building an architecture that doesnt eat all your RAM.

That's the money quote here. I've been waiting for this for a long time actually. Every browser I've tried except Firefox just basically eats all my RAM and other app performance (e.g. compiling stuff) goes down the toilet.

Then on the other hand FF has not been so snappy and responsive traditionally. So responsive + soft on RAM is the combination I've really been waiting for. Let's hope they can deliver.

nl 6 ago 18 replies      
I switched to Firefox from Chrome about 12 months ago. It isn't as good as Chrome, but I was trying to reduce my Google dependencies.

It has been mostly fine (except for an annoying OS-X multi-screen bug where it screws up the sizing).

I was really looking forward to this feature to help close the gap on Chrome performance.

Until August (I think Firefox 48.x), when it became unusable on any site with... something. I'm not entirely sure what triggers it- I don't think it is just video alone. Something make the entire browser lock up entirely for minutes, and sometimes it even runs out of memory and I have to kill it via the OS.

No add-ins (except for Firebug).

Frustratingly, I can't replicate it well enough to be a useful bug report.

I'm this close to switching back. Muscle memory and shortcuts to Firefox is the only thing stopping me.

So.. this will be great, but please make it a workable browser.

uuoc 6 ago 3 replies      
This should come as no surprise. It has always been an epic architectural mistake to use the same single non-reentrant Javascript engine to both render the UI and run JS for webpages in Firefox. This change will finally undo that huge mistake made so very long ago.
gnicholas 6 ago 2 replies      
Instructions for enabling this feature (via about:config) are provided in the author's prior article on the topic: https://techcrunch.com/2016/06/10/mozillas-multi-process-arc...
sambe 6 ago 0 replies      
Every odd browser performance topic is dominated by people claiming Firefox has been faster and more scalable than Chrome for years. Every even one is dominated by people claiming the opposite.

This thread seems to be the latter, my experience is the former. If you see bad performance/memory usage with a small number of tabs, are you sure that it's not due to bad plugins?

I think about:memory and about:performance could be helpful. I seem to recall they used to have some reporting on known problem plugins (perhaps as part of https://www.mozilla.org/en-GB/plugincheck/).

danblick 6 ago 4 replies      
Does anybody know more about how Mozilla manages experiments? I'd always assumed that all users downloaded an identical binary and got the same behavior. How do they assign 10% of their users to an experimental group?

Is it possible that two users will see different functionality when they are both using the same OS and release, say Firefox from the latest version of Ubuntu?

drzaiusapelord 6 ago 5 replies      
Its incredible multi-process took this long. Just goes to show you that your architecture decisions last a long time and are often difficult to change. Chrome had this from day one and never had a big and old codebase to worry about. Yet it took Firefox many years to get multi-process going and my understanding is that its much more limited and simpler than what Chrome or Edge do.

I'm also a little surprised there hasn't been an attempt to launch a completely new Firefox from the ground up. Regardless of what they're doing right now, its still a legacy code monster and much more laggy than the competition. Maybe this is Servo's ultimate purpose, but every Firefox advance is welcomed but always feels like another layer of lipstick on this pig.

Disclaimer: I use Firefox as my main 'non-work' browser several hours a day. Its good, but its very obvious when I'm not in Chrome from a performance/stability perspective.

Animats 6 ago 0 replies      
At last, you'll be able to view other pages while Facebook's Javascript is in an infinite loop.

With thousands of MIPS and a gigabyte of memory on the job, it had better be responsive. It's pathetic how much compute power it takes to run a browser. Even when the pages aren't doing anything interesting. It's not like they're running a 3D game or something.

corford 6 ago 2 replies      
I've got 732 tabs open at the moment and performance is still fine. The upper limit for my machine seems to be about 745 ish - much beyond that and FF runs out of video memory or something (new tabs render sites half black).
faragon 6 ago 4 replies      
Why? Except because of memory allocation serialization impact, there is no reason for a multithreaded process being slower than multiprocess. And if that's the cause, it could be solved using multiple heaps.
Lagged2Death 6 ago 1 reply      
I'm surprised by the responsiveness claims because my ancient Windows PC runs FF superbly. I think Win10+FF is already more responsive now than it has ever been.

I am also using Ghostery, however, with virtually everything blocked. It wasn't my intent to block ads, but that's mostly how it works out.

Zekio 6 ago 2 replies      
The speed is great as long as youtube doesn't autoplay a new video which freezes the whole browser for me until it is done loading.
rl3 6 ago 0 replies      
This will probably have significant implications for web worker behavior.

If memory serves, workers are unable to directly communicate with each other in Firefox when the UI thread is blocked, because message handling runs on the same process as the UI thread. Chrome doesn't have that limitation since it's already a multi-process architecture.

nchelluri 6 ago 1 reply      
Ah, so because I use addons I might not be seeing these benefits for some time? Good to know.

Chrome is right now way faster for me, but I prefer using FF so I am in the Mozilla camp right now. Eager to see this rolled out. Early versions of e10s were very fragile and not so usable for me, so I switched it off.

wcummings 6 ago 0 replies      
I've been running Firefox Developer Edition (which has multiprocess) for a few weeks now, it's noticeably faster for most sites.
Double_Cast 6 ago 0 replies      
I use both FF and Chrome. Chrome is more heavy-duty, so I use it for Dedicated Browsing. I've set it such that when something calls me away and I close Chrome, the tabs will reopen so I can continue where I left off. But sometimes I'll be doing something in another program and need to look up something quickly. In such cases, I don't wanna wait while Chrome reopens 11 tabs so I'll use FF instead. My FF-tabs aren't saved between sessions, so I only see a single fresh tab when I open it.
eberkund 6 ago 0 replies      
You can install v51 nightlies from here: https://nightly.mozilla.org/
matt_wulfeck 6 ago 2 replies      
I don't know. "Eating up all my ram" seems perfectly acceptable to me at first glance. I purchase ram and use it in my computer for expressly this purpose: to improve the responsiveness and snappiness of programs.

Where do you draw the line at what's acceptable use of ram and what's not? I have 32G on my desktop, is it unacceptable that chrome is using 8G?

zobzu 6 ago 0 replies      
Ive been testing Firefox e10s as in multiprocess Firefox for months now (in Nightly, and even before that).

At some point it became very usable and it still is today.HOWEVER while the interface is, yes, much more responsive, it is also NOTICEABLY slower.

I ended up reverting recently and I'm using single process Firefox right now. Its fast even thus from time to time the UI may block if there's heavy stuff going on.

Whatever makes e10s slow they gotta fix it... I suspect there's a lot of synchronization code.

malnourish 6 ago 1 reply      
Is there a list of commonly used extensions that are (in)compatible?
Zpalmtree 6 ago 0 replies      
I hope this works out well, I often see my firefox freeze due to heavy extensions, and would much prefer if it just froze one tab. For me, higher ram usage wouldn't bother me if it meant no freezing, but I imagine it does matter to most of the audience, and it's too much effort to develop two feature sets.
Hydraulix989 6 ago 0 replies      
Is this different than multithreaded? What are the benefits? Is it really just about isolation/sandboxing?

Why so much RAM? I thought the OS could share pages across processes...

AstralStorm 6 ago 1 reply      
How much extra memory is now used by it? All this improvement is meaningless if it hits swap on a typical machine.
zyngaro 6 ago 0 replies      
On which OS? On OSX I almost gave up on ff because it frequently freezes for no apparent reason.
spynxic 6 ago 0 replies      
Wonder if Graal.JS could offer any improvements to the browser
dschiptsov 6 ago 0 replies      
So, finally, some emerging consensus among packers that pthreads is a brain-dead concept, and thousands of its advocates are just narcissistic idiots, loving to hear their voices?
shmerl 6 ago 1 reply      
A pity it's now practically useless, since many add-ons need modification to keep electrolysis enabled. In a year or so things will be better I hope.
Kenji 6 ago 0 replies      
Does that mean my website will now fit on a 700% narrower screen?
midnitewarrior 6 ago 1 reply      
Why is there still a browser capable of having its performance improve by 400-700%? This browser is a decade old. It is clearly the CPU and RAM hog everyone has said its been.
I am a fast webpage varvy.com
609 points by capocannoniere  5 ago   278 comments top 72
jlmorton 5 ago 14 replies      
I hate to be negative, but what really is the point of this? That a simple webpage without any content can be fast? Of course it can.

Is it desirable to inline your CSS, "like a boss?" Maybe if you have one single web page. What if you have dynamic content and your users intend to browse more than one page? With externalized CSS, that is all cached.

Same with images. If I'm building a web application, I certainly do not want inlined images. I want those on a CDN, cached, and I want the page to load before the images.

Not only is this not particularly useful advice, it's bad advice.

zackbloom 5 ago 7 replies      
Just to point out, there's no particular reason to host a page like this on a VPS at all. You could just throw it on S3. Even better, you could put it behind a CDN like Cloudfront and the total cost would be a dollar or two a month, not $25+ and it would be significantly faster.
neoCrimeLabs 5 ago 4 replies      
> "I am not on a shared host, I am hosted on a VPS"

Hate to break it to you, but your virtual private server (VPS) is likely sharing a bare-metal server with other VPS. ;-)

Also, you can look into content delivery networks (aka CDN), which will most likely deliver this page faster to clients than your VPS especially when you consider your VPS is in Dallas and CDN's have nodes located around the world.

bobfunk 5 ago 5 replies      
Not that wickedly fast unless you're really near Dallas where the server is:


Hosting on a single VPS is never gonna be very fast globally no matter what you pay your hosting. In fact our free plan on netlify would make this a whole lot faster...

begriffs 5 ago 3 replies      
OP has certainly nailed Hacker News psychology. My old coworker called the technique "inferiority porn." Titles like "the secretly terrible developer" or the closing statement of this particular article: "Go away from me, I am too far beyond your ability to comprehend."

As many people have pointed out there are faster methods of static hosting through a CDN, and many of the techniques of this site are inapplicable for larger sites. But A+ on the marketing.

nine_k 5 ago 0 replies      
I make my personal pages fast this way since last century. Probably a huge amount of people did the same. It's pretty obvious.

When you need fancy graphics (a static photo album), things become less easy: you e.g. may want to preload prev / next images in your album to make navigation feel fast.

Things become really tricky when you want interactivity, and in many cases users just expect interactivity from a certain page. But client-side JS is a whole another kettle of fish.

When things become ugly is when you want to extract some money from page's popularity. You need to add trackers for statistics, ad networks' code to display the ads, and complicate the layout to make room for the ads, placing them somehow inobtrusively but prominently. This is going to be slow at worst, resource-hungry at best.

(Corollary from the above: subscription is more battery-friendly than an ad-infested freebie.)

userbinator 5 ago 5 replies      
A good sequel to http://motherfuckingwebsite.com/ , which is probably too understyled for most people.
ksubedi 5 ago 4 replies      
Took me almost 30 seconds to load, maybe because the server is being hammered by HN traffic right now? Also like others here were saying, using a CDN would definitely help with the initial latency.
paulpauper 5 ago 2 replies      
looks like this whole thing is a scheme to promote his webhsting affiliate link: http://www.knownhost.com/affiliate/idevaffiliate.php?id=1136...

The fastest and most reliable hosting is, by far, based on my own experience is amazon's e2 cloud and S3 bucket services.

quinndupont 5 ago 14 replies      
Is this image inlining thing something new? Am I reading it correctly that the images are encoded in base64 and delivered as html? Surely this is a bad idea... no?
leesalminen 5 ago 4 replies      
Ehh, I just got 10.91s load time in Chrome 53 from Colorado, USA.

Image of Chrome Dev Tools: https://reportcards.scdn3.secure.raxcdn.com/assets/uploads/f...

As an aside, does HTTP/2 provide any benefit for a single HTML file with no external assets?

pilif 4 ago 0 replies      
> my hard drives are SSD

Of course that's entirely irrelevant as the page completely fits into the ram of the server (or even the CPUs cache for that matter)

usaphp 5 ago 3 replies      
> "My images are inlined into the HTML using the base64 image tool, so there is no need for the browser to go looking for some image linked to as an external file."

This does not work in most cases when you use big images.From StackOverflow answer [1]: "It's only useful for very tiny images. Base64 encoded files are larger than the original. The advantage lies in not having to open another connection and make a HTTP request to the server for the image. This benefit is lost very quickly so there's only an advantage for large numbers of very tiny individual images. "

[1] - http://stackoverflow.com/questions/11736159/advantages-and-d...

INTPenis 4 ago 0 replies      
A VPS is shared hosting to me, it's just an instance on a shared system. Shared hosting used to mean a folder on a shared web server but I consider sharing resources in a hypervisor equally shared. ;)

If they truly wanted speed through control of resources they would have used bare metal.

But yeah, the website is easy to optimize when it's simple, the hard part, often outside of your control, is DNS and actual connection handling. Many have already mentioned CDN so there's that.

But you also don't know what kind of firewalls are being used, or switches, or whatever else may impact your site. Why not just do what others have suggested and put it all in the cloud so that Amazon can worry about balancing your load.

vonseel 5 ago 0 replies      
Cool... Unfortunately in practice it's easy to find a list of best practices, much harder to implement in a scalable and durable manner on any project of sufficient size, especially if working with a legacy codebase.
zodvik 5 ago 2 replies      
Dlang forum (with dynamic content) is insanely fast!https://forum.dlang.org/group/general
pacnw 4 ago 1 reply      
Ok I'll bite as this is near and dear to my heart. Instead of showing me a fast webpage with a minimal content, tell me how to make my tons of css and js load fast! That's a real problem.I deliver web apps, and interactivity is a must.

IMO, the real problem with the web is the horrendous design choices and delivery of very popular news and daily reading sites (ahem cnn) where subsequent loads of ads and videos start shifting the page up and down even when you have started reading something. Let's address that problem first!

josephjrobison 5 ago 1 reply      
Pretty good at 97/100 on Google's PageSpeed Insights - https://developers.google.com/speed/pagespeed/insights/?url=...
cyberferret 5 ago 0 replies      
Interesting exercise, in an age where web pages are now bigger than most business applications I used to use in the early days of DOS/Windows.

Note: Just checked, and even a simple Medium blog post page won't fit on one those old 3.5" floppy disks..

EDIT: To stay on topic - the OP's page loaded instantly for me here in outback Australia...

smoyer 5 ago 1 reply      
"Look amazing on any device" ... The right edge of your text is coiled on my phone (not so amazing).
ivanhoe 5 ago 0 replies      
For speed optimization it's really important to always fine-tune for you particular use case and apply some common sense. For instance, inlining everything as suggested here is faster only if you expect visitors to open just that one page and bounce away, so browser caching is not helpful. Consequently, it's a very good tip for e.g. landing pages, but it makes no sense at all to serve pages that way to your logged-in users.
silverwind 5 ago 1 reply      
Few more possible optimizations:

- Brotli instead of Gzip. Likely saves around 10% size.

- Minify everything, including HTML. Could save around 3% size on that page.

nathancahill 5 ago 0 replies      
Submit to 10k Apart: https://a-k-apart.com/
HugoDaniel 4 ago 1 reply      
Inline all your CSS and you are forcing all your users a full reload whenever you need to change/add something.

This can be tricky if your page grows in complexity/size and you need to change something.

Please, when is more appropriate don't inline your CSS and prefer to take advantage of cache.

clessg 5 ago 1 reply      
How much does HTTP/2 mitigate the need for such techniques, if at all?
brainless 4 ago 0 replies      
Honestly? I am surprised to see this page with such high vote on the first page. If you really wanted a fast "static" page, you would put it on a CDN. All you wanted to do is put a marketing link in your last paragraph.
matt_wulfeck 5 ago 2 replies      
I think it feels fast because it loads at once, but I'm actually not getting very impressive results programmatically if you measure how long the entire TCP transaction takes (which is what I consider page loading):

 # Both DNS records are cached before request >>> print requests.get('https://varvy.com/pagespeed/wicked-fast.html').elapsed.microseconds 226515 >>> print requests.get('http://www.google.com').elapsed.microseconds 92027
Even google.com (92 ms) is about 250% faster than OP (226 ms) to establish connection, read all of the data, and close.

halayli 5 ago 0 replies      
Your page can be very fast and uses minimal resources and is hosted in a good place. But you always gotta watch out for proximity to user, time to first byte and dns resolution time. Perceived speed is highly affected by those.

It took 2 seconds to load the page on a fresh ec2 box:

 time_namelookup: 0.061 time_connect: 0.100 time_appconnect: 0.223 time_pretransfer: 0.223 time_redirect: 0.000 time_starttransfer: 1.935 ---------- time_total: 2.066

mashedcode 4 ago 0 replies      
You can do much better!What's about html-muncher for css class minification?

Those png are not fully optimized and an SVG would probably even be smaller too and even if it isn't in the case of the orange one it would have could be compressed much better.

Making use of data: urls might look good on first visit but honestly with HTTP/2 just push in the resources and externalize them.

Because seriously cache for 300 seconds? How about offline support anyways? It's 2016.

Furthermore where's my beloved Brotli support?

By the what's about WebP support? Ok TBH if the PNG would be properly optimized WebP would actually not beat the file size but hey: "It isn't"

So even though it's only this tiny static page there's still so much wrong with it. Please improve!By the way what's about QUIC?

bennettfeely 5 ago 0 replies      
Probably wouldn't make much of a difference, but there is still room for performance improvement by minifying the HTML page.
jschwartzi 5 ago 0 replies      
Yes you are. You're so fast I don't even see you refresh.
exabrial 5 ago 1 reply      
"No Javascript"


DigitalSea 5 ago 1 reply      
Easy to make a website fast when it has nothing on it. In the real world a site isn't this light. It has images, analytic scripts, stylesheets, fonts, Javascript (jQuery at the least). Using a combination of a CDN and realistic caching, I can make a fast website as well.
sigi45 4 ago 0 replies      
Simple text, few links to 'tipps', a little bit of base64 images without any deeper knowledge. For example there was a website which showed the impact of base64 images just a few weeks ago (when i remember correctly)

But it has a referral link.

Thats probably the point of this page.

honkhonkpants 5 ago 3 replies      
The bit about being hosted on SSDs is silly. I could host that site in unused registers of my CPU.
heavymark 5 ago 0 replies      
This is odd. Clearly anyone can make a lighting fast page by making a single page since then you can have css inlined versus needing to link to css style sheets with multiple pages, and of course not having javascript would make it faster, but thats a requirement for most all typical sites these days, and loading images that way is nice for hackers but not for real people using cms's by common people and clients. Also paying $25-35 for hosting is not very bright since you can get a $5 digital ocean server ssd, not shared, that would load this particular page just as fast if not faster.
spion 4 ago 0 replies      
I can't wait for half of this advice to become obsolete with HTTP2
jayess 5 ago 1 reply      
His affiliate link for VPS service has its cheapest option priced at $25 a month. You can get a nice little VPS for static hosting on SSD from digital ocean for $5 a month. $6 a month with backup.
fsiefken 5 ago 1 reply      
What an arrogance, the page is done with me? I done with the page yet. I can get the same page much faster by putting the png in an inline svg, strip the source of unnecessary whitespace and returns, serve brotli (or sdhc compressed pages) with firefox, chrome and opera dynamically... or even just do the decompression inline with javascript. Might save another 20% https://github.com/cscott/compressjs
baristaGeek 5 ago 1 reply      
I can see in the source code that you're expressing all dimensions in terms of ems and %s. A technology such as Bootstrap will always be the way to go; however, could you tell us a little bit more about how you did this? How did you ensure that it looks good not only on your screen but on any screen?

I know people are saying it has some errors on certain mobile devices, but that's still some pretty good job manipulating CSS properties.

calebgilbert 5 ago 0 replies      
The whole hosting issue seems to open a can of worm, at least if this comment stream is any indication. I think it probably would have been better if they stated something more along the lines of, 'Choose (and likely expect to pay) for some sort of superior hosting solution which will prioritize allocating resources to your site(s)'.

The general point could be made without leaving so much room for everyone to argue over specifics.

natmaster 5 ago 0 replies      
A lot of this stuff is outdated now: https://news.ycombinator.com/item?id=12448539

For instance, delivery one giant JS/CSS file is now bad because it is harder to cache, since HTTP/2 removes the overhead of multiple requests there is no downside for many files.

traviswingo 5 ago 1 reply      
This took almost 10 seconds to load for me...
kazinator 5 ago 0 replies      
The best "Shift+Reload" refresh I've managed to get out of this page from where I'm sitting, in Firefox 48.0.x, according to its Network Console, is around 360 ms. It doesn't beat this HN discussion page by a whole lot, and this has actual content, which is dynamic.
disruptalot 5 ago 0 replies      
Interestingly, Google has been going after this with AMP (accelerated mobile pages):https://www.ampproject.org/

It enforces a set of rules to accelerate web pages. These rules can be used to validate your pages.

outworlder 5 ago 0 replies      
Well, many of these points make sense.

If I'm doing a single page application, surely I'll have infrastructure in place already to compile, minify and do whatever I need to. So I could just serve the monolithic page and be done with it. Much like desktop applications used to do.

bobabobabob 5 ago 0 replies      
A couple of problems rendering on iPhone 6s



cm3 5 ago 0 replies      
If it's really all static, you can bundle it into a static Mirage unikernel image with https://github.com/mirage/mirage-seal
gravypod 5 ago 2 replies      
I've always wanted to play with putting /var/www into a ramdisk for PHP/html stuff. Would be much faster loading since it's all just text in the end of the day. Completely cut out the bottleneck of SSd/HDD
jrmacmillan 3 ago 0 replies      
How dare HN spread this kind of speed-shaming hate slander! ;)

We need to see the bloaty-positive alternative, not all websites have to be Google models.

adrianpike 5 ago 0 replies      
2.43s TTFB for me - nice and fast once that happened, but that TTFB is a killer.
codygman 5 ago 0 replies      
Maybe a lot of people are hitting it, but this webpage loaded slowly for me.
philip1209 5 ago 1 reply      
I'm curious - would this page see any speed improvement with HTTP2? I ask because the new protocol seems optimized for the exact opposite of this - many asynchronous fetches.
pikzel 4 ago 0 replies      
Loaded in about 15-20 seconds for me. Even if you think medium.com is slow, they can handle the sudden extra load that your site couldn't.
idlewords 5 ago 1 reply      
I was a fast webpage.
padmabushan 4 ago 0 replies      
By the site's own admission, this page's visible content not prioritized.I would have knelt before it if not for that flaw!!
xiaoma 4 ago 0 replies      
It took me several seconds to load (compared to about 1-1.5 for HN)... this page needs better hosting for Asian users.
mxuribe 4 ago 0 replies      
Ego aside, this kind of site (and associated commentary on the suggested tactics) i feel is helpful.
smegel 5 ago 1 reply      
> I make no external calls, everything needed to load this page is contained in the HTML.

Wont that make your webpage load slower?

edpichler 5 ago 0 replies      
All being on the html, and doing less external css improve speed? How much? Is it worthwhile?
jordache 5 ago 0 replies      
This simple webpage was barely faster than hacker news' list view...
boubiyeah 4 ago 0 replies      
Well, not including any javascript was one massive shortcut :)
debacle 5 ago 0 replies      
In an ad-free Internet, many more pages would be this fast.


patmcguire 5 ago 0 replies      
Took about 15 seconds to load for me...
kovrik 5 ago 0 replies      
Really cool!

Almost instant even here in New Zealand!

caub 4 ago 0 replies      
what is that `.unit{display:inline-block;display:inline;zoom:1` (the stars..)
jlebrech 4 ago 0 replies      
now we need a framework that targets that standard. as very fast dumb client.
stretchwithme 4 ago 0 replies      
Some pages have big egos.
Cozumel 5 ago 0 replies      
Inline CSS shudder
GrumpyNl 4 ago 0 replies      
Its back to 1985
Facebook deletes Norway PM's post as 'napalm girl' row escalates theguardian.com
486 points by mmariani  3 ago   426 comments top 44
norea-armozel 3 ago 6 replies      
This is what you get out from centralizing your communications medium. Sure, we all can easily talk to each other but now you have to assume the host will find something you do or say a liability thus remove it as quickly as you post it. To say that Facebook shouldn't do this comes into conflict in protecting share holder value (which means also avoiding illegal content per local laws). So, you can't have it both ways. Either you have a corporate defend it's share holder value or you have it all nationalized and get NPR. I just wish people would realize that corporations aren't our friends, they're here to make a profit. And profit isn't always what's ethical. I think the better solution to the problem as it stands is to force people to start hosting their own content (which is why I support net neutrality and anti-metering laws). That way, you're in charge of your content and responsible for getting people to view it. We shouldn't have to return to the days of AOL (which we have largely done) to get eye balls. People still go to websites, so why depend on Facebook to distribute your content?
mabbo 3 ago 17 replies      
I'm torn.

Freedom of speech and freedom of expression mean that the government can't put you in prison or punish you for saying or believing what you do. Facebook aren't the government, they're a private entity and don't have to host anything they don't like- including hosting photos that they don't like. It's a walled garden, and it's their walled garden, and if you don't like it you're welcome to leave.

And on the other hand: it's the only garden. If your friends are in that garden, they can't share with you, interact with you, etc, without you also being inside. Facebook's created a 'with us or not with us' distinction that has a very sharp boundary. And it's worked- they've won the social network wars. A billion people are on it.

The question is, as the social network champions does Facebook have to have to public's interests in mind or just their own bottom line profit margin? As a public company, the shareholders will fire their leadership if they don't choose the bottom line. As the major social network of the world, the public will denounce them for actions like this.

RodgerTheGreat 3 ago 13 replies      
If you're a Facebook user and you are unhappy with the way the company strongarms, censors and manipulates its audience, the most effective way for you to express this dissatisfaction is to close your account, block social media bugs and encourage your friends and family to do the same.

Facebook doesn't care how you feel when you use their service; their bottom line simply depends on your contribution to the statistics they use to sell ads. Apathy, or even outrage, are perfectly acceptable provided you express it through channels they control and profit from.

As far as I'm concerned, as long as this conversation is couched in trying to appeal to Mark Zuckerberg's imagined sense of ethical responsibility it will lead nowhere.

jokoon 3 ago 2 replies      
Any centralized social network is subject to moderation because if it's centralized, it can be attacked, fined or shut down by a court. So facebook can't escape that rule and must decide what is acceptable or not and have to anticipate any flak they can get.

In the end, moderation is a gruesome job and nobody really wants to do it, and it will be subject to how moderators anticipate public perception, so it's a PR race.

So of course you will have those situations where facebook will make bad choices, but it doesn't only depends on their moderation team, it also depends on political correctness. That's why decentralized networks are better, because nobody is really responsible, and it can hardly be attacked.

You can decide to either have a politically correct website and get investments, or disagree with political correctness and be like 4chan.

It's not great, I'm sure people realize that, and that the internet will go back to decentralized systems.

planetjones 3 ago 1 reply      
Was the Norwegian Prime Minister's post removed because she posted the image again in that post ? This is a crucial question and not clear from the article. If Facebook censored only words then this is a much larger issue. If they censored the whole post (including photo) then while debatable this is Facebook's policy i.e. a blanket ban on such imagery, irrespective of history.

Edit: I don't find it clear journalism, but the fact is there:

Solberg was one of a string of Norwegian politicians who shared the iconic image after Facebook deleted a post from Tom Egeland

So the post was removed because it had the image, not because she had dared to criticize FB.

the_af 3 ago 0 replies      
This iconic picture was not only a Pulitzer Prize winner, but was also on the cover of the New York Times. Surely this will help the anonymous "Facebook spokeswoman" determine on which side it lies of the thin red line of "censor" / "do not censor"?
dazhbog 3 ago 0 replies      
Why doesn't fb just blur the content that users find disturbing like "Viewer discretion.., flagged by our users". Then you can click to view or adjust the sensitivity in your account settings.
kajecounterhack 3 ago 0 replies      
At Google certain images are considered EDSA (Educational, Documentary, Scientific or Artistic). I wonder if this would have been considered EDSA vs Facebook's decision to say it's against ToS.

That said, it totally makes sense that they have a consistent policy. Whether you find their overall abuse ToS objectionable should be the main consideration here. It's OK to me that they seem to have decided that imagery containing nude children should be hard-banned. It's a decision couched in the desire to protect children, not some heavy-handed censorship.

jondubois 3 ago 0 replies      
I think censoring the PM's complaint is a bad move by Facebook. Regarding censorship of the photo, I think it should be left to Norwegians to decide whether it's appropriate or not - I think different people might have different views on this.
wonks 3 ago 2 replies      
I feel like this is a good argument for taking another look at projects like Diaspora and Friendica Red
angelofm 3 ago 0 replies      
The article makes a reference about an open letter from the editor-in-chief - Espen Egil Hansen, the link return an internal error, you can read the open letter in the web.archive website https://web.archive.org/web/20160909061907/http://www.aftenp...
cannonpr 3 ago 0 replies      
I suspect a large part of this isn't so much an attempt by facebook to impose US cultural norms to the rest of the world, as much as an attempt to avoid financial burden by simply applying the ban stick as bluntly as possible.After all, being multicultural, providing good editing suitable for several countries acceptable norms, while trying to advance/modify them...Well that might be viewed as admirable work or cultural imperialism. The point is it's not work that they want to do, nor do I think is it work that they feel they can get paid for.
Raphmedia 3 ago 1 reply      
It is kind of scary to see how countries are powerless when it comes to Facebook. I know that this article and the whole discussion here is not about that but I get a eery feeling reading about it.
thr0waway1239 3 ago 0 replies      
If you want something from FB: its reach, you need to play by its rules, however arbitrary they may be. If you wish to change the laws of physics, go and get yourself your own planet. It is much easier in this case: just choose a different forum.

Having said that, this incident should teach Norwegians (and the countrymen of any country) a thing or two about where they stand on the totem pole of power.

Facebook > Every other country on the planet

Facebook is a country because it is acts as an independent sovereign state which is not answerable to anyone at this point. Apparently, it already makes up its own taxation laws[1]. I expect them to release their own flag, maybe a national anthem?

[1] http://www.forbes.com/sites/kellyphillipserb/2016/07/29/face...

But of the many truly troubling things I see with FB's policies - their alarming intrusiveness and ruthless exploitation of our need for being social, choosing its own censorship policy is not one of them, especially if it is consistent. I would rather see them made answerable to privacy violations.

samfisher83 3 ago 2 replies      
Maybe the censorship team was too young know the significance of the picture. I am guessing average Facebook employee is under 30. Probably younger than that. Vietnam war is over 40 years old, most American students learned about it and knew that picture, but I don't know how much Vietnam war is taught in other countries. It might have been a combination of age and where the person grew up that contributed to deleting the picture?
maxxxxx 3 ago 11 replies      
I always find it interesting that no level of violence is deemed inappropriate in the US but nudity has to be avoided at any cost.
thomasfl 3 ago 0 replies      
Let's create a walled garden that embraces facebook's walled garden. A new social network that displays your facebook timeline and other items.

BTW. I'm Norwegian.

tromp 3 ago 1 reply      
Facebook has reversed its stance and is reinstating posts featuring 1972's "The Terror of War" picture, according to


"Because of its status as an iconic image of historical importance, the value of permitting sharing outweighs the value of protecting the community by removal, so we have decided to reinstate the image on Facebook where we are aware it has been removed"

oneloop 3 ago 0 replies      
That moment when government officials start realising their biggest publishers are American companies.
cmdrfred 3 ago 0 replies      
This is a place where I do not agree with Facebook's decision but I agree they have a right to decide who and what can be on their platform. Freedom of speech does not give me the right to come into your home and say whatever I like without being asked to leave. I'm free to do so in the public park across the street though. Your property rights trump my free speech.
TrevorJ 3 ago 0 replies      
It's particularly troubling because facebook is primarily about communicating with your own friends and acquaintances. Censoring public content is troubling, but removing content that is private and only available to people who took the step to friend you on Facebook is really really crappy.
newscracker 3 ago 0 replies      
Facebook is very arbitrary in its censoring and account deactivation decisions. Many cases I have read about are instances where Facebook is in the wrong and does not provide users a way to get things resolved (perhaps these instances surface online more often or more prominently).

Every time I read about Facebook's decisions, I feel extremely frustrated and downright angry. Humans need an alternative to Facebook that's not as evil and can get better traction (no, this does not mean everyone closing their FB accounts and switching to email or text messaging). I'm waiting for that to happen.

dmckeon 3 ago 0 replies      
Posters may find it informative to review Tom Egeland'sresponse (in Norwegian, so a translation site may be helpful).


Is the collection of the other 6 or 7 photos still available? - my google-fu has not found them.

EdSharkey 3 ago 1 reply      
It would be neat to have a decentralized social network simply to avoid the editorial demands of the walled garden. I think we'd have a lot more unsavory content making its way to people's eyes though. There'd need to be more sophisticated ways of filtering information than just "unfriend", I suppose. And people would need to have tougher skins for it to work.
codingmyway 3 ago 0 replies      
I can accept why they need to draw a line on naked child images and be done with it. Like most silicon valley companies they want everything automating with as little human customer service as possible.

However if they aren't going to do that job of editorial then they need to stop trying to be a news source while abdicating any responsibility that entails by saying they are a tech company.

cx1000 3 ago 0 replies      
Ironically, Facebook is not censoring the news articles covering this story. The unedited photo is now shown all over Facebook.
niccaluim 3 ago 0 replies      
On the subject of whether speech protections apply to the government only: it's all well and good to apply a legal analysis to free speech issues, but if you're looking to the law to tell you what's right and wrong, you're trying to buy milk at a hardware store.
golemotron 3 ago 1 reply      
Facebook needs to be broken up like Ma Bell was. It's too big to manage well and network effects are preventing alternatives from gaining ground. The world needs more diversity in policy than it has with this mediated communications juggernaut.
return0 3 ago 0 replies      
The bigger problem is that the new media is US controlled,and youre going to have some culture conflicts. Maybe legislative action could force facebook to federate the users content
pi-rat 3 ago 1 reply      
The prime minister's original post:http://snpy.in/5Nv92c
aikah 3 ago 0 replies      
This outrage is ridiculous. Of course, the Guardian is pimping it, they are outrage professionals.
zouhair 2 ago 0 replies      
We really need a real public safe space on the Internet.
roadman 3 ago 1 reply      
I'm not on fb. I read in the comment from the spokeswoman that the distinction cannot be made by their robotic rules. So I believe this illustrates a limitation of their AI. And they don't care so much about the people than their algorithms. Just an opinion.
ycombinatorMan 3 ago 0 replies      
facebook is really an infrastructural service.
794CD01 3 ago 2 replies      
dajohnson89 3 ago 1 reply      
What was the PM's motivation to make the post in the first place?
fil_a_del_fee_a 3 ago 2 replies      
I honestly think it was an algorithm that flagged it.
Demoneeri 3 ago 1 reply      
A picture of a naked child was removed from FB because of the law. No story there.

Are we going to allow child porn on FB because it is artistic ?

JabavuAdams 3 ago 1 reply      
Why are we thinking of FB as some monolithic entity? Isn't the most likely explanation that some low-wage contractor in the Philippines saw a picture of a naked girl and flagged it? That contractor may not even know the historical significance of the picture.

You're in a low-wage job and have to look at horrifying shit all day, every day. Are you going to let the one image through that maybe will cost you the job that you really need?

tamana 3 ago 2 replies      
Guardian is pretty trashy for tossing that picture up twice in one article. The article isn't even about napalm or the war, the picture is being used as snuff shock. Show some respect for human dignity.
exodust 3 ago 1 reply      
She should simply publish it somewhere else, such as her own blog or some other website. When she signed up to Facebook.com she ticked a box agreeing to their terms.

I never signed up so couldn't care less, but aren't most people on Facebook talking about what they had for breakfast and how awesome stuff is? I'm not sure where Napalm girl fits in with that culture except maybe "awesome war photography - thumbs up!!".

upofadown 3 ago 2 replies      
Wait, Facebook censors pictures of naked children because they are afraid that some pedophile might get off on then?

That's kind of twisted, isn't it?

andrewclunn 3 ago 0 replies      
Dear Norway,

The US governments make us legally complicit in child pornography if we don't have automated processes to take this stuff down. People keep blaming corporations for censorship of porn-like (but not porn) content, song lyrics that get mistaken for terrorist threats, and overly zealous take downs of anything that might infringe on IP. Do you think we want our users to get angry at us over this shit? Look at the US child porn laws, the numerous governments spying under the banner of the war on terror, and laws like the DMCA. Our hands are tied and you are blaming the wrong people.

- Facebook

kybernetyk 3 ago 1 reply      
Why should the PM be treated differently than anyone else? Just because she's the PM?

FB has any right to remove whatever they want from their private property.

WaveNet: A Generative Model for Raw Audio deepmind.com
618 points by benanne  4 ago   143 comments top 29
augustl 4 ago 5 replies      
The music examples are utterly fascinating. It sounds insanely natural.

The only thing I can hear that sounds unnatural, is the way that the reverberation in the room (the "echo") immediately gets lower when the raw piano sound itself gets lower. In a real room, if you produce a loud sound and immediately after a soft sound, the reverberation of the loud sound remains. But since this network only models "the sound right now", the volume of the reverberation follows the volume of the piano sound.

To my ears, this is most prevalent in the last example, which starts out loud and gradually becomes softer. It sounds a bit like they are cross-fading between multiple recordings.

Regardless, the piano sounds completely natural to me, I don't hear any artifacts or sounds that a real piano wouldn't make. Amazing!

There are also fragments that sounds inspiring and very musical to my ears, such as the melody and chord progression after 00:08 in the first example.

erichocean 4 ago 8 replies      
This can be used to implement seamless voice performance transfer from one speaker to another:

1. Train a WaveNet with the source speaker.

2. Train a second WaveNet with the target speaker. Or for something totally new, train a WaveNet with a bunch of different speakers until you get one you like. This becomes the target WaveNet.

3. Record raw audio from the source speaker.

Fun fact: any algorithmic process that "renders" something given a set of inputs can be "run in reverse" to recover those inputs given the rendered output. In this case, we now have raw audio from the source speaker thatin principle could have been rendered by the source speaker's WaveNet, and we want to recover the inputs that would have rendered it, had we done so.

To do that, usually you convert all numbers in the forward renderer into Dual numbers and use automatic differentiation to recover the inputs (in this case, phonemes and what not).

4. Recover the inputs. (This is computationally expensive, but not difficult in practice, especially if WaveNet's generation algorithm is implemented in C++ and you've got a nice black-box optimizer to apply to the inputs, of which there are many freely available options.)

5. Take the recovered WaveNet inputs, feed them into the target speaker's WaveNet, and record the resulting audio.

Result: The resulting raw audio will have the same overall performance and speech as the source speaker, but rendered completely naturally in the target speaker's voice.

rdtsc 4 ago 1 reply      
Wonder if there are any implications here for breaking (MitM) ZRTP protocol.


At some point to authenticate both parties verify a short message by reading it to each other.

However, NSA has already tried to MitM that about 10 years ago by using voice synthesis. It was deemed inadequate at the time. Wonder if TTS improvements like these, change that game and make it more plausable scenario.

dharma1 4 ago 1 reply      
The samples sound amazing. These causal convolutions look like a great idea, will have to re-read a few times. All the previous generative audio from raw audio samples I've heard (using LSTM) has been super noisy. These are crystal clear.

Dilated convolutions are already implemented in TF, look forward to someone implementing this paper and publishing the code.

novalis78 4 ago 1 reply      
What's really intriguing is the part in their article where they explain the "babbling" of wavenet, when they train the network without the text input.

That sounds just like a small kid imitating a foreign (or their own) language. My kids grow up bilingual and I hear them attempt something similar when they are really small. I guess it's like listening in to their neural network modelling the sound of the new language.

noonespecial 4 ago 4 replies      
So when I get the AI from one place, train it with the voices of hundreds of people from dozens of other sources, and then have it read a book from Project Gutenberg to an mp3... who owns the mechanical rights to that recording?
jay-anderson 3 ago 1 reply      
Any suggestions on where to start learning how to implement this? I understand some of the high level concepts (and took an intro AI class years ago - probably not terribly useful), but some of them are very much over my head (e.g. 2.2 Softmax Distributions and 2.3 Gated Activation Units) and some parts of the paper feel somewhat hand-wavy (2.6 Context Stacks). Any pointers would be useful as I attempt to understand it. (EDIT: section numbers refer to their paper)
chestervonwinch 4 ago 2 replies      
Is it possible to use the "deep dream" methods with a network trained for audio such as this? I wonder what that would sound like, e.g., beginning with a speech signal and enhancing with a network trained for music or vice versa.
fastoptimizer 4 ago 4 replies      
Do they say how much time is the generation taking?

Is this insanely slow to train but extremely fast to do generation?

ronreiter 4 ago 3 replies      
Please please please someone please share an IPython notebook with something working already :)
grandalf 4 ago 4 replies      
This is incredible. I'd be worried if I were a professional audiobook reader :)
JoshTriplett 4 ago 1 reply      
How much data does a model take up? I wonder if this would work for compression? Train a model on a corpus of audio, then store the audio as text that turns back into a close approximation of that audio. (Optionally store deltas for egregious differences.)
bbctol 4 ago 0 replies      
Wow! I'd been playing around with machine learning and audio, and this blows even my hilariously far-future fantasies of speech generation out of the water. I guess when you're DeepMind, you have both the brainpower and resources to tackle sound right at the waveform level, and rely on how increasingly-magical your NNs seem to rebuild everything else you need. Really amazing stuff.
fpgaminer 4 ago 1 reply      
I'm guessing DeepMind has already done this (or is already doing), but conditioning on a video is the obvious next step. It would be incredibly interesting to see how accurate it can get generating the audio for a movie. Though I imagine for really great results they'll need to mix in an adversarial network.
JonnieCache 4 ago 1 reply      
Wow. I badly want to try this out with music, but I've taken little more than baby steps with neural networks in the past: am I stuck waiting for someone else to reimplement the stuff in the paper?

IIRC someone published an OSS implementation of the deep dreaming image synthesis paper fairly quickly...

visarga 3 ago 1 reply      
And when you think of all those Hollywood SF movies where the robot could reason and act quite well but in a tin-voice. How wrong they got it. We can simulate high quality voices but we can't have our reasoning, walking robots.
ericjang 4 ago 0 replies      
"At Vanguard, my voice is my password..."
kragen 3 ago 0 replies      
This is amazing. And it's not even a GAN. Presumably a GAN version of this would be even more naturalor maybe they tried that and it didn't work so they didn't put it in the paper?

Definitely the death knell for biometric word lists.

imaginenore 4 ago 1 reply      
Please make it sound like Morgan Freeman.
banach 4 ago 0 replies      
I hope this shows up as a TTS option for VoiceDream (http://www.voicedream.com/) soon! With the best voices they have to offer (currently, the ones from Ivona), I can suffer through a book if the subject is really interesting, but the way the samples sounded here, the WaveNet TTS could be quite pleasant to listen to.
nitrogen 3 ago 0 replies      
I wonder how a hybrid model would sound, where the net generates parameters for a parametric synthesis algorithm (or a common speech codec) instead of samples, to reduce CPU costs.
imurray 4 ago 1 reply      
Would delete this post if I could. Was a request to fix a broken link. Now fixed.
rounce 4 ago 1 reply      
So when does the album drop?
partycoder 4 ago 0 replies      
The first to do semantic style transfer on audio gets a cookie!
mtgx 3 ago 0 replies      
When can we expect this to be used in Google's TTS engine?
AstralStorm 3 ago 0 replies      
Finally a convincing Simlish generator!
tunnuz 4 ago 0 replies      
Love the music part! Mmmh ... infinite jazz.
billconan 4 ago 0 replies      
hope they can release some source code.

wonder how many gpus are required to hold this model.

baccheion 4 ago 0 replies      
I suppose it's impressive in a way, but when I looked into "smoothing out" text to speech audio a few years ago, it seemed fairly straightforward. I was left wondering why it hadn't been done already, but alas, most Engineers at these companies are either politicking know-nothing idiots, or are constantly being road blocked, preventing them from making any real advancements.
The End of Headphone Jacks, the Rise of DRM eff.org
454 points by dwaxe  4 ago   336 comments top 41
AceJohnny2 4 ago 5 replies      
> When you plug an audio cable into a smartphone, it just works.

No, hardware-wise you're still going through a DAC, and the complex audio subsystem of the OS is still deciding, upon receiving the connection signal, to re-route the application audio through that headphone DAC. Or not. Jack or Lightning doesn't change this.

> Apple can choose which manufacturers get to create Lightning-compatible audio devices.

Sure. Or you can use the included lightning-jack adapter and just use normal, un-DRM'd headphones.

>Once Apple gets the ability to add DRM, the record industry gets the ability to insist that Apple use it

See my first point: the audio jack wasn't your last guardian of freedom.

>In other words, if its impossible to connect a speaker or other audio device to an iPhone without Apple software governing it

Use the adapter. And see the first point.

> the only way to connect an iPhone 7 to a recording or mixing device will be over the suboptimal Bluetooth connection or a dongle provided by Apple.

Aha! They finally acknowledge the adapter! But do they acknowledge that it's functionally identical to a built-in DAC?

> It's possible that iOS or specific apps will be able to disable the dongle.

It's also possible the phone will halt and catch fire if you run an unapproved app. But disabling the dongle would be moronic. For one thing, they'd be incurring the wrath of ADA-defender groups.

>the converter you rely on to hear your phone on your hearing aidsjust became less useful.

See previous point.

>But you shouldnt have to depend on a manufacturers permission to use its hardware however you like.

Then don't even buy Apple. They've been locked down in so many other ways for a long time.


The simple explanation (see Occam's Razor) is that the designers noticed that they were using valuable internal space for a redundant connector (considering the hardware has been able to route audio over Lightning for a long time), and figured they could reclaim that space for something else. Clearly, people disagree with this change. The market will tell.

agentgt 4 ago 5 replies      
> Besides, with only Apple earbuds currently supporting the Lightning audio connection, the only way to connect an iPhone 7 to a recording or mixing device will be over the suboptimal Bluetooth connection or a dongle provided by Apple.

If you are recording stuff from your iPhone using the 3.5mm jack you are already suboptimal perhaps even to the bluetooth.

For one you are going through the iPhone DAC (luckily the iphone DACs are pretty descent) then through a generally crappy mini amplifier. If you are doing this you are expecting suboptimal or really don't care about the music quality. I'm not audiophile and hardly care about extreme music quality but If you are mixing/recording you shouldn't be adding artifacts.

If you do care about quality recording you either tranfer content off the iphone, bypass the phone jack (aka amplifier), or bypass even the DAC (and get a stream directly). There are several products that already do this on the market for the existing iPhone.

(It would be nice if some one would comment instead of downvoting. I don't know if my comment is inappropriate or factually wrong... or just in the way... seriously who records stuff off their iPhone? I'm not disagreeing with the intent of the article just that I doubt audio/music experts are going to be affected by this change)

mead5432 4 ago 6 replies      
I understand the argument that forcing content through a proprietary jack opens the door for controlling said content and has huge implications for hardware manufacturers and the way people use their stuff.

What I am having a hard time understanding is why is that any different than the OS influencing what gets sent to the 3.5mm jack? It isn't like apps running in iOS had to interact with APIs to do all the other things (e.g. camera) but not the jack. Is it?

michrassena 4 ago 4 replies      
The discussion seems to be easily diverted into one about audio, but I think something that I've not seen in discussion about this issue is the way some app makers have used the analog audio port as a data jack. I've long had the impression this was a workaround that was begrudgingly tolerated by Apple. Though we've all heard about how heavy-handed their app store policies are, so maybe I'm imagining things. But anyway, how does this new port affect the use of those devices and how does it affect future devices? Are there Lightning-only devices in the works, does Lightning allow the same sort of communication that the analog port did?

Plugging the audio jack seems to be Apple closing a loophole. It's not at all different from soldering RAM on motherboards to close the after-market RAM upgrade loophole and force customers to decide at purchase time how they'll use the computer in the future. Either they'll by too-low spec'd machine and have to upgrade sooner, or buy high spec'd and pay more upfront. Either way Apple wins. Their phones don't have card slots but my $50 LG phone does, so it's not a question of capability. When you can add 32GB of storage for $15, that money doesn't go to Apple.

The truly bothersome thing is how in denial people are about Apple's true intentions, or maybe it's simply that they own Apple stock. Apple's a public company, this is profit motivated pure and simple. Whether this move will also coincide with the interests of the customer remains to be seen.

(edit for typos and clarification)

audunw 4 ago 4 replies      
I'm not convinced. The record industry has already given up on DRM except for streaming. A lot has to happen before DRM is applied to headphones.

Audio is not like video, where it's hard to get a decent copy from the screen. With audio you can always just hook up to the analog output to the speakers themselves and get a copy indistinguishable from the original

Fighting for DRM on headphones would be an uphill battle in so many ways, and I'm not sure the record industry is stupid enough to waste the effort. They've already seemed to learn what everyone know: piracy is solved by making the content easily, universally available at a reasonable price. Piracy is tedious. Just make a better service and the customers will come to you.

Yetanfou 4 ago 3 replies      
That Apple wants their users to only use 'approved' peripherals with their stuff (i.e. only those from which they get a share of the profits) under the guise of 'user experience' and 'convenience' does not mean the rest of the world will suddenly give up on their analogue headphones. Apple users will be able to buy dongles (which have to be Apple-approved, so Apple will still get their share of the profits leading to higher prices which Apple-users are willing to bear to be part of that exclusive community) to connect their analogue headphones, the rest of the world will happily keep plugging those 3.5mm jacks into their phones and tablets and radios and other devices.

As an aside, what a strange creature is man that he wants to replace a device which is analogue by nature - ears not being digital after all - with a digital counterpart which is clearly sub-optimal, overly complex and fraught with potential restrictions. Meanwhile that same man will brag to his friends about the analogue turn table he purchased on which he plays his analogue records for that true analogue experience, claiming a much warmer sound that is clearly superior to that produced by digital players which 'chop the sound into bits which takes away from the experience'.

Bizarre, but profitable.

aroman 4 ago 3 replies      
> Besides, with only Apple earbuds currently supporting the Lightning audio connection

This is just factually incorrect.

Even before today's announcement lightning headphones have been available from multiple independent headphone makers, including Bose and Phillips[0].


csense 4 ago 4 replies      
The lack of a headphone jack is simply yet another excellent reason not to buy an iPhone. What confuses me is why so many people continue to buy Apple products when they're overpriced, locked-down and treat developers like crap.
exabrial 4 ago 6 replies      
Other people getting screwed: Custom IEM wearers. I had a $300 set of Alclair Audio IEMs made so I can use an in-ear audio system on stage while making live music. These use impressions that an audiologist takes of your ear canals for an _exact_ fit that completely seals your ear.

There's not a snow-balls chance in hell I would have these be wireless, or a proprietary standard:

1) Latency. Anything over 2ms is not acceptable for live music. That's the difference between a band sounding "in-time" to "needs practice"

2) We use various tablets, phones to control the mix to our ears, and sometimes in between sets, listen and review music.

3) Removing the 3.5mm pretty much means Apple is exiting professional audio because it's now incompatible with 100% of everything.

4) There is no way in hell my $300 pair of custom-molded IEMs bound to a standard that Apple is going to change in 3 years. Not only would I have to replace my IEMs, but any equipment that's not Apple would have to be updated to match. Not going to happen.

the_other 4 ago 1 reply      
This reads slightly hyperbolic. I suspect Apple will fight against DRM on music for quite some time having made the decision to remove it.

In the past the Apple's designs needed to respect a vast pre-existing ecosystem of headphones, amps and assorted other audio gear. Dropping the socket largely takes them out of that ecosystem, but today the success and reach of their devices exerts pressure on that ecosystem to move in Apple's direction too. That pressure does the rest of the ecosystem a significant disservice: the interoperability of the devices, cables and practices in that ecosystem provides so much utility!

hackuser 4 ago 0 replies      
If you are interested in open hardware, one company working diligently on solutions Purism:


You can order laptops now and they are talking about a phone. They even negotiate with OEMs, such as Intel,[0] to provide more open versions of their products, diligently trying to create widespread change. They aren't all the way there,[1] but seem committed to the long run.

(I'm not affiliated, and all I know about them is what I read.)


[0] https://puri.sm/posts/petition-for-intel-to-release-an-me-le...

[1] https://puri.sm/road-to-fsf-ryf-endorsement-and-beyond/ - Note that's from Aug 2015

PaulHoule 4 ago 2 replies      
This is the first time I've heard that argument. It's a good one.
rayiner 4 ago 1 reply      
HeadphoneJackGate is really a damning indictment of the tech industry. The usability of Apple products for ordinary people has been sliding downhill for years due to trendy-but-idiotic features like hidden UI, flat UI, and gestures (and various abominations combining the three). But the lack of a headphone jack (a total non-issue thanks to the included adapter) is what the tech press gets worked up over...
otterley 4 ago 1 reply      
What about the fact that Apple ships a Lighting-to-3.5mm-stereo-analog adapter in the box? As far as I can tell, there is no practical difference from the previous scenario, other than that you need to plug in the dongle to make analog recordings.

I agree with a lot of what EFF does, but in light of the adapter provided, they're blowing this issue way out of proportion.

electic 4 ago 4 replies      
The real issue here is this might be anti-competitive, and go as far as being an anti-trust issue. Apple can now limit who makes headphones for the iPhone and the ones that are "allowed" could end up seeing their headphones far more expensive than the Apple and Beats brands. This is all because 3rd party brands will have to pay licensing fees to Apple to use the port. So we could end up seeing headphones that are 20%+ more expensive compared to Apple or Beats headphone units.

Sounds anti-competitive to me....

Kenji 4 ago 0 replies      
> It advertises that the move helps make the phone more water-resistant.

Absolute, utter nonsense. I have a 3 year old Samsung Galaxy S4 Active that sports an open headphone jack and can be SUBMERGED in water without any problems.

I don't want to have any heavy batteries sitting over, on or in my ears. Let alone the trash DAC and amplifier that these bluetooth devices have.

noonespecial 4 ago 1 reply      
I think removing the headphone jack is stupid. But it has zero to do with DRM. Moving the DAC to the other side of a connector changes nothing at all about Apple's ability to implement DRM.

There was an Apple controlled DAC in your phone before, now its in a dongle 2cm away. Its annoying but not a diabolical plot.

zonovar 4 ago 0 replies      
I am paranoid I know, however the first thing I thought is that, as headphone can be used in a reverse way as microphones, that Apple made a secret deal with the NSA (or else...) so they will be able in a Bluetooth range to connect (as Bluetooth is far away from being secure) and listen to people. Those plugs all around are just free and easy tool for spies. Of course they could also listen to non encrypted conversations during phone calls between people using encrypted channels/tools.Am I the only one thinking about that?
slicktux 4 ago 1 reply      
So, apple gets rid of the headphone jack and the fear of the END of headphone jacks propagates. . .This is somewhat depressing and frustrating; depressing because one companies' decision has the potential to influence other companies implementations that therefore will affect us all? Frustrating because homogenization is apparently that simple to implement?I guess this quote by who knows who is ever so true. . . "there is no profit in the current paradigm. . .you have to create problems to create profits", unfortunately.
k-mcgrady 4 ago 1 reply      
1. Apple has already publicly stated this is not about DRM and, at least when it comes to music, they have been very anti-DRM for a long time.

2. Apple earbuds aren't the only one's you can use. There are lots of lightning compatible headphones and they've been around a while.

3. This is not 'The End of Headphones Jacks'. It's one phone manufacturer. Globally iPhone market share is less than 20% so if you want a headphone jack you have a lot of great options.

kazinator 4 ago 0 replies      
So what? Early consumer computers (including ones from Apple) didn't have audio jacks either; you had to add audio adapter interfaces to have audio at all. It's just going full circle.

DRM has nothing to do with whether a device has an analog audio jack. Nobody in their right mind copies audio through the headphone jack output.

If an audio output device enforces DRM, that can be done just as well by a built-in analog out as by some bluetooth add-on or whatever. Analog out starts out digital. The audio data flows to some audio chips. Those chips have drivers, and the drivers can be signed, part of a signed OS image, etc. You can make a device that will only play digital-rights-managed content, even if it has analog outputs.

draw_down 4 ago 0 replies      
I don't like this change but I think the argument that it's about DRM is pretty silly.
peterkelly 4 ago 0 replies      
> "Other developers must ask Apple for permission to create and sell Lightning-compatible devices"

I wonder how well that's going to work in China (and for that matter most of the rest of Asia)

cdnsteve 4 ago 0 replies      
The also just made it so their phone no longer works with millions of car audio systems that have an auxiliary input jack. Not all of us have 2016's with fancy Car Play or Android Auto.
api 4 ago 0 replies      
This is interesting but personally I think this move is more about Apple being able to take more profit from its Beats brand and from any third party speaker maker that now has to license to work with iOS.

Of course I guess they can also sell "premium DRM" snake oil to recording companies now, because nobody can tap audio from hardware. That's totally impossible right?

Apple just loves to tax their ecosystem. They also have a huge fetish for eliminating connectors, plugs, etc. even when they are well past the point of diminishing returns there.

astral303 4 ago 0 replies      
If there is a 3.5mm dongle available, how is this truly the end of the headphone jacks?

The headphone jack is still there, it just has to be accessed via the dongle. It's gone from being physically on the device, but the capability is not gone.

I think a post like this undermines EFF's credibility. Steve Jobs has railed against DRM for music and finally was able to get it. iTunes music has been DRM-free for years now. Why would Apple back out on DRM-free music?

aluhut 4 ago 1 reply      
I don't get it.

The customer base of Apple has no problems spending huge amounts of money. Why should they need to be controlled in such a way?

hackuser 4 ago 0 replies      
It's frustrating that there's not a (significant) phone vendor committed to both user confidentiality and end-user control (libre/free/open).

Apple seems to provide confidentiality, if you buy their marketing, and Google is much more open/free. These should be, IMO, fundamentals of IT, but it's not even a realistic option.

javajosh 4 ago 1 reply      
Isn't this tacitly assuming that Apple will be able to single-handedly eliminate the headphone jack? I think it is quite likely that post-Jobs Apple has finally overstepped it's bounds, and despite it's good qualities the iPhone 7 will be a relative dud. In which case the iPhone 8 will (reluctantly) put the jack back.
jasonlingx 4 ago 1 reply      
You can still get a headphone jack via a lightning adapter which comes with every iPhone 7...
ybrah 4 ago 0 replies      
if a certain artist's musics is not easily accessible because of DRM or whatever reason, Ill just find something different to listen to.

There is no shortage of good local bands anywhere in the world so I'm not worried

EGreg 4 ago 0 replies      
I like how the last paragraph started with "one more thing". :)
jccalhoun 4 ago 0 replies      
It is just so weird to me that apple hates buttons but loves dongles.
protomyth 4 ago 1 reply      
I guess Android phones will probably go for something based off USB-C. I wonder if Apple will approve an adapter from lightning to some other digital connector?
AndrewKemendo 4 ago 1 reply      
Is it possible Apple wants to kill Square because they want everyone to use pay anywhere and are going to release a new card reader dongle soon?
Sidgup1 3 ago 0 replies      
L, R and GND will still exist abd it will be analog signal. Speakers are analog.
shmerl 4 ago 0 replies      
Yeah, how Apple of them.
zelias 4 ago 3 replies      
There's a lot of potential for anti-competitive practice here -- for example, Apple could theoretically prevent the Spotify app from transmitting audio over Bluetooth or Lightning, forcing users into the Apple Music ecosystem.
X86BSD 4 ago 2 replies      
matthewhall 4 ago 0 replies      
Just saying drm sucks. Apple calls in digital resources management not rights
The Correct Way to Validate Email Addresses hackernoon.com
550 points by amk_  5 ago   383 comments top 55
Benjamin_Dobell 5 ago 11 replies      
The number of websites that try reject my email address with a + in it, ugh!

Surprisingly, the validation is often done 100% client-side anyway, and simply modifying the incorrect regex lets my email address through... If I wrecked havoc on your back-end, then it's your fault for sucking ;)

nicolas_t 4 ago 3 replies      
The one thing I systematically do in term of email validation is catch the common typos of the main providers. So things like gmail.con, hotmai.com, gmall.com and so on.

In 99% of those cases, it prevents someone from entering a wrong email.

We do not do email activation by forcing people to click a link in their email to validate that they received it since that causes a drop in the funnel and reduces the amount of revenues (non technical users tend to not come back when you ask them to go to their emails to verify it). So, in this case, correcting the typical typoes is very important. In our case though the information is not extremely private so it's less of a problem to do this.

Having people type the email twice doesn't really prevent typoes, people copy and paste. And if you disable paste, then it becomes annoying to users and you don't want to annoy users during the signup process (plus I hate websites that mess up with paste so I won't be hypocritical and do it).

Lastly, I know that having an email with a local domain name with no TLD is valid but it'll never be valid in the context we are sending so supporting them just doesn't make sense.

amk_ 5 ago 3 replies      
TL;DR the odds that the user entered an incorrect-but-valid address are way higher than that they entered one which will not actually be able to receive mail. Send a validation email.
jwecker 5 ago 3 replies      
I always assumed it was more a sanitization issue for security's sake. By allowing only a simple subset ("common") email address type, you can be ambivalent about what email server is running and how it reacts to the wide variety of specially crafted email addresses.

With no validation other than sending the email, you have to know, for example, what the server would do with an email address that claims to be @localhost. Now it becomes a problem- or at least a question and concern- for the backend system. Whether the backend interprets root@localhost as valid and does exactly what it's told or rejects it due to some configuration- it has become a backend complication and a DOS attack vector.

A simple policy of only handling a subset- the common class of email addresses- is one of the things that allows us to have a simple mental model of what the MTA is supposed to do. The fact that it sometimes caught a type-o, or not, is incidental. "Invalid email" wasn't meant to imply the email address doesn't fit the spec- it was meant to imply that a particular site or service has chosen not to accept email addresses like that.

Or at least that's what I assumed :-)

tedmiston 5 ago 6 replies      
Hmm, sorry but I don't buy that the "correct way to validate" is not to validate the input.

Email addresses aren't a special enough case to be handled differently than any other user input, which we always validate to both sanitize and show client-side errors, if nothing else.

Sure, the complete regex is complex, but it is defined and is hardly unconquerable. Look at Django's `EmailValidator` implementation for example [0] that is mature and well tested [1].

The author has not convinced me that ignoring validation is the right choice when options with a scope so thorough exist.

[0]: https://github.com/django/django/blob/master/django/core/val...

[1]: https://github.com/django/django/blob/a9215b7c36bff232bcc941...

JacobJans 5 ago 4 replies      
I do a lot of optin email. Here are some examples of bounced emails that people use to sign up:

* somename@gmail.co

* anothername@yhoo.com

* myemail@hotmial.com

These are very common errors that occur nearly every day. A regex isn't going to help here. What does help, is a notification that asks people to verify what they typed if the email contains an obvious, common error, such as one listed above.

SamReidHughes 5 ago 0 replies      
There are other situations where you do have to guess whether a string of data is a "real" email address or if it's some garbage data that turns up in information systems. "Validating" email addresses (without emailing somebody) is a real problem. By the way, maximizing the accuracy of such a guess can require going against the standards.
r1ch 5 ago 0 replies      
One thing I've found that helps a lot is instant delivery notifications. When you try to register a new account, our "We've sent a confirmation email" screen will report within a few seconds if there was a mail delivery error and allow the user to correct their address. Common typo detection for popular email domains is also beneficial (https://github.com/mailcheck/mailcheck)
cyberferret 5 ago 1 reply      
As an aside, I received an email from a government department recently that had an '&' character as part of the email address. I didn't think that was valid, but lo and behold, when I checked the specs, it IS indeed a valid character in an email address.

Just goes to show that assumptions are often wrong, and you have to crack open the spec document from time to time... [1]

[1] - https://tools.ietf.org/html/rfc2822

Ameo 5 ago 2 replies      
I have a .link domain for my personal email and a lot of sites refuse to let me register because they don't recognize it as a valid TLD.

Then there's the textbook company that lets me register but refuses to let me reset my password claiming that I'm trying to enter an "invalid email address."

KennyCason 5 ago 0 replies      
Fully knowing where this was going to conclude, I still found myself reading through the "lets build a stats model" part. I just had to check my calendar to confirm it's not April 1st. :)
Xorlev 5 ago 4 replies      
At this point, our email validity criteria:


That is, at least one character for the inbox, at least one character for the domain, at least two for the TLD (we assume that TLD-less domains are undeliverable by us). This ensures we don't allow 'a@a' or 'a@a.a', but do allow 'a@a.io'.

dugluak 5 ago 0 replies      
How about the common mistake of entering xyz@abc,com instead of .com. A lot of times I unintentionally make this mistake. If the system doesn't prompt me in this case then I would never know why I didn't receive any further communication from it. That's FAIL in my opinion.
sly010 5 ago 2 replies      
If someone's valid email address


they are up to no good and I don't want them as my customer.

Also, according to the standard email addresses supposed to be case sensitive,since the username part refers to a unix user and unix is case sensitive.I work with a lot of email address lists originally collected on paper and of course noone knows that. So as bad as it sounds, part of my sanitation process is to lowercase everything. Noone ever complained. What the standard says and what people actually do is very different.

buro9 4 ago 2 replies      
The best way to validate an email address:

Send an email that they need to click on (or an email with a code they need to enter), OR ask the OAuth provider with authority for it to validate it (i.e. Google Oauth for Google addresses, Windows Live for Microsoft Accounts, etc).

The best way to identify someone with an email address:

Store a canonical version of their email address alongside the users email. Use the canonical version when signing-in/identifying and the raw version originally supplied to send email.

This is the only way to not have duplicate accounts for firstlast@googlemail.com vs first.last@googlemail.com vs first.last@gmail.com .

The canonical email is always lowercase, no dots, no + part, no prefix or suffix columns, known domain aliases are normalised to the most common alias (googlemail.com > gmail.com).

I wrote a SQL canonical email func recently (in preparation for Persona shut-down) if anyone is interested: https://github.com/microcosm-cc/microcosm/blob/master/db/mig...

maxerickson 5 ago 1 reply      
Yes, please do send activation emails (or perhaps a personal confirmation email if you are establishing contact with someone that wrote down an address for you).

Those of us with firstnamelastname@commonhost will appreciate not getting bills and job offers and such.

omarforgotpwd 5 ago 0 replies      
I first encountered the idea of email validation in Agile Web Development with Ruby on Rails, which I read in middle school. In the book they give an example of validating email addresses to show how you could use regex to validate. I wonder if that contributed to the frustrating problem of developers trying to validate emails and not accepting valid inputs.
gpvos 4 ago 0 replies      
One more thing that irks me is that some websites capitalize or lowercase the part before the @. Email servers are allowed to treat that part case-sensitively, although most don't. (The part after the @ is indeed case-insensitive.)
smallnamespace 5 ago 0 replies      
Why not go the other way and compute the edit distance to commonly used domain names, and then prompt the user and ask if it's correct?

E.g. if I type foo@googl.com, it should be pretty likely that I meant google.com.

bballer 4 ago 1 reply      
In all my projects I use the same methods for validating an email address: 1) Does it contain a `@` 2) Split the string on the `@` and make sure that at least one character exists on both sides of the `@` 3) Send verification email.

This check is done server side, while on the client I just use an html5 input[type='email'] with a required attribute.

bigger_cheese 5 ago 0 replies      
There is someone at my work with a hyphen and an apostrophe in their email address. Their inbox often gets used for testing things.
SZJX 3 ago 0 replies      
Of course the only way to be 100% sure would be to actually test it out by sending an actual email isn't it. This is just so obvious. I think the point of email regexes out there is not to make up for the user's silly typing mistake. It's just more to reject nonsensical/malicious/blatantly false inputs etc. as the first layer of protection really, and nobody would really spend tons of time on crafting a "perfect" regex anyways I'm pretty sure, so that's never been a problem at all.
justinator 5 ago 0 replies      
In Dada Mail [0], there's quite a few steps to figuring out if the email address submitted for a mailing list subscription is valid, but most of it can really be organized under sanitizing the data you receive, which you should be doing anyways. Yes, we do validation for form of an address client side (which helps with hitting the server side so much), but we'll do it again server side. We also look at stats on how many times an address was submitted before, as well as per ip address over time across all fuctions of the app (as well as specifically for subscribing). Oh, and even if it's valid, and "real", sometimes we don't want to work with it either, ie: it shows up on something like StopFormSpam. It's actually a ton of work and much to orchestrate.

[0] http://dadamailproject.com

puddintane 4 ago 0 replies      
I always search out that a validation library hasn't already been done in my current language first before attempting validation with custom code - this leads to more easily maintainable code for future eyes.

For example in PHP I use filter_var function with the FILTER_VALIDATE_EMAIL [1] - while it's great to know why and how to do a particular thing programming, it's better to use a time tested library that is maintained by multiple eyes versus just your own.

[1] http://php.net/manual/en/filter.examples.validation.php

chavesn 5 ago 0 replies      
All of that statistical analysis was actually a bit silly, because I've never heard the "typo" argument as a reason for email grammar validation[1]. Sounds like a straw man. It didn't need to be disproven.

The conclusion is sound (although leaves out a discussion of the whether an email confirmation field is at least better than nothing).

[1]: (As a side note, I think the most common explanations for grammar validation are programmer perfectionism and proactively stopping user garbage, such as copy-paste errors or intentionally fluffed fields that will result in a bounced email anyway.)

zimbatm 4 ago 0 replies      
TLDR; (with my own interpetation)

1. Email validation regexp should be: /.+@.+/ => Tell the user to enter a valid email if that doesn't match.

2. Send a validation email to actually exercise the system

mangeletti 5 ago 1 reply      
Firstly, great article.

Secondly, this guy is so hilarious.

I clicked to his podcast (where he reads Wikipedia pages) at the bottom and listened to this hilarious episode https://itunes.apple.com/us/podcast/david-reads-wikipedia/id.... His specific style of sarcastic humor (just like the article - is there a name for this style of humor btw?) is rare and hilarious.

contingencies 4 ago 1 reply      
1. International domain names... you cannot filter characters much because of this. If you want to filter characters, be damn sure it's careful and precise filtering.

2. For immediate feedback, you can reasonably check it's not at at a non-routable IP range, ie. address@127.x.x.x or address@192.168.x.x or similar. However, this check is best done on your email server (MTA policy). It's unlikely anyone would enter this without malicious intent so there's no need to optimize for their use case.

nbevans 4 ago 0 replies      
Validating e-mails is pointless - short of sending them a confirmation URL and waiting.

Sanity checking them however is often useful for checking form input or data cleansing.

amluto 5 ago 0 replies      
I can think of one reason to do RFC2822 validation: security. It reduces the chance that someone can give a bogus email address that makes some SMTP server on the route misbehave.
nxzero 5 ago 2 replies      
Correct way is run a regex for [wildcard @ wildcard . Wildcard] then send an opt-in email real-time as the user is typing additional info. If it bounces before the user finished the onboard form - alert them to the issue. If it gets validate, autologin the user. If bounces or there's zero response by the time the user completes the form, alert them, ask to type their email again without access to the reprior entry - then give them the optin option via text message.
ChuckMcM 5 ago 1 reply      
I think the 'valid but wrong' email is a more common failure. Having just spent a few weeks with my wife trying to convince some poor person that they had mistyped their email address when they created their Amazon account. Reminded me of this xkcd (https://xkcd.com/1279/).

It does seem effective to have someone type the address twice as that can catch a typo fairly easily.

tedmiston 5 ago 1 reply      
From the perspective of a user typing their own email address correctly, I use text substitution on OS X and iOS to never type my full email address. ex fg --> foo@gmail.com
smaili 5 ago 0 replies      
For those looking for the conclusion:

Send your users an activation email.

suhith 4 ago 0 replies      
This keeps coming up on HN, in the end the best thing to do is exactly as the article says. ACTUALLY SEND the email and see if they get it.
vkjv 4 ago 0 replies      
I like the approach of accepting anything that is a reasonable length with an`@`, but suggestinging corrections for possibly misspelled common domains.


If you really need to validate, the only way I know how is to send them an email and click a link to confirm.

OOPMan 3 ago 0 replies      
My approach to this is reasonably simple:

1: Does it have an @2: Is it at least 5 chars long (E.g. a@b.c)

kazinator 5 ago 2 replies      
Sorry, I disagree.

There is absolutely is a correct way to lexically validate an e-mail address: namely, implement a parser for the syntax specified in whatever RFC is the up-to-date successor of RFC 822.

There is such a thing as incorrect e-mail address syntax: namely, non-RFC-conforming syntax, whatever that is.

You may reject that, and that's about it.

Please don't reject RFC-conforming e-mail addresses.

fafournier 4 ago 0 replies      
There seem to be a problem with the analysis. It seems to assume that everybody uses qwerty keyboards! What about qwertz, azerty, dvorak or even colemak... We need to recalculate with data aggregated and weighted by world-wide populations! :-D
teekert 4 ago 0 replies      
Small anecdote: We recently had a visitor from the US (a physician) who didn't understand why we didn't need a .com at the end of an email address, she was exchanging email addresses with a french person who's address ended in .fr :)
htor 4 ago 0 replies      
What is weird is that input[type="email"] rejects some valid emails. Try out this codepen:


Timucin 4 ago 0 replies      
I wish the author put the single sentence at the end to the up with a TL;DR; note: send verification emails, which I don't agree 100% while the article/author claims that's the 100% right way.
chriscampbell 5 ago 0 replies      
I respect the thought behind this article but if you don't want to build it yourself, we use the company .BriteVerify and it works pretty dam well for identifying invalid emails.
sigi45 4 ago 0 replies      
His number is probably wrong. I personally wrote/typed my email address wrong (when you have those two fields).

There are also common pitfalls people are doing like empty spaces at the beginning and at the end which should be cleaned up before trying to send the email to " whoever@gmail.com".

There is also an Email standard and when a normal library is able to validate it (and there are free good libs out there) than the effort to do so is similiar minimal but provides an additional support.

What you should do is also to make sure that you are not sending unlimited emails out there. Otherwise you might be missused as a mail relay / spammer.

burnbabyburn 4 ago 1 reply      
tl;dr send a confirmation email.

it's 20 years that people suggest a cool new way to deal with email addresses, I don't even mind listening anymore! :)

mpetrovich 4 ago 0 replies      
Some people, when confronted with a problem, think "I know, I'll use regular expressions."Now they have two problems.

Jamie Zawinski

jordanielewski 4 ago 0 replies      
Personally, I just check '@' presence
josh_carterPDX 5 ago 0 replies      
I'm now going to put non-standard email characters in every form I fill out just to see how the site handles it.
brightball 5 ago 2 replies      
This is the best comprehensive way that I've found:


It breaks down into 3 parts that can be used either independently or as a whole: format, MX and SMTP.

gcb0 5 ago 0 replies      
even Google fails this.

register a Gmail address and type in the wrong alternative email.

done. no confirmation required. someone with the mistyped email now have how to reset your password and take your account.

ehnto 5 ago 0 replies      
I have trouble with my simple .co address.
ikeboy 5 ago 0 replies      
>I know hacking LinkedIn just to make a point about email validation is a bit extreme, but it is important to back up ones opinions with data


chenster 5 ago 1 reply      
Even from http://emailregex.com, a popular regular expression summary for email, states it can only catch 99.99% of validate emails. However, I still like to include some basic form of email validation both on the client and server side, plus the activation email.
chiefalchemist 5 ago 1 reply      
Great article. Wrong. Question.

The better question: In it's current form, is an email addresses really the best way to do what it is that's trying to be accomplished? (Hint: It's a fax machine.)

I mean, if I have have a phone number, why can't I have an email number? Okay, perhaps not the greatest example. But then again, if a phone number can be switched from one carrier to another, in the second decade of the 21st century shouldn't "email" get the same consideration?

Instead we're talking about regex or some other wonky validation? In 2016? That's just silly.

tgarma1234 5 ago 4 replies      
No. Absolutely beginner level blog post. You would use a third party tool like http://www.datavalidation.com/ or mailgun's email validation service or BriteVerify etc etc. There are a ton of validation services now. We are living in a time when trillions of email addresses have been tried, entered and deployed to. So why reinvent the wheel on your website? 3rd party services are based not only on parsing the string but also on literally billions of emails actually deployed through various ESP's to tell you up front whether the email address entered by a user is correct. I could use a trashmail email address and it would validate by the OP's standards. First validate using a third party service and then send the double opt-in email to get a user click.
How to Tell a Mother Her Child Is Dead nytimes.com
688 points by niyazpk  9 ago   199 comments top 28
alasdair_ 9 ago 23 replies      
My twenty one year old daughter died two months ago. A young policeman came to my door. It was the first time he had to do the job mentioned in the article and he did it very well.

I have very little memory of those first few hours. I now know what it is to be insane. I was so disconnected from reality that people have told me that I had long conversations with them that I have zero recollection of. The only thing I clearly remember was telling the officer that I had a gun upstairs and that if he didn't take it, I was going to murder the man responsible for her death within the hour. It was the most matter of fact confession of planning a murder imaginable.

After a couple of hours, I saw a Facebook post of hers and lost it, the insane calm left me and I bawled my eyes out.

It's her birthday tomorrow. I miss her so, so much.

Anyway, the point of this post: my daughter died of an overdose. She was at a party, a man gave her powdered pure fentanyl claiming it was cocaine. I have no idea why. She snorted some and overdosed soon after.

All I want to happen is that someone somewhere reads about what happened to my daughter and reminds their kids that without proper testing kits, they have no idea what the fuck they are taking. Drugs may not be bad, but some people certainly are.

jrapdx3 9 ago 2 replies      
A subject I understand more than I can put into words. It's a duty I have had. A 17 year girl died of an overdose. It was my responsibility to tell the mother, father, pastor, brothers, sister. They were there all night in the tiny, chilly waiting room, after notified their comatose child was brought in.

Some kind of party had been going on when mom and dad were out for the evening. The young woman and assorted friends doing drugs. She passed out, it was hours before anyone thought to check out how she was.

I called in all the docs there were to call. We tried every trick there was known to try. Then heart rate fell to zero. All the effort came to nothing. Everyone was quiet, mumbled their sorrow, and slipped out the private staff access door. That is everyone but me.

That morning was about the hardest I ever faced, even in the decades since. Sure others have died on my watch, one cause or another. But that time was different. I knew I had to say it, give the worst possible news, the unnecessary death of a child, to grieving parents. I truly did not know how such a thing can be said, what phrasing is best, what stings the least?

I don't know how, but summoning the courage I walked out to where they were sitting. I was nearly in a trance, not only from lack of sleep, but stunned by the magnitude of what I had to speak. And I said what happened, the child passed away, never awakened despite the heroic efforts of so many healers sweating all at once.

I sat there for a moment, no more to say, listened to the mournful sobs. Though I felt a failure, more than anything I had no comfort to provide. They didn't find fault, they were not angry that we could not do more.

Seriously, a moment too stark, too profound to ever forget nor would I want to relinquish it. No repeat is necessary, the lesson deeply embedded, the value of life, the meaning of words, the merit of a healer's human voice, these are all worth keeping.

Jamesbeam 9 ago 2 replies      
I've been a private military contractor for more than thirty years. Some of the companies I was working for had very impersonal procedures to handle deaths.I offered a few times to personally inform the family / next of kin for the guys that were working with me directly but that request was always denied because it was not "cost efficient".

So I always did the trip on my own.

The loss hit them like a truck every time, I have a few memories that make me wake up in the middle of the night three days a week but the look on a mother's face when you tell her that her son is dead is something you will never forget as long as you live.

Still, I am glad I went to see every family of everyone I lost in all those years. There was crying and screaming and tears and a lot of blaming, I even got slapped a few times but I always told them I'll be in a hotel nearby for the next days and if they want to talk they can call me any time of the day.

Some never called but after a day or two most invited me back to their home or came by and we had a few long talks over the next days until I had to go.

I've been in touch with most of those families over the years and I heard a lot of times that it gave them peace to know that I was there when their son / brother / husband / grandson died and that I came by personally to try to comfort them before they got "the letter".

I wish everyone that you will never come into this situation because it's almost as hard and unfair to be the messenger as it is to be the recipient of that message.

bennettfeely 9 ago 1 reply      
I just want to say the style of the article and it's direct, terse language really captures the gravity of the situation and seriousness of the subject.

Very sad, but very well written.

helloworld 9 ago 1 reply      
Security is already outside the room and when they hear the first loud noise they will know to come in. No, you will not have to tell them. They know about the family room in the emergency department in summer in North Philadelphia.

What a heartbreaking essay. And how tragic that death by gun violence is apparently routine in North Philadelphia.

hopfog 8 ago 0 replies      
One of my best friends died of an overdose a few years ago. His mother was informed in a horrible way.

The police called her and told her that her son had overdosed and was on the way to the hospital. In the middle of the call they all of a sudden say "actually, he's dead!" like it was nothing special. His mother of course screamed out loud, which made the police upset (they said "hey, it's not my fault" or something like that, I don't remember exactly).

I normally have great respect for the police but I think this was handled catastrophically. They showed very little sympathy.

mindfulgeek 9 ago 0 replies      
When I was a year out of cancer treatment, I ran into a fellow patient. She and I had a rare cancer and were treated with a handful of others.

Of the three of us who remained, only two of us remained cancer free and she wasn't one of them.

A week earlier, there had been five of us.

I knew this. I didn't know if she did.

I didn't know what I would say if she mentioned them. It was possible she had the same problem in her head.

After we caught up, she asked if I had seen one of them.

Telling her the truth wasn't nearly as hard as answering her next question -- what about the other girl?

toopersonal 9 ago 2 replies      
My father died younger than 50 years old when I was a child. My mother was left behind with several small children and financial struggles. On the day of his funeral there was a funeral of an 18 year old boy afterwards. She has told me she consoled his girlfriend and when she saw the young girl standing there crying, she thought that even though her own situation was as bad as it could possibly get, this was even worse. Must have been a strange moment for her. Maybe even a bit uplifting, as perverse as this sounds.
emptybits 9 ago 1 reply      
When I occasionally start to think my work in technology is overly important or that the woes of my startup projects are unbearably heavy, I'm glad I can be humbled by something like this. This doctor has responsibilities and gravity I will never know. Great article and great doctor. Wow.
OliverJones 8 ago 0 replies      
I've worked as a hospital chaplain in a big and well-respected urban teaching hospital.

From a teaching point of view, I'm really glad this article by Dr. Rosenberg is available. For two reasons...

1. I wish I had seen it during training. It's spot on in every respect. Dr. Rosenberg's advice to stay with the bereaved, and enter with them into their grief, is good advice. There's no way to do it without simply doing it.

2. It's good that Dr. Rosenberg is teaching doctors to do this work. Often enough in the past, the Saturday night emergency department staff just said "page the chaplain" when they needed to deliver bad news. We chaplains don't mind doing our jobs, but that leaves the frightened family hanging while we scramble to get to the ED and figure out who / what before sitting with the family. And, there's always some practical decision-making that takes time. For example, a Roman Catholic patient needs a Roman Catholic clergy person. So, "page the chaplain" keeps people waiting.

If you ever have to do this, do everything you can to avoid physically looking down at the bereaved people. Don't stand over them. Sit on the floor if you must. Some waiting rooms have low coffee tables or side tables. That's a good place to sit.

In teaching hospitals, the new residents (fresh-out-of-school doctors) start July 1st every year. And, they staff the ED on weekend nights. So they are getting their first sustained taste of violence, right at the top of the summer heat. They went into medicine to heal people, not to pronounce them. So this is a big shock for them. The ED unit clerk should still page the chaplain, even if the doctor delivers the bad news.

This epidemic of violence is awful. For my part, I count strong narcotics with guns, knives, and cars as instruments of that violence. It's horrible that doctors and other hospital folks have to learn how to do this. But they do. It's horrible that families have to hear this bad news. But they do.

This article should be posted on the wall of every toilet stall in every high school in the country. Why there? Simply because everybody will see it and have a chance to read it in private.

CapitalistCartr 9 ago 0 replies      
I had to tell that to my own mother. It was 5 years ago this week. There are no good ways. There are no good outcomes. This is a good article about how bad it is.
drauh 9 ago 0 replies      
For some context, here is a map of poverty in Philly:


The hospital is in census tract 016300 with poverty level 58.5%

sndean 9 ago 0 replies      
Somewhat related - One of the reasons my significant other decided to not go into emergency medicine was the high rates of PTSD in ER physicians and nurses: "We don't have good numbers, but the incidence of PTSD in emergency physicians is probably around 17%" [1].

So while I can respect the stoicism and clear focus on the emotions of the mothers of victims, I hope the author and other ER doctors also take some time for themselves to deal with the trauma they experience.

[1] http://www.medscape.com/viewarticle/840980

ghufran_syed 9 ago 0 replies      
"The depth of the stupidity of the things you will say sometimes is unimaginable." -I'm pretty sure everyone who has ever had to do this has felt the same way.
hoodoof 9 ago 1 reply      
I had to tell friends that one of our closest friends had passed away. The only thing I would add to this article is to invite the recipients of the news to sit down first because there's a good chance they'll fall down.
FT_intern 9 ago 3 replies      
Why is this "how to tell a mother her child is dead" instead of "how to tell parents that their child is dead"?
cmmn_nighthawk 9 ago 0 replies      
this makes all debates about software seem trivial. i agree--it's very well written.
rhyselsmore 8 ago 0 replies      
As an ex-paramedic this really hits home.
fnj 8 ago 0 replies      
It doesn't have to be a child in the sense of being young. No parent should have to outlive their offspring, especially when they are very close daily. I witnessed the effect on a 90+ year old mother of the sudden unexpected death during sleep (natural causes) of her daughter who was almost 60 but very vibrant.

It was crushing. The mother never recovered any of her joy in her own life and only lived another 2 years.

andrewvijay 9 ago 1 reply      
Absolutely terrifying!"If he left his socks on the floor again today, it is all right." - the only sentence I could relate to. I hate my life.
known 8 ago 0 replies      
Really painful.
milesf 9 ago 1 reply      
I know this will sound cold, but why is this story here? Does it really fit the guideline of "anything that gratifies one's intellectual curiosity"?

I've shoehorned it into my rationalization for being here as advice on how to have an extremely difficult conversation, but it still feel a bit macabre to have this here.

epicureanideal 9 ago 0 replies      
The article is basically saying not to flip out, but "When you get home, do not yell at your husband. If he left his socks on the floor again today, it is all right." We all know that this doesn't just happen after someone dies on the operating room table.

Seriously people, if your spouse is not cheating on you, beating you, or throwing the family money to the casino, lighten up about the little stuff.

End of public service announcement.

pipio21 8 ago 3 replies      
jkot 9 ago 3 replies      
gjolund 9 ago 4 replies      
mastre_ 9 ago 3 replies      
> I just want to say the style of the article and it's direct, terse language really captures the gravity of the situation and seriousness of the subject.

Quick comment about how your it's instead of its caused an English parsing error in my brain:

I read until the comma and because I saw it's, I assumed I missed a word in the first part of the sentence - I though it may have been something like "I just want to say I evaluated the style of the article and it's direct, it's frank, it's spot on!", but re-reading it didn't reveal anything I missed. I then considered some less common writing styles/expressions. None of that worked out, so I read past the comma and figured out what happened. All this happened in the span of a second or so. Not sure what it was about this particular sentence that caused me to stop at the comma, I don't think it happens often.

Kenji 9 ago 0 replies      
Wow, that was surprisingly moving. For some reason, I expected one of those dry hacker essays.
What typing ^D does on Unix (2009) utoronto.ca
535 points by luu  6 ago   156 comments top 16
telotortium 6 ago 3 replies      
As a corollary, typing ^D twice on a non-empty line will also send EOF on the input, allowing you to provide a program with input not ending with \n from the command line. I knew about this behavior, but not why it worked, but this article's explanation clarifies this behavior as well. The first ^D terminates the read() call, passing the line so far, without terminating \n, to the program. The second causes read() to return with 0 read bytes, which is EOF, as explained in the article.
userbinator 6 ago 0 replies      
No TTY-related discussion is complete without a reference to Linus Akesson's extremely lucid article on the whole thing, including what all the other interesting Ctrl+ characters do:


...and the extensive previous HN discussion on it:







gtrubetskoy 6 ago 6 replies      
^U will clear the buffer - super convenient for retrying botched passwords.
peterwwillis 6 ago 0 replies      
The author actually clouds what and why is really happening a bit. Ctrl+D sends the EOF character to the terminal driver. The terminal driver then determines, based on its settings, what to do next.

In the 'icanon' mode, the terminal driver implements a rustic line editor, so you can do things like Backspace to delete previous characters and so on. Pressing Enter during this mode returns the edited buffer line to the program.

Where Ctrl+D, or EOF, comes in is when you want to return a line to the program _without_ pressing Enter. This is where the terminal driver returns the buffer to the read() function for the program immediately. Doing it again with no additional input shows that you were done line-editing, so it simply returns nothing, signaling the program that you're done editing or providing input - the intended purpose of End Of File, the character sent by Ctrl+D. (If you were reading a file and you received nothing on a read... you would be at the end of a file, because why else would the file have nothing else to read?)

But this 'icanon' mode won't be active in your actual terminal shell, because shells have their own line editing implementation, so they turn 'icanon' off by default. You can, of course, turn on or off in the terminal with "stty". Use "stty -a" to see all the other current settings. The terminal application, by the way, sets the EOF to the same value as the terminal driver's by default, in order to prevent confusion.

felixgallo 6 ago 2 replies      
Typing +++ will bring you back out to your modem's firmware, at which point you can issue further AT commands
coretx 6 ago 1 reply      
Directly after reading the title the question "what does ^D do" was fired at a Old Unix Beard friend of Mine who happens to be here for coffee.

Instant reply Without any latency: "It originally was meant to terminate the Tape drive"

SteveNuts 6 ago 4 replies      
Pressing enter then ~. will gracefully shutdown hung ssh sessions
happyslobro 6 ago 0 replies      
6 KB HTML. 4 KB CSS with comments preserved. No JS.

It's so beautiful. I think I'm going to cry :)

wruza 6 ago 0 replies      
In general, CTRL-anything send corresponding control character by shifting keys to control set of ASCII table [1] (shift-key shifts keys to upper set). Many of them retained original meaning, e.g. ^I ^M ^J ^H ^D ^[.

[1] http://ascii-table.com/

TorKlingberg 6 ago 4 replies      
I wish articles like this would say what ^D means. I remember when I was new to Unix it took me a while to realize that I wasn't supposed to type a literal caret (^) followed by a D.

For reference it means Ctrl+D, unless you you have a strange keyboard from Sun or something.

voidz 6 ago 3 replies      
Expanding on this, ^\ (Ctrl+\) means sigkill, and I don't think many people know about this one.
yread 6 ago 0 replies      
So many useful (and utterly undiscoverable) tidbits of knowledge in this thread! Thanks!
Nilzor 6 ago 0 replies      
This comment thread is worth much more than the actual article
VintageCool 6 ago 3 replies      
Neat. So when my terminal is spewing output because I ran "cat massivefile" instead of "cat massivefile | head", I can hit ctrl-D to stop it instead of repeatedly hitting ctrl-C and despairing.
pantulis 5 ago 0 replies      
If memory serves well, there was also the amazing Ctrl-O, which allowed you to send control sequences over a busy terminal --for example when scrolling a lot of text, seems to be mapped to the arcane VDISCARD and unsupported by Posix & Linux.
djsumdog 6 ago 2 replies      
huh. That's really interesting. I assume ^L is handled in the tty driver as well?
Lessons from a 45-year Study of Super-Smart Children scientificamerican.com
485 points by kungfudoi  5 ago   451 comments top 59
squigs25 5 ago 9 replies      
Interesting read, but I have one major qualm about this.

There seems to be a confirmatory bias among the academic community that a measure of intellectual success can be found in the percentage of individuals who earn a PhD. Sure, it's true that you need to be reasonably smart to earn a PhD, but I think that someone can have a lot of intellectual success (potentially just as much or maybe more) if they don't earn a PhD.

I think you could even argue that, depending on the field of study, a PhD is the "easy" route for someone who is intellectually gifted - it's a simply a continuation of what you have been doing. I would be more impressed by the intellectual who not only realizes that they can conduct their own independent research, but also has the creativity to come up with a use case that can improve and contribute to the world (and presumably, make a living doing so).

My point here is that, given two gifted cohorts, one which has a 45% PhD graduation rate and one which has a 50% PhD graduation rate, I don't know that you can conclusively say that one is more gifted than the other without looking at other metrics associated with intellectual accomplishment.

Isamu 5 ago 22 replies      
> Such results contradict long-established ideas suggesting that expert performance is built mainly through practicethat anyone can get to the top with enough focused effort of the right kind.

Actually the claim is the other way around - that the people at the top got there through focused effort of the right kind.

Finding "gifted" children does not contradict this. Nobody pops out of the womb a math genius.

Gifted children are "gifted" with a laser focus on the unusual things that they find fun - math, music, what-have-you. They spend countless hours playing with numbers or with music, while little Johnny is playing with a ball.

I was one of these kids, I played with geometric objects, with music, etc. Sure I was weird sometimes. I didn't have anybody to share my interests with.

Anyway, point is, when people point to "gifted" talent, this is just another cop-out. They don't have an explanation. They are appealing to everybody's shared sense of magical outcomes.

But it boils down to the hours that kids put into their interests.

spdionis 5 ago 11 replies      
> Pioneering mathematicians Terence Tao and Lenhard Ng were one-percenters, as were Facebook's Mark Zuckerberg, Google co-founder Sergey Brin and musician Stefani Germanotta (Lady Gaga), who all passed through the Hopkins centre.

Didn't expect Lady Gaga to be listed although it confirms one of my pet theories. It has long been my opinion that success in STEM fields correlates with general high intelligence which will affect strongly with a person's success in her field, be it maths or sculpture.

It's only anecdotal but I've noticed that people that have a good grasp of maths when young also excel in their other favorite activities, even if it's physical activities.

EDIT: more thoughts on the article

> In Europe, support for research and educational programmes for gifted children has ebbed, as the focus has moved more towards inclusion.

This is truly a pity, and it's not only about educational programmes, but the general mentality in Europe is against competitiveness, and sometimes people will even frown at you if you suggest that there truly are different intelligence levels among the population.

Meanwhile in East Europe (namely Romania, Moldova, Ukraine, Russia, probably other countries too but I don't know anything about them) competitiveness between children is crazy high in some circles and that's why a lot of the best engineers come from that area.

There was a comment here the other day on a post about interviewing saying that russian candidates were much more likely to excel at technical interviews than european candidates, and in my experience many more engineers in this area are really dedicated to their work.

trendia 5 ago 4 replies      
> A high test score tells you only that a person has high ability and is a good match for that particular test at that point in time, says Matthews.

If Matthews is correct that scores are transient, then we'd expect test scores to have little to no predictive ability. In other words, we'd expect the rate of career achievement among high test takers to be approximately equal to the rate of achievement among low test takers.

But this claim is directly contradicted by actual evidence:

> Follow-up surveysat ages 18, 23, 33 and 48backed up his hunch. A 2013 analysis found a correlation between the number of patents and peer-refereed publications that people had produced and their earlier scores on SATs and spatial-ability tests. The SAT tests jointly accounted for about 11% of the variance; spatial ability accounted for an additional 7.6%.

acscott 5 ago 1 reply      
Didn't see any answer on how to "raise a genius". The presumption is that we want more geniuses and that Ph.D.s are precious resources to society. Is there also a tacit belief here in the Great Man theory of history?

The message here is, well if you don't get a Ph.D., make a lot of money. If you don't make a lot of money, get a patent. If you don't get a patent, at least get published. There are other things that we also want to be able to cultivate other than those I bet.

When a group of geniuses could build a nuclear weapon to take out a whole country, I believe the interest in genius started to spark. Before then, what was the icon of a a genius (I'm thinking before Einstein became iconic)?

The article is interesting, what were the lessons though?

There are other measures of value to society other than STEM publications, income, patents, and Ph.D.s It's often the outliers that don't even fit the Gaussian that are more interesting to me. (Feynman said he scored 120 something on an IQ test.)

dhd415 5 ago 0 replies      
The article is short on actual lessons learned from the study. Two representative paragraphs:

 SMPY researchers say that even modest interventionsfor example, access to challenging material such as college-level Advanced Placement courseshave a demonstrable effect. Among students with high ability, those who were given a richer density of advanced precollegiate educational opportunities in STEM went on to publish more academic papers, earn more patents and pursue higher-level careers than their equally smart peers who didn't have these opportunities. Despite SMPY's many insights, researchers still have an incomplete picture of giftedness and achievement. We don't know why, even at the high end, some people will do well and others won't, says Douglas Detterman, a psychologist who studies cognitive ability at Case Western Reserve University in Cleveland, Ohio. Intelligence won't account for all the differences between people; motivation, personality factors, how hard you work and other things are important.

Practicality 5 ago 2 replies      
This article is a bit of a mess regarding who it is talking about. It hops around and changes it's target constantly.

Sometimes it is talking about people in the .01%, AKA, 1 in 10000, so actual geniuses. Sometimes discussing people in the above average range, IQ of 120+, which is about 10% of the population (depending on your test), as well as people in gifted programs, which again, depending on your test is the top 1 or 2%.

These are three different cohorts with different needs. The top 10% need to be continually challenged so they can find satisfying careers. These are your class president types, people who really excel within the program, I think society serves these types well.

The top 1% are your gifted people (again, I know definitions vary), and they usually need something extra. Depends on the person, but it might be extra math or extra latin studies, or the ability to do side projects, but they generally flourish with something special.

The top .01% though? I have no idea. Most here on HN are in one of the other two groups (sorry, me too). The article seems to say that they just need to skip grades. But it's hard to tell if they are right since they are talking about a moving target.

(Edit: Adjusted the % for IQ of 120 based on this chart: http://www.iqcomparisonsite.com/iqtable.aspx)

Jimmy 5 ago 6 replies      
I get quite depressed when I read articles like this. I'm resentful of the fact that my early academic performance was merely above average, rather than exceptional. Some days I feel confident in my abilities and my plans for the future; other days, I fear that it's already too late for me to accomplish anything of note.
CurtMonash 5 ago 1 reply      
I probably count as some kind of example.

-- I was born in 1960.

-- I got my first algebra book when I was 4, and aced the subject immediately.

-- I had one IQ test score higher than the one that got Marilyn vos Savant into the Guinness Book of World Records.

-- The National Merit folks thought that I was the youngest winner of their scholarships until that day.

-- I got a math PhD from Harvard when I was 19.

-- At least up to a point, I check a lot of the usual boxes, like music and chess.

That said, I was not some kind of math genius. Ofer Gabber and Ran Donagi were at Harvard when I was, having started in grad school at 16 and 17 respectively (I started at 16), and both were clearly better at math than I was, even adjusted for age.

More particularly:

-- When I was young, I was really, really good at keeping a problem in my mind and worrying at it until I made progress. I could fall asleep doing that and keep going when I woke up. I understand that's quite unusual, and as I aged I lost the ability myself.

-- I'm not particularly good at spatial reasoning. I can power my way through some of it by raw inferencing, at which I am indeed very good, but that's about it.

-- I can learn a bit about any subject and appreciate key issues in it very, very quickly. That's reflected in my actual career, and also in the large number of subjects I dabbled in in school.

-- I probably COULD have been world-class somewhere in the vicinity of economics/public policy (as academic areas). But I was burned out on academia at age 21, after 9 years at universities, left for the business world, and never went back.

-- I don't know how good I'd have been as a computer scientist. I never tried.

sverige 5 ago 0 replies      
I'm one of those gifted children (at least by the measure of standardized tests) who were missed by the people looking for them, I reckon. I was always in the .999 percentile on those (SAT, ACT, GRE, LSAT), was very good at math and loved it at a young age.

Somewhere in my teens I lost the desire to achieve all this stuff discussed in the article. Intellectually it would not have been difficult, but emotionally I didn't give a shit. I didn't really mature until I was in my 30s or 40s (and some would say, not yet!).

Sometimes I think, well, I wasted my life. Then again, although I haven't done anything noteworthy, I have no regrets for the life I have lived so far, even though many would say I "squandered" a lot of talent. The core values instilled in me by my parents are intact and actually stronger, and those values don't place much emphasis on reaching the pinnacle of success as described in the article. Frankly, the responsibility for shaping the world into what it has become would be almost too much to bear.

My advice would be that if you are one of those high achieving geniuses, it is worth thinking about yet again whether what you value is the best it can be. If you have a very gifted child, be extraordinarily careful about who you allow to influence them for as long as you can. Teach them your values, and make sure they're worthwhile.

I still recall a story about Thomas Aquinas in his old age. He realized that his magnum opus, the Summa Theologica, was worthless vanity and tried to destroy it. The professor or author who told the story said, "Fortunately, he was prevented from doing so." But was it fortunate? Who better to judge than its author what its true value was? How many of these people will find small comfort in their accomplishments when they reach a ripe old age?

But talking this way is very unpopular, I realize.

gbog 5 ago 5 replies      
It seems weird to me that nobody seems to see the evidence: as a parent you just want your kids to be happy. Happy in the correct way, which means long-term happiness, built with good cultural background, reasonable social skills, constructive hobbies, ability to have some of those good friends, etc.

Most of these are not achieved if you're kid is "super smart". Being the father of Einstein is probably very good for the ego, but "being Einstein" is a curse. (Same with pop or movie stars: people that get a lot of attention are less happy.)

ebbv 5 ago 0 replies      
I feel like we put too much weight on the idea of detecting intelligence in children. I always did really well on all tests as a kid, getting 100% on assessment tests and crap. But I'm a total dumbass. Just look at my comment history.

Just raise your kid the best you can, if you are trying to purposely craft a genius you'll probably just instead make someone with serious performance anxiety and neurosis.

corysama 5 ago 2 replies      
I skimmed the article pretty quickly because I was looking for the answer posed by the title and rightly expecting 90% background and filler stories. I didn't find much in the way of answers... Let me know if I missed anything.

Why some kids excel greatly beyond most others is still pretty mysterious. Don't call them gifted. High school is not a great social environment for introverts to learn in. Just give them access to more advanced material. Spacial ability may play an important role and we aren't focusing on it much.

Anything else?

bsder 5 ago 0 replies      
The problem with studies like these is that, in almost all fields, we find that the average is much better than the average of 50-100 years ago while the top is only slightly better.

This holds across things that even have physical components like athletics or music. The virtuosos of yesteryear may be as good as the virtuosos of today (and I dispute that) but the average orchestra player is WAY better today than even some of the best players of 100 years ago. Similarly, the average athlete today is WAY better than the average athlete of 50 years ago.

Training and education matter.

HillaryBriss 5 ago 1 reply      
> ... these people really do control our society, says Jonathan Wai, a psychologist at the Duke University Talent Identification Program ... "The kids who test in the top 1% tend to become our eminent scientists and academics, our Fortune 500 CEOs and federal judges, senators and billionaires

The article assumes that promoting these super-bright people and geniuses is the way to solve the difficult problems the rest of us face. There's a faith in the generosity and altruism of these high-performers.

But, I see plenty of selfishness in their behavior too.

It seems plausible that the top layer of brilliant geniuses is creating as many problems for the rest of us as it is solving. Maybe the top layer of brilliant geniuses mostly focuses on work that is personally enriching (e.g. financial engineering, patent lawsuits, investing in 140-character-type startups, pharmaceuticals that don't actually cure diseases, etc)

Maybe what society needs is not "more geniuses" but a better system of regulations and incentives for existing geniuses.

yomly 5 ago 1 reply      
As someone interested in education (of self and of others) and generally interested in the notion of talent itself, I have been trying to form my own personal understanding of what it means to be talented.

My fundamental belief is that almost anything can be learned under the right instruction. Talent determines two things:

1 - your upper ceiling of "achievement" in a particular dimension, and

2 - how far you can progress within a given dimension without instruction.

That is, a naturally gifted person is likely to get very good at something they were "destined to do" regardless of if they had any decent instruction. With the right instruction, they may well reach some stratospheric heights.

1 is important because at some point a talented individual reaches a place where there is no longer any one person who can teach them anything new in their dimension and so they have to rely on their instinct to progress further.

Schopenhauer had the quote:

 Talent is like the marksman who hits a target which others cannot reach; genius is like the marksman who hits a target which others cannot even see.
There seems to be some conflict in how Schopenhauer interpret talent and genius, but that final sentiment is important to my point regarding a talented/gifted/genius individual not requiring instruction. No one can really teach you how to push a field to new unreached heights.

My personal favourite anecdote of genius is when Chopin's first musical teacher Zywny refrained from teaching him (aged 8 years old) any keyboard technique lest he interfere with his natural instinct. In his later teenage years and early twenties went on to write music quite unlike anything written for the piano at the time - thanks to his unorthodox technique.

20years 5 ago 0 replies      
"They're just developing different talents," says Lubinski, a former high-school and college wrestler. "But our society has been much more encouraging of athletic talents than we are of intellectual talents."

Bingo! Along with our society has been much more encouraging with the extrovert personalities vs the introverts.

I encourage everyone to read the book Quiet by Susan Cain.

aquiles 5 ago 2 replies      
I'm so glad I'm over my "being super-smart" phase and into my "being a well-rounded, functional human being" phase.

People who fetishize things are the source of all things bad in the world.

inputcoffee 5 ago 1 reply      
Consider this:

Their gift is the ability to work hard.

They are able to work hard because they find it fun.

Q: We have all felt the "fun" of learning math (for instance), so how do we share that with others?

ausjke 5 ago 2 replies      
I probably had a gifted kid but never had enough bandwidth to lead him, comparing to his siblings he just memorizes so well(e.g, mechanically memorized PI to 600+ digits in two days until I asked him to stop), doing high-school-level math at 4th grade, learn many things by himself and so on. Meanwhile he is bored, hard to make peer friends due to lack of shared interests, etc.

Everyday I have to work and care for other kids, I tried to home-school him but then you get the financial pressure quickly.

I wish there are some programs that can help kids like him, i.e. group them somewhere to study and learn from each other. We have quite some program taking care of the disadvantaged kids, what about the gifted ones? After all, they can potentially contribute to the society in some way that helps many others. We probably need a state-level or federal-level or even college-sponsored program for those really gifted kids.

No I'm not talking about the gifted class in the school district, those helps, but far from enough for those really gifted, you probably only have about 5 who are really gifted in each school district.

sitkack 5 ago 0 replies      
The gift is being interested in something and feeding ones own curiosity. It is the difference between an organism that grows only when fed vs one that feeds itself. I was "gifted", the biggest factor was an environment of experimentation and exploration. Questions with answers beget more questions. Feed that cycle.
vonnik 5 ago 0 replies      
The popularity of comments about hard work on this thread make me think that it's difficult for people to accept studies like this. And for two reasons: 1) We are born with very different innate abilities, which leads to great inequalities in our lives together, and 2) That innate difference is not to the credit of the gifted. They had nothing to do with it. It's like being born rich or white or male or American or all of them at once. So it's an undeserved privilege. An yet people born with such talents should be treated differently. We should cultivate them, because they can do so much to advance society. To those who have much, much is given...
maus42 5 ago 0 replies      
Interesting read. However, I wonder if for education purposes it would better if every student who is bored with their current schoolwork could just move into more advanced materials until they are not bored, instead of trying to spot the "super geniuses" early on and leaving the rest, the "not talented enough", to continue with the normal course material.

Because if you have some kind of test for identifying the geniuses who can enter your "special gifted genius program", the test is going to have a some cut-off line or threshold, and that's going to be unfair. For example, assume you're using an IQ test, and the kids who score above some arbitrary threshold would be ushered into the special awesome program, but the kid who scores only one point below the threshold does not get in. Even if the difference is just one point ... That would be a quite silly (and deeply unfair) policy, because there's always going to be some random noise in the test taking.

jupiter90000 5 ago 0 replies      
Interesting piece from one of the studies referred to by article: "...many individuals who completed their degrees in non-math-science areas ultimately chose math-science occupations, and vice versa. Among mathematically talented populations,the leaking pipeline is not an appropriate metaphor. Upon reflection, this fluidity is not surprising for mathematically precocious females. In samples of males and females selected for mathematical talent, females display higher levels of verbal ability than males, and also more uniform levels of mathematical and verbal ability. Thus, mathematically precocious females more often than mathematically talented males are endowed with talents that enable them to excel with distinction in domains that require highly developed verbal-linguistic skills (these skills and the flexibility they lend could perhaps propel these individuals in varied directions, in part because verbal-linguistic skills tend to co-occur with social, or organic, interests and values)."
intrasight 5 ago 0 replies      
Whether we like it or not, these people really do control our society,

Personally, I like it. Clearly SMPY recruits have changed the world for the better.

k2xl 5 ago 1 reply      
So... the higher a students test score the more likely they are to be a scientist - isn't that a truism? In order to become a scientist you have to get accepted into universities ... that will look at your test scores as judgement of whether you should be admitted.

Can anyone think of a notable scientist that didn't do well in school? We don't really encourage people who perform poorly on tests to become scientists - so none of these results are surprising.

How many students that score in the high .01% on tests end up becoming professional athletes? Or a rapper? Probably just as unlikely as a student who scores in the low .01% becoming a doctor.

Is it because smart people aren't interested in sports or don't like rap music? Doubt it.

For better or worse, our society pushes archetypes. If you do well on biology tests you are "supposed" to become a biologist. Good with computer? Become a programmer.

brooklyndude 5 ago 2 replies      
Hung out with a brilliant heart surgeon, genius. I asked him about what cartoons he watched growing up.

He said "what's a cartoon?" He was dead serious. Parents would never let him not study. Never.

100+ hour weeks. Zero time for anything else. He was happy, rich, had it all. But wondering if he every found time to watch a cartoon.

ckcortright 5 ago 0 replies      
Naturally, when the result of a scientific study is entangled emotionally with something so personal like intelligence, it is hard to look at the results without bias. Lots of people are going to have a problem with this study, because it literally makes 99.999% of the population feel inadequate.
betenoire 5 ago 5 replies      
But are they happy?
bluetwo 5 ago 1 reply      
I agree with the article that spacial ability is an untapped resource, key to understanding and problem solving.

I think there is a pretty easy way of testing this, simply by finding out what they find funny.

Different kinds of humor tap this skill, and those drawn to certain types of humor, IMHO, likely have better spacial skills.

sharemywin 5 ago 0 replies      
My question is how many doors did this program open up which led to the success they were trying to measure.
ck425 5 ago 0 replies      
I've not went and read any of the actual studies, only the article, but it seems that they start measuring kids around the age of 10 onwards, is this not too late?

One of the themes seems to be that certain measurements of ability at this age were accurate indicators of future success if the kids were not discouraged (ie allowed to push themselves and learn more advanced stuff). But by age 10 surely most kids have already been discouraged? I was reading another article earlier today that I can't find talking about pre-school being more important for life chances than high school. Could it be far more kids than we think are capable of being 'geniuses' and that the majority are discouraged at an early age? I'm not read up on this so if anyone is please share!

joesmo 5 ago 0 replies      
"Many educators and parents continue to believe that acceleration is bad for childrenthat it will hurt them socially, push them out of childhood or create knowledge gaps."

And we still wonder why in the US our children are so stupid? Clearly, they're getting a lot of help in being the dumbest they can be. To hold a child back from their full potential so they can be bullied and made fun of for another year or few is an atrocity that should be criminalized. I can think of few things worse than ruining a child's life in this way. Instead, these people are our children's' teachers, teaching them to be mediocre, stupid, mindless, lazy, underachieving idiots.

walterbell 5 ago 0 replies      
Mailing lists, blogs and social media resources for gifted education: http://www.hoagiesgifted.org/on-line_support.htm
hackaflocka 5 ago 1 reply      
Survivorship Bias (what Taleb calls Silent Evidence).

What's missing: all the children whose parents raised them the same way, and who ended up committing suicide, or are in mental institutions, or fill the ranks of the homeless today.

timwaagh 5 ago 2 replies      
why is it bad to label somebody ungifted? if i had known before i did not have what it takes to become a good mathematician, i would perhaps not have pursued that. maybe i would have saved myself a lot of trouble.
lutorm 5 ago 0 replies      
I don't doubt that there's a wide range in people's aptitudes for various subjects. However, when it comes to the study cited, it seems there's no control sample so you can't tell what part of the outcome is really because these people are special and what is because some study identified them as special when they were children and they've gotten special opportunities ever since.
pmoriarty 5 ago 0 replies      
Anyone interested in the nature-nurture debate, and prodigies should take a look at Stephen Wiltshire (the "human camera"):



andrewvijay 5 ago 0 replies      
Hope indian parents don't read this article!I'm pretty sure that they will start looking for signs immediately. :D pray for the kids!
RonanTheGrey 5 ago 0 replies      
For those of you getting 500 or "Article not found", SA has blocked the ycombinator.com referer url. Just open the link in a new tab.
jonathanedwards 5 ago 0 replies      
I was "student one". AMA. I dislike that the title of this article conflates intelligence and genius. Genius is impact, not talent. The one thing I've learned is that intelligence is highly overrated. Especially in the thing I know the most about: programming.
kazinator 5 ago 0 replies      
Ask HN: I'm quite interested in this, but it's a long read; can someone who has taken the plunge summarize these lessons? Though there are many comments already, searching for terms like "TL" and "summary" yields nothing.
0xdeadbeefbabe 5 ago 0 replies      
Instead of super-smart they ought to say good at something, because concepts like super-smart got us into this mess.

I know of a kid who was responsible for a sheep herd at the age of 12. He'd live in the mountains and take care of sheep for weeks. Have some imagination.

perseusprime11 5 ago 1 reply      
This reminds me of a Bruce Lee quote. My opponent practiced 1000 kicks and I practiced a kick 1000 times. I am paraphrasing that quote But he mentioned this in the context of focus and priority to become great at something.
truth_sentinell 5 ago 0 replies      
What do people actually mean when they say "genetics"?

Is it some physical aspect of the brain (like more neurons, more connections among them, etc) or is it that somehow the ability to do Math or any other thing is coded into their DNA?

I'm confused.

colordrops 5 ago 0 replies      
My martial arts teacher told me a relevant proverb: people are like vessels, some larger than others, and the vessel with less capacity can still hold more water.
Kazamai 5 ago 0 replies      
There is a characteristic not mentioned that can determine if someone will reach a high level or not. Self gratification or the ability to delay self gratification. The "marshmallow kid", even a gifted kid that cannot fight their own human condition to seek a dopamine reward from eating, entertainment, etc can't reach their potential. If you got a reward from problem solving and knowledge acquisition then it wouldn't take much to focus.

Why can we focus for hours gaming, but when it comes to solving a math problem, most of us will never start or stop shortly after.

ChuckMcM 5 ago 0 replies      
I think the integration with the existing education system is, and will continue to be, problematic. One thing that really brought that home for me was how kids who were developmentally behind were given extra care and attention and kids who were developmentally ahead were not. At the extreme ends (very behind, very ahead) the contrast is startling both in programs that are available and in how the school "celebrates" the achievements of the students in those categories.
jasode 5 ago 0 replies      
Despite the article's title which gives the impression of unlocking the training secrets to "produce genius scientists", it is actually a "Nature vs Nurture" report. This particular article is biased more towards "nature."

The opposing sides are mentioned in the middle of the article:

>Such results contradict long-established ideas suggesting that expert performance is built mainly through practicethat anyone can get to the top with enough focused effort of the right kind. SMPY, by contrast, suggests that early cognitive ability has more effect on achievement than either deliberate practice or environmental factors such as socio-economic status.

The sentences favoring either "nature" or "nurture" are interwoven and alternate throughout the piece but the 2 sides can be seen more clearly by grouping them together...

Excerpts about "nature":

>, what has become clear is how much the precociously gifted outweigh the rest of society in their influence.

>Wai combined data from 11 prospective and retrospective longitudinal studies, including SMPY, to demonstrate the correlation between early cognitive ability and adult achievement. The kids who test in the top 1% tend to become our eminent scientists and academics,

>But data from SMPY and the Duke talent programme dispute that hypothesis [about practice time]. A study published this year compared the outcomes of students in the top 1% of childhood intellectual ability with those in the top 0.01%. Whereas the first group gain advanced degrees at about 25 times the rate of the general population, the more elite students earn PhDs at about 50 times the base rate.

Excerpts about "nurture":

>For those children who are tested, it does them no favours to call them 'gifted' or 'ungifted'. Either way, it can really undermine a child's motivation to learn.

>In Europe, support for research and educational programmes for gifted children has ebbed, as the focus has moved more towards inclusion.

>Matthews contends that when children who are near the high and low extremes of early achievement feel assessed in terms of future success, it can damage their motivation to learn and can contribute to what Stanford University psychologist Carol Dweck calls a fixed mindset. It's far better, Dweck says, toencourage a growth mindset, in which children believe that brains and talent are merely a starting point, and that abilities can be developed through hard work and continued intellectual risk-taking.

>There's a general belief that kids who have advantages, cognitive or otherwise, shouldn't be given extra encouragement; that we should focus more on lower-performing kids.

basicplus2 5 ago 0 replies      
Whether we like it or not, these people really do control our society,

I'd be pretty disappointed if this is actually true..

ianai 5 ago 0 replies      
I think there is so much more going on that our systems don't account for and thus fall short.
spamcoat 5 ago 0 replies      
I will not deign To now refrainFrom laying bear the nudity of scholarsWho think their robesBefitting clothesAnd prove it to themselves in words and dollarsThe fittest mindsIn all mankindRegret now all they ever took for grantedRemove your blindsAnd see the signs;There's more to all than said will be recanted.
zizzles 5 ago 0 replies      
In to make a post before a bunch of narcissist HN'ers (subtly) brag about their childhood accomplishments of being math wizards and programming assembly at age 6 and a half.

Edit: Too late.

lordnacho 5 ago 0 replies      
My 2 cents:

- How do we control for self-fulfilling prophecy? I would imagine that having "Member of gifted kids study" will be quite impressive to the gatekeepers at elite universities. Did they add a few dummies to control?

- How do we even measure ability? You'd think the smart kids are smart because they try to learn the things that are tested. It's like testing people for strength. People who've trained are stronger. And they want to be.

- It makes sense that spatial ability is somehow predictive. Nobody ever teaches it, so you're left with whatever nature gave you. Probably like testing someone's toe strength as an indicator of overalll muscle quality (not that I know anything about physiology, it's just that I've never seen anyone at the gym training their toes).

- From what I can tell, it helps an awful lot to have someone nearby who has the skills you're after. Look at the people mentioned. Terence Tao's parents were both highly educated in STEM. Lenhard Ng's dad is a Physics prof. That kind of resource takes you an awfully long way along your path. I mean imagine being able to ask the guy you eat dinner with every night anything from "what is a prime number" to "what's the quantum hall effect". If you don't happen to have a parent, it probably helps to go to a school that is well resourced. There will be teachers around who find time for the kids who show aptitude. I remember being put up a year in math and sent to math contests. I don't think I'd have studied it as much if I hadn't been noticed by the teachers at a young age.

- There's an inherent conflict between society's goals and the gifted. It's a lot more economical to pour money into the mediocre for society. You want to teach everyone to read, write, and a little math. It's cheaper to produce that resource, and it's at the margin you get the most bang for your buck. PhDs cost a fair bit to fund, and like that famouns xkcd, you are only slightly enlarging the world's knowledge. Putting a kid in front of a world authority is expensive.

- It may not be so bad that society doesn't spend money on the gifted (I'd rather call them the more motivated, but...) than the marginals. It's possible that the mass of money needs to be spent making sure everyone can be a little educated, while a rather different effort is made to help the gifted. For instance, what I really, really needed as a kid was other kids who cared. These days that should be easy enough to arrange over the internet.

- There will be a natural experiment occurring soon, right now, about whether it's innate ability or exposure. The proliferation of materials on the internet will create a bunch of kids who are able to learn huge amounts about whatever they're interested in, before they even finish school. When I was a kid, you had to lug your ass to a library to find out what a quaternion was. And it wasn't a specialist library, and there'd be a chapter or something like that. These days there's a flood of information, you just have to type into google. There's so much that if one guy doesn't explain it well, another guy will.

blowski 5 ago 0 replies      
I'm getting a 500 error on this page... anyone else getting the same problem?
karma_vaccum123 5 ago 6 replies      
I just knew these comments would fill up with humblebrags from HNers who wish to casually and inoffensively proclaim their genius.
shinta42 5 ago 1 reply      
fragola 5 ago 3 replies      
>Stanley convinced a dean at Johns Hopkins to let Bates, then 13, enrol[sic] as an undergraduate.

>I was shy and the social pressures of high school wouldn't have made it a good fit for me, says Bates, now 60. But at college, with the other science and math nerds, I fit right in, even though I was much younger. I could grow up on the social side at my own rate and also on the intellectual side, because the faster pace kept me interested in the content.

OK, I might take a lot of heat for this, but I don't think it's a good idea to put a 13-year-old with college students. In this case, he was a boy, but imagine if he were a girl? One of the main causes of failure to achieve educationally for bright girls is getting pregnant. 40% of the fathers who impregnate girls under 15 are 20-29 years old [0]. So in the case of girls, this is a super visible obvious problem, but what happens with a teenage boy? I could see him getting in an abusive relationship or otherwise preyed upon in a zillion ways.

This article takes a blas attitude toward the social concerns and cites no sources about the actual social outcomes for these kids. Let your kid study by themselves, send them to a gifted child summer camp, etc.


Vim 8.0 released groups.google.com
592 points by laqq3  15 ago   256 comments top 30
znpy 14 ago 4 replies      
Given the occasion, and given that vim is charity-ware software (http://charityware.info/), it would be cool to have some sort of HN-wide donation to ICCF (http://iccf-holland.org/).

Donation page: http://iccf-holland.org/donate.html

It seems that you can send bitcoins too: http://iccf-holland.org/bitcoin.html

Imho just mentioning HN in the payment description would be okay :)

thedz 15 ago 4 replies      
Notable improvements:

- Async /Io

- Async Jobs

- "Packages", which allow easier built-in bundling of plugins

I'm pretty excited for this release! I've been using Neovim for several months now, but really great to see mainline Vim get these (IMO long overdue) enhancements.

kozikow 14 ago 7 replies      
I moved to http://wikemacs.org/wiki/Evil and I am happy with the transition. Spacemacs seems to be a good choice nowadays.

Magit and org-mode are worth it.

Tehnix 50 ago 0 replies      
Kudos for finally getting async support! :)

That said, I feel like this is a perfect example showing off that the best way (or a at least a very good one) out of stagnation of a piece of software is competition. VIM was dead in the water for a very long time (aync support looking at you), which is but one of the reasons NeoVIM was created, in turn sparking VIM to actually get off its laurels.

I can't help but draw parallels to the Haskell community with stack and cabal-install, to the people that might be familiar with that situation.

Anyhow, I guess I just wanted to also thank NeoVIM for pushing some life into VIM again, besides having it more or less in maintenance mode.

pacuna 1 ago 0 replies      
I've tried nvim, sublime's vintage mode, atom's vim mode, visual code's vim mode, jet brains' vim mode, spacemacs and always end up going back to vim. I know it's far from being perfect. All of those other alternatives have features I wish vim had but at the end there's just no comparison against the flow you can get with something like tmux/vim/plugins
hoodoof 1 ago 0 replies      
I made the terrible error of trying to use vim as an IDE when I was learning to program. Honestly I think it set my progress back 75%.

Don't get me wrong, I use vim all the time cause it's there on any machine I log in to, but I found I was MUCH more productive when I paid for a good IDE for development.

And YES I tried using all the plugins to make vim into an IDE. That was half the problem.

danielrm26 12 ago 0 replies      
I submit my Vim Primer for your consideration.


Going to download and see what Prezto stuff breaks when I upgrade.

nerdponx 15 ago 2 replies      
Is there feature/API parity between Vim 8 and NeoVim? I would hate to see the community fragment and disintegrate.
juandazapata 13 ago 2 replies      
Thanks for the work done here. I'm not a VIM user anymore (I use Spacemacs now), but it opened my eyes/mind to what is a professional code editor. After using VIM, using any other editor feels like programming in Notepad. VIM you'll always be in my heart.
weinzierl 8 ago 1 reply      
Bram will give a talk about Vim 8.0 on Saturday at Vimfest in Berlin. I'm looking forward to be there.

[1] http://vimfest.org/#agenda

HugoDaniel 14 ago 2 replies      
I moved to nvi. Feels good to go back a notch and realise that you actually don't need all of the other stuff to produce quality code.
tombert 14 ago 0 replies      
This is pretty rad. I've used Neovim for a few months now, but I always wanted to keep using the "official" editor due to it's support on pretty much every OS.

Async is basically the reason I used NeoVim, so it feels good to come back.

mbgaxyz 10 ago 0 replies      
Here is the md5 checksum for the Windows binary (it's not shown on the website): 2ea0e00657f0cabf2f314b8a8f794271

Windows: ftp//ftp.vim.org/pub/vim/pc/gvim80.exe

MD5SUMS: ftp://ftp.vim.org/pub/vim/pc/MD5SUMS

owaislone 6 ago 0 replies      
Great! I've been using neovim for the last year and it is pretty awesome. Hope 8.0 bring similar improvements to Vim as well. Hopefully, they'll merge back some day but even if they don't, I think neovim is here to stay. It has had amazing progress and so many contributions.
Lio 12 ago 3 replies      
I didn't see anything in the release notes but does anyone know if Vim 8 adds true colour terminal support?

(I realise that NeoVim has this.)

hossbeast 4 ago 1 reply      
Just gave neovim a try, and my favorite thing so far is that this command works (but does not with vim and has always bothered me)

$ find foo | xargs nvim

dominotw 14 ago 1 reply      
anyway to get this on osx now

Readme seems incomplete


limaoscarjuliet 13 ago 2 replies      
The biggest power of vi for me is about it running on pretty much anything. If it has a keyboard and a screen, it has vi.

While I usually stick to I, A, N+G, Shitf-ZZ and :q! only, I appreciate the effort and keeping vi alive and well.

Big thanks!

nulagrithom 13 ago 0 replies      
Looks like there's a new :smile command


typon 12 ago 2 replies      
Neovim for life. On my Mac it performs so much better than Macvim.
daveloyall 12 ago 0 replies      
In case you were looking for the Changelog: https://raw.githubusercontent.com/vim/vim/master/runtime/doc...
yaasita 2 ago 0 replies      
I created docker image.

docker run -it -e TERM=screen-256color yaasita/vim:8.0 vim

eof 13 ago 0 replies      
I've used vim, pretty heavily customized, for almost a decade now. It seems to me perfect, and if not perfect, I just change it so it's perfect.

I've been using pathogen for a while for plugins..

I will happily give 8.0 a try, but I have never used such perfect software such as vim (and I also don't follow its dev cycle at all) I am really, really surprised a new version came out. I figured I'd be using the same vim until keyboards were completely out of style.

fiatjaf 14 ago 0 replies      
Finally a "Save to Dropbox" feature!
Scarbutt 5 ago 0 replies      
Does this new features means that vim can finally have lisp REPLs a la emacs?
Zardoz84 13 ago 1 reply      
Ok, and when would be for Cygwin ?
dcu 15 ago 2 replies      
you can find the release notes here: http://vimhelp.appspot.com/version8.txt.html
freewizard 13 ago 1 reply      
the linked appspot site is 503 over-quota. anyone can change the url to




qwertyuiop924 13 ago 2 replies      
Oh Vim...

If you're going to lightweight and vi-like, than do that. If you're going to go the Emacs route (and if you're adding async, packaging, and lambdas, make no mistake, you're starting in the steps to building an inferior Emacs), than get a half-decent extension language. Or just up and die. We don't need a Vi clone that does the Emacs thing, we've got Evil/Spacemacs for that.

Capn Proto capnproto.org
524 points by bleakgadfly  2 ago   177 comments top 23
kentonv 2 ago 15 replies      
Hi all, Cap'n Proto author here. Thanks for the post.

Just wanted to note that although Cap'n Proto hasn't had a blog post or official release in a while, development is active as part of the Sandstorm project (https://sandstorm.io). Cap'n Proto -- including the RPC system -- is used extensively in Sandstorm. Sandboxed Sandstorm apps in fact do all their communications with the outside world through a single Cap'n Proto socket (but compatibility layers on top of this allow apps to expose an HTTP server).

Unfortunately I've fallen behind on doing official releases, in part because an official release means I need to test against Windows, Mac, and other "supported platforms", whereas Sandstorm only cares about Linux. Windows is especially problematic since MSVC's C++11 support is spotty (or was last I tried), so there's usually a lot of work to do to get it working.

As a result Sandstorm has been building against Cap'n Proto's master branch so that we can make changes as needed for Sandstorm.

I'm hoping to get some time in the next few months to go back and do a new release.

Cyph0n 2 ago 3 replies      
For some reason, the banner (infinitely faster?), name, and introductory FAQ-style responses made me think the whole thing is a joke - similar to Vanilla JS [1].

Anyways, it seems like a cool project, so I'll be sure to follow its development closely.

[1]: http://vanilla-js.com/

niftich 2 ago 2 replies      
I've always liked Cap'n Proto because it was (quite literally) the ideas behind Protobuf taken to an extreme, or, depending on your point-of-view, reduced to its most basic components: data structures already have to sit in memory looking a certain way, why can't we just squirt that on the wire instead of some fancy bespoke type-length-value struct?

Of course, the hardest part is convincing everyone that it's not your bespoke type-length-value struct, but that you have good reasons for what you're doing. I think the humorous, not-so-self-serious presentation has worked in its favor (but that's just a subjective opinion and I can't back it up with data).

throwaway13337 2 ago 5 replies      
To get an overview of the area of binary interchange formats that are language agnostic, the author of Cap'n Proto does a good job in this:


"Protocol Buffers" has been the go-to for a long time but there are more options now.

For uses where serialization/deserialization CPU time is a concern, it seems to really a question of Cap'n Proto versus flatbuffers ( https://google.github.io/flatbuffers/ ).

Perceptes 1 ago 1 reply      
Big fan of what Sandstorm is doing, both with Sandstorm itself and this component. I really want to use this instead of gRPC, as it seems technically superior, but language bindings and adoption across language ecosystems are likely to be a big downside given that (as Kenton mentions in a comment elsewhere here) Sandstorm isn't really interested in Cap'n Proto being widely adopted. All my new stuff is built in Rust, so the Sandstorm team's interest in and use of Rust are a good fit for me. But when it comes to interoperability with other languages, this may end up being a concern compared to gRPC. In any case, I hope to see the Rust implementation eventually replace the C++ one as the official reference implementation.
venning 2 ago 0 replies      
Correct me if I'm wrong, but some of this sounds like blitting, except optimized for the in-memory structure and not the on-disk structure.

In 2008, Joel Spolsky wrote about 1990s-era Excel file formats and how they used this technique to deal with how slow computers were then [1]. Same technique, new problem set.

[1] http://www.joelonsoftware.com/items/2008/02/19.html

setori88 2 ago 1 reply      
Fractalide (http://githib.com/fractalide/fractalide) is an implementation of dataflow programming (specifically flow based programming). Component build hierarchies are coordinated via the Nix package manager. Capnproto contracts are weaved into each component just before build time. These contracts are the only way compenents talk to each other. Thanks Sandstorm.io for this great software.
megak1d 1 ago 0 replies      
I've always liked the look of this, saw it a while back but we are still using protobuf in our .NET environment simply due to the "free" schema generation using AOP/attributes [ProtoContract]/[ProtoMember] in Marc Gravell's excellent protobuf-net (https://github.com/mgravell/protobuf-net) project - I assume this would also be possible for cap'n proto.
mrfusion 1 ago 2 replies      
I hate to ask but can anyone explain this like I'm from 2000?

I guess it's a way to send data to your front end java script but not use json and this compresses it so it's faster? How much better than using json is it?

zaptheimpaler 2 ago 0 replies      
Could this be used as an alternative to Apache Arrow[1]?

[1] https://arrow.apache.org/

chaotic-good 20 ago 1 reply      
I think that compression is a must for the serialization library. Protobuf uses almost twice less memory than Cap'n Proto. Using an external compression is not an option in some cases. E.g. consider building tcp-server that communicates with thousands of clients simultaneously. Each client connection will have its own LZ4 context that should be heap allocated. I believe it's about 16KB per connection + buffers. This results in large memory consumption and a lot of random memory access and TLB misses.
wtbob 2 ago 3 replies      
> The Capn Proto encoding is appropriate both as a data interchange format and an in-memory representation, so once your structure is built, you can simply write the bytes straight out to disk!

Eh, I'd rather pay the cost of serialisation once and deserialisation once, and then access my data for as close to free as possible, rather than relying on a compiler to actually inline calls properly.

> Integers use little-endian byte order because most CPUs are little-endian, and even big-endian CPUs usually have instructions for reading little-endian data.

sob There are a lot of things Intel has to account for, and frankly little-endian byte order isn't the worst of them, but it's pretty rotten. Writing 'EFCDAB8967452301' for 0x0123456789ABCDEF is perverse in the extreme. Why? Why?

As pragmatic design choices go, Cap'n Proto's is a good one (although it violates the standard network byte order). Intel effectively won the CPU war, and we'll never be free of the little-endian plague.

It's all so depressing.

sandGorgon 2 ago 3 replies      
How do you pronounce the name? If libreoffice is bad.. This name is absolutely impossible.

Is it captain? Is it cap+n+proto?

A lot of collaboration is verbal - people sit around and talk about stuff. I don't know if it is a fun take on an American word... But it is impossible to use in the rest of the world.

I really wish you would call it something else... Unless it is personal for you :(

joshuawarner32 2 ago 0 replies      
Here's the discussion from a while ago: https://news.ycombinator.com/item?id=5482081
flatline 2 ago 1 reply      
Interfaces! Inheritance! Looks promising. Protocol buffers are nice for their compact encoding and multi-language generator support but as a schema language they are really cumbersome. Composition is pretty much all you get, there are no longer required fields, you can't even use enums as a key type in a map. I'm sure their use cases are not necessarily the same as mine but sometimes I miss just using plain old XML.
morecoffee 2 ago 1 reply      
> capability-based RPC system.

This sounds like a cool idea, but so far I haven't seen any good explanation of how it works, and why it will save me from rolling my own ACL system. For bragging about it in the very first sentence, there is surprisingly little detail about how it works.

mixmastamyk 2 ago 1 reply      
Apache thrift doesn't seem to be mentioned, how does it compare?
Twonneilb22ll 21 ago 0 replies      
I'm happy to hear from you all in glad to see you're doing all you can for updates Programs codes appreciate the hard work
Twonneilb22ll 21 ago 0 replies      
I'm happy to hear from you all in glad to see you're doing all you can for updates
Paul_S 1 ago 1 reply      
Would probably be a good idea to have a no-exceptions version.
imaginenore 2 ago 2 replies      
Is it faster than MsgPack?
matmann2001 1 ago 0 replies      
TazeTSchnitzel 2 ago 0 replies      
Blender's file format does something similar, it essentially saves a core dump to disk.
Dear Mark. I am writing this to inform you that I shall not comply aftenposten.no
657 points by Sainth  4 ago   199 comments top 26
typeiierror 4 ago 11 replies      
Sometimes I wonder that when we shower criticism on Facebook about privacy concerns, we're missing the forest for the trees. The bigger issue I see is the sheer amount of eyeballs trained exclusively to Facebook's content.

What does it mean for society when Facebook can demote a challenging but important article (say, of war reporting) in your newsfeed so it can promote your friend's Wedding photos, because an algorithm says that challenging articles cause people to leave FB, reducing page views and ad revenue?

jshevek 4 ago 0 replies      
Excerpt from http://www.dagsavisen.no/verden/the-girl-in-the-picture-sadd...

Kim is saddened by those who would focus on the nudity in the historic picture rather than the powerful message it conveys, writes spokesperson Anne Bayin to Dagsavisen.

Kim Phuc says that it has been painful to see the picture, but that it represents an important moment in history.

She fully supports the documentary image taken by Nick Ut as a moment of truth that captures the horror of war and its effects on innocent victims, writes the Kim Phuc Foundation in a statement.

hiddenkrypt 4 ago 4 replies      
> "Facebook is for the pleasure and benefit of the whole world, myself included, on a number of levels."

Wrong. Facebook is for making money. If providing users with pleasure or benefits makes them money, then that's lucky for the users.

> "Facebook has become a world-leading platform for spreading information, for debate and for social contact between persons. You have gained this position because you deserve it."

Also wrong. The second sentence, I mean.

I agree with the intent here. I agree with the outrage at Facebook. The author of this piece, too, seems to understand the futility of this open letter, and I do think it's a good thing that he's making the statement regardless. I just think that maybe he's being too generous to Mark and Facebook.

endswapper 4 ago 1 reply      
I'm posting mostly just to make the chorus louder. This was a well-thought out, articulate criticism of Facebook's policy.

It's relevant to free-speech, art, censorship, the means of production, etc., and the fact that Facebook plays a role underscores their power, and why this matters.

It a slippery slope when policy fails to achieve an appropriate, nuanced perspective.

viraptor 4 ago 1 reply      
I wonder what the solution to this is. From what I know about reviewing reports about content, it's basically a case of someone reporting the post, then the report being farmed to reviewers, then the reviewers can check the post and I optionally the context to either kill the post or leave it alone.

That means your post is one of hundreds this person sees that day and their guidance is likely "no genitalia, no nipples, and definitely never any naked children". So they act accordingly.

So what's the ideal path from here? Do you educate them about art? What's the line after that? Is this photo ok? What about the famous album cover? What about private party pictures? Etc. Can we even describe a reasonable line? Do we expect them to reverse image search every single photo for context? (Not many people could recognise that photo on its own) How many more people would be needed for clarification? What's the incentive to get them?

fsloth 4 ago 2 replies      
Facebook - context oblivious censorship on the other hand - reality-bubble forming curator algorithms on the other. Somehow the term "negative feedback loop" comes to mind every time Facebooks mechanisms to filter and market content is brought forth.

I don't think internet search engines should try to be helpful. Guessing what the recipient would like to see removes chance for serendipity and creates and information bubble with a radius given by the algorithms parameters... and then, for what is brought out, they remove the too-saucy bits. This is worse than censorship.

Torgo 4 ago 1 reply      
You're a serf on the content farm, begging your lord for a favor.
k_sze 4 ago 1 reply      
Relevant: http://www.theonion.com/article/horrible-facebook-algorithm-...

For those who don't understand why this is relevant: the important point is that Facebook was never, is not, and will never be meant for dispersing information and fostering meaningful discourse. Its only raison d'tre is entertainment and generating revenue for its shareholders, so it's rather pointless to try to fight their arbitrary rules.

If you are trying to bring up meaningful discourse on Facebook, you're not getting the right audience, because Facebook is all about reinforcement of the user's existing believes and world views.

I have friends and ex-colleagues who hold different political views than me. I virtually never see their posts on Facebook, because algorithm and machine learning. And I'm aware of that fact when I use Facebook.

Afterposten is in the media business, they understand the unwritten rules. Call me a cynic, but I feel that the only point of their open letter is to sound righteous and generate publicity.

Vertrauen 4 ago 1 reply      
I wonder how monopolized publishing is these days. If you want to get the message out about something, how much are you at the mercy of a few distribution channels and how much do we have an open ecosystem that gives everybody equal rights? I am honestly not sure.

How important is it to be on Facebook? On Twitter? On Reddit? On HN? Indexed by Google? Have connections to the Huffington Post?

If you have something interesting to say, can those forces stop you? Or will it spread because it is interesting?

If you make great art, will it become popular just because it is great? Or does it depend on your marketing skills?

Could we have technology that makes interesting, helpful content spread no matter what?

Do we have to invent some kind of "internet voting" system to accomplish this? Can blockchain technology help with this?

finid 4 ago 3 replies      
A VIP reason to have popular alternatives to services like those provided by the likes of Facebook, Google, Microsoft and Twitter that are not controlled by monster corporations.
bambax 4 ago 1 reply      
> Facebook is for the pleasure and benefit of the whole world

Wait, what? Facebook is more like tobacco: addictive, very bad for you, and very profitable.

greggman 4 ago 0 replies      
While I get this is not the main point this part stuck out for me

> Furthermore, Facebook should distinguish between editors and other Facebook-users

Sigh ... so he's asking to be marked as one of the "elite" by FB while us plebs should be treated lessor?

joesmo 4 ago 0 replies      
Soon, people will start to realize that for actual information, news, and debate, you have to venture outside of Facebook, just like you have to venture outside of TV for those things currently in the US (not a single actual news program available on broadcast or cable but plenty of "News" entertainment programs). Otherwise you're just processing mindless drivel that you already agree with and that you already know. Which is exactly the state of being Zuckerberg and other people trying to push garbage products onto people prefer. Until then, our society will probably just keep pretending that Facebook is something other than brain junk food because most people don't want to admit to themselves that they are being controlled and manipulated, and most people simply just don't give a fuck about news, history, historical photos, or anything beyond petty celebrity gossip or other such nonsense (that's why those things are pulled from timelines).
mixedCase 4 ago 4 replies      
Well that's funny. I cannot find the picture anywhere. I even tried disabling uBlock and then was promptly reminded of why I use it.
carapace 4 ago 0 replies      
I think of FB users as a kind of peasant. It is an unpleasant thought, but I cannot escape it.

Digital serfs.

joncp 4 ago 0 replies      
> Facebook is for the pleasure and benefit of the whole world

I wish that were true, but Facebook is actually for selling the world's eyeballs to advertisers.

rocky1138 4 ago 1 reply      
Am I the only one getting a 404 for the image in question?
dismantlethesun 4 ago 0 replies      
> But, dear Mark, you are the worlds most powerful editor.

If we want to treat Mark as the editor to Facebook, then he wants to tailor its content to the type of audience he wants to attract and business he is in.

Would Teen People or Vogue print a picture of napalmed children on its cover?

PavlovsCat 4 ago 0 replies      
Between this and stuff like youtube's ideas of "advertiser-friendliness" [0][1] the major websites are shaping up (down?) to be so. freaking. spineless.

[0] https://www.youtube.com/watch?v=bn3-Q1lY7fU[1] https://www.youtube.com/watch?v=EDwdBc0-uq8

eCa 4 ago 2 replies      
> If you take the liberty to challenge Facebooks rules, you will be met as we have seen with censorship.

You are in Marks living room. He has asked you not to bring certain kinds of photos to his place. You did anyway so he took the photo from you. You brought another copy the next time. Now he is getting angry with you.

Maybe you should meet at your place in the future? Or maybe you shouldn't be friends with Mark at all.

ImTalking 4 ago 2 replies      
Does not Facebook get to decide it's own morality, just like anyone else?
wehadfun 4 ago 0 replies      
I suggest they do a bait and switch make the headline be about a lipstick or a boy band then hit the reader with the horrors of bombing 12 year old little girls with Napalm.
eleitl 3 ago 0 replies      
He would have had a point, had he not a Facebook presence. Yes, it is very easy to avoid having a Facebook page: just don't make one.
beedogs 4 ago 0 replies      
Facebook is terrible. I wish people would cease using it.
dmitrygr 4 ago 0 replies      
A very valid point, which will sadly be entirely ignored.
howeyc 4 ago 4 replies      
Ask HN: Is web programming a series of hacks on hacks?
751 points by barefootcoder  23 ago   600 comments top 149
pixie_ 22 ago 23 replies      
Yes. I feel like we're in the dark ages right now.

JavaScript - Dynamically typed, does not scale what so ever. Code written in it becomes 'read only' very quickly. Impossible to refactor.

CSS - Also becomes impossible to manage. Who knows if the class you wrote is or isn't being used in HTML or JavaScript somewhere. Same problem, read-only, it only gets bigger and more unmanageable.

HTML - At the heart of it, the foundation is the layout engine and positioning, and it sucks. Flexbox was supposed to bring sanity, but I feel like we're still waiting on it.

Put these three stooges together and you get where we are today. Rewriting the same damn app every year in another framework in what can only be described as some sort of high paying purgatory.

jaredklewis 22 ago 5 replies      
I think it's worth noting that back-end web development is an usually pleasant place. In most other types of programming, many technical decisions are made by the platform and working with tons of legacy cruft is the norm, not the exception. For example, where else can you so freely choose the programming language?

Linux Driver? Use C. Mobile App? Java or Swift/Objective-C for Android or iPhone, respectively. GUI App? Again depending on your platform that will be either C++, Swift/Objective-C, or some .NET thing. Making a neural net? You could do everything from scratch, but it probably makes more sense to just use a platform like Tensor Flow and python.

Backend web development on the other hand: use anything! Wanna use lisp? Go ahead. Wanna store your data in an unproven experimental database? No problem. Wanna use micro-services? Monoliths? Anything goes.

Browsers are extremely complex application platforms. But despite how you may feel, they didn't succeed because of their weaknesses. The browser as an application platform succeeded because of its strengths. Web browser are the least bad option (and beat out many other worse options).

For better or worse, browsers are what we have. Make the most of their strengths, and deal as best you can with the weaknesses.

meshko 22 ago 8 replies      
It is scary how most commenters here are missing the point. No, not all programming sucks. Yes, web programming sucks more than other things. No, it doesn't have to be like this. Yes, even web programming was better 10 years ago. No, I don't know how to fix it. Neither do I know exactly where we took the wrong turn.One of my theories is this: had Sun not sued Microsoft over their extensions in JVM, MS would have kept working on their awesomely fast JVM implementation for Windows. That would make Java fast and not sucky in browsers. It would have kept Java Applets as a viable rich web app development option. Flash would have never risen. Java, being a significantly superior language to ActionScript, would have allowed us to build nice RIAs in an efficient, secure and portable way. Gmail and Google Maps would have been implemented in Java. Isometric Java. Get it? Get it? Back end and front end are written in the same language with strong typing and all that. JavaScript would have been dead by now. World would have been a better place.
troels 15 ago 4 replies      
My theory is that everything is a mess, once you get close enough to notice. Every profession that appears as if its practitioners know what they're doing really is a shocking hodge-podge of temporary solutions, strung together by proverbial duct tape. From doctors to flight engineers to anything else that you thought was running like a smooth machine. Programming is no different.
buzzybee 23 ago 1 reply      
Web programming has never been wholly controlled by a platform owner. I think that's the main difference from any traditional environment that might come to mind; Unix has its traditions, so do Windows and Mac. This is even the case for mobile. In the years when IE was the only browser anyone used, one could also hope to come to grips with its buggy CSS implementation, but that is past too, and in the meantime the backend was still churning from Java and the classic LAMP stack towards Rails and Python.

This is the end result of uncoordinated, path dependent "bazaar" dynamics where the core technologies are open, yet keep accumulating cruft, and are subject to regular proxy wars between large entities. The solutions today are better in that they are easier along certain axes - you can make a cookie-cutter landing page out of the box with Bootstrap, or add some interactive data viz by employing D3. For any random one-off there is an npm package that depends on 50 other packages. They mostly aren't there to help you architect your own thing in a self-consistent way, though - that's too much of a "vitamin" and not enough of a "bandaid" to be marketable.

broodbucket 22 ago 2 replies      
Honestly, pretty much everything is hacks on hacks. As a kernel hacker, hardware is hacks, firmware is hacks, kernel is hacks, it's turtles all the way down. The fact that anything works at all is a miracle. Some systems are better than others, but everything has some duct tape somewhere.

Designs and algorithms are abstract, the implementation is never as nice. We as engineers have to make the best of what we have, and to prevent making the situation worse to the best of our ability.

Uptrenda 22 ago 3 replies      

* Multiple browsers that respond to the same code slightly differently.

* Multiple platforms that all need to be supported.

* Countless different screen sizes to consider.

* Standards that aren't supported across browsers and platforms (and different versions of each in use)

* Hundreds of undifferentiated web frameworks that all claim to do the same basic task better than each other.

* Thousands of ways to host, distribute, and scale your application.

* Millions of ways to monitor service availability.

* Billions of ways to create APIs for your service.


* Too many technologies and skills needed to do the job.

* Design skills required if you want to create anything significant by yourself.

* The average web developer is practically an encyclopedia of technology yet full stack developers are still undervalued, low-paid, and mostly replaceable.

tl; dr: It takes a very special kind of person who doesn't immediately develop serious neurosis working as a web developer today.

kinkdr 22 ago 1 reply      
Without specific examples on what your frustrations are, my best guess is that you are just overwhelmed.

It was not long ago that I was in a similar situation like you, all these overlapping technologies looked unnecessary and redundant. Just the node ecosystem by itself, felt like a pile of crap that depended on a bigger pile of crap. For a simple application like "hello world" in React, I have to choose between a large number of possible combinations of packages and install and configure god knows how many of them.

But once you take sometime to adjust and familiarize yourself, you discover that each one of them is a little jewel and are the quite opposite of crap or hack you initially thought. At least that's the conclusion I arrived to.

So, my advice is to just take your time to familiarize yourself with as many technologies as you can in every aspect of web development. After the initial shock, you will start appreciating things and you will realize that they are made by excellent engineers and each has its own merits.

xg15 18 ago 0 replies      
I think the "design notes" section of the HTML5 spec puts it best [1]:

It must be admitted that many aspects of HTML appear at first glance to be nonsensical and inconsistent.

HTML, its supporting DOM APIs, as well as many of its supporting technologies, have been developed over a period of several decades by a wide array of people with different priorities who, in many cases, did not know of each other's existence.

Features have thus arisen from many sources, and have not always been designed in especially consistent ways. Furthermore, because of the unique characteristics of the Web, implementation bugs have often become de-facto, and now de-jure, standards, as content is often unintentionally written in ways that rely on them before they can be fixed.

Long story short, HTML and its satellites have quite a long history behind them, involving trade wars, religious battes and one or two revolutions (or coups, depending on your point of view)

I think the unique thing about the web "stack" is that for a long time it was the only platform usable and accessible by everyone and controlled by no single entity. This means there was a tremendous amount of people, companies and other entities that tried to influence it's design. Because background compatibility is an absolute must, this lead to hacks accymulating and the whole language getting incredibly messy.

From what I know, there has been at least one approach to start with a "clean slate" and design a better framework - XHTML 2 - but it failed due to missing backwards compatibility and a lack of political support.

The organisation currently in charge publishes the "HTML living standard" (formerly known as HTML5) and has given up on most notions of cleanliness (short of declaring it an explicit non-goal) in favor of backwards compatibility and the ability to move fast.

[1] https://html.spec.whatwg.org/multipage/introduction.html#des...

OliverJones 16 ago 3 replies      
With respect, at least part of your frustration comes from the "curse of the installed base."

Long-lived software with real users in any language running on any platform becomes complex, and picks up strange-looking appendages. Sometimes those appendages are nasty hacks, and sometimes they are well-built. But they are, in most cases, necessary to the proper functioning of the software, and responsible for its success with its users.

That's true of long-lived human work product in any discipline. Look at a municipal utility map sometime, and then consider that it is probably at least three decades out of date. That's why utilities send out "dig safe" guys to construction sites. That's why things go wrong in utility work after longtime engineers retire or die.

That being said, the capabilities in web browsers are definitely the utility company equivalent of of a pickup truck full of random bolts, pipes, wires, a shovel, a ladder, and a jackhammer. You can do many things badly with a web browser, and our ways of doing them badly have evolved over the past couple of decades.

I believe your frustration with aging web software is, in fact, a sign that web software has become generally useful to the population.

mashlol 22 ago 0 replies      
You can't really compare "web development" to "application development". I think it's more fair to compare a single web framework with a single native framework. The web ecosystem of frameworks is much larger, meaning there are far more options, much more to adapt to if changing projects. Switching from a well-written iOS codebase to a well-written Android codebase would be no different then switching to a well-written React codebase.

> I've been doing some web development on a fairly long-lived and large code-base

Perhaps it's just not a well written codebase. It's extremely easy to write bad code for web, where perhaps it's slightly harder to do for native development (although still very easily possible of course). It's also very possible to write good maintainable code for both as well.

> I'm not even talking about the fact that everything has to be stateless

It doesn't have to be stateless. Take a look at React.

> just the fact that it really feels like there's no consistent way to do anything

That's pretty much the same with application development. Perhaps not as much for Android/iOS themselves since there is basically only one option for each of those. Even within those there are many many ways of doing everything. It's up to everyone working on the codebase to keep things sane. That's no different with web development.

flukus 23 ago 1 reply      
I think it got particularly crazy around the creation of npm/node: https://www.commitstrip.com/en/2016/05/10/a-moment-of-nostal... . This was an enabler for complexity to spiral out of control.
elg0nz 21 ago 2 replies      
" In Richard Feynmans popular book Surely Youre Joking, Mr. Feynman! he tells how during his college years he often liked to play tricks on people. Most of these tricks were designed to show how dumb people are. For example, in a mechanical drawing class at MIT where the students were taught to use a drawing instrument called a French curve (a curly piece of plastic for drawing smooth curves), Feynman informed the other students that the French curve is made so that at the lowest point on each curve, no matter how you turn it, the tangent is horizontal. He reports that the other students in the class were excited by this discovery, and began holding up their French curves and turning them in various ways, trying to verify that the curve was always horizontal at the lowest point. Feynman found this funny, because they had already taken calculus and supposedly learned that the derivative of the minimum of any curve is zero. (Of course, its also intuitively obvious: If a curve at a given point is not flat, the point is obviously not the minimum.) Feynman says I dont know whats the matter with people: they dont learn by understanding; they learn by some other way by rote or something. Their knowledge is so fragile!www.mathpages.com/home/kmath687/kmath687.htm

"Easy to begin, hard to master" languages/frameworks let you go very far in spite of your knowledge fragility. Some interesting topics to reduce this fragility are data structures, design patterns, software and hardware architecture and, distributed computing.

If I had a penny for every JR. Dev that thinks they can get around the CAP theorem...

aabajian 14 ago 4 replies      
Some people have already mentioned GWT. I think this is the best evidence that yes, web programming is extremely hackish. GWT is an entire framework to write web applications in a strongly typed language - it compiles Java down to JavaScript. GWT was made in an era that we're just now escaping: the era of browser quirks.

IMHO, GWT didn't take off because of one reason: Its target demographic, web developers, do not have the same technical training as traditional computer scientists. What I mean by that is courses at places like General Assembly, CodeAcademy, and even KhanAcademy emphasize JavaScript/CSS/HTML paradigm. This triad makes it easy to create very nice looking website in very little time, but there's little focus on code organization, software design, efficiency, etc. It's much more of, "Now we want this box to fade out when we click on this button, let's see how we can write a function that makes this happen."

BerislavLopac 19 ago 0 replies      
> I've always found it quite easy to move up and down the stack

This is the most important point that most people overlook: the Web doesn't have a single stack, even though we talk about "full stack developers" and similar. Web is your ultimate distributed system (which is why you have no other option but to make it static); you never develop a single application, but a multitude of applications often (usually, in fact) executing on systems you have next to no control over.

Just think of your quintessential "Web page": a server prepares an HTML page which is then rendered in a browser. First, you have a server, which you rarely control (unless it physically sits on your desk/rack, and even then you're at mercy of your ISP). Second, even assuming the page was served correctly, it then arrives to another system which has OS/browser/display/etc which you have absolutely no control over except for hoping that it adheres to all the standards you have adhered to when developing. Even if there is no client-side code (i.e. Javascript) to be executed, even the simplest HTML (as well as CSS) are instructions that need to be interpreted.

What you call "hacks" are essentially numerous solutions -- some good and others less so -- to inherent problems of distributed computing, working around the peculiarities of the underlying platforms (namely HTTP and TCP/IP) to ensure reliability. Many things that are taken for granted in platform-specific development simply don't exist here; as a reminder, take a look at https://en.wikipedia.org/wiki/Fallacies_of_distributed_compu...

jorblumesea 22 ago 3 replies      
While I hate css, sort of like js and hate html layout, a lot of the problems come from accessibility. In that, it's so accessible anyone can do "web". This means you get non-engineers with no engineering background put into situations where thinking about things from an engineering perspective would really help and might produce actual workable solutions.

Like wtf is this:


str.slice, str.indexOf are standard lib. Adding another layer of complexity for basic string functions that could easily be done natively is very poor form. This kind of stuff happens all the time in the web world. There's a layer of "lack of competency" bootstrapped on top of what I would consider a non-intuitive base.

msoad 23 ago 1 reply      
I don't know what are you referring to as hack on top of hacks? There are tons of big open source and closed source web based project that are easy to follow what's going on and everything is well structured. Look at VSCode code base [1] or if you're a Googler look at Google Photos source code.

People look at React and Webpack and all these small little modules that people put together to make something work and think that's all the web is.

Although, I think React, webpack, Redux and all these little hacks are amazing for exploring what's possible in web.

[1] https://github.com/Microsoft/vscode/

kowdermeister 19 ago 1 reply      
> Am I missing something?

Probably. Good folks to learn from.

> Is it me resisting change?

Only you can tell, but client side web development is fine, thanks :)

> Is web programming really that bad?

No, it's doing fine, thanks for asking.

> Is it really just that I need a new mental paradigm?

If you really want to take your time working with client side projects, then you need to relax a bit and just learn a bit more and play a bit more with these techs. Some you'll hate, some you'll love. That's it.

I don't really understand why is this hate against web development goes on HN. I'm building web apps for lots of years now and the major obstacles were never really the technology, but money or people.

Building UI-s in the browser with CSS is not a rocket science; a JS app is easily scalable to 100k lines of code; backend wise you need some good team and a sane PM who don't want to immediately scale your app to Death Star level. Projects does get fucked from time to time, but if you picked your stack well, you'll be fine. I admit it takes experience to identify the crap tools, but what profession doesn't?

MrLeftHand 17 ago 1 reply      
I feel the same thing to be honest. As a mostly Backend Java guy I just have a hard time to get my head wrapped around the whole Frontend/SPA thing and the multitude of frameworks, styles, tools and so on; just don't help at all. It feels like everyone is reinventing the wheel constantly.

Right now I try to write a simple react SPA and I use more libraries as if I would have done it in a tomcat webapp with static html pages.

Documentation is relatively scarce or non-existent at all and in the end you end up looking at code on github. Hunting on Stackoverflow and blogs written by people and realize that there are 100+ ways to do the same thing.

Looking at code would be fine, but looking at Javascript it's hard not to see how easy it is to write in different styles, which makes understanding the things harder. Also being in the middle of transitioning to ES6 makes it more complicated. Of course ES6 will be a big leap, but ES5 won't go anywhere anytime soon because of backward compatibility. So you will end up with overlaps and weird code.

Sass definitely helps with css. React is a great way to develop nice SPA sites webapps.

I don't know if the whole Frontend part is going in the right direction, but it will need some time to settle. For now it's more fragmented then the Android platform. And it really feels like we are trying to put a lot of stuff on top of protocols, tools and standards which were never meant for this in the first place. We might end up having such big scripts loaded for a page, that it could have been just a thick client instead of a web page.

We threw away Java Apps, we threw away flash, we are throwing away jsp/jsf, PHP, etc... And now we are recreating the same behavior with Javascript/CSS/HTML5. Soon it will be only Javascript and you literally won't write not a single line HTML. (Well React already does that to be honest.)

So yeah, interesting times. And it's hard to jump on this train whilst it's moving so fast.

27182818284 22 ago 0 replies      
Yes, yes, a thousand times yes. I completely agree with you.

John Carmack also agrees with you, though not about the web per se: https://twitter.com/ID_AA_Carmack/status/771749108780523520

This is how I feel too. If I had to put a finger on the root cause, it is because of the speed demanded. E.g., going back to the left-pad problems that happened in the Node ecosystem, I know lots of folks that know how to do that, but when speed comes up and they can just add a package, that's what myself and others are often going to do.

soheil 22 ago 0 replies      
I'm not sure what you mean by "a new mental paradigm", the web is a complex system you cannot expect it to be completely reducible to a few simple constructs. You generalize the word backend programming as if it's just one thing. There are hundreds of ways to program a backend system, you can choose from .NET to C/C++ and rarely they are hack-free as you suggest that's not even to mention the platforms they run on like for example BSD, Unix is a series of hacks on top of others, there are often 1000s of different ways to do the same thing.

I simply don't buy your point that "backend" environments are somehow more elegant to work in and easier to reason about than the web.

You still have to decide which backend platform you choose and each has its own series of convoluted hacks associated with it.

hannob 22 ago 0 replies      

I got this realization during a study project where I investigated the use of secure cookies (was 2009, it's public [1]). It's just one example, but you can find similar things everywhere.

Sessions in Web applications are realized using cookies, which is not a very good way, because once someone manages to steal your cookie your session management is broken. And there are plenty of ways to do that, because there is no good separation of the session from the rest of the functionality. Because both cookies and sessions weren't in the design of http/html before, they were a later addon that. So was javascript. So were many other things.

The thing you have to realize though: Things work. It's been the most successful technology of the past decades. There is no point in moaning that things would be much nicer if we'd redesign them from scratch, because it isn't going to happen.

[1] https://blog.hboeck.de/archives/681-Study-research-project-a...

gfody 21 ago 0 replies      
There are billions of dollars made annually that depend on the web being a complicated clusterfuck of spaghetti. It's all about tracking and targeted advertising that wouldn't be possible if a random website couldn't indirectly load a script that indirectly loads a script that loads an image that indirectly drops cookies from a thousand different domains based on a hundred things just sniffed from your browser and the current marketing efforts of thousands of companies bidding for impressions or clicks or whatever.

My pet theory is that commercial politicking is at the heart of everything wrong with the web. Apple, Google, Microsoft, and Mozilla basically sabotaging initiative after initiative for decades trying to fuck each other over in the short term and long term. Like why didn't xhtml catch on, why did IE never support xpath, where did flash go, what happened to silverlight, there are hundreds of "how did we get here?" stories. And I imagine for every minor decision that had far reaching repercussions on web development there was a highly strategic debate at each respective company with high level executives weighing in on technical subjects they had no business weighing in on with shit like "if we support this simple protocol we risk losing our control over this other simple protocol". Basically a bunch of cut throat executives playing statecraft with their browsers.

Svenskunganka 23 ago 0 replies      
I think the problem boils down to how the different browser vendors has treated web developers throughout the years, not giving them a consistent environment across the different browsers, not recognizing certain bugs so they've lived on and become un-fixable due to backwards compatibility.

Microsoft with their IE has been the biggest culprit in this, luckily they've taken Edge in the right direction and has really stepped up their game these last two years, but now Safari is at a crossroads and may just end up like the old IE if they take the wrong path. If only the large browser vendors could really, really get together and give us web developers a consistent environment without bullshit. Take Apple Safari for example, keeping Service Worker "under consideration" because the features it brings rivals native mobile apps which they make a lot of money from while all other "large" browser vendors has already started implementing the feature, some even ship it already.

Beltiras 17 ago 0 replies      
I think you come to the conclusion because necessity is the mother of invention. Web development is often done in a high-pressure environment with great focus put on churning out features. This leads to the hacks-on-hacks mentality because the needs of the day trump any sort of coherent principle emerging from thoughtful work on the codebase.

I resided over a medium sized custom CMS that was going through changes on all levels. I tried my best to keep it pretty. Fact it was made with Python made it easier for me. Due to that I was quick to find aesthetics to guide my coding. One of the "ugly hacks" actually turned out to save some 50 ms of time on each request. That was significant enough for me to go find a deeper principle for it and implement it in a nice, clean way.

Hacks-on-hacks is SNAFU for web development. Just remember to demand time to refactor and clean up once in a while, otherwise you'll end up shoveling shit from one pile to the next and never managing to vacate it.

brlewis 12 ago 1 reply      
Lately I've been doing some web development on a fairly long-lived and large code-base

Therein lies the problem. I've been doing web development for 22 years and it's only just now getting good. React-like apps (I actually use Mithril) give you a much better understanding of how the app gets into a particular state when compared to jQuery.

Web programming on your typical long-lived large code base really is that bad, but start from scratch with something React-like and you'll have a much better experience.

intrasight 22 ago 1 reply      
Sometimes I ask myself the question by doing this thought experiment. If we encountered a more advanced sentient species that writes code, would they say "Yeah, we went through that html/css/js phase of development, and in fact all sentient species do so. We got some good mileage out of it, and it was a total hack for a generation (we refer to that time as the lost generation), but it evolved into our current 'System X' for user-facing app development. Due to the Prime Directive, we can't show you what 'System X' entails. You'll just have to evolve there yourselves."

Or, would they say "You guys are bloody idiots. Come back when you shopped at the galactic clue store."

TickleSteve 17 ago 1 reply      
Yes (simple answer).

but really, its less "hacks on hacks" and more "unneeded abstractions on unneeded abstractions".

The inefficiency of modern web-stacks continues to absolutely astound me.

When people tout the 'efficiency' of language A against the equivalent C as being "less than 2x"...

jeez... that means you're throwing away double the power that you need to.That means you've got double the number of air-conditioners cooling your server-room. double the power bill, etc...


joemi 23 ago 0 replies      
There are a lot of articles out there arguing that the web wasn't designed with modern web apps in mind, and that that's a source of a lot of strife, so you're not alone in this feeling. But there's also a lot of articles that argue that that even though it wasn't designed with this kind of use in mind, that there are ways it can work well.

Out of curiosity, what's your stack look like? Not all stacks (or components of the stacks) are created equal, by a long shot. Some devs love to try out brand new or new-ish frameworks/dbs/etc that haven't got all the kinks worked out yet, simply because it's the new hotness.

BinaryIdiot 22 ago 0 replies      
I've done front end work for nearly a decade now. You're right and I think frameworks are a big part of the issue.

Looking at how to do something on the web there is a different way to do it in React, Ember, Angular, jQuery UI, Bootstrap, ExtJS, and about 50 more slightly lesser known frameworks. They don't interoperate well at all. Yes it all boils down to HTML / JavaScript in the end so there is always an integration point but try writing a component that integrates well in even 2-3 of frameworks.

Honestly if more people taught solid coding structures and the DOM API (which, yes it's awkward but with the features HTML 5 brought in plus well structured code it's not that bad) you could have a smaller, handful ways of doing something properly and you could even share components far easier.

Granted frameworks are not the only problem. But, in my opinion, they've severely splintered the way the web is developed.

BjoernKW 23 ago 1 reply      
Isn't everything? With web programming that's very much a feature, not a bug. You could say that Perl's - the first major web back-end programming language - TIMTOWTDI paradigm is a feature of the web itself.

MFC, Swing, Cocoa, Qt all offer more or less consistent experiences but none of those is as flexible as what you get with the web, which also is a feature, not a bug, because with a certain OS you also want a somewhat consistent, vendor-independent UI / UX across applications.

That said, if you aim for consistency, there are widely used frameworks and tools like Bootstrap, Modernizr, jQuery or Angular that can help you in that regard as well.

isoos 17 ago 0 replies      
The best analogy I've seen with regard to code health is that software is not built, not engineered, rather it is grown. Depending on the technology of choice, your garden may adopt to different climates, requires different nutrients, and pleases different audience (or achieves different goals).

From that perspective, JavaScript is a garden where once planted, you can't change anything in your garden, and pretty soon it becomes inflexible to build upon old stuff.

The more tools you have, the better of you can get. E.g. TypeScript, and especially Dart help a lot with tooling (and making gardening fun again). What you end up with is isolated components that encapsulate their own code, HTML template and CSS rules. It may be called web component, angular or one of its many competitor, but eventually that is what brings you sanity.

And speaking of sanity: I've found that "the current hype" is almost always broken, half-baked, and lacks proper engineering practices. Go figure why... Use the tool that you enjoy working with and does the job well, and ignore the rest.

ng12 23 ago 1 reply      
I don't know that they're all "horrible" hacks, but yes. We still generally don't know the best way to build a complicated website. We can't even agree on the simple stuff -- for example Angular2 and React, two of the hottest frameworks, pursue wildly different philosophies.

I think it's exciting. It keeps me motivated to learn new things, and really think about the code I'm writing.

vikaveri 22 ago 0 replies      
Web development is like the scene from Indiana Jones and the Last Crusade. You get to pick your poison and there are a lot of people who will choose poorly. Doesn't matter how good you are, chances are, on occasion, you'll choose poorly as well.

There's no point trying to read and understand every library and framework that comes out. HN has half a dozen interesting ones I skim over each week because what you need to know is what's out there, what's been done, so when you come across a problem you don't have the tools for, you can come back and choose the tool that best fulfills the requirements you have at that moment.

And those requirements will change from project to project. There's no cure-it-all. Expect to switch frameworks or libraries very often. You probably wont have time to learn all the intricacies of a framework before something else is more suitable for your needs.

It's not impossible or required to write bad code and have bad design, but it's easy to shoot yourself in the foot when you don't know what you're doing. You will see lot of bad design and poor code though, there are a lot of coders who are starting out with web development because it's an easy place to start with.

Sometimes you need just a spoon and sometimes you need a fleet of excavators and the hard part is knowing when to use what.

brwr 5 ago 0 replies      
Web developer is not ideal. That is more of a people issue than it is a technology issue.

Whatever our collective gripes about JavaScript, HTML, and CSS, we all know how to use them. We know how to handle cross-browser compatibility and different screen sizes. What we need to do a better job at -- and I think this is the root of the problem you're describing -- is pushing back on businesses wanting to ship features too quickly.

We've all been at places where no one values good work on the client. The C-levels want to get things out the door as quickly as possible. They complain that our work has bugs and we tell them "Well that's what you get for telling me I had 3 days."

Because of this heat, front-end engineers rarely engineer their software. As you put it, they hack it together on top of libraries that have been hacked together by others. The solution is to take the time required to do things correctly. That means testing. That means not shipping features so we have time to refactor and upgrade frameworks. That means paying attention to performance and developing tools for debugging errors in production. If we want web development to get better, these things can't be afterthoughts. They must be considered before we say something is "done" and ship it to production.

combatentropy 22 ago 0 replies      

 > a fairly long-lived and large code-base
Such could be spaghetti on any platform. To understand web programming, I wouldn't start with something big and old. I've been doing web programming for more than a decade, and I still don't get the majority of web frameworks. Start instead with the basics, and work your way up:

1. HTML. Don't view the source of websites and web apps to understand HTML. Read a good book or tutorial. HTML Dog is a good one.

2. CSS. Likewise.

3. JavaScript. Definitely don't try to learn JavaScript by viewing source either. Instead, maybe HTML Dog. There's also Douglas Crockford's _JavaScript: The Good Parts_ and David Flanagan's masterpiece, _JavaScript: The Definitive Guide_. I don't know how I would have ever understood JavaScript if I had not taken the months to read Flanagan's book cover to cover.

That takes care of the client side. For the server side, it should come much more easily. Basically you have a database, like I'm sure you're used to. Then you need a web server, like Apache or Nginx, and some kind of glue language like Python or PHP. Many people put a lot of code here. But I like to keep it pretty thin: like the database and the browser just talking to each other. Even so, just running this side of the affair can be a full-time job in itself.

I recommend at some point familiarizing yourself with the HTTP protocol in general: all the headers, request methods, etc. Basically once you can use Telnet to imitate a browser requesting a page, you'll feel more comfortable with how simple it really is.

nostrebored 23 ago 2 replies      
There is some stuff that actually makes logical sense, like CSS Specificity, but yes a lot of it is hacky. I mean, negative margins? Clear? Thirty different lines of browser-specific rendering tweaks?

WebKit is great, but any attempt to reform the competing browser shitshow reminds me of that xkcd comic about competing standards: https://xkcd.com/927/

(former web developer -- get out while you have your sanity)

narrator 22 ago 2 replies      
>Can you recommend any good resources to help me orient my mind to this new way of thinking?

The thing about web frontend development is that it suffered from the browser wars and having to appeal to amateur developers. Amateur developers love "Worse is Better"[1]. Basically sacrifice all consistency in favor of simplicity and getting started quickly. "Worse is Better" makes things simple to the point of making ugly hacks for certain situations that don't fit that extreme focus on simplicity.

The browser wars made everything horribly inconsistent. Microsoft's strategy was to make the most broken non-standard code possible automatically work and everyone had to emulate that.

The most clean frontend development I've worked with was Angular with ScalaJS. Typescript in Angular 2 should be really clean. The underlying web browser stuff will never be cleaned up since it has to be backwards compatible.

[1] https://en.wikipedia.org/wiki/Worse_is_better

Edit: Replaced the JWZ URL with wikipedia. Apparently JWZ has some anti-hacker news redirect code on his site.

Myrth 23 ago 1 reply      
I think it feels hacky because it is, and it's natural. And by natural I mean this is how spontaneous complex systems evolve. Internet is a result of half of a century of millions of people's contributions for different and often opposing goals and priorities. For other examples of hackiness take a look at other complex natural processes, like multicellular living creatures and ecosystem in general.
richardw 21 ago 1 reply      
I use GWT for anything serious. It's not what the cool kids like, but it feels super-solid compared to the flake that I experience when working with a heap'o JS libs. And debugging it years later is awesome (barring a couple gotchas) because it makes sense.

I've always thought GWT has a crazy learning curve until we did a project in Angular2 on top of ASP.net core, using a customer-selected template that required tons of JS fun, with random CSS class names that have zero obvious semantic benefit so you have to look everything up. Not even Typescript could save the feeling that we were building a house of cards in a strong breeze. Same with Django + JS. Just felt too scripty for me.

I don't like leaky abstractions but honestly the modern web fundamentally forces you to use them for anything vaguely complex. It's not getting easier, it's getting much, much harder. GWT at least gives me a way to trade off complexity for a clunky but solid language, and I get to reuse code on the front and back ends.

kuon 22 ago 0 replies      
I think one reason is because there are two kinds of web development.

Website dev and web app dev.

I don't think they are mutually exclusive, but website dev is about styling and navigating into documents. It's stateless and the variety of content is unlimited. I don't think there is a "problem" here, it works, has good tools for what it has to do.

On the other hand, there is web app dev, and app dev is messy at present. My guess is that is lacks governance, it's not necessarily a bad thing, but it means things are taking time and must prove themselves to gain traction and become standards.

But yeah, doing something like a calendar input, with really perfect behavior, where you can navigate the calendar with the keyboard if focused, that is accessible, works on all device is insanely hard and not solved by the platform yet, so everybody try something different.

Also, a lot of people that are more authors than programmers are "hacking" "app like" functionalities into their website, and it can get messy very quickly. No pun intended.

socmag 16 ago 0 replies      
Yes it is awful.

How people manage to build applications given the festering pile of rubber bands, glue and fish heads that we call web development platforms these days is beyond me.

There was a time when even I could build a website. Then I stepped away for a few years to do other stuff and came back to witness in complete horror where things are now. Let's be frank, the tooling is abysmal.

I've been taking a look at Polymer, Dart and Flutter recently.

Looking at the goals of those projects I'd say that reading between the lines, even the likes of Google understand that something has to change.

freyr 18 ago 0 replies      
Yes. Web programming is a mess. It's layers and layers of half-baked solutions, each patching deficiencies in the previous layer while introducing new deficiencies. It's a convoluted Rune Goldbergian contraption, attempting to make a general application framework out technologies originally designed to display hypertext.

The individual parts make sense once you're familiar with them. Some are even designed by conscientious and competent people. But the feeling that, taken together, it's an ugly hack is inescapable.

TheAceOfHearts 22 ago 0 replies      
It's inconsistent, but it's getting better. The tooling has been drastically improving over the last few years.

There's no "one true way" of doing stuff and the barrier to entry is low, which causes lots of different ecosystems to evolve. The browser vendors are trying to focus more on lower-level features, which the community is expected to use in order to build better abstractions.

I don't think it's worse than other platforms.

It really depends on what you're building. If you're making something that's largely document-focused, it's extremely easy. But as you start building more sophisticated applications, the complexity increases.

thrilleratplay 11 ago 0 replies      
Yes/no. Code is developing faster than standards update:

HTML - HTML 4.0.1 -> HTML5 (14 years)

CSS3 - in development since 1998

JS - ECMAScript 3 (1999) -> ECMAScript 5 (2009) -> ECMAScript 6 (2015...ish http://kangax.github.io/compat-table/es6/)

I think web development is a lot like Perl. It is flexable enough for anyone to write something simple and quick but creating a large maintainable project takes a lot of discipline.

I use a series of linters, style guides and naming conventions to keep from shooting myself in the foot but still will need to go back and clean up from time to time.

webXL 12 ago 1 reply      
Ah, yes. Another round of grumpy 'ol "why can't I pick/control every aspect of my application environment in the languages I love" developer whining. I swear some people just love saying "hacks on top of hacks". It's the new pejorative of our industry, despite the unparalleled success of what it's intended to dismiss. The hacky-ness we're observing is just an evolutionary byproduct of the "power vacuum" of software decentralization and democratization. Yes, it's inefficient and ugly in some places, but it's an amazingly practical way to distribute software. Just remember your perfect system is only perfect for you or your financials. To state otherwise is sophomoric and unscientific.
toddan 15 ago 0 replies      
This is why i find it so much fun to do applications on windows with .net you only need to know one language C# or VB.net and then you are set. You can create anything with just this, of course it will only work on windows but i dont mind, it just such a pleasure to only have one toolset and then just focus on the task at hand.
jacquesm 18 ago 0 replies      
Definitely yes. I'm on the sidelines until things will settle down into something that makes more sense and if it doesn't then I won't be doing any web development.

Software is such a huge field there are a ton of interesting challenges outside of the web and the current mess does absolutely nothing to keep me interested. It's a veritable tower of Babel without a clear sense of direction or longevity.

cloakandswagger 22 ago 1 reply      
The internet as a whole is one giant, hacked together system. There's no doubt that, with a magic reset button, we could build an internet that is vastly more secure, efficient and reliable than the current one.

But that's the nature of an emergent, distributed technology like the internet. Once the concept was born we ran with what we had, and once adoption hit a certain point it became impossible to start over again and do it correctly. I see it as an innate challenge that comes with the domain, like EM interference for electrical engineering.

micro_softy 21 ago 0 replies      
Do web developers find ways to create work for themselves?

You allude to it below when you say "zillions of hours".

There is a significant amount of money moving through the "web development industry".

People are getting paid to write things that suck.

The internet actually has made leaps and bounds in terms of what can be delivered over it to the masses.

But the "web" has become a cesspool of redirects, overstuffed headers and pages crammed with beacons, ad server links and ad-related Javascript, accessible through ad-sales-company-sponsored software ("web browsers") to run the ad-related Javascript.

If and when users grow tired of web advertising, the entire system is a risk of a serious correction.

Again, significant and increasingly larger sums of money are moving through the web ad and user data collection cesspool so no one really cares how poor the quality of the "content" becomes.

And you want to learn to orient your mind to this "new way of thinking"?

Maybe you are not resisting change. Maybe you are resisting stupidity. Your time may be better spent focusing on backend development. Today's "backend" may be tomorrow's frontend.

All that "content" can easily be delivered without a single line of Javascript and without using search-engine-ad-sales-company-sponsored software.

kafkaesq 12 ago 0 replies      
Was it ever anything different?

From the very beginning -- you know, back to the <img> tag, HTTP 1.0 -- it was always a series of shrewd tradeoffs (a.k.a. "hacks") in favor of what can be put in front of people now instead of what might take another 5-8 years of IETF meetings and mailing lists debates to hash out.

Referring to "the web" as such; not "the internet", for which the initial design choices, while still hackish in their own way, were arrived at in ways decidedly less brutish and expedient.

samblr 5 ago 0 replies      
My view is exactly contrary coming from system development experience. I cannot think why would anybody handcraft MVCish frameworks in js, jquery etc. I have programmed MVCish UI frameworks and middleware in c for AV products 10 years ago. And as a UI dev u want a working MVC. Now I'm using angular and totally feel at home. I think sans these new frameworks web must have been really dark place.
dandv 9 ago 1 reply      
Yes, the web was meant for building pages, not applications, and that shows. HTML and CSS are horrible at laying out apps (even with flexbox). Which is why using front-end libraries is critical. Have a look at https://webix.com - it's amazing how expressive that widgets library is: 10 lines of code for a master-detail tree+grid layout.

As for the server side and the client-server communication, nothing really beats Meteor - https://wiki.dandascalescu.com/essays/why_meteor. It removes a lot of the paradox of choice, while still letting you swap components out when you're ready (e.g. you can use PostgreSQL instead of Mongo, or React instead of Meteor's default view library).

Shorel 9 ago 0 replies      
In my work I can be writing C++, or PHP or Javascript, depending on what part of the stack I'm working on.

C++ bugs are a bit hard to find, because the error messages are not very useful, so I launch the debugger, do a stack trace that fills the screen with arcane texts, then open the relevant source file in the line pointed by the debugger, and after about a minute of staring at that line and thinking, the bug is fixed.

In comparison to modern C++, JavaScript issues are complex beasts that can eat all your morning and give nothing in return. And then you test with another browser and it starts all over again.

Even so, some things like detecting the decimal separator supported by your operating system work in IE and Mozilla but were never implemented in Chrome, so you can't never really fix that 'bug'.

the-agreeer 22 ago 1 reply      
All these dozens of disparate ad-hoc web technologies and defacto standards are built like a tower of babel on quicksand. No one truly understands all of it. Without View Source and a healthy dose of copying/stealing no one could get any of it to function. Yet in spite of all of this - this web thing somehow works. The only takeaway is to not bother trying to grok all of it. It would only lead to madness and missed deadlines. Just try to avoid frameworks that emphasize purity of design over pragmatism and instead use a workflow that gets you to the finish line.
david927 11 ago 0 replies      
We're a smart industry, but we're not a wise industry.

We focus on solving tactical problems, ignoring the mountains of technical debt that are created from it, and that it leaves the strategic problem worse. We will do this because we need the solution today, not tomorrow.

We can elevate out of this when we're ready, when we say "enough is enough."

otabdeveloper 22 ago 1 reply      
All of human civilization is a 'series of hacks on hacks'.
EugeneOZ 22 ago 0 replies      
Some parts of web-dev are really chaotic right now, but other parts can be very well-organized, same as server-side code.

For example, you need to compile all of your es6/es7/typescript code to JS (because nobody will write in pure ES5 nowadays), minify and concatenate resulting files - this part is very chaotic. But you need to touch it not so often.

You also need to write unit-tests. Tests itself will take 10% of their configuration code, it's very annoying also.

But when you'll write e2e tests, everything will be much more clean.

Main part, JS code (I recommend TypeScript) can be organized by same rules you use on the server.

Frameworks: Angular 2 is closer to Java enterprise apps (with all good and bad parts of it), React and jQuery are not frameworks and if your codebase is built on jQuery - bad news, it will be mostly spaghetti-code.

benoror 13 ago 0 replies      
Hackish? yeah!, immature? still yes!, sucks? hell no!

I believe the very nature of the web, and the internet itself, is a story of a hack onto another hack.

Think about the first internet communication mediums, protocols, etc. They were all "hackish" solutions. Internet over the telephone landline? why not? change it to the cable TV infrastructure? Sure!

The web itself morphed from text-based solutions (think telnet, gopher) to hyper-text documents and nowadays to full-applications. I acknowledge that this last iteration has been a growing pain indeed, it's a mess and hasn't been consolidated, yet.

Nevertheless I think the reason behind this hackish nature is due to the fact that the web (and the internet as a whole) are always pushing towards an Open Platform, open to everyone to develop and consume, without any corporation behind it.

Compare that kind of ecosystem with the more closed less-hackish ecosystems like Windows/OS X, Android/iOS app development, you can see the difference.

Just my two cents :)

harshvchawla 9 ago 0 replies      
It was today itself that, when asked by my manager, I was mentioning my progress on a recent web ui project as "guerilla warfare" :)

Also the discussions on jenga-style code top-ups also look like jenga style discussions!! (whats this phenomenon called?) - i wish hackerNews implements a css framework to streamline messages by tags/rankings/marking favorites.

Maybe its the way of hacking html/css/js that I am liking about it (and I am just few weeks into it as of now)

jorgeleo 14 ago 0 replies      
That is because Html is a more readable form of RTF, but still a document descriptor none the less. and hack in with javascript.

If the world had settle in Word format, instead of javascript we will be using VBA, and everything else will look exactly the same.

I think what we really need is a web app environment, with programming as the first though

sp527 22 ago 1 reply      
What you're witnessing is the migration of complexity to the frontend. It's becoming very difficult to find a backend problem that doesn't have a well-defined, generally accepted solution and accompanying FOSS that you would be stupid (or even borderline criminally negligent) to ignore. In fact, full-stack programming in general is boring enough that I welcome anything that stirs the pot a bit. That said, having tried at one time or another PM, management, and sales: programming is the worst monetizable career option, except for all the others.
tekacs 22 ago 0 replies      
I'm more unnerved by how few maintainers so many critical/core open source projects/libraries have, whether in web or otherwise.

However high our project or company's bus factor gets, it's concerning to realise that the framework or critical library underlying has a bus factor close to one. We can certainly adopt it, but that's folding in a lot of new complexity. o_O

This applies irrespective of the language, incidentally - it's often true in Java/Python/Scala even as in JavaScript/npm, as much as people like to bash on the latter.

achen2345 15 ago 0 replies      
I have been working with web technologies directly (not through Java or some other language) full time for almost 20 years. Here is the problem:

* In the 90s sloppy was awesome. The web is driven by marketing interests and not by technology interests. The name of the game back then was "get big fast". You need incompetent developers (many of them) to work in the technologies for extremely low pay, which means the technology must be extremely forgiving. The technologies tolerate a tremendous amount of sloppiness and so become sloppy themselves.

* The education around web technologies is deplorable. There are a couple of reasons for this. The technology is moving, growing, and enhancing rapidly making it hard to keep up with. Because there is sloppiness baked in its hard for people to immediately jump in and know the best approaches and avoid the pitfalls. Web technologies are generally considered incompetent toys (in academia) compared to more entrenched technologies like C++ and its spawn (C# and Java).

* Don't break the web. This means old broken approaches (the sloppiness) will continue to be supported forever even after they are deprecated and killed. We know what the best approaches are, but making the technologies more strict and unforgiving is the enemy of all marketing and shames incompetent developers (most of them). It is one thing if your language of choice fails and yells at you during a build process, but it is something different when this happens in production because web technologies don't require a build process.

You can safely ignore the technology excuses from many of the replies on here. These opinions come from people who learn web technologies only after learning something else (unrelated) first. For example, JavaScript is not Java, and if you look at it through a Java lens it will be incompetent for all kinds of reasons, but really the developer is just wishing they were still writing in Java. JavaScript will never be language x, but that isn't a valid reason to call it incompetent.

altern8tif 18 ago 1 reply      
One thing I haven't seen mentioned is that while the developer experience is getting more complex, the user experience is getting better and better.

That, in my opinion, makes all the messiness worth it. I'm not saying that there's nothing wrong with the state of web dev now, but it's not without reason that we are here today.

Remember the days of table-based layouts in HTML? shudder

icedchai 15 ago 0 replies      
I've been doing web development since 1995, starting with CGI "apps" in C and Perl. Yes, it is a pile of hacks. The fundamental issue is we're building "apps" on an environment intended for document delivery.
mmilano 11 ago 0 replies      
Are you sure the assessment web programming being a series of hacks on hacks isn't an artifact of inheriting a fairly long-lived and large code base?

I don't think I've touched a large codebase that has been around for a long time which didn't feel hackish.

I'd make the evaluation of web programming based on a language and framework that feels most proper to you, and based on the use of it with a brand new app.

nallerooth 21 ago 0 replies      
The web itself as we know it, was born from a bunch of hacks clobbered together by people who thought that the most important part of development was to "ship code". Features like images in browsers, or JavaScript, were designed and implemented in very short amounts of time and then all the cool features were copied by other browsers. With such a foundation, I think we can establish that modern web development indeed is a "hacks on hacks" thing.

A lot of people still believe that software development is all about "shipping code". And since many developers work alone, or in small teams - things like architecture, knowledge of web interfaces/APIs, etc. may not be something the developers are familiar with. Then the project becomes popular, which makes it harder to clean stuff up without breaking code depending on your project.

New developers hearing about companies embracing stuff like "Break stuff - ship code" isn't really helping them focus on quality either.

agentultra 14 ago 0 replies      
Web programming is not that bad and I think you are missing something.

You're entering a time where ES6 is mostly implemented and should be feature-complete in most platforms soon. I cannot explain how big of an improvement this language is. Javascript used to be a language that other people worked in and I refused to understand. I wrote some thing in it and dabbled when necessary but I was always amazed at how primitive it was for such a high-level language. It was usable though with a bunch of libraries to support you. ES6 makes most of that legacy obsolete.

However ES6 is a bit of a kitchen-sink language now. There are multiple means to iterate over a collection, there are classes, monads and functors... did I just say monads? I meant Promises. And did I say functors? I meant sequence types with a useful prototype. The point is that if you choose the right subset for you it's a decent language now.

HTML5 kills the notion that, "the web is only for documents!" The acronym has aged a bit and is not really descriptive of what HTML5 is anymore. Most GUI libraries and systems I've seen implement the interface in terms of a tree of "objects" with the root node being the Window itself. That is essentially what the DOM is now with the browser providing the run-time loop, input, etc. We have a rather rich array of elements to work with... buttons, input boxes, a rich layout model, 2D canvases, WebGL contexts...

Where it does still suck and where I think you might be getting frustrated is in the tooling. There isn't much of a standard library in Javascript save for the objects you're given. They all loosely fit together with little cohesion. It is quite frustrating to get a program started and take it all the way to something on the level of Gmail, Facebook, or Twitter. It's even more frustrating if your expectation is an environment such as Qt where you have standard tools, libraries, and all of that.

However with some effort and determination you can tame the beast. The part of the kitchen I find most effective is the functional programming side. I use Fantasyland compatible libraries and wrap other libraries with them. I've devised my own configuration of build tools based on Webpack, npm, that I can spin up with Yeoman. It's not great but it's tolerable.

... but now I'm looking into Bucklescript since I'm a closet OCaml fan... and that seems to be another popular angle for building "large" applications in Javascript: compile down from a more familiar language with the tooling you need.

Nothing is straight-forward. Not immediate-mode custom UIs; not big, fancy frameworks like Qt; and certainly not the web... but the web as a platform is awfully powerful, flexible, and open.

cdevs 15 ago 0 replies      
Currently at work someone wants to learn to create web pages and prototype his ideas. He asked me if he's ready because he's learning JavaScript and I had to reply you still need to learn html, Css, sql and a server language to do what we do how we do it. It's a shame so he moved on to some new site / page from mit that's allows drag and drop boots troop elements and drag and drop database logic like "users must be logged in". It's unfortunate there's not much of a middle grown between learning 5 things and drag and drop.
xorgar831 22 ago 0 replies      
I'd love to know too, are there any frameworks that are at least more straightforward than React and Angular? One where you're not passing anonymous functions into functions with all sorts of confusing syntaxes, where you can just express what you want to do without having balance three types of punctuation that require the shift key to type.
pjmlp 13 ago 0 replies      

It should have stayed as hypertext documents, just plain HTML + CSS, with everything else just covered by network protocols.

Instead it is a pile of hacks of trying to bend HTML + CSS + JavaScript to behave like native applications, but not quite, because the browser is in control of the L&F leading to yet another pile of hacks to make the already existing hacks to behave the same across all required browsers (including different versions of the same browser).

flushandforget 21 ago 1 reply      
I think what saddens me with web programming, is constant rewrites of the same old projects, that pretty much do the same thing. As a community we'd be better to focus on a few core APIs like a web shop or a booking app.

A church or school could have a common underlying built platform. Where functions of outfits are unified, we could drop in one size fits all solutions.

In England (UK) you have about 24 thousand schools these could be aided/driven by a few competing platforms. Charities and small shops likewise.

Platform constraints can also help. Having fixed html, perhaps would let designers just swap out CSS and imagery - job done.

Much web work is a brain drain, and a lot of good talent in my eyes is being squandered on petty engineering problems, when there is still a world out there that needs putting right.

sidthekid 8 ago 1 reply      
I wonder if 50 years down the line, maybe when humanity is building spaceships to go to other planets, will the interstellar software be written in C++/Java or Assembly or be produced entirely by AI subsystems or what.
SimeVidas 22 ago 1 reply      
The web platform is disorganized and has many missing pieces. It has also grown quite a lot in the last couple of years, so its virtually impossible to understand all of it. As long as youre disciplined about learning from the relevant blogs, it will become better (but it may take months).
bigopon 3 ago 0 replies      
Because it has to do something nothing could everdone before ? Unites the worl, provides collaborative environment. So it needs time to evolve. You will hate it less overtime
palerdot 20 ago 2 replies      
One thing that frustrates me as a front-end dev is the inability to settle down in an ecosystem. Every minute, new tool/framework is coming with a tagline "There is no need to do that like you did with X, Y takes care of it for you".

Now the Y might be webpack/React, tomorrow it might me something else. Whoever says React gives them a consistent way of doing things, they would have said the same thing to Backbone/Angular/ember/bower/grunt/less/sass/precss/postcss/ .............

Ultimately, it is about controlling your mindset and navigating through this onslaught of tools/frameworks in the front end ecosystem.

ankurdhama 22 ago 0 replies      
Any software, no matter what type, that evolves over time will become a series of hacks on hacks. The more the frequency of evolution is the more hacks will be there. Unfortunately the frequency of evolution in any web app is way way too much then other kinds of applications.
eksemplar 13 ago 0 replies      
There isn't much of a difference between web and application development in my eyes. Both should be build on a service backend, with a common architecture making different systems work together through APIs or MOX-agents.

In that world the "view" part of your system might as well be web based. Making front end look and feel good, is terrible in everything anyway.

buro9 22 ago 0 replies      
Everything is simple.

There is just a lot of it.

That's pretty much my view of internet and web technologies over time. It all did work, it all continues to work, to address security/performance/convenience we collectively add a few more little simple features/workarounds/quirks.

But ultimately the perception of the hackery of it all really stems from:

1. Quantity. There's a lot of stuff, it all works to some definition of "works" and there is typically more than one way of doing something.

2. Quality. When things are made, they are made for that time. As time goes by we can more clearly see the ambiguity of something, or the incompleteness of a feature, but by then it's too late and it's set in stone, our fix is usually to add something new (see #1).

sheriffderek 11 ago 0 replies      
I suggest you choose to fall in love with Ember.js. She is the prettiest girl in your small town and she's really friendly. Start calling yourself a programmer instead of a coder - and help move Ember toward being, not just a framework, but an SDK for the web. Everyone can complain all they want about CSS and how it's broken etc, but no one has come up with a better solution. It's not the dark ages... in fact, it's the best time in web development so far. Developers haven't had to be 'designers' in the way they are being forced to now - with variable screen-size, and alternate UI patterns for each. HTML in little dynamic templates, variables for CSS preprocessors, ES6, and modular JS patterns. Things are wonderful. +1 for a new mental paradigm.
nigelg 11 ago 0 replies      
This thread is just a big circle jerk of non web-developers hating on web development.

Minimize you dependencies, organize your code into easy-to-fit-in-your-head, single-responsibility modules. Write a simpler solution instead of including another 100kb minified mess.

Someone else said it, but I'll repeat it: systems scale, languages don't. Javascript can be as good a language as any if you use it correctly. People bitch about the footguns but don't take the time to design their systems correctly. Yeah, Javascript fucking sucks when you write 10k lines of incoherent JQuery-soup in a single index.js file that provides all the functionality of your shitty asp.net page from 2001. Well no shit? You can write garbage in any language.


ubernostrum 20 ago 0 replies      
Is it really that there's some exceptionally high amount of hackery? Or is it just different hackery than the kind you're used to and have so thoroughly internalized that you no longer see it as a pile of hacks?
Fannon 22 ago 1 reply      
Yes, the web is a very messy place. Maybe a kind of wild west of programming practices?

But it's also a place where you can do a lot of things that no one has thought before. There are not many rules and a wide diversity of approaches. The web platform never had many of those approaches (e.g. complex web applications) in mind when it was created. It works somehow, anyhow. It's chaotic, yes, but also flexible and full of freedom.

To stay sane in this world, you have to voluntarily and deliberatly (!) reduce this freedom and create yourself some small sane pockets that you understand well enough and feel comfortable with. This can be done by increasing the abstraction level and restricting feature sets (e.g. ESlint), using Frameworks (React, Bootstrap, ...) and transpilers (TypeScript, Babel, Sass). Note that you're loosing freedom here and you're buing into other peoples understanding how a sane place of web programming should look like. In the Web there are a lot of ways to do things, there's no monoculture! And if you don't like the existing ways, roll out your own (though I wish people would be more careful / sceptical with this attitude).

And there's the backend. You've got all choices of programming languages and frameworks there. If you're making a mess of you're backend, you really can't blame the web for it.

For someone without much web experience, this process of choosing frameworks, workflows, toolsets just to get to one (of many!) sane programming experience is surely daunting. You have to choose and configure your envirionment yourself first, just to get started. You really need someone experienced to set this up and understand most of its implications. If you're having so bad experiences with your current web project, maybe some bad decisions were made regarding this. Or too much freedom (and therefore chaos) was left in place and got out of hand.

If you don't have the experience to make those decisions, you could just start with one approach that is pupular right now. I guess on hacker news this would be something like React, Babel, etc.. There are a lot of tutorials out there to put this all together.

prawn 15 ago 0 replies      
It might be hack on top of hack, but I find it quite enjoyable when I'm completely in control of what I'm delivering. When I know what's reliable and what's dangerous, I can work around those limitations. Where things get particularly painful are when you are at the mercy of decisions made by a client or boss who won't listen to reason. Then it's hell.
crearo 22 ago 0 replies      
I felt the exact same thing when I started webdev after 3 years of app dev and a little bit of REST APIs (and backend) using python flask. For me JS, and all frameworks built using JS felt like attempts at revival of something that should have long died. Every new framework gives JS lovers (honestly no offence) a little bit of hope and adds a year or two to its survival. For a long time, I felt JS was a hack on top of a series of hacks!

I've just come to accept it now. The reason you're disliking it is probably because of its extreme hit and trial nature - unlike appdev which is more fluid and consistent.

stevesun21 16 ago 0 replies      
As working on backend and front end for many projects for different size of projects over years, I would say 'yes' as my short answer.
z3t4 8 ago 0 replies      
The trick to web-dev is to avoid a "back-end" at all costs. Just make all your "data" available in human friendly HTML.
jamez1 22 ago 0 replies      
I like to think of web programming like the english language, how it's a mashup of all these other languages and ideas. It's hard to learn as an outsider and has many gotcha's and wrote learning exercises
kharms 13 ago 0 replies      
As a non-web-dev, the hardest problem I've encountered is choice.

Which framework should I choose to do X? To do Y? Do they play together? Are they still supported? Are they well documented? What assumptions are made by them?

There are dozens of options for most things, but no guide to them.

segmondy 21 ago 0 replies      
Nah, you are not missing anything. You are not alone, but you are also resisting change because you are not use to this fast pace of change. The reality is that you need really great memory and ability to organize and discover information fast to make sense of todays applications. It's layers upon layers of abstraction. It's terrible in a way when you have to work with others you have to deal with it. When you work by yourself, just keep it simple, choose a few well proven and solid stacks and just stick with them.
tracker1 9 ago 0 replies      
I know there's a bit of boilerplate to learn, but if you stick to React + Redux + Fetch using Babel and Webpack, you'll have a much easier time of it overall.
popopopo 22 ago 0 replies      
weird. commenters seem to be either new web devs, or non-web devs at all judging from comments and cries.

web development is as hard as any other development environment. you must know a lot of stuff, hacks ARE NOT mandatory at all and it is not as bad as people tell you.

maybe you just work with terrible base code is the answer?

palerdot 20 ago 0 replies      
One important thing is a final web page is a confluence of code coming from different sources, and not controlled by the end user or the developer/website. If you define some functionality, I could just override (intentionally or not) with my code which also gets loaded along with yours.

Combine this with the inconsistent browser playground, you might get some perspective of the hacky nature of the workings in the front end world.

hellofunk 16 ago 0 replies      
true, unless you look at incredible new ways of UI design like React and its Clojurescript counterpart, Om and others. FRP and similar concepts has so dramatically changed how I think about software design that I now use it for most of my native C++ projects as well, or at least, I get as close to it as I can.
plg 14 ago 0 replies      
Isn't everything? The older I get the more I realize that all of the orderly systems I thought governed life, society and the universe are in fact a system of hacks and bag of tricks. Sure there are rules. Except when there are exceptions. And on it goes.
bikamonki 13 ago 0 replies      
So what exactly are the front-end stack haters proposing as an alternative to hack-on-hack? Should we just dev/maintain N code bases of native apps to run on every OS and then somehow connect them?

Haters are missing the big picture...

Kaizyn 20 ago 0 replies      
Have a look at Elm. That looks like a fairly promising alternative to some of this mess. I don't think you can get away from CSS and HTML5 though.
wepple 14 ago 0 replies      
my biggest realisation of this was when reading the opening chapters to Michel Zalewski's Tangled web [1]. He does an excellent brief intro to how we got to where we are, warts and all.

Things like content sniffing where a browser can't work out what type of file it's been given, so has an algorithm to take a guess and render based on that are what we've got to deal with.

[1] https://www.amazon.com/Tangled-Web-Securing-Modern-Applicati...

p333347 15 ago 0 replies      
From my experience, it is, especially in front end development when you must have cross-browser support. For me the term cross-browser support itself is quite amusing and nonsensical given that there is supposed to be a standard.
peter_retief 23 ago 0 replies      
I agree, its way more complex than it should be, probably something to do with the browser wars and propriety software battling to add barriers of access
ionised 12 ago 0 replies      
As primarily a back-end developer I am being exposed to some front-end work at the moment with AngularJS/CoffeeScript.

I have to agree with you. I'm not enjoying it at all.

shurcooL 21 ago 0 replies      
I agree, and I decided I won't accept the hacks and compromises anymore, and started building everything in Go (even frontend stuff) in my free time. There's much to do, but at least the foundation (type system, type safety, etc.) is very solid.

This way, I don't have to build on top of the hacky and messy things anymore, but slowly take my time and do things very right.

avisples 13 ago 0 replies      
Application development on a web platform meant for documents is inherently a hack, but the evolution of the ecosystem is reaching a point where many of the hacks are quite good. There's just a lot of inertia from existing codebases and developers used to the previous ways of doing things, and FUD from places like Google with Angular and Polymer.

Web development seems to be particularly suited to the model of building a hack, then pouring concrete over it, then building the next layer of hacks on top.

saosebastiao 22 ago 0 replies      
Not gonna comment on most of this, as I'm right there with you. Web development is a gigantic shit sandwich. But I have to at least respond to this:

> I'm not even talking about the fact that everything has to be stateless, in fact I develop desktop apps as stateless even driven UIs as well,

No, you do not. UIs are state machines (not like state machines, they actually are state machines). It is impossible to have a stateless interactive UI. If it is stateless, it might be a web page or document, but it is not a UI.

Any attempt to make a "stateless" UI will fail because of this impossibility. What many half-baked frameworks will attempt to do is make them as stateless as possible, which is a recipe for disaster, as they can't actually get rid of the state, they can only move it to some location where it wasn't designed to store state (Routes? Cookies?), or to some location where the semantics and comprehensibility have been compromised. In fact, this statelessness is precisely one of the major problems with web programming...you're trying to bolt something inherently stateful onto a format that was designed for statelessness (HTML was created for documents, not apps).

Programmers in general, and UI programmers in particular, need to get over their fetish for statelessness. Sure, modeling a stateless problem with stateful code is ridiculous, but if you try to model a stateful problem with stateless code you are going to have a much worse time. Modeling state is hard...don't make it harder by pretending it doesn't exist.

dreta 18 ago 0 replies      
HTML and JS are bad, but you can reduce them to a basic syntax that you can work with. CSS on the other hand requires hacks to perform the most basic operations like positioning an element relative to another element or centering an element inside of a container.
paulftw 21 ago 0 replies      
Frontend always was and always will be harder than backend, regardless of the platform/framework etc.Yes, the fact that HTML / CSS is a technology designed in a different era (slow keyboard+mouse desktops) for a different purpose (displaying static hyperlinked documents) doesn't make life any easier.
35bge57dtjku 22 ago 0 replies      
> Is web programming really that bad? Is it really just that I need a new mental paradigm?

In the sense that there's 1000 web frameworks that all put their own shitty spin on everything, yes definitely. OTOH it shouldn't be hard for you to improve on those things and release web framework #1001.

chunkyslink 21 ago 0 replies      
This is a good resource in terms of 'getting your head into the space'.


Not aimed at beginners but it made me think a lot more about how complex this can actually be then a set of related technologies.

patsplat 14 ago 0 replies      
You are resisting change. User experience code is different from backend code. It is often a pile of incomplete abstractions and device specific hacks.
gvilarino 14 ago 0 replies      
Programming is just a series of hacks on hacks.
mathgenius 19 ago 0 replies      
About 15 years ago I made the conscious decision to ignore web programming entirely, in the hopes that in a few years things would settle down and get some sanity. Apparently this has not happened.
GoToRO 21 ago 0 replies      
It's the same like any other open source project: it gives you 100 ways to hang yourself and maybe only one way to do it right. Your job is then how to find that one way.

Frameworks? use them when you need to deliver crap, fast! :)

godzillabrennus 22 ago 1 reply      
Yeah it is. Django is a good example of a framework that is popular and well documented overall. Yet when a new Django revision comes out the books and documentation from third parties take months to follow on. So by the time I've learned all the major changes in a revision well enough it's already party over for that revision. Official support is just ending because they have a new revision out. Unless it's an LTS build but that means there is a whole lot of new stuff in these non-LTS releases.

I for one would prefer to have Django and other projects abandon the minor revision numbers like 1.8 and 1.9 in favor of what Asterisk did and call them what they are. Version 8 and Version 9.

That'd make it feel less hacky and if done right they could encourage longer support cycles for these major version releases.

realworldview 22 ago 0 replies      
You are not crazy. Many, many people have come before you and asked the same. The reply is always the same. Yet the craziness continues, it multiplies and it leaves nothing in its wake. Nothing stirred in the embers.

And the DOM was.

justifier 19 ago 0 replies      
where does the hacking end?

i see using an electron passing over an elemental substrate as a hack of electromagnetism to allow its properties to represent arithmetic logic

i see little endian as a hack of binary notation of sets to be able to compose information

everything you do is a hack on top of a hack.. on the shoulders of giant stacked turtles.. or some such

what about web development sucks for you? in recognising them do you have any ideas for how to relieve your pain points?

web development is the same as application work.. solving problems

the_common_man 21 ago 0 replies      
I think any programming model that's been around for a long time is complex. Backward compat is the devil. Take OpenGL for example. All the compat stuff has made it practically impenetrable.
BasDirks 21 ago 0 replies      
HTML, CSS and JavaScript are improving. Your experience as a web programmer depends on the browsers you are working with. If your clients include IE6 users, your life is going to be worse.
bikamonki 23 ago 0 replies      
If you've been codign "since before the web", then you should be able to see the whole picture. The browser is the new VM. Horrible hacks are necessary to test ideas and move forward new paradigms.
jaunkst 22 ago 0 replies      
Its very, opinionated. It has to be! (for now)

I can agree with almost every opinion in the comments, almost everyone is right. But with a strong opinion and a strong mental model there is light at the end of the tunnel.

The future is bright for web applications, and almost everyone in the space is aware of the biggest issues, which is important as the browsers adapt new features to help ease the pain.

Web development is a scary place but it can be enjoyable when the right pieces are in place. Older web applications have crazy hacks and made up anti-patterns to solve problems, which mix context between the client and the server making it a nightmare to wrap your head around or even implement new features.

Often a new feature in such application guides the developer to accept the fate of adding more technical debt, and creates a strong desire for a better way with no way out without a major overhaul of the backend and frontend. I have spent countless hours building patches to older systems just to prepare them for the option of pivoting to more modern approaches.

Today web application development is a fast moving target. Design patterns are changing from framework to framework. Even from framework version to version. i.e Angular 2.

It's almost as if the current state of frontend development is very comb shaped. broad in approaches, and that the community is digging deep into patterns that are showing success in scaling, and performance. We have to deal with various topics, the lack of concurrency, performance of the DOM, managing scope, and state.

I have a few opinionated methodologies to help me in modern web development.

1. Pick a strong frontend and backend frameworks and know them well.

2. Don't mix the backend and the frontend code. Keep the backend API in context to the business domain, data validation, and security. Allow the client to be an independent consumer of the API for portability and scalable distribution.

3. Keep your JSON responses as flat as possible, and avoid deeply nested data structures. Rely on functional programming to map and reduce your data on the client into deeply nested structures if needed.

4. Decide what the client can compute for free computation cycles.

5. Stay as data-driven as possible. Fall back to the server or micro-service if the client is not efficient at a demanding task.

6. Choose libraries with the least restraints and high flexiblity. They should not obfuscate or complicate your ability to implement the design. I find most libraries can assume to much control.

We are in a better place today then we have ever been for web applications. Though the learning curve is intense and the subjects broad. Especially for fullstack developers. I feel that finding what works and an opinion of how it should be done is important.

I am less picky about the backend technolgies as I am with the frontend. I would really only consider Angular, or React for my frontend. Both Angular and React expect you to form a mental model of how they work, and what a build pipeline should look like which is very project specific in my experience.

Its the wild west our here, and expect things to continue to change. Building an opinion, vetting new libraries to add to your toolbox, and experimenting is just part of the web application world.

zebraflask 13 ago 0 replies      
That's a colorful way to put it, but yes! Of course it is. That's what makes it fun.
cureyourhead 22 ago 0 replies      
We are all Windows programmers now.

The web is really just one enormous operating system we're all just hacking on.

But it's only slightly better then this but not as clean as Linux. W3C sort of plays the role of Torvalds

hmans 21 ago 3 replies      
It's been ruined by a generation of developers who believe it a good idea to build stateful applications on top of an inherently stateless document-centric infrastructure.
sboselli 15 ago 0 replies      
You sound like a good candidate for something like Elm (elm-lang.org), with its Elm Architechture.
solidsnack9000 23 ago 0 replies      
It is the amazing architecture that integrates those hacks, though.
mruniverse 20 ago 0 replies      
It is but don't worry about it. It's getting better by the hour.

Just think about this: Has it ever been easier to reach so many people with so little effort?

gotofritz 8 ago 0 replies      
Yes, it's you resisting change.
robbyt 22 ago 0 replies      
Yes, it sucks. So how do we fix it?(In perfect world, how would you reinvent the web as an application platform...)
kelulon 17 ago 0 replies      
Yes, it is. That is exactly what I have found. It's just insanity. I can honestly say Javascript made me cry today. It's not just you. There is a better way.
ktRolster 22 ago 1 reply      
Web programming is ok. A lot of the complexity comes because it is actually two different problems:

1) The problem of displaying a (mostly static) page of HTML

2) The problem creating an application

There are web frameworks in existence that solve either of these problems, but things get ugly when people don't think about which problem they are trying to solve.

exabrial 22 ago 0 replies      
Yes. And while HTML5 brought a lot of awesome features, it also created another set of problems, the least of which, is the syntax is impossible. There are 100 "right" ways to do things now, when in fact, a language should specify an exact way of doing something.
duncan_bayne 23 ago 0 replies      
I think all programming is, but Web programming is _particularly_ that way.

The least bad stack I've ever used is Reagent ( https://github.com/reagent-project/reagent ) - a Clojurescript library for React. Perhaps that's just _adding_ layers of hackery, but I found it made sense.

joelbondurant 22 ago 1 reply      
HTML5 seems significantly less advanced than Java AWT was in 1997.
gruzilla 14 ago 0 replies      
I have a a very similar background as the OP.

Also seen/worked on projects that are a mess and devs there built hacks upon hacks to keep everything up.

I also felt like I am stupid (besides studying software engineering and working in the web business for 15 years) or I miss something. But then I also had the privilege to work with very skilled people and get a different perspective.

Here comes my argument:

I argue that most projects that went to be a mess have been set up by people that had to work with incomplete information or insufficient time to conquer the stated problem. So I project the question "is-technology-the-problem?" to "is-the-team-the-problem?".

In my experience much bad influence - that create messy projects - comes from the lack or the way of communication between technical designers (who say whats possible), developers (who say how its possible) and other stakeholders (who normally "just want something"). I think of a situation here, where I had to work with a sales guy who proudly sold "rapid development" and "agile iterations" without understanding the technical or management perspective of true rapid development.

When it comes to making design decisions (which WILL influence the "messiness") the web is full of different approaches, technologies and so called "best practices". If you're a designer of a "will-become-big"-project it is difficult to make those decisions based on this variety of solutions (which as the OP stated almost everytime suck after some months). The fact that every framework presents itself as the best and most versatile does not help at all.

My best practice to go out and talk to people about my problem and not ask the internet. Its others people experience you only can access in a discussion, because normally you don't and cannot know what information you lack and therefore ask superficial questions on the web and thus get superficial solutions and have to conquer previously unexpected problems in long-term.

Another argument I want to make:

If you were a carpenter and would have to build the interior of an opera you would not go to the web, google for a month and then think you have exhausted all available resources and now you are ready to build that opera interior.The ubiquity of "quick solutions" make developers believe there are no long-term-effects of such decisions and thus most such small decisions never get discussed.If you have worked in teams in other branches (building digital arts, building a house boat, stuff like that, where you MUST have a team) you get the point of what I am saying. Its only computer science where people stop talking because they think everything is clear to everybody.

About your question about orientation:

I suggest getting aware of the high level concepts of full stack web development and truly understand the concerns every layer tries to attack. Web-Development - like every other software engineering discipline - is all about Devide&Conquer.N-Tier development (one approach to D&C) is nothing new, but the semantics of web development are new. A good designer has to speak those new semantics fluently. It also helps getting a good feeling about what actually is a "best practice" and what is just sold as such. There simply is no universality to web programming as there is none to other software engineering disciplines.

I gained a lot of confidence in knowing about the classification of problems and how you would generally combine them instead of building a big hashmap of problem -> web-tech-framework (This also reminded me of some complexity courses I took in my studies). Giving clear semantics to different parts of your application and discussing those layers using natural language also reduces your teams vulnerability to total chaos and prepares for unexpected changes of requirements.

Further I learned from experience that its often the time-constraint that promotes messy code that never gets cleaned up because the project somewhat dies a slow death, which in my eyes is just a reminder that web-tech is something new to the society as a whole.


Thus I developed the following perspective: I see myself as a moderator of language and problem-awareness. I often argue in front of customers that if you describe the project as a map of the problem domain there are A LOT of blank areas and its our teams effort that will unveil/debunk/uncover those blank areas. I also point out that there are a lot of semi-blank-areas on our project map. I for example know how agile development looks like that does NOT generate a hack-upon-hack architecture but the others don't. On the other hand I have no knowledge whatsoever about interiors of operas (to reuse the example from above). Its that explicit merge of information that prevents a projects structure going astray.

naranha 22 ago 0 replies      
Are you talking about the client or server side?
jimjimjim 21 ago 0 replies      
house of cards.

with each card being the flavor of the month provided by an external source.

it's almost enough to make me want to go back to activex.

unclebucknasty 15 ago 0 replies      
Damn. If I didn't know better, I'd have thought I'd written this myself while in an Ambien-induced fugue state.

This is exactly my feeling and much my own history. I think the intensity of your pain can be felt most acutely by those who once knew a saner world of software development.

For those who came of age in this era of Javascript hacks, framework of the day, standard of the week, and separate open source tool for every single task an app must perform, I think it is simply normal.

I say this because after several years applying my craft to my own business in the manner of my choosing, I have recently returned to Organized Development Land. When I read the code or a module is explained to me, all I can think is "are you effin' kidding me?" But I look around and everyone else has a straight face.

If you've stayed in the industry during this evolution, you have probably had moments of frustration or confusion wrought by this change, but have now had a full WTF epiphany--likely induced while simply trying to get something done for the hundredth time, that should've been relatively straightforward.

Mainstream software development is no longer about logic, algorithms, creativity, and design. It's about trying to glue together a hodge podge of disparate crap and trying to make it work. And, for the artisans of old, it can feel like soul-crushing assembly-line work.

gjolund 10 ago 0 replies      
In theory, no.

In practice, yes.

emodendroket 14 ago 0 replies      
It can be OK, but yes.
keithnz 21 ago 1 reply      
The web world is just a new world of different problems. One of the most interesting things about this world is there are a LOT of participants. A big part of the web world is diversity, it's kind of like moving from the country to a big multi cultural city. Many many many ideas are being thrown around. Finding cohesion between ideas is tricky. Being a learner in this world is bewildering.

Understanding the browser is very important, perhaps start with http://www.html5rocks.com/en/tutorials/internals/howbrowsers...

If you are a good coder, javascript can be awesome. Put a lot of time into understanding the language. Don't stray into variants like typescript or coffeescript or elm or anything else till you are pretty happy with js. Prioritize learning ES6 over any variants. The bulk of information on the net and libraries, etc is standard js.

Get a good understanding of webserver, HTTP / Web sockets. Sniff packets and also understand HTTPS.

Invest a lot of time into HTML and CSS, there's a lot of advice on how to build your own CSS frameworks from the ground up, this is really worthwhile. But also spend a bunch of time with something established like bootstrap ( or any other UI framework ) so you can see what problems frameworks are trying to solve.

Language? Frameworks? This is where it gets tricky. I suggest understanding a Node stack, as it's popular, and a lot of examples use it as a backend. It may not be what you actually end up using. Checkout Angular2, React / redux as they are popular javascript frameworks that run in the browser to deliver application like UI. However, go for statically generated pages if you don't need that kind of UI, classic GET/POST delivered webpages still deliver a lot of value.

Security / Authentication - Can be very tricky and in some environments it's left to roll your own

Data - Can be super convoluted, often taught in a web context without much concern for security and authentication (depending on stack). In general avoid having too many layers between your data store and the UI. SQL / NoSQL / BigData Stores are all toys to play with (but each data store tech has its own problems and tradeoffs) and more often are getting mixed together.

Now, because you can pick and choose nearly any aspect of the above, it can become very hackish, especially as new toys are coming along all the time.

If I was going to recommend a single thing to start playing around with? probably meteor. It packages up a lot of modern web things for you, it's all javascript, it uses a mongo back end (which is a json store, not necessarily the greatest choice of DB though), has a easy package system, and supports a number of popular front ends. None of which is how you should choose a production stack, but it can be a good way to get started.

ilaksh 22 ago 2 replies      
My take on this is that backend developers have always been at odds with frontend developers in terms of being given larger salaries than frontend while not having to keep up with new UI technologies and simultaneously downplaying the skills of the front end programmers.

So now, when you have to learn about the web platform since you just cannot ignore it anymore, you are feeling pretty overwhelmed, and can't help yourself -- you fall back on what you know, which is to shit on the skills of front-end developers.

I say this as someone who has done front, back, database, ops, on web-based and desktop stacks.

andrewmcwatters 12 ago 0 replies      
The cleanest and most efficient methodologies for web development today are largely unpopular.

The people who know how to write efficient websites, web pages, and web software in general are going to be either the people who have been doing it long enough to remember the old ways, or those who wade through enough of today's bullshit to understand how to do things with less code, and faster rendering times.

justaaron 14 ago 0 replies      
tempodox 15 ago 0 replies      
Yes, very much so. And everybody is too busy making money to go back to before all those wrong decisions and apply the knowledge we now got from hindsight.
transfire 16 ago 0 replies      
I was thinking about this the other day, and one possible way to improve the situation is place a hard separation between web documents from web applications. Currently we try to shove both capabilities into a single paradigm (stack). But the two don't mix well.

What might that look like? Ultimately a much more elegant HTML and simplified CSS for web documents, and quite likely no HTML for web apps -- the Javascript and CSS would merge into a GUI-oriented language.

craigmcnamara 22 ago 0 replies      
Nailed it!
forrestthewoods 22 ago 0 replies      

Whoa. Betteridge's law doesn't apply here. Weird!

How to Test Drive Your Business Idea Before Quitting Your Job ladder.io
441 points by stefanmancevski  4 ago   86 comments top 15
akanet 4 ago 7 replies      
I gave a talk at Dropbox called "How to start a business without quitting your day job" that I think delivers a lot of the punch on this page without the weird culty vibe. Give it a watch (for free, obviously) if you like: https://www.youtube.com/watch?v=J8UwcyYT3z0
highd 4 ago 8 replies      
I highly recommend considering consulting/freelancing when looking at starting a company. Hourly rates generally price in an expectation of not having work full-time, so you work less than 40 hours/week to begin with. Drop an hour or two of commute every day on top of that and it's a big win in terms of time that can be spent on a startup or side-project.

Of course consulting requires more in terms of people skills - you're basically "interviewing" every time you find a new client. But I think in some sense that's a hump to get over either way - there aren't many startups that don't benefit from founders having soft skills.

Sort of an orthogonal point to the article, of course.

whamlastxmas 4 ago 2 replies      
Nothing really new here that isn't covered in Lean Startup materials.

>We've spent millions of dollars ... so you don't have to.

This two person company that's had, from what I can tell, a hand full of clients, has spent millions of dollars testing their marketing? I find that a little hard to believe.

That said, their Playbook page is pretty cool and informative, even if seemingly most of it is behind a paywall. It'd be nice to have more information about how these ROIs were calculated. If it's a sample size of three it doesn't mean much. Or whether it was done in combination with other things, and how long those results were measured for also matters a lot. As it stands right now it just sort of comes across as marketing bullshit because it's impossible to tell how meaningful the ROIs are.

The case studies are also pretty weak. Your solution is two sentences? Really?

k__ 4 ago 1 reply      
The biggest issue for me is to identify meaningful problems in the first place.

I mean, when I work for other companies I can crack down on problems they identified and have customers for and often I have good solutions for them. But finding these problems is hard.

gricardo99 4 ago 1 reply      
Great writeup. Very informative, speaking as someone new to the realm.

It seems it's only applicable to business models that rely on getting revenue directly from customers (i.e. buying subscriptions or widgets). Do you have any thoughts about how you might test an idea where your service is free, but you get revenue through advertising to your users? It would still be very valuable to get some sense of how useful users would find your site, how often they'd visit, etc..., but you don't really have a strong test (i.e. will they pay?)

pragmatic 4 ago 5 replies      
I'd love to know where to find these people to interview. Where do I go, the supermarket, the park?

Also I don't think my network is big enough to hit up a significant number for a new software idea aimed at a specific niche (ex used cars sales).

Those are the pieces I've never been able to put together in all my time with the Lean Startup methodology.

free2rhyme214 3 ago 1 reply      
Great post Michael. Despite what people say about vanity metrics, I think proving people want what you're going to build before you build it is incredibly important.

I heard Flexport did this by getting 300 companies to sign up before Ryan (the founder) wrote any code.

Eliminating risk isn't entirely possible. You could create a website for DoorDash/Ladder or Flexport, get traction, build Version 1 and then get told NO but I bet statistically you're more likely to have success with this method than building V1 first.

As an example, Optimizely got something like a $2-$4k commitment to pay without writing any code.

Again not everything works out this way. Snapchat, for example, would be a terrible example for this methodology but it works for some ideas.

inputcoffee 4 ago 1 reply      
Two quick points:

1. I like the blog post. It may sound similar to the methodology in Lean startup, Y Combinator, and a bunch of other stuff but so what. It is clearly written and specific.

2. I have no idea what ladder.io does! I looked at the web page, and it is very slick, but I still can't figure out what you do.

Quite a difference.

You have a "real time tactic database". Is that the same as a listicle on the top 5 areas to spend marketing $?

You offer continuous testing. Is that Google Analytics?

nikatwork 4 ago 0 replies      
> Yelp for people?

What a truly heinous product. I've known a number of people who have been stalked, I can't begin to imagine the harm a stalker could cause with this kind of app.

lilcarlyung 4 ago 2 replies      
Is quitting your job for your own startup idea, when working in tech, really that big of a deal? Especially if you are a software engineer? You'll probably end up doing the same thing as on a corporate job but for yourself while learning a lot of new things about building software (marketing, sales, design, etc.) and about yourself (grit, character, etc.). You are still gaining experience. If shit hits the fan, with all digitalization going on everywhere, finding a new job won't really be that big of an issue.
pawanpe 4 ago 1 reply      
Good write up! Learnt some new points.
boyter 4 ago 1 reply      
Not really sure if I want to give this one away as I want to use it more myself but https://nugget.one/ seems to be applicable here. They claim to do most of the filtering for ideas for you showing market size, how to reach them etc...
a_c 4 ago 0 replies      
well, I wish I had read this article before quitting. Now my freelancing is experiencing delayed payment/possible default and had little progress on my idea. Would love to hear some advice
andrewfromx 4 ago 1 reply      
you could re-title "How to make sure you talk yourself out of taking a risk and keeping your job" isn't the limitus test from zuckerberg you should have this burning desire to change the world in this particular way, and the burn should be so intense that you wouldn't even consider for 1 second keeping your job.
stuntgoat 3 ago 2 replies      
I hear this is what the creators of Pokemon Go used before they launched their product.
Sophisticated OS X Backdoor Discovered securelist.com
383 points by cyphersanctus  4 ago   144 comments top 23
bink 4 ago 1 reply      
What is it that makes this malware sophisticated? I didn't see anything about rootkits or process hiding / obfuscation. Is it not just a simple daemon that can be configured to monitor audio/video/keyboard and send the results back via an encrypted connection?
vemv 4 ago 6 replies      
Is 'backdoor' the correct term if the vulnerability does not originate from Apple?
drinchev 4 ago 1 reply      
Can someone explain how the vicim gets infected?

As far as I can read from the article they discuss what happens if you are infected.

Also, isn't running binary files on OS X from let's say "Finder" automatically triggers Security alert ( like App-vendor lock )?

commentzz 4 ago 4 replies      
I feel the use of 'backdoor' here is misleading.

The software described would usually be classified as an Advanced Persistent Threat [1] or Rootkit [2]Backdoor [3] usually refers to methods to sidestep authentication added by the vendor.

 1: https://en.wikipedia.org/wiki/Advanced_persistent_threat 2: https://en.wikipedia.org/wiki/Rootkit 3: https://en.wikipedia.org/wiki/Backdoor_(computing)

epistasis 4 ago 2 replies      
Really interesting to see a cross-platform malware with audio and video support; a lot of non-malware has difficulty with that.
manarth 4 ago 2 replies      
Not sure whether to be amused, vindicated, or concerned that the most prominent conversation here on HN is terminology: "Is 'backdoor' the correct term?"

Malware, trojan, virus, rootkit, backdoor, squirglebunny (OK, I may have made that last one up).

There's not a lot of talk about the threat vector though - does anyone know how this infects systems?

baby 4 ago 1 reply      
I came here to see a sophisticated backdoor. I left disappointed.
snxss 4 ago 0 replies      
What about ways to verify if you are infected or ways to remove?
chadlavi 4 ago 3 replies      
Okay, but no information on what to do about it, or how to protect against it.
gre 4 ago 1 reply      
Please clarify the title. It sounds like Apple put a backdoor into OSX.
tuxone 4 ago 0 replies      
Kaspersky, the most paid and legalized backdoor ever commercialized, ruining web experience of the average user. Although I'm glad they discover interesting things, I would love they stop messing with third parties http connection and html pages.
givinguflac 4 ago 0 replies      
I think it's pretty funny that they go through all the trouble of making this for MacOS, yet it searches for only MS Office file extensions and not Apple's iWork extensions. It also seems to me that this all hinges on having gatekeeper disabled.
saosebastiao 4 ago 4 replies      
Is there any diagnostic tool out there to determine if you've been infected?
_Codemonkeyism 3 ago 0 replies      
Looks like it's not only OS X - the OS X variant is newly discovered.

Title should be 'OS X Variant of Backdoor Discovered', shouldn't it?

"OS X variant of a cross-platform backdoor which is able to operate on all major operating systems (Windows,Linux,OS X). Please see also our analysis on the Windows and Linux variants."

toyg 4 ago 1 reply      
That list of directories is really weird. On my machine, none of them exists, neither in ~/Library nor /Library. And I do run most of that software (Dropbox, Skype, Firefox, Chrome in the past...).

Either the malware targeted very old versions of such software and/or OSX, or somebody between the malware author and the blog writer f###ed up.

marmot777 4 ago 0 replies      
I'm curious why my Malware app wouldn't be on top of this? I did a search for it here: https://blog.malwarebytes.com/threats/

Is it too new a threat? Outside the scope of my Malware app?

mrmondo 3 ago 0 replies      
1. This is not a backdoor, it's malware or an exploit.

2. This is not specific to OS X, it affects many operating systems, so this sounds like an attempt at slandering software that someone doesn't like, or has a reason not to like.

Mizza 4 ago 7 replies      
Are video captures actually possible? I could imagine video capture as part of a RAT, but what scares me is the idea of video capture that doesn't turn on the camera activity light. Are there any examples of that?
coldcode 4 ago 0 replies      
Useless article makes no mention of how this gets into the system at all. Plus its not all that sophisticated or a backdoor. Nor do they point out that Apple was notified before posting this.
throwanem 4 ago 1 reply      
I like how the images all jump a centimeter to the left on mouseover! Makes the page feel exciting.
bronz 4 ago 0 replies      
so has this been patched for windows?
jesalg 4 ago 2 replies      
This sounds a lot like the zero-day exploit used in the show Mr.Robot. Life imitating art.
yuja_wang 4 ago 4 replies      
I thought MacOS was "Secure By Design". This is what Apple states in their official product descriptions.

In fact, it says it on this current page:


"Because OS X is secure by design, theres no need for IT to install additional tools or lock down functionality for employees. And with an automated zero-touch deployment process, they dont even have to open the box."

How to Learn Advanced Mathematics Without Heading to University Part 3 quantstart.com
477 points by shogunmike  7 ago   180 comments top 24
lumberjack 7 ago 8 replies      
This is stupid. The hard part about a Math degree is the number of hours you have to put in. If you cannot go to university full time, go part time. If you cannot go part time, you don't have enough time to actually learn any of these topics on your own.

I've done these classes. It's typically 150 hours per class and it's not something you do after coming exhausted home from work either. After those 150 hours you'll get a basic understanding of the topic. You won't be an expert by any means. That will require more exposure, more time.

The lectures themselves are not that useful, I find. The lecturers are mostly useful in guiding you along, telling you which aspects of the theory to focus on and weeding through the study material to deliver you the best bits. The problem sets are indispensable. Exams make sure you actually know the basics in depth instead of just knowing about them.

My advice: enrol part-time, take one class at a time, catch up on the lectures and do the problem sets and the homework over the weekend.

yodsanklai 7 ago 9 replies      
> How to Learn Advanced Mathematics Without Heading to University

I wonder if it's even possible. Learning maths requires much work, time and dedication. Doing so alone must be very difficult.

There are several things universities provide that are hard to replicate alone: a degree, which gives you access to a job, motivation, learning environment, and "peace of mind".

What I mean by peace of mind is that, when you're a student, your job is to study, that's what you're expected to do and normally your degree will give you access to a job (esp. if your university is reputable).

Now suppose someone learns advanced maths on their own. There's a huge opportunity cost. Not only it takes a lot of time, and the few lucrative jobs that make use of maths are in finance. I suspect financial institutions are very conservative and rarely recruit someone without a proper academic background.

An other thing when learning things alone, is that your job is twofold. You must be teacher and student at the same time. You need to find the material, impose yourself some pacing, decide when it's ok to move on etc... It may be ok when you want to learn a new technique in a field you already know, but something as broad as "learning advanced mathematics" seems impossible.

fantispug 7 ago 1 reply      
Learning advanced mathematics without going to university would take an extreme amount of dedication, focus, and effort, but it's certainly possible. It's much easier with the resources available on the internet, and being able to connect with people through forums and stack exchange.

John Baez's recommendations: http://math.ucr.edu/home/baez/books.html

For theoretical physics 't Hooft's recommendations: http://www.staff.science.uu.nl/~gadda001/goodtheorist/

bitchy 7 ago 0 replies      
These books will kick your teeth in if you're not prepared. You either get a teacher who'll hold your hand or you need to gear up for fight(develop math maturity and learn all the tricks and tips). To the latter end, you can check out the Book of Proof by Richard Hammack[0] and Discrete Math by Susanna Epp[1].

[0] http://www.people.vcu.edu/~rhammack/BookOfProof/

[1] https://www.amazon.com/Discrete-Mathematics-Applications-Sus...

saretired 7 ago 0 replies      
What bothers me about this article is the hook: if you can learn this stuff you can get a quant job on Wall St. Realistically, very very few people can (truly) learn this amount of material on their own, and even so, you will be competing with top people with advanced math degrees, so if you're not the second coming of Gelfand, the goal of getting this kind of job is completely unrealistic.

On the other hand, if you have the time (and ability) to learn some of this material on your own, for a purpose other than competing for a highly paid job as a mathematician, great.

biofox 7 ago 2 replies      
I have found the Chicago undergraduate mathematics bibliography useful for directing self-study:


Previously discussed on HN:


mathgenius 7 ago 3 replies      
This stuff is brutally difficult to learn from books. Sigh. Maybe in the years since I studied this as an undergraduate things have changed with youtube and so-on. But there is nothing quite like talking to a real mathematician. One minute you are asking a question about some little thing you are stuck on, and the next minute the master is levitating and bending spoons! That's when you start to feel the real depth behind the concepts. It doesn't come from books.
ziedaniel1 7 ago 1 reply      
To get the key ideas behind many of these topics, you could try reading Evan Chen's Infinitely Large Napkin: http://www.mit.edu/~evanchen/napkin.html
lordnacho 7 ago 1 reply      
Seems pretty comprehensive to me. As a career quant trader I'd say it's a matter of doing the advanced stuff so that you understand the simple stuff. Especially in statistics, there are a number of simple principles, but they need to be learned by incorporating them into some complicated lessons.

There's also programming. That's a whole can of worms in itself. There's both theory and practice, where I'd say the practice is far more important than it seems. You really have to have bashed your head against a wall (of your own making) to appreciate how to code in a sensible, maintainable way.

ronald_raygun 7 ago 0 replies      
My two cents - I got a BS in math and an MS in stats. A ton of this stuff is really hard and takes a lot of time to understand, and it really does help to have a bunch of time to dedicate to it, a professor to guide you, and friends to try problems with. It also really helps to be exposed to a good order to learn stuff (for example I'd suggest tons of functional analysis, then prob, then stats, then finally ML)

But once this stuff clicks it becomes very easy to teach yourself. I've been learning stuff like quantum algorithm, network analysis, etc.

kikishortler 7 ago 0 replies      
On the face of it this looks more like studying than learning. The distinction is not meaningless. I studied French for six years and passed an exam at the end. However despite all this activity I have never been able to converse in French. By a variant of Gell-Mann Amnesia effect, I conclude that I cannot do mathematics either.
Tycho 7 ago 1 reply      
What do people think of this idea. Let's say you want to casually improve your maths knowledge in your spare time. Let's say you find it frustrating how you generally can't just google concepts as you come across them, because the material is usually presented so obtusely and you need to be able to ask questions and have things explained in different ways. Let's say you live in a university town. Let's say you pay a graduate student to just spend a couple hours per week answering your questions, on whatever concepts you're having difficulty with.

Do you think this would work well? Obviously it costs money but I'm guessing the rate wouldn't need to be too high to make it worth their time. They wouldn't need to do any preparation, just have a good grounding in the language of maths.

ekm2 7 ago 0 replies      
karma_vaccum123 7 ago 0 replies      
People don't go to university to learn, they go to university to get degrees...or to be more blunt...to buy degrees.
hal9000xp 7 ago 2 replies      
As I a software developer with no degree (working since 2009 in 3 countries), I can share my experience of attempts to learn advanced math.

In 2010, I was very interested in foundations of mathematics, an extremely abstract math branches:


In particular I spent huge amount of time on:

https://en.wikipedia.org/wiki/Nicolas_Bourbaki (Set theory)




What attracted me is that these books doesn't require any specific knowledge of classical math. I.e. they are self-contained.

It was fun and ... the experience to delve into highly abstract view on entire math.

The big problem is that while I read that for more than a year, I had no experience in problem solving and just ignored exercises (thinking that concept is everything). As a result of that, my entire knowledge is completely evaporated and I literally can't solve any of exercises.

After that year, I dropped math till recently.

Now, I have completely different approach. I learning elementary olympiad style math and most importantly solving problems all the time. Currently, I'm into series of books:


These books made for math olympiad preparation. While I solving exercises, I feel how solid my knowledge is.

So if you want to learn advanced mathematics, learn elementary olympiad-style math first. It will give you solid background to start learning advanced math (not just knowledge background but most importantly problem solving skills).

echelon 7 ago 0 replies      
Would it be possible to do this for quantum mechanics, chromodynamics, etc. (to the point where I can follow the primary literature)? I have an undergraduate understanding of physical chemistry, but that was the closest exposure I got to the subject. My mathematics background is petty weak, too (only a modest background in PDE, no ODE, and a faint memory of linear algebra).

I'd pay handsomely for a personal tutor / teacher.

partycoder 7 ago 1 reply      
Unless you work on graphics, physics, signal analysis, sound, trading, data science, computer vision, machine learning, etc... it's hard as a software engineer to be exposed to math past the basics, meaning that you can survive without having to go beyond arithmetic.

You might still get some exposure to discrete mathematics once in a while. Statistics is always there to help you, some people avoid it, some others embrace it.

naveen99 6 ago 0 replies      
Sympy can help get over the fear of following scary looking equations or just speed you up.


IvanK_net 7 ago 0 replies      
The hard part of learning anything without heading to university is not learning that subject, but persuading yourself, that you realy do need to learn each specific area of the subject thoroughly, even if you have never heard of it in your previous "career".
jimhefferon 7 ago 0 replies      
> it is essential that we study topics such as Measure Theory and Linear Functional Analysis

I love this sentence. I'm not sure it is true, but it is nonetheless a great sentence.

graycat 6 ago 0 replies      
Somewhere in the OP or its links is a statement that in 1997 or so the world of finance was really hot for quants.

Net: What I found was not "hot" but ice cold.

In contrast, early in my career around DC, for applied math for US national security and NASA, in one two week period I went on seven interviews and got five offers. In four years, my annual salary increased by a factor of 4 to six times what a new, high end Camaro cost. That was "hot".

When I went for my Ph.D. in applied math, I'd read E. O. Thorpe who had, basically an early but basically correct version of the Black-Scholes option pricing model. In the back of his book, he mentioned measure theory. So, I dug into Royden's Real Analysis, and in grad school I got a really good background in measure theory, probability, and stochastic processes from a star student of E. Cinlar, long in just those topics and the mathematics of operations research and mathematical finance at Princeton.

In more detail, about 1992 to 2000, after my Ph.D., I tried to get into finance in NYC as a quant. My Ph.D. dissertation research was in stochastic optimal control, with careful attention to measure theory and the relatively obscure topic of measurable selection and with a lot of attention to real world modeling, algorithms, and software. I had a good background in multivariate statistics and time series techniques, an especially good background in advanced linear algebra and numerical linear algebra (e.g., numerically exact matrix inversion using only double precision machine arithmetic and based on number theory and the Chinese remainder theorem), double precision inner product accumulation and iterative improvement, etc.

So, I sent nicely formatted resume copies, in total 1000+.

I have held US Federal Government security clearances at least as high as Secret; never arrested; never sued; never charged with worse than minor traffic violations; never bankrupt; good credit; physically normal; healthy; never used illegal drugs or used legal drugs illegally; married only once and never divorced; etc.


(1) I got an interview at Morgan Stanley, but all they wanted was software development on IBM mainframes (where I had a good background at the time) with no interest in anything mathematical.

(2) I got a lunch with some guy who claimed to be recruiting for Goldman Sachs, but, except for the free lunch and what I had to pay for parking in Manhattan, that went nowhere.

(3) I had a good background in optimization, published a nice paper in JOTA that solved a problem stated but not solved in the famous paper in mathematical economics by Arrow, Hurwicz, and Uzawa.

So, for mathematical finance, I got a reference to

Darrell Duffie,Dynamic Asset Pricing Theory,ISBN 0-691-04302-7,Princeton University Press,Princeton, New Jersey,1992.

and dug in: The first chapters were heavily about the Kuhn-Tucker conditions, that is, the topic of my JOTA paper. By the end of the chapter, I'd found counterexamples for every significant statement in the first one or two (IIRC) chapters. I had to conclude that Duffie was not a good reference for anything good!

(4) Headhunters: I tried them, especially the ones claiming to be interested in technical work, computing, etc. They were from unresponsive down to insulting. It wasn't clear they had any recruiting requests.

(5) In those days, getting names and mailing addresses of hedge funds was not so easy. But I did get some lists and mailed to them. Got next to nothing back. I didn't hear about James Simons until well after year 2000.

(6) Right, there was Black-Scholes. Well, of course, that was Fisher Black at Goldman Sachs. So I wrote him and enclosed a copy of my resume. I got a nice letter back from him saying that he saw no roles for applied mathematics or optimization on Wall Street.

So, I gave up on trying to be a quant on Wall Street!

So that was 1992-2000, 8 years, 1000+ resume copies, and zip, zilch, and zero results.

Curious that the OP thinks that 1997 was a "hot" year for applied math on Wall Street.

Now I'm an entrepreneur, doing a startup based on some applied math I derived, computing, and the Internet! To heck with Wall Street: If my startup is at all successful, I will make much more money than I could have on Wall Street. And I don't have to live in or near the southern tip of Manhattan and, instead, live 70 miles north of there in the much nicer suburbs!

Lesson: Take the OP with several pounds of salt!

Hnrobert42 7 ago 3 replies      
Am I missing something? This just appears to be a link to buy some guy's ebooks.
paulpauper 7 ago 2 replies      
On question is: why? The examples in differential geometry can be difficult and time-consuming , unlike simple calculus, and are best done with computer, not by hand. A single tensor, as found in general relativity, may have dozens of components...writing them out would be taxing. My question is, what do want to do with this knowledge. There is value in learning complicated, abstract math to signal intellect and thus become more popular online, and maybe get consulting work. But in terms to practical applications, a lot of it is done by software programmed by large teams (not just one person), although learning the rules is always helpful. If you want to be a professional researcher who makes original findings in pure mathematics, it will presumably require full dedication, and one can't be both a quant trader and pure researcher at the same time (even someone as smart as James Simmons, founder of Renaissance Capital, was forced to choose between one or the other; he chose the former).

It seems as of late ,especially since 2013, there is huge demand for learning complicated mathematics, coding, and trading algorithms. It's like the AP-math class of high school, but as of 2013 expanded to include almost everyone, not just a dozen students lol. This recent obsession with math and finance is described in more detail in . People observe, read headlines about high-IQ founders, venture capitalists, and coders making tons of money in Web 2.0 (Uber, Pinterest, Snaphat, Dropbox, etc.); STEM people getting tons of prestige, status, and global notoriety for their finding (Arxiv physics and math papers frequently go viral); and how the economy, especially as of 2008, rewards intellectualism and STEM in terms of higher wages and surging asset prices (like stocks (the S&P 500 has nearly tripled since the 2009 bottom), web 2.0 valuations (Snapchat is worth $15 billion, on its way to $50 billion), and real estate (Palo Also home prices have doubled since 2011)), and, understandably, many people want a piece of the wealth pie. They see that intellect - which includes STEM, finance, and also quantitative finance - is the path to both riches and social status (as embodied by wealthy geniuses like Musk, Thiel, Zuckerberg, Shkreli), which is why there is so much interest in these technical, difficult subjects, unlike decades ago when only a handful of people were interested.

But another question is: Does algorithmic trading work? I don't know for sure, but I think a lot money is made in market making (Citadel Capital comes to mind), which tends to full under the umbrella of algorithmic trading - the two are closely related. And the math in involved has much less to do with differential geometry and number theory and more to to do with statistics and linear algebra (such as analyzing correlations between data). This involves a lot of trading and paying constant attention to order books - it's a full time job. I don't think it's as glamorous as many think it is, and I'm not sure if the returns are worth the effort. There are simpler methods, based on mathematics such as the ETF decay, that an also generate very good returns and don't require full-time trading. Here is one http://greyenlightenment.com/post-2008-wealth-creation-guide...

DavidWanjiru 7 ago 0 replies      
"Why are you wanting to learn mathematics?"

The author is called Michael Halls-Moore. Why would a person called Michael Halls-Moore write a sentence like this? I'm genuinely curious, coz I'd assume this is a native English speaker.

How to Write Articles and Essays Quickly and Expertly (2006) downes.ca
470 points by bemmu  2 ago   74 comments top 19
tunesmith 2 ago 8 replies      
I think about presenting arguments a lot. Arguments are best represented in DAG form; mostly a tree structure, although some premises might support multiple conclusions so it's inherently graph-based (graphical data structure). Because some conclusions are often lemmas supporting further conclusions, arguments can go several levels deep.

I like envisioning them with the conclusion on the top and the premises on the bottom, although people often visualize them flipped in another direction.

But the trick comes in presenting the argument to someone else, verbally, in a presentation, or through writing. What is the best way to do it?

Because your goal isn't just to impart information; it's also to be convincing and to hope that your counterparts get invested in the conclusion.

I find that if the conclusion is counterintuitive, then starting with the conclusion can create resistance. People love to interrupt and argue against something they disagree with even if they haven't thought it through.

On the other hand, starting with a bunch of premises devoid of context can just feel unrooted.

I guess I generally try to analyze the argument to find the highest (closest to conclusion) points that are not controversial, start with those, and then try to talk about the surprising conclusion that they imply. It can be a real workout, though, trying to anticipate responses, being open to feedback while still working towards your conclusion.

I wonder if this sort of thing is related to any algorithmic concepts, like most efficient ways to walk a DAG.

idlewords 2 ago 2 replies      
The best guide I've ever read to writing nonfiction is William Zinsser's "On Writing Well". If you do any writing for work or pleasure, his advice is indispensable:


tikhonj 2 ago 2 replies      
The article provides four categories of essays: argument, explanation, definition, description.

Personally, I've found it useful to think of almost everything I write as a variation on "argument". Perhaps I'm also describing, defining or explaining something, but there's always a core substrate of persuading. A integral part of defining something well, for example, is to simultaneously argue for why the defined idea is interesting and useful; without that, it's all too easy to descend into abstract nonsense.

My approach isn't universally applicableit leads to a particular writing stylebut it certainly helped me in organizing my writing and organizing my thoughts. Whenever I write I'm always making a point even if I wouldn't classically think of it as a "persuasive" essay.

dredmorbius 2 ago 1 reply      
This essay is a counterexample to its own argument.

It's poorly written, verbose, poorly organised, self-serving, and offers little in the way of solid advice.

An expert essay should have a point and purpose, and execute it with competence. This means a few things, but among others, it means having a grasp of your subject, an understanding of others' understanding or lack of it, a firm grasp of the boundaries of your subject, if those are salient, and the capacity to communicate clearly and with interest. Recognising that all writing is a favour to the reader and not the author is also key.

I'm contrasting this essay and its glib advice to Neal Stephenson's "Why I am a Poor Correspondent", in which Stephenson excuses his infrequent presence in email, online discussions and social media, and on interviews and conference panels: he requires long blocks of time, and days of them on end, to be able to produce his primary product, long and complex novels.

I've occasionally spilled out long essays in a single continuous pour with little further major revision necessary (though numerous fixes, corrections, and tweaks are virtually always needed). The experience is an exception, and almost always happens only on material I've been thinking over for a long time -- weeks, months, years.

I'm sitting on at least a half-dozen essays and reviews right now that I've been kicking around for most of the year, so nine months, simply because I've not had the time and space to organise my thoughts and secure uninterrupted keyboard time in front of a system at which I can call up and incorporate references, and do the topics in mind proper justice. It's frustrating, but as with David Byrne, when I've nothing to say, my lips are sealed. Or at least that's my goal.

There's a difference between firehosing words onto a page or into an edit-buffer, and actually writing a coherent, cogent, intelligent piece.

This piece fails at that, and fails (other than by contradiction) to show how.

philelly 2 ago 4 replies      
this essay's style seems endemic in tech writing: logorrheic and trafficking in technical details/protocols in place of the underlying principles (cogency, brevity, a single unifying argument that can be simply stated).

i appreciate any tips to aid my writing, but i think very few match the tried and true approach of reading masters of the craft and revising one's writing, again and again, for brevity. i suspect that the blog format discourages the latter.

osteele 2 ago 3 replies      
Cf. Paul Graham's The Age of the Essay (2004) http://www.paulgraham.com/essay.html

Graham's essay is and describes a fifth category of essay. Graham calls this approach meandering; it might also be called exploratory.

lutusp 2 ago 2 replies      
Why am I not surprised at the poor quality of this writer's prose? An uncontroversial observation that's made worse by its intent -- to teach others how to write. Even the title --

"How to Write Articles and Essays Quickly and Expertly"

-- contains a contradiction: by definition, an expert doesn't require tutorial instruction (expertise is not a transferable consumer product). The essay goes quickly downhill from there.

One more example:

"But part of it is a simple strategy for writing your essays and articles quickly and expertly, a strategy that allows you to plan your entire essay as you write it, and thus to allow you to make your first draft your final draft."

The observation this sentence makes is self-falsifying. The sentence is too long and meandering and cries out for the compassionate intervention of an editor.

WhitneyLand 2 ago 3 replies      
What is Stephen Downes primary job? He describes himself as a senior researcher and makes bold claims of pioneering and important work in the field of e-learning.

Maybe I'm missing his peer reviewed research, I don't see any. I read one unreviewed paper on "Learning Objects" and it had so much fluff it bordered on crankery.

Best I can tell he writes blog posts and articles for web sites.

banusaur 11 ago 0 replies      
This article is bad advice. Any fool can string a few words together. Truly writing means re-writing.

Your first draft is always going to be ugly, raw data. Writing as a craft means taking that given set of words and processing it until it's concise and clear. Cut and replace until your argument is airtight.

And another thing: all writing is argument.

There are so many great essays about writing that are infinitely better than this - I'm surprised this gained so much traction on HN.

Here's one of my favorites by George Orwell: http://www.orwell.ru/library/essays/politics/english/e_polit...

joshmn 2 ago 0 replies      
I really like stuff like this. You know, where it's laid out in a straightforward, no-noise formula for doing something. Does anyone have any more of these types of things? Social interactions, design patterns, anything. I love them.
Spooky23 2 ago 0 replies      
If you focus on the basics, writing descriptive text is really easy.

Structure is important. First, be direct and make whatever assertion of statement that you are going to make. Next provide arguments, facts or other narrative that support the assertion. Finally close the narrative.

Avoid trying to be too clever. An essay isn't a conversation, and introducing conversational tone is confusing to the reader. Don't be funny. Edit mercilessly.

Finally, before you start writing, have a plan about what you are going to say, either in your head or in an outline. Don't let the mechanics of writing get in your way -- if you know what you are going to say, it will be easier to say it.

bikamonki 2 ago 0 replies      
You cannot fake expert. You cannot rush expert.
jcoffland 2 ago 1 reply      
Was anyone else bothered by the numerous type-os? I counted at least 10.
partycoder 2 ago 1 reply      
For some basic tips, I have found the site "foxtype.com" to be very good. It analyses your text for politeness and conciseness it asks you to rephrase text.

-- (now, this is the foxtype suggested text)

For some basic tips, the site "foxtype.com" to be good. It analyses text for politeness and conciseness and it suggests alternatives to phrases.

nxzero 2 ago 1 reply      
Citing authoritative sources is easily the easiest way to be seen as an expert. Next is having them cite you as an expert source, which is not as hard as it might seem.
mgalka 1 ago 0 replies      
What a great post! Very clear and practically helpful. Thanks for posting.
nwatson 2 ago 0 replies      
Pragmatics ... en.m.wikipedia.org/wiki/Pragmatics
curried_haskell 2 ago 1 reply      
bencollier49 2 ago 0 replies      
How Doom 2016 Renders a Frame adriancourreges.com
481 points by milen  3 ago   109 comments top 14
overcast 3 ago 6 replies      
Seriously, I LOVED this new Doom. Best FPS I've played since Half-Life 2. So polished, and straight up FUN. Incredible level design, rewarding secrets for the min/max people, plenty of player upgrades for the role playing people, and copious amounts of straight insane combat for the action crowd. As far as I'm concerned, this game is perfect. Multiplayer is a different discussion.
shmerl 3 ago 4 replies      
It's a shame it's DRMed with Denuvo trash, and doesn't work in Wine because of that (of course they could release it for Linux and DRM-free to begin with, but it's probably too much to expect from today's Bethesda / id).

I'd rather wait for Shadow Warrior 2 (upcoming native DRM-free Linux release).

Gravityloss 3 ago 0 replies      
The source list includes this nice presentation:


It's cool how it's presented so openly, like a scientific project.

jerf 3 ago 1 reply      
"And then it does that up to 120 times per second."

I still get floored by our computing power sometimes.

mungoid 3 ago 1 reply      
If you use Nvidia Nsight you can see this exact same stuff happening every frame. Pretty nice tool to use if you ever wonder whats going on in your gpu every frame. We use it frequently for our simulation work.
enimodas 3 ago 2 replies      
I wonder if he was able to do this analysis with the original binary, or that he used the very recent (2 days ago) crack that removes the denuvo "anti-tamper" system.
JoelBennett 3 ago 2 replies      
Neat write-up. I had no idea screen space reflections were a thing.
Razengan 2 ago 1 reply      
I'm a noob regarding 3D engines/hardware and have a question: Why haven't we moved engines to the 3D hardware?

Like, why can't we have a high-level engine running on the GPU itself, updated through drivers, and just feed it a monolithic file containing the game level's entire geometry, for example?

So that developers can say, here's the world, here's the textures, here is the models for monster A, monster B..and then just update each model's location and the camera position every frame?

iammyIP 3 ago 2 replies      
The id tech5 engine for rage was already very impressive and ran extremely well on my mediocre machine, while still looking beautiful. Felt like my computer suddenly was twice as capable.

I wonder why the article mentions this: "Unlike most Windows games released these days, DOOM doesnt use Direct3D.".

Implementing Direct3d today seems a waste of development time to me and a useless self-restriction to a platform. Why would anyone do that? Is there a source that compares release titles of direct3d games vs opengl/vulkan on windows?

Amanjeev 3 ago 0 replies      
Is it worth playing online? I play solo (couch) but was wondering if it is any good to get PS online subscription for this.
tbrock 3 ago 0 replies      
Oh wow, I had no idea id had another hit on their hands. I just finished reading "Masters of Doom" and was craving some of the classic doom gaming experience that I had growing up.
AJRF 3 ago 2 replies      
Doesn't this kind of breakdown make the explanation more complicated? Maybe it's my idiotic brain but I think of everything in terms of that one scene and can't extrapolate the Information to various scenarios.
resist_futility 2 ago 0 replies      
Anyone know of good examples of source code applying these sort of techniques together?
edgartaor 3 ago 1 reply      
And still some people says video games are not art.
I lost my OpenBSD full-disk encryption password filippo.io
494 points by oskarth  7 ago   96 comments top 13
0xmohit 7 ago 4 replies      
Enlightenment always takes a while :)

 I later found a nice article documenting the entire system. It also includes references to JohnTheRipper having a module for this. Well, this was more fun.

Wonder how many times are the same items posted: https://news.ycombinator.com/from?site=filippo.io

camtarn 7 ago 1 reply      
The previous article, about a lost password for a NAS, is hilarious and well worth a read as well:


moyix 7 ago 4 replies      
Quick question for the more cryptographically inclined: apparently after decryption the code does an HMAC validation:

 /* Check that the key decrypted properly. */ sr_crypto_calculate_check_hmac_sha1(sd->mds.mdd_crypto.scr_maskkey,
Does this mean it's using Mac-Then-Encrypt? And if so, is it likely doomed [1]?

[1] https://moxie.org/blog/the-cryptographic-doom-principle/

Drdrdrq 7 ago 1 reply      
If he wanted to know the value of the salt for his disk, wouldn't it be easier if he just modified the sources so it would be printed it out?
cperciva 7 ago 3 replies      
the rounds number 0x2000

Does anyone know if this is the default? If I'm understanding this correctly, it's around 10 ms of key derivation time; on FreeBSD we default to 2 s, which should make cracking disk encryption 200x more expensive.

zakk 7 ago 2 replies      
While reading I had the feeling that the author was reverse-engineering open source software...
z3t4 7 ago 2 replies      
When deciding to encrypt, lets say a backup, you need to ask yourself, is the data better lost then in the hands of the wrong people.
AWildDHHAppears 7 ago 1 reply      
That's why I keep them written down in my safe!
SwellJoe 7 ago 2 replies      
I briefly went all-in on security, cryptocurrency, tor, etc., and had a locked down desktop machine encrypted with LUKS. Then, I moved, and it took me a few weeks to get the computer set back up. In that time, I'd forgotten my passphrase. So, I have a desktop machine containing (at least) a couple hundred bucks worth of cryptocurrencies that I can't open. I still think I remember the passphrase I used, but it doesn't work, so I'm obviously missing a word or a punctuation addition (I used the CorrectHorseBatteryStaple method of making a memorable passphrase in this case).

I've been known to do dumb things, and going down the rabbit hole of cryptocurrencies and how to securely use said currencies was one of them. These days I put everything of importance into Google drive, Dropbox, and/or git (not github...a privately hosted git that I access via ssh and runs on a VM on hardware I own in a data center I trust). If it is sensitive, it is encrypted with a passphrase I've been using for a couple decades, and so it unlikely to be forgotten. A high capability attacker could thwart my protections, I'm sure, but I don't have any reason to believe a high capability attacker has any interest in me.

And, I don't hold much cryptocurrency, and what I do hold is at Coinbase, just sitting there on the off chance Bitcoin really does take over the world and a small amount turns into a big value.

_ph_ 7 ago 3 replies      
So, for the layman, does this mean, the encryption can be practically cracked or not?
ams6110 7 ago 0 replies      
Hm, if it were me and I had just set up the new system and then promptly forgot the password, I'd just reinstall.
EGreg 7 ago 1 reply      
Why not have your passwords be hashes of passphrases?
imaginenore 7 ago 4 replies      
That's why you always

1) store passwords in the password manager, even the ones you think aren't important.

2) backup your data

In defence of Douglas Crockford atom-morgan.github.io
679 points by ramblerman  9 ago   419 comments top 78
BinaryIdiot 8 ago 5 replies      
The Nodevember folk(s) posted a statement regarding this whole kerfuffle [1]. It's pretty hollow IMO.

> While we have a tremendous respect for Mr. Crockford's abilities as a speaker and his contributions to our craft, we became aware that based on private feedback - not simply the dialogue on Twitter - that his presence would make some speakers uncomfortable to the point where they refused to attend or speak.

Okay so you are calling out his behavior making people uncomfortable, publicly, but you won't say why only that it was private feedback? Wasn't he one of the early speakers who accepted anyway? You apologized for lacking nuance on Twitter with your "announcement" and yet continue to do so.

Publicly claiming someone makes others uncomfortable and that someone is an older, white male, you know exactly what you are insinuating. Statements like this, especially against white males today, can be career ending even without proof as long as it simply goes viral.

I think the only responsible thing to do is to release exactly why someone would be uncomfortable. If you can't or won't do that then you shouldn't have made the initial insinuation and, instead, simply state he's no longer coming.

Stating he was "uninvited" due to making others uncomfortable without providing anything further is just irresponsible to the point where it appears you're trying to manufacture drama. Considering your event is $350 to hear some speakers who are yet to be defined this just speaks scam to me like many other talking events.

[1] http://nodevember.org/statement.html

rdtsc 8 ago 5 replies      
> We will also be removing Douglas Crockford from our keynote speakers list to help make the conference a comfortable environment for all.

If they are going to insinuate things about what he said, they should mention exactly what he said or did.

The fact that they don't somehow tells me there is not much there to go on.

To put it another way, if they have the guts to remove Crockford that should have enough guts to clearly explain why.

I've been saying this before, and maybe it is just me, but it seems Node.js community somehow attracts a disproportionate number of immature people but with big egos. Because, let's call this for what it is -- childish immature behavior. That's at best, at worst it is getting attention and hurting someone's reputation just for a power trip. "Look how important I am, I kicked Crockford out of a conference with a single tweet".

Well the lesson is when you pick some open source technology, the community comes with it. Maybe even if technology has good merits, it makes sense not to pick it because the community behind it is not compatible with what you think a community should be.

bsder 8 ago 2 replies      
This is becoming increasingly concerning to me. The problem is that there is no way for the person affected to receive "justice", "fairness", or "a day in court".

You want to not invite somebody? Fine. You want to disinvite somebody? Okay, but be prepared to be called a jerk.

But assassinating someone's professional character publicly? You'd better be standing on REALLY solid ground for a REALLY good reason.

Crockford might just ignore this--it's probably the best course of action given his station. He's probably sufficiently more important than these people that he's good.

However, one day these people are going to get someone with financial means all fired up and they're going to be dragged through court for a LONG time--and probably lose because they won't be able to put up the money to mount an effective defense.

Until one of these accusers loses THEIR ability to work in the field, nobody will pay attention to the repercussions.

Tehnix 9 ago 4 replies      
I generally feel like there's a kneejerk reaction from people (especially in the tech community) to be "PC compliant", at the level where you almost can't have any discourse because it's such a minefield (can't imagine a rational person whoms first intepretation of the tweets is "that's sexist" to be pleasant having a conversation with).

I almost feel in the minority (or just a silent one?), but I honestly don't care what kind of political views, personal preferences, outrageous statements or whatever problems a speaker at a conference might have, as long as he gives a good talk/presentation.

whorleater 9 ago 8 replies      
Ignoring the fact this discussion about this, and this culture as a whole, is a minefield to navigate, it's important to note that Douglas Crockford can definitely be abrasive [1]. The issue at hand is that whether this abrasiveness is a bad thing, when compared to the contributions he's made and whether it leads to constructive discussions.

The javascript developer who took offense (Kas?) definitely seems to have taken it too far, automatically associating Douglas's personality with being a jerk.

The other issue at hand is how this influences tech conferences, because I've always attended conferences with the implicit assumption that I was there to learn first and foremost. Discourse and disagreement with speakers is natural and should be encouraged, as it oftentimes leads to enlightening discussions for bystanders and conference attendees, which was the entire point of the conference in the first place. By allowing certain viewpoints to dominate and silence a subset of speakers, we're ultimately limiting our views and building an echo chamber, which is not what conferences are meant to be. If we're going to dismiss speakers, it should be on merit of their talk and previous talks, not their speaking style.

[1]: https://github.com/douglascrockford/JSLint/issues/17

BadassFractal 9 ago 3 replies      
As the other poster mentioned, I'm very sympathetic to the cause of egalitarianism and pre-third-wave feminism. However, hopefully we will see more and more pushback against this kind of senseless crying wolf. If you're in favor of social justice, THIS is the thing you're fighting against?

If this even shows up on your radar and is a priority, then I'd say the mission you're fighting for has been accomplished a long time ago. Time to go home.

I don't know who really benefits from policing every word that public tech figures say. There's no monetary value to this unless this is a PR stunt to make the conference get social justice brownie points in some kind of a twisted form of social posturing. Who's to gain from this? Sociopaths wanting to exert control over others? I'm not quite ready to believe that.

aikah 8 ago 1 reply      
TLDR; personal vendetta against Crockford led to accusations of "sexism", and him getting uninvited from Nodevember conference. There is absolutely no proof of sexism anywhere ,only a bunch of people who want to take him out professionally because he might have pissed them off for whatever reason in the past. Only now these people can use dubious political arguments to justify their vendetta. This can happen to anybody in any community.
EdSharkey 8 ago 0 replies      
The whole bit about Kas saying "mmm" to Crockford's face when he said an insensitive thing and then publicly shaming him once he was safely back on the internet galls me, if true.

Culturally, our tendency to troll needs to decrease on the web and increase in in-person encounters. I'm convinced we'd all be better off if we showed some spine and got more vocal whenever we disagree.

I also don't like these (I assume) inter-generational squabbles in our industry. It is clear that moral views can differ between generations, so a little understanding and empathy is needed on all sides.

Please respect your elders. If you disagree with them or feel they are being disrespectful or sexist, how about kindly discussing it with them and maybe getting a feel for their perspective first before launching into public reputation annihilation?

brakmic 8 ago 3 replies      
Such things could have a very negative effect on people whose native language isn't English. I mean, if even native speakers get into troubles so easily what should I, as a non-native speaker, expect?

I maintain a tiny blog and because of possible language barriers I decided to write all of my texts in English. It could've been much easier for me to write in German, of course, but this would exclude so many people. And this was simply unacceptable from my point of view.

My command of English isn't very strong but I'd like to paraphrase german philosopher Karl Homann: "The opposite of Moral isn't Immoral but to moralize".

I know nothing about the events there but when I read things like "public shaming" or "slut shaming" or "trigger warnings" or "social justice warriors" then I can only follow the "pragmatic solutions" to solve problems of that kind: avoid conferences, avoid any kind of non-technical discussion in English, avoid the community as a whole. Stay on GitHub.

Sure, it makes you a bit of a loner but at least you sleep more easily and don't get shocked in the morning when you open your twitter feed.

Kind regards,

throwway1111 8 ago 4 replies      
This is happening in all parts of society. So-called "social justice warriors" and parts of the liberal left have sprung up that are very hostile to free speech and seek to destroy and silence anyone whom they oppose. Unfortunately, they have the full support of not only college administrations, but increasingly HR departments as they ascend into the workforce, and PR departments as they air their grievances over social media.

I am posting from a throw away account because voicing an opinion such as this is reason enough to be targeted.

robert_tweed 9 ago 3 replies      
I have to wonder if this was a real complaint or if it was done to highlight the obvious problem here, a bit like the guy who patented a "Method of exercising a cat".

I mean, if you're going to ban Douglas Crockford from your conference it should at least be for his stated prejudice against comments in data-interchange formats. Not vague allegations that may damage his personal and professional reputation, to which he not only has no right of reply, but any response could be damaging by generating more attention. This is the classic trolling strategy, but stepped up a level.

If he actually did something wrong, take him to court and let the facts be decided in law. Otherwise, he's innocent and should be treated as such.

I also wonder, given that the allegations haven't been published, just implied, if he would have a libel case against the conference organisers?

tptacek 8 ago 5 replies      
Unlike the controversies about Strangeloop (which uninvited Curtis Yarvin) and Lambdaconf (which lost the overwhelming majority of its sponsors due to accepting Yarvin), this --- based on the evidence at hand --- seems entirely stupid.

Unfortunately, there's no rulebook conference organizers (or their Greek choruses on message boards) can consult to say when rejecting a speaker is a good idea or not. It's a judgement call.

So when you've got a speaker with a reputation as a overt, 1950s-style racist in person, and a miles-long online track record of obscurantist racism, the kind of person who when accepted to talk at a technical conference about programming languages will write many paragraphs suggesting that science has established white people are smarter than black people (but maybe that shouldn't matter to us so much!) in his post announcing his talk, then yes, maybe you should avoid inviting that person.

On the other hand, you've got a speaker who used the word "promiscuous" as a pejorative in describing technology, and who spoke disrespectfully about someone else's favorite conference.

If you accept the irrepressibly racist speaker to your conference, you're going to lose most of your sponsors. But if you reject the person who implied promiscuity might be problematic in a metaphor, you're going to fail too, because anyone will be able to get any talk punted from that conference.

Maybe there's something else going on that we're not entitled to hear about. Those kinds of things also exist.

By the way: the implication that flexing and talking about "strength" is sexist is itself sexist, and not in the bullshit "it penalizes men and they have rights too" way, but in the "it reinforces stereotypes about women" way. There are women out there who can kick your ass.

tootie 9 ago 3 replies      
I'm pretty sympathetic to the cause of feminism especially in technology and I cringe hard at a lot of the casual sexism that gets thrown around, but this is truly baffling. Assuming this is all they actually have on him this is nothing more than very clever word play with zero gender inferences to be made.
labrador 8 ago 0 replies      
I wonder how many people complaining about Crockford have posted or support the statement "If you can't handle me at my worst, you don't deserve me at my best." Nodevember doesn't deserve Douglas Crockford. And Lipscomb, where the event is being held, is a religiously oppressive institution where "All full-time, undergraduate students are required to take Bible classes and attend chapel twice a week. [1]" Sounds like Nodevember is a lose-lose situation for all involved.

[1] https://en.wikipedia.org/wiki/Lipscomb_University

shruubi 8 ago 3 replies      
I'm of two minds here.

1) I personally don't like Douglas Crockford at all, I find him all together arrogant and overly concerned with presenting himself as an infallible single source of truth. I respect the work the man has done, but I personally think the conference is better off without him.

2) It seems that the conference organisers are all too concerned with coming out and proudly parading there actions without bothering to see if Crockford would be amenable to other courses of action like an apology or retraction of those comments.

To me, these kind of incidents feel more like the conference using the drama to boost their attendance numbers than acting in any kind of best interest of the attendee's. That's not to say that there haven't been serious incidents that need to be dealt with at conferences, but, an outright banning without any kind of negotiation where the speaker is offered to retract/apologise for their comments where the banning is done on a public forum seems designed more towards gaining attention rather than justice.

thomasfoster96 9 ago 4 replies      
Id really like to know how a decision like that is made. In Nodevember's statement on the matter[0] (which the parent link doesnt mention, a rather glaring omission), they quite openly admit that they ...aren't professional organizers or PR people. We are still learning, and will make mistakes. So why not admit a mistake?

I certainly dont want to see sexist speakers at conferences, but this decision seems to have been made with almost no evidence and almost purely based on unsubstantiated rumours.

[0] http://nodevember.org/statement.html

aidenn0 8 ago 2 replies      
My thoughts:

Maybe someone can tell me what's offensive about the first comment. It seems to be poking fun at programmer machismo.

The second quote is more problematic. I'm firmly of the opinion that it is not slut-shaming because it presented both promiscuity and commitment in a positive light. On the other hand, it is perfectly reasonable for a conference to not want sexual metaphors in presentations. The whole "he used the word correctly" in TFA is a non-sequitur when the first definition is clearly sexual, and promiscuity is contrasted with commitment. Still, I would hope that less extreme measures than banning would be used to address this.

Now to one thing not in TFA, but in the linked medium post:

> Ive never dealt with Crockford in a way that I felt pleasant afterward. He is rude, unrepentant, and completely (one could argue willingly) oblivious to the meaning of his statements. Ive never seen a person use the word stupid so liberally in replacement of constructive criticism.

A conference is more than a bunch of people giving talks, it's a social gathering. If there were a lot of people who agree with Kas on this, then it's a much more reasonable reason to keep him out.

On a much smaller scale, I often run pencil-and-paper RPG groups. Being a jerk is much more likely to find yourself out of my group compared to game-mechanics related issues.

Naracion 8 ago 0 replies      
A Pastebin of a Nodevember Slack channel, should provide more context:http://pastebin.com/3mQc7DfG

There is some discussion about the reason, and whether Nodevember should disclose a reason or make a public statement. For instance:

"Josh Crews [9:57 AM] Maybe Nodevember could make a public statement along these lines, "After announcing Crockford as a keynote speaker, we learned from others of things he's done and said at previous conferences that are against our Code of Conduct"

HermitPy [9:57 AM] why do we need to do that

[9:57] what does that do other than add more fuel to a fire?

Andrew Albright [9:57 AM] It would save people time for trying to find the answer themselves

[9:58] 'cause I burned at least ten minutes this morning to satiate my curiosity

HermitPy [9:58 AM] I personally hope people will do some research and form their own opinion

Andrew Albright [9:58 AM] ^ good point

Josh Crews [9:58 AM] you are reputation tarnishing somebody if you are not clear about the disinvitation

Andrew Albright [9:58 AM] opinion and reason for the decision are two different things though

HermitPy [9:58 AM] no doubt

Russ Anderson [9:58 AM] I will say that its difficult to do the research. I dont think the twitter trail is very edifying. This chat has been much more helpful.

HermitPy [9:59 AM] We're dismissing a keynoter without context other than they didn't fit our view of the community (edited)

Russ Anderson [9:59 AM] however, I agree that you dont owe anyone anything

HermitPy [10:00 AM] All this whole thing has done is ensure that I won't do one more fucking thing for the community, so next year other people can run their own conference and pick their own shit and deal with it (edited)"

aaron695 8 ago 1 reply      
I find the fact people continue to support these conferences quite disturbing.

Things are not going to change until people, including speakers pull out of conferences that display this sort of behaviour.

qwertyuiop924 8 ago 0 replies      
This is utter nonsense. Unless there's some evidence of wrongdoing, pushing people out of your conference isn't acceptable. Especially if it's somebody with Crockford's reputation, who has influence, and both technical and social credit. This isn't an incident where people have come forward saying that somebody sexually or physically assulted them, and then they were banned (that's happened in some communities), it's somebody getting kicked from a conference for unknown reasons, when all the complaints about him boil down to, "some of the things he says can be rude or politically incorrect." That shouldn't be good enough. Especially if, like Crockford, the speaker has a reputation for providing valuable and relevant technical material.

Besides, if being rude was a reason to get banned from a conference, Linus, RMS, and countless others would have gotten lifetime bans from every conference out there years ago.

cel1ne 8 ago 0 replies      
There is one thing I don't understand about the whole safe-space debate:

People demand the environments they reside in to be friendly and comfortable according to their definition. In a way they are demanding that all "hostiles" stop being "hostile" towards them.

The more sustainable way to not get hurt is to learn how to emotionally defend yourself and stand your ground. You just have to learn it once and are not dependent on others telling every attacker to stop attacking you for the rest of your life.

tomohawk 8 ago 1 reply      
Who's doing more damage to the community - Crockford or Kas?

The intolerance that Kas is selling is not something that we should value.

vvdcect 8 ago 2 replies      
This is a pastebin of a nodevember slack channel http://pastebin.com/3mQc7DfG .
empressplay 9 ago 0 replies      
I'm pretty vigilant about calling out sexism and trans/homophobia in the tech community but I'm having a hard time seeing Crockford's comments as offensive enough to un-invite him to speak. I expected TFA to be typical apologist fare but it's really more puzzlement over a perplexing situation, a puzzlement I share.
voidr 7 ago 1 reply      
The same way we have 'mercury free', it would be great to have a 'social justice warrior free' label.

A conference has the right to hand pick the speakers, however I also have the right to vote with my wallet and boycott them. Conferences should be required to disclose if they actively support a political alignment(which is what SJW movements are), so that I as a consumer know to avoid them.

A vocal minority of women are offended because white males used some phrases that can be interpreted as sexist in their view. Let's ban white males, problem solved.

Now a religious group is offended that most of the women are not wearing a hijab. Well, we can't have that, so let's ban women who are not dressed "properly".

Bottom line is: whatever you do, you can always find a vocal minority who are offended by that.

When I go to a tech event, I want it to be about tech, what I don't want it to be about is: politics.

DanielBMarkham 8 ago 0 replies      
I don't want to comment on specifics. First off, there's not a lot here. Secondly, the general issue is more important.

As part of being in a secular society, you have an obligation to put up with public speakers that you might find offensive or irritating. You don't have to attend their events, and you're free to climb on the rooftops and call them an asshole -- but you have an obligation to put up with them.

If you run a conference with lots of people attending, and your speakers have any kind of interesting personality at all, you should be prepared for 1-3% of the attendees to be put-off by their history. That's good: it shows that you're doing a good job of bringing in interesting people to speak. Likewise, if you're a participant in a large conference, it shouldn't be surprising to you if the past history of somebody speaking is unpleasant to you in parts. You are, presumably, a grown-up. Get over it.

In my mind, the only thing that should matter, assuming the speaker isn't a terrorist or criminal on the run from authorities, is whether or not the information they present is worth it to you as an attendee. That's what the conference is about. It's not about making every member feel safe and secure. Screw that. Even looking past the fact that it's an impossible goal, nobody wants to go to a conference that's dumbed down to only cool kids who think correctly. Nobody in their right mind would want to live in a world like that. "Don't hang around jerks" is a fine goal for your family, your team, or your personal social circle. It's a clusterfuck to try to implement at any scale beyond that.

This bothers me because I could see at the extremes, there might be a case for excluding speakers, assuming there was something terrible in their past. Adolph Hitler, had he survived WWII, would have made a bad keynote speaker. People could never look beyond his history. But without a detailed argument over what the situation is here, both conference attendees and future speakers are getting screwed over, operating in the blind.

And that's the final result: everybody affected here doesn't really know what's going on, how to prevent this from happening again in the future, or what they might have missed. This is not about Crockford. This is about nibbling away at the value of a group of people gathering together try