France Says It Will Ban Uber's Low-Cost Service in New Year - <AUTHOR> http://www.nytimes.com/2014/12/16/business/international/france-says-it-will-ban-ubers-low-cost-service-in-new-year.html?_r=0 <comment><USER4> In my (only a few days) experience with UberPop in Paris... it was horrible. I've used Uber (various service types) in a few cities, and most of all use them regularly in London. I think I'm close to adding them to my list of companies I just don't want to give business to, but that's a whole other barrel of worms.

I spent a week in Paris last month, and while I'd normally ignore an UberPop level, my hotel was down a straight road to the place I was going every day that week, and with UberPop I exactly hit the minimum (€4), whereas paying more than double that I felt guilty enough to walk the 10-15min..

I don't think I've ever had such consistently bad experiences with any taxi service, be it modern or old, global or local. All the UberPop drivers had no GPS, or GPS that didn't work. All had trouble finding me to collect, despite Uber's seemingly straight-forward system. I had to give directions (not just "my hotel's round the next corner", but directions for full longer journeys), luckily my French is _just_ good enough...

After a few trips I stopped trying to save money and went back to UberX and UberBerline. All sorted after that (a couple of language-caused issues, but that's my fault for being English in Paris and not speaking French as well as I'd like!)

<comment><USER5> What's the difference between UberPop and UberX?

<comment><USER6> UberPop are unlicensed taxis in private cars masquerading as ride-shares. Which they obviously aren't, since the paying client decides the destination.

I would be surprised if UberPop is still in operation anywhere in Europe by the summer of 2015. It's patently illegal on multiple fronts.

Some governments are open to providing a regulatory framework (one that covers safety and consumer protection), especially in places where the taxi market is dysfunctional, but Uber's "fuck your laws, we'll do it anyway" attitude is extremely counterproductive in that respect.

