Computer Science Degree - As Valuable As You Make It - <AUTHOR> http://throwww.com/a/87l

<comment><AUTHOR> Thats annoying. Throwww.com is still up though, I wonder if there was a load problem on the one node.

</comment><comment><USER2> A server error occurred. Please contact the administrator.

</comment><comment><AUTHOR> Heres the post since A server error occurred. Please contact the administrator.

Computer Science Degree - As Valuable As You Make It

I hear a lot of my fellow students talking about "The university experience", and I think that the phrase has gotten lost somewhat.

University, should act like a buffer between compulsory education, and the workplace. It should prepare you in the ways that school does not, for the discipline that you wish to work in. I think we can all agree that some universities are better at this than others, but I think most of the responsibility for this preparation lies ultimately with the student, not with the lecturers, tutors or deans.

Many of the undergraduates I know seem to be going through university by default. What I mean by that is, they attend lectures, they complete their assignments to a good standard, and that sets them up for a nice stable 2:1 even a 1st by the end of the third year. However, I don't think that this is enough.

I have just finished my second year as a computer science undergraduate, and recently got the opportunity to work as an intern at a tech startup for the summer, and I can't get over the feeling that many of my peers who are generally considered good students, just wouldn't cut it, and this is for a number of reasons.

Take Linux operating systems for example. Now we did have a module that covered the basic commands and some rudimentary C, but it definitely was not enough to be able to work effectively with it. It was more of a primer so that we could go away and practice the skills that we learnt and expand on them as we apply them to other problems, either invented or real. However I believe a lot of my classmates just took it as either the be all and end all, or they just did not care. Either way, they didn't go out of their way to learn more than was necessary to pass the exam and as a result, they got a good grade, but still can only really us cd and ls, if you gave them a tar.gz of a software package and asked them to install it, they wouldn't have a clue where to start. In my experience so far in my internship, all of my work has been on a Linux machine. The fact that I could already use it to some proficiency (I'm still not great mind) saved time and effort on the side of my boss and my temporary colleagues. More importantly, being able to basically use Linux was kind of expected from day one.

A more important skill is that of being able to research and learn things for yourself. Unfortunately (at my university anyway) students are spoon fed a little, this results in people being complacent, only learning what is necessary to pass the exams, which only requires that you read the lecture PowerPoint slides. So the only real way to learn this skill is to take an interest, try to build things yourself that go way beyond the scope of the course, so that you must look things up and learn things for yourself. Again this based on the short experience of my internship this is another very necessary skill, and one that, again, is expected of you. If I was constantly asking, "how do I do this ?", "What's an X ?" or "Will this work ?" people would just get annoyed. I would as well. The answer you get is "here's a useful link", "[http://lmgtfy.com/?q=X#"](http://lmgtfy.com/?q=X#") and "try it and see for yourself!" These are things that you should be doing anyway! (Especially the last of the three, I get hopelessly annoyed when someone asks you "will this work?" and It's obvious that they either cant be bothered to try it for themselves, or that doing so hasn't even occurred to them).

I'm not a wizard, I just try stuff !

It disturbs me when my classmates give me a look of bewilderment as I discuss with them my projects. Instead of going, "oh, that's cool, let me see that bit of the code", or "hmm, you could have done that this way, here let me show you", they simply stare blankly at you and your arcane creation and go "Wow, Where did you learn that?!", or even worse :( "Ha that's amazing! I could never do something like that. . .". Bare in mind that these are theoretically "good students" with good grades.

Now not all people are like this, and thankfully there are those of us (of which I hope that I am one) that really try to make the most of university and, are whom with which I tend share the first of the conversations with.

Finally, there are plenty of ways to get more involved! So nobody has any excuses, here's a short list of things that I find valuable:

\- Read the news! In a rapidly advancing field, often what you are being taught by your lecturers and text books, is relatively outdated, keep on top of new languages, libraries, technologies . . . Every day I see at least two top ranking articles on news.ycombinator.com on new JavaScript libraries if that's what you're into.

\- Get involved in open source projects. Find a project that you are passionate about, download the code and start tweaking things, ye'h ok you may not fix any major bugs or contribute anything useful for a while, but the experience of reading, getting to understand and changing someone else's code is invaluable. So, just find something that your interested in and study it for a while.

\- Make stuff! Try things out. If you have an idea, grab your laptop and prototype it, even if it ends up being useless, or it didn't really get off the ground, you will have learnt something! You never know, you could end up with something pretty cool!

So to my fellow undergraduate computer scientists: Yes we fortunate that we are going in a profession where jobs are readily available and relatively well paid. However, we cannot afford to be complacent. Your degree on its own will only get you so far.

One more thing: Learn what version control is and how to use it. Just, trust me.</comment>


Evolution will no longer be taught in Turkish schools - <AUTHOR> http://www.npr.org/sections/parallels/2017/08/20/540965889/in-turkey-schools-will-stop-teaching-evolution-this-fall?sc=tw <comment><USER2> >worried, but I hope it changes by the time my grandchildren are in high school

Good luck with that.</comment>


Show HN: Startup Name Generator. - <AUTHOR> http://namefoo.com/

<comment><USER2> A bit of inspiration can do wonders :) However, I was hoping that the red and green .com indicators would tell me whether the domain is available or not. Didn't find that information accurate.</comment>


Ask HN: Trending technologies worth learning now? - <AUTHOR> As a computer scientist, If I want to start learning a technology whose demand is and will remain increasing, be it software development, artificial intelligence, or computer security for example, which one should it be? <comment><USER2> Semantic Web tech. I know, I know... it's easy to sit back and say "WTF, the Semantic Web is a pipe-dream, and it's been being developed for 15 years and it isn't here yet" etc., etc.

I will counter that by contending that the Semantic Web _is_ here, just not fully so, and furthermore, that a more and more complete Semantic Web is inevitable.

My feeling is that you couldn't go wrong learning RDF, SPARQL, etc, AND, more specifically, focus on NLP. Why NLP? Because NLP is the bridge between the gazillions of petabytes of "stuff" that's out there that _isn't_ part of the Semantic Web, and the structured data that does make up the Semantic Web. When you can use NLP (and related tech) to extract semantic meaning from free-form text and then make it part of the Semantic Web, that's pretty powerful stuff.

Take a look, for example, at Apache Stanbol[1] and the stuff they're doing with extracting structure from text.

Also, look at things like dbpedia[2] and the Linked Data[3] initiative. Seriously, seriously cool stuff is going on...

[1]: <http://stanbol.apache.org>

[2]: <http://www.dbpedia.org>

[3]: <http://linkeddata.org>

<comment><AUTHOR> It's funny, because besides RDF and NLP, I haven't heard of any of these technologies. Also, it coincides with my current interest in machine learning, so that's great. I will look into these. Thank you!

</comment></comment><comment><USER3> I'm sorry, but I think the question won't lead to a sufficient answer. Because what you describe is in fact becoming "services offered" (through (web-)technology). You're asking which field you should put your focus on, but the question is which fields are going to be required in the future. Web 3.0 was proposed by Sir Tim B. Lee and most of his predictions have become true. That's why I think that the question should be formulated as: "How can I benefit humanity as a computer scientist?" or What can I do to realize Web3.0 as a computer scientist.

The answer of the user "mindcrime" is a direct answer to the Web3.0 question, but I thought that you should know the background. As the background knowledge behind the answer is sometimes more helpful than the answer itself.

Building Services is trending right now and building technologies and architectures that are able to scale to the requirements of these services are part of the trend.

Key characteristics are: Low barriers to entry, little or no capital expenditure, massive scalability, multitenancy, device independence, location independence. But it can be reduced to "benefit" only aswell.

Everything as a service (EaaS, XaaS) is a concept of offering Services through technology. It is a subset of cloud computing, but not limited to. IaaS, PaaS and SaaS are the most popular form of Service.

The most common and successful example is software as a service (SaaS), but the term as a service has been associated and used with many core components of cloud computing including communication, infrastructure, data and platforms. Humans as a Service (HuaaS) and other creative ways of using technology and architecture to solve problems are exciting forms of these Services.

Tl;Dr:

Learn what you think will make the world (a little) better as a computer scientist. Semantic Web, Web3.0, Online Education and Home Schooling are the horses I would bet on. If you don't trust us, hack Google Trends and "similar services" <http://www.google.com/trends/>

</comment><comment><USER4> Stats, Coursera+hadoop OR

Mobile java+droid / IOS OR

Rapid Web Django+Python or ROR+Ruby

Pick a vertical, then a technology and do a project.</comment>


Show HN: Prediction Platform for Indian Elections 2019 - <AUTHOR> https://india2019.vote <comment><AUTHOR> Predict the winning PM, coalition & split of seats for the upcoming Indian Elections 2019.

On May 24 2019, find out who among your friends made the most accurate prediction.

</comment><comment><USER2> If BJP wanna prove they didn't hack the voting machine last time, head onto this site and show what's the public really wants. (And vice versa)

</comment><comment><USER3> Good platform to know the public's pulse on election!

</comment><comment><USER4> What are these coins?

</comment><comment><USER5> Looks interesting. Plan to have your own exit poll ??</comment>


TangoCMS 2.3 "Dolphin" hits the seas - <AUTHOR> http://tangocms.org/article/view/2.3.0-dolphin-released

<comment><AUTHOR> I'm loving the new features (especially the new WYSIWYG editor - much better than the old wiki syntax)</comment>


Man sentenced to prison after assault of domain name owner who refused to sell - <AUTHOR> https://www.justice.gov/usao-ndia/pr/social-media-influencer-sentenced-14-years-federal-prison-after-plotting-hijack <comment><USER2> People do get very emotionally involved with domain names. I bought an expired domain some time ago for something like $200. The previous owner had apparently not intended for it to expire. I didn't know that until he contacted me.

I was sympathetic, so I told him what I paid, and offered to sell it back for $200 + $100 for my effort to start over, migrate stuff, etc.

I got a tirade of cursing and accusations back for my trouble.

<comment> saiya-jin Wow, some people are quite something, acting like whole universe revolves around them. I guess I would respond (in rather forced) polite manner that you are disappointed by his reaction, that he should take steps to have more control of his emotions for his own good, that because of his insults you are hereby stopping any other communication with him, unless he offers 100x more as compensation for his hurtful actions.

We all can do our little to teach a-holes of this world a lesson or two in good manners. Nothing crazy or vengeful, but something they can and should take as a lesson to become better human beings. Or suffer, their choice. Even most broken people usually understand that kind of basic logic.

<comment><USER2> It's petty, but I didn't respond. I just extended the registration to 10 years :)

