Making a racist AI without really trying (2017) - <AUTHOR> http://blog.conceptnet.io/posts/2017/how-to-make-a-racist-ai-without-really-trying/ <comment><USER2> I'm glad to have kept reading to the author's conclusion:

> As a hybrid approach, you could produce a large number of inferred > sentiments for words, and have a human annotator patiently look through > them, making a list of exceptions whose sentiment should be set to 0. The > downside of this is that it's extra work; the upside is that you take the > time to actually see what your data is doing. And that's something that I > think should happen more often in machine learning anyway.

Couldn't agree more. Annotating ML data for quality control seems essential both for making it work, and building human trust.

<comment><USER3> This approach only works if you use OP's assumption that a text's sentiment is the average of it's word's sentiment. That assumption is obviously flawed (e.g. "The movie was not boring at all" would have negative sentiment).

Making this assumption is fine in some cases (for example if you don't have training data for your domain), but if you build a classifier based on this assumption why don't you just use an off-the-shelf sentiment lexicon? Do you really need to assign a sentiment to every noun known to mankind? I doubt that this improves the classification results regardless of the bias problem.

<comment><USER4> Sure, it's flawed, but that's the point of the post: that assumptions about your dataset can lead to unexpected forms of bias.

 _> Do you really need to assign a sentiment to very noun known to mankind?_

No, but it seems like a simple (and seemingly innocuous) mistake that many programmers can and will make.

<comment><USER3> I was just trying to explain in this comment why I think the human moderation solution is solving the wrong problem.

</comment></comment></comment></comment><comment><USER5> > There is no trade-off. Note that the accuracy of sentiment prediction went > up when we switched to ConceptNet Numberbatch. Some people expect that > fighting algorithmic racism is going to come with some sort of trade-off. > There's no trade-off here. You can have data that's better and less racist. > You can have data that's better because it's less racist. There was never > anything "accurate" about the overt racism that word2vec and GloVe learned.

The big conclusion here after all that code buildup does not logically follow. All it shows is that one new word embedding, trained by completely different people for different purposes with different methods on different data using much fancier semantic structures, outperforms (by a small and likely non- statistically-significant degree) an older word embedding (which is not even the best such word embedding from its batch, apparently, given the choice to not use 840B). It is entirely possible that the new word embedding, trained the same minus the anti-bias tweaks, would have had still superior results.

<comment><USER6> I think you're reading this statement as more general than it's meant to be? I interpret it as meaning that there is not necessarily any tradeoff, as there wasn't in this case. "You can have data" -> there exists.

<comment><USER7> Is there anyone who thinks that the current level of racism is required for the current accuracy? I can't imagine people that racist to be common in the data community

<comment><USER8> > Is there anyone who thinks that the current level of racism is required for > the current accuracy? I can't imagine people that racist to be common in the > data community

It depends on two things. The first is how you're defining racism. If the algorithm is predicting that 10% of white people and 30% of black people will do X, because that is what actually happens, some people will still call that racism but there is no possible way to change it without reducing accuracy.

If the algorithm is predicting that 8% of white people and 35% of black people will do X even though the actual numbers are 10% and 30%, then the algorithm has a racial bias and it is _possible_ to both reduce racism and increase accuracy. But it's also still possible to do the opposite.

One way to get the algorithm to predict closer to 10% and 30% is to get better data, e.g. take into account more factors that represent the actual cause of the disparity and just happen to correlate with race, so factoring them out reduces the bias _and_ improves accuracy in general.

The other way is to anchor a pivot on race and push on it until you get the results you want, which will significantly harm accuracy in various subtle and not so subtle ways all over the spectrum because what you're really doing is fudging the numbers.

<comment><USER9> "If the algorithm is predicting that 10% of white people and 30% of black people will do X, because that is what actually happens, some people will still call that racism but there is no possible way to change it without reducing accuracy."

What is actually happening? Does it tell you if they are they doing X precisely because they are black or white? The racist part might not be the numbers per se, but in the conclusion that the color of their skin has anything to do with their respective choices.

edit: spelling

<comment><USER10> ML is spitting out correlations, not an explicit causal model. If, in reality, X is only indirectly and accidentally correlated with race, but I look at the ML result and conclude the skin color has something to do with X, then the only racist element in the whole system is me.

<comment><USER9> Agreed. That was the point I was trying to get at, albeit I might not have phrased it as clearly.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> > Some people expect that fighting algorithmic racism is going to come with > some sort of trade-off.

Um, that's because we know it comes with trade-offs once you have the most optimal algorithm. See for instance [https://arxiv.org/pdf/1610.02413.pdf](https://arxiv.org/pdf/1610.02413.pdf). If your best performing algorithm is "racist" (for some definition of racist") you are mathematically forced to make tradeoffs if you want to eliminate that "racism".

Of course, defining "racism" itself gets extremely tricky because many definitions of racism are mutually contradictory ([https://arxiv.org/pdf/1609.05807.pdf](https://arxiv.org/pdf/1609.05807.pdf)).

<comment><USER3> Not necessarily. In the case of word vectors we are using unsupervised learning to identify patterns in a large corpus of data to improve the learning. This is a completely different issue than your credit score example, which is supervised learning.

Not all patterns are equally useful. By removing those unuseful patterns we might make less mistakes (for example giving negative sentiment to a Mexican restaurant review) and free up capacity in the word vectors to store more useful patterns. I would expect baking other real-world assumptions into your word vectors unrelated to bias could also be helpful.

</comment></comment><comment><USER12> To oversimplify, I think the training set is something like:

Italian restaurant is good.

Chinese restaurant is good.

Chinese government is bad.

Mexican restaurant is good.

Mexican drug dealers are bad.

Mexican illegal immigrants are bad.

And hence the word vector works as expected and the sentiment result follows.

Update:

To confirm my suspicion, I tried out an online demo to check distance between words in a trained word embedding model using word2vec:

[http://bionlp-www.utu.fi/wv_demo/](http://bionlp-www.utu.fi/wv_demo/)

Here is an example output I got with Finnish 4B model (probably a bad choice since it is not English):

italian, bad: 0.18492977

chinese, bad: 0.5144626

mexican, bad: 0.3288326

Same pairs with Google News model:

italian, bad: 0.09307841

chinese, bad: 0.19638279

mexican, bad: 0.16298543

</comment><comment><USER13> Just thinking out loud here...

It seems to me that if you wanted to root out sentiment bias in this type of algorithm, then you would need to adjust your baseline word embeddings dataset until you have sentiment scores for the words "Italian", "British", "Chinese", "Mexican", "African", etc that are roughly equal, without changing the sentiment scores for all other words. That being said, I have no idea how you'd approach such a task...

I don't think you could ever get equal sentiment scores for "black" and "white" without biasing the dataset in such a manner that it would be rendered invalid for other scenarios (e.g., giving a "dark black alley" a higher sentiment than it would otherwise have). "Black" and "white" is a more difficult situation because the words have different meanings outside of race/ethnicity.

<comment><USER14> I think I would agree. You otherwise run the risk of having fixed the metric ("Italian" vs. "Mexican", "Chad" vs. "Shaniqua", etc.) without actually fixing the underlying issue.

Also, regarding black/white etc., there might legitimately be words which have so many different meanings (whether race-related or not) that you should just exclude them from sentiment analysis. "Right" can mean like "human rights", "right thing to do", or "not left". Probably plenty of other words like that. You might do better to have a list of 100-200 words that are just excluded because of issues like that.

<comment><USER15> Would it be worth trying to think of words with different meanings as entirely new words? So, "white" in one sentence may be a different word than "white" in another?

<comment><USER16> There's a long list of papers on that - 'multi-sense word embeddings'. But more recently we have found that passing the raw character embeddings through a two layer BiLSTM will resolve the ambiguity of meaning from context - 'ElMO'.

[https://arxiv.org/abs/1802.05365](https://arxiv.org/abs/1802.05365) (state of the art)

</comment></comment></comment></comment><comment><USER17> Does this mean the text examples the AI learns from are biased and as such it learns to be biased too?

So it's not giving us objetive decisions, but a mirror. Not so bad either.

<comment><USER18> Yes, and it's pretty scary how many technologists seem to be surprised by this. If we train bots using data derived from humans, the expectation is that they will inherit biases from humans. There's nothing about a silicon brain that automatically bestows perfect objectivity, only perfect obedience.

<comment><USER19> I struggle to think of a single person with the faintest understanding of what machine learning algorithms are being surprised by this. Who are these "technologists" you're speaking of?

<comment><USER20> Almost everyone I know with at least a faint understanding of ML is surprised by models picking up racism etc when there was zero intent to do so, because of systemic racism etc in available data. Or at least surprised by how much can be picked up. You're bubbled if no one you know is surprised.

<comment><USER14> Hmmm...I'm no expert, but my master's thesis topic in the 90's was on neural networks that use R-squared (a measure of correlation), and when I saw the news about Microsoft's chatbot going Nazi, I was not at all surprised. Not saying no one you knew was surprised, but I had "at least a faint understanding of ML", and the primary thing I learned about it was that it learns what's in the data, whether that's the part of the data that you intended it to learn or not.

<comment><USER21> Tay was trolled hard by 4chan, that's why she went hardcore Nazi almost immediately. It was amusing, but not a fair & controlled experiment by any means.

<comment><USER22> The real world is neither fair or a controlled experiment.

<comment><USER10> Which is why I'm surprised about all this "AI is biased" outrage. A decent algorithm will learn what's in the data. Cast on a wide enough scale, the data is roughly what the world is. If your bot learns from newspaper corpus, then it learns how the world looks through the lens of news publishing. If news publishing is somewhat racist, and your algorithm does _not_ pick on that, then your algorithm has a bug in it.

It seems to me like the people writing about how AI is bad because it picks up biases from data are wishing the ML would learn the world as it _ought to_ be. But that's wrong, and that would make such algorithms not useful. ML is meant to learn the world as it _is_. Which is, as you wrote, neither fair nor a controlled experiment.

<comment><USER21> Well put. The people complaining about how AI is bad are the same people who push "diversity hires" to try to pretend that the population of software developers is equal parts male/female, and white/black.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER3> I think that the bias problem they are highlighting is very important. That said, I'm wondering if they really didn't try (like the title suggests) or if they choose this approach on purpose because it highlights the problem.

To explain what happened here: They trained a classifier to predict word sentiment based on a sentiment lexicon. The lexicon would mostly contain words such as adjectives (like awesome, great, ...). They use this to generalize to all words using word vectors.

The way word vectors work is that words that frequently occur together are going to be closer in vector space. So what they have essentially shown is that in common crawl and google news names of people with certain ethnicities are more likely to occur near words with negative sentiment.

However, the sentiment analysis approach they are using amplifies the problem in the worst possible way. They are asking their machine learning model to generalize from training data with emotional words to people's names.

<comment><USER23> I think the point is that they did what's commonly done in real world machine learning. It's no surprise that it's flawed - but that flawed stuff is _actually being used_ all over the place.

</comment></comment><comment><USER24> It would be interesting to use the Uber/Lyft dataset of driver and passenger ratings to do an analysis like this.

For any such analysis there are a great many confounds, both blatant and subtle. Finding racism everywhere could be because overt racism is everywhere, or it could be confirmation bias. It could even be both! That's the tricky thing about confirmation bias—one never knows when one is experiencing it, at least not at the time.

</comment><comment><USER25> I've heard a lot about racism in AI, but looking at the distributions of sentiment score by name, a member of any race would rationally be more worried about simply having the wrong name. Has there been any work done on that?

<comment> joatmon-snoo This is a pretty well known study: [http://www.nber.org/digest/sep03/w9873.html](http://www.nber.org/digest/sep03/w9873.html)

<comment><USER25> I mean name within the same race. On the range of racial averages was 3, but the range of names within a race was around 10. I don't know how significant the results for individual names are, but I was very surprised by that result.

</comment></comment></comment><comment><USER26> > fighting algorithmic racism

Reminds me of how Google Photos couldn't differentiate between a black person & a monkey, so they've excluded that term from search altogether.

While the endeavour itself is good, fixes are sometimes hilariously bad or biased (untrue)

<comment><USER27> > Reminds me of how Google Photos couldn't differentiate between a black > person & a monkey, so they've excluded that term from search altogether.

Technically that is what happened, but it paints an incorrect picture in people's minds. Out of the billions of images that Google Photos had auto- tagged, it tagged one picture of two black people as "gorillas".[1] This was probably the first time this had ever happened. (If it had happened before, it surely would have been spread far and wide by social media & the press.)

So Google's classifier was inaccurate 0.0000001% of the time, but the PR was so bad that Google "fixed" the issue by blacklisting certain tags (monkey, gorilla, etc). If you take photos of monkeys, you'll have to tag them yourself.

I'm sure Google could do better, but the standard required to avoid a PR disaster is impossible to meet. If the classifier isn't perfect forever, they're guaranteed to draw outrage.

1\. [https://twitter.com/jackyalcine/status/615329515909156865](https://twitter.com/jackyalcine/status/615329515909156865)

<comment><USER28> Our expectation of our algorithms are based on human performance. A human would never tag a black person as a gorilla, or vice versa, and if someone did it even once we could pretty safely conclude they're either extraordinarily incompetent, or racist, and in either case we wouldn't trust any tagging done by such a human.

</comment></comment></comment><comment><USER29> Maybe, you know, humans are simply not Chinese rooms.

Recently there was an article about recognition of bullshit: [https://news.ycombinator.com/item?id=17764348](https://news.ycombinator.com/item?id=17764348)

To me the article brought great insight - I realized that humans do not just pattern match. They also seek understanding, which I would define as an ability to give a representative example.

It is possible to give somebody a set described by arbitrarily complex conditions while the set itself is empty. Take any satisfiability problem (SAT) with no solution - this is a set of conditions on variables, yet there is no global solution to these.

So if you were a Chinese room and I would train you on SAT problems, by pure pattern matching, you would be willing to give solutions to unsolvable instances. It is only when you actually understand the meaning behind conditions you can recognize that these arbitrary complex inputs are in fact just empty sets.

So perhaps that's the flaw with our algorithms. There is no notion of I understand the input. Perhaps it is understandable, because understanding (per above) might as well be NP-hard.

<comment><USER30> There is no indication that brains are better at solving NP hard problems than computers.

<comment><USER29> That is not my argument at all. What I argue is that brains attempt to resolve the problem, while computers (when they pattern match in typical ML algorithm) do not.

It is possible that brain has specialized circuits to solve small instances of SAT, and it just gives up on large enough instance. I am sure you know the feeling that you get when you understand something - it's very much like the pieces of the puzzle that suddenly perfectly fit to each other.

</comment></comment></comment><comment><USER31> This is an interesting result:

> Note that the accuracy of sentiment prediction went up when we switched to > ConceptNet Numberbatch.

> Some people expect that fighting algorithmic racism is going to come with > some sort of trade-off. There's no trade-off here. You can have data that's > better and less racist. You can have data that's better because it's less > racist. There was never anything "accurate" about the overt racism that > word2vec and GloVe learned.

I wonder if this could be extended to individual names that have strong connotations with people because of the fame of some particular person, like "Barack", "Hillary", "Donald", "Vladimir", or "Adolf", or if removing that sort of bias is just too much to expect from a sentiment analysis algorithm.

</comment><comment><USER32> Where I grew up, there is a majority group with fair skin, later(possibly incorrectly) attributed to the fact that they worked in the fields less. The minority group is darker skinned. If you train any reasonable machine learning model on any financial data, it will pick up on the discrepancy. If it did not I would say it is a flawed model. But that is more a sign that people should avoid such models.

</comment><comment><USER33> Please add 2017 to title

</comment><comment><USER34> How to make a program that does what you asked it to do, and then add arbitrary fudge factors as the notion strikes you to "correct" for the bogeyman of bias.

Suppose sentiment for the name Tyrel was better than for Adolf. Would that indicate anti-white bias? Suppose the name Osama has really poor sentiment. What fudge factor do you add there to correct for possible anti-Muslim bias? Suppose Little Richard and Elton John don't have equal sentiment. Is the lower one because Little Richard is black, or because Elton John is gay?

What we have been seeing lately is an effort to replace unmeasurable bias that is simply assumed to exist and to be unjust and replace it with real bias, encoded in our laws and practices, or in this case, in actual code.

</comment><comment> swingline-747 Setting aside blatant shock behaviors... If the other side, the audience, were less sensitive and not looking for the next micro-outrage, wouldn't ML chatbots evolve more pro-social values by positive reinforcement?

 _It takes two to Tango_ .. the average audience behavior isn't blameless for the impact of its response. Also, how an AI decides interprets an ambiguous response as being desirable or not is really interesting.

<comment><USER35> Blaming the victim for being discriminated against isn't going to help anything.</comment></comment>


Ask HN: Failing startup, how to leave? - <AUTHOR> I am in a complex situation and would like to hear your opinion on how to proceed. I am a cofounder (4 friends from college) of a startup, at first we had great progress with the development of the product (i am one of the hardware developer). We started almost 13 month ago, but till this day we don't have a clear understanding who our customer are or how large the market we target is. When I point out one of these open points(there are many more), I am referred to some google research, which is supposedly completely bulletproof.  I think my co-founders are blinded by all those unicorns out there, they think everything is going great and there are only little problems on the way before they get rich. I would like to leave, but I don't want to be the one getting blamed, when the company finally goes bust. How can I handle the situation? <comment><USER2> Having been in this situation more than once (I caught the startup bug), I can tell you that there is no good way to leave an unsuccessful startup.

What I learned is, my time is mine to protect and my skills are mine to dedicate where I see fit. Noone can oblige you to spend these things on what you don't want to.

People will always blame others for their lack of application. If they were true entrepreneurs, they will find a replacement for you.

But you are unique that you want to leave what is really a pet project (I've been in those too many times) and build a real business. You should!

Don't worry about what others will think, you can't control that.

</comment><comment><USER3> "I think my co-founders are blinded by all those unicorns out there, they think everything is going great and there are only little problems on the way before they get rich"

A start-up is about bringing something its founders are passionate about to market. Anyone who thinks a start-up are a way to make money, are in start-ups for the wrong reasons. This sentence has failed start-up all over it.

The mindset that also comes with this idea generally leads to alot of burn out for those passionate and those who are feet up lets get rich with minimal effort. Which is was the fate of my start-up experience. 3 of 5 founders were passionate and hardworking, and 2 of 5 considered it a 'side thing' contributing much less (and even nothing when half-assed). When time came to find buyers to start cycles of improving the product e.g.'fitting the niche of our product', things fell apart. The same 3 of us called out that we are failing and don't see a path, and the 2 others completely did not see the death of the company/idea in front of them. We had majority and dissolved the company.

<comment><USER3> As for the ruining your friendship with the founders, not sure you can avoid this. To me if they de-friend you for pointing out facts, then they were not your friends in the first place. I am still very close friends with one of my ex-cofounders.

Maybe that my comment is pessimistic, but from my perspective start ups are an experience in failing.

The difference here is, if you choose to continue failing with these 'friends/cofounders' or make a call it quits. 13 months is a short life of a startup, but really this is the decision that you and only you can make. No one but you has the perspective and knowledge to make such a call.

</comment></comment><comment><USER4> It sounds complex. At any moment, you have 3 options. You can accept it, change it, or leave it.

Do you have paying customers? If so, that's not a bad start. Do your potential customers pay to solve the problem you are trying to solve? That's also not a bad start.

Have you considered hiring a consultant to help solve the problem, or to be the bearer of bad news (not having a clear understanding of your customer or the market)? I've helped people / companies figure out their target customer and what would solve their problems. Feel free to reach me at helpthingchat a.t gmail dot com if you'd like.

As to leaving, you can find the best way to frame it, and then do it. If they're really your friends, they will accept it. If not, who cares what they think?

</comment><comment><USER5> > _but till this day we don 't have a clear understanding who our customer are > or how large the market we target is. When I point out one of these open > points(there are many more)_

The startup is about to die and you guys are pointing out the cause of death, googling shit, and already divvying up blame inheritance? Get out there. List your assumptions, meet people, try to get paid, get told your product sucks, get proven right or wrong, repeat.

> _I would like to leave, but I don 't want to be the one getting blamed, when > the company finally goes bust. How can I handle the situation?_

Which situation? Leaving or making saving your startup? If you'd like to leave, just leave. Just ask yourself if you've given it a real shot.

</comment><comment><USER6> "started almost 13 month ago, but till this day we don't have a clear understanding who our customer are"

This takes time but the key is that all of you as cofounder need to make this a priority. I literally was thinking who the heck is my target customer today and I have been running a bootstrapped company for almost 6 years BUT the point is that you have to constantly refine that as needed.

Honestly, if you cofounders don't understand that it is all about identifying the market and the whole "product market fit" thing, it will be over anyway.

</comment><comment><USER7> Why do you believe you would be blamed when the company finally goes bust?

Would this blame matter because of your friendship with your cofounders? Or does their blame affect you in some other way?

<comment><AUTHOR> Because in the past I've been held responsible as the bearer of bad news. And I don't want to jeopardize my friendship with the co-founders.

<comment><USER8> When you go into business with friends, you are already jeopardizing your friendship. That particular ship has sailed.

You now have an option to (1) do what's right for you, and (2) potentially have some friends at the end of it. BTW it's not guaranteed that you can have _either_ of these, let alone both.

If you are convinced that you want to leave, I think the best way to phrase it is "I no longer believe that the direction we're headed is the right one. You deserve a co-founder who is _all in_ and believes in the mission. Even though I know this will be painful for everyone, the best path _for the rest of you_ is if I leave now." Expect to give up most or all of your equity position, and maybe stay working a little longer than you'd like to get things wrapped up and in a good place to hand off. Also expect that this won't work and everyone will still be mad at you, but you'll learn a lot and your conscience will be clear. Maybe someday your friends will stop being upset and will realize that you were right, and you can be friends again. No guarantees though.

Best of luck to you.

<comment><USER9> Why give up all of your equity ? As a founder you created something, shouldn't you insist on a buyout?

<comment><USER10> Maybe there's not really a legal way to protect any of your equity assets when they aren't worth anything. I'd imagine any future investor interest would be scared off by the disclosure that there's an uninvolved past founder with "25% equity" on the cap table. Rather than worry about potential last minute negotiations with the ex-founder after an investor expresses interest, I'd imagine the remaining partners could potentially found a new group and dissolve the current group by "selling" it and all assets to the new group for $1 and mail the ex-founder $0.25 or something.

This would likely be moderately illegal if done at a stage that the equity is demonstrably worth something (e.g. Eduardo Saverin's FB situation) but I don't think it would be much of an civil/legal issue before the startup had any demonstrable financial value. I could be wrong. And people will diverge widely on how they see the moral/ethical implications of this.

<comment><USER9> It's interesting. If there is a later sale at say facebook scale you could have a case.

After spending a year building the product I would hate to walk away.

<comment><AUTHOR> I think that if they are really going to turn what we currently have into a company on facebook scale, then this value will have to be created after I leave. Right now, the startup is certainly worth almost nothing.</comment></comment></comment></comment></comment></comment></comment>


Apple's iOS: In desperate need of a facelift - <AUTHOR> http://www.zdnet.com/apples-ios-in-desperate-need-of-a-facelift-7000012781/

<comment><USER2> I picked up my Android phone and looked at it compared to my iPad. I have a weather widget and a search bar on my homescreen, a friend feed on the screen to the left and an icon screen one more over.

I'm not an Android or Apple fanboi, if anything, I prefer Windows, and though I agree that Apple's iOS icon approach is 'safe', I don't agree that it looks dated. It simply looks familiar. To me, the widgets in Android aren't compelling enough to prevent Android from looking equally as familiar as iOS. They are both a modernized Palm homescreen.</comment>


Linux and open source have won, get over it - <AUTHOR> http://www.zdnet.com/article/linux-and-open-source-have-won-get-over-it/ <comment> vezzy-fnord _Proprietary software developers, get your GitHub account now, your world is coming to a close._

Four days into 2016 and we already have a contender for most unintentionally self-contradictory statement of the year.

<comment><USER2> You are right! GitHub is not Open source!

<comment><USER3> >> So, why can't people accept that Linux and open source have won the software wars?

By this logic, most Windows/OSX users have already jumped to Linux, and most Windows Phone/iOS/etc users have already jumped to Android, right?

Or maybe I misunderstand something? :p</comment></comment></comment>


Ask HN: Do you have any outlier examples in programming? - <AUTHOR>

Hi Hackers,
I was wondering if you guys know of any examples of guys who have been programming say, for less than 1 year and are already proefficient at that.
If you do, do you know what their method was to learn how to program?
Thanks for all the responses in advance :) <comment><USER2> Yes!

I hired 2 programmers more than a year ago. One of them was a guy with a lot of experience and another was a girl with only basic programming knowledge (university, first year). It was a valuable experiment, because my gut feeling yelled HIRE HER, but at the time it seemed like a completely irrational decision :)

Anyway I had to let the guy go 4 months later, because he didn't progress fast enough (imho, too lazy/ego). In fact, just after 4 months the girl was already much better!

So how?

* Personality: high intelligence, abstract thinking, perfectionistic tendencies, fast learner

* A good mentor: someone has to constantly look over and point out design flaws/errors/bugs (btw, I had to do it only once with her! With other coders I had to do it at least 2-5 times per bug/antipattern type)

And the most important thing:

* Write consistent code!!! So when you make a bad design error or a bug. Rewrite it again (a function, a class)! And again. And again. Until your code is consistent. Whitespace, curly brackets, comments, variable names, function names, class names. Absolutely everything. It starts with tiny things like:

if(x) {

vs

if(x)

{

When you copy-paste a code snippet from a website - rewrite it so it matches your own style!!! And repeat! And repeat!

<comment><USER3> You should be using a standardized code formatter in an IDE to take care of the bracket and spacing issues, etc there's no sense in putting a bunch of effort worrying about something like that. You can take a room full of 10 developers and debate until the end of time whether a bracket should be on the same line or next line, its personal preference and the most important thing is to use a formatter to standardize for your company, you will never get everyone to agree and its a pointless argument. Of course the naming is important but its really a fairly simple concept, just to always use descriptive names, in your example using x as a variable name is an example of NOT doing this

<comment><USER4> I second that notion. I've always been irrationally anti-IDE, but in the past few weeks I've been using Pharo Smalltalk for some personal projects and I've realized how much a good IDE can do for you. You should let your IDE handle trivial issues like directory structure, file formatting, etc.

When I write Smalltalk, I ignore formatting and indentation. I just write code. When I'm done, I hit Command+r and the editor formats everything for me. This is just one of a billion tiny bureaucratic issues that the Pharo environment handles for me.

(Offtopic: makes me wonder why we don't build programming environments from the IDE down instead of building them from the language up. Our current approach doesn't seem to be working very well, IMO.)

<comment><USER3> I agree, I use what I consider to be a great IDE for the language I work in, it does variable suggestion, everything and its great because it makes me write code faster and not cut corners

</comment></comment></comment></comment><comment><USER3> It depends what you consider proficient, I was definitely producing in my job at less than 1 year experience but I definitely feel that I know more now than I did then. I think it takes at least a year of solid experience to get to the point where you can really be reflective about what you do and to understand writing clean, maintainable code. (and every year from then on out just adds more of this) For someone who is motivated, as I was, its fairly reasonable to be able to start producing with only a few months experience, to where you can make things that work, just that the solutions you come up with may not be as elegant as they could be and the code may be messy. It takes time to get that extra sense when coding to use best practices, etc and this is also related to who you work with, the more you can be around more experienced developers, the faster you will progress</comment>


Zynga IPO Goes SplatVille. What Happened? - <AUTHOR> http://www.forbes.com/sites/roberthof/2011/12/16/zynga-ipo-goes-splatville-what-happened/?feed=rss_home

<comment><USER2> "What happened?"

Investors just raised another $1 billion for Zynga. That's what happened. I don't understand the point of this article. The author is trying to make Zynga's IPO sound like a failure, when it is not.

<comment><USER3> It's a failure for any insider that got a chunk of stock and was hoping to flip it on opening day.

"First-day pops in initial public offerings are almost axiomatic today. _After all, IPOs are engineered that way_ "

Whoops. Not this time.

</comment></comment><comment><USER4> This is _awesome_.

The way a typical IPO goes is asshole ibankers underprice the ipo then hand out blocks of shares to their preferred clients who pocket the pop. Every bit of price increase is money that _should_ have gone into the pockets of the company and their investors. If you think this is an accident -- that they somehow make over and over again -- you're a sucker. Forgive me if I ignore a bunch of thieves whining about losing their free millions they feel entitled to. See eg Peter Thiel [1].

[1] [http://www.businessinsider.com/peter-thiel-wall-street- screw...](http://www.businessinsider.com/peter-thiel-wall-street-screwed- linkedin-mispriced-ipo-2011-5)

<comment><USER5> 100%, yes.</comment></comment>


New startup offers game theory (and free tshirts) to the masses - <AUTHOR> http://getnifty.com/

<comment><USER2> What am I missing? It seems the best case scenario is I get a never ending supply of free tshirts that I, nor anyone else, like. Why would I want that?

</comment><comment><USER3> I clicked through strictly for the free t shirts, but it looks like they aren't free.</comment>


Google Clarifies Their H.264 Stance - <AUTHOR> http://techcrunch.com/2011/01/14/google-h264-flash/

<comment><USER2> IMHO Google is just showing off their power. They can do whatever they want.</comment>


Infinity Inbox - <AUTHOR> http://justinvincent.com/page/1142/infinity-inbox

<comment><USER2> I do this. I don't have as many labels as you. i do have a follow up label. I think I'm an inbox hero!</comment>


Ask HN: Is there any HTML table scraper generator in python or else? - <AUTHOR>

Hi,
In one of my projects, I happen to need to get some scrapers running for tens of websites to collect rows, columns of tables (<table>, <ul>, <div>). Those tables are well formatted. I have written several scrapers in python, which basically use CSS selector and then do some simple transformation with regular expression. I just wonder whether there is any scraper generator which may take a url and sample target output as input, and produce a scraper automatically?
Any suggestion is welcomed. Thanks in advance. <comment><USER2> Have you looked at phantomjs?

The webintro example here ([https://github.com/ariya/phantomjs/wiki/Examples](https://github.com/ariya/phantomjs/wiki/Examples)) scrapes a specific element.

<comment><AUTHOR> I was using mechanizer + beautiful soup in python before, but it seems that this one also needs human to read the html source code to pick a css selector instead of automating it...

</comment></comment><comment><USER3> I would take a look at the Mac App FakeApp. It does a lot of what you are saying expecially in regards to CSS and xpath selectors. I have been using it and have been able to do some really great stuff.

</comment><comment><USER4> If you don't want to build it yourself, check out import.io. They turn any website into an API. They did a demo at SV Newtech a couple months ago.

<comment><AUTHOR> Thanks Johnie. It is almost what I want, except that it is not open-source and free...

</comment></comment><comment><USER5> Have you taken a look at the Scrapy framework for Python?

[http://scrapy.org/](http://scrapy.org/)

<comment><AUTHOR> Thanks. I used beautiful soup for the parser, and actually have written a crawler framework for my scenario. But I was wondering whether there is any tool that could automate the selection of css selector or xpath.

</comment></comment><comment><USER6> I've used BeautifulSoup to do stuff like this.

<comment><AUTHOR> Yeah. Me too. The css selector is quite convenient. The only problem is that I need to pick the selector set for each website I need to scrape, and there are tens of them, which makes the work itself time-consuming...</comment></comment>


Ask HN: What languages? - <AUTHOR>

Hi
I've had a project up on the net for a while, and because I'm not a coder, progress has been out of my hands. For many reasons, I want to change this and either assist my partner or just plain take over due to current progress rate.
The project is an online press release aggregator and I'd like to find out what languages/databases I'd need to learn to carry on myself, and where I can find good tuts as well as compilers (for mac) for this?
Thanks <comment><USER2> If some code has already been written, shouldn't you learn _that_ language? If there's already a database in use, shouldn't you learn _that_ database?

</comment><comment><USER3> Talk to your partner and ask him what he coded it in, then start learning it. Also have a talk with him about management issues. It sounds like it's your project but it's not going according to an agreed-upon plan. Having a serious chat with him about it is probably a better place to start than just pulling the project from him.

</comment><comment><USER4> Did you mean to post a link to the site to allow us to help you figure out which language it is in?

<comment><AUTHOR> Seeing as most of the community here keep up to date with latest best practices, I figured that maybe it would be wiser to change to something that would offer more.</comment></comment>


NoSQL data store using the SEASTAR framework, compatible with Redis - <AUTHOR> https://github.com/fastio/pedis <comment><AUTHOR> For any Russian-speaking person, that naming is going to make it a big show- stopper.</comment>


Dead simple View Controller/Templating in PHP - <AUTHOR> http://joecortopassi.blogspot.com/2011/08/simple-view-controller-in-php.html

<comment><USER2> It gets even simple without the unnecessary OOP. PHP arrays and extracting into the render() function scope work just as well with less cruft.

        <?php
            // even simpler templating example

            // a view is described by a template file
            $template = "template_example.php";
            $vars = array("title" => "Waffles");
            $vars["items"] = array(
                "foo" => "bar",
                "waffle" => "iron",
                "apple" => "pie"
            );

            render($template, $vars);

            // view rendering function
            function render($template, $vars)
            {
                extract($vars);
                require($template);
            }
        ?>

The template_example.php file:

            <title><?php echo $title; ?></title>

<?php echo $title; ?>

            <?php foreach( $items as $k => $v ): ?>

<?php echo $k . ' - ' . $v; ?>

            <?php endforeach; ?>

        </comment>


Microsoft shows off its 'Centaurus' dual-screen laptop ahead of Apple's WWDC - <AUTHOR> https://www.zdnet.com/article/microsoft-shows-off-its-centaurus-dual-screen-laptop-ahead-of-apples-wwdc/ <comment><USER2> I really loved the Courier idea; even if all it was going to be was a voice- enabled two-screen OneNote w/ UI refresh I was going to get one.

As it stands, I dare not hope for this to actually become a shipping product given Microsoft's past history of hyping up cool ideas on hardware (Courier) and software (WinFS) that often don't quite get to the market.</comment>


Working With Unix Processes - <AUTHOR> http://workingwithunixprocesses.com/

<comment><USER2> $27 ebook on unix processes, signals, and all that jazz. Examples and sample code in Ruby. Written by Jesse Storimer (jstorimer at HN) of Shopify.

</comment><comment><USER3> I read the first six chapters and I really, really like it so far, great writing style and very informative!

</comment><comment><USER4> I'm intrigued, but would appreciate a free first chapter or two.</comment>


14,766 Let's Encrypt SSL Certificates Issued to PayPal Phishing Sites - <AUTHOR> https://www.bleepingcomputer.com/news/security/14-766-lets-encrypt-ssl-certificates-issued-to-paypal-phishing-sites/ <comment><USER2> I don't think this is a problem.

If those sites should not be allowed to own the domain names they are using, then the registrars can take the names back.

All the DV certificate means is "you are using an authenticated connection to the server that answers for foo.com".

TLS doesn't have anything to do with the ethics, morality, or legality of the site operators.

It's too bad that we've trained laypeople to think otherwise. But, even a phishing site should be served over HTTPS. Otherwise, the user will be vulnerable not only to the phishing site, but every intermediate server that the connection passes through.

</comment><comment><USER3> This is sourced from [https://www.thesslstore.com/blog/lets-encrypt- phishing/](https://www.thesslstore.com/blog/lets-encrypt-phishing/), which comes from a division of "the world's leading SSL/TLS reseller" ([https://www.thesslstore.com/blog/about-the-ssl- store/amp/](https://www.thesslstore.com/blog/about-the-ssl-store/amp/)).

(Not disputing the data.)

</comment><comment><USER4> Checking LE's stats page, they've issued over 30M certificates. 15k (hell, even 150k) certs used for nefarious purposes are nothing compared to the public good they're doing.

Also, LE did nothing wrong by issuing these certs (unlike a certain CA that issued bogus certs and will hopefully be kicked out of browsers soon): it's not a CA's role to dictate what a domain is used for.

</comment><comment><USER5> The blame is misplaced. DV certificates were never meant to protect against phishing. Chrome is just doing it wrong.

In my opinion, there should be no padlock, no visual indicators that a connection is secure for DV certs. The enduser doesn't have to know a website uses HTTPS. The padlock should only show up (along with the company name) when the website uses an EV certificate.

<comment><USER6> That would imply that there is no security benefit whatsoever provided by a DV certificate. To prove that DV certificates are usually seen as "better than nothing", just consider the difference browsers make in their treatment of self-signed certificates.

I'm also in the position of running a small online business on the side, and such a change would almost certainly require and upgrade to an EV certificate. While we have thought about it (and I have tried to find some data on changes in conversion rates possibly coming from it), I haven't quite been able to convince myself that the costs and hassle are worth it.

The process may be prohibitively expensive in some countries, or for some very small operations.

Maybe it's time to think about improvements to identity-verifying certificates. Either by improvements to the process towards automation, or maybe another certificate class relying on a reputation system for judging trustworthiness.

<comment><USER7> > I haven't quite been able to convince myself that the costs and hassle are > worth it.

Have you ever heard a regular user talk about the URL bar not being green?

<comment><USER6> No, but then again the URL bar's color rarely comes up when I do smalltalk. I've also never heard anybody in real life mention the size or color of "order" buttons, but I have pretty reliable data that even among choices that will seem to be completely reasonable, some will convert at 3x the rate of others.

</comment></comment></comment></comment><comment><USER7> In other news, water is wet. This is exactly working as intended. If I control the website superawesomepaypalscam.com then I should be able to get a DV (domain validated, it's in the name) SSL certificate for it. It doesn't matter what I intend to use the website for.

</comment><comment><USER6> I was about to applaud the author for highlighting that LE isn't a position to do anything about this, but then... the article takes a very strange turn to blame LE anyway.

I advocate quite often for presenting the other side's the best possible arguments, but I guess that I should include a recommendation to actually engage with these as well. In this case, it doesn't amount to much more than "but still..."

</comment><comment><USER8> Ryan Sleevi (Google's representative on the CA/B forum) has tweeted about what the CAs want and why they attack Let's Encrypt: they want the right to censor the internet.

[https://twitter.com/sleevi_/status/843866627255029760](https://twitter.com/sleevi_/status/843866627255029760)

</comment><comment><USER9> I wonder what the solution to this can be.

Should the CA prevent people from getting certificates for domains containing the names of 'big' websites and corporations? Should browsers make it more obvious that the website has an EV certificate? Maybe also try to detect phishing URLs?

<comment><USER10> There's one aspect, connection security, which either you have or you don't have. There's no useful purpose to an icon which is always there and people can then ignore. For practical purposes, browsers should only inform people when their connection is _not secure_ , so people can assume security the rest of the time.

Then there's the other aspect, identity. Is this really PayPal? Honestly, most users will never be able to notice if it's not. Who cares what host is in the address bar, or if it has a valid cert, or if it's plain http? Average users don't scrutinize these things because they don't know what a certificate is, or encryption, or how domains or web pages work. If it looks like Paypal, they assume it is.

EV certificates have always been a scam. I don't think users know they exist, and I don't notice _at all_ when I am on a site that uses one, unless I look really hard and click some buttons and read around. Even when I do (in Firefox, for example), no part of the UI explains to me that this company paid for an expensive process to prove this website is owned by this legal company. It just says "This is Bank of America Corporation (US), verified by xyz". Well, yeah, I would have assumed it was anyway, and I don't know what "verifying" implies. On an identical site without an EV using a phishing domain, it would simply not have this information, and nothing would seem amiss to me at all. So EV does nothing for me as a user.

What is more useful are apps. Apps in an app store do tend to pop up the most authentic result first. You can see this app is Bank of America, and the app was made by Bank of America Corp. Seems legit. If a phishing site popped up a phishing app, and it wasn't made by Bank of America Corp, I might be suspicious enough to double check it before installing it, but maybe not.

If the first time I visit a website the browser displayed some information about the domain, certificate, etc, that would be similar to what the app store does. "This is Bank of America website, owned by Bank of America company, and we legally verified it with X verifier." Or, "This is Bank of America website, it has _not_ been legally verified". Or, "This website is Bank of America, and is registered and geo-located in Lithuania". That would seem odd.

Another failure of browsers: I just visited [https://www.bankofamerica.com/](https://www.bankofamerica.com/), right cliked, clicked View Page Info, and then clicked the Security tab. (Honestly that's way too many clicks, and too hidden) It says "Have I visited this website prior to today? No." Which I don't think is true actually, but anyway, it at least is one hint that maybe I should be suspicious.

I think the browser should provide a button called "Identify" that when you click it, it tries to give you an idea of how much you can trust this page. Show me who owns the domain, the DNS, Geolocation, EV information, the URL, have I been here before, does it match any tracked lists of malware URLs, is it in an IP pool commonly used for cybercrime, etc. Everything I need to get a feeling for if it's trustworthy. And specifically, _throw up red flags where something might not be 100% trustworthy_. I probably do not care if abcnews.com is not 100% trustworthy, but I do care if Paypal is, so I want a button I can press that will tell me if it isn't.

<comment><USER9> I do agree for the most part, except for the use of the words 'trust' and 'trustworthy.' 'Authentic' is a better one I'd say.

<comment><USER10> Ok, so that's a third thing: security, authenticity, and trust. (I would probably rename "authentic" to "real" to be more intuitive)

A "Scan your PC now for viruses!" website that is exactly who they say they are may be authentic, but not trustworthy, as some steal your identity. That is probably already handled by Google Safe Browsing, though.

</comment></comment></comment></comment><comment><USER11> Well, why not then say this is domain registrar's fault, since somebody clearly did allow registration of paypal.com.tk or something similar.

SSL certificate is for secure communication with some website. Whether the website is a malicious one or not has absolutely nothing to do with security of the communication with said site.

I think the problem here is that people believe sites which are SSL enabled are good, and that problem will be fixed when all the web sites become SSL enabled.

</comment><comment><USER12> And Symantec lost their certification rights because they issued certificates to test.com and example.com?

<comment><USER7> Did the requesters of that actually control those domains (hint: they didn't)? If I register the domain superawesomepaypalscam.com then that is my domain name. Since it is my domain name and I can control it, obviously I can get a domain validated SSL certificate for it.

If I don't control example.com, then obviously I should not be able to get a domain validated SSL certificate for it. If I did, I would be able to MITM people trying to visit example.com (which is not my website), and that is bad.

This entire situation is basically working as intended.</comment></comment>


Scrivener for Windows/Linux: Writers rejoice - <AUTHOR> http://www.literatureandlatte.com/scrivenerforwindows/

<comment><USER2> This software is awesome! As a UK magazine put it - "it's not often Software spoon feeds happiness to the brain - Scrivener does this."</comment>


Uber loses court appeal against drivers' rights - <AUTHOR> http://www.bbc.co.uk/news/business-41940018 <comment><USER2> I have a US perspective so I'm interested in why this ruling was made. If the driver doesn't want to drive on a given day, there's no one he has to call. There's no approval of the time off. He just won't get paid because he isn't doing work.

In the US, one central tenant of being an employee vs a contractor is that your employer has power over your schedule, working location, and your work methods, which I see none of in Uber (which I did drive for back in 2016.) Uber drivers are allowed to drive for other groups and have other jobs.

So what basis was this decision made, if not "they are complaining and the right thing to do is something, plus Uber=bad?"

<comment><USER3> On what basis?

"92. ... The drivers provide the skilled labour through which the organisation delivers its services and earns its profits. We base our assessment ... in particular on the following considerations. (1) The contradiction in the Rider Terms between the fact that ULL purports to be the drivers' agent and its assertion of "sole and absolute discretion" to accept or decline bookings. (2) The fact that Uber interviews and recruits drivers. (3) The fact that Uber controls the key information (in particular the passenger's surname, contact details and intended destination) and excludes the driver from it. (4) The fact that Uber requires drivers to accept trips and/or not to cancel trips, and enforces the requirement by logging off drivers who breach those requirements. (5) The fact that Uber sets the (default) route and the driver departs from it at his peril. (6) The fact that UBV fixes the fare and the driver cannot agree a higher sum with the passenger. (The supposed freedom to agree a lower fare is obviously nugatory.) (7) The fact that Uber imposes numerous conditions on drivers (such as the limited choice of acceptable vehicles), instructs drivers as to how to do their work and, in numerous ways, controls them in the performance of their duties. (8) The fact that Uber subjects drivers through the rating system to what amounts to a performance management/disciplinary procedure. (9) The fact that Uber determines issues about rebates, sometimes without even involving the driver whose remuneration is liable to be affected. (10) The guaranteed earnings scheme (albeit now discontinued). (11) The fact that Uber accepts the risk of loss which, if the drivers were genuinely in business on their own account, would fall upon them. (12) The fact that Uber handles complaints by passengers, including complaints about the driver. (13) The fact that Uber reserves the power to amend the drivers' terms unilaterally."

<comment><USER4> Wow. If this ruling holds, it could also suggest that App Store developers are employees of Apple / Google in the UK. Several of those points apply just as much there, just replace driver with 'developer' and passenger with 'customer':

* "controls the key information (in particular the passenger's surname, contact details and intended destination) and excludes the driver from it"

* "determines issues about rebates, sometimes without even involving the driver whose remuneration is liable to be affected"

* "handles complaints by passengers, including complaints about the driver"

* "subjects drivers through the rating system to what amounts to a performance management/disciplinary procedure"

<comment><USER5> The difference is that apps are in competition with each other and the app store is more like a marketplace for developers. There is no physical interaction between developer and buyer.

Uber could never call itself a "marketplace" for drivers. It operates much more like a driver agency.

Edit: there are genuine online booking agencies for drivers in London, like [http://www.kabbee.com](http://www.kabbee.com), which act as a front-end for independent minicab drivers. I think this is much more that way it should operate if the drivers weren't employees, as Uber argues.

<comment><USER6> Drivers are in competition with one another in a way, though, in that any given passenger can only ride with one of them at any given time.

<comment><USER7> But they can not decide the price of their service. I think this is a great difference.

</comment></comment></comment></comment></comment></comment><comment><USER8> The flip side of this is that if Uber considers drivers as employees they could also prevent them from driving for their rivals.

I think the shift toward the "gig economy" is going to see the creation of a third classification of worker that sits between employee and contractor, likely with the negatives of both. The financial services sector has a version of this by employing large numbers of contractors indirectly through body shops. I wouldn't be surprised if we go that route here too with Uber/Lyft owning the platform yet deferring employment costs to a separate company. Their providers would be businesses, not people, and to sign up to be a driver one would apply at one of those businesses.

<comment><USER9> In certain areas Uber strongly incentivizes drivers to only drive for Uber. This is done by making driving only cost-effective at 40+ hours a week.

I understand this doesn't happen (or doesn't work) in some areas, New York comes to mind, but I've never met an Uber driver in the UK for whom it a) isn't a full time job, and b) who drives for other companies as well.

<comment><USER10> _This is done by making driving only cost-effective at 40+ hours a week._

How do they do that?

<comment><USER8> Pay $x/unit if less than 10 units.

Pay $y/unit if between 10 and 40 units.

Pay $z/unit if between 40 and 60 units.

The values for x and y may be too low to be economical so a driver would need to work more units (hours, miles, whatever) to get the higher z rate. That would preclude them from working for a competitor as there a finite number of hours per week.

<comment><USER10> I'm not asking how they _could_ do that. danpalmer says Uber is already making driving only cost-effective at 40+ hours a week, I'm asking how they are doing so.

<comment><USER8> I've seen bonuses for driving at least X hours or Y rides per week. You can only achieve them by being active as a driver for an extended period of time.

</comment></comment></comment></comment></comment></comment><comment><USER11> Wow. This decision might upend the whole gig and sharing economy. Now every company needs to tread carefully in UK. Uber is struggling to achieve proper profitability even with "gig" and "sharing" economy and now this.

<comment><USER12> Ending the "gig and sharing economy" is a good thing for society.

The sharing economy always was about exploiting workers (and externalizing costs), and this has created an additional cost for society.

For example, DHL's drivers are "self-employed", as result, in most countries their healthcare is funded by themselves, or by society (instead of the employer), and this means you (and your company) pay more taxes, just so that Uber, DHL, Amazon and co can save money.

<comment><USER13> > The sharing economy always was about exploiting workers

Define "exploit". Depending on the definition, you could argue that all economy is about exploiting workers.

<comment><USER14> The society has agreed upon a certain set of rights that all employers should grant to all their workers, and a certain minimal set of "benefits" that every working person should get - in this particular case, "holiday pay, paid rest breaks and the minimum wage". Going below that level is considered exploitative.

<comment><USER15> I'm in the opinion of if the government really care of it's citizen, they should do it directly, by providing low cost/free basic necessity or basic income, etc. This way their citizen is not "forced" to work with these company you deemed "exploitative"

<comment><USER16> > This way their citizen is not "forced" to work with these company you deemed > "exploitative"

Yes. When the basic income comes, it will redefine all the parameters by which we judge the qualities of jobs. But that doesn't mean that such jobs are not exploitative _now_ , according to _current_ standards. Your snarky quotes are unwarranted.

<comment><USER15> Still, the government can help their citizens Now, by providing cheap/free basic necessity.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> Hardly a surprise a contractor in the UK, I need to be careful I'm not suddenly a "disguised employee". Uber do genuine independent contractors no favours. I don't blame Uber. I blame successive UK govts. who won't make the law clear and just let the courts decide on a case-by-case basis. My biggest fear is that they'll come done hard on all contractors IT Consultants through to taxi drivers.

<comment><USER18> I'm not intimately familiar with UK labor laws, but isn't they key difference between contractor and a "disguised employee" is that _who_ gets the payment money? If you get all the payment (excluding tax etc.) for a work done then you are contractor, if the third entity takes a payment for _your_ work and pays you percentage of it, then you must be employee and that third party - employer - is responsible for taxes, insurance and other duties mandated by labor laws. The latter part is what Uber tries to avoid at all cost. For the same reason employment agencies are also not allowed to take fees for finding a job and required to pay no less than minimum wage[0].

0\. [https://www.citizensadvice.org.uk/work/rights-at- work/agency...](https://www.citizensadvice.org.uk/work/rights-at-work/agency- workers/can-your-agency-charge-you-fees/)

<comment><USER19> I think roughly, you come out right if you think the way you're doing.

But it's a bit more subtle in that they're going after two different types of abuses:

1\. Agencies that want to rent out contractors rather than contract out employees even when they treat these people as employees.

2\. Relationships where one or both sides want an employee to be a contractor to benefit from tax savings.

Uber seems to fall largely in 1, while e.g. IT contractors sometimes fall in 2, or is at risk of falling in 2.

In our case the consideration tends to be that tightening the rules means there's a whole checklist of things that makes it more or less likely that HMRC will deem us to be de facto employed or subject to IR35 (making us pay taxes similar to if we are in employment).

For #2 and to avoid IR35 there are a whole lot of considerations such as what costs we incur, whether or not we use our own equipment, whether or not we have sales and marketing costs; whether we employ someone; how many clients we have; if we have our own office for the company etc. that centre around whether or not the company has an existence independent from any given client.

The reason this is important for us too, is that one avenue for a business like Uber to avoid problems with #1 is to try to restructure around not pretending that drivers clients are the people they drive, but that their client is Uber but that they're still independent. If they try stunts like that, it may result in rule changes detrimental to other, genuine contractors too.

</comment></comment></comment><comment><USER20> Another case of a small vocal minority creating unwanted regulation for the rest. Over several years and 1000s of rides in the US, 100% of the drivers I've asked liked being independent and did not want to be employees. Many of them already had other jobs or were students or retirees that liked making money on the side.

For some reason, people keep forgetting that being a professional driver is easily available through Uber Black or any number of other transportation companies. Anyone who wants a full-time driving job can already get one.

Rulings like these will end up hurting the vast majority of drivers who will now have to show up for full-time shifts at locations and times that Uber determines, while earning less money. Good luck to them.

<comment><USER21> Is it an absolute must to go to work everyday if you are formally employed? Isn't it possible have the same flexibility if you put it on your employment contract?

<comment><USER20> Of course FT employment comes with vacation and sick time, but why would you get the same flexibility? Uber is 100% in charge of determining where and when you work, and you get paid the same hourly/salary regardless of how much work there is, so they'll optimize for riders as much as possible.

In the long run it might be better for Uber, more tightly controlled supply will mean cheaper and better rides while drivers make less. I can see surge pricing becoming pure profit when you can just order drivers to be at a certain place instead.

<comment><USER21> What about 0 hour contracts? What about literally writing down the flexibility you want in the contract?

If you think about it, it's kind of ridiculous to pretend that drivers are running businesses and employing themselves while all they do is ride a car just like an employee. If there's a reason for employees to have certain right, the same reasons should apply to the Uber drivers, therefore they should receive the same benefits.

<comment><USER20> Why would Uber accept those contracts? There are plenty of drivers, they're not going to hire you if you stipulate all these conditions, especially if they're paying a flat wage.

> _it 's kind of ridiculous_

Why? Many people are individual contractors, what is different about providing transportation as a service?

<comment><USER21> Well, there could be other cases where a business may have disproportional power and use it to exploit the elements of the society. That's when the regulations kick in and in this case this is the way the British prefers their society be regulated and protected.

Also, there being many people is not an argument, there are many people doing all kind of things and they stop when measures are taken.

<comment><USER20> I'm not sure what your comment is about. What other cases? There are plenty of issues with monopolies but in _this case_ there was a small group that sued and now the ruling affects all drivers. When 99% of a group does not want measures, then it is absolutely a valid argument.

<comment><USER21> Can I see the source of the "99% of a group does not want measures" argument?

Anyway, even if that was the case(source please) you can't go against the law. If you ask heroine addicts they would probably want more heroine but if the society decides that it's not O.K. to use heroine, you shouldn't expect your drug business to operate just because the heroine users are happy with it. If you have a problem with the society's choice you can follow the regular democratic routes.

<comment><USER20> It's in the article: 68 drivers in the lawsuit compared to all drivers affected.

Nothing was against the law, the drivers were contractors. Whether that classification is correct is what the case was about, and _now_ that the court ruled against, the drivers are must now be treated as employees.

This isn't society's choice. Full-time driver employment already exists, but is not something that Uber provided. These few people chose to drive for Uber anyway and demand full-time employment, and then sued for it. They won their case and now all drivers are affected by it. The democratic route would mean majority voting, which is the opposite of what happened with this case.

<comment><USER21> how do you know that other drivers are against? why do you think that the court's decision was not based on the rule of the law?

You are making too many assumptions. Your motivation looks ideological, apparently the british society choose not to go full libertarian.

<comment><USER20> You're conflating many things throughout this thread. What does "based on the rule of the law" or "libertarian" have to do with anything?

There was nothing illegal happening with drivers classified as contractors. _Whether_ that classification should change is what was being reviewed by this tribunal and they've decided on a change. No rule of law was ever broken, the situation has changed, just like many rules and regulations are updated and companies adapt from before the change to after.

In this case, a very small group create change that affects 100% of the drivers. The fact that only 68 total drivers joined this suit, started by only 2 originally, is a clear signal that it was at the very least not the full intent of the entire driving workforce. Perhaps they should've taken a vote before passing this ruling, especially since these people demanded something from Uber that was already easily attainable elsewhere (eg: a fulltime driving job).

<comment><USER21> So you think that it was equally possible that they could have been classified as au pairs? These things have a legal framework.

And the low number could have easily be do to the disproportionate power of the company over the drivers. You can't claim that if 68 people are taking action those who don't take action are against those 68.

And "Libertarian" has to do with the way the relationship between the businesses, the workers and the clients is regulated. Your argument about demand and supply is invalid because UK doesn't function purely on libertarian principles so the state has the right to say if these people are contractors or employees.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER22> It's interesting how Uber takes two very contradictory moral stands. "We offer the ability for drivers to meet passengers, they should be glad they have this opportunity in the first place to make money."

"The UK says that we have the ability to start a business, register a trademark and use the public infrastructure but they just don't get that we're way too cool and special for these "labor law-thingies". Doesn't anyone care about how we feel about all of this?!"

</comment><comment><USER23> I personally don't care for the frame of "Uber vs drivers' 'rights'". I wold say that "Uber loses appeal against mandatory employment conditions" is more accurate, i.e. that employing drivers is now conditional on providing them paid holidays and such.

FWIW paid holidays in particular make little sense for this kind of employment given that labor input is so variable.

</comment><comment><USER24> The article says drivers are entitled to minimum wage. I thought Uber drivers choose their own hours so I don't see how this will work?

<comment><USER25> The minimum wage in the UK isn't a fixed monthly amount. It's a fixed hourly amount. So for someone aged over 25 they should receive £7.50 an hour

The drivers will still be able to set their own hours, just they should be getting a minimum of £7.50 an hour for those they work.

<comment><USER24> If drivers can decide how long they are willing to work, even if there aren't many/any passengers around, then Uber has no way to control costs.

Unless they already have something in place to manage how many drivers are on the road in an area at any time? I thought that was just controlled by supply/demand, but that gets skewed by Uber needing to still pay minimum page when there is an over-supply.

<comment><USER26> And food producers are skewered by having to meet safety requirements when they could save money by ignoring them. Sucks for Uber that their business model doesn't win 100% of the time, but you don't allow individual entities to just ignore laws that set minimums whenever it's not the best for them.

</comment></comment></comment></comment><comment><USER27> So, now the self-driving Uber is gonna come even sooner right? This is a huge financial incentive to ditch the driver altogether.

</comment><comment><USER28> I don't understand why Uber doesn't let drivers choose if they want to be employed or contractors?

Those who choose _employed_ would have strict working hours, performance requirements, etc. and if they miss any target even once would be fired. They would be free to reapply immediately with no penalty.

<comment><USER29> > I don't understand why Uber doesn't let drivers choose if they want to be > employed or contractors?

I do. Employees are a cost and a liability. They have to be paid weekly/monthly instead of per gig. They would have to be paid even when there's no rides. They have to be paid for if they end up sick, unable to work, on pregnancy leave. They need to have payments in their retirement fund. In the UK's case, they need to pay for the NHS. They need to buy them a car, and pay for upkeep, maintenance, damages and fuel.

And they would fall under normal worker protection, so no, they wouldn't be fired if they missed any target even only once, there's procedures and legal requirements and such before formally firing someone.

So it's completely in Uber's interests to only do contractors, no obligations or extra costs except for whenever they do a ride, and I'm fairly sure the compensation per ride is much lower than is necessary to operate a business.

Where is the employee's benefits in this? Does Uber pay much more than they would earn working for a regular taxi company? I mean sure it's a job that people can do whenever they choose, but not doing it is a luxury. Assume most people need a 40 hour work week, or the income of one. Can't get that with Uber without working 80+ hours a week, and even then it depends on luck, supply, demand.

<comment><USER3> And employees have to be given paid holiday. And you have to pay them PAYE (so ~18% employer's side National Insurance Contributions). And if they're self- employed below the VAT threshold, they don't have to charge 20% VAT.

Muuuuuuch cheaper.

</comment></comment></comment><comment><USER30> What is it going to take to let people offer to work for whatever wage they want? A ride sharing dApp on a blockchain? Or is the British government going to ban peer-to-peer networks too?

>>When are we going to let companies pay their employees Slave wages, you mean.

So it's okay if they offer to work for a "slave wage" as a self-employed small business owner, but if they work through a third party, then it's not okay? How it taking away an option in their interest? You're reducing the avenues through which they can sell their labour, which cannot possibly be to their advantage.

>>It's not going to happen - we tried that before, and it didn't work. Remember the industrial revolution? Real good working conditions and pay in those factories, eh?

It worked incredibly well. Wages grew rapidly throughout the industrial revolution. What do you expect would have happened if a $15/hr minimum wage were instituted in 1875, when per capita GDP was $1,000?

>>The universal basic income.

It doesn't make sense that people should be denied the freedom to offer to work for whatever wage they want until universal welfare is implemented.

<comment><USER19> > A ride sharing dApp on a blockchain? Or is the British government going to > ban peer-to-peer networks too?

There'd be no need to ban peer-to-peer networks - the payment method does not change anything. If there is an employer-employee relationship it'd break the law if they don't follow the regulations for such a relationship. If the drivers are genuinely small businesses, it wouldn't.

> So it's okay if they offer to work for a "slave wage" as a self-employed > small business owner, but if they work through a third party, then it's not > okay?

The implication is in part that the paperwork necessary to operate as a small business acts as a deterrent for people to enter into it without at least some degree of understanding of what they're entering into.

It is providing what you're arguing for (the ability to set whatever salary you want), but at the same time protecting society against some of the worst exploitation by providing some hoops you have to jump through.

> How it taking away an option in their interest? You're reducing the avenues > through which they can sell their labour, which cannot possibly be to their > advantage.

This is nonsensical. If I offer to pay you to work in conditions that are guaranteed to be lethal, according to your arguments it can't possibly be to their advantage, because I'm reducing the avenues through which they can sell their labour. Clearly reducing the avenues alone is insufficient to determine whether or not the decision is to their advantage.

> It worked incredibly well. Wages grew rapidly throughout the industrial > revolution.

And through most of the period, worker activism grew rapidly as well. In a great many cases, workers _died_ during actions taken to improve working conditions and salaries. The fantasy that those improvements are purely down to lack of regulation is just that. It took repeated bloodshed to bring about those improvements, and a lot of regulations that were often also paid for in blood.

If there is any takeaway from the growth in wages during the industrial revolution, it is that aggressive direct action by workers provides results.

<comment><USER30> A DAO on the blockchain can be indistinguishable from a platform run by a company from the point of view of the driver.

>>This is nonsensical. If I offer to pay you to work in conditions that are guaranteed to be lethal, according to your arguments it can't possibly be to their advantage, because I'm reducing the avenues through which they can sell their labour.

There are no jobs that are guaranteed to be lethal. If there were, there are only two conditions under which someone would work them:

1\. They are mentally incapable of making decisions for their own life, and thus should be placed under conservatorship where they are not free to make their own decisions.

2\. The jobs is fraudulently advertised.

In either case you don't need to resort to creating mandatory minimum employment standards like minimum wage. What you're effectively endorsing is conservatorship for the entire population.

>>And through most of the period, worker activism grew rapidly as well. In a great many cases, workers died during actions taken to improve working conditions and salaries.

I'm dubious about this claim. It sounds like another pop-history claim that is baseless. Do you have a source?

I remember reading that workplace injuries were decreasing throughout the industrial revolution era. From what I understand regulations had no positive impact on this upward trajectory in safety.

What did definitely happen during the industrial revolution is that life expectancy rapidly rose. The famines and starvation that frequently occurred prior to to the 16th century became increasingly uncommon as the economy of the West industrialized.

>>If there is any takeaway from the growth in wages during the industrial revolution, it is that aggressive direct action by workers provides results.

The opposite is true. There were very few labour regulations and no minimum wages instituted during the Industrial Revolution (thanks largely to legal doctrines of substantive due process guaranteeing the freedom to contract in place since the Supreme Court Lochner ruling). After the propaganda victory of the socialist parties and labour unions, extensive labour regulations were introduced.

This has accelerated since the creation of the OSHA in 1970. The last 40 years have seen wage growth stagnate and life expectancy to even decline for some demographics.

The Nirvana fallacy has cost generations improvements in their quality of life.

<comment><USER19> > A DAO on the blockchain can be indistinguishable from a platform run by a > company from the point of view of the driver.

And it's entirely irrelevant. If the driver is genuinely acting as an independent company, then it's not a problem. If the driver is being treated as an employee, then some entity is the employer and that entity is on the hook for the legal requirements, and it'll be down to courts to figure out who to hold responsible.

> There are no jobs that are guaranteed to be lethal. If there were, there are > only two conditions under which someone would work them:

You're evading the question by being pedantic. Reduce "guaranteed to be lethal" to whatever threshold you prefer and it stands.

> I'm dubious about this claim. It sounds like another pop-history claim that > is baseless. Do you have a source?

Each and every history book that covers the labour movement and workers rights. I'm not going to fill in gaps in what is high school level history for you. Go read some wikipedia pages for that matter.

> The opposite is true. There were very few labour regulations and no minimum > wages instituted during the Industrial Revolution (thanks largely to legal > doctrines of substantive due process guaranteeing the freedom to contract in > place since the Supreme Court Lochner ruling).

Lochner post-dates the most significant gains in US labor history by decades.

> After the propaganda victory of the socialist parties and labour unions, > extensive labour regulations were introduced.

... and so did this. By the 1920's the support for socialism in the US was rapidly headed for collapse.

> This has accelerated since the creation of the OSHA in 1970. The last 40 > years have seen wage growth stagnate and life expectancy to even decline for > some demographics.

Nonsense. Ca. 1920 or so the US lost it's leadership in labour rights improvements, and especially so after World War II when the social democrats had gained massive influence in Western Europe, and most European countries built universal healthcare systems and expanded unemployment rights and other welfare dramatically while the US mostly stood still.

If you want to blame US stagnation in the last 40 years on something, consider that the US is lagging further behind Europe in workers rights and welfare than it ever has, so whatever the cause is, you'll have to look elsewhere.

<comment><USER30> >>And it's entirely irrelevant.

I explained the relevance:

>So it's okay if they offer to work for a "slave wage" as a self-employed small business owner, but if they work through a third party, then it's not okay? How it taking away an option in their interest? You're reducing the avenues through which they can sell their labour, which cannot possibly be to their advantage.

To rephrase: when DAOs are created, drivers will be able to offer their services without meeting these arbitrary employment standards, without going through a company, and just as easily as going through a company. How is making it illegal for a company to hire them under terms that don't meet employment standards in their interest, when doing so won't prevent them from working for terms that don't meet these standards, and when all it will do is reduce the avenues through which they can work for terms that don't meet the standards (translation: all it will do is reduce their market power)?

Maybe I'm still not clearly communicating my point. If it's not clear what I'm asking please let me know and I'll try to rephrase it.

Either way, could you please address my argument?

>>You're evading the question by being pedantic. Reduce "guaranteed to be lethal" to whatever threshold you prefer and it stands.

The pedantry is in you making this a point about how I worded the beginning of my argument and ignoring the bulk of my argument, and its substance, that applies to any threshold. Here it is again:

\--

If there were, there are only two conditions under which someone would work them:

1\. They are mentally incapable of making decisions for their own life, and thus should be placed under conservatorship where they are not free to make their own decisions.

2\. The jobs is fraudulently advertised.

In either case you don't need to resort to creating mandatory minimum employment standards like minimum wage. What you're effectively endorsing is conservatorship for the entire population.

\--

I really don't have the patience to deal with bad faith debating. Just know that if you win the public relations campaign through rhetoric and sophistry, but you're advancing the wrong cause, you're hurting yourself too. So there is no sense in debating disingenuously about public policy using these tactics. Western Europe and the US have seen wage growth stagnate over the last 40 years due to the kind of behaviour you're exhibiting now.

Our human society only functions at all due to the extraordinary efforts of numerous people to cooperate and honestly debate issues to reach a consensus on the right way forward.

Even a small portion of the population acting in bad faith to push their own narrow interests at the expense of society at large is enough to cause the whole thing to break down, because it's nearly impossible for society at large to arrive at a consensus on the truth about complex topics when there is a significant amount of misinformation being injected into the debate. Please be part of the solution.</comment></comment></comment></comment></comment>


The Colombian Hit Man Who Became a YouTube Star - <AUTHOR> http://www.nytimes.com/2016/06/13/world/americas/john-jairo-velasquez-colombia-youtube-pablo-escobar.html <comment><USER2> Medellin is my hometown (I'm actually spending a few weeks here), all of my family's previous generations are from Medellin and we are one of the innocent families that were affected by the Medellin Cartel in the 80s and 90s. Therefore, I feel the need to expand a little bit on this -btw, great- article.

First clarification: Average people don't admire Pablo Escobar and his disciples. What's true about Escobar is that he made philanthropic efforts with the aim of socially developing Medellin's suburbs and that's where the admiration towards him comes from, but this is not 'Pablo Escobar's kingdom' or something like that. Normal people know that he caused more damage than progress. BTW, safety is an order of magnitude higher two decades later.

Second clarification: Popeye is actually a smart guy. Since he was released on parole he started this Youtube channel where he has shown he is a great content creator and promoter, he is also running his own company (on a legal industry) among other things. People are liking his videos more than disliking them because the channel is actually really good as a channel, but we all know he was an assassin.

Third clarification: Colombia is in a huge social transformation process again. Colombia has had drug cartels, three extreme-left guerillas and one extreme-right paramilitary group. The negotiation processes with one of those guerillas (M-19) and with the paramilitary (AUC) were successful. Druglords were shot down. Right now the government is in a new negotiation process with the biggest of the 2 remaining guerillas (FARC). In order for a long-term peace to take place, normal people will have to accept the fact that these people will be reinserted into society and they will be our neighboords, coworkers, etc. In some way it's good that people are accepting to forgive (to some extent) Popeye, just the same way they have forgived and will have to forgive groups outside the law.

In conclusion we could become a role-model for failed states, and this is an example that shows why that is true.

<comment><USER3> I'm from Somalia and I can assure you the Colombian experiment is being watched with a keen eye.

We too have murderous killers reformed to some sort of tribal elders.

Our violence, much like yours, has been mostly profit/power-driven. Except ours got tremendously worse with the introduction of Jihadi ideology.

I pray to FSM for the safety of both our nations. Stay safe, and may Colombia and Somalia stay safe. Con todos mi amor, hermano/a!

<comment><USER4> Interesting. Could you say something about why the jihadi ideology was introduced in Somalia, by whom, and why it was able to take hold?

<comment><USER5> Am I crazy for thinking this is a pretty serious ask of someone who is presumably just a regular person from Somalia. I could be way wrong and "mahmud" may have some great insight into this question. It just seems like someone would write an entire dissteration on after having spent many years conducting research.

<comment><USER6> Well, the lay-person's understanding of it would be interesting as well. Like asking an American "Can you tell me about your war for independence against the British and why it happened?" You _could_ write a dissertation on it, but it's also interesting to hear the tl;dr that a citizen believes (correct or not).</comment></comment></comment></comment></comment>


The speed, size and dependability of programming languages - <AUTHOR> http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of-v1.html

<comment><USER2> The original discussion here included the study's author: <http://news.ycombinator.com/item?id=634692>

<comment><USER3> Interesting: The Shootout has since added language scatter plots thanks to this article:

<http://shootout.alioth.debian.org/u32q/shapes.php>

(Isaac Gouy, the Shootout's maintainer, appears in the article's comments.)

</comment></comment><comment><USER4> One thing you have to say about the benchmark game: it is a good measure of how fast _naive_ code runs. If your field is something like genetics, you don't want to have to know the internals of your JIT compiler to get fast code. You just want to do genetics.

<comment><USER5> When it comes to fine distinctions, the game is a sad joke.

It's an arms race toward writing nearly machine-language code as best your language supports it.

There are Haskell programs that are doing a significant amount of work as essentially "peek" and "poke" inside a memory buffer.

There are Java programs that use variables q,r,s,t,u,v,w,x,y,z rather than two arrays of size 5.

I guess if you have a legitimate need for getting the most performance on some _fixed_ task (and abstraction, readability, and extensibility can all be sacrificed), without using a call to C, then both are fair.</comment></comment>