UberX is a professional limousine service, and in most places they operate they abide by the rules. (Which also means they're not particularly cheaper than regular taxis.)

<comment><USER7> I am a consumer (of UberPop among other transport solutions) and I am (genuinely) not understanding: agreed it's not ride-shares, but why is there laws that make non-ride-shares so complicated? UberPop is simple, for the driver, the consumer and it drives the costs down, this sounds really nice to me.

If it's only about safety and consumer protection, well shouldn't it be a consumer choice anyway? (agreed it's easy for me, a male above 30 to tell this... and despite the bad experiences I also had in Paris with UberPop although my drivers had GPSes - one had 2 of them, was confused as hell and should certainly be looking more at the road) Just like I do when I choose real ride-shares (i.e. not UberPop. We have blablacar in France for example which is hitchhiking through the internet).

It seems that, in France, politics made a huge mistake coming up with horrendously expensive (apparently 200k to 300k EUR) taxi licenses and now some people are at risk to pay for those mistakes, namely people who have recently invested in one of this license. Cause even if UberPop is banned, VTC (Vehicule de Tourisme avec Chauffeur) are now legal and make those licenses quite useless (or at least the investment isn't nearly as justified as before).

It's obvious to me that the law have to go in the direction of new technology or the consequences will be quite disastrous. I agree that Uber's attitude seems a bit harsh but I would thanks them for any induced (political) changes in the direction of technology.

EDIT: didn't know the adverb "patently" was not referring to patents, thanks dminor for teaching me english :) (I'm french obviously :/)

<comment><USER8> The idea behind regulating personal transportation, aka taxis is because of the big external effects. If there was a free, unregulated market for taxis, obviously fares would be much lower and there would be much more taxis on the streets. However this in turn decreases the experience for the individual passenger (more traffic leads to longer rides) and much more importantly causes traffic lags for all other users of the road - most notably for the transportation of goods. So while a completely liberated taxi market might work out for the passengers (especially outside of rush hours) it most likely won't work out for the economy at large. This is an inherent problem when you have a liberal market (transportation) which uses a publicly owned good (the streets) which can't be priced appropriately (or only in a limited way - <USER2> London).

<comment><USER9> But doesn't fewer taxis also mean longer waiting times to _get_ a taxi, and encourage an increase in private car ownership, replacing taxis on the road with private drivers driving themselves?

Won't one Uber driver replace many cars on the road, especially as the price is driven down, the cost of using Uber makes owning a car less appealing in many locales?

Rather than ban Uber, they could just implement taxes, just like Uber implements real time surge pricing. The tax could be tied to congestion. Uber would pass these onto consumers, prices would rise, and presumably demand for drivers would equalize with how much time and money people collectively would be willing to pay.

<comment><USER8> I agree; real time surge pricing for congested roads would be _the optimal solution_. But just imagine the outcry in the population when you try to implement road charges for all inner city roads. This is another example of an economically perfectly sound concept which is in many parts of the world politically completely unfeasible (at least for the moment). On top of that, couldn't you argue that transportation is a basic human right? If so, you would have to either discriminate against the poor or adjust the rates based on income, which again makes this a politically very hot and difficult topic.

<comment><USER10> > real time surge pricing for congested roads would be the optimal solution.

Except where people are too poor to afford surge pricing, even though they may need to travel just as much as anyone else.

Libertarianism is great right up to the point where you actually need something you can't afford, like medical care or travel to a job. Then it's pretty much a big FU because you're not profitable.

<comment><USER11> This comes up every time someone suggests pricing a scarce good (either with Pigovian taxes or privatizing a scarce resource), but it has an easy solution: [p]rebate everyone the amount of tax they would pay for poverty level consumption of the resource. That preserves all of the incentives to cut back on a marginal unit, without penalizing someone for being poor.

Facing economic realities doesn't mean keeping staying with systems that rewards the wrong thing.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> Man. As a Parisian, I don't know what to think of this. Our public transport is quite good, but there's pretty much nothing running at night, apart for Taxis, and Parisian taxis are a rip off.

France can be quite reactionary when it comes to think like this, and it's a shame. Wish they'd thought of ways to incorporate this technology and democratise the system as opposed to a good old knee-jerk.

<comment><USER13> After World War II, communists, who had been on the right side of the conflict, got enormous power. This eventually percolated in the education system, and now France is left with a few generations that have been force fed progressive propaganda from an early age.

Combine that with a more ancient bend for Jacobinism and technocracy and you have the current situation. Very powerful unions who can lock down reform, and a population who polls to the left of Cuba in terms of political opinions.

Ce pays est foutu.

<comment><USER14> If you have to choose between a conspiration of communists and jacobinists, and normal people that just disagree with you...

<comment><USER15> Communists aren't normal people?

<comment><USER14> Not that the person I replied to was treating them as such.

I'm a socialist myself so I feel sympathy for a communist, even if I don't agree with him.

<comment><USER13> Of course they are normal people, that's what makes it terrifying. Communism killed hundred of millions of people. And yes, the French communist party supported Stalinism for a _long_ time.

<comment><USER16> Communism - the utopian ideology - didn't kill hundreds of millions of people, because it has never existed. It has been used several times as a means to reach power, after which the dictator(ships) have chosen to either adopt it to his/their own liking (Stalinism, Marxist-Leninism, Trotskyism, <insert>ism) or practically abolish it as is the case with modern-day China. Fully developed communism is supposed to (alas, probably never will) be 'a stateless, classless and moneyless society, structured upon common ownership of the means of production.' [1]

That's about as far from Stalinism you can get.

[1] [http://en.wikipedia.org/wiki/Communism](http://en.wikipedia.org/wiki/Communism)

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I went to Paris the other weekend, and my first interaction with the taxis system was when some scumbag tried to gouge me 100 euro for a 6 km taxi ride). Contrast that to pulling out my phone and ordering an Uber which cost me 20 euro.

</comment><comment><USER18> > "Currently, those who use UberPop are not protected in case of an accident,"

Well,the truth is,it's up to the driver to get insured properly. Which is a huge problem,since the proper insurance cost a lot of money.Most drivers using UberPop would just be violating the law here.

At the same time,i'm pretty sure UberPop doesnt check if drivers follow all law requirements,because they wouldnt find enough drivers for the service.

<comment><USER19> Same basic family of loopholes as Airbnb and other "sharing economy" services.

Shift legal liability for regulation following to the end provider, ignore the fact that very many of your providers are almost certainly breaking laws and/or contracts (eg. leases) and hope nobody notices until you're big enough to be a difficult target.

Seems to be a pretty effective model here in the US.

<comment><USER20> Personally, this taught me that with time we all forgot what was provided by old platforms. It's a strange feeling. RyanAir for instance, provides 20$ air tickets... but you can't have more than 1 luggage, and you won't get served food, toilets aren't free, etc etc. Makes you realize that older companies prices aren't complete fluff, but we just forget what's included in their service. Until we need them.

Same for new 'disruptive' startups. You don't pay as much as a Taxi, but it's a random guy, may have insurance, may know how to drive safely, etc etc.. Seems like ensuring all this features to be stable is what drove the cost high in the first place.

Cycles.

<comment><USER21> In general I agree with your sentiment, but toilets are indeed free on ryanair flights.

<comment><USER20> Weird, I'm sure I've heard RA's boss saying they would bring down prices below 10 euros by making it optional. Maybe CEO humour :)

<comment><USER22> They say that kind of stuff because there's no such thing as bad press for Ryanair so it ends up as free brand marketing. They also "considered" lay-down or standing-only flights at one point as I remember.

<comment><USER23> Almost certainly it's regulation that's forcing them to have seats.

They keep the toilets free because they are probably smart enough to know that enough of their customers hate them that they'd piss on the aisle and the clean up costs would be too much.

<comment><USER22> > Almost certainly it's regulation that's forcing them to have seats.

Evil big government keeping disruptive businesses down again. Probably due to regulatory capture by the seat cartel...

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER24> > The Thévenoud Law would require all drivers who chauffeur paying passengers > to have a license, obtainable after 250 hours of training, and to have > appropriate insurance, just as with normal taxis.

250 hours!!! What in the world do they need that kind of training for? To operate a car? Are they doing The Knowledge like in London?

</comment><comment><USER25> Anytime a disruptive company appears which successfully provides the same or superior service to customers than the established players at a lower cost, the knee-jerk reaction is to squash it using the powers of government. We see the same reaction to Tesla across the United States (although their cars can hardly be described as "lower cost").

What upsets me is the commentary I read on Hacker News: "I don't like Uber, I personally had bad experiences with their drivers, and their cut-throat business practices rub me the wrong way. They deserve to be banned." Wtf? That's not the disruptive spirit of Silicon Valley, it's the reactionary cowardice of close-minded politicians.

<comment><USER18> > That's not the disruptive spirit of Silicon Valley

Well,disruption shouldnt mean,"the hell with the law".San Fransisco might tolerate that,but all the world isnt San Fransisco.

Nobody denies the taxi industry has issues.But in some countries this "disruptive" behavior doesnt last very long.

Other Uber services are still legal in France.They didnt outlaw Uber,just Uber services that violate french laws.

Sorry,but this whole "disrupt" thing is bullshit,especially when on the short run it's just new middlemen trying to replace the old ones.

We've seen it today in Australia,with Uber raising price x4,the challengers are no better than the old guard,it's just a power struggle.

</comment></comment><comment><USER26> One of the big issue with taxis is that this is a monopoly and a few powerful people have a lot to gain (not the drivers, obviously).

Same problem everywhere in the world right now (the opposing company being Uber or another one does not matter. if you don't like Uber it does not matter. it affects the principle itself)

</comment><comment><USER27> "Not only is it illegal to offer this service but additionally for the consumer there is a real danger," French interior ministry spokesperson Pierre-Henry Brandlet told iTELE, questioning drivers' inadequate insurance.

Many of the justification for these bans do seem to focus on the perception of inadequate insurance for the drivers. I wonder if Uber's next move will be to ask the drivers (in the markets that require it) to procure some type of commercial insurance. The catch for them is that they may not be able to do that through the company without putting themselves even more at risk in the ongoing class action lawsuit on its classification of drivers as contractors vs. employees. It will be very interesting to see how it all plays out.

<comment><USER28> Will they be able to compete on price if they do that? Commercial insurance is usually more expensive.

<comment><USER23> "Will they be able to compete on price?"

Sounds like the current low prices are the result of cutting corners and not having adequate insurance. Which makes me side against Uber here.

<comment><USER29> Yeah [http://talkingpointsmemo.com/edblog/understanding-the- econom...](http://talkingpointsmemo.com/edblog/understanding-the-economics-of- uber)

There's no economy of scale that's typical of technology companies here - <USER3> drivers are not able to buy cars cheaper in bulk, get a better deal on gas, or buy commercial insurance at much cheaper rates. Hertz or Avis have a better cost structure than Uber.

The price advantage comes from skirting the regulation on taxi medallions (only relevant for a few large markets like NYC) and skirting commercial insurance requirements.

</comment></comment></comment></comment><comment><USER30> I hate this "management by banning" approach.

I've never used UberPop so I cannot comment on its quality as a service. However because it is working, governments should take this as an indication that there's something wrong with the taxi system and the system is ripe for being disturbed by this type of ideas.

Can you blame someone for wanting to pay less for the same service (getting from A to B)? If it is the licensing system that makes the taxis expensive then it should be reviewed. Banning is lack of management.

</comment><comment><USER31> Finding a taxi in Paris at night can be an ordeal, so besides regulating the competition, what's the rationale behind banning a low-cost, on-demand alternative?

<comment><USER32> >"Currently, those who use UberPop are not protected in case of an accident," he added. "So not only is it illegal to offer the service, but for the consumer, it's a real danger."

<comment><USER33> This really confused me as the article ended with " On its French driver recruiting website, it assures applicants that they do not need any insurance beyond what is standard for their vehicles. All UberPop trips are covered by commercial liability insurance with a $5 million per accident maximum, it says, that covers any damage or injuries caused by the driver." So which is it?

</comment></comment></comment><comment><USER34> So, what's the answer? A new, much thinner set of regulations governing Uber/Lyft-style transportation? Sort of what AirBnB got in San Francisco? Surely governments should enable what is clearly a fantastically better situation for both riders and drivers.

</comment><comment><USER35> Banning products and services in demand by every day people has a long history of working out.

<comment><USER36> Banning dangerous and illegal services is fine if the providers don't clean up their act.

<comment><USER35> > _Banning dangerous and illegal services is fine_

Things that are banned are always described as "dangerous and illegal".

<comment><USER36> Not true. Many times dangerous operators are legitimately shut down for breaking the law, or hurting people. It's called regulation and justice.

Even Uber uses it on their own drivers. If the drivers get too many bad ratings they don't allow the driver to keep working for them.

Uber has gotten too many bad ratings, and France is shutting them down.

<comment><USER33> That is a very naive point of view. Governments don't work like Yelp or Hacker News or something. There are people that represent or have the support of powerful lobbies which make things change. In this case, the taxi union. The article even talks about this move being in response to threats by the taxis. "With Paris taxis threatening to create traffic chaos on Monday with a go-slow action to protest the ride-booking company, an Interior Ministry spokesman said that Uber's low-cost service, UberPop, would be prohibited in France as of Jan. 1."

</comment></comment></comment></comment></comment><comment><USER37> I think these uber wars are going to be interesting from a historical perspective. We're kinda seeing which governments are unusually protectionist and resistant to change. No surprise France, Netherlands, and Spain are on this list. Considering those countries have fairly weak to poor economic growth, one would think a bit of economic liberalisation would go a long way. That's the funny thing about protectionism, it keeps voters happy (cab lobbies, unions, etc) but it tends to kill innovation, the economy, and job growth. How do these countries expect to improve their situation? More deficit spending and EU bailouts like Greece?

How companies like Uber are treated may be a canary in a coalmine situation for hurting economies. If companies like Uber can't be allowed to compete, then who will? Who will make the new jobs and create new value?

<comment><USER38> I'm not sure that enforcing existing laws and closing loopholes that allow illegal taxi services to pretend to be ride sharing is "protectionist".

<comment><USER37> That language is a little loaded. These aren't taxis. Taxis are cars that sit and take fares from the street. They take up room, add to traffic, etc. This more like requesting a car service, which is pretty common in big cities. Taxi regulation being used to stop it is a sign of corruption, not law enforcement.

I think there are regulatory hurdles to be crossed here, but a wholesale banning of the service is extreme, short-sighted, and anti-business.

</comment></comment></comment><comment><USER39> Remember all the ad hoc US regulatory hurdles that ultimately killed the Concord rentability to protect the local incumbent. And that was not a better radiotaxi, that was flying faster than the speed of the sound.

</comment><comment><USER40> So, it's only uberpop that is banned, and one can still use uberX ?

<comment><USER41> Yes

</comment></comment><comment><USER42> "Parisian taxi associations had brought the case against Uber, accusing it of unfair competition"

"Unfair competition" is apparently the newest word for "competition."

<comment><USER43> Just as disruption is the new word for pocketing the money you would have spent on complying with the law, as profit.

</comment></comment><comment><USER44> "unfair competition" seems like a ridiculous anti-consumer reason to kill something, especially considering the expense of Paris taxis

</comment><comment><USER45> It's mostly a matter of lobbying... Public safety, assurance, etc... if it were the problem, they'd ask drivers to show their assurance card to customers, and warn customers. But if they only want to ban Uber so satisfy taxi drivers, any excuse will do.

The French press even mentions that Uber was banned in India after a driver raped a client. What's the point? FUD. Will they ban every profession with at least one raper in it?

Btw, french politicians were convicted of rape too... lol

</comment><comment><USER46> It's pretty obvious that its company v. consumer these days. Its a war throughout the world - businesses can easily corrupt public servants in all walks of life. Is there a way to eradicate corruption?</comment>


PhD in Computer Science – Economically Irresponsible? - john-wat-son I am a software engineer. I am licensed by the state, I work on critical systems, and I am always looking for ways I can learn and be better at my job to keep people safe and happy. A natural progression of self improvement for me, having worked so long in the industry, is to seek out instruction in an academic setting - which makes graduate work with the eventual goal of a doctorate in this field a very attractive option.
But I am also a man with personal responsibilities. The same skill-set that I wish to hone is the one that is netting me six figures of salary each year.
Why, then, would I sacrifice years of wages to gain training and a title that would likely never yield a financial return close to what was lost during that time?
I cannot imagine I am the only person with this dilemma, so I would like to hear others opinions on this problem.
Shall I spread the instruction over the next decade, and hope that nothing in my professional or personal life interrupts it? Or just bite the bullet and dedicate myself to my own education - wealth and responsibilities be damned? <comment><AUTHOR> Depends on what your motivation is. If your goal is to maximize your job prospects or financial outcome, it's probably not a good idea unless you are interested in going into academia or research.

If you want to spend a few years of your life immersed in an environment with smart people working on interesting problems, go for it.

Getting a PhD in Computer Science was a great experience for me, but it's not for everyone.</comment>


Ask HN: Can some one edit my post's title in HN? - <AUTHOR> <comment><USER2> I believe the mods can, yeah.

</comment><comment><USER3> email email@example.com</comment>


Build your own PCR machine - <AUTHOR> http://openpcr.org/

<comment><USER2> This system does precise temperature control (heating and cooling) of the reaction vessel, which is filled with your sample DNA and the right enzymes.

There are other systems which benefit from precise temperature control: make chocolates (getting the right consistency depends on following the right temp curve), sous-vide cooking, SMD soldering ovens, there emerges a need for generalized PID (proportional-integral-derivative) temp controllers. But hey, one's just emerged! [http://brettbeauregard.com/blog/2012/01/introducing-the- ospi...](http://brettbeauregard.com/blog/2012/01/introducing-the-ospid/)

</comment><comment><USER3> I wasn't aware what a PCR machine does and the website assumes you already know! PCR is a technique that allows scientists to create a vast quantity of a specific sequence of DNA (via [http://answers.yahoo.com/question/index?qid=20091226132510AA...](http://answers.yahoo.com/question/index?qid=20091226132510AA7WDvN)).

<comment><AUTHOR> They have a nice interactive Flash demo which explains what PCR is and how to use the machine: <http://openpcr.org/use-it/>.

</comment></comment><comment><USER4> Funny anecdote: the original PCR experiments were done with water baths at various temperatures. They manually moved the DNA samples from the boiling water (denaturation), to hot water (55-ish degrees, annealing) to hotter water (elongation, 70ish) and then back to the boiling water for another round of amplification.</comment>


Standard Screen Patterns - <AUTHOR> http://designingwebinterfaces.com/designing-web-interfaces-12-screen-patterns/

<comment><USER2> This is pretty basic, I wouldn't call this "immensely useful".

Have a look at <http://ui-patterns.com/> instead if you want a bit more meat.

<comment><USER3> ditto

<http://www.patternry.com/>

and (more design oriented)

<http://patterntap.com/>

</comment></comment><comment><USER4> Looks nice, but I'd also say this: don't try to fit everything into one screen. Scrolling and blog-style layouts are your friends.</comment>


Haskell: Not pure enough? - <AUTHOR> http://blog.ezyang.com/2011/05/haskell-not-pure-enough/

<comment><USER2> Engineering school: The costs and benefits for each problem must be analyzed and decided on a per-case basis.

The cost of bring full, absolute perfection are absolutely staggering. One of the biggest ones that is easy to miss is that you rigidly limit yourself to current implementations; consider the case of writing your perfect specification in 1998, then spending a lot of time right now wishing a metaphorical half your 64-bit machine wasn't sitting there idle. The benefits of this absolute purity vs. what we already have right now? Pretty small next to the costs. But that's just one example.

Besides, fixing some of those all but requires a new hardware and OS platform. Floating point is intrinsically nasty from a mathematical point of view, but as long as it is what the hardware supports, it's going to have to be in your language, for instance, unless you just want to give up on numerical performance. Some of the os module nastiness is hard to actually kill without going not merely the full-on JVM-as-OS route but _beyond_ , as even the JVM exposes some OS differences.

But I am serious about the case-by-case thing. There may be some things that are wrong and are worth being fixed. My previous paragraphs dismissed the idea of fixing the totality of the problem but that doesn't mean any given thing may not be an improvement.

<comment><USER3> If your algorithm works on both 32-bit and 64-bit integers, then you can parameterize it:

        safeAdd :: (SmallInt i) => i -> i -> Maybe i
        safeAdd x y = if (maxBound - x) > y then Just (x + y) else Nothing

`maxBound` would be a member of the `SmallInt` typeclass, with different values for `Int32, `Int64`, `Int23`, etc.

<comment><USER4> Bounded is the typeclass you want.

<comment><USER3> Ah, right. I don't actually do much numerically sensitive programming.

Why aren't Haskell's SmallInt functions parameterized over Int size, anyway? Of the points brought up in the blog post, this one seems the easiest to fix.

<comment><USER2> There's a lot of quirky things in the older parts of Haskell that the community would do differently today if it was as simple as pushing a button. Reverse compatibility is a concern.

<comment><USER5> For example Haskell's monad aren't functors.

</comment></comment></comment></comment></comment></comment><comment><USER6> None of these are examples of lack of purity. Maybe they are examples of lack of portability. But not of lack of purity.

Purity means that the result of an expression is the same while the program is running. These calculations may differ if run on different computers or sometimes even if run at different times on the same computer, but once you run them you can be reasonably sure that they return the same result while the program is running.

<comment><USER7> One of the things I want out of pure programs is reproducibility. If a pure fragment of code doesn't give the same result over multiple executions, that's not very reproducible. Maybe that's OK, but it does make my ears twitch.

</comment></comment><comment><USER8> My take away was essentially: "if you try, you can write non-portable haskell code". I don't really get the significance.

<comment><USER9> One of the intentions of Haskell is to provide certain guarantees about whatever pure code is compiled. These guarantees are important for some applications (especially concurrency and distributed parallelism). If these guarantees are lies, then there can be a problem.

None of the examples are massively series, but hopefully it should prove the point that this topic matters.

<comment><USER9> Can't believe I wrote "series" instead of serious. :|

</comment></comment></comment><comment><USER10> Many of these criticisms seem to be compiler specific rather than language specific (perhaps with the exception of the os example).

* I like knowing explicitly what kind of integers I'm working with and plan on using the full 32 or 64 bits available to me.

* IEEE floating point issues will be around forever. If you want something more precise, store the numerator and denominator, or factorization.

* foldr doesn't have to be implemented recursively.

<comment><USER11> The IEEE problems are actually specific to x87 and the fact that x87 has extended precision in registers and single/double precision in memory. So your result can depend on whether the compiler spilled intermediate calculations to memory or kept them in registers. Luckily SSE doesn't have this issue. You get single or double precision consistently.

IEEE actually gives a consistent functional specification for arithmetic that fits purely functional programming pretty well.

</comment></comment><comment><USER12> When you subscribe to some ideology that can be described by a simple word, it is easy to dismiss all problems encountered while exercising that ideology by saying that "you are not being X enough", whether X is socialist, capitalist, vegan, carnivore, functional, object-oriented, static, dynamic, free, proprietary or whatever.

I used to program in Haskell for fun and school and I liked it. I find it very well thought out language. I may very well come back to programming in Haskell when I encounter a suitable project.

But there is a tendency among Haskeller's to get too caught up in praising purity and laziness, while ignoring the nice practical aspects of the language that could enable it to rise to be an even greater language.

I'm not saying that author is guilty of this, this is just a general observation. And I must admit that I'm not quite up to date of what's up with Haskell. My point is that Haskell is great for reasons other than purity and laziness, too.

<comment><USER9> That isn't true. There is an important justification for purity in Haskell. It increases the correctness of programs. There are plenty of important ideas that use only a single word, and the fact that they use a single word doesn't say anything good or bad about them.

<comment><USER13> That isn't true. There is an important justification for State control in Communism. It increases the fairness of societies. There are plenty of important ideas that use Communism to achieve their ends, and the fact that they use Communism doesn't say anything good or bad about them.</comment></comment></comment>


Ask HN: How often at work do you use what you've been tested on in interviews? - <AUTHOR> <comment><USER2> Almost never. I've never in my professional career had to invert a binary tree or write a sorting algorithm from scratch or reinvent a queue data structure. I've never had to build a Minesweeper clone or generate a maze. Any time I go into interviews and they ask me to do these kinds of tasks, I mentally roll my eyes and my excitement about the role drops.

I once interviewed at CrunchyRoll a couple of years ago, and every single interviewer asked me to implement some flavor of a tree traversal algorithm. The final guy mixed it up by asking me to solve the Knapsack Problem. At the end of the day, I said to the interviewer, "You must traverse trees a lot, then" and he looked at me like I was crazy and said "No, never."

Being a Netflix for anime company, I'm willing to bet they don't fill boxes/knapsacks with products, either.

Ok, so then WTF am I doing here?

</comment><comment><USER3> It depends on which part of an interview you are talking about. Big O notation has never been talked about in my daily work, but you absolutely need to make your code perform well when you write it. I've never had to specifically traverse a binary tree, but I absolutely need to be able to process data in a single pass, and I constantly am iterating through something or another.

So if you think you are being tested on being able to recite CS algorithms, the answer is "almost never". But if you think you are being tested on, "Can you solve a problem with code, and make it perform well?", the answer is "Every day."

</comment><comment><USER4> Very often, but I think it depends on what you think you've been tested on. Often, the test is somewhat different than it may appear.

For instance, you may be asked to write a short program to solve some example problem. That problem may be entirely unrelated to the sort of work you'll do in the position, but the point of the exercise isn't to find out if you know how to solve that particular problem, it's to get an insight into your approach to problem-solving and development more generally.

</comment><comment><USER5> Not often.

Worse still, the stuff I'm "tested" on in interviews is often unrelated to the job spec.

And of course, the job spec is often not very well aligned with the real job spec (what one actually does every day).

</comment><comment><USER6> A bit sideways from topic but; I got grilled by the head of the Euro fighter project (Ford management) on the importance of using arrays for everything. Don't do 'int a;' always create an array. I was dismissed half way through for not agreeing.

<comment><USER7> What was the argument for always creating an array?

<comment><USER8> The point of the question, I imagine (and am giving the interviewer the benefit of the doubt), was to see how the candidate negotiated technical compromises. Merely disagreeing without exploring the reasoning behind it and perhaps finding a different solution together might be a red flag for that environment.

<comment><USER6> The guys who were originally going to do the interview were in the room. Squirming. I asked if his background was APL (you know array based stuff) and was told that APL, and I shit you not, 'was not A Programming Language'.

</comment></comment></comment></comment><comment><USER9> I mean it depends. I was tested for Python and SQL and yeah I use both all the time. Now, the specific Python questions of course not. They were just stupid riddles.</comment>


Ted Talk Review Why people believe weird things - <AUTHOR> http://www.ctsciencenut.com/2017/03/ted-talk-review-michael-shermer-why.html <comment><USER2> The human species is just not build for logic. The process seems to be:

1\. Search for a heuristic

2\. Glue Logic Bits to the found heuristic

3\. Generate a coherent backstory for heuristic

4\. Query parts of the Backstory to check the heuristic.

5\. If Part of the Backstory fall apart, reconstruct

6\. If reconstruction fails, have a crisis.

7\. If crisis continues, start to think it through for the first time or

8\. Solve by discrediting facts (aka believes)

Its very efficient. The only time, its not completely efficient is during youth, as this is the time, one has to carve out a thiefdom for oneself. Also a slight trait of intellectual sado machismo helps.

I think to get normal people to think and question believes, education as proposed is a rather lousy tool, applied often too late. If you are tempted to question "everything" at 21, that phase of your life is almost over.

Kindergarten age and first years at school, should be ideal- basically teachers should weave in wrong "days" where they would tell falsehoods, and reward those discovering and questioning.

</comment><comment><USER3> It's more than just measuring outcomes. There's also a very strong belief among the scientifically minded that there should be a valid causal chain between one event and another. Astrology, even if it succeeded, would fail this test because there is no causal chain acceptable to science that explains why astrology was correct.

Another test that must be met (and which many conspiracy theories fail miserably at) is the implication test: e.g., if that is true, then what else could be true? For example, if you believe Bush engineered 9/11, then surely he could have planted WMD evidence in Iraq (a far simpler conspiracy!) We never found WMD in Iraq, planted or otherwise, so the idea that Bush did anything special around 9/11 is just silly.

One conspiracy which I think is particularly potent is the moon landing deniers. This conspiracy is tough to argue against because ultimately it really is unlikely that humans ever made it to the moon, and only a very few people were actually involved, and indirect video evidence is indeed capable of being faked. The best reason I can think of to argue against this is that far too many people would have had to be in on it for it to work, but really that's not very satisfying.

(Next moon landing I hope the mission lays down an enormous silver blanket that can be seen by amateur astronomers and ordinary people are encouraged to come out and look through a 'scope for themselves!)

<comment><USER4> > Next moon landing I hope the mission lays down an enormous silver blanket > that can be seen by amateur astronomers and ordinary people are encouraged > to come out and look through a 'scope for themselves!

There are reflectors on the moon people can (or could?) point lasers towards: [https://en.wikipedia.org/wiki/List_of_retroreflectors_on_the...](https://en.wikipedia.org/wiki/List_of_retroreflectors_on_the_Moon)

<comment><USER5> I am not very informed on this but what would you say to this? There is people claiming moon is naturally reflective, and that there were successful reflection experiments before moon landing.

National Geographic Vol. 130 No. 6 December 1966 'The Lasers Bright Magic' by Thomas Meloy Page 876 "Four years ago (1962) a ruby laser considerably smaller than those now available, shot a series of pulses at the Moon, 240,000 miles away. The beams illuminated a spot less than two miles in diameter, and were reflected back to Earth with enough strength to be measured by ultra sensitive electronic equipment."

</comment></comment></comment><comment><USER6> this is a low-quality submission of a site that was created just a month ago and filled with affiliate links.

</comment><comment><USER7> I have a cousin who participates in this willing cognitive bias (really crazy ideas like flat Earth theory). Of course he only cherry picks from the unfounded conspiracy bucket that suits his chosen political view and what he wants to be true. Nothing rooted in any evidence review or similar approach.

</comment><comment><USER8> Go science?

Science has become such a cult.

<comment><USER9> I can't tell if this comment is serious or not but I find it odd that people who know fuck all about science go around bashing people over the head with it.

<comment><USER10> I think it's a serious comment lamenting the rise of "scientism" which is a dogmatic belief in the supremacy of rationalism and materialism.

it's possible to be very opposed to scientism while also being very supportive of good science.

<comment><USER11> What's the alternative to rationalism and materialism? How can good science be practiced without rational reasoning and physical (i.e. material) evidence?

<comment><USER10> you missed something important

> dogmatic belief in the _supremacy_ of rationalism and materialism

good science absolutely must take a rationalist and materialist view. however, the needs of good science are not necessarily the supreme values which to make any and all decisions.

<comment><USER12> What else do you base decisions on?

<comment><USER13> Lots of things! Because I'm not actually a practicing researcher. And the set of practicing researchers I've known is, perhaps not so oddly, disjoint with the set of dogmatic scientific positivists I've known. No one has a better grasp of the vast difference between ideal science and real science than someone who actually does science for a living.

<comment><USER12> Can you name some of those lots of things?</comment></comment></comment></comment></comment></comment></comment></comment>


Levy: Gone, Without a Trace  - <AUTHOR> http://www.newsweek.com/id/120052 <comment><USER2> This article was rather pointless...

</comment><comment><USER3> Reminds me of one of my favorite bash.org quotes:

"<erno> hm. I've lost a machine.. literally _lost_. it responds to ping, it works completely, I just can't figure out where in my apartment it is."

I'm sure as machines become smaller, such events will become more frequent. . . . That is, of course, right up until we start implanting our machines directly in our brains.

<comment><USER4> I've had that happen dozens of times in my years as a sysadmin. Servers in development shops, in particular, have a habit of hiding in strange places. I once found that a regular office that hadn't been in use for about a year, and the whole team that had worked in it had long since left the company, housed a server (really just a desktop that was used as a dev server, and then became the production server when they finished developing the application) that was running one of the companies customers website and database. No one knew where it was, but it was still working so nobody had gone looking for it. It only found its way into the server room when the whole company move to another location.

It's worse when it comes to figuring out which Windows workstation is infected with a virus (they're easy to see at the gateway box, if it's a machine that can run ethereal or tcpdump). I would just unplug the fastest flashing port on the network switch and yell out, "Alright, who can't connect to the Internet?" Whoever spoke up was sitting in front of the infected host.

<comment><USER3> We had a (passingly) similar situation at my office recently: a line of boxes that had been humming along happily for as long as I've been at the company. Someone (certainly not _me_ , oh heavens no) needed a network connection and asked around "is this box hosting anyone's project"? Getting nos all around, I (er, I mean, someone) snagged that box's cable.

Turns out it wasn't hosting anyone's project, but it WAS acting as the gateway into our network that my boss used on a daily basis.

</comment></comment></comment><comment><USER5> > Unlike the often-misplaced cell phone, it can't be called so you can locate > it by ring

Am I the only one here who would just SSH into their computer and play a sound file? It _does_ have wireless... although it might be asleep.

<comment><USER4> It's a bitch to enable SSH connections on the Mac. At least, I found it so on my girlfriend's Macbook.

And, of course, if the machine is off, as a laptop that is lost is very likely to be, ssh won't answer even if you do have it enabled and accepting connections.

</comment></comment><comment><USER6> Apple fanboy embarasses himself. Film at 11.

</comment><comment><USER7> I couldn't get read past the author's picture. Impossible to take him seriously. He's like a self caricature.

<comment><USER8> Actually he's the most hacker-like journalist I've met. So it's just as well you can't see the people on this site, or you'd have the same problem with most of them.

<comment><USER7> I don't mind what he looks like in real life. But it's just silly to _actively try_ to look like a stereotype in a professional photo. As a counter-example, look at his website. He looks nerdy but in a totally normal way. He'd be better off with the photo from his webpage on the article because the context sets off the oddness. My 2 cents.</comment></comment></comment>


NewsBlur (YC S12) launches iPad app, aims to compete with Google Reader - <AUTHOR> http://venturebeat.com/2012/09/05/newsblur-ipad/

<comment><USER2> The social and intelligence aspect of Newsblur may well attract readers. I think that's an interesting concept.

However,I anticipate some bloggers and newspapers will react negatively to NewsBlur's practice of copying the full html of front pages and making those copies readily available at a Newsblur hosted site. (Example: <http://newsblur.com/reader/page/1100897>. I've archived the current Newsblur copy at <http://www.webcitation.org/6ASIXkYIy> .)

I also suspect that some bloggers and content providers will be annoyed when they discover their content framed and will return to the practice of javascript framebusting. Apparently ScienceBlogs has initiated framebusting: See [https://getsatisfaction.com/newsblur/topics/story_view_takes...](https://getsatisfaction.com/newsblur/topics/story_view_takes_me_offsite). I suspect other large blogging networks and news agencies will begin to do so as well.

Luckily, it's simple enough for content providers to write javascript framebusters that break ordinary frames (used in Newsblur's "story" view) and also redirect when someone displays an unauthorized copy of the full html of their content (used in the "original" view).

<comment><AUTHOR> Actually, it's considerably simpler than that. If you let me know, I will gladly remove the site from the Original view. Alternatively, for sites that employ iframe busters, NewsBlur adheres to their intention and disables the original view for that site. NYTimes, Twitter, and StackOverflow all do this.

<comment><USER2> Jason, First: In mid-August, I discovered my site was being copied. I communicated with Newsblur by email requesting that my original and story views be removed. I then repeated my request on twitter and was told that it had been removed. I replied that it still displayed. It continues to display.

So, my site is supposedly already "removed". Nevertheless, if I visit <http://www.newsblur.com/site/1100897/> both the story and the original still display if I click around. I'll be more than happy to take screenshots for you. Also, I can report the Newsblur bot continues to return to my site to make fresh copies or the front page. Clearly, if it is not the intention of Newsblur to display fresh copies, these return visits should be a pointless waste of time for a bot.

Clearly, it is not particularly simple to get Newsblur to displaying fresh copies of pages on the web.

But let us suppose it was a simple as you suggest.

I would suggest that the practice of assuming that all content is open-domain is a risky one for Newsblur. Copyright law has potentially heavy fines for unauthorized copying. Newsblur would be wise to reconsider the notion that it is sufficient for content providers to watch diligently for unauthorized copies and follow up by hunting down Newsblurs email so they can "opt-oubllby Newsblur thinks they can advance some fair-use argument why they can simply copy 100% of front pages of blogs. I don't know what that might be-- but since I can prevent display using javascript I'm content to not pursue that issue.

I would suggest that no matter what a judge might decide in a copyright dispute, if Newsblur is going to send out a bot to make copies, rather than suggesting content providers email them with requests to not-archive, they ought to visit robots.txt, obey it, and failing that obey no-archive directives included on web pages. To do otherwise is-- to put it mildly-- impolite.

I might also add that while Newsblur might prefer content creators to communicate with them to have their 'original' views removed from Newsblur, content creators might find it simpler or preferable to drop in javascript. Dropping in the javascript would suffice to break your Newsblur frames and the frames of other as-yet- undiscovered entities who have decided they wish to frame content and/or copy and then frame the copies.

I'm sure no content provider would object if Newsblur detects this framebreaking so it doesn't spoil the Newsblur experience. But based on my visits to <http://www.newsblur.com/site/1100897/> it seems Newsblur does not auto-detect framebreaking.

</comment></comment></comment><comment><AUTHOR> This is a big release and I couldn't be happier with how it turned out. That said, the next big launch coming up will involve a design refresh for both web and mobile. I'm meeting with our designers later today and hope to ship the best looking, most intuitive news reader within the next couple months.

Here's the iPad app splash page: <http://www.newsblur.com/ipad>

And here's the source code to the iPad app: <http://github.com/samuelclay>

<comment><USER3> The iPad app looks great! Any word on when the Android client will ship?

<comment><AUTHOR> Here's the code for the Android app: <https://github.com/samuelclay/NewsBlur/commits/android>. Based on the latest nightlies, we're looking at somewhere in the next couple weeks. Very, very excited, since Android is a very underserved platform in news reading.

<comment><USER4> Amen. Like a few other first-party Google apps, Reader is atrocious.

It's very easy to have it load with very stale data and have the "refresh" button literally do nothing. Then you have to [back] to the main page, then click "All Items" then press refresh.

How does a bug like that stay active for years? Anyway, I've used NewsBlur for a while, excited to get it on Android.

</comment></comment></comment></comment><comment><USER5> Wow Sam great to see the traction you've been getting on this. Congrats.

</comment><comment><USER6> You guys should have worked on a better design before getting press and officially launching. In the left sidebar there is just too much happening. After clicking on a source in the left, there is a new box on the bottom that pops up to further clutter and confuse.

I don't see why I would use this over something like Feedly?

When you get that redesign up, let us know.

<comment><AUTHOR> As I always like to say in response to our design flaws, "Hey, at least we shipped!" And it's true, what you see is a solid foundation. We're going to be giving it the full makeover soon. The only way we know that it'll be worth it is if we tested our hypothesis that there really is a good market for a news reader in this style.

<comment><USER7> The design doesn't feel perfect, but that hasn't stopped the iPad app from being my new morning and evening go-to news source. Great work on shipping, and it's pretty amazing that there's so much progress on all three platforms simultaneously.</comment></comment></comment>


FCC chairman revises fast-lane option in net neutrality - <AUTHOR> http://www.usatoday.com/story/money/business/2014/05/12/internet-fast-lane-revision/8994875/

<comment><USER2> Revises but still tries to slip in a fast lane. Oh, but he is going to check to make sure everyone behaves.

Sounds like common carrier is the right answer. As the article mentions, it lowers the cost of policing and regulation.</comment>


"Smart and Gets Things Done" is necessary, but not sufficient - <AUTHOR> https://github.com/raganwald/homoiconic/blob/master/2011/12/smart-and-gets-things-done-is-necessary-but-not-sufficient.md#smart-and-gets-things-done-is-necessary-but-not-sufficient <comment><USER2> I pretty much agree, but I'd like to point out that, as a field, programming emphasizes the importance of "Smart and Gets Things Done" more than pretty much any other field does.

I've been interviewing lately, both at hardware and software companies. At microprocessor startups, I ask about the pedigree (past experience, not educational credentials) of pretty much everyone I meet. I don't do that at software companies. The reason is, you pretty much never hear about a new team successfully making a high-performance microprocessor. Apple bought PA Semi, which had a moderately successful exit, but PA Semi was basically the SiByte team, which left after SiByte was acquired by Broadcom, and SiByte was composed of key people from DEC who had been working together for over a decade. When you hear about a new team where most of the people are smart new grads, they usually spend ~ $100M over five or six years years, find that they don't have a competitive product (or, more likely, don't even have anything that's close to working). If they have funding left to burn they may pivot a couple times over the course of a couple years before they burn through their cash and implode.

And that's despite microprocessor design being close to pure reason, in the grand scheme of things. Experience and wisdom matter a lot more in most endeavors. Something you see a lot, even here on HN, when non- CS/programming/engineering topics make it to the front page, are people who try to extrapolate from a few "obvious" facts and then come up with a conclusion that's completely and totally wrong.

In software, you hear about successful companies founded by people just out of school, or even people who have dropped out of school, all the time. "Smart and Gets Things Done" can be good enough to make a decent product. But, something you'd never want to hear from a plumber or a carpenter is "well, I've read some books on the topic, and tried out some tools at home depot, plus I'm smart and good at hacking".

Things like carpentry, manufacturing, etc. are hard. They're done so well here (in developed countries) that it's easy to forget an idea of how hard they really are. If you want to get an idea of how hard they are to learn from scratch, consider South Korea after WII. Its GDP per capita was lower than Ghana, Kenya, and just barely above the Congo[1]. For various reasons, the new regime didn't have much baggage, and they wanted Korea to become a first-world nation. The story I've heard is that the government started by subsidizing concrete. After many years making concrete, they wanted to move up the manufacturing chain and start making ships (among other things). They pulled some of their best people who had experience in business (having learned skills like management, operations, etc.) from working in concrete to try to build ships. They knew they didn't have the expertise to do it themselves, so they contracted out the plans and got detailed instructions how to build ships. They got plans from Scotland, because Scotland has a long history of shipbuilding. Makes sense, right? But, when the Koreans tried to build ships with Scottish plans and detailed step-by-step directions, the result was two ship halves that didn't quite fit together and sunk when assembled. For historical and geographic reasons, Scotland's shipyards weren't full-sized, and they built their ships in two halves and then assembled them. Worked fine for them, because they'd be doing it at scale since the 1800s, and had world renowned expertise by the 1900s[2]. The Koreans eventually managed to start a shipbuilding industry by hiring foreign companies to come and, build ships locally, and show people how it's done. It took decades to what we would consider basic manufacturing working smoothly, even though all of the requisite knowledge existed in books, was taught in university courses, and could be had from experts for a small fee. "Smart and Gets Things Done" goes so much further in programming than it does in virtually any other non- academic field.

Today, anyone with a CS 101 background can take Geoffrey Hinton's course on neural networks and deep learning[3] and start applying state of the art machine learning techniques[4] to research grade problems within a couple months. But, if you want to build a ship, and you "only" have a decade of experience with carpentry, milling, metalworking, etc., well, good luck. You're going to need it.

[1] [http://www.nationmaster.com/graph/eco_gdp_per_cap_in_195-eco...](http://www.nationmaster.com/graph/eco_gdp_per_cap_in_195-economy- gdp-per-capita-1950)

[2] In 1913, 20% of the world's ships were built at Clyde.

[3] <https://www.coursera.org/course/neuralnets>

[4] About 1/3rd of the way through the course, he talks about a new technique that was published after the course actually started. The future of education is going to be awesome.

<comment><USER3> I would like to point out that software comes in different flavors of complexity, for example kernel programming that requires the extensive experience you speak off.

I think it's more about the technical difficulty of the project you undertake rather than its form (software or hardware).

Many startups are technically very simple.

<comment><USER4> Kernel programming isn't some mystical art, you can just hack on it and see what happens like anything else. It takes more work to get any particular thing done and it's harder to debug, but I wouldn't discourage someone from making a startup just because it required kernel development and they didn't know anything about it.

<comment><USER5> I've only written a simple LKM to patch the interrupt descriptor table and patched the kernel pool memory allocator on the true operating system of the proletariat (That is to say Plan9) but I think I can safely say that you don't just hack on it and see what happens.

The knowledge required to write device drivers or understand and manipulate kernel behavior is totally distinct from what is typically taught in Computer Architecture/Computer Science and Software Engineering, a massive amount of knowledge is required that I could see no way to acquire short of trying to build your way up designing/reading kernels of greater complexity or being interested in some field where consecutively deeper levels of knowledge are an exponentially more profitable use of your time such as information security.

The documentation on ALL modern kernel's current implementation details is sparse (yes, even Linux) and the knowledge is assumed which gives some truth to the statement "You just hack on it" in the sense that there's no way to learn it save actually doing it. In truth however, to really get anywhere you MUST know x86 (Or whatever architecture you are developing for, additionally, if you think this will be easy because you coded MIPS or SPARC in school, be prepared to feel dumb), you MUST know deep C and a slew of other topics that the typical CS education leaves you remarkably ill-equipped to even get started.

</comment></comment></comment></comment><comment><USER6> To be honest, I didn't think there was much of an argument or a point here. The conclusion that "there's no substitute for experience" doesn't follow from the rest of the article, and most of the rest of the conclusion falls into "getting things done" anyway.

You were able to think of an edge case for language feature that neither of your friends had considered. Awesome. Smart. Realising that upfront is the kind of skill that saves you hundreds (anecdotally) of hours of debugging because you solve it in the design phase.

Saying "smart interferes with gets things done" is exactly what Joel was saying when he tacked on "and gets things done" - so you can't really use that to argue he left something out.

 _They would rather mull over something academic about a problem rather than ship on time. These kind of people can be identified because they love to point out the theoretical similarity between two widely divergent concepts. For example, they will say "Spreadsheets are really just a special case of programming language" and then go off for a week and write a thrilling, brilliant white paper about the theoretical computational linguistic attributes of a spreadsheet as a programming language. Smart, but not useful._

<http://www.joelonsoftware.com/articles/fog0000000073.html>

<comment><AUTHOR> This is an interesting reply, thanks. I possibly didn't explain this well. My reasoning didn't actually help, unfortunately, because I convinced my self that a proc MUST behave like a lambda with respect to "return" semantics.

So had I been left to my own devices, I might have written some Ruby code that assumed it was perfectly safe to return a proc from a method. This is a real danger for me, as I like programming with combinators. And I would have been bitten by my mistaken beliefs.

The only thing I'll say in my own defence is that having made this mistake many times, I had the good sense to check how things actually worked when I got home. I used to know, I'd forgotten, and now I know again.

I don't know if that's "getting things done." It may be spinning wheels. Perhaps someone "getting things done" never wastes any time worrying about the difference because they never bother to wonder what happens when you return a proc from a method.

They simply avoid the problem in the first place, so not knowing is irrelevant.

<comment><USER6> _I had the good sense to check how things actually worked when I got home_

Sounds like you fit both the criteria for "Smart and get things done".

 _I like programming with combinators_ -> _They simply avoid the problem in the first place, so not knowing is irrelevant._

I think that a general awareness of the tools available to you is extremely useful. Specific knowledge isn't unless you're using them. Given that your friends "read about it today", I assume they don't often make use of this particular language feature - in which case it's fine not to know. In your case, not knowing was dangerous, and when you realised the limitations of your knowledge (unknown unknowns and all that), you corrected it.

My point is that I think all of this is covered in Joel's original essay, so your title isn't really justified.

Finally, I think there's a good essay to be written with a similar title, where you explore the point that "sometimes you need an expert". luu touches on this wrt hardware engineers: <http://news.ycombinator.com/item?id=4882560>

<comment><AUTHOR> I think all of this is (actually|also) covered in _another_ of Joel's essays, "Lord Palmerston on Programming:" <http://www.joelonsoftware.com/articles/LordPalmerston.html>

</comment></comment></comment></comment><comment><USER7> Steve Yegge wrote a great piece on the subject:

[http://steve-yegge.blogspot.ca/2008/06/done-and-gets- things-...](http://steve-yegge.blogspot.ca/2008/06/done-and-gets-things- smart.html?m=1)

</comment><comment><USER8> I'd say your argument was convincing, but you forgot that Ruby's language design is full of sharp edges where features were forced together in poorly thought out ways. For example, I yesterday learned that you can't determine the order of invocation when chaining super through multiple mixins that override the same method of a class. It's as though the designers thought that saying "we don't do multiple inheritance, just mixins" relieved them of actually having to define their semantics properly.

So it's not that your reasoning was wrong. It's that your conclusion was. The right conclusion was, "What the hell were those amateurs thinking? That's idiotic!"

I'm going to go fondle my ALGOL 60 report now...

<comment><USER9> Is there an Algol compiler for Linux these days? Brief poking reveals there's an Algol68 out there for Ubuntu.

</comment></comment><comment><USER10> Hmm, this lead me down a different path of thinking. This is exactly why the rough edges in language design like the proc/lambda differences in ruby impose a considerable cost on the community as a whole when you add it all up.

As I get more experience I appreciate the benefits of languages that try very hard to minimize cases like this, as well as how difficult that is and the trade-offs that must be made.

It's hard to encourage flow type states of high productivity when your mental model of execution either keeps disagreeing with reality or is so full of previously discovered edge cases that it's too complicated to do useful simulations of code in your head.

</comment><comment><USER11> I think this conflates "smart" in the sense of "raw ability to reason" with "smart" in the sense of "knows the intricacies of how things work". Or, as my uncles might have said, "book learnin' versus real knowin'".

In fact, even in the example given with respect to Ruby procs and lambdas and returns and whatnot, clearly the author hadn't "gotten things done" in that area (by his own admission, this isn't snark).

So to me, the real point is that thinking you've worked everything out from first principles doesn't mean you actually understand all the implications of the interactions in a complex system. That's the mistake I made as a young man, certainly, and it took me years of learning the hard way that I wasn't always right.

Also: there's _always_ a relevant XKCD. <http://xkcd.com/793/>

<comment><AUTHOR> "smart" and "gets things done" are sufficiently vague that they can mean whatever you want. If I say "So-and-so is smart, however X," the reply can always be "Well, if X then so-and-so isn't truly smart" in the No True Scotsman sense.

This is why I tried (perhaps poorly) to be specific and talk about smart in the sense of mathematics.

<comment><USER12> I think in the instance you described you were and weren't being smart in the sense of a True Smart Scotsman.

Mathematic smarts isn't always enough to know how something really works. But I still think you were smart enough to realize you might be wrong and to double check how it really works.

Also, you have the GTD mindset to accept how Proc works and try to learn from the experience instead of obsessing about how Proc is broken and ruby sucks.

</comment></comment></comment><comment><USER13> _We pondered this for a while and the conversation meandered elsewhere, no doubt because my companions were embarrassed on my behalf. I had committed one of the basic errors of inexperience with the state of programming: Assuming that you're smart and you can work things out from first principles._

I used to have this problem. Not the "problem" of assuming you're smart. I mean the problem of assuming that if someone moves the conversation away or disagrees with me, it must be because of something I'd done. Psychologists call this "intrapunitive behavior".

Here's what I would posit happened: you said something intelligent that your companions had no way of countering. Thus, you showed them up and rather than fess up to it, they decided to change the subject.

<comment><AUTHOR> Thanks for the support, but that was a literary device.

<comment><USER13> Then I suppose I'm saying that I support you, but not your literary devices. :-)

</comment></comment></comment><comment><USER14> I feel like this post might be talking about the arrogance/humility axis, which is important but orthogonal to both dumb/smart and lazy/gets-it-done (depending, I suppose, on how you define those things).

Humility is necessary to say "yes, I'm smart, but there are the limits of that intelligence." Any smart person can learn enough C++ to get things done if they know Java, but it takes humility to say "I will learn C++ idiomatically and approach it on its own terms, rather than coding up Java paradigms with C++ keywords and libraries".

</comment><comment><USER15> This is especially true and contradicts the generally accepted opinion repeatedly expressed around here, that knowing about programming in general is enough to be an expert in any technology in a short amount of time. The reasoning then goes that when hiring, one shouldn't rule out seasoned developers that have no experience in the technologies in actual use. This is an arrogant recipe for pain for the whole team. The myriad combination of interfaces between tools/stacks/technologies cannot be understood expertly in any small amount of time.

I suffered at a polyglot consultancy that shifted people around rapidly between stacks and technologies due to overconfidence in this belief; it is very painful for any programmer with a sense of craft and client stewardship. Of course, if all you care about is banging out a piece of garbage that will hold up until the checks clear, then I guess this doesn't matter.

</comment><comment><USER16> You want _second-order_ smart. Not just experienced in the technologies you happen to use (as OP alleges), and not just generally quick learning (first- order smart). You want introspective and seasoned second-order learners: people who've learned how to learn, even under adverse circumstances, how to figure out what's worth learning, and how to tell when you've learned enough that the right next step is to start _doing_.

One of the most useful things I've gotten out of my machine learning study and work on MOOCs is second-order learning. I've learned a lot about how I learn, especially under the added and somewhat artificial difficulty of having a full-time job. Very valuable second-order insights.

"Gets things done" is ridiculous. It's a good size-up for very junior level developers, but beyond that... you want "does the right thing". The idea that there's a large number of perfectionists or lazy people who are constitutionally incapable of "delivering" is nonsense. When to stop perfecting and optimizing is one of many important skills, but not a hard one to learn.

So... let's make it, _second-order smart and does the right thing._

<comment><USER17> As someone who has taken engineering courses and holds a BS in applied physics and a minor in math, while working as a developer (for physics experiments), I'd have to say that physics, more than any other major, teaches you how to learn. In reality, the main reason a BS in Physics even exists is to teach you how to learn so you're prepared when you get to graduate school to work on new problems people haven't had to face before.

The unfortunate thing is that corporate american tends to highly undervalue the BS in Physics. While I graduated at the worst time possible time (2008/2009), it took me over a year and a half to find a "real" job. No, I didn't have two + years experience in developing with .Net. I did have 4 years of experience in everything from LabView to Verilog, photomultiplier tube calibration and particle detector design to advanced electrodynamics to CADD and machining, and all the calculus and linear algebra necessary to get there.

As someone who was perpetually frustrated by a lack of consideration when applying to jobs, I'd just like to recommend that anyone reading this comment to always consider a candidate with a background in the hard sciences, even if they don't have the relevant experience.

<comment><USER16> Learn R and machine learning (this will take a while). Move to a major city. One of the biggest career benefits you have as a scientist is experience with real data. If you can't get a job in the sciences, get a data science job. You are very qualified for a better job than most companies will give you at the entry-level with a hard-science BS.

<comment><USER18> This is a perilous route. Learning R and "machine learning" (probably meant as a catch-all for graphs, statistics, machine learning, and a dash of distributed systems) is necessary but not sufficient, since you'll be competing against people who know all of these things _and_ have significant research experience, given the oversupply of PhDs in various hard sciences (the Python astrophysics community is booming, for example--they'd be immediate "data science" hires).

The net result is that you might end up in a BD-type analyst role, which may not be bad depending on your goals. It wouldn't really hit the engineering target, though.

<comment><USER16> I think it depends on the company. There are a lot of terrible companies that won't look at you for an ML/data science role without a PhD. That's true. There are others that will hire smart people and give them a chance.

What will probably happen is that the pool of "data science" jobs will grow, but the bottom half won't be real DS.

I don't mean to imply that a person can become a decent data scientist overnight. It takes years, but it can be done.

On Wall Street this sort of role is called a "quant", although there's less machine learning in finance than one would expect (hard to audit). "Data scientist" is a startup quant. Just as with quant jobs, some firms will only hire PhDs with research experience, while others will take chances on smart people without it.

<comment><USER18> _There are a lot of terrible companies that won't look at you for an ML/data science role without a PhD._

I'm arguing that it's more serious than this: there are so many PhDs out there right now, companies will have no lack of skilled, well-credentialed candidates to choose from. Going down the "do it yourself" DS route is thus (a) very difficult, and (b) not very likely to pay off.

</comment></comment></comment></comment></comment></comment><comment><USER19> _The great conceit of thinking you are "smart" is believing that because you are very good at working out consequences from axioms, you needn't know everything. If you know the axioms and the rules, that's it, you know everything._

I feel like I have to deal with this all the time -- people who think they're smart and reason their way to tenuous conclusions based upon a ton of seemingly solid beliefs. This rarely ever works, and it surprises me how people who base a significant portion of identity on being "smart" don't grasp that basic point.

There are a lot more confounding variables than there are times when things go perfectly. 6 months of direct knowledge/experience of a particular domain can go a lot further than a year of theory.

In theory, anyway.

<comment><USER20> I think the underlying point in all of this is just that "smart and gets things done" isn't something someone can be trusted to observe about themselves.

The example he gives about FizzBuzz in the Lambda Calculus is perfect. If you're truly working from first principles, then you ought to understand the difference between a theoretical and an acceptable solution.

I'd say that in the context of software, "smart and gets things done" is at a minimum someone with a solid ability to extrapolate from first principles coupled with the ability to problem solve and think critically about what is is they're actually building. Experience helps tons on that front, but it's no better an indicator of future success than grasping first principles.

</comment></comment><comment><USER21> I think the counter-argument is this:

We have control over the amount of real reasoning we can do about our code. The hassle of the real can be minimized. For example, I like clojure, and there are real benefits to theoretical things like immutability by default, or garbage collection. This ability to reason mathematically while being practical is worth promoting in computer science and engineering. If I couldn't reason this way about programming, I wouldn't be a programmer. Engineering _is_ the intersection from theory to practice, and I appreciate that in computing, incidental complexity can usually be traced back to someone's neglect. Without this, we only have heuristics.

There is no silver bullet, but things can be made measurably better. We can accept reality without giving up on reason. I think to prove it, we can look at the influence of mathematics on real discoveries in history, and maybe ponder if humans are just meant to think this way in order to make progress. I hope my code reflects more order (purity, generality, conciseness) than chaos (special cases, entropy, technical debt).

I would just call the procs thing a 'wart' and avoid using it. I don't think my opinion favors the mathematically inclined programmers over the empiricists.

So, let's think about the _kinds_ of things that get done as a consequence of certain types of thinking.

Tradeoffs.

</comment><comment><USER22> An interesting read as always from raganwald, but I think the title is off. It seems to me that the reason Joel added "gets things done" to his creed was to avoid exactly these kinds of problems, and by "these kinds" I mean all the myriad ways that smart people shoot themselves in the foot by either overthinking, or making assumptions, or just plain being used to gliding through on minimal effort.

Now obviously the definition of "smart and gets things done" is open to a huge amount of interpretation, but I think it's clear enough that he means getting things done in terms of shipping useful product. If one does that, then the problems that come with inexperience are self-rectifying.

The problem is if someone is not "smart", they won't learn from their mistakes, and if someone doesn't "get things done" they may lose site of the final goal and fall into mental tarpits as they gain experience.

</comment><comment><USER23> to me, constantly learning is part of being smart and getting things done, especially in the tech industry. You cant be smart and getting things done unless you are learning the latest tools and techniques.

I have always like the saying "get things done, smart" better which perhaps encompasses this post's thesis better than Joel's original wording.

</comment><comment><USER24> this was a lot of words about how - you have to just try something really to know how it works...

it's like voyager 1, we thought we knew what the edge of the solar system would be like, but until we actually reached it or at least reached the zone we are in now we didn't know it would behave the way it does...

With code, that is also true, you can't assume it will behave as you'd expect, what if under the given conditions there is a bug in the assembly code generated by gcc when it compiled the ruby interpreter such that the lambda behaved incorrectly? Or even a bit of memory was flipped into an invalid or unexpected state... shit happens which is why we must type, test, type, test, type test... all day to figure out how it really works...

</comment><comment><USER25> +1 because of the up-front TL;DR.

<comment><USER26> Where I come from, we just call it an abstract.

</comment></comment><comment><USER27> Can someone take a shot at listing a few math languages vs non-math ones?</comment>


Intel Intel Software Guard Extensions Explained [pdf] - <AUTHOR> https://eprint.iacr.org/2016/086.pdf <comment><USER2> Part of the conclusion:

> _This paper describes our findings while studying SGX. We hope that it will > help fellow researchers understand the breadth of issues that need to be > considered before accepting a trusted hardware design as secure. We also > hope that our work will prompt the research community to expect more > openness from the vendors who ask us to trust their hardware._

So SGX can't be trusted at least until Intel opens up the documentation some more.

</comment><comment><USER3> Besides discussing SGX, it also contains a great overview of modern hardware, well worth the read for every developer!

</comment><comment><USER4> Do we need two "Intel"s in the post title?

</comment><comment><USER5> That will be an interesting read. Though not having a table of contents for a 117 page (double column!) report really isn't ideal..</comment>


Teen Accused of Hacking CIA, DHS Chiefs' Info Arrested - <AUTHOR> http://www.nbcnews.com/news/us-news/teen-accused-hacking-cia-dhs-chiefs-info-arrested-n517581 <comment><USER2> So the kid's life is ruined over a social engineering attack?

I don't think "fooling a Verizon employee" is all that news worthy.</comment>


Google's Schmidt says talking to glasses can be weird, inappropriate - <AUTHOR> http://www.reuters.com/article/2013/04/25/us-google-harvard-idUSBRE93O1FF20130425?feedType=RSS <comment><USER2> Classic Schmidt. What he says is almost always completely correct and at the same time the worst possible way to word it.</comment>


We will not be able to work with you  - <AUTHOR>

Hey HN.
I've been to business meetings with many companies and people from many different sectors with varying levels of profesionality and revenues for years. In meetings, I introduce myself, tell them about what i can provide and how i can help them with their projects. Everything seems to go fine during the meetings,
we are professionals, we put our cards about "what they need, what i can give etc" on the table. We seem to have a spoken agreement there.
After the meetings i send my offer for the project.
And never hear from them again. I call them some time(a week or so) after i send the offer, they just say "we'll get back to you" but then, days pass by and still no response. This happens most of the time.
Why is this so hard to say "Sorry, we'll not be able to work with you"? What happens to the professionality we have seen in the meetings?
I need to be able to get any kind of feedback from the meetings and people i try to do business, to improve my skills and styles and to see what i did wrong or right. No feedback means just a waste of time.
I guess i expect much from the people. Is this always the same HN? Any stories to share?
Any feedback is very welcome. Thanks. <comment><USER2> It could be that they decided to go with someone else, but in case the other guy screws it up they want to keep you on standby without paying you yet.

Often times companies just want to see proposals for the sake of evaluating an idea - they may not have even committed to going through with their plans.

A possible solution: In your proposal, include an offer deadline so that the current offer expires within a certain time (whatever makes sense for your industry). This way you can know with or without hearing from them if they are ready to move forward. If a flat out deadline seems too rude, include a proposed timeline for your project using real dates (we would start on the 1st of March and be done in the middle of May), but tell them that you can only guarantee those dates if they give you the green light within a week, otherwise you'll have to re-check your schedule and give them a new timeline.

<comment><AUTHOR> hmm indeed i've never though about offer deadlines. now i need to find my next customer-to-be to try this :)

many thanks

</comment></comment><comment><USER3> It's the all american stuff: we don't want to hurt your feelings so we are going to tell you that we'll get back to you :)...

</comment><comment><USER3> Most are afraid to tell straight in the face...</comment>


I've averaged about 50k hits a month for six months and not one single comment - <AUTHOR>

Surely that's not right?<p>http://www.installion.co.uk/ <comment> k-mcgrady I'm going to guess the issue is how hidden your comments are. I mean I went to the site specifically to look for them and it took me around 10 seconds to find them. Make it more prominent and as it's probably going to be used as a Q&A than a mere comments section refer to it that way so people who get stuck know to use it. On the other hand maybe you've just done a great job with the guide and nobody needs the comment section.

<comment><AUTHOR> Thanks k, on thinking about it, that sounds like a good idea. It's a pain not getting feedback, because it drives change - hopefully in the right direction.

I'll make it a bit more brazen.

</comment></comment><comment><AUTHOR> Anticipating the silent joke, I thought I'd better leave a comment for myself. Ha!

</comment><comment><USER2> For me, the issue is getting the comments button to even display. It's Javascript (which I block by default), hosted by cloudflare (which I also block by default). Until I allowed javascript from both your domain and cloudflare, I didn't even know comments were available. Yet, I was still able to browse through the site for ubuntu & debian packages.

You may want to have a javascript checker like many sites to alert the user that the site works best with javascript, or something to that effect.

Side-note: After enabling javascript for your domain & Cloudflare, I also see my browser would like to run javascript from [http://localhost](http://localhost). Seems like you have some code from your local dev system that made it "live".

<comment><USER2> I'm a little unsure of the reasoning I was downvoted for providing honest feedback to the question the OP asked. Would anyone care to clarify?</comment></comment>


Panic introduces the world's first emoji domain - <AUTHOR> http://💩.la

<comment><USER2> It shows up as <http://xn--ls8h.la/> in Chrome.

<comment><USER3> Opera displays an empty rectangle and when I click the link it doesn't allow me to go there saying it might an "attempt to trick you into visiting a website which you might mistake for a site you trust."

</comment></comment><comment><AUTHOR> Might require OS X Lion and Safari.

Corresponding blog post here: [http://www.panic.com/blog/2011/07/the-worlds- first-emoji-dom...](http://www.panic.com/blog/2011/07/the-worlds-first-emoji- domain/)

<comment><USER4> works on my iPad and iPhone with iOS 4.

<comment> X-Istence iOS has had Emoji support for a while now, I remember my co-worker texting his wife with them.

<comment><USER5> > iOS has had Emoji support for a while now

Yep, iPhoneOS 2.2 (November 2008).

Although it's important to note it uses Softbank emoji.

<comment><USER6> After an app sets a certain key in NSUserDefaults.

<comment><USER7> Not anymore, you can add the keyboard in directly from the OS since iOS 4.

</comment></comment></comment></comment></comment></comment><comment><USER8> No emoji here apparently (ubuntu 10.04), just a rotating rectangle. Is there an emoji ttf font pack anywhere someone can link to?

edit: emoji is not unicode standard and has no linux support apparently. oh well.

<comment><USER9> The latest versions of Unicode have an official encoding for emoji, and (after having installed a suitable font) the resulting page renders just fine in Firefox Aurora on Ubuntu 11.04.

It doesn't render in the URL bar, of course, but that's Firefox's IDN whitelist at work.

<comment><USER10> A suitable font is Symbola: <http://users.teilar.gr/~g1951d/>

The Apple Emoji font uses a non-standard extension (png images in an 'sbix' table), so it can't be used outside of Lion / iOS at the moment.

</comment></comment></comment><comment><USER11> Can somebody post a screenshot for those of still in the emoji-less stone age?

<comment><USER12> From my iPhone 4:

<http://i.imgur.com/owBxH.jpg>

<comment><USER13> What version of iOS are you running? I'm on 4.0.1, and all I see is "<http://xn--ls8h.la/>

<comment><USER14> You need to enable emoji. There are several free App store apps that will do it. One is Emoji Free! By Awesomest Inc.

<comment><USER13> That's the thing. I have emoji characters enabled, and can type and see them in text messages. It's odd I can't see them in Safari. Could it have something to do with my phone being jailbroken?

</comment></comment></comment></comment></comment><comment><USER15> The fact that this works reflects that fact Safari hasn't implemented the IDN standard fully, and neither has the .LA domain registry. Section 4.2.2 of RFC 5891 forbids the Emoji codepoints from being encoded in a valid IDN string.

<comment><USER16> Technically yes but if I'm reading it right that's only because in an outdated chart they hadn't been assigned yet. Unless there's a pattern of disallowing symbols but I'd have to question the motivation behind that.

Edit: Nevermind, the rules used to create the chart are designed to disallow symbols. It gives an explanation of the rule but not the reason it was set.

      These rules identify characters commonly used in mnemonics and often
      informally described as "language characters".  In general, only code
      points assigned to this category are suitable for use in IDN.

</comment></comment><comment><USER17> This is similar to a URL shortener my friends and I wrote a few years ago: <http://get.emo.gd/>. Emoji TLDs are even better.

</comment><comment><USER18> Doesn't work in Firefox. Note to web developers: CSS animations are supported now in Firefox; please use the -moz prefix as well as -webkit.

</comment><comment><USER19> wow, thanks for the screenshots.. I didn't expect that pic. Expected a japanese character or something. Wow. We don't need that.

</comment><comment><USER20> Poopla indeed - <http://i53.tinypic.com/jac6jn.png>

(FF6 on XP)

</comment><comment><USER21> Their have been lots of emoji and other special char domains used already. you just haven't stumbled upon them yet.

</comment><comment><USER22> Is this there any utility to this at all?

</comment><comment><USER23> From the source HTML: "<!-- The most important website ever coded by humankind. --> "

</comment><comment><USER24> 😄 👍

🌟🌟🌟🌟🌟

<comment><USER25> 🍆 made me laugh, can't think why...

</comment></comment><comment><USER26> why?

<comment><USER27> Why indeed. It's just a publicity stunt, of course.</comment></comment>


Find the email addresses and email format of any company - <AUTHOR> https://maildb.io/companies <comment><USER2> Pros/Cons in comparison to similar websites like hunter.io?

<comment><AUTHOR> At the moment, it's mainly just price. We try to offer the same services but with much more affordable plans.

One spot where we do differ greatly though is our bulk email verification. We check for more risk factors and information about an email address compared to other companies.

This companies directory part of our site though is more just a service for easily finding the main contact information and emails for a company, without having to be a member of MailDB. Being a member is free, though! :)

<comment><USER2> Roger that. Thanks for the info!</comment></comment></comment>


Federal report: AI could threaten up to 47 percent of jobs in two decades - happy-go-lucky http://arstechnica.com/business/2016/12/federal-report-ai-could-threaten-up-to-47-percent-of-jobs-in-two-decades/ <comment><AUTHOR> >> "The critical question that researchers cannot answer is whether job growth, which traditionally has offset the loss of 6 percent of US jobs every quarter due to downsizing or closing businesses, can likewise absorb losses due to automation."

This sentence is basically saying researchers cannot predict the future when it comes to jobs. So job growth could be robust or it could fall, they have no idea. Yet this is a report by these same researchers predicting the future of jobs! How the heck can we take it seriously.

If someone can't answer questions about future job growth I would just be a bit careful how much to trust their opinions about future job losses.

AI and automation is a real issue for employment and should be studied, but don't just scare people without also mentioning how many uncertainties there are about the pace of change or who will be effected first or effected hardest.

Side note: Economies have done just fine when more than half workforce is not employed. One place to look for examples and lessons where this happened is _all of modern history_ : half the population is women and they only really entered the workforce very very recently and only in a few places, more so in the West. We have seen economies with half of able workers not having jobs, the world kept turning, economic growth and innovation still happened. "History doesn't repeat itself but it often rhymes"</comment>


Ask YC: How to find a hacker - <AUTHOR>

How do you find a hacker who wants co-found a company with a "business" person (think:  biz dev, ppt, excel) who has a prototype and business plan? <comment><USER2> Put an octo-core mac Pro with 4 30" monitors out on the sidewalk with a large net hanging overhead. When the hacker goes to grab the mac, release the net and ensnare him.

Once captured, keep out of direct sunlight (the monitors will provide all the illumination necessary), feed pizza, caffeine and stock options.

Best places to go hunting: Palo Alto, San Fran, Cambridge.

<comment><AUTHOR> awesome. luckily i live in boston--not much direct sunlight and high proximity to cambridge.

<comment><USER3> Aaron, I live in Cambridge and know several programmers and places to find them. Email me and I might be able to help you out - my email's in my profile.

</comment></comment></comment><comment><AUTHOR> aneesh - thanks. i emailed you.</comment>