<comment><USER3> How sure are you it wasn't an attempted scam? For some reason scammers seem to get really abusive like that.

Totally a tangent, but I was once at a time share presentation (I was a stupid kid and they got me in with some free cash or something) and they wanted about $30K for this timeshare which definitely wasn't worth $30K. Hell, the house I was living in ALL the weeks of a year was only about $100K. When I was like, "I can't afford that" they started talking to me about how this $30K timeshare was a great investment. I responded like, "If I had $30K to invest, there are better things to invest in that don't cost me hundreds per year in management fees." The guy brought over his boss who screamed in my face, basically telling me I'm too stupid to invest $30K and I'm wasting his time. I looked around, and _everyone_ was looking at him. I thought to myself, "Dude, you just nuked every possible sale in this room for a sale that was never going to happen."

<comment><USER2> No, he was the previous registrant. Same email.

</comment></comment></comment></comment></comment><comment><USER4> I wanted a specific domain name of a deceased loved one. I approached the domain parker and asked what they wanted for it. He wanted 200k and escrow. I offered $50. He took my $50.

<comment><USER5> .com domains really need to be more expensive. If the price was $100 or $200 a year, that would significantly decrease the amount of squatting.

<comment><USER6> Ideally, you'd pay more for a domain you weren't actively using than one you were. That way, squatters pay extra but real users aren't disadvantaged.

Of course, determining whether a domain is really in use or not is hard, and whatever criteria are adopted, squatters will try to game them.

<comment><USER7> Determining that is not hard at all. Is there a big buy button and a million ads on the front page? Then it's not being used. Done.

But of course, ICANN and registars make way too much money from these people to do anything about it. Isn't capitalism just wonderful?

<comment><USER6> > Determining that is not hard at all. Is there a big buy button and a million > ads on the front page? Then it's not being used. Done.

It is easy to detect the egregious cases like you describe.

But, not all cases are so egregious. I might have no website on the domain, yet still be using it for email. Or, I might be hosting some sort of intranet on the domain and all the public can see is a login page, with no idea of what content lies beyond it. Or, I might not be using the domain at all, and just waiting for someone to contact me with an offer to buy it. I might even hook it up with email that I never really use (but which redirects to my actual email), and a login page with nothing behind it, in order to make it look like I am really using it. How to distinguish these cases?

</comment></comment></comment></comment></comment><comment><USER8> I'm curious how he thought he would get away with it. If the plan was successful, he'd control the domain name, which seems like pretty damning evidence.

<comment><USER9> If he'd survived. If say he'd been killed after the transfer, I'm not sure Police would have checked to see if the victim had made any domain name transfers prior to the home invasion.

<comment><USER10> Would you (or anyone with even half a brain) risk a murder conviction on the basis of "I'm not sure police would check"? Especially considering there wouldn't have been any obvious motive for the killing which would make them investigate further.

Not to mention, owning the domain is a permanent record, so even if they don't check it immediately, the evidence can always resurface years later.

<comment><USER11> Rationality is already on holiday when you decide to steal a domain name at gunpoint.

<comment><USER12> And _this_ domain name in particular...

</comment></comment></comment></comment></comment><comment><USER13> Jesus. I'm really impressed that the person who legitimately owned the domain was able to regain control of the gun and stop the attacker.

<comment><USER14> The guy was not bright. Someone orders you at gunpoint to transfer your domain name... you do it. Less risk of dying and the ICANN dispute resolution is going to be really straightforward.

<comment><USER15> The article says he was pistol whipped multiple times even though he was complying with the gunman. He saw an opportunity and took it, and it's totally unfair to criticize his actions in such a high pressure situation from the comfort of your keyboard.

<comment> 52-6F-62 I've never faced a gun, so take my words with a grain of salt here: I thought the old ...advice... was if the attacker has a gun, you charge—if they attacker has a knife, you run. I'm sure that carries some qualifiers, though...

It's a pretty wild story for being about a website domain name.

<comment><USER16> I have been fired on twice (I live in FL it comes with the territory of being a Florida Man)

TLDR; in a 10ftx10ft room I want a knife.

Yes a gun is not a reactionary weapon you have to pull the trigger, it takes time to process that the victim has now moved to being the attacker and usually if you are within arms reach it is too late for the original attacker to react and pull off the shot before he has lost at least total control of the gun. This is why cops maintain distance when they have someone at gunpoint.

Conversely a knife is a reactionary weapon if you jump at me and I flinch you get cut. Not a whole lot of ways to disarm a knife unless the attacker is actively attacking with it, thus exposing his arm.

This is why 9 times out of 10 in a fight between a person with a gun and a person with a knife, at striking distance, the person with the gun will fair far worse than the person with the knife. The person with the gun has to reorient and shoot again, the person with the knife just has to flail. Knife also leave more damaging wounds when used as a penetrating weapon and have more chance of hitting vitals or an artery.

Here is a great training video of how effective a knife is against someone armed with a gun:

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

</comment></comment></comment></comment></comment><comment><USER17> In answer to the obvious question: How did he think he would get away with this? What was his end game? The only answers are (1) people don't commit crimes unless they think they will get away with it - everyone in prison had a plan for avoiding prosecution, and (2) There are some really really stupid people in the world who simply can't see or project beyond one or two steps. This may be because of drug use or environmental conditions (lead paint), or because they just aren't super bright. The world is safer with him in prison.

<comment><USER18> I know plenty of people who have been to jail and or prison. Most said they gave zero thought to concequences. Be it rage, addiction, or opprotunity, the usual impetus for the crime that gets caught is usually ill-considered at best. Not expecting to get caught is very distinct from expecting not to get caught.

<comment><USER19> that is very interesting: it explains a lot.

</comment></comment></comment><comment><USER20> This is so mind boggling and sad... It was over a pretty average domain name (doitforstate.com) and there's no way those guys would have gotten away with it even if the victim had been silenced.

<comment><USER21> The problem is the tactic he used.

"A man who enlisted his cousin to break into a Cedar Rapids man's home and order him at gunpoint to transfer an Internet domain"

If this was just phising attack from phone and keyboard it would be slap on wrist

</comment></comment><comment><USER22> I was attending Iowa State Universiry when the "Do it for State" thing kicked off. I never looked it up myself, but I heard the occasional reference to it around campus so it must have been somewhat popular.

A relative of mine who works as an administrator at ISU also complained about it at the time. It's not a great thing to have associated with your school, although there isn't much they could do about it.

I thought it was a one-off thing. Now I'm just glad I never needed to associate with that guy.

<comment><USER23> OHH! It's "sports". Here I was wondering what doitforstate meant.

</comment></comment><comment><USER24> Registering a .com with a simple additional word such as "doitforstatedudes" and then spamming Google would have gotten him to page 1. Black hat SEO works.

<comment><USER19> I was under the impression that blackhat SEO only worked 5 or more years ago. Aren't those days completely gone?

<comment><USER25> Blackhat SEO methods from 5+ years ago may not work anymore, but it's a cat/mouse game, so there are certainly modern methods that work like a charm until Google catches up again.

It's like adblocking. 5+ years ago it was generally enough to target HTML elements with an ID of "advertising-wrapper" or something obvious like that. But ad networks and the sites that implement them got smart and started using generic or randomized IDs so that would work. Then the new method was blocking known advertising domains. Now some of them are starting to serve ads from the same domain you access the site through.

</comment></comment></comment><comment><USER26> I appreciate the change of the title and using the word "man" instead of "influencer".

<comment><USER27> I think "influencer" gives more context and is less "implied" sexist, in addition to being in the original title.

<comment><USER26> Maybe, but any term besides influencer feels better as it doesn't give this thug some kind of credit for being a pseudo celebrity. Call him an internet vlogger if you must.

</comment></comment></comment><comment><USER28> What an idiot. If he had money, he should have just paid some lawyers. Trademark the phrase "Do It For State" then strong-arm control of the domain via an IP infringement claim.

<comment><USER29> Per another article[1], Dayo (the owner of the domain name) _also_ filed and received a trademark for "Do It For State".

