Cutting off white supremacists: Apple Pay, Cloudflare and PayPal join the trend - <AUTHOR> http://www.latimes.com/business/technology/la-fi-tn-apple-cloudflare-nazis-20170817-story.html <comment><USER2> Dont misinterpret this as any kind of defense of white nationalism, because I dislike them as much as anyone else: Suppose that every tech company followed suit making these people basically cut off, and someone was incorrectly identified as a white nationalist. To what extent is this trial without jury or mob mentality?

<comment><USER3> As an aside, unless the outcome of mob mentality is a decision that you'd not otherwise agree with.... the only consequence of it is faster decision making for you (member of the mob).

But the core of the issue is that we are shunning them, as we have shunned many other groups too closely connected to violent motivations.

The only difference between now and then is that this brand of terrorism is homegrown, so the 'suffering' of the white supremacists is more visible to us.

One thing to note is that unlike say no-fly lists, no one is targeting individuals, just the organization. These people could dissolve their group, wait one month, and start a new company that no one would ever think to ban. These people could also similarly act as individuals within the system, without any blowback. It's only when they congregate under a clear, acknowledged banner of hate that any penalties come into place.

<comment><USER2> "unless the outcome of mob mentality is a decision that you'd not otherwise agree with.... the only consequence of it is faster decision making for you"

No this is wrong, this means that you've established a system that when it is in agreement with what you personally believe to be justice it delivers quickly upon them, but when it does not it works against you and/or justice with the same efficiency.

You are basically advocating for a Judge Dredd philosophy.

</comment></comment></comment><comment><USER4> I think it is high time to start listing other extremist groups which make use of all those services which have decided to become their own judge, jury and executioner. I'm thinking about groups like AFA/Antifa, BLM/Black Power/Black Pride/other racially-oriented supremacy organisations, salafist/wahabist organisations, groups which sympathise with terrorist organisations, 'revolutionary' communist groups (yes, those still exist) and any other radical/extremist groups and find out where they host their stuff, which payment processors they use, whether they have apps on Google Play and the Apple app store, etc. Once a group has been identified the related services should be given a chance to react, and their reaction should be published just like they are when they close down nazi/white power/white pride/white supremacy groups.

<comment><USER5> _I 'm thinking about groups like AFA/Antifa, BLM/Black Power/Black Pride/other racially-oriented supremacy organisations_

Where on the BLM website do they promote "racially-oriented supremacy?

<comment><USER2> Once the leader of the BLM said that the only way to resolve the racial issues this country faces is for white families to sign their entire estates over to black families, I think the BLM may have crossed that line. Maybe if she asked people to will their estates to Poor people I wouldnt feel that way, but as it stands, this screams racially oriented priority. Can you even imagine if a white person made these demands what would happen? [https://www.leoweekly.com/2017/08/white- people/](https://www.leoweekly.com/2017/08/white-people/)

</comment></comment></comment><comment><USER6> If it's illegal prosecute it; if not, let people have their shitty opinions in peace. Why does seemingly everybody have to virtue signal and cut peaceful people out of civil society?

<comment><USER7> They're not cutting out "peaceful" people, they're cutting out "activities that promote hate, violence or racial intolerance" which are inherently neither peaceful nor civil.

<comment><USER8> There is substantial disagreement about what "activities that promote hate, violence or racial intolerance" are. Some would define any defense of Israel as "promoting hate and violence". Some define critique of certain aspects of religious practices to be "promoting hate". Some consider criticizing diversity programs as implemented in certain companies as "promoting hate". Some consider arguing about changing immigration law as "promoting hate". Some think discussing results certain scientific research that does not sit well with certain political theories as "promoting hate". As long as disagreement is not tolerated, you can always find somebody who disagrees with you as "promoting hate".

SLPC lists[1] as "hate groups" people that think English should be official language of the US (a bad idea, but is it really "promoting violence"?), people that insist on necessity of immigration reform, people that legitimately disagree and criticize other policies, like immigration or taxation or international trade. They even designated presidential candidate Ben Carson as "extremist" (that got them so much bad press they had to backpedal and apologize).

And SPLC designations have been used to boot sites from platforms like Google, Paypal, Facebook, Twitter, etc.

Don't get me wrong, there are true hate-mongers there, and on SPLC lists, but far from all of them. There are a lot of organizations there that just promote unpopular, unorthodox, and sometimes outright kooky, but not hateful or violent, views. Interestingly enough, such outright violent and openly militant groups as BAMN or antifa are not there on the list.

All this looks not like attempt to produce less hate but an attempt to establish political control over the internet. And I remember the times when the internet community was proud to be censorship-free. How the times changed.

[1] [https://en.wikipedia.org/wiki/List_of_organizations_designat...](https://en.wikipedia.org/wiki/List_of_organizations_designated_by_the_Southern_Poverty_Law_Center_as_hate_groups)

<comment><USER3> Yes, the racists themselves do not think they are objectionable in anyway, and obviously wouldn't characterize themselves as promoting hate.

We, as a reasonable majority, can disagree with this assessment.

That we do not have perfect information, and absolute agreement, is no reason for _private_ organizations to not exercise their own rights to _not_ associate with those they dislike.

If this were the government at work... I'd agree that extremely high standards ought to be in place, but as is? No, I don't think _organizations_ deserve protection since they are flimsy things, easily discarded when PR turns against them.

None of the white supremacists is being banned as an individual, only specific institutions that they've chosen to raise up.

<comment><USER8> > We, as a reasonable majority, can disagree with this assessment.

Who is "we"? Do you think the right to speak should be defined by the majority? Too bad the US was explicitly founded on the diametrically opposing principle. To be sure, they even explicitly wrote it in the constitution, that it is not how things are to be decided. But what they knew, anyway...

> is no reason for private organizations to not exercise their own rights to > not associate with those they dislike.

They can exercise whatever they like. But then we get partisan war on the internet, instead of cooperation, with everybody hating everybody (there are many hot topic issues in politics, and once using access to infrastructure like DNS is politicized, there's no stopping of it). And where nobody can be sure that they won't be target of the unpersoning campaign next. It's not the internet I would like to see. Legally, of course, they are within their rights. But not everything that is legal is a good thing to do. Turning access to internet into political battleground is not a smart thing to do. It will hurt everybody.

> None of the white supremacists is being banned as an individual, only > specific institutions that they've chosen to raise up.

How does it matter? If Google seizes domain from nazis as organization, because they wanted to, what prevents them from seizing domain from an individual person, who, say, has controversial political views? Or espouses controversial ideas that are outside current scientific consensus? Or merely criticizes Google management a bit more harshly than they'd like? It is a logical next step, if no pushback happens on this one, it would expand. People are all scared about content provides limiting access for commercial reasons, what about political reasons?

</comment></comment></comment></comment></comment><comment><USER9> A good way to lower trust in digital payments and boost cash. Probably not the intended outcome.

Did Section 230 disappear overnight?

<comment><USER10> Doesn't law enforcement already prosecute criminals? Why would anyone risk using Apple Pay now that they are thought policing?

Dumb.

</comment></comment><comment><USER11> dangerous precedence.

<comment><USER12> Another company is welcome to create a competitor. As a society we decide who we want to shun from the mainstream. Social shunning and shaming are essential tools to a society that wants to function under a certain set of principles. Maybe eventually the shaming stops working, and that's the point where a new cultural zeitgeist or a culture war takes over.

<comment><USER13> Shaming is probably the main reason we haven't seen a lot of self identified Nazis/white supremacists in protests more often. Now that they seem to think their views are more excepted they're willing to be more public.

I remember hearing the story that one of the reasons the KKK use the hood is so they could be anonymous. The old superman radio show that was on in the 40s are so decided to take on the KKK and make them bad guys which only made people even more embarrassed to be KKK member since all the kids were playing Superman against the KKK.

Shaming is a very powerful weapon.

It can certainly be misused (against homosexuals, for example) too.

</comment></comment></comment><comment><USER14> You know what worries me about this? Not free speech because that's a dumb line of argument.

What bothers me is that these companies are inadvertently teaching a bunch of nazis how to use the dark web by pushing them out of the public square. I prefer these dangerous assholes corralled into easily observable spaces.

<comment><USER13> The flipside of the coin is the harder it is to do all that stuff the fewer people are going to be willing to jump through all the necessary hoops.

Those that do maybe some of the hardest of hard-core. If they are the violent ones (I have to assume that the violent ones are also hard-core) then going through all those steps just associates you with violent people more. Hopefully that would turn off of other people who aren't interested in the violence.

</comment></comment><comment><USER15> For some reason this reminds me of banks refusing to do business with marijuana dispensaries. All this will do is push digital currency, and the hate groups will still get their money. Then it won't be traceable, accountable, and completely decentralized.

</comment><comment><USER16> Does it scare anyone else that groups that aren't illegal are being censored for their (utterly repulsive) principals? Where do we draw the line? Personally, I don't want to enable bad people e.g. _real_ nazis (calling someone a nazi doesn't make them a nazi), racists, homophobes, etc. But that old saying, "live by the sword, die by the sword" begins to echo in my head.

To further that line of thinking, I also know that majority progressives incorrectly ascribe the characteristics of bigotry and homophobia, too broadly to those who differ with progressive ideology. Take for example, the facts of gay marriage. Only a minority of politically conservative folks hold those anti-gay-marriage views. Among young Republicans, 61% are in favor of gay unions / marriage [http://www.pewresearch.org/fact-tank/2014/03/10/61-of- young-...](http://www.pewresearch.org/fact-tank/2014/03/10/61-of-young- republicans-favor-same-sex-marriage/) That statistic is actually in keeping with the aggregate national average (all people, regardless of political orientation) of 67% [https://en.wikipedia.org/wiki/Public_opinion_of_same- sex_mar...](https://en.wikipedia.org/wiki/Public_opinion_of_same- sex_marriage_in_the_United_States) However, progressives strongly reject any opinions or facts, no matter how well reasoned and well intentioned, unless those opinions and facts support the progressive ideology and agenda: [https://www.cnbc.com/2017/08/14/fired-google-engineer- james-...](https://www.cnbc.com/2017/08/14/fired-google-engineer-james-damore- says-this-.html)

So, where will people like Zuckerberg (a far-left progressive) like to draw the line, when it comes to political speech. My bet is that they would love to slam the door on non-progressive speech... but they know that the current political machine would respond with litigation or anti-trust litigation. But, what about when the pendulum swings the White House back to a Democrat. Will that door slam, at that time, while the government looks the other way?

Remember, this is a two-way street. Perhaps, one day soon, someone won't want to hear your liberal perspectives, because they violate people's right to free practice of religion... then what?!

In summary, be careful what you ask for, what you cheer for, what you won't tolerate, because the guillotine doesn't distinguish between good people or bad people. It simply does it's job.... and one day, they may come calling for YOUR mechanisms of "free speech."

</comment><comment><USER17> First, they came[0] for the nazis - but they didn't use bitcoin...

[0] [https://en.wikipedia.org/wiki/First_they_came_..](https://en.wikipedia.org/wiki/First_they_came_..).</comment>


Telemarketing: America is losing the war against robocalls - <AUTHOR> https://www.economist.com/united-states/2018/05/26/america-is-losing-the-war-against-robocalls <comment><USER2> I think we have lost even since years ago. Robocalls have became one of the biggest complaints filed by people in these past few years. I think we should just let those scammers and telemarketers do what they want. If you find that they are scammers, just block the numbers. IF you know that the robocalls come from legit businesses, ask them to stop or sue them, like what I just read at [http://www.whycall.me/news/consumer-wins- massive-229500-robo...](http://www.whycall.me/news/consumer-wins- massive-229500-robocall-lawsuit-against-time-warner-cable/). Hope this helps.</comment>


Auctomatic's Collison Brothers now part of the Irish High School Curriculum - <AUTHOR> http://transatlanticitinerant.files.wordpress.com/2007/11/dsc03271.jpg pay particular attention to the photograph (not sketch) of patrick in the top right. we've managed to get him to stop wearing that labcoat but that evil grin still remains. <comment><AUTHOR> btw that is actually a genuine artists impression of patrick. thankfully we've got him to stop wearing that lab coat around the apartment but he still sports that evil grin from time to time.

<comment><USER2> Apparently I sat the Leaving Cert exam (there's even a question on when), which is kinda odd, since I never did. Is dropping out really so unacceptable?

Well, at least they got the clothing right.

</comment></comment><comment><USER3> Hmm. Apparently "Y Combinator" is translated as "Y-Combinator" in Gaelic. Who knew?

</comment><comment><USER4> That's awesome. Is there an English translation available?

<comment><USER5> My Irish is a bit rusty, but I think this is the gist of it:

"...is Patrick Collison from County Tipperary who won the top prize at the Young Scientist Competition in 2005. Even though he was only in transition year in Colaiste Chaladh an Treoigh in Limerick at the time, he did the Leaving Cert the year after that and did so well that he obtained a university place for himself in the USA.

But when he came home on his Christmas holidays he decided to set up a company with his brother John - and he suspended his university course. They rented offices in Limerick and started work on developing software - business tools for people selling items on the internet site 'eBay'.

They failed to get investment from any company in Ireland, unfortunately, but the American company 'Y-Combinator' came to their aid - and put them in contact with two men in England who had developed a similar product. The two companies merged under the name Auctomatic.com. They continued developing the products and are doing so well that it looks like Patrick will not ever return to university!

Patrick is only 18 years old (soon?) and John is 16."

</comment></comment><comment><USER6> Is it me, or does the microscope look like a Mr. Coffee?

</comment><comment><USER7> That's awesome. I wish I was a cartoon character.</comment>


Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire - <AUTHOR> https://research.utwente.nl/en/publications/functional-programming-with-bananas-lenses-envelopes-and-barbed-w <comment><USER2> Here's a clearer version of the paper[0].

This paper[1] is a good way for object-oriented programmers to understand why functional programmers care about these higher order abstractions. The goal is not so different from OOP, which is about structuring programs as reusable components (AKA design patterns). The difference of course is that one doesn't need to resort to diagrams and prose, instead they can be written directly in the programming language.

Relatedly, one of my favorite books in functional programming is Algebra of Programming[2], which is about treating programs as an algebra that can be manipulated as easy (with practice) as algebraic expressions in math. The book solves various problems through program derivation, for instance solving the maximum subsegment problem by refining a naïve spec, deriving sorting algorithms, greedy algorithms, dynamic programming and thinning algorithms.

This draft book[3] has similar content to the earlier chapters of AoP but is far more accessible. The downside of AoP is that I had to resort to reading it with a math professor to understand it.

[0] [https://maartenfokkinga.github.io/utwente/mmf91m.pdf](https://maartenfokkinga.github.io/utwente/mmf91m.pdf)

[1] [http://www.cs.ox.ac.uk/jeremy.gibbons/publications/hodgp.pdf](http://www.cs.ox.ac.uk/jeremy.gibbons/publications/hodgp.pdf)

[2] [https://themattchan.com/docs/algprog.pdf](https://themattchan.com/docs/algprog.pdf)

[3] [http://www4.di.uminho.pt/~jno/ps/pdbc.pdf](http://www4.di.uminho.pt/~jno/ps/pdbc.pdf)

<comment><USER3> >> The goal is not so different from OOP, which is about structuring programs as reusable components (AKA design patterns)

And it is exactly the overuse of design patterns that is one of the reasons that OOP has become less popular over the years. I see a lot of similarities with FP there. Once you learn a new design pattern it opens your eyes to new and beautiful solutions for existing problems. And of course from then on you want to use it wherever you can. To repeat a cliché: If your latest tool is a hammer, every problem looks like a nail.

This overuse of abstractions leads to software that is hard to understand and because of that, it actually becomes harder to maintain or extend, while the whole point of design patterns was to make it easier. This doesn't mean that design patterns, either in OOP or FP, are bad, no they still are really powerful but only if used when they are strictly needed; they should most of the time not be used to introduce some opportunity for reusability if reusability is currently not needed.

<comment><USER4> Luckily, the nice thing about functional "design patterns" as invented by the haskell community always have mathematical laws attached to them.

The advantage of having formal laws is that functional programmers can reason mathematically about their design patterns.

This is completely different from the OOP case, where a "design pattern" is something someone found useful X number of times, with no rhyme or reason for structuring things this way. Which is why, in my opinion, it's so hard to talk about OOP design patterns beyond "it seems to fit".

This is completely unlike the OOP community, where a design pattern has a poor spec written in english.

<comment><USER2> Having learned FP's design patterns before OOP's, it was amusing to ask questions such as, "what are the laws for visitors/iterators/builders?"

In the FP community, the laws for folds/unfolds/functors etc. are sacred, which make for very robust programs and well-behaved libraries.

<comment><USER5> It's the difference between the engineer's approach and a mathematician's one. (Physicists, they just write FORTRAN.) To be fair, design patterns were quite explicitly introduced as "these are things OO people seem to reinvent and converge on, so seemed worth documenting."

</comment></comment></comment></comment></comment><comment><USER6> Here is the PDF: [https://ris.utwente.nl/ws/portalfiles/portal/6142049/meijer9...](https://ris.utwente.nl/ws/portalfiles/portal/6142049/meijer91functional.pdf) (and here is a more useful link to a publication database containing a link to a PDF: [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.1...](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.41.125))

The text is from 1991.

</comment><comment><USER7> Let's try to make this a tad less abstract with a (hopefully) more practical teaser:

1\. Let's define a simple binary tree and a (recursive) function to process it:

        data Tree a
          = Leaf a
          | Node (Tree a) (Tree a)

        processTree :: (a -> b) -> (b -> b -> b) -> Tree a -> b
        processTree processLeaf processNode = walk
          where
            walk (Leaf v) = processLeaf v
            walk (Node l r) = processNode (walk l) (walk r)

processTree takes 2 functions, namely the "how to process a leaf?" and the "how to process a node?" ones as well as a tree and then... processes it :) Now, given a tree of Ints, we can use the above to eg. sum its values, find the biggest one or count the nodes:

        λ> myTree = Node (Node (Leaf 3) (Leaf 9)) (Leaf 7)
        λ> processTree (+ 1) (+) myTree
        22
        λ> processTree id max myTree
        9
        λ> processTree (const 1) (+) myTree
        3

Great. Now, instead of defining the above Tree type as an inductive type, let's factor that part out:

        data TreeShape a rec
          = Leaf a
          | Node rec rec

This type is kinda like the original except we add a new type variable (rec) for the inductive part. Ok, now comes the interesting (crazy?) part: Let's define a weird type called Fix:

        newtype Fix f = Fix {unFix :: f (Fix f)}

Don't get lost in it! Just read on. Let's use this weird Fix type to define our original Tree type as such:

        type Tree a = Fix (TreeShape a)

Also let's rewrite the original processTree function using this new type:

        processTree :: (TreeShape a b -> b) -> Tree a -> b
        processTree process = walk
          where
            walk (Fix (Leaf v)) = process (Leaf v)
            walk (Fix (Node l r)) = process (Node (walk l) (walk r))

Looks kinda like the original except that it now uses the same(!) function (aka. algebra) to process both leaves and nodes. This allows us to write simple (non-recursive) functions:

        sum (Leaf v) = v
        sum (Node l r) = l + r
        max (Leaf a) = a
        max (Node l r) = max l r
        size (Leaf _) = 1
        size (Node l r) = l + r

and recover:

        λ> myTree = Fix $ Node (Fix $ Node (Fix $ Leaf 3) (Fix $ Leaf 9)) (Fix $ Leaf 7)
        λ> processTree sum myTree
        19
        λ> processTree max myTree
        9
        λ> processTree size myTree
        3

At this point you might rightfully ask: Why oh why would we go through all this suffering just to recover the same functionality we had originally? Good question :) To answer it we need to realise that "TreeShape a" (and thus also "Tree a") is a member of a class called Functor, which means it knows how to map functions over itself. The magic incantation to do such mapping is called fmap in Haskell. Let's make TreeShape work with fmap:

        instance Functor (TreeShape a) where
          fmap _ (Leaf v) = Leaf v
          fmap f (Node l r) = Node (f l) (f r)

Now, knowing the above, we can rewrite our processTree function into a _much_ more generic form that works not just on our Tree type but on _any_ Functor:

        processFunctor :: Functor f => (f b -> b) -> Fix f -> b
        processFunctor process = process . fmap (processFunctor process) . unFix

This processFunctor function (aka. catamorphism) has no notion of the shape it processes other than that shape should know how to map a function over itself (ie. it's a Functor). As an added bonus we don't even need to write Functor instances for our types by hand as deriving them is a deterministic and mechanical process and thus the compiler is more than happy to do it for us:

        data TreeShape a rec
          = Leaf a
          | Node rec rec
          deriving stock Functor

To summarise: if we want to process some recursive data structure and that data structure happens to be a Functor then all we need to do is derive it's functor instance, write a simple function to do something with an element of the structure and apply that function to the whole using processFunctor.

<comment><USER8> This is really great, thanks :)

`fmap _ (Leaf v) = Leaf (f v)` right? (s/v/f v)

I'm also curious about "the compiler is more than happy to do it for us" \- is that in the form of `deriving Functor`? I have never seen stock before!

Lastly, does `processFunctor` exist in the standard library? Seems powerful but unsure why I would personally have to write it with each project.

<comment><USER9> Not quite - think of the functor as a container for the recursive field, not the values attached to leaves. The leaf is your base recursive case and doesn't have a value to map over. Having your functor instance map over this recursive field is what allows you to write a non-recursive function that expects the field to have the already processed value from it's children!

And yeah, the compiler can derive the functor instance! I don't know the mechanism for how it works but I think it might assume the last type parameter is the 'container' field (think the values in a list or maybe)

It's not in the standard lib, but you can find a few implementations (it's usually called cata for catamorphism) available on hackage. I have used recursion-schemes and it works pretty well.

I learned about this stuff via this excellent blog series: [https://blog.sumtypeofway.com/posts/introduction-to- recursio...](https://blog.sumtypeofway.com/posts/introduction-to-recursion- schemes.html)

</comment></comment></comment><comment><USER10> Useful as background reading for the "Ph.D. Haskell programmer" in [https://willamette.edu/~fruehr/haskell/evolution.html](https://willamette.edu/~fruehr/haskell/evolution.html) .

</comment><comment><USER11> TLDR explanation of the title: the paper introduces special mathematical notation for some recursion schemes: banana brackets (|...|) for folds and lense brackets [(...)] for unfolds as well as envelope brackets [[...]] and barbed wire (overlaying <...> and [...]).

</comment><comment><USER12> That's a lovely paper. I'm glad it's still getting attention! Spread they joy.

</comment><comment><USER13> To paraphrase: unnecessary, redundant abstractions is the root of all evil.

At least this is what plagued Haskell libraries - unnecessary abstract bullshit in dependencies.

Cabal works fine without any of those.</comment>


Should scientists consider health care careers - <AUTHOR> http://sciencecareers.sciencemag.org/career_magazine/previous_issues/articles/2013_04_05/caredit.a1300064

<comment><AUTHOR> One of the hardest parts of applying technology solutions in healthcare is finding providers willing to iterate with you. Hardest for enterprise level innovations, for obvious reasons. Article made me think about the power of someone with a CS background entering every/any part of the healthcare ecosystem (nurse, PA, doc, admin, community health etc...). Every place health system I've worked in favors "one of their own" leading innovation over someone with greater expertise from outside. Storm the castle from inside & out?</comment>


Secret New European Copyright Proposal Spells Disaster for Free Culture - <AUTHOR> https://www.eff.org/deeplinks/2017/05/secret-new-european-copyright-proposal-spells-disaster-free-culture <comment><USER2> So if I wrote a song and recorded it for a friend to play it on the street for anyone to hear for free, this new proposal would surely have a legal impact in that action.

Presumably my friend would have to gather payment from passerbys and pay me then i would then refund it back to the passerbys.</comment>


Should I go to college or keep working in Silicon Valley? - <AUTHOR>

I'm working at a startup as a Rails developer. I was hired straight out of high school, which meant being underpaid, though I've spent my time improving my skills. Long story short, the job market in Silicon Valley is really hot - I now have 2 outside offers in the $110-120k range (0-0.5% equity) at early to late-stage startups, and I might be able to bid the offers up to the 130k+ range. At the same time, I'm thinking about going back to college - a non-Ivy but top CS school (think Carnegie Mellon, UC Berkeley, UIUC).
One thought I have is that we're possibly at the high point of the current tech boom and that I should take a job while the market is hot, then go back to school when there's a cooldown. There's also the fact that as a fresh CS grad, 4 years down the line, I would be making roughly the same, or maybe just slightly more, as I could make right now (100-120k).
But I wonder whether going back to school after being in the industry for 2-3 years will even make sense.
Ultimately, I don't know how to weigh the social and educational experience of college against starting my career 4 years early. I'm not particularly concerned that a lack of a degree itself will hold me back in the future. Any thoughts?
Update: no college debt, parents thankfully have enough to pay for it. <comment><USER3> What I learned at college: physics, chemistry, optics, lots of heavy duty math - statistics, calculus, linear algebra, numeric computing, electrical engineering (analog and digital), how to write and publish, accounting, algorithms, a bit of management/business, and probably few other things I'm forgetting at the moment.

In my career I have done: computed cancer statistics for NIH, worked on a flight computer, done tons of avionics code, worked on a tank robot, computer vision, machine learning, and so on. Almost none of that would have been possible for me without at least a significant portion of the above skills. Chemistry comes in lowest, but it was still somewhat useful for the cancer stuff. And a tiny change in what jobs I had would have made the chemistry highly relevant (say, computational chemistry - tons of that going on around the beltway where I lived for a number of years). From here I can go most anywhere - finance quant jobs at 250K+, machine learning/big data, more computer vision, or what have you. You can .... write some more rails apps. If you are really good, sure, write the next rails, but I would say your options are far more limited than mine.

It's up to you and what you want to do, and what kind of potential you want to have available to you. University is not for learning a trade (by and large, medical school nonwithstanding); it's an opportunity to take in a lot of subjects at a depth you will never achieve on the job or part time (unless you have an ~170 IQ).

I'm sure people will post counterexamples to the above, and surely they exist; I argue simply that education == opportunity. If you have any kind of mind, 5 years of writing yet another rails app will start to bore you to tears. So, the question is, what will keep you from being bored? Inventing a new social app or such? Maybe school is less relevant. Taking on difficult intellectual challenges? It's pretty darn hard (not impossible, just very hard) to make your way without a strong math/science foundation. Also of note is how many people change their careers. Burn out in writing sw is pretty high. What skills will you have if in 5-10 years you want to be management, that CFO job starts to seem very interesting, and so on?

In short, I found my education exceptionally useful. You won't even be able to get an interview for many jobs, not because of snobbery (as is often claimed), but because there is no way you have the background to jump in and read original research in a new topic and deal with the math and algorithms in a sophisticated way. Only you can decide if that is of value to you or not.

<comment><USER4> I agree with the opportunities, though in this case it sounds like the OP wants to do both. In this case, maybe it makes sense to take the job, so long as the OP really intends to go through college.

There's a lot of companies who will pay you to get your degree. Most of the college degree reimbursement plans are for Bachelor's, though some are for higher education. He can go to work now, then work, and go to school and have someone else pay for it that's not his parents.

Very hard route to do both at the same time though. I know a few people who did it, so it is possible.

</comment></comment><comment><USER5> Take the money and practical experience. Give yourself solidly to whichever job offer you except, but don't work 70+ hours a week. Work a highly productive 50 to 55 and take the difference to learn new skills. Always have a side project that is helping you master a new domain within CS and related fields.

Spend less money than you make! Save and invest. Put some into a retirement account but also build up a healthy fund for going to college. Set a start date for college. Fall of 2016.

With your experience and proven skills working PT freelance/consulting while going to college should be easy. Work your way through college freelancing about 10-15 hours a week during the regular term. Travel internationally during the summer while still working some remote projects.

Consider a double major combining CS with statistics or computational linguistics or something in the liberal arts.

Also if you find that you really love university, then just keep going and get a Masters.

</comment><comment><USER6> Math time! Lets assume you do not work during college and must pay with loans. Here is where you could be in 4 years time with each path.

College: -50k (debt) and a degree in CS.

Work: 480k (cash) and 4 years experience.

There's 530k difference between these two options. The math is a bit off since I didn't factor in tax, but I also did not factor in interest for the debt.

If you really have the skills to get a 120k job then there is no financial reason to go to college. Go to college if you feel the experience is worth a 530k sway in 4 years.

</comment><comment><USER7> I think you are right that we are at the high point of the current tech boom. The emergence of dozens of pay-to-play "coding boot camps" is a good signal of this. Milk it for a while, save money, and then go back to school.

</comment><comment><USER8> I don't really have any advice here, because I'm in a somewhat similar situation myself.

But I'm curious about what your skillset and CS knowledge are, since I'm trying to decide whether I should go back to college or continue working (I'm a little worried about how hard it might be to get a job in the future).

I'd definitely appreciate it if you could describe your skillset and CS knowledge, so I can get an idea of how talented a programmer needs to be to get jobs without a degree. Thanks!

<comment><AUTHOR> I know about basic data structures and know about order of growth. That (and intelligence) will get you through most CS-y interview questions.

Otherwise, the reason I get these offers is because 1) I'm skilled in something that is in particularly high demand (Ruby), so people are more willing to excuse inexperience (but I get rejected often anyway), and 2) I apply to a lot of companies/startups - you only need to have a good day once.

<comment><USER8> Thanks for the response. That's interesting to know. What are these interview questions like?

Are they basic questions about lists, stacks, trees, and graphs (and the corresponding algorithms)? Or are they puzzle type questions that you're just naturally good at?

Also, have you mostly had success with startup companies? I'm slightly worried about a bubble in the startup space, though I really have little idea how valid my worries are.

<comment><AUTHOR> There is a wide variety in the type and format of questions I'm asked.

Phone screen type questions might be stuff like fibonacci, find the min in an array, or find the intersection (shared duplicates) of two arrays.

In-person stuff varies: some companies ask me more practical/specific stuff like Ruby/CSS/JS implementation/coding/design/architectural questions. Others ask puzzle type questions that require me to use data structures in clever ways. Interestingly, hashes and trees are my go-to data structures. Do depth- first search and breadth-first search and that'll get you pretty far with trees. 90% of questions I'm asked require using hashes and/or trees in clever ways.

I actually find interviewing gets more and more fun as you get into it.

<comment><USER8> Interesting, thanks for the response. Have you mostly had job offers from startups, or are medium / big companies also interested in you?

Also, what kind of software are these companies building?

Sorry for the many questions, I'm trying to get a better idea of what the market is like for people without degrees.

</comment></comment></comment></comment></comment><comment><USER9> Well do you want to? Will you enjoy it? Will you indeed build a network that everyone is always talking about? Some people just thrive in an environment like that and can use it to their advantage. It gives them leverage. They're work it. If that kind of resonates with you then there's no doubt going to college might make some great things happen.

Otherwise I'd just cut every corner possible and get the diploma in like 2 years.

Personally schools just make me feel sick. And truly sick too. Since leaving school I've never been sick once. No need to skip school I guess. Oh and the whole "college is nothing like HS, THIS IS THE REAL DEAL" crowd. Gosh. No! They'd tell me the same stuff in primary school about middle-school. By the first year of middle school I was begging my mom to let me home-school myself. Wish had more courage to actually drop out of that.

Got no clue what's financially better. If you can thrive there do go! And leverage the hell out of it.

But whether or not you go do continue academia-level self-studying. There's little excuse not to.

</comment><comment><USER10> This is just my personal experience but I was in a similar situation.

I dropped out of high school to do web application development. Tried going to a technical college to get some kind of degree while working full time and I eventually had to choose work or go to school.

I chose to work. I was making $100k+ by the time I was 19 and kept advancing my career steadily. To this day probably 90% of the jobs I've applied to haven't questioned the fact that I do not have a degree, it's all about ability and what I have done. Startups make up that other 10% - even though I now have 10 years (i'm 27) of professional, proven development experience I've experienced a lot of apprehension in interviews because I didn't go to college.

So there is definitely some upside financially, but also you may not be able to land your dream job one day because you lack the college experience.

<comment><USER8> I feel like it's a little odd when you say that startups make up the other 10% that care about a degree.

Conventional advice on HN seems to be that startups are the kinds of companies that don't care as much about the degree. What are the other 90% of jobs you've applied to? Are they also at tech companies?

<comment><USER10> Typically financial companies or IT consulting firms (IBM, CSC, etc) - <USER2> exact type that you would expect would ask you about your education. Sometime last year I interviewed with a startup, they loved my resume. Did a skype interview and things were great. Then they put me on a call with their CTO, first question - "Where did you go to school and when did you graduate?"... He cut the interview short and I never heard back.

<comment><USER8> That's interesting. Do you approach these financial companies and consulting firms through a connection, or are you just sending a resume? I'd expect HR at big companies to filter for degrees.

</comment></comment></comment></comment><comment><USER11> I just graduated high school (2 months ago) and got a few offers right after I graduated.

I'm currently doing a summer internship in Silicon Valley and plan on staying here for at least a year and improve my skills as a designer.

I've been offered a few great full time offers already, but still exploring my paths to make sure whichever decision I make, is the right one.

I plan on going to college (that's definitely something I want to do), but I'm on the same boat right now, and want to take advantage of the offers on the table right now that might not be there after I get out of college.

Any advice for me?

</comment><comment><USER12> Go back to school - you can never be too educated, especially if you go to Cal. Part of going to school is networking and making connections too. In a place like Berkeley you can have one foot in the university and one foot in the street.

<comment><USER13> I couldn't disagree more unless he wants to do it part time. University is largely valuable for the piece of paper, not for learning. He is already educated in his field as evidenced by his current level of success. He will make just as many connections in the real world. Going to school just for something to do is a huge waste, particularly when our field doesn't particularly value degrees.

</comment></comment><comment><USER14> I know a lot of people in their 30s and 40s who don't have a college degree. They make no less and have no fewer job offers because of it.

Go to school because you enjoy learning something(1), not for better job offers. In the technical realms nobody is going to care about that. It's more important to show that you can do good work.

(1) and honestly even if you want to go to school just because you're curious about a subject I'd recommend checking out MOOCs like Coursera and Udacity first.

<comment><USER15> Conversely, I know lots of people in their 30s and 40s who don't have a degree, clearly make a lot less and don't (and didn't when they were younger) have access to many, many job opportunities because of it.

</comment></comment><comment><USER8> I'm mostly wondering right now whether there is a bubble in the startup space. I don't think I understand the market very well right now, and I'm not sure whether most startups are profitable or just being funded.

Does anyone have insight into whether there's a significant bubble in parts of the industry? Of course, this is hard to evaluate without some concrete data, and I'm not sure if any such data exists.

<comment><AUTHOR> I don't think there is a bubble. What I mean is that there probably won't be a huge crash or anything like that. But there may or may not be a gradual cooldown coming.

</comment></comment><comment><USER16> Recent UIUC Alum.

I'm not sure if this will sway your decision, but a lot of lower level CS classes there have "proficiency exams". These exams allow you to test out of certain classes, so if you don't want to take the intro to CS you can just get the credit by passing the test. This could cut your time at school from 4 years to 3 and possibly even 2 if you're smart about it.

</comment><comment><USER17> Work now: high pay in a great market, great resume experience, open doors for other opportunities

College: losing money, boring classes, possibly jobless upon graduation if there is a bust in 4 years. But you get to meet a lot of girls.

Btw, save your money... it's not always easy to make it.

</comment><comment><USER18> Do me a favor and read Andrew Chen's brillant piece on this topic.

[http://andrewchen.co/2013/06/03/new-college-grads-dont- sell-...](http://andrewchen.co/2013/06/03/new-college-grads-dont-sell-your- time-for-a-living/)

</comment><comment><USER19> Make the money now while you can dude. School may also be cheaper in a few years.

</comment><comment><USER20> Take the money. You can always go to college. I still would go to college, just after a while. And you can pay cash for tuition too, and never take out any loans.</comment>


Amazon Elastic Container Service now generally available - <AUTHOR> http://aws.amazon.com/ecs/?available

<comment><AUTHOR> Blog link announcing this + many other new features: [https://aws.amazon.com/blogs/aws/ec2-container-service- ready...](https://aws.amazon.com/blogs/aws/ec2-container-service-ready-for- production-use/)</comment>


Ask HN: Scratch your employer's itch? - <AUTHOR> Hi everyone
I'm working at a decent employee, on a pretty specific IT topic.
I also have this idea for a startup I would like to build but there is no way I can do it on my day job (I dont even have programming tools on my job PC because I don't write software there). Even if I could, the idea would die as an internal project (they don't sell software to other companies)
The thing is that I would be the first user but on my dayjob, kind of scratching my own itch but at my job.
I find it unethical to "sell to my employer" so I was planning to be on a "free forever plan" and then look for other customers. also keeping a clear separation from my day job and my project work.
What do you think about this, is a bad idea? Is there anything I'm not seen and I'm gonna shoot myself in the foot?
Thanks! <comment><USER2> What does your contract say? If you're not in a development role at your current company, I suspect it will only talk about soliciting customers away or staff.

You'd need to build it in your own time and on your own hardware of course.

I'd personally be up front with them that you're working on it, get a letter from your boss too - purely as a just in case.

If they say no and you truly believe in the idea, leave and build it anyway. You can negotiate your building of this with a new employer upfront if needs be.</comment>


Google Disconnects Grand Central Customers - <AUTHOR> http://www.techcrunch.com/2007/08/20/google-disconnects-grand-central-customers/ <comment><USER2> Comments say that only 400 users will have to get new numbers, and nobody is being disconnected from the service. It sounds like the other users on the problem provider's service were able to be switched to another one transparently.</comment>


Android hidden API restriction bypass (= API 30) - <AUTHOR> https://github.com/ChickenHook/RestrictionBypass <comment><USER2> Even if this works today, it might fail by next Android update.

Also don't complain if Google eventually removes any app from Play Store that happens to have this library on the APK.

</comment><comment><USER3> What are these hidden API's typically?

Do any confer extra permissions or rights an app shouldn't have?

<comment><USER4> If they are talking about Java APIs, it's not that these APIs are hidden, it's some functions that were never exposed are being misused by apps using reflection. Some of this functionality has been allowed to be used by apps because there was or is not a good replacement, or a large number of important apps were using that functionality. The trick is that the use of those functions is gated by the Android API you are targeting, so if you target the latest API, you can't use the "hidden APIs" any more. I'm not sure what this is bypassing, the API check or maybe some of the new reflection checks.

Doing this is a recipe for disaster, because your app will stop working in a future release as the "hidden APIs" are removed, or the methods to access the "hidden APIs" are removed. You are guaranteeing that your app will fail soon.

So don't ever use this.</comment></comment>


Catching Up on AWS Announcements from Early 2017 - <AUTHOR> https://aws.amazon.com/blogs/aws/catching-up-on-aws-announcements-from-early-2017/ <comment><USER2> These features sound great.

On the Data Migration Tool (DMS), I really wish they would fix important issues related to Postgres. Right now, if you have a JSONB column in your database, DMS truncates the data.

This makes it impractical to use DMS for most Postgres deployments: [https://forums.aws.amazon.com/message.jspa?messageID=735961](https://forums.aws.amazon.com/message.jspa?messageID=735961)</comment>


Why Snapchat didn't give Spectacles to techies - <AUTHOR> https://techcrunch.com/2016/11/15/spectascobles/ <comment><USER2> > That's why the first memorable photos of Spectacles weren't shot by Scoble, > but by famous fashion photographer Karl Lagerfeld.

How soon we forget: Google Glass actually collaborated with Diane von Furstenberg (a famous fashion designer) and did a launch party at New York Fashion Week.

[https://www.fastcompany.com/3001142/google-glass-hits- runway...](https://www.fastcompany.com/3001142/google-glass-hits-runway- fashion-week)

But Google positioned Glass as a platform for apps, meaning they _had_ to get devs in the loop, while Spectacles are intended for precisely one thing: Snapchat.

<comment><USER3> Even though G*Glasses were 'in a fashion' show doesn't mean in any way there were positioned in the proper aspirational way.

Though yes, I agree they had to get devs in the loop 'because apps'.

Snapchat is almost proper consumer marketing company.

Google is a tech company - and they had absolutely no idea how to market and position those glasses to consumers.

<comment><USER4> > Google is a tech company - and they had absolutely no idea how to market and > position those glasses to consumers.

wat.

1\. G-glass != snapchat spectacles.

2\. IMHO google tried to create new accessory - smart glasses, they first wanted to introduce it to developers to create apps for it.

3\. Either:

3.1. Google saw that it was not worth it at that time. Google is in business of making money after all and not in business of making selfish and shameless teenagers happy.

3.2. The idea was burned down by privacy concerns. G-glass became recognizable enough that users won't use because public will dismiss them due to privacy reasons and vice versa.

I loathe 'startups' like snapchat (though I understand there's money when such big user base takes pictures/videos of everything around them), but IMHO it's a matter of time when teenagers will grab another new and hip service to scream their daily lives to the world and all 'genius of marketing' will disappear.

<comment><USER3> If they wold like hotcakes 3.1 would not matter and 3.2 would be rectified enough to assuage the plebes.

Your point 'they tried to create a new accessory': why is a tech company trying to create an 'accessory' that nobody wants, and is completely out of their domain?

Snapchat is very intelligently extending their brand and user experience a little bit. Google was pushing tech.

Things that we wear, are part of our culture, they are about fashion, trends, and to some degree functionality.

Google his a tech company that has absolutely no clue how to do consumer marketing - this is evident in almost everything they do.

When they provide a high degree of utility - then they win - they should stick to that.

Snapchat is doing it exactly right. And there's no reason to believe that in a few years, the Snapchat glasses won't be as powerful and 'app-ish' as the Google glasses.

<comment><USER5> Google Glass was "almost universally used and appreciated benefits of Android tablets/phones _in front of your face_ ". Its potential for mainstream use was limited because most people don't want to socialise with someone with a surreptitious recording device attached to their head.

Snapchat is "mildly addictive product within certain demographics _in front of your face_ ". Reasons to assume that it will remain a tiny niche product, probably even within the Snapchat demographic, include most people not wanting to socialise with someone with a surreptitious recording device attached to their head

<comment><USER6> Here we go again with the undying myth of everyone/most with Glass all secretly recording everyone. Glass is no more surreptitious than Spectacles.

My peer group used Glass for active stuff. We took video of ourselves rollerblading, playing hockey, doing OCRs, playing with our kids. The battery was never good enough to record that long. It would become physically uncomfortable because the battery would become hot against your temple.

<comment><USER5> I'm sure all of that is true. Which doesn't change the tendency of people to think that the person looking at them who _might_ be recording the conversation to send to their internet buddies is a weirdo. Thats true whether the distinctive-looking video-augmented eyepiece is Google bland or Snapchat childish

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I look forward to a future in which we are all wearing ridiculously walled- garden tech on our faces, and a future in which we've gotten over it. I feel like just as we're slowly recovering the art of making food from the excesses of the early 20th century, our children's children will have to recover the art of being a social human being from the excesses of the early 21st century.

I recognize that otherizing an inevitable technology (ubiquitous connected vision) is taking the wrong side of history, but I hope my grandchildren make fun of my children for it.

I think it's interesting that the article did not describe the device's capacities at all.

In the meantime, I think Snapchat's marketing angle is ingenious. They decided to build trust, but not in the community of makers as Google did, they built trust in the community of shameless consumers (I mean that non-perjoratively). Google's mistake is understandable when you think that they are also trying to be respected in the cloud/app maker/developer space. Snapchat does not have that problem.

<comment><USER4> >In the meantime, I think Snapchat's marketing angle is ingenious.

IMHO it's not something very ingenious, they are shooting ideas - some of them stick to the wall.

> They <...> built trust in the community of shameless consumers

..and that's why the idea sticks (just like whole snapchat et al.). It's shameless and to put it more straight - frequently egoistic (and maybe arrogant as well?) users who use this and go crazy about it.

With google's glass the media raged about how it's a huge privacy problem [&]. Snapchat's spectacles? Genius!! Short memory.

[&] Though to be more critical, having a huge price point and available to few people was the problem as well, but IMHO the media sunk the ship before it was a float by labeling it as a huge privacy issue.

<comment><USER8> Hm, yes... Let's ponder for a moment on why, when a data mining company sells a product that gives them access to a ton of private data, people are skeptical. While a company whose main product is built on the concept of deleting data, doing the same thing, gets a pass?

<comment><USER4> I would be extremely doubtful of that.

IMHO next step for snapchat is somewhere in AR and I bet that they are using data from their users for testing/training their face recognition. Also pictures/videos can be one of their assets for creating other features/products. Snapchat has ads, so data collection for ad targeting is extremely likely.

<comment><USER8> My phrasing was a little muddy.

It's not really relevant whether Snapchat does data mining behind the scenes. But their brand is built upon ephemeral data. The exact opposite of Google.

It has nothing to do with "short memory" when the public reacts less creeped out than when google tried to push a similar product.

</comment></comment></comment></comment></comment><comment><USER9> In retrospect, and especially in comparison, Google Glass really was beautiful, especially the lensless models. I respect the design in a similar way to something like the Microsoft Band, which didn't try to be a watch, but instead embraced the idea of a wrist-interface, with the display on the inside of the wrist, and running in-line with the band as opposed to perpendicular to it.

Maybe I'll feel that way about Spectacles in 2020.

</comment><comment><USER10> Did they fix the privacy issues that arose with Google glasses or is everyone just conveniently forgetting that?

<comment><USER11> Snapchat-loyal press have been well trained to highlight the spinning LEDs and not question the privacy angle. Perhaps they're "ok" with it because clips are shorter and it's not the big bad G.

IMO while it's more noticeable than Glass's single pixel it's still a concealed camera.

<comment><USER12> probably the same in practice, but glass really looked like it was trying to be inconspicuous / disappear, which made it much creepier. specs are so clearly conspicuous and not trying to hide that it makes them seem more harmless.

also, i'd say there's a general cultural trend of becoming more and more comfortable with less and less privacy.

<comment><USER13> > glass really looked like it was trying to be inconspicuous / disappear

How? If anything, the lense-less frame with a bulge on the side is very noticable.

<comment><USER12> well, it didn't do a great job of it :)

to me, it still looks _stylistically_ like it's trying to disappear, like it wants to blend in and become unnoticable. it doesn't seem to be making an obvious "i'm here" fashion statement like the specs.

obviously it's a subjective emotional statement and difficult to support or refute, but i really do believe the vastly different appearances of the two products probably has a lot to do with the different reactions they are receiving.

people are emotional, visual creates.

</comment></comment></comment></comment></comment><comment><USER14> tldr;

1) Artificial Scarcity

2) Geographic Clustering

3) Buying As An Experience

4) Identifying customers

Edit: Included 4)

<comment><AUTHOR> Also identifying customers

<comment><USER14> Thank you, included!

</comment></comment></comment><comment><USER15> I would suspect that techies are not particularly avid users of Snapchat in the first place.

<comment><USER16> I don't really get it or this product. I'm not sure why "ubiquitous shared vision is inevitable."

</comment></comment><comment><USER17> Wow. A pair of glasses that not even Karl Lagerfeld can make look cool.

Also- did Snapchat _really_ think those tiny ballons were enough to lift that snapbot vending machine off the ground? Don't make me laugh, Snapchat!

</comment><comment><USER18> TL;DR, don't make and market tech products for tech people, because they're all queasy autists who will make your product look dorky and ugly. Aim your products at the cool people, the beautiful people, the Kardashians and Iggy Azaleas of the world. They're the people who _matter_.

<comment><USER3> __* The glasses are not a tech product __*

And Snapchat is __* not a tech company __*

That's an important thing to get first :)

<comment><USER19> Yes they are and yes it is. Marketing is trying to convince you otherwise and I'm a little shocked you swallow it so easily.

<comment><USER3> "Marketing is trying to convince you otherwise and I'm a little shocked you swallow it so easily"

I've worked in marketing and tech, I know the difference.

Snapchat is not a technology company, any more than Nike is.

Nike is a consumer marketing/apparel/fashion company, that invests a lot in 'sports tech' and used to be (in the 1970's) more of a purely sports tech company, but made the shift to lifestyle/brand apparel in the 1980's.

Snapchat is as much a 'technology' company as MTV, Pixar, Zara or Wallmart.

</comment></comment></comment></comment><comment><USER20> _> If you want to make something cool, don't give it to geeks first._

Does anyone else get really tired of stuff like this? Why is it that every possible difference is celebrated except within liberal circles, with the exception that nerds are considered objectively bad. In fact the article comes across as body shaming.

<comment><USER21> Othering of "nerds" isn't restricted to liberals.

<comment><USER20> "othering" of nerds isn't restricted to liberals but it is especially hypocritical when they do it. Also liberals are predisposed to "other" nerds because they have chosen nerds to be the symbol of unaware privilege and crude libertarianism so in their thinking nerds deserve no sympathy.

<comment><USER22> I am somewhat amused by this because I've been a liberal and nerd my whole life, participated extensively in liberal activist circles, and never once encountered this among liberals (the closest to this I've seen would be some segments of the community's reaction to perceived ivory tower intellectuals that are distant from pragmatics, but even that isn't so much an othering as a sometimes white-hot debate about priorities and tactics within the movement.)

<comment><USER23> Even as a liberal I think there's actually something to this idea. You can see it with things like the financial transaction tax proposals that are clearly meant to hurt nerdy HFTs rather than affect banks. I think part of it is that nerdy HFTs aren't eloquent enough to explain what they're doing and how it benefits the world.

<comment><USER24> I would love to hear an explanation of how beating the next guy by 1ms is helping the world enough to justify obscene payouts.

Go for it.

<comment><USER25> Lay out the case for the payouts being obscene.

Probably keep in mind that the nominal value of the stocks changing hands on a given day is hundreds of billions of dollars and that an actively trading counterparty is facilitating the movement of that money. What's fair compensation for that?

<comment><USER24> How did markets function prior to HFT? They're only facilitating exchange between other algorithms, right? And in that case how is it helpful to the market?

Note I'm actually asking these questions - not just being rhetorical. The whole concept of it seems plainly ridiculous to me but I don't know much about this area.

<comment><USER26> _How did markets function prior to HFT?_

You had 10 very tall loud guys in brightly colored jackets yelling at each other in a pit. Mentally they were running the same algorithms as HFTs, just slower.

Later on you had some fast fingered guys watching charts and mentally running the same algorithms as guys in the pit, just a bit faster.

<comment><USER24> Except the people were exploiting inefficiencies in markets ( _and still do today_ ). HFT algorithms exploit inefficiencies in servers, ISPs, fiber optic cable, a competing algorithm's implementation, etc.

<comment><USER25> Those things can't be meaningfully separated from the market.

Exploiting inefficiencies in a competing algorithm is the same type of thing as exploiting inefficiencies in the mental model of the guy standing next to you. Taking advantage of better market proximity is the same type of thing as drinking less than the other guys in the pit.

<comment><USER24> If you presuppose that the _purpose_ of trading is to make money in and of itself then sure. Of course the real (original?) purpose is more tightly coupled to reality and to real goods exchanging hands. There seems to be a fundamental difference between profiting from the exchange and profiting from the mechanism of exchange.

I'm not asking for how we ended up here. I get that faster = better and 1ms faster is still 1ms better. What I'm asking is what _value_ it brings to the world — specifically the world outside of, historically, the pit, and today, outside of the computers executing trades.

Are goods more accurately priced? Is there more liquidity in the market? Is the market more stable? Is _the market_ more efficient, or is it only the technical implementation of the market that's made more efficient by these? Do these benefits, if they're present, outweigh the cost of things like flash crashes caused by algorithms? If flash crashes hurt all of us, then shouldn't we all be benefited by the algorithms when they're doing well? Do we benefit and by how much?

This is why people want "nerdy HFTs" to be taxed in a special way. Maybe it's because they can't articulate the value or maybe it's because there is no value. I can't see the difference and I can't get anything other than evasive comparisons when I ask what the difference is.

<comment><USER25> Borrowing a point from tptacek, Vanguard has come out and said that they have lower costs due to HFT. Their customers save money over the previous providers of liquidity.

[https://www.ft.com/content/ff8c6486-cb37-11e3-ba95-00144feab...](https://www.ft.com/content/ff8c6486-cb37-11e3-ba95-00144feabdc0)

(bounce "Vanguard chief defends high-frequency trading firms" through Google if there is a paywall)

<comment><USER24> Awesome, I appreciate the link. It's still not totally clear to me how/why this helps Vanguard, or whether the pros outweigh the cons for the market as a whole, but this is in fact the type of evidence that I've been asking for. Thank you for sharing!

<comment><USER27> It helps Vanguard because they don't make money through active trading: they are literally the vanguard of the movement, now practically accepted as orthodoxy, that funds should be passive and diversified across the whole market.

If you buy and hold, HFT _helps_ you, by reducing the cost of execution --- both by reducing the spread, which is a tax you pay any time you place a market order, and by literally reducing trading fees. In fact, even if you're an active trader, HFT usually helps you: the only people truly harmed by HFT are the ones who tried to make a living selling liquidity before, who are now being outcompeted.</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment>


Tired of Looking at Bad Sawhorse Construction - <AUTHOR> https://ogfomk.blogspot.com/2017/02/sawhorse-3-20170219.html <comment><AUTHOR> I kept looking at the sawhorses that were strewn about the landscape. I decided to draw what I thought a sawhorse should look like. There are plenty of better ones out there. But I wanted anyone to be able to build one.</comment>


A California wildfire nearly destroyed the historic Lick observatory - <AUTHOR> https://arstechnica.com/science/2020/08/a-california-wildfire-nearly-destroyed-the-historic-lick-observatory/ <comment><USER2> To think that the night sky around LA was dark enough at some point to make celestial observations. See also Castel Gandolfo outside of Rome, the office of the Vatican Observatory:

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

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

Certainly there are bigger problems in the world, but it'd be nice if light pollution could be taken into account when making policy decisions (like which street lamps a municipality will buy):

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

* [https://www.darksky.org/our-work/lighting/](https://www.darksky.org/our-work/lighting/)

I think a lot of people would enjoy seeing the natural night sky without having to travel great distances:

* [https://kottke.org/17/12/lost-in-light-how-light-pollution-o...](https://kottke.org/17/12/lost-in-light-how-light-pollution-obscures-our-view-of-the-night-sky)

<comment><USER3> It's hard to tell where you are, but if you're in the bay area and know enough to post what you did, you probably should also know that the city of San Jose did specifically select street lamps based on light pollution concerns from the astronomers at Lick.

[https://www.quora.com/Why-did-San-Jose-install-yellow- street...](https://www.quora.com/Why-did-San-Jose-install-yellow-street- lights)

[https://mthamilton.ucolick.org/public/lighting/Pollution2.ht...](https://mthamilton.ucolick.org/public/lighting/Pollution2.html)

As a transplant, it took some getting used to, because the low pressure sodium street lamps are roughly the same color as yellow stop lights. For better or for worse, the city of San Jose has been replacing the LPS lamps with LEDs for the past 6 years, but at least they're down-facing and create less light pollution than many other options.

<comment><USER2> Closest one to where I live:

* [https://en.wikipedia.org/wiki/Torrance_Barrens#Dark-sky_pres...](https://en.wikipedia.org/wiki/Torrance_Barrens#Dark-sky_preserve)

Current at-risk:

* [https://www.blogto.com/travel/2020/08/torrance-barrens-dark-...](https://www.blogto.com/travel/2020/08/torrance-barrens-dark-sky-preserve-ruined/)

</comment></comment></comment><comment><USER4> I've been up that way many times, by bike, by motorcycle, by car. Although the road to the top is relatively tame (7% max grade), the surrounding area is super steep and hilly. Great for hiking and mountain biking, not so much for fire fighting. It's also very, very dry. Major props to all the fire fighters who labored to save such a historically important facility.

<comment><USER5> If I recall correctly, the road to the top is relatively tame because it was built to deliver construction materials to the observatory, and that was before motor vehicles.

<comment><USER6> I visited last November from the San Jose side, and the road was a nightmare. It's a small, windy road through the mountains with little visibility. I could see it being extremely difficult to navigate with firetrucks as it took me quite a while with my Prius.

<comment><USER7> The front road (Mt. Hamilton Road / Hwy 130, starting at Alum Rock) is very winding because the grade was limited to allow horse & cargo carriage to summit the peak. Limiting the grade means extra turns. The back side roads, down to Livermore or Patterson, as well as the faster front cutoff (Quimby Rd) were built for vehicles and are much steeper and a little straighter.

Source: Grew up there

</comment></comment></comment></comment><comment> mark-r Mount Hamilton is one of my favorite places on earth, even though I've only been there twice. You feel like you're seeing the best that nature and man can produce, both at the same time. I'm glad they were able to save the observatory.

<comment><USER8> I had similar feelings climbing Mt Wilson near Los Angeles and Mauna Kea in the big island of Hawaii.

<comment><USER9> I was once a student at a community college taking an astronomy course and was required to visit an observatory to write a reflection piece. I ended up visiting Mt. Wilson Observatory. Boy, did I think my beat-up, 2002 Honda Civic coupe would not make it up there due to the incline - my friends and I were in awe of how we were driving "in the clouds" (or maybe it was just fog?). I loved it up there! If I recall correctly, they had this shack where you could buy your tour pass and food.</comment></comment></comment>


One of VR's Biggest Problems Solved - <AUTHOR> https://www.kickstarter.com/projects/architek1/auris-4vr

<comment><USER2> I have a DK2 and am constantly frustrated with my audio headphone/DK2 headset setup. I am actually surprised that Oculus did not address the audio issue sooner. Sound is such an important factor in visualization. The consumer version (CV1) is supposedly not out for another 6-8 months?</comment>


Pwn2own considered (somewhat) harmful - <AUTHOR> http://lcamtuf.blogspot.com/2011/03/pwn2own-considered-somewhat-harmful.html

<comment><USER2> Pwn2Own _is_ harmful. Jon Oberheide's article[1] convinced me of that. Bug bounties encourage the disclosure of vulnerabilities as soon as they're discovered; contests like Pwn2own, with specific starting dates, encourage the accumulation of _undisclosed_ vulnerabilities until the contest begins. It unnaturally extends the lifetime of bug, and hurts users by leaving them vulnerable for longer than necessary.

[1] [http://jon.oberheide.org/blog/2011/03/07/how-i-almost-won- pw...](http://jon.oberheide.org/blog/2011/03/07/how-i-almost-won-pwn2own-via- xss/)

<comment><USER3> heh yeah I prefer vulns that never get disclosed except to clients that can pay a lot more.

</comment></comment><comment><USER4> I wish that there was some widely agreed upon standard for "considered harmful" articles. Like, they have to be serious problems. They can't just be nitpicks or of the "this will mislead the already clueless layman when the press gets wind of it" bent.

There are so many vulnerabilities and exploits developed every year. How can it matter very much if a small handful of them are rewarded more substantially and disclosed using a slightly different than normal procedure? Pwn2own considered a wash, if you ask me.

<comment> f- The original "considered harmful" article was essentially one big nitpick, so this use is probably quite appropriate.

<comment><USER5> Wiktionary defines "nitpick" as "To correct minutiae or find fault in unimportant details." But "Go To Statement Considered Harmful" ([http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.92....](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.92.4846&rep=rep1&type=pdf)) is not about minutiae or unimportant details; it is about how to approach the task of writing a computer program that does what you want instead of something else, a task that is at the core of the modern economy.

<comment> f- It focuses on the largely insignificant debate over the merits of one syntax structure over another. It's essentially the vi versus emacs of programming.

<comment><USER5> It sounds like you haven't read it. Please read it before you attempt to comment on it.

</comment></comment></comment></comment></comment><comment><USER6> I disagree. While Pwn2Own is not evidence of the relative security of browsers, I don't see how it can be "harmful" when it causes Google and Apple to find and ship numerous fixes for the competition. It also raises awareness to the general public; if IE 8 being hacked at Pwn2Own gets even some of the less technologically-inclined to switch to a better browser, I'm all for it.

<comment><USER7> It creates a powerful incentive not to disclose vulnerabilities within a large window of time preceding CanSecWest (disclose now: $0; disclose in March: $15,000), and it creates false perceptions about the relative security of browsers and about security in general.

The argument against Pwn2Own is pretty straightforward.

Incidentally, switching from IE for security is tricky. There are some (v. popular) browsers you could switch from IE to that (the C.W. says) would make you more secure; others, less. The IE family has a lot of problems, but "owned by people who don't give a shit about security" isn't one of them.

<comment><USER3> there's more than one buyer out there for vulns

</comment></comment></comment><comment><USER8> I do agree with this quote from the article: "it is in the interest of the conference and contest organizers, and the participating researchers, to get publicity for their findings - and journalists, who do not necessarily have a holistic view of the day-to-day browser security research, embrace such high- profile developments with disproportionate enthusiasm."

I always hate reading reports from Pwn2Own every year - "browser y was exploited in less than x seconds!!11!" As the article points out, not only is this very misleading (you might say downright false), this kind of sensationalist journalism trickles down and misinforms the general public about the state of browser security.

</comment><comment><USER9> Is it up to the contestant to release the vulnerability or not? I must admit that I haven't read the rules so thoroughly, but could a contestant potentially win and never disclose the vulnerability even to the vendor? If so I agree with the article to some extent.

I do however think that there is some value with this event as it is one of very few such events to be covered by main stream media for some reason (at least here in Norway), and it puts the fact that browsers aren't always safe in the spotlight even for the general population.

<comment><USER7> They essentially sell the vulnerability at CanSec. In other words, if you find a vulnerability in November, and it's a good one, you might as well not tell anybody about it and take your shot at winning $15,000 and a press hit.

Speaking as a practitioner: we do not want for vehicles for media coverage. CanSec does not improve public understanding of vulnerability research. If anything, as Zalewski points out, it degrades it.

<comment><USER10> Correct. Although the attacks at pwn2own are full exploits, not just vulnerabilities. For example, the attack against IE8 was three vulnerabilities. And each one in isolation I suspect was at least "Important", but it is _possible_ that each in isolation may not have been "Critical". But by seeing them chained together in an actual exploit you (a) see that these vulnerabilities need to be fixed and (b) may find a new exploit technique that may not have been known by the vendors if a white hat hadn't gone through the effort to actually "weaponize".

And this is one of the big differences between white and black hats, which I'm sure you're aware of. White hats often find and patch vulnerabilities, but rarely develop full exploits. Black hats are all about full exploits. While intricately related, aren't equivalent.

<comment><USER7> There is no browser vendor right now that isn't taking memory corruption vulnerabilities seriously. It isn't '99 anymore. We're not battling it out in the papers about "theoretical" vulnerabilities. When people report "possible code execution" without exploits, Microsoft sticks "possible code execution" in the MSRC alert.

Somebody out there who has had a bad experience with MSFT is going to shellack me for saying that, but "getting vendors to take bugs seriously" is a really, _really_ flimsy argument for a program that bribes researchers to bottle up their findings.

<comment><USER10> There are vulns that aren't fixed that by themselves don't seem so bad, but in conjunction with others are. And there are examples that aren't fixed today. For example, there's a disclosure of information bug in IE8 that exists, but you need the location of the target file to exploit it. If there's another exploit that lets you drop files outside the sandbox, and another exploit where you can overflow a buffer outside the sandbox on reading a file, you now have three vulns that together get you to run code, but any two of them is not sufficient.

Note, I based this on SA38416, despite the fact that it appears possible/likely that this vulnerability actually doesn't exist as stated, but it was fine for expository purposes.

</comment></comment></comment></comment></comment><comment><USER11> The author makes some valid points. However, I'm not convinced that Pwn2Own is overall a bad thing, for 2 reasons:

1\. It is far more public than bug bounties. The browsers that get hacked are in the public spotlight, and that can pressure them into doing a better job in the future.

2\. The browsers that put the most effort into security - Firefox and Chrome - did well this year. The article and comments seem to imply this might be a coincidence. There is some element of chance here, so it's possible, however, I don't agree that chance is a major factor. Furthermore, if it was as easy to hack browsers as the article implies, you'd expect all the browsers to be hacked - again arguing against randomness being a big factor here.

<comment> f- The key point is that there are dozens of serious vulnerabilities found in Firefox and Chrome every year. The availability of a vulnerability at an exact time in an exact place is not a good way to compare such broad trends.

</comment></comment><comment><USER12> I think some background on the author is appropriate here: <http://en.wikipedia.org/wiki/Micha%C5%82_Zalewski>

</comment><comment><USER13> This title meme needs to go away.

</comment><comment><USER14> [Reporting on] Pwn2own [stories] considered [inaccurate].

Terrible headline and approach to the subject, imo.

<comment><USER7> The reporting isn't his only complaint. He's saying, bug bounties are better than contests. He's clearly right. "Imo".

</comment></comment><comment><USER15> I don't get what the problem is.</comment>


Google's Microsoft Complex - <AUTHOR> http://tpmcafe.talkingpointsmemo.com/2009/01/13/googles_microsoft_complex/

<comment><USER3> From my vantage point, Google has been nicer. I can switch search providers with no hassle if someone offers a technologically superior product. Microsoft, through everyone developing for the Windows API, made it very difficult for people to change OS - less so now that the internet has arguably become the largest platform. Still, I can see how Google exerts a bit of a hold because of AdWords. I know at my work, we never think about non-AdWords networks. If you're going to monetize search, you need advertisers. In order to get advertisers, you need users. You can go the whole, loose money now and then make it up later technique, but that's hard unless you've got some nice VCs.

Maybe the issue is who their customers are. With Microsoft, it's definitely the people using Windows and such. With Google, one could argue that their customers aren't people using Google, but the advertisers who pay for it - <USER2> Google does have a little lock over them as they have the search traffic. Still, I think Google has been more open and tried harder to succeed on its merits than Microsoft has.

<comment><USER4> "tried harder to succeed on its merits than Microsoft has."

The flaw in that argument is that it presumes that Microsoft's success was based on Microsoft's success.

You're addressing what MS has done to maintain their dominant market position, not how they got there -- though in the beginning, MS got its start through smart business rather than technology or innovation.</comment></comment>


Lemote YeeLoong 8101B with Loongson 2F CPU Review - <AUTHOR> http://b.mtjm.eu/lemote-yeeloong.html

<comment><USER2> The goal of openness is laudable, though I don't understand the software/hardware distinction that appears to be common in GNU/FSF circles; convert proprietary firmware or software into equivalent hardware, and magically it becomes uninteresting that it's proprietary and unable to be modified?

The CPU microcode example from the article is particularly nonsensical. The author seems to be arguing that CPUs without loadable microcode are more free than CPUs with loadable microcode. However, the non-loadable CPU is incapable of being modified or fixed, whereas the loadable CPU's microcode format has the potential to be reverse engineered, at the very least.

This seems to be a prevalent mindset among free software advocates; the OpenMoko project had a similar stance with firmware for a radio: [http://lwn.net/Articles/460654/](http://lwn.net/Articles/460654/)

Aside from all the philosophical debate, and though it's a promising start, the whole thing sounds 10 years or more behind current PC technology in terms of performance; I can't imagine actually using one of these as a daily driver.

<comment><USER3> This from a piece by RMS in The Guardian "Is Android really free software?" [0] explains his reasoning behind accepting hardware with permanently embedded firmware.

      In any case, the phone network firmware in an Android
      device is not equivalent to a circuit, because the
      hardware allows installation of new versions and this
      is actually done. Since it is proprietary firmware, in
      practice only the manufacturer can make new versions
      – users can't.

      Putting these points together, we can tolerate non-free
      phone network firmware provided new versions of it won't
      be loaded, it can't take control of the main computer,
      and it can only communicate when and as the free operating
      system chooses to let it communicate. In other words, it
      has to be equivalent to circuitry, and that circuitry must
      not be malicious.

0\. [http://www.guardian.co.uk/technology/2011/sep/19/android- fre...](http://www.guardian.co.uk/technology/2011/sep/19/android-free- software-stallman)

<comment><AUTHOR> Yes, this is a good description. It still isn't ideal, though, but it is a compromise.

</comment></comment></comment><comment><USER4> There seems to be a bit of disconnect between the multiple, fundamental flaws with the unit, and the recommendation for its use at the end. The degree of pain and suffering the author is willing to go through for a completely FOSS system is pretty incredible.

<comment><USER5> Given my workflow, I could be using a machine of that kind 95% of the time, as long as Chromium or Iceweasel perform acceptably.

I'm on Vim and Screen, and compiling. More than anything I notice a fast storage device. Plug in an SSD and that's solved.

Lack of 3D acceleration is a pain if you use something that requires it.

I do some scientific computing with OpenCL, which I have a machine dedicated to. Other than that, it would be okay for me. If only the screen resolution was good, which doesn't seem to be the case. But it's still acceptable for some uses.

Only the abysmal battery life, noisy fan and poor screen seem a very strong sacrifice over what I use in one of my laptops (it does have decent 3D acceleration but I barely ever use it). As GPU acceleration gets more prevalent in general computing this is going to be a show-stopper too...

If only someone came with a fully FOSS system-on-a-chip at the level of the newer beagleboards, I'd be willing to pay a 100% premium, easily.

<comment><USER6> I agree with you. If an updated version was available with a little better battery life and a bit more screen resolution then I would probably buy one. BTW, I suppose the unusual CPU might be some extra protection from viruses and Trojans.

</comment></comment></comment><comment><USER7> Here's a compilation of 7-Zip benchmark results that includes the Loongson 2F CPU: [http://www.7-cpu.com/](http://www.7-cpu.com/). The Loongson 2F beats the CPU found in the SheevaPlug on compression scores but scores slower on decompression.

Other than GNU/Linux [1] Lemotes can also run OpenBSD: [http://www.openbsd.org/loongson.html](http://www.openbsd.org/loongson.html).

Sadly, I was unable to find out which exact model of the Lemote Yeeloong RMS currently uses. His website [2] certainly doesn't tell us and neither do the interviews.

[1] I feel that the "GNU" is mandatory here.

[2] [http://stallman.org/stallman- computing.html](http://stallman.org/stallman-computing.html)

</comment><comment><USER8> If I'm not mistaken, this is the laptop that Richard Stallman uses, due to its free software BIOS & firmware.

</comment><comment><USER9> If anyone is looking to purchase one of these, I would like to point out that you can still get them straight from china by purchasing them from lemote directly, from their store at alibaba. I got mine from here last march, it was about $200.

EDIT: Unfortunately it seems like they are no longer selling lemotes at alibaba. I guess I'm glad I got mine when I did.

<comment><AUTHOR> Tekmote still carries them: [http://www.tekmote.nl/](http://www.tekmote.nl/) Please refer to Freedom Included as well in case they have refurbished ones: [http://freedomincluded.com/](http://freedomincluded.com/)

</comment></comment><comment><USER10> What is up with this pseudo-MIPS ISA? My coworker had quite a few issues with the "MIPS" support of a Loongson development board. I'm looking into using a spare Asus router with a Broadcom MIPS chip as an alternative dev board.

<comment><USER11> The real MIPS IV architecture is covered by some patents. Probably the real MIPS SIMD stuff is covered, too.</comment></comment>


Set up digital workspace for your project - <AUTHOR> https://www.agrigoryan.me/post/digital-workspace-software-engineering-projects <comment><AUTHOR> What is your go-to way to set up a productive environment for software engineering projects?</comment>


Urgent: Does anyone have a contact at Weebly (YC W07)? - <AUTHOR>

For the past 3 weeks we have been unable to export orders from our online store, and this is delaying the shipment of over $300,000 worth of orders. My emails to firstname.lastname@example.com have gone unanswered. Can someone at Weebly please help us resolve this? <comment><USER2> I don't, but you can try emailing email@example.com -- it is an email address that is supposed to go directly to the founders.

</comment><comment><USER3> hey there, can you please email me at email@example.com? i will make sure we get this sorted ASAP. really sorry about this.

<comment><AUTHOR> Email sent! Thanks!</comment></comment>


Show HN: Autogit – automatically execute commands across multiple Git repos - <AUTHOR> https://github.com/fabiospampinato/autogit <comment><USER2> I've been looking for a tool like this and ended up using simple bash aliases:

      # Git
      git4all() {
        find . -mindepth 1 -maxdepth 3 -type d -name '.git' -prune -exec sh -c 'echo ${0%?????}; git -C ${0%?????} $1' {} "$1" \;
      }

      alias push-all='git4all "push" \;'
      alias pull-all='git4all "pull --ff-only --all" \;'
      alias fetch-all='git4all "fetch --all" \;'
      alias status-all='git4all "status -s" \;'

However, I really like Autogit's advanced features and will certainly look into it :)

<comment><AUTHOR> I'm glad you find it useful :)

This is just the initial release, as I'm using it more myself I'll refine it further.</comment></comment>


Does YC accept already funded and incorporated startups? - <AUTHOR>

I believe that funding is just a small part at YC, most important thing are those 3 months that you spend with great mentors like Paul Graham.<p>I want to know if YC accepts already funded startups?  If yes please give some examples from previous batches. <comment><AUTHOR> any help?</comment>


Creator of C++ Admits Why He Created the Language (1998) - <AUTHOR> http://www.stokely.com/lighter.side/stroustrup.html

<comment><USER2> I'd love this to be true, but sadly it isn't. [http://www.snopes.com/computer/program/stroustrup.asp](http://www.snopes.com/computer/program/stroustrup.asp)

Surprised this got to the front page :0

<comment><USER3> I'm surprised people need snopes to figure out it is satire.

</comment></comment><comment><USER4> >Author Unknown [Webmistress' note: This is fiction.]

</comment><comment><USER5> This is not true. Check [http://www.stroustrup.com/bs_faq.html#IEEE](http://www.stroustrup.com/bs_faq.html#IEEE)

</comment><comment><USER6> Hilarious. I wish I had tried C++ just so I could get this joke.

<comment><USER7> Look into it. It's a nice piece of programming history. There's much to learn.

</comment></comment><comment><USER8> Waovv! I started liking Stroustrup after this.

<comment><USER9> You know that this is fake right? It is circulated every week to fool off people.

<comment><USER8> Hope he had said, I am really disappointed.</comment></comment></comment>


Finally... Goto in Javascript - <AUTHOR> http://www.summerofgoto.com/ <comment><USER2> When I saw this, I was hoping for the impossible, and was predictably disappointed. This is not the GOTO you know (at least, it will never match up to C or to CL's TAGBODY), as it cannot jump forward to labels declared textually later in the code.

I've worked through various ways of trying to implement goto in Javascript via preprocessing for the parenscript CL library, and have always come away feeling unsatisfied. You can do it, but as far as I can tell, you have to use a trampoline.

A native goto statement in Javascript would go a long way into making JS an acceptable compilation target.

<comment><USER3> Rather than using nested while loops with labels, why not use one big while loop and a switch statement? This seems cleaner and would allow jumping ahead, rather than just behind.

Labels "[lbl] foo" would become "case 'foo':goto_label=false;" and gotos "goto foo;" would become "goto_label='foo'; continue goto_loop;".

Example:

        var goto_label='top';
        goto_loop: while(goto_label) {
        switch(goto_label) {
            case 'top': goto_label=false;
            ...
            goto_label='foo'; continue goto_loop;
            ...
            case 'foo': goto_label=false;
            ...
        }}

Not perfect, but better.

edit: scratch that, labels within other control structures won't work, only top level ones.

</comment></comment><comment><USER4> A real GOTO in Javascript would be extremely welcome. Commenters bemoaning the idea are missing the point. The value is not in writing GOTOs by hand, but in a greatly expanded ability to add higher-level abstractions to the language. For example, we have a lot of JS with nested functions. There's no good way to say "return from the top-level function"; the _return_ keyword only gets you out of the current level. If we had something like CL's _return-from_ we could do more with JS. There are many such examples. (Edit: the while-loop hack that's used here might be useful for this. I had thought about implementing it with throw/catch but that seemed too heavyhanded.)

</comment><comment><USER5>
      Goto floor(10);
      Open window;
      Jump();

<comment><USER2> I like the joke, but I consider the reflexive anti-goto attitude harmful. Javascript would be a better language with a native goto statement. I think people forget the context of Dijkstra's paper. Scope-local gotos are qualitatively different than type of function-less code that Dijkstra was referring to at the time. The clearest way to express certain algorithms really does involve a (local) goto. And goto makes it much easier to implement higher-level language constructs in Javascript through preprocessing.

Without goto and TCO (goto by another name), you're left to transform your code to be run under a trampoline, which really makes the resulting JS unreadable.

<comment><USER6> What JS really, really, really, really needs isn't TCO (well that too), but rather call/cc.

Looking over a fairly large project here, a majority of the code is written in CPS because of callbacks to the server or delays for user interaction.

(So far, I've avoided the need to trampoline, since my call stack isn't getting too deep yet before it unwinds on it its own. But, then again, I haven't done any cross-browser testing at all yet.)

<comment><USER7> First class continuations in Javascript would be a godsend.

<comment><USER8> You can get them with the Continuation Monad. (But of course that needs TOC to work well.)

</comment></comment></comment></comment></comment><comment><USER9> A funny hack. He uses "while" loops with "continue" to emulate backward jumps. Not sure how he does forward jumps (is it implemented at all? "break" could help, i suppose..)

Anyway, AFAICS, cross-function gotos are impossible with this implementation, so you can't write real spaghetti code with it. Awww :).

[btw, I suppose it [edit: cross-function gotos and whatnot] should be possible. It would probably take a full-blown continuation passing style transform, though]

</comment><comment><USER10> We also need ALTER operator: <http://home.swbell.net/mck9/cobol/style/alter.html>

</comment><comment><USER11> the fifth note is quite telling:

"NOTE: Seriously. Never use this."

</comment><comment><USER12> For bonus points, implement COME FROM.

<comment><USER8> And fork threads whenever you hit multiple COME FROMs for the same label.

</comment></comment><comment><USER13> Javascript already has labels and break and continue. That ought to be enough for everyone.

<comment><USER14> The problem with break and continue is that they only apply to the inner most loop. Unless you change certain values, you're only going to reenter the same loop immediately. In that case - goto is actually a cleaner solution.

<comment><USER13> That's what labels are for. I think you can do

loop: for(i=0;i<10;i++){ for(...) { break loop; } }

</comment></comment></comment><comment><USER15> Shame the site wasn't a little more subtle about the joke, at least until the fold.

</comment><comment><USER16> This thread was actually quite enlightening to hear the debate from both sides on the goto statement. Love HN for that. Nevertheless, it's always healthy to inject a little humor into the debate.

<http://xkcd.com/292/>

</comment><comment><USER17> It just replaces labels with named while loops, and GOTO gets replaced with continue... So it can only GOTO things that are nested correctly, and only jump back not forwards.

So not really a Goto in any real sense of the word.

<comment><USER18> I'm surprised that approach was taken. It's easier to rewrite the function as a state machine, where gotos just go to the proper state.

</comment></comment><comment><USER19> I would like to see just one example where a real goto is needed.

Just one...

<comment><USER20> I guess you never looked?

There plenty of examples.

It's not usually _needed_ but it often helps.

</comment></comment><comment><USER21> Oh dear god.

<comment><USER22> Yes?

<comment><USER21> Well I assumed, as did others, that this was implemented as a joke. Gotos aren't inherently evil but if your code is improved by using them then your code is bad.</comment></comment></comment>