[1] [https://onezero.medium.com/the-influencer-and-the-hit- man-6c...](https://onezero.medium.com/the-influencer-and-the-hit- man-6c3905efd3c3)

<comment><USER28> It's sad but with enough money, a good legal team could almost certainly win it back. Most likely when the holder realized a modest payout was cheaper than their own legal fees to defend it.

</comment></comment></comment><comment><USER30> Why didn't he just buy doitforstate.christmas?

</comment><comment><USER31> Funny, I bet doitforstat.es is available. (well maybe not now)

</comment><comment><USER32> Related article: [https://onezero.medium.com/the-influencer-and-the-hit- man-6c...](https://onezero.medium.com/the-influencer-and-the-hit- man-6c3905efd3c3)

via [https://news.ycombinator.com/item?id=21751920](https://news.ycombinator.com/item?id=21751920)

</comment><comment><USER33> Long version of this story - [https://onezero.medium.com/the-influencer-and- the-hit-man-6c...](https://onezero.medium.com/the-influencer-and-the-hit- man-6c3905efd3c3)

</comment><comment><USER34> The thought of dying after a DNS transfer is plausible.

</comment><comment><USER35> I thought some NLG app created this headline, but it's real life.

</comment><comment><USER36> Why wasn't "Polo" done for conspiracy to murder

<comment><USER37> Probably because they wouldn't have been able to prove intent to murder? If the victim had actually been killed, "Polo" probably would have been charged under the felony murder rule.

</comment></comment><comment><USER38> What a weird angle.

Most people reading the title are going to think this is about some computer tomfoolery, not violence.

<comment><USER39> Yeah, I don't think it was the plotting that got him 14 years, it was:

> Hopkins put the firearm against the victim's head and ordered him to follow > the directions on the demand note. Hopkins then pistol whipped the victim > several times in the head.

<comment><USER40> No, Hopkins got 20 years. "Polo" got 14. It should've been the other way around because Polo was the one who exercised leadership in the crime.

</comment></comment></comment><comment><USER41> This is why you should pay for WhoIsGuard.

</comment><comment><USER42> The title of this article really doesn't at all explain the contents.

</comment><comment><USER43> That seems unusually harsh.

A lot of violent rapes get less of a sentence.

<comment> Digit-Al I thought the same until I read the article. The headline is pretty crap tbh. It wasn't a normal domain hijacking, he sent in an armed accomplice who pointed his gun at the victims head and threatened to kill him if he didn't transfer it. The victim was injured during a struggle and the accomplice was shot dead.

<comment><USER44> The accomplice is not dead. He has a 20 year sentence.

<comment><USER45> That info is not mentioned in this article, merely that he was shot multiple times in the chest, then is never mentioned again.

<comment><USER44> I think they switched articles. It was there when I read it the first time. It's not the same article when I go back to the link. Something definitely changed.</comment></comment></comment></comment></comment>


Upspin Overview - <AUTHOR> https://upspin.io/doc/overview.md <comment><USER2> Dupe? Previous discussion on the introduction of upspin: [https://news.ycombinator.com/item?id=13700492](https://news.ycombinator.com/item?id=13700492)</comment>


A Call for Open Science in Giftedness Research - <AUTHOR> http://journals.sagepub.com/doi/full/10.1177/0016986218784178 <comment><AUTHOR> What is perhaps notable about this paper is that a link to the preprint was put into the abstract:

>Current practices in study design and data analysis have led to low reproducibility and replicability of findings in fields such as psychology, medicine, biology, and economics. Because gifted education research relies on the same underlying statistical and sociological paradigms, it is likely that it too suffers from these problems. This article discusses the origin of the poor replicability and introduces a set of open science practices that can increase the rigor and trustworthiness of gifted education's scientific findings: preregistration, open data and open materials, registered reports, and preprints. Readers are directed to Internet resources for facilitating open science. To model these practices, a pre peer-review preprint of this article is available at [https://psyarxiv.com/nhuv3/](https://psyarxiv.com/nhuv3/).</comment>


An Economic Explanation For Why DRM Cannot Open Up New Business Model Opportunities - <AUTHOR> http://www.techdirt.com/articles/20070301/005837.shtml <comment><USER2> Ok, I don't like DRM either, and agree it's most likely an overall negative, but his whole "post scarcity" thing is kind of BS. When he's being a bit more honest, he admits that you need to follow the scarcity to make money.</comment>


Venmo for Business? - <AUTHOR> I'm searching for an app like Venmo or Square Cash that doesn't have monthly transaction limits. I need to reimburse several hundred volunteers on a monthly basis. I'd happily pay for the service. Can anyone provide recommendations? Thank you! <comment><USER2> This is still very much an open problem. Paypal, Square, Venmo, Google Wallet, PopMoney all possess idiosyncrasies. As well as friction arising in enrolling both parties and setting up bank account info. I prefer using Zelle as it's fast but there is a limit of $2500 per transaction.

Ideally you need a smart contract that creates a pool of funds that can be drawn upon via some secure identity mechanism. Instead of pushing the money out, participants can pull their allotments at their convenience. Implications for UBI are also extant. Using something like Paxos Stablecoin it may be possible to realize global, instant, feeless digital payments. But again every participant needs to be on the same standard.

<comment><AUTHOR> Thanks! Does Zelle have a monthly transaction limit (# of transactions or $ amount)? Also, can you use Zelle independently or does it need to work through your existing bank account?</comment></comment>


A better way to deploy Python web apps to production with all dependencies - <AUTHOR> In python based web apps be it django or flask or any other frameworks. I am wondering what would be the better way to bundle all the dependencies with our as a zip and deploy it in production servers without the need to connect internet from the production machine. Since I am from java background, I am expecting a build(WAR file in case of J2EE apps) with all necessary dependencies. <comment><USER2> I've recently started using shiv to package apps for internal deployment. Relies on the proper version of Python being installed on the server.

Briefcase is another option. It bundles everything, including Python. I've just started playing with it.

[https://shiv.readthedocs.io/en/latest/](https://shiv.readthedocs.io/en/latest/) [https://beeware.org/project/projects/tools/briefcase/](https://beeware.org/project/projects/tools/briefcase/)

</comment><comment><USER3> Lately, I have been using Docker Swarm... build containers on a private deployment machine with all dependencies, and deploy them to production machines in a load-balanced, isolated environment that is fault tolerant.

Works nicely and I don't have to worry about subsequent package updates for other apps breaking existing ones.

Cheers!</comment>


Force directed graph layout in JavaScript - <AUTHOR> http://dhotson.tumblr.com/post/520720950/force-directed-graph-layout-in-javascript <comment><USER3> Nice! I did the same thing a couple weeks ago <[http://github.com/jackrusher/jssvggraph>](http://github.com/jackrusher/jssvggraph>); to help explain the simplicity of the algorithm to a friend. Mine paints SVG directly rather than using Raphael, so it only works with browsers that support that standard. One thing this brought to my attention is that the WebKit SVG implementation is much, much faster than Gecko's.

<comment><USER4> If you want to click, use <http://github.com/jackrusher/jssvggraph>

<comment><USER3> Thanks! I wasn't familiar with HN's post formatting.

<comment><USER4> Normal parens (like this) seem to work with URLs on HN.

</comment></comment></comment></comment><comment><USER5> The best force-directed graph I've seen - that is really interactive and extensible, although it is Flash - <USER2> <http://www.creativesynthesis.net/blog/?page_id=60> Demo: <http://www.creativesynthesis.net/recycling/graphgeardemo/>

</comment><comment><USER6> I thought it was drag drop until I realized the animation on Chrome is too quick.

</comment><comment><USER7> Very neat animation. Is it always the same graph, if you reload ? (with different initial random placements, I mean)

In one case, I observed an edge coming to rest just across an unconnected (to that edge) node. Might be hard to detect/work around ...

[Many moons ago, for an exercise, implemented a force-directed placement, with team-mates doing Kernighan-Lin min-cut (also fast) and simulated annealing (slow) ...]

P.S. Two observations:

\- You highlight the node on mouse over. If the edges connected directly to that node were also highlighted, it would palliate the false connection problem.

\- Adding some edge-edge repulsion ? Sometimes edges cross, and one of them could be flipped to another side for a locally planar solution.

<comment><AUTHOR> Yep, it's currently the same hardcoded graph each time. The node starting positions are random so you get a slightly different layout each time.

I was thinking about making edges repel nodes in some way to avoid the problem you mentioned. I'll have to experiment some more..

<comment><USER8> That's really neat.

I hit the same problem of crossing edges when doing this a while ago (in Python rather than JavaScript).

Rather than trying to get everything done automatically by the code I added the ability to click and drag a point. So the algorithm gets you close to a good layout and you can then make adjustments to avoid unwanted crossings.

It reminds me of an old HN comment "think cyborg, not robot" (<http://news.ycombinator.com/item?id=164833>).

<comment><AUTHOR> Thanks jonp. :-)

I think that's a good idea. The force directed layout algorithm isn't bullet proof, but it's a good approximate layout for a human to tweak.

<comment><USER7> Just remembered this discussion <http://news.ycombinator.com/item?id=1218376> also featured a force-directed graph layout algorithm, with brief paper and all. Just in case you missed it.

</comment></comment></comment></comment></comment><comment><USER9> Very nice. I'm thinking of an interactive editor for directed acyclic graphs with labeled nodes and wondering if there's anything out there already. This is clear and simple enough to be a good starting point.

<comment><USER10> Look at the Github network charts as Git basically uses directed acyclic graphs.

[http://github.com/blog/621-bye-bye-flash-network-graph-is- no...](http://github.com/blog/621-bye-bye-flash-network-graph-is-now-canvas)

and

<http://raphaeljs.com/github/demo.html>

</comment></comment><comment><AUTHOR> Direct link to demo: <http://dhotson.github.com/springy.html>

</comment><comment><USER11> <http://code.google.com/p/jsviz/> It might be dead, but either way it's kind of cool as well.</comment>


Bitcoin Thieves Yet to Spend Stolen Hoard - <AUTHOR> http://www.bbc.com/news/technology-19633980 <comment><USER2> I experienced the same with funds stolen from my project <http://betco.in/> \- whoever stole bitcoins just sit on them right now. I do not know if it is because they are looking for a way to launder them (although it seems simple to me) or just waiting when bitcoins will cost $100+/$1000+/etc may be?

<comment><USER3> How do you launder bitcoins?

<comment><USER4> One method involves running a mining pool where you pay little bits of the "dirty" coins to hundreds of different miners and keep their "clean," freshly- minted coins for yourself.

It's a relatively new protocol. There may be laundering methods that nobody's thought of yet.

<comment><USER3> People don't trace the dirty bits to the miners?

</comment></comment></comment></comment><comment><USER5> Excuse my ignorance, but he said he suspects they're sitting on the bitcoins because they were "hot". I thought that wouldn't matter with bitcoins due to their anonymous nature?

<comment><USER6> My understanding is that because of the distributed transaction nature of Bitcoin-the-protocol, the stolen coins will be "hot" forever. As soon as they're spent, they'll show up in the logs. The identity of the thieves may never be known, but the coins themselves are identifiable.

I'm surprised someone hasn't started a hot-sheet for stolen coins, so that exchanges and individuals can check before accepting them.

<comment><USER7> Blockchain.info has a taint analysis tool, and there are other tools. Most bitcoins have a long, highly-mixed history, tainted some small fractional percent of most any address from time before. Probably because mtgox, as the largest exchange, mixes coins pretty thoroughly. Risk to the thieves is that if they try to sell the coins through them, mtgox will freeze the funds. They have to be mixed elsewhere first and who knows what taint threshold mtgox uses to freeze funds.

For example, after the Linode hack the stolen coins were moving around and there were reports, from people who had bought coins from cryptoXchange or had paid with paxum, that mtgox was freezing those deposits because they were connected to the stolen funds.

<comment><USER8> That sounds a lot like how all US currency has traces of cocaine on it, because at some point most US bills (maybe just $100 bills) have passed through a coke dealer's hands.

<comment><USER9> "The Argonne National Laboratory study revealed that the average contamination was 16 micrograms."

<http://www.snopes.com/business/money/cocaine.asp>

</comment></comment></comment></comment></comment><comment><USER10> Isn't there a famous patch that makes Bitcoin transactions anonymous? How do we know they're not using that?

Ref: <https://bitcointalk.org/index.php?topic=24784.0>

<comment><USER11> that patch purports to make it "more anonymous," not actually anonymous

</comment></comment><comment><USER12> So would any business that accepts Bitcoin be in legal trouble if it accepted these coins?

An individual that accepts them?

<comment><USER13> No. Knowing receipt of stolen property is a crime. However, bitcoins are not considered property, nor can they be considered stolen, under current U.S. law.

<comment><USER9> Do you if anyone is compiling a list of stolen addresses?

<comment><USER2> no, because funds might be easily transfered to another address. and after that you need to mark new address as "bad" again. and it become complicated when only part of funds transfered to another address. and it become even more complicated when funds transfered to "pool" address, of big exchanger like mtgox for example. and these funds end up in hands of honest users..

<comment><USER12> I doubt that creating a graph of "tainted" addresses would be very difficult.

<comment><USER2> something like this? [http://blockchain.info/taint/1dice7EYzJag7SxkdKXLr8Jn14WUb3C...](http://blockchain.info/taint/1dice7EYzJag7SxkdKXLr8Jn14WUb3Cf1)

</comment></comment></comment></comment></comment></comment><comment><USER14> This presents an interesting problem. Do individuals who accept payments in bitcoin have to verify that the bitcoins the accept haven't been stolen? If they fail to verify the provenance of their payment, are they at risk of forfeiting their money or, worse!, being criminally liable for possession of stolen property?

<comment><USER15> How do you verify that the bitcoins have in fact been stolen?

<comment><USER14> Exactly.

</comment></comment></comment><comment><USER16> I'm fairly certain that you keep the balance in a single wallet, so can send from a different address than the one that received the funds, so really, all this tells us is that they haven't been stupid and sent money out from the same wallet they sent it to.

<comment><USER17> You don't seem to understand how Bitcoin works: the balance of the address is what has the 'coins'. They dont exist independent of the balance of the address.

So you can't spend them from a different address, without first transferring them to that different address; and that transfer must be publicly announced to the network. It is the public announcement which gives the other address the ability to spend the 'coins'.

<comment><USER16> You're correct, I assumed it was the wallet that held the coins, not the individual addresses.

</comment></comment></comment><comment><USER18> Not necessarily true. They may have simply transferred ownership of the account the bitcoins were in to someone else outside of the bitcoin universe (e.g. on a USB drive).

</comment><comment><USER19> Can someone explain if there is a technical reason the network can't collude to cancel these bitcoins? This seems a reasonable reaction to known theft.

<comment><USER2> technically this can be added into protocol/rules. but then we get back to who decides what was stolen and what was not.

</comment></comment><comment><USER20> Maybe they deleted their wallet in order to destroy the coins?

</comment><comment><USER21> I've only been into bitcoin mining and trading for about a month now, so take this with a grain of salt, but:

If were the criminal behind this heist and I wanted to whitewash these bit coins, I would first establish several new wallets, would divide the coins between them, then would programmatically transfer the coins back and forth between the accounts in random amounts at short but random intervals over the course of several months to increase the noise level. I would then (again programmatically) buy a different electronic currency (namecoins, etc.) with them to obscure the trail even more. Finally I could transfer them back into bitcoins, using several new wallets.

At that point they could be cashed out or spent more or less freely.

Again, I'm new to bit coins so I may not know all the dynamics involved, but what I have outlined seems logical based on what I know at this point.

<comment><USER22> If I have it right, the self transactions wouldn't do much (because the transaction history of the bitcoin system is public).

A few other comments mention that Mt. Gox is treating certain coins within some distance of certain accounts as tainted and freezing those transactions.</comment></comment>


Ask HN: Importance of a Confirmation Email - <AUTHOR>

I'm working on the registration form for a web app and am considering various ways to do it. There are essentially two major steps:
1. Customer enters email and chooses a password
2. Customer pays
The email and password combination would let the customer access the site on future visits, assuming they complete the payment.
My original plan was to send their email a confirmation link after the first step and that link would validate the email address and bring them to the payment page. However, it occurred to me that I might be able to skip the confirmation email all together; go straight from step 1 to step 2.
I don't really see any major downsides to doing it this way. Typos could be minimized by having them enter the email twice. Worst case, they could always email support (me) and I'd help them work through their problem. Seems like the small support tradeoff would easily worth the higher completion rates.
Not sure if I'm missing any major considerations... Could a malicious person take advantage of this system? <comment><USER2> You'd be insane to ask for email conformation as part of your sales process. Go to any web store, none of them do it.

Your customer has little motivation to supply a false email address, as they may need support by email at a later date. There aren't any security implications of not confirming the email address in this case.

<comment><AUTHOR> Thanks for the feedback.

</comment></comment><comment><USER3> I know that when I pay for something online, I want the merchant to know my email address -- I'm expecting a receipt, shipping confirmation, etc.

You may consider using help text to indicate that they'll receive an order confirmation at the email address they provide, just in case they may not immediately realize why your asking for it.

<comment><AUTHOR> Good call -- I'll send customers a little "Welcome to my site" email after the process is done.

</comment></comment><comment><USER4> I got into a situation a few weeks ago like this. I downloaded trial version, liked it, and then wanted to buy. I registered for an account and was told that I could continue to purchase once my email was confirmed. Well, at the time we were on a shared hosting mail server and apparently it was about 5 hours behind. I had to wait 5 hours to purchase. I wanted the software badly so I waited but I bitched the whole time.</comment>


Show HN: Plino – An intelligent Spam filtering system built using python - <AUTHOR> https://plino.herokuapp.com/ <comment><USER2> Your website is very well designed, to me it looks very nice.

On my browser (Firefox-Linux) if I open the hamburger menu on the right, and click, say, API usage, the content is pushed off to the left and I can't even scroll it back. The only thing I can do is close the hamburger menu to properly see the content.

I was going to give a couple of comments assuming that you were hoping to turn some visitors into paying customers, but this seems to be an entirely free service.

I was going to say that "Python based" is a positive for some and a negative for others. I'm not sure it needs to be in the list of features and surely does not need to be the _first_ feature. What should be first? "Unlimited Users", though not the use of the word "currently" may well put some people off. It suggests that this will not be free in the future, which perhaps it won't be. I don't know.

Secondly, a REST-API is great, focus more on it being something that can be integrated into a developer's application. The others, Python based, Machine Learning, Crafted With Love, Minimum Downtime are not really features at all. Python based and Machine Learning are just implementation details, the first is not really important and Machine Learning is kind of the assumed method of spam filtering. So overall your list of features scream you _claiming_ "This is really good honest", rather than _demonstrating_ that.

The Python API example is good, this is what a Python programmer cares about, they might dig a little deeper and be pleasantly surprised to find the whole thing is developed in Python.

In general, it's hard to see any unique selling point here. Why would a developer use this spam filter over a self-hosted one, or other existing one? I'm not saying there isn't a unique selling point, just that your website does not make this abundantly clear.

</comment><comment><USER3> I thought just today about writing a service similar to this, but I ask myself, as always: why didn't anyone write such an app yet? There are only complicated spam-filtering services that work at a totally different level and are unusable by small apps, and at the other side a lot of programmers writing JSON-as-a-service and TODO-apps over and over again. Why not this?

</comment><comment><USER3> [https://github.com/prodicus/plino](https://github.com/prodicus/plino) on top of [https://github.com/prodicus/spammy](https://github.com/prodicus/spammy), for interested people who don't read the error page, like myself.</comment>


The gifted have more existential angst - <AUTHOR> http://talentdevelop.com/articles/TUEOBO.html <comment><AUTHOR> thread also at <http://onsingularity.com/item/2905></comment>


How to Protect Your Digital Privacy - <AUTHOR> https://www.nytimes.com/guides/privacy-project/how-to-protect-your-digital-privacy <comment><USER2> Sigh, more on anonymous data privacy protection. There's nothing to protect here, IMO.</comment>


Ask HN: Experience with Code Consultants? - <AUTHOR> You work for a small company. Or are a solo dev. You don't get too many eyeballs viewing your code or don't get to discuss architectural decisions with many others...
Have you ever hired a consultant?
I'm in the aforementioned situation, and thinking about seeking outside knowledge on topics where I lack experience. Curious how you may have approached something like this? <comment><USER2> I can speak to this from the other side. On two occasions I've been hired by a solo developer and small company to develop a library and a proof of concept while documenting and explaining everything I was doing so they could carry on themselves.

I found both of these an enjoyable experience and I was told by both that it was incredibly beneficial for them.

How I'd approach it: Honestly I would just check the HN freelancer thread and start emailing people, get a quote on a day's worth of whatever it is you want from them: code review, pair programming, etc. That's a relatively small investment that will probably give you an idea of whether this is worth pursuing, with them or in general.

I am personally fine with taking on anything that is >=1 day of work, some people probably won't want to do anything that isn't a much longer project.

In any case you're trying to find professionals that will respond professionally and should be able to break down how their time can benefit you. So just email some people and let them prove that they meet those criteria.

</comment><comment><USER3> This is something I've also thought about as a solo dev who has experienced the exact same issues.

Before hiring someone, think about collaborating with someone else in the same position. Organising a regular screenshare or meet-up where you both go over these things and provide feedback. Like a language exchange: 30 minutes speaking English, 30 minutes speaking French.

I'm curious if there is a forum or service for these kind of exchanges?

</comment><comment><USER4> Not affiliated, but there are services like PullRequest[0] that do code review as a service -- it might be worth doing this in your situation to cut out the overhead of trying to find someone qualified.

Disclaimer: haven't used them yet, so can't comment on quality.

[0] [https://www.pullrequest.com/](https://www.pullrequest.com/)</comment>


How to Organize a Database Table's Keys for Scalability - <AUTHOR> http://blog.maxindelicato.com/2008/12/how-to-organize-a-database-tables-keys-for-scalability.html <comment><USER2> You would hope that someone writing an introductory guide like this would have emphasized that it's basically trivial to add new shards for the first two options, whereas it's a pain, or at least trickier (you could block all inserts briefly and change the auto-increment offset and current auto- increment value in each shard), with the third option. Sharding without a plan to add more shards seems unwise, unless you have a really good idea of what kind of usage you're expecting in the foreseeable future. It's all discussed in the comments but personally I think it would have been worth explicit mention in the post itself.

<comment><USER3> Having only a single auto-increment column with sharding is likely a bad idea to begin with. In most DBs, (not MySQL I think), the engine uses a specialized setup to hand out the next value in line globally so that while the auto- increment column will be unique, it will be slow. In MySQL, I think they use some sort of special table and mark the rows as they get used up (I could be wrong. I don't usually use MsSQL). Thus, on a MySQL DB, it is possible to get incorrect behavior when changing something in the middle of transactions. So, adding in shards with auto-increment in MySQL could turn bad very quickly and very silently.</comment></comment>


Godaddy is now requiring a Photo ID for domain transfers - <AUTHOR> http://twitter.com/#!/TPB_Stun/status/151707176254185472/photo/1 <comment><USER2> Can anyone verify this is happening to them? I know that some TLD's have specific transfer requirements (like .org IIRC).

Edit: More info is here in the discussion: [http://www.reddit.com/r/technology/comments/nuza8/godaddy_go...](http://www.reddit.com/r/technology/comments/nuza8/godaddy_gone_fully_mad_a_photo_id_is_now_required/)

</comment><comment><USER3> Transcribing from reddit so the HN folks don't freak out:

THIS IS ONLY FOR DOMAINS WHERE THE OWNER HAS REQUESTED EXTREME PROTECTION and has agreed that this sort of verification is needed to make any changes to the domain information. Please don't feed the trolls. [http://www.reddit.com/r/SOPA/comments/nu48a/godaddy_gone_ful...](http://www.reddit.com/r/SOPA/comments/nu48a/godaddy_gone_fully_mad_a_photo_id_is_now_required/c3c0k82) Details on this service are here [http://www.godaddy.com/domainaddon/protected- registration.as...](http://www.godaddy.com/domainaddon/protected- registration.aspx)</comment>


Chasing missing SIGINT signals down the SSH rabbit hole - <AUTHOR> https://gravitational.com/blog/ssh-client-signal-handling/ <comment><USER2> I've gradually learned to almost always allocate a PTY, whether it be ssh or some docker run. Too many programs work badly or unexpectedly differently when fd 0 or 1 is not a terminal. Maybe we should start collecting a hall of shame for programs that insist on dealing with a terminal, not just a pipe.

Another fun fact I just came across a few weeks ago. The sudo command doesn't always handle job control signals in the way you expect it to. From its manual:

> There are two distinct ways sudo can run a command. If an I/O logging plugin > is configured or if the security policy explicitly requests it, a new > pseudo-terminal ("pty") is allocated and fork(2) is used to create a second > sudo process, referred to as the monitor. The monitor creates a new terminal > session with itself as the leader and the pty as its controlling terminal, > calls fork(2), sets up the execution environment as described above, and > then uses the execve(2) system call to run the command in the child process. > The monitor exists to relay job control signals between the user's existing > terminal and the pty the command is being run in. This makes it possible to > suspend and resume the command. Without the monitor, the command would be in > what POSIX terms an "orphaned process group" and it would not receive any > job control signals from the kernel.

<comment><USER3> The signal handling behavior may differ between versions e.g., [https://stackoverflow.com/questions/34337840/cant- terminate-...](https://stackoverflow.com/questions/34337840/cant-terminate-a- sudo-process-created-with-python-in-ubuntu-15-10)

</comment></comment><comment><USER4> I took SIGINT for Signal Intelligence

<comment><USER5> Me too, since I date back to before signals had symbolic names.

</comment></comment><comment><USER6> It's not anybody's fault. Everything is working exactly as it is supposed to do. Except for the leaky abstraction of a "pty".

I wish there would be a better world than people constantly fighting for their terminal, TERM, terminfo, termcap, curses, tty, ...

</comment><comment><USER7> Author here, happy to answer any questions about the post.

<comment><USER8> Is the double meaning of the headline intentional? I was expecting a timing or other attack to determine data has a particular origin..

<comment><USER9> No it's [probably] not. SIGINT is unfortunately ambiguous, unlike SIGKILL, SIGTERM, SIGQUIT, SIGUSR1. :)

<comment><USER10> I'd have suggested "missing Ctrl+C" instead (like the title of the bug report.)

<comment><USER11> As far as I know SIGINT is the name of the signal and Ctrl+C is simply a key combination that triggers it.

I read the title to mean SIGINT the signal and it wasn't until I came to HN comments did I see have another meaning.

</comment></comment></comment></comment></comment><comment><USER12> I created an ssh terminal over browser back in the day (kind of like ajaxterm, but proprietary). I tried at least 4 different libraries over the years, but there would always be that one special device that refused to play ball. In the end I used an OpenSSH process, connected to it and drove it through input/output. Made those customer support calls really short: "Did you try connecting from the command line?"

</comment><comment><USER13> deja vu. I remember having to dig into this behavior 10 years ago (maybe a tad more).

Completely disagree with Teleport's fix and methodology. Sending remote SIGKILL because you got a local SIGINT? horrible for the general case. Now if Teleport performs specific functions for a specific controlled environment, then it might be fine and provide certain guarantees. But AFAICT teleport is a fronted to generic functionality.

</comment><comment><USER14> This is a fairly reasonable explanation, that is somewhat marred by two things.

First, the suggestion to demonstrate non-canonical input mode with the stty command will not work for many people. Many shells that have command-line editing save and restore the termios settings before and after reading each line of interactive input. Run stty raw and stty sane from the Z shell, for example, and nothing at all will apparently change when typing input to ZLE. The same goes for the Bourne Again shell and Readline.

Second, it keeps talking about a "local PTY device". The local end has a terminal, but that is not necessarily a _pseudo_ terminal. It could be a real terminal, or a kernel virtual terminal.</comment>


17% leave their job due to insufficient recognition - <AUTHOR> http://blog.rypple.com/2010/11/17-leave-their-job-due-to-insufficient-recognition/ <comment><USER3> 17% may leave their job, but I'm sure many more simply stay put without truly being engaged, all the while collecting a paycheck.

Recognition arbitrage, employees claiming credit for the work of others, by corporate-climber types is probably to blame in many cases. From my experience, credit usually goes to whoever delivers the results or the news first. Smart corporate climbers will go to great lengths to be the first to take credit for new ideas or inventions within a company, and they will work hard to maintain a high profile.

I've tried to do a modest amount of self-promotion to stay visible within my companies after a few very bad experiences early in my career. Just as importantly, I try to go out of my way to call out another person's accomplishments whenever I get an opportunity.

A company that fails to recognize valuable people isn't likely to succeed. When self-aggrandizing people are promoted faster than the get-it-done types, I take it as a red flag that management has no clue how things are actually done within the company. Companies who instead go out of their way to recognize valuable team members and promote those who work hard will end up with competent and motivated management. Now if only I had identified this pattern earlier in my career I could have avoided some train-wreck companies.

<comment><USER4> It's not only corporate-climber types stealing credit though, it really can be just a complete failure to understand worker motivations.

At my last job, I was part of a major migration project that had taken something like three or four years total (I was only with them for the last two years). Because the project had come in so late and so overbudget, the powers that be set a seemingly arbitrary go-live date and told us to just get it done.

We all worked long hours for a long time to get this done, and when it finally went live we were told they wanted to take the team out for a celebration. That later morphed into "well, everyone else on the project (meaning client project, not my migration team) had to learn the new system too, so we should take _everyone_ out to celebrate everyone!" completely minimizing just how much my team had done, since we had not only learn and adapt like everyone else had, but we learned it first and had to _teach it_ to everyone else.

That celebration, btw, never ended up happening. Instead, there was an announcement at around the same time saying there would be no raises across the entire (10,000 person) company.

I got fed up and left (read: snapped and was fired) a few months later, but I heard from a friend that they had the same announcement this year ("no raises") on the same day that the company sent out an email saying "you should watch the Indy 500 this year, since we spent an assload to sponsor it".

That ended up as much more of a self-entitled rant than it was intended to be, but I think my underlying point still shines through.

<comment><USER5> Just curious, but do you care to elaborate on the snapping incident. I have come close to "snapping" myself so to speak, so I'm curious what exactly happened.

<comment><USER4> It paints me in a bad light, I know, but sure... why not?

For background, suffice it to say that the manager in this story, who was my boss at all times except my time with the migration project I mentioned, was not well liked, and for good reason. This is a man who micromanaged absolutely everyone and everything, was insulting (called me and my "whole generation" - I was 23 at the time - a bunch of slackers, told me I was "getting too big for my britches" when I made a fairly innocuous suggestion, and repeatedly talked about other employees behind their backs), and seemed to only care about making himself look good.

Anyway, my firing:

I had been working on a fairly high profile assignment, lots of pressure, etc. and had worked on my own time until 4am the previous day. I was running on maybe 3 hours of sleep, so I was more on edge than usual. I mentioned this extra work to the boss, and asked if I could go home at 4pm that day (1.5hr early). Anyway, the day progresses and I was finally able to finish my tests, get peer reviews done (a story unto itself), and passed my work off to be installed my the clients production control team right at 4pm, so I had to wait to confirm they hadn't screwed up the install - a very real concern, btw.

Anyway, around 4:30 the boss calls, asking me about a "post-implementation review" (something was installed and had run for the first time, so the programmer needs to confirm initial results) that I was supposed to do a few days earlier. Genuine mea culpa here, as I had just plain forgotten about it and didn't realize it was even installed yet, and had been distracted by the "OMG GET IT DONE NOW" assignment being installed in this story.

He told me that since I was "overbudget" (I had logged about 54 hours on a 50 hour estimate), I was not to charge any more time to that ticket. This essentially means "work for free." He also told me to have it done by 9am the next morning, so my choice was either stay late or come in early and work, so I told him since I was already staying late waiting for prod control, I'd do it right then.

So, my install was completed a few minutes later, so I spent 10-20 minutes confirming the install before starting the requested post-implementation review. This review, btw, was estimated as an hour of work, for good reason. I had to go through a week or so of production runs to try to find data that had actually ran through the logic I changed.

I hadn't actually found any runs through my changes by 5:30, when the boss left for the day. He stopped by my desk on the way out, and "joked"

> What are you still doing here? Didn't you ask to leave early today?

I explained, calmly at first but steadily angering, that I had wanted to leave early but since he had told me to get this thing done by the morning, not to charge time for it, etc. I was stuck here. He told me to just go home and do it in the morning, but I explained that if I have to work extra hours for free, I should do it at night so I don't fuck up my billable hours for the next day and be forced to stay late to make that day balance.

There was a bit of back and forth, but I ended up visibly angry and yelling a bit. He told me, forcefully, "go home."

I left, choosing to take the stairs to try to burn off steam, but the anger overflowed and I yelled "Stupid fucking piece of shit job" about a floor and a half down.

I went home, beat the shit out of a couch pillow, and broke down crying.

The next day, I went in and started to work on that same post-implementation review, and the boss came over and took me to a conference room. My new project manager, first day on the job, was there already. They told me I was suspended for three days, and they took my badge, etc.

On my way out, I passed my HR rep, which made me think she was supposed to be there for the meeting, but who knows. I went home and wrote my side of the story to that same HR manager. I got a response that afternoon (around 5pm) thanking me for my side, and giving me a formal letter of suspension.

I heard reports from a friend that my phone was disconnected around 2pm that day, so clearly I was fired before I got the letter of "suspension." This was even confirmed by another friend who talked to a guy in IT who said that same HR woman called them to _terminate_ my accounts around 2pm the day I was suspended. She apparently called back a few minutes after it was done, panicking, saying she had only meant to suspend me. I still think I was accidentally fired, then actually fired to cover for it.

Anyway, that's the story. AMA.

<comment><USER5> At least you're honest, I honestly think bad managers and bad working environments have a way of breaking even the best individuals. At a certain point everyone snaps or breaks.

<comment><USER4> Yeah, I definitely have to take my portion of the blame (I wasn't exactly a model employee, at least when I was working for that manager), but I really do think that manager and the environment he cultivated really affected me. I had actually been on a couple of two-week stress leaves about six months prior to my leaving the company.

I used to dream about leaving that job, and I guess I just finally reacted in a way that got me out of it, even if it wasn't ideal. After I lost the job, my girlfriend explained that "for as much as you bitched about that job, you were never actually going to quit." and she was absolutely right. The fear of quitting and having to find a new job was too much for me.

I've been out of a job for a bit more than a year now. I see ads all the time that maybe I could do, but I don't always apply because I don't feel qualified for them. It's really starting to get to me.

<comment><USER6> You should probably ask yourself why you're avoiding applying for these jobs you mentioned. If it's because of rejection, well there are a lot of people on here that will tell you better than I can that you shouldn't be afraid of being rejected.

I had the same problem for a while, until I realized that the worst that could happen is either you get no response, or they will tell you "thanks but no thanks". If you do get an interview, then that is an opportunity to meet interesting people, and possibly learn something.

The key here is approaching interviews less as a time for some people you don't know to judge you and more as an opportunity for you and some other people to learn about each other. You can learn an awful lot about business, the market, people's technical and non-technical problems, if you make an effort to go on interviews. You may even learn something about yourself, or have a brilliant idea for a project.

Besides, "unqualified" isn't the right word at all. It's more accurate to say that you have a different skill set (based on your horrible migration story) - and skill sets are easy to change, given time and motivation.

<comment><USER4> _You should probably ask yourself why you're avoiding applying for these jobs you mentioned._

Simple. I'm tired of spending an hour on a cover letter, tailoring my resume, looking up contacts at the company, etc. only for all my work to be piped directly to /dev/null.

When I first lost my job, I sent out a bunch of resumes to places hiring for jobs I wanted to do. A .Net developer here, a Java developer there. I never heard back from anything I wanted.

I gave up and applied for a job similar to my last one, and got an offer. They ended up not getting the contract, and I was left with the bill for calling their number across the country for the technical interview, and the bill for a scanner/printer (didn't have one then) that I needed to sign and send back the offer.

I went through a series of phone interviews about a month ago for a junior QA position. After three weeks and three phone interviews with HR, a technical interviewer, and a manager, I got a message from email@example.com with a PFO form letter.

I still send resumes to things, but I generally limit that to jobs explicitly marked "entry level" that rarely come in.

If you know anyone hiring in Canada (I'm living 500km from "home" right now, so I don't much care where in Canada) for an entry level position, let me know. I'll work my ass off to get up to speed, I'll work long hours, whatever it takes.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER7> My guess is that when some chose "insufficient recognition", a possible reason was that someone else was taking that recognition. Having a site that allows people to recognize others for their achievements could just as easily compound the issue. For example:

Susan wants a new application, so Jim tells Bob to write it. When the application is complete, Jim shows it to Susan, and Susan praises Jim rather than Bob, because as far as she is concerned, Jim made it happen. Yet, Jim did little more than tell Bob to do it and show the result to Susan. If recognition requires little work, Susan will praise Jim more often (if she is not aware of Bob, or chooses not to recognize him). If Bob sees this praise of Jim by Susan for his work enough times, he may leave the company one day citing "insufficient recognition", when, in fact, more recognition was being given, albeit to the wrong person.

<comment><USER8> I hear a common theme that I've seen among tech folks (and probably a theme that I subscribed to early in my career).

If Jim "made it happen", he has actually earned some of that praise. As a good manager, his very next step should be to transmit and amplify that praise so that Bob also can bask in it, but also to educate/remind Susan that Jim has an entire team that is delivering behind the scenes. It's quite effective to accomplish both of those in one communication (when praise is in email form), by forwarding on to Bob, cc'ing Susan, adding his own praise and reminding Susan (in the clear) that Bob is the one who actually did the programming.

I don't believe that there's some natural conservation of credit/recognition. By sharing as above, Jim doesn't reduce his standing in Susan's eyes, because from her point of view, it's still Jim that "made it happen" and he's being gracious in recognizing his team. Bob now sees the praise that he's earned, may realize that Jim probably added some value along the way, and even if Bob is hardcore "only coding matters", at least Jim has set the record straight.

When done even halfway well, I don't think that pattern results in employees leaving over recognition.

<comment><USER9>
       I don't believe that there's some natural conservation of credit/recognition.

I think this would be a function of the promotion/performance evaluation process and general company culture.

</comment></comment></comment><comment><USER10> Does "insufficient recognition" as a reason for leaving a job mean simply not getting praise, or does it mean employees not getting the changes to their responsibilities, workload or perks that reflects what they feel their strengths and contributions are? Praise is all well and good but no amount of "good job" and wizard clipart is going to make up for the feeling of being stuck in a silo and/or burdened mainly with the stuff other people don't want to do.

<comment><USER11> This. I have left jobs because "recognition" meant decent raises and praise, and then being assigned to rewrite shitty applications without the opportunity to redesign them.

Now, to be fair, I probably had enough clout (and they probably had enough sense) to make noise and get myself reassigned, but at that point I started looking elsewhere, and found something new to try. But I didn't start looking until I perceived my needs being neglected.

</comment></comment><comment><USER12> This phenomena was described to a t in Dan Ariely's The Upside of Irrationality. In it, he first describes a situation in which one would be paid a high salary (I think a million dollars) for creating power points that were immediately deleted. He asserts that most people would not be able to handle the job. To test, he does some interesting experiments wherein students are paid for assembling simple lego figures. If the figures were then disassembled in view of the student immediately after their completion, students on average, constructed far fewer figures. Worth a read.

<comment><USER13> If you're heavily in debt, you would stay. I know - I'm in a job that's not quite as bad as that, but it's far from rewarding, and extremely political, with other people taking the praise and few willing to do what's needed.

I would quit, but I have to work off my debt first.

The environment is not doing me good - I'm slacking off (like here at HN), working worse and feeling tired and burned out even when doing little actual work.

<comment><USER14> Why not try and find another job? In your situation I'd even make a lateral move to something I enjoyed.

Ultimately your current attitude will catch up with you could set your career back. Getting labeled as a slacker could result in you getting crappy projects where you can't grow professionally and personally. You'll become even more bitter/jaded and eventually hit a death spiral. Crappy projects <=> more bitter and jaded. It's very tough to get out of this death spiral once you're in it....

<comment><USER13> Thank you for your advice. I thought about that. I'm trying to get out in another way - I'm starting a Master's (MBA) :) and reducing my debt at the same time.

The thing is, here in Uruguay job security is king - if you switch jobs you're a kind of pariah for a couple of years (OTOH if I get fired it's like winning the lottery, about 6 to 8 salaries plus benefits plus 6 months unemployment which for my sector is very good).

So I have to endure another 2 years while I do the MBA - and it's very likely that I'll get a significantly better job offer while I'm doing the MBA due to connections - I'll try to network heavily on the MBA, it's my number one goal from it.

Ironically I haven't been labeled a slacker (and I used to be a top student and respected worker) - my boss is too incompetent to even realize I'm slacking. My projects can't get any crappier though (ever heard of <http://en.wikipedia.org/wiki/Forte_4GL> ? Not a marketable skill ).

I hope to either get into a project management / CTO position, or start my own company.

<comment><USER14> Interesting. Best of luck!

</comment></comment></comment></comment></comment><comment><USER15> I think "Insufficient Recognition" translates into a lot of different things - overly competitive internal structure, poor lines of communication, ill- defined job descriptions, etc.

For example, I work at a company with ~50k people. My immediate boss is the "Sales Executive" for our division and, as such, is charged with establishing sales goals by region for our national sales force. Usually, he makes them up. When he realized that I was kind of a data geek, he decided to bump that responsibility to me (at this point I had been here less than a month.)

I did what I could with incomplete information and sent him a huge spreadsheet annotated with problems I expected him to correct based on an in-depth understanding of the situation. Turns out he doesn't really know how to use excel.

Long story short, my painstaking work to come up with rough numbers is passed off as somebody else's work to come up with great numbers (they weren't great numbers.)

This conveys a few things: A) My boss is fine taking credit for my work - <USER2> is obviously a problem; B) Nobody really noticed that my numbers were really bad - this is a bigger problem.

In an exit interview, this would be easy to categorize as "insufficient recognition," but the real problem is "nobody has any idea what the hell is going on and I'm getting off this boat before somebody puts my name on it."

</comment><comment><USER16> Recognition is a function of management. If a manager is truly engaged in the day-to-day activities of a team, that manager can (and will) naturally recognize work properly.

The problem however is that for whatever reason, management isn't as effective as it should be. A function of time, burn out, or simple inadequacies, if people are leaving a job because they aren't recognized, chances are good that they would also say their manager wasn't very good at his or her job.

<comment><USER17> It's something we all need to do - not just "management." A great company culture will, almost as a byproduct, see people genuinely complementing each other on great work, and supporting each other to do even better work. There is no us and them.

<comment><USER18> This is something my employer has instituted--any employee has the ability to call out another employee for a job well done.

This is on top of an employee of the month program. Upper management takes this program very seriously (the award is a reasonable bonus, plus the winners for the year are given the opportunity to win an expenses-paid weekend vacation. This program is driven by employees as well--upper management cannot vote.

I'm not particularly driven by this sort of recognition, but it is comforting to know that folks genuinely want to reward others for a job well-done.

<comment><USER19> "any employee has the ability to call out another employee for a job well done"

Erm... why do you need management's blessing for this in the first place?

<comment><USER18> Because management provides a monetary award with such recognition.

</comment></comment></comment></comment></comment><comment><USER20> In my experience, people that feel chronically under-appreciated are also bad at self-promotion, and would be more appreciated if all of their contributions were actually known. Especially when you go above and beyond (the sort of thing you most want recognition for), it's often a proactive effort that may not have an obvious cause-effect benefit that's visible to anyone outside the situation.

<comment><USER21> I'm trying to wrap my head around your comment. How would one self-promote without coming off as arrogant or obnoxious? (And I'm not asking this snarkily; I'm genuinely curious.)

<comment><USER20> There's definitely a fine line to walk. However, it's not arrogant to keep whoever you report to apprised of what you're doing, why it matters to the business, and how you're accomplishing those things. Definitely no need to be a gloryhound or grandstand, but there's a lot of middle ground between arrogance and not taking credit for what you do.

Maybe self-promotion wasn't a good choice of words on my part. Effective professional communication might be a better way to put it.

</comment></comment></comment><comment><USER22> I was on a sales team of ~12 enterprise engineers and account managers that was always a top performing region in our operation. I think this was due to the fact that our boss consistently recognized team members publicly (in group emails or voicemails) almost on a daily basis. It made me want to work harder for him every day. Still the best boss I've had.

</comment><comment><USER23> Another (frankly more likely) possibility is that people think they deserve more recognition than they actually do. This post is based on the premise that it is the employer's fault and that doesn't necessarily follow.

<comment><USER24> I imagine it's more common to be underutilized or misapplied. Humans tend to grow and change much faster than their corporate job descriptions can keep up with. There's always a mismatch, it's just a question of whether or not the key players acknowledge it - and of how much indulgence is afforded to the employee in terms of personal growth that may not perfectly align with current business objectives.

<comment><USER24> Google apparently has a system in place for enabling this truest form of employee engagement:

 _Google has set up an environment that makes it pretty easy for people to transfer between groups, and even between sites. You have to be a grown-up about it, of course, and not ditch your team during some critical crunch time. But provided you exercise mature judgment in the matter, you can pretty much switch teams whenever you want, and it doesn't cause the company to grind to a halt, as such a policy would at other places I've worked or visited._

<http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html>

<comment><USER25> Does that not assume that somebody else is switching with you. What if you got a sucky group and nobody wants to switch ?

</comment></comment></comment></comment><comment><USER26> Speaking for myself at least I think that when I had a better opportunity I filled in reasons for leaving that made me feel more justified about my decision. You can extend the recognition reason pretty far if you're looking for reasons to dislike your current job.

For example: "I'm recognized on my team but what about the company at large"? or "Everyone at the company knows I'm great but our customers don't know me."

</comment><comment><USER27> Peggy Olson: "You never say thank you!"

Don Draper: _"That's what the money is for!"_

<comment><USER28> The more I read Economics blogs, the more I get a sense that this is actually the right thing to do. Don't give your employees perks; just turn every perk into a dollar in their pocket, and be very flexible to how they use the money. If _they_ want to use part of their paycheck to buy a dual-monitor setup, let them (in fact, just give them an empty desk and $2000 and tell them to buy their own workstation.) If _they_ want to pay their boss to thank them when they do good work, let them. If they want to buy a foosball table for the break room, let them set up a WePay arrangement with the other employees to get one. Otherwise, if they don't care about those things, let them remain dollars, rather than being unappreciated sunk costs.

</comment></comment><comment><USER29> This isn't just a facet of the tech scene but jobs all over. I left my restaurant job for this very reason. I gave my managers ample opportunity to tell me where I needed improvement and give constructive criticism. Yet they continued to mess with my hours and not give reason, hiring more people instead of giving the hours to people who needed them. My managers would rather stay non-confrontational, not recognizing that confrontation isn't necessarily a bad thing but a way to improve relationships between coworkers and employees as well as improving quality across the board. It was this lack of communication that drove me away.

It was a tough decision for me, because I not only left the job but a steady paycheck. While the check may have been smaller than I'd have liked (or needed) there's something to be said for reliability. Being a contract dev has given me much more freedom and the ability to write my own paycheck, but it's definitely not easy. Some days I'd much rather be working for someone... but finding management that are willing to put themselves out there and communicate on the level needed to keep me happy is tough. I demand a very high level of communication because that's the way I've found to be able to do the best job I can. Make no mistake, I may be tough to get along with but I always strive to do the best job I can. I suppose the only one that really understands that and can deliver on those demands is me.

</comment><comment><USER30> As an employee for the first time in the last year, I've struggled with this at times. I spent 6 years as an entrepreneur, where validation was with customers, or as a contractor or consultant - where validation was hourly. It was always very clear and direct.

Employee validation is more complex. You can accomplish a lot, but piss a lot of people off and you've done wrong. You can make a lot of people happy but not get much done and only the standouts will notice.

Nobody wants it to be the care bear cousins, where everyone gets a gold star sticker and a cookie. On the other hand, when you work twice as hard as others to go above and beyond, you do want that to matter or you will burn out.

I don't really have a point. Maybe if they're oatmeal cookies?

</comment><comment><USER31> We recently implemented a new recognition program for and by employees called the "EmploYAY" Program (yeah, it's cheesy on purpose). Anyone in the company can nominate a peer for the award, and based on the particular event or effort that inspired the nomination, the recipient gets different levels of awards. It's definitely helped recognize people for their awesome contributions, and made it fun for all involved.

<comment><USER32> I don't know if I'm an outlier, but cheesy recognition programs (there's one where I work now) really demoralize me. I've worked hard to get where I am, and I want my employer to treat me like an adult and a professional, not a child.

Some people enjoy public praise or having their picture posted, but not all of us do. --Knowing that we're doing a good job and quiet/low key recognition on occasion is enough. And if our employer wants to give us a bonus, well, who's going to say no to that?

<comment><USER33> I agree. I don't mind actual public recognition. In fact, I sorta desire it sometimes - but only when it's actually earned and the people being told of the achievement recognize why it was an achievement in the first place. There has to be real meaning behind this stuff, IMO. Things like "employee of the month" just feels like cheap pandering and no one really cares.

<comment><USER32> If you really go above and beyond, then public recognition can make sense. I just hate it when companies try to make a big deal out of things I think are (or should be) just a normal part of the job.

</comment></comment></comment></comment><comment><USER25> What do you do when someone wants recognition and support for a skillset or r&d project. Gets it from his manager but does not support the manager in selling the organisation on the skillset or project letting the manager hanging in limbo. Then complains that they are not recognized ?

</comment><comment><USER34> How many employees desire recognition for simply doing their jobs? I work with several people who feel that they should be promoted because they have managed not to be fired.

</comment><comment><USER35> If everyone is recognized, does it still keep its value?

</comment><comment><USER36> and 17% stay at their job due to generous recognition.</comment>


Show HN: Eigengrau's Generator – A procedural city generator for tabletop gaming - <AUTHOR> https://github.com/ryceg/Eigengrau-s-Essential-Establishment-Generator <comment><USER2> Have never heard of Twine [1] before, which this project uses. Very interesting tool!

[1] [https://twinery.org/](https://twinery.org/)

<comment><USER3> Yep, pretty cool - it's a very popular tool in the "interactive fiction" genre of game development/writing. It's widely used for "choice-based IF" (also called "CYOA" after the Choose Your Own Adventure books), with the other main side of the genre being parser-based IF (like Colossal Cave and other PC text adventures from back in the day). Parser IF is often built with a tool called Inform, might also pique your interest.

Emily Short's blog is a good resource for that field in general: [https://emshort.blog/](https://emshort.blog/) Or re tooling specifically: [https://emshort.blog/how-to-play/writing-if/](https://emshort.blog/how-to- play/writing-if/)

</comment></comment><comment><USER4> I built something like this in Java in the past to generate whole towns/cities. I have to admit that generating things as you go along is probably more effective than generating everything up front.

It's interesting to see what random generation comes up with.

<comment><AUTHOR> It definitely prevents some headaches! I admit to losing myself for hours at a time trying to see all the different generations this thing makes.

</comment></comment><comment><USER5> When I shared this story internally, a colleague posted this procedural map generator, which I also thought was quite cool. You all might enjoy it as well:

[https://watabou.itch.io/medieval-fantasy-city- generator](https://watabou.itch.io/medieval-fantasy-city-generator)

<comment><AUTHOR> Ah yes we've seen the work from watabou! It's very good stuff. We like to direct people there when they suggest our generator should also output maps haha

</comment></comment><comment><USER6> This is a cool project, it reminds me of Talk of the Town ([https://github.com/james-owen-ryan/talktown](https://github.com/james-owen- ryan/talktown)) which is the simulation used for the game/experience Bad News([https://badnews.ai/](https://badnews.ai/)), where you play a live adventure game in a simulated town with an actor that improvises generated characters.

I think it'd be interesting to apply modern generative text models to stats and random table based simulation. Normally, the text is generated by grammars that describe world state, but they can be both hard to write and repetitive for the reader/player. Generating flavor text from world state instead of writing it might be an interesting avenue to explore.

<comment><USER7> That's an incredible project! Thanks for the introduction and links.

On similar track (but unrelated to original post) is the Jason Roher's Sleep is Death game ([http://sleepisdeath.net/](http://sleepisdeath.net/)). It's asymmetrical turn-based adventure game. One person is a player and can do literally anything. The other person is a game master who has to come up with appropriate responses to player's actions. There's in-game editors for graphics, text bubbles, even the music.

I'm also toying with something like what you're describing in second paragraph. The procedurally generated world with tables of stats modelling the state, all rendered through styled text. All objects have defined list of actions that can be performed on them (open, smash, drink...), mapped to proper state responses. I'm hoping if these actions/responses are easy enough to input by non-developers, a complex world with rich interactivity could be built by collective effort. It's still in early stages so I don't have anything yet to show unfortunately.

</comment></comment><comment><USER8> We are in a golden age of generators its excellent. For the campaigns i run, i tend to use generators to help add extra details to my over arching plot. Its invaluable.

I made some excellent use of [https://sectorswithoutnumber.com/](https://sectorswithoutnumber.com/) for a Star wars campaign recently. tempted to check out the system it was intended for.

<comment><AUTHOR> I had not seen this generator before, but that's awesome! Yeah definitely one of the main reasons Eigengrau's came about was to help add that extra detail that just fleshes out the world without getting in the way.

<comment><USER8> I'll definitely put yours to some use. I think I've seen it before, maybe you posted it on reddit before. For last weekends game, the players had arrived at a new town and i vaguely recalled this generator or at least something very similar. But could i find it amongst my MASS of links :(

<comment><AUTHOR> The creator u/rcgy posts links to the generator pretty often on D&D reddits so it's very possible! In the future we'd love to hear what features you liked most and what parts you used in your game! The hardest part of designing this is getting live testing for what parts DM's really need. So many people tell us they use it but so few get back to us on what parts they mainly use.

</comment></comment></comment></comment><comment><USER7> Really cool project. I saw a dozen of Twine projects, but nothing close to this in complexity. Do you think you are pushing Twine past its capabilities?

<comment><AUTHOR> I think we've only scratched the surface of what we could break twine to do in the future!

<comment><USER7> What's your take on Ink [0]? It seems to be solving the same class of problems as your specific needs for Twine. Would it work better or worse for you?

[0] [https://github.com/inkle/ink](https://github.com/inkle/ink)

<comment><AUTHOR> I hadn't personally heard of it before but just from a cursory overview it doesn't look like something that would be easily implementable in the place of twine. If we were to do anything instead of Twine it would probably be to just build our own front end as Twine itself is handling very very little of the generation.

</comment></comment></comment></comment><comment><USER9> "tippy is not defined"

<comment><USER10> Yeah, it doesn't work for me in Firefox. Had to open it in Chrome for it to work.

Other than that, it looks quite skookum. I may use this for my own campaigns. Thanks for sharing!</comment></comment>


VR headsets up 82% in Steam's January survey - T-A http://store.steampowered.com/hwsurvey <comment><AUTHOR> That seems to be a breakdown of the people who have VR HEADSETS broken down by headset type.

What does "up 82%" mean?

<comment> T-A What you can see on that page is that

1) 0.20% of Steam users had a Rift and another 0.20% had a Vive in January (and had it switched on and had launched the VR software stack, I guess; I doubt Steam can tell a headset is present otherwise, so this is not a full count of VR headset owners);

2) for both Rift and Vive, that constituted an increase of 0.09 percentage points; in relative terms, that means the proportion of Steam users with VR headsets grew 0.09/(0.20 - 0.09) = 0.82, i.e. 82%.

(You can also see that Microsoft Mixed Reality and Rift DK2 had a negligible number of users, so they don't affect that number significantly.)</comment></comment>


It's time to break up with noSQL, noDB is hot - <AUTHOR> https://thnkr.quora.com/It's-time-to-break-up-with-noSQL-noDB-is-hot?share=1 <comment><USER2> I like the thought provoking concepts this proposes, though it feels very unrefined.

It seems to propose a black box where you have a vast collection of arbitrary data, you give examples of data you want and don't want, and you get arbitrary outputs.

I wonder how something in this day and age can use labeled examples and machine learning to find more examples to classify portions of data for use in a search engine. Certainly something that Google has probably experimented with or actually uses.</comment>


One Uber rider took 3,135 rides in 2016 - <AUTHOR> http://www.dnaindia.com/money/report-one-bengaluru-user-took-over-3000-uber-trips-this-year-2283202 <comment><AUTHOR> And, there are 15 more days to go in 2016</comment>