Automating Tinder with Eigenfaces - <AUTHOR> http://crockpotveggies.com/2015/02/09/automating-tinder-with-eigenfaces.html <comment><USER2> Tinder should start using Eigenfaces to give people an estimate of the chance of finding a match when they sign up. You know, to manage expectations.

"With your face and your standards you have a 1% chance to find a match. Please lower your standards or improve your face."

<comment><USER3> "improve your face". See South Korea plastic surgery stats: [http://www.economist.com/blogs/graphicdetail/2012/04/daily-c...](http://www.economist.com/blogs/graphicdetail/2012/04/daily- chart-13)

<comment><USER4> See also, lawsuit over similar: [http://entertainment.ie/wtf/Chinese-man- divorces-and-sues-wi...](http://entertainment.ie/wtf/Chinese-man-divorces-and- sues-wife-over-ugly-children-And-wins/227669.htm)

<comment><USER5> Apocryphal: [http://www.snopes.com/media/notnews/uglybaby.asp](http://www.snopes.com/media/notnews/uglybaby.asp)

<comment><USER4> I stand corrected.

</comment></comment></comment></comment></comment><comment><USER6> Looking forward to attending a wedding where the How We Met story is, "Through a Tinder Eigenface k-nearest neighbor machine-learning algorithm."

<comment><USER7> What can I say? our bots just really hit it off.

</comment></comment><comment><USER8> I feel the human race has made a rather amusing step forward to rule-by- algorithm. 30 years ago this would be dystopian, today its a byproduct of a mish-mash of open source libraries.

<comment><USER9> As someone pointed out in another thread, we're ruled by algorithms now and have been for quite some time. Tinder itself is based on a human processed algorithm:

      IF ((I think that he/she is hot) && (he/she thinks I am hot))
      THEN
      date();

The good thing about computer algorithms is that we can open them up and see how they work. Like, y'know, hackers. This program is doing the same basic task as a person would, "Look at a face and judge hotness", except it can be tuned and tweaked and quantifiably understood. I don't understand what's dystopian about that.

I do understand why people don't like it. Everyone feels that an algorithm could screw them over in a situation where a person wouldn't. It's the driverless car argument. And we all know the response, that humans aren't perfect either and we have better metrics and tools for understanding and fixing machine mistakes than we do human mistakes. The same is true for algorithms that control Tinder, credit applications, health insurance rates, et al. They aren't always right and it does suck when you can't make an appeal to human compassion. But humans can be just as wrong and just as obstinate, if not moreso. At least with an algorithm you know where you stand.

I, for one, welcome our algorithmic overlords. As a hacker I've always been able to figure out how technical systems work. Other humans? Not so much. If anything, this new world will play to my strengths and to the strengths of those like me.

<comment><USER10> > I, for one, welcome our algorithmic overlords.

Just imagine a world where you'd never have to hear "because I said so" and "becasue fuck you, that's why" ever again. A world where for everything that goes wrong, there'll always be a clear way to fix it and some clearly identifiable someone liable for the mistake. A world where being handsome is no more an advantage than having blue as your favorite color. Etc.

Maybe it's not perfect, but it would most certainly take away power from people that don't deserve it. I can see why the "powers that be" would try to convince us that this is "dystopian".

<comment><USER11> Until computers are as generally intelligent as humans, the algorithms aren't going to be the overlords -- they're going to _have_ overlords. The algorithm isn't processing your loan application because it runs a bank; it's just doing what the bank's owners paid for it to do, and if they want to say, "because fuck you, that's why", they can happily continue to do so. If anything, better AI may make them _better_ able to leverage their existing advantages over the rest of us.

And when the AI does reach human level (a long time from now), we may be no more capable of understanding its motivations than we are of understanding those of other humans today.

<comment><USER12> Algorithmic middle managers then?

<comment><USER13> That would be what Uber's dispatcher system is.

</comment></comment></comment></comment></comment></comment><comment><USER14> So I've been using this for a few hours now. The automatic messaging is hilarious ("Lisa are you a fan of avocados?") and weirdly effective. Also, it's been showing me that my non-robot tinder game just sucks, and could be improved with the basic principles of flirting:

      no seriousness
      ambiguity and non-sequiturs get conversation going
      being bold and casual about the things you say

Basically, every message should communicate that you don't really give many fucks, and are playful.

<comment><USER15> Avocadoes, and "I can't wait to introduce you to my mom!" are weirdly effective. The Tinder game is strong in this one.

</comment></comment><comment><USER16> Looks like someone has tried to make the blog post on High Frequency Dating from Rob Rhinehart (Mr Soylent) a reality:

[http://robrhinehart.com/?p=1005](http://robrhinehart.com/?p=1005)

(worth a read, it's pretty funny)

</comment><comment><USER17> If I were single I would be using this. I'm totally blind so Tinder has never been useful to me. I don't know how well it would work but I could see having my friends help me train it by describing pictures to me. I was never a big fan of the like absolutely everyone option, I felt like it would be hard to start a conversation. "Why did you like me?" "The algorithm I use to make up for the fact that I can't see your picture decided I should like you." would at least be a unique way to start a conversation.

<comment><USER18> What photo would you seed the algorithm with? As in, do you have a preference for facial features? a Tinder for the blind population would be pretty awesome.

If everyone was forced to take a 3d photograph (MS kinect scan maybe?), the algorithm would work even better.

</comment></comment><comment><USER19> Probably the only bot that would appeal to women with its preference setting. It's mostly guys using the bots and filtering after the matches.

Love reading the Tinder app reviews: "this thing is broken, been using it for a week and no matches. I ain't that ugly." <\- this is almost verbatim. I'm always fancinated by how men and women differ in their usage of a dating app, might as well have two separate UIs. Observing women use Tinder they swipe right around 1 out of 50-100. Just insane differences when compared to guys.

I always thought Tinder could monetize by having auto swipe and an undo option.

<comment><USER20> This phenomenon is endemic to dating culture in general. It's strange that the large majority of young Western women who have ridiculously fickle preferences, don't have the insight to realize the consequences of their behavior (or even notice the behavior in the first place). It makes the experience bad for 90% of the participants.

Not a bad thought to have separate interfaces by gender, maybe there is something in this idea that could be explored. Although at that point you're sort of codifying shitty gender stereotypes, which might be a transgression that's even worse.

<comment><USER21> The standard perception is that women are scarce and men are dime-a-dozen. I strongly suspect this might be true even in the gay dating scene (maybe someone qualified might weigh in on this hunch).

Like in many social conventions, this scheme kind-of works as long as you subscribe to it. Men are supposed to be undiscerning, women are supposed to reject people like it's a bodily function. As long as you fall within that schema and pursue your partners in a way that confirms their social expectations, you're fine.

If you don't like that game, however, it's difficult. Thankfully the internet exists, so it should be possible to date like-minded people who don't subscribe to this convention.

Then again, I'm a European, so YMMV.

<comment><USER20> I think my comment came across as saying something other than what I intended (-4 at the moment). What I mean by "shitty gender stereotypes" is that, as you say, everyone is expected to conform to this model (guys and women alike). Under this stereotypical model, the pace is dictated by the women, which is why I singled this out - but of course it's a two-way evolution of behavior.

"Kind-of-works as long as you subscribe to it" would be a good interpretation, but I think everyone's opportunities are diminished by this. One thing is finding someone to have sex with or have a relationship of the type that society expects (which probably works well enough on a societal level with stereotypical dating), but finding someone you are really compatible with on a deep level is a different question. My strong suspicion is that there are many lost opportunities in the latter category.

At this point I am incredibly happy with my life partner, but I've previously had many bad experiences with the traditional dating model. Since everyone is complaining and gender norms are the one fixed variable, it stands to reason that this is where the problem is. The LGBT community does not have this problem, which I think is caused by a greater awareness of the roles each person takes. Heteronormative gender roles are problematic, which is evidenced both in complaints about dating and divorce statistics.

<comment><USER21> _> but I think everyone's opportunities are diminished by this_

I share your frustration, but I've also become very cynical about this. If people didn't want it this way, they wouldn't do it. It seems to me in my social circle, partners are chosen first and foremost for the function they perform.

"I needed a full-time mother for my children" "I didn't want to be alone anymore" "I felt time was running out" "I wanted a man with more status" "I wanted someone who's more down to earth" "I wanted someone to be there when I get home from work" "I wanted better sex" "I wanted someone who looks up to me". Almost everyone I know can and does distill their relationship into one of those sentences. You might think it's bleak, but people think nothing of it apparently.

So I came to the conclusion that my ideal, to hook up with people who are interesting and whom you can love for who they are, this ideal practically doesn't exist in the wild. And if we're indeed mostly choosing partners for their function, I don't see how any opportunities are diminished by playing arbitrary (and sometimes inhumane) games. I may not like it, I will certainly not participate in it, but it seems to work out for pretty much everyone.

This is only marginally related, but when my cat died, do you know what the most frequent first response of friends and family was? It wasn't "oh, so sorry, I know you loved her very much", or even "so what, it's just a cat", though both ends of the spectrum were certainly present. No, the most common reaction was: "are you getting a new one?"

To most people, it's all about function.

<comment><USER20> That's a pretty dark interpretation, and I don't think I can disagree much when we are discussing things on a societal level. Thanks for sharing your thoughts :) I hope you're in a good place, or at the very least that you're on your way towards it. Kudos on high moral standards and a clear vision.

I do think the ideal exists; I have seen many examples. But it's certainly not the most common possibility.

</comment></comment></comment></comment></comment></comment><comment><USER22> I am not too creeped out by the concept of this bot (actually, I find the whole idea amusing). I can understand why people would find it creepy, but I feel that the creepiness comes from Tinder rather than the bot ... It's only possible because of Tinder and the way it makes users interact with each other.

Not a Tinder user myself, so I guess I'm biased in this case.

<comment><USER23> I can't understand why people would find it creepy. There's already a filter built into Tinder (show me women/men), why is an extra filter suddenly creepy? If a bot can know what I find unattractive and filter that out, why not?

<comment><USER24> Just like IRL: only looking at women or only looking at men isn't creepy. But only looking at people with particular physical characteristics (aside from the small set that are acceptable to judge on) is creepy.

<comment><USER25> I think this is a pretty natural progression of applying machine learning to real life.

I find that people will say things like "I prefer people with blue eyes", but what they are really saying is that the people they find attractive often have blue eyes.

Humans don't seem to be able to actually determine the characteristics of a person's looks that makes them attractive, and rather resort to pattern recognition bias. So instead a computer is able to determine what you are actually attracted to as it doesn't have the same bias and is able to consciously distinguish more data from a person's face than the extremely basic set a human can.

</comment></comment></comment></comment><comment><USER26> Automate the matching, then the conversations, then the meet-up schedule.

TinderPro could be a paid service built on top that has you swipe left/right for x pictures and then takes it from there and does all the rest of the legwork. You pay $$ per month and based on your settings, it schedules dates for you (based on openings on your linked calendar app).

<comment><USER27> NOTIFICATION FROM TINDERPRO: Congratulations you are now married.

</comment></comment><comment><USER28> It would be hilarious if two people match up both using this bot.

<comment><USER29> His soulmate is probably on reddit.

</comment></comment><comment><USER30> Wait, so guys are still getting matches on there? Am I the only one who doesn't get matches anymore?

A couple years ago I'd get like 5-10 matches/day using the app for like 10-15 mins/day tops. Every time I'd log in, the first 5-10 or so profiles would be from people who swiped right on me.

Now I seriously never get matches anymore. I'd estimate that it'd take me 30 minutes of swiping right on every single profile to even get a single match. I live in one of the most population dense areas (Manhattan) and consider myself at least average looking.

Anyways I've abandoned Tinder for a competitor. I'm getting matches in the new app at a rate that's more in line with how Tinder used to be for me.

My theory is that guys on Tinder just began swiping right on every single profile. I guess it's more efficient that way because then you can just filter the matches afterwards who you know are already interested in you. But the downside is that it makes women more selective.

Even then though, it doesn't make sense that I can load up Tinder now, swipe right on the first 100 profiles, and not get a single match (unless they changed the algorithm to not put people who liked you you at the top).

<comment><USER31> > _and consider myself at least average looking_

There's your problem. Many men on various online forums have compared their response rates when using a photo of an average looking man (or even above average looking man) and when using a photo of a very attractive man. The average man gets almost no matches, and the attractive man gets nearly all matches -- and, apparently, a surprising number of invitations for casual sex. It seems to be a case of the Pareto principle, with 20% of men claiming 80% of the rewards, though the numbers might be closer to 5% and 95%.

I'd assume this is a consequence of skewed supply and demand, where most men are happy to match with anyone and therefore swipe right frequently, and women receive many potential matches and can afford to be selective. I suspect this plays out in the dating scene as well (e.g., a small percentage of men sleep with a disproportionately large percentage of women). But the situation seems even more skewed on Tinder, where all emphasis is on physical appearance.

<comment><USER32> >I suspect this plays out in the dating scene as well (e.g., a small percentage of men sleep with a disproportionately large percentage of women)

I've seen studies that say 20% of men get the vast majority of women and sex.

<comment><USER33> Not a study, but it has certainly been mentioned before. Here's a relevant discussion (and YC alternative to Tinder) where the same topic is discussed (ctrl-F tinder).

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

</comment></comment></comment></comment><comment><USER34> How does this take boobs into consideration ?!

<comment><USER10> I love how this is a perfectly valid question given the context .. even if the phrasing may be somewhat off.

Back to topic, I'd think boobs (and other parts of the body that aren't part of the face) won't have much impact on prefrences.

Would you really reject someone because of their cup size, despite their pretty face? Similary, would you accept someone just because of their cup size despite their less-than-pretty face?

I mean sure there are people out there for whom this may be a valid concern, but it won't for the vast majority. So the question then really only is where you draw the line - what about asymmetric boobs and other body features?

<comment> D-Coder Why shouldn't cup size be important to many people?

"Would you really reject someone because of their face, despite their excellent cup size? Similary, would you accept someone just because of their face despite their less-than-excellent cup size?"

</comment></comment></comment><comment><USER35> _All were in agreement that it is not creepy, though some felt it was borderline._

I wonder how much of the feeling that this was not creepy came from the fact that he wrote the code himself. To me these two sounds pretty different:

"I came up with an algorithm that attempts to choose people and starts conversations the same way I would."

"I'm using an app I found that chooses people and starts conversations for me."

Come to think of it, neither sounds exactly creepy to me. The first sounds awkward but the second just sounds lazy... My point is that there is a difference between writing the code yourself and just using it.

<comment><USER36> _All were in agreement that it is not creepy, though some felt it was borderline._

If I was sitting face to face with a creepy guy I would also not challenge him that his actions are creepy. I would just do anything to calm him down, then leave at first opportunity.

<comment><USER35> That's a good point.

</comment></comment></comment><comment><USER37> That was step one. Now write a social network for your university.

<comment><USER38> in this case it seems it should be social network for bots. with tinder's users faces as avatars :)

</comment></comment><comment><USER39> You should try shuffling around this pipeline a bit. Instead of:

See face -> Score face -> Yes them only if score is good

Try:

See face -> Yes to all -> Score the faces of people who Yes you back

Also would be really interesting to create multiple Tinder profiles with different pictures, and see the beauty score distributions of people who Yes'ed each different picture.

That would be a very nice, automatable dating A/B testing experiment.

</comment><comment><USER40> > Another person thought it was really cool and wanted the full tour.

This could easily be mistaken as a metaphor for sex.

</comment><comment><USER41> Reminds me of anaface.com (where they tell you how attractive you are based off of symmetry).

I'm married so this is just plain entertainment for me but I think there are some genuine use cases for this on the Tinder side of things. Think about it.

If Tinder knew your preferences and was able to analyze the faces of all the users nearest to you, it could make your feed so much more relevant. In the end, Tinder's success is directly proportional to the number of dates it sets up. Basically, the more "attractive" people you encounter in your feed, the more frequently users will engage with and return to the app. I'm biting off an idea that is too big for me to chew but I imagine huge potential here.

<comment><USER42> Kind of. You need attractive users who will interact with you, not just that you get to swipe.

Honestly, taking guys swiping out of the equation until women have swiped them would already massively improve the experience for most users. I've run into plenty of guys complaining that in a week and hundreds of swipes, they get none in return; and women complaining that the app must be broken because everyone they swipe right to already liked them back.

Of course Tinder is interesting already because it's gotten people to buy into the bare minimum effort side of things - unlike other sites which generally try to find good matches based on personality, shared friends, or anything.

<comment><USER43> > Honestly, taking guys swiping out of the equation until women have swiped > them would already massively improve the experience for most users.

My understanding is that the app Coffee Meets Bagel does exactly this.

<comment><USER42> In a strange coincidence I downloaded that very app about 3 hours ago. But their site was down or not accepting signups or something, so I left it aside.

Anyway, from what I can tell, it's selling point is that it gives you one match a day... as opposed to the endless waves of matches of OkCupid or Tinder.

Whether or not that's actually a better experience, I don't know, but I do know a few female friends who like it. So that's enough to get me interested.

</comment></comment></comment></comment><comment><USER44> Just to make sure I'm understanding how this works:

        1. Faces are simply averaged for "Yes" and "No" training swipes.
        2. Each one of these two "average" faces are mapped to an Eigen space (where the Eigen vectors are computed from the training sets? or were they preprocessed with some other dataset?).
        3. For every new face, the bot maps that face to the same Eigen space and makes a Yes/No decision based on whichever model vector it's closest to (either the "Yes" vector or the "No" vector).

...right?

<comment><USER44> If that's the case (I think it is but correct me if I'm wrong) wouldn't it make more sense to compute the Eigen-representation of each training face first, then average those Eigen face representations as opposed to the cropped faces themselves?

</comment></comment><comment><USER45> I imagine paid services offering this functionality are about to come up and rise and make news with their profits. Perhaps Tinder will have its own built- in. The potential is certainly there.

Automatic messaging would be especially neat. Bots can take the time-wasting initial conversations all to themselves, after exchanging with each other more or less predefined templates they'd employ a crude ML-enhanced algorithm to estimate whether their respective human masters would like to take it from there or let it slip. Less awkwardness, less uncertainty, more efficiency.

<comment><USER46> The problem is that no matter how clever you make your algorithms in the end dating is about people. And if the person isn't interesting then nothing else matters.

There are other things worth optimizing in ones life besides technical sophistication. Interpersonal skills are a big one.

</comment></comment><comment><USER47> I can't quite articulate why fully, but to me this article sums up everything that's wrong with programmers and the community in general (of which I consider myself a part). :(

<comment><USER48> From Jurassic Park:

Dr. Ian Malcolm: If I may... Um, I'll tell you the problem with the scientific power that you're using here, it didn't require any discipline to attain it. You read what others had done and you took the next step. You didn't earn the knowledge for yourselves, so you don't take any responsibility for it. You stood on the shoulders of geniuses to accomplish something as fast as you could, and before you even knew what you had, you patented it, and packaged it, and slapped it on a plastic lunchbox, and now

[bangs on the table]

Dr. Ian Malcolm: you're selling it, you wanna sell it. Well...

John Hammond: I don't think you're giving us our due credit. Our scientists have done things which nobody's ever done before...

Dr. Ian Malcolm: Yeah, yeah, but your scientists were so preoccupied with whether or not they could that they didn't stop to think if they should.

</comment></comment><comment><USER49> Precision and recall stats needed.

</comment><comment><USER50> Pretty cool. I really like that people are exploring ways to come in contact with one another. I wonder if someone would add a meta data filter that if a twitter /Instagram /vine handle is found, grab the max tweets, vines, posts (filtering out reposts/tweets perhaps) and see how they cluster compared to past selections/interactions.

</comment><comment><USER51> Of course humans are way more advanced at this. We can look at more than faces. We can look at a person turned slightly to the side, and size up their body, face, hair, read their expression, and what they're trying to say, in a fraction of a second.

Let's see how eigenface figures that out.

Until then, swiping right for everyone may be a better strategy for straight guys.

</comment><comment><USER52> I do like seeing Scala being used more.

</comment><comment><USER53> The predefined message trees were kinda terrible, "I can't wait to introduce you to my mom"?!?!?

Aside from that, its pretty neat.

Edit: kinda wish it ran data analysis on multiple threads/cores. Edit2: It seems to be taking up 61 threads right now in fact... so its doing that quite well.

<comment><USER54> At least tell you are a fan of moms??

</comment></comment><comment><USER55> It's surprising to see that the Messaging bot actually worked out pretty well (according to the author) given the fact that StanfordNLP's sentiment analysis really sucks sometime. Probably because the initial chat messages are very similar and generic.

</comment><comment><USER56> So how does it handle the plethora of ladies who post pics of themselves with another guy? Or other girls?

<comment><USER57> FTA: "Only pictures with single, identifiable faces are used (to filter out false positives)."

</comment></comment><comment><USER58> Awesome. Thought about doing something similar a while ago but this certainly beats what I had in mind ;)

</comment><comment><USER59> Could do some A/B testing on your own pics + description to see what works best.

<comment><USER60> Yeah I was wondering if someone had built this feature. Put 15 or so pictures with descriptions. Use some spintax to optimize. Same with messages.

</comment></comment><comment><USER59> Anyone that can create a noob proof walkthrough to get this thing running? Thanks.

<comment><USER61> it is actually in the readme: install sbt, run the commands. That's assuming you have cloned the repo on your local machine and are running the commands from within the local repo.

</comment></comment><comment><USER62> >Another person thought it was really cool and wanted the full tour.

Innuendo?

</comment><comment><USER63> What template was used for the interface from the screenshot?

</comment><comment> saiya-jin How many of you folks have found a long lasting, good quality date via Tinder? Serious question, no pun intended. For me, albeit using it for only cca 6 months, it was useless. Same for people around me.

Yes, I got tons of likes, many conversations, a few dates that could be more if wanted, but women available via this were mostly... uninteresting. I am a bit picky (I am quite sporty type, and silicone beauties whose idea of perfect sunday is basically doing nothing while showered in luxury repulse me). Never been looking for one night stands or similar, that's for poor folks with daddy (and other) issues. Those kind of "relationships" tend to take more from person than give, and after some time, meeting such a person is rather sad story (or, more blatantly who wants to seriously date slutty used opposite sex).

Well, once you've got things to offer to women that they want, you can, and will be picky. I kept telling myself, it's just another way of meeting people, like all others. But for me, tinder crowd ain't doing the "game" seriously enough. Maybe location didn't help (Geneva, on border with France, and to be polite general French mentality towards relationships ain't compatible with mine).

So I found amazing girl via other ways (climbing), dropped whole tinder app into oblivion. Nice idea, and kudos to this guy for really getting max out of concept, but not for me. And seeing success rate around me, just going to a stupid bar, dressing nicely and just be a man women want gives you way more reward for any effort. But it cannot be done from couch, can it :)

<comment><USER9> To quote /r/ShowerThoughts: "The problem with Tinder is that you only meet people who are at a point in their lives where Tinder makes sense"

<comment><USER64> The same was true of singles bars before we had OKTinderList. Even if neither person really likes singles bars per se, having a culturally agreed upon way to meet people has some value, and once you've met your person of choice there, you don't need to ever go back.

</comment></comment></comment><comment><USER65> Can someone also make a bot that goes on dates with women to filter them? With your face and conversational data, of course, or they'd think it's weird.

</comment><comment><USER66> _All were in agreement that it is not creepy, though some felt it was borderline_

It definitely is creepy, though.

<comment><USER67> How? It isn't invading anyone's privacy or personal space. The actions the bot performs are exactly the same as what humans do.

<comment><USER68> >exactly the same

That's why. People take pleasure in expressing base instinctive behavior (and Tinder is mate choosing, refined to laboratory grade purity), but like to pretend it's something more dignified, not something that can be done by basic machine, be it organic or semiconductor.

</comment></comment></comment><comment><USER69> A person is not a face.

Dating sites of all shades "sell" us a person at various levels of depth and according to our interests.

Our interests can be deep, or can be shallow.

Tinder is "selling" shallow+fun (Appearances, nearness, sexual adventure).

Shallow + fun sells. Look at a magazine.

Eigenfaces takes the idea a step forward. Automate shallow+fun+selection.

Remember the vaporized alcohol craze ?

<comment><USER70> What's your point? Everyone knows Tinder is primarily for hookups and is shallow.

</comment></comment><comment><USER71> I think that what you like is average.. therefore you will like the average.. as expected.

If everyone will use a bot like this then only the beautiful girls will receive likes. Pointless.

If only you will use the bot then you will have a certain advantage over others.

This remembers me a guy that was a mathematician and found his wife with math. Was on another dating site.

I never used tinder.

<comment><USER72> Since Tinder already shows you almost nothing else but photos, we are already in the situation you describe. OTOH, there's always a gradient, not everyone can have the prettiest girls.</comment></comment>


Pentagon launches new research outpost in valley - <AUTHOR> http://www.paloaltoonline.com/news/2015/08/13/pentagon-launches-new-silicon-valley-research-outpost <comment><AUTHOR> this is kinda overdue</comment>


Measuring HTTPS Adoption on the Web [pdf] - <AUTHOR> https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/46197.pdf <comment><USER2> what the % number

<comment><USER3> That's not what the paper primarily shows. The gists are sentences in italic (in the section 3):

> Is HTTPS usage still growing? (Yes.)

> Does HTTPS usage differ by operating system? (Yes.)

> Is HTTPS usage equal across the world? (No.)

These sentences combined illustrate the difficulty of calculating a single accurate and representative measurement. Probably the following summary (mine) is better than nothing:

> HTTPS usage ranges from 40% to 70% when one looks at the ratio of page > loads. The wide range is due to the regional, OS variations and different > methods to determine the ratio. It is noted that Japan and South Korea had > slightly lower usage rates, no reason is given though.

</comment></comment><comment><USER4> Side note: Publications like this not clearly dated in the document are very frustrating.

<comment><USER5> Not only publications like this, but all the contest on web. Just today I was reading Bitcoin related article and only realized how old it is when reaching the part where it promotes Mt. Gox as a trusty Bitcoin exchange service. It really annoys me and I usually skip articles/posts that are not dated.</comment></comment>


The strange case of RSS - <AUTHOR> http://codepengu.in/internet/2017/12/24/the-strange-case-of-rss.html <comment><USER2> What is so strange about it?

What stops people from using their own algorithms to curate a collection of RSS feeds?</comment>


Wearable Electronics Are Making a Statement - <AUTHOR> http://www.nytimes.com/2012/02/26/business/wearable-electronics-are-making-a-statement-novelties.html

<comment><USER2> This is just another New York Times "bogus trend story". Why do people fall for this stuff?

<https://www.google.com/search?q=bogus+trend+story>

</comment><comment><USER3> The article neglects to say that you can do this already with the Arduino Lilypad; you don't need to wait until the Flora is released.</comment>


Microsoft hits out at Google team over bug report - <AUTHOR> http://www.bbc.com/news/technology-30779898

<comment><USER2> Well Microsoft had 90 days to fix the problem, why would 2 days make a difference? Sounds like Microsoft is trying to shift the blame and not to acknowledge that they fucked up.

</comment><comment> k-mcgrady >> "Google's Project Zero seeks to find bugs in popular software and then give the manufacturers responsible 90 days to fix the problem."

Seems reasonable.

>> "On 11 January, Google publicised the flaw. Microsoft said it had requested that Google wait until it released a patch on 13 January."

Dick move. Sorry, I can't think of any other way to describe it. They may have waited until the last minute (or maybe they really did have to rewrite a tonne of code) but that's no excuse or putting users at risk when you can wait two days. Seems more like a marketing tactic than a desire for faster security patches.

<comment><USER3> > Seems more like a marketing tactic

What do you think is most likely, that Google engineers were smirking and rubbing their hands together in evil glee as they planned to throw eggs on Microsoft's face, or do you think the bug just went though the 90 day mechanics and got released normally, not getting special treatment?

I seriously doubt it was "marketing tactic" but rather just a matter of not being flexible.

<comment> k-mcgrady With things like this you have to be flexible. All they asked for was an extra two days. To ignore that request you are doing something that could hurt users and hurt your competitor and it just seems slightly malicious. I can't see an excuse for it that makes it seem like a reasonable decision. Maybe it's not exactly a marketing tactic but it's malicious nonetheless.

<comment><USER4> > With things like this you have to be flexible

Not really. Google offered Microsoft the same thing they offer every vendor they find a vulnerability in: ninety days. If Microsoft couldn't fit a fix into an entire quarter's worth of development, that's on them.

Let vendors set the schedule for security fixes, and they will prioritize their own schedules over keeping their house in order. There is too much evidence of this to believe otherwise.

</comment></comment></comment></comment><comment><USER5> Duplicate of [https://news.ycombinator.com/item?id=8873694](https://news.ycombinator.com/item?id=8873694) which has substantially more comments; may I suggest that discussion occur there rather than here?</comment>


DARPA's New Self-Guided Bullets Turn in Mid-Flight Following Their Target (2016) - <AUTHOR> https://futurism.com/wanteds-curved-bullet-now-a-reality <comment><USER2> starting up in the early 80s that makes 36 years developing the technology, hmmm.</comment>


Which editor/IDE do you use and why? - <AUTHOR> https://dev.to/ben/which-editoride-do-you-use-and-why/comments <comment><USER5> IDEA for Java / Scala / Kotlin.

Emacs for everything else: JS, Python, Haskell,.. all the way to bash scripts.

I have high hopes for JetBrains, and possibly MS, making their IDE "engines" available for integration with third-party editors, similar to the way Rust [1], Haskell [2][3] and JS [5] "IDEs" try to follow (and apparently MS specifies for some of its tools [4]).

With that, you could use your best-loved editor (and people love a variety of them) with whatever language support engine(s), possibly even remotely.

To some extent, the venerable Plan9 ACME shown the way to that. The Xi editor seems to follow this design.

[1]: [https://forge.rust-lang.org/ides.html](https://forge.rust- lang.org/ides.html)

[2]: [https://commercialhaskell.github.io/intero/](https://commercialhaskell.github.io/intero/)

[3]: [https://github.com/haskell/haskell-ide- engine](https://github.com/haskell/haskell-ide-engine)

[4]: [https://github.com/Microsoft/language-server- protocol/blob/m...](https://github.com/Microsoft/language-server- protocol/blob/master/protocol.md)

[5]: [http://ternjs.net/](http://ternjs.net/)

<comment><USER6>
      I have high hopes for JetBrains, and possibly MS, making their IDE
      "engines" available for integration with third-party editors, ...

I am not sure if the project is backed in any official capacity by Microsoft, but isn't Omnisharp[0] more or less the same idea?

\---

[0]: [http://www.omnisharp.net](http://www.omnisharp.net)

<comment><USER7> Not sure if it still does, but I'm pretty sure omnisharp is what VS Code used for it's C# engine when it first came out

</comment></comment></comment><comment><USER8> I'm not a programmer, please forgive me, but I love using Sublime as a writing tool for legislation and public policy in my work. The color coding system popular in programming, has been invaluable in drafting legislation...

<comment><USER9> I'm curious about your use case, care to elaborate a bit more?

That color coding system you mention is for code syntax, so I'm picturing that Sublime for a text document might highlight seemingly random words used in coding (function, end, do, etc), and it doesn't seem so useful. So I'm geninuely curious.

<comment><USER10> The highlighting can be customised to do pretty much anything you want. I imagine OP does something like highlighting "should" a different colour to "must" and things like that.

I too am curious about details though.

</comment></comment></comment><comment><USER11> Notepad++ for python / javascript development for more than 7 years (hint: I use MS windows for my development environment). IntelliJ Idea for Java.

I have tried to replace Notepad++ over the years with nearly every other possible editor/IDE that runs on windows (vim, atom, VS code, sublime text) but always found Notepad++ a much better solution for my needs. Some of its strong points:

\- Really fast with a very small memory footprint. Written in C++ !

\- Free (GPL)

\- Supported from its author for lots of years

\- Nice syntax highlighting

\- Cool integration with Windows File Explorer

\- All editing options I want are there and easily configurable (tabs to spaces, strip trailing space etc)

\- Allows comparing files (diff)

\- Tail -f mode for logs (monitoring changes to files)

\- Correct and easy conversion to encoding formats (utf-8, to ansi etc)

\- Supports macros

\- Fully configurable styles

\- Great find and replace (supports regexes)

\- Supports workspaces and projects

\- It has some great plugins like:

\- Integrated file explorer through plugin

\- Ftp (sftp etc) browsing / editing through plugin

\- XML pretty print, linting etc

\- Python console scripting

\- Zen coding

Ok some of its weak points are:

\- No real auto-complete so it's difficult to be used with Java (of course that's the case with most editors)

\- Supports only windows (however I am using it _also_ on my mac mini as the default editor through wine)

\- Not very good marketing - Notepad++ is really great but I rarely see it discussed or trending as I was seeing atom or VS code

\- Cannot open (very) big files (it handles files ~ 200 MB without problems though).

</comment><comment><USER12> I moved to emacs from vi in the early 90s and stayed there, a little because of habit and a little because of convenience.

It works with every language. It has integrations with compilers and debuggers, but I've not been using them since I stopped using C. However I'm using the integration with Ruby's rspec to run tests on single methods from within the editor.

Emacs can complete text in several ways and I'm using the most vanilla one (pabbrev-mode [1]) which is still incredibly useful. It has syntax coloring. I also used to write my own macros in elisp but I'm not doing that anymore.

I'm using the customer mandated Java IDE when I work with Java. I didn't investigate if there is a modern emacs equivalent of Netbeans/IntelliJ/Eclipse but it would be impossible to develop in Java with plain Emacs. There must be something broken in Java if we need an IDE to work with it. I could be using PyCharm in a project for a customer (they offered to give me a license) but there is no need for that. All I need is pabbrev.

I'm using vim to edit files on servers or quick edits of configuration files with sudo.

[1] [https://www.emacswiki.org/emacs/PredictiveAbbreviation](https://www.emacswiki.org/emacs/PredictiveAbbreviation)

</comment><comment><USER13> Switched from Sublime Text 2 to VS Code at the start of the year. So far it's great apart from some annoying linting problems (eslint gets confused between ES6 with decorators and TypeScript).

</comment><comment><USER14> I'm pretty adept at Vim, and I still don't understand people who code using what's essentially a text editor with colors.

How do you do debugging? Conditional breakpoints? Call stack/view stack? Watch? Step/Continue? Meaningful autocompletion? Meaningful project management and navigation? Syntax highlighting isn't even important to me and I prefer either semantic highlighting or no highlighting at all.

I understand people who use something like a Vim plugin for a JetBrains IDE, sure -- Vim in my opinion is a superior editor compared to the usual thing, but when you skip the IDE altogether, how do you do the tasks I mentioned above? Do you just do print debugging and use the filesystem as a project manager, and just not take advantage of IDE's semantic insight into your code? That seems quite inefficient -- you're losing a lot. Do you add third party addons to make some of these things happen? Because I'm yet to find addons for Vim that don't destabilize it and also solve their problem as well as they're solved in full-blown IDEs.

Please illuminate me, considering the number of people who do this, I must be missing something!

<comment><USER15> > How do you do debugging?

I read the code and follow the state transformations in my head. The huge advantage is that this also works with software running in production, when all I can do is crank up the log level.

When I have access to the code and the compile-test-run cycle is quick enough, I speed up the process with printf debugging.

> Meaningful autocompletion?

I have a second screen where I can browse API documentation.

> Meaningful project management and navigation?

[https://www.gnu.org/software/coreutils/coreutils.html](https://www.gnu.org/software/coreutils/coreutils.html)

\----

I don't know; maybe I'm just good at what I do. I _have_ noticed that I can hold much more state in my short-term memory than other developers around me, and that helps enormously during debugging. The most important part of debugging is forming a mental model of what is going on. For some applications and subsystems that I wrote (between 100 and 10,000 LOC) my mental model is so fine-grained that when a user reports an error, I know which line of code is broken before I even cd into the source tree.

It should be noted that I'm not ignorant of IDEs. I have done a lot of work in Visual Studio some 10 years ago, and I liked it very much. When I moved to Linux, I switched to a text editor and gcc because these were readily accessible, whereas choosing and learning an IDE would have required additional effort.

Over the years, I've never found that effort worthwhile. I _have_ used gdb a few times, and had some good times hunting memory management bugs in my C++ programs with Valgrind.

Instead, I've come to appreciate that on every system that I ever SSH into, vim is always just a package installation and (optionally) a git-clone of my vimrc away. And if shit hits the fan, vi(1) will do. And if shit _really_ hits the fan, sed(1) will do.

Oh, I just remember that I had a relatively recent experience with IDEs: I had to use Java and Spring Boot for a university project, and was forced to use Eclipse because I could not get shit to build otherwise. It felt like being strapped in a straight-jacket, compared to the seemingly infinite freedom that a command prompt on a terminal has come to mean to me.

I have two IDE-like features in my vim: Syntastic (a plugin that runs syntax checkers and linters and shows the errors and warnings in-line) and a tiny vimscript that runs gofmt/goimports when I save a Golang file. My other plugins are all focused on more comfortable text editing.

\----

I don't intend to hate on IDE users. If they can work better with an IDE, then that's great. I'm more productive without them.

\----

Sometimes I snicker when someone on HN complains that Rust is totally unuseable because there is no stable IDE support yet, or something like that. And I'm sitting here and writing syntax highlighting rules in vimscript for DSLs that I just made up.

EDIT: One more thing. The choice of languages and frameworks shapes the choice of editor. I would never try to develop a Java project in vim, and working on Rails apps leaves much desired. (I could try to find a good IDE plugin for vim for the language in question, but I'm changing languages very frequently and don't want a bazillion IDE plugins clogging the editor.)

And of course, the same applies in reverse. Because I'm a vim user, I will prefer languages that play well with vim. Right now, my most-used languages are Golang and shell script and YAML (if that even counts), and these all work nicely.

<comment><USER16> Do you do work where you have to inspect large data arrays? The ability to pause execution (say, training a neural net on billions of rows of data) and inspect what the weights and biases are doing over several iterations is invaluable, and much easier to understand than running->printing/logging. Especially if it takes a significant amount of time to hit that point of the code. If there is a problem, I can work with the processed data, and make changes live, rather than edit code, run it, wait for 30 minutes, and hope it works, since it can take several iterations.

</comment></comment></comment><comment><USER17> _tmux + vim_ on the server because it's there and does what I need it to do.

 _sublime text_ on the desktop for easier clipboard managment and motion keys that are consistent with the environment

</comment><comment><USER18> I will be laughed at for admitting this but I'm still using TextMate (2.0-rc.4) for my main profession which is Ruby on Rails development. TM2 is fast, stable, extensible, native and lightweight.

</comment><comment><USER19> * Visual Studio + Resharper for C#. Don't really think there are any realistic alternatives, although I'd be happy to try some out, my current setup tends to get slow.

* Visual Studio Code for JavaScript/TypeScript and React. I tried Sublime and Atom, didn't quite like them, haven't had any issues with VSCode since I started using it about a year ago. But I wouldn't be able to tell you why I like it better than the alternatives. I probably should.

* Eclipse + Counterclockwise for Clojure/Script. It doesn't seem to be very popular, and I've been meaning to try out Cursive and proto-REPL (and maybe actually get into Emacs), but I've been using Counterclockwise for years and I really like it. The Clojure data structure editing functionality is really neat, and I don't remember seeing its flavour of it in other editors. But like I said, I don't have that much experience with other editors.

<comment><USER20> Jetbrains (makers of Resharper) are making a C# IDE called Rider. It's free while in early access. I like it, but confess that I never got into Visual Studio.

It seems like a competent IDE with excellent integration of Resharper functionality out-of-the-box. It's also multi platform, which is great if you're not on Windows.

</comment></comment><comment><USER21> I use Atom for frontend web dev. I don't particularly love it, honestly.

I used Webstorm from Intellij when I was doing pure JS work. Loved it.

I'm considering going the full Intellij suite, but the cost is prohibitive.

</comment><comment><USER22> StackOverflow has an extensive survey which includes which IDE used. (no details given as to why) [http://stackoverflow.com/research/developer- survey-2016](http://stackoverflow.com/research/developer-survey-2016)

I though it was weird to see Notepad++ at the top so I ran my own survey. [https://codepilot.ai/editor-survey-thanks/](https://codepilot.ai/editor- survey-thanks/)

<comment><USER22> I use IntelliJ IDEA because that is what I used at work.

</comment></comment><comment><USER23> Emacs for many purposes, but largely Perl and Python. SQL Developer for Oracle work. SQLServer Management Studio for SQLServer work. VisualStudio for VB.NET and C#.

</comment><comment><USER24> PHPStorm - its by far the best IDE for PHP. Over the years I tried: Eclipse PDT, NetBeans, Zend Studio but PHPStorm beats the competition in every respect.

</comment><comment><USER25> JetBrains based editors are quite nice if you can afford it. Free for students and open-source developers.

PyCharm for python, IntelliJ for java, Cursive for clojure

<comment><USER26> At the end of the day, easy debugging is my #1 concern when choosing an editor. Intellisense a pretty close #2.

I just wish I didn't need a completely separate editor for each language. Right now I regularly use PyCharm, PHP Storm, Ruby Mine. I guess I also use ReSharper a lot, but that's slightly different :D

<comment><USER27> You actually don't need a separate editor for most of the languages (minus C++ with CLion). It's not entirely obvious, but if you use IntelliJ IDEA, there are plugins for the other languages that provide the equivalent functionality of PyCharm, Ruby Mine, etc: [https://plugins.jetbrains.com/idea/plugin/631-python](https://plugins.jetbrains.com/idea/plugin/631-python) [https://plugins.jetbrains.com/idea/plugin/1293-ruby](https://plugins.jetbrains.com/idea/plugin/1293-ruby) [https://plugins.jetbrains.com/idea/plugin/6610-php](https://plugins.jetbrains.com/idea/plugin/6610-php)

</comment></comment></comment><comment><USER28> I must admit, I am a bit surprised to see "easy to learn" as an answer to "why" in so many recommendations. I would think that after a week (or a month in extreme cases) the value of "easy to learn" would quickly approach 0.

I value my editors for their power and responsiveness, not for the frustration spent years ago on learning them.

</comment><comment><USER29> Vim. It makes a lot of text editing way faster and easier. Like, it's to the point where I haven't bothered getting comfortable using awk and sed for one- off text munging, because when I want to take test suite text output and turn it into a sorted list of test names, I can just slam it through vim for thirty seconds instead.

</comment><comment><USER30> Vim because it's burnt into muscle memory. For things like Java-programming I'm also happy to use IDEs.

</comment><comment><USER31> I use spacemacs for most things now. It has the extensibility of Emacs with an actual vim emulator worth a damn for power vim users coupled with a well thought out and integrated visual leader system. Magit is phenomenal and changes how you view source control. Org mode is great too.

</comment><comment><USER32> IntelliJ for everything. My only complaint is that when I'm writing front end code, it has to do do more guesswork for the autocomplete suggestions, which takes more time, so I have to purposely stop typing for a second to let it find the suggestion I want so I can select it.

</comment><comment><USER33> I use VSCode for front-end dev with TypeScript due to the simple out of the box setup and snappy interface. For back-end in Java/Kotlin, I use Intellij IDEA - I've yet to find another IDE that can provide the refactoring and static analysis tools IDEA can provide.

</comment><comment><USER34> VIM (you need to able to touch type or else VIM will be frustrating) all the way even for Java with support from the following plugins:

* VIM Fugitive

* VIM Surround

* VIM Closetag

* You Complete Me

* Ctrl-P

* VIM color Solarized

* NerdTree

* VIM Airline

* TERN for VIM

* VIM Javascript

* VIM JSX

* VIM DelimitMate

* VIM JS syntax

* VIM Eclim for Java

</comment><comment><USER35> Eclipse for Java / Scala / Latex / pretty much everything. Awesome and mature IDE, performance is getting better, high degree of customization, and many other great things.

</comment><comment><USER36> I'm forced to use VSCode. I'm in a really slow machine and Visual Studio is really slow. I switched from 2015 to 2017, and things speedup little bit, but I keep VS2017 open only for scafolding, publishing, etc.

I'm really in a great learning experience using C#/Asp.Net MVC 5 on VSCode. You need learn command lines of how to build, start IISExpress, etc.

My next steps are learn how to use Nuget and EF migrations via Powershell (out of Visual Studio), and maybe use/create scaffolding with yeoman. I dont think will be hard... I type commands inside of VS IDE. I just need a bit more of time :)

</comment><comment><USER37> Intellij IDEA for everything. The plugins for IDEA aren't far enough behind Jetbrains more language-specific IDE's (e.g. WebStorm or PyCharm) for me to mind much.

Plus it's nice to just have one go-to IDE for dev imo.

</comment><comment><USER38> Emacs, for everything else but Java. IntelliJ for Java.

Why Emacs? Because I've used it for 35 years, and I don't have to think about driving it. The keystrokes are burned into my fingertips, so I don't have to think about them. (When that lets me down and I _do_ have to think about it, I'm often stuck.)

Why IntelliJ? Because it's like being psychic - the code just appears on the screen, with (almost) no typing on my part. The in-context completion is _amazingly_ good. There are other pluses, but that's the one I notice the most.

</comment><comment><USER39> I have been using Boxer editor ([http://www.boxersoftware.com](http://www.boxersoftware.com)) since the DOS version. Very user-friendly imo.

</comment><comment><USER40> I tend to use vim for fortran/java/haskell/python/clojure/scala/bash/latex.

Recently I've been working in a C#/F#/.NET world with Visual Studio + the vsvim plugin. It's a decent substitute for the most part, but I hadn't realized how much I valued not having to wait 30 sec 4 min (depending on project size) to load files. Also, occasionally I'm doing some plumbing work and find myself trying to use registers and macros, which seem to be missing.

</comment><comment><USER41> I sometimes power up Netbeans for one feature - it's local history feature. Any time you save a file, it stores a little diff of the changes and has a very nice visual diff function that works with it. The same feature works for history stored in git or svn too.

I've not seen this replicated in any other editor as well as with this. It's like having an embedded Meld function.

Generally though: Vim, Geany, Atom, Gedit

<comment><USER16> Pycharm has this as well.

</comment></comment><comment><USER42> vim + shell. I bounce around a ton of different languages and platforms for my job. It's nice to have a common set of tools for everything.

</comment><comment><USER43> Vim for Rust and C, with just the Rust syntax highlighting plugin (I have Racer installed but don't tend to use it). It's lightweight and gets out of my way when editing text.

Visual Studio 2015 for C++, with the VsVim addon. I mostly use C++ for Windows-specific APIs and toolchain, so autocomplete and MSBuild are nice to have.

</comment><comment><USER44> Interesting Atom is first comment, I usually see it get a lot of hate.

My usual environment is Visual Studio, as I work with C# mainly.

</comment><comment><USER45> Pretty much exclusively Sublime. Sometimes I use vim for quick edits on the server, but since I always have WinSCP open along with the SSH connection, it's usually just as fast to use Sublime for remote files, too.

I do plan to get more used to vim once I move away from Windows.

</comment><comment><USER46> * Visual Studio for C#

* XCode for Swift/ObjectiveC

* VSCode for other languages

* Notepad++ for text editing on Windows

* Textmate for text editing on OSX

</comment><comment><USER47> The jetbrains family for most parts : idea for Java/scala, phpstorm for, well, php and pycharm for Python. I like spring toolsuite which is built on top of eclipse. On the term, it's vim and on Mac it's TextWrangler.

</comment><comment><USER48> Combination of Emacs and Visual Studio 2015. Would like to kick the tires of Visual Studio Code - especially since there is an Emacs keybindings plugin.

Am curious if they will dump the bloated VS in the near future and focus on VS Code.

</comment><comment><USER49> Atom setup to emulate vim

apm list: [https://gist.github.com/985407cc84afb35f45ec5d9bd74f67d5](https://gist.github.com/985407cc84afb35f45ec5d9bd74f67d5)

</comment><comment><USER50> Emacs, because Emacs. I know how to use it, extend it, and combine it with other tools. I tried working with VS Code and Atom. I really tried. I keep coming back to Emacs all the time.

</comment><comment><USER51> Recently Visual Studio for Mac (which is a massively improved Xamarin Studio it seems) because C# + Xamarin for iOS. When not for work VIM for Clojure, Lua and others.

</comment><comment><USER52> VSCode because the TypeScript integration is just phenomenal.

</comment><comment><USER53> 60% - Visual Studio Pro / 40% - Visual Studio Code

Why? .NET enterprise dev is my job, hence Visual Studio Pro, those services are fronted by SPAs, hence Visual Studio Code.

</comment><comment><USER54> PyCharm for Python.

Sublime for Markdown/notes, etc.

Trying to use Visual Studio Code instead of PyCharm, but it's not yet ready to fully replace PyCharm.

</comment><comment><USER55> Android Studio for Android, because it's the best IDE for Android

Sublime for everything else because it's lightweight and no frills

</comment><comment><USER56> Vim for almost everything except for C# and F#, which I prefer to use Visual Studio (the full one).

</comment><comment><USER57> geany + vim

[https://www.geany.org/](https://www.geany.org/)

</comment><comment><USER58> Jedit or Atom, terminator, vivaldi

</comment><comment> Const-me Visual studio 2015, visual assist, a couple of specialized addons like tangible t4 editor.

</comment><comment><USER59> Several instances of VS because I'm in enterprise abstraction hell.

</comment><comment><USER60> Visual Studio with Resharper.

Anything else just does not come close for C#.

</comment><comment><USER61> It depends on the language I'm working with:

Python - <USER2>

Clojure - <USER3>

Javascript - MS Visual Code

Java - <USER4>

PHP - Notepad++

</comment><comment><USER62> Xcode and tmux+vim.

<comment><USER63> I assume you're writing Swift and/or ObjC. Which vim plugins do you use for these languages?

<comment><USER62> Exactly what @nsfyn55 says except when I toy with "raw" swift - that is, no Cocoa and such - I often just use tmux+vim. Of swift specifics in my vim setup, I use the official swift vim plugin and a couple of tslime.vim mappings for starting, stopping, testing and building swift from vim in a separate tmux pane.

I have the tslime.vim mappings set up as autocommands with specifics for python, rust, swift, haskell.

</comment></comment></comment><comment><USER64> iTerm2, micro (github.com/zyedidia/micro), fish, lldb, fzf, make, etc. for C, C++, Go and Rust. Xcode for Swift.

</comment><comment><USER65> Acme. I'm used to it.

</comment><comment><AUTHOR> I run the linked site (and started that thread). I'd love it if you signed up <3</comment>


How to Read a Patent - <AUTHOR> http://adlervermillion.com/how-to-read-a-patent/ <comment><USER2> A slightly more humorous take on the same thing:

[http://www.danshapiro.com/blog/2010/09/how-to-read-a- patent-...](http://www.danshapiro.com/blog/2010/09/how-to-read-a-patent- in-60-second/)

<comment><USER3> Former patent examiner here. This is the truth. Only thing I'd add is, read the claims _broadly_. Anything that could possibly be meant by the words in the claim.

If it's broad enough to contemplate what you're doing, look through the spec, correspondence (the "file wrapper"), and general knowledge at the time for arguments to restrict interpretation of scope. Also, talk to a lawyer :(

edit: linked to this in another comment, and it also belongs here: "Broadest Reasonable Interpretation" [http://www.uspto.gov/web/offices/pac/mpep/s2111.html](http://www.uspto.gov/web/offices/pac/mpep/s2111.html)

<comment><USER4> Would you say it's more or less impossible to write your own patent claim? I.e. is there some book or some resources that could teach you to do it or is the knowledge required too big?

<comment><AUTHOR> Mostly impossible. There is a fairly useful book - the USPTO's "Manual of Patent Examining Procedure" (or MPEP). Official - [http://www.uspto.gov/web/offices/pac/mpep/](http://www.uspto.gov/web/offices/pac/mpep/) My copy - [http://adlervermillion.com/MPEP/](http://adlervermillion.com/MPEP/)

Its a huge book though, and not worth reading it unless you want to work with patents every day (as a patent agent, patent examiner, patent lawyer).

Also, its a reference book, not really something you can read start-to-finish.

</comment></comment></comment></comment><comment><USER5> Only the claims define the power to block others from using the ideas in the patent.

In theory.

But remember that the patentee (that's the one with the patent) can always keep a "continuation" pending. With a continuation, the patentee can rewrite the claims however he wants. He can wait until your product is on the market and rewrite his claims to follow your product exactly. He could even sue you, lose for invalidity or noninfringement, and then rewrite his claims to more closely match your product and sue you again.

The only limit on claim rewriting is that the new claims have to somewhat reflect what's in the specification and have to be reexamined. Reexamination, like examination, is more a coin flip than an engineering evaluation of the patent claims. Reflecting the specification doesn't have to follow too closely what was in there originally but it does place some limit on the breadth of claim rewriting.

And rewritten claims have the same long ago priority date against prior art as the original claims. Your product does not count as prior art just because it was widely known when the new claims are written.

</comment><comment><USER6> One common confusion people have when reading patent is the word "comprise," which appears a lot in the claim language. This probably comes from the confusing definition of the word in the legal dictionary, [http://legal- dictionary.thefreedictionary.com/comprise](http://legal- dictionary.thefreedictionary.com/comprise), which implies there are more elements than the ones specified.

Comprise always means all or nothing in the claim conditions. All conditions have to be satisfied for the claim to be valid against a product.

<comment><USER3> "Comprising" means having at least all of the listed elements.

"Consisting of" means having all of the listed elements and nothing more.

"Consisting essentially of" means having all of the listed elements, with more stuff that doesn't _materially change_ the character of the invention (that's where the lawyers come in).

[http://www.uspto.gov/web/offices/pac/mpep/s2111.html](http://www.uspto.gov/web/offices/pac/mpep/s2111.html)

</comment></comment><comment><USER7> Having read this article, I begin to suspect that _only the claims define patent rights_ , and not any other section of the patent.

<comment><AUTHOR> Its the number one mistake people make... but maybe I should tone down the repetition a little?

<comment><USER8> No. Keep it the way it is. The number of times patent stuff shows up on HN and people go read the abstract or description, or just the title, and then go get outraged is (hehe) outrageous. This needs to get hammered into people's heads.

<comment><USER9> sadly, this won't stop them, as I'd wager more than a few of them know that the abstract has no legal weight, but are always up for an excuse to bash their particular company/individual of choice who files software patents.

</comment></comment></comment></comment><comment><USER10> Assuming of course that it's a smart idea to be reading that patent at all...

</comment><comment><USER11> >>> Check to see whether the prior art reference explains every element of a claim in the patent. If so, the reference "anticipates" the claim, and the claim is invalid.

I'm not a lawyer, but I have over a dozen patents, and have participated in other IP related activities such as invalidation. Here is how I understand it, as explained to me:

It's assumed by default that the patent is granted in light of the information referred to by cited works. In other words, the examiner has declared that nothing in the references anticipates the claims. If you're looking for new prior art, it has to be outside of those references.

Of course anything can be challenged, but instead of "look, we found some prior art," you have to argue, "look, the examiner missed something."

OP, does that make sense?

A couple other thoughts: First, the body text may be gibberish, but the body of patent A can be used against the claims of patent B, if A is not cited by B. I've used this successfully, thanks to a few solid days of Google searching. Or, A and C can be combined to show obviousness.

Second, body text can contain useful information in its own right. I have a product under development right now for my side business, using an electronic circuit described in an expired patent.

</comment><comment><USER12> Interesting read, thank you for posting it.

One suggestion is to copy/move the warning "If you have an important patent question, hire a patent lawyer" to the intro.

A lot of people skim through the conclusion section and may just know enough now to be dangerous, like you said :)

</comment><comment><USER13> Q: How To Read a Patent A: If you work in a company, then the answer is very simple: "Don't!" \- Don't even try to pretend that you've heard it, or that it exist.

</comment><comment><USER14> Only claims define the intellectual property rights, I get that. But patent jargon is often so abstruse and vague that you need to read much of the supporting text to even understand the claims. Sometimes when I look at claims for patents that I'm an inventor on even I don't know what IP is being staked out based on the claims section alone.

<comment><USER15> One trick I find very useful is to read the claims out loud. It forces me to slow down and concentrate on the words.

Also, some patent lawyers have a "said fetish": every component is referred to as "said component" so you get sentences like "A widget consisting of a foo, a bar and a finangle, with said foo afixed atop said bar and said finangle to make an assembly where said assembly has said foo..." etc. The presence of the "said"s makes the claims weirdly unreadable, as they grab scarce attention from the lay reader, so just blip over them when reading.

</comment></comment><comment><USER16> I wish someone would write "how to read an IETF specification" or "how to read an ECMA standard."

</comment><comment><USER17> Here's a link to a patent on Google Patents for example: [https://www.google.com/patents/US5255452](https://www.google.com/patents/US5255452)

You can see how Google emphasizes the independent claims on the right.

</comment><comment><USER18> I think we killed it :(

Here is a cache of the homepage though...

[http://www.salar.ly.nyud.net:8080/](http://www.salar.ly.nyud.net:8080/)

</comment><comment><USER19> I've needed this for a while.</comment>


Custom Elements – Web Components - <AUTHOR> https://developer.mozilla.org/en-US/docs/Web/Web_Components/Custom_Elements <comment><USER2> Browser compatibility section at the end of TFA states that it isn't supported by FF (Gecko), so why is it on MDN then?</comment>


23 Years Ago: Welcome to Debian Linux 1.1! - <AUTHOR> https://lists.debian.org/debian-announce/1996/msg00021.html <comment><USER2> Wow. Congratulations! I am too young to really appreciate the difference Debian made to the Linux distributions ecosystem. Did it really ship the first package manager? Didn't it tie the user to a "desktop environment experience" like modern distros do (also Debian, with the Gnome affinity)?</comment>


Ask HN: What traits you need to be a team leader? - <AUTHOR> Suggestion, blog or book? <comment><USER3> 1\. You have to have your people's back, this is the most important thing... be there for them 24/7, insulate them from problems and management stupidity and always fight for them.

2\. lead by example, never ask them to do something you won't do yourself.

3\. Communicate, I have booked on afternoon a week from 14:00pm till 16:00 and more to just talk with my team and discuss everything from work, to weather, sports, to bitch and moan against the company, etc...

4\. Get together as much as you can on a real "team building exercise" \- the whole team in another city for at least 2 days with a great party and lots of eating and drinking on company dime...

<comment><USER4> > 4\. Get together as much as you can on a real "team building exercise" \- > the whole team in another city for at least 2 days with a great party and > lots of eating and drinking on company dime...

I deeply despise this trend.

<comment><USER5> I find that a lot of really bad leaders do this a lot for some reason. The best organizations are often targeting something epic, which builds camaraderie in itself.

<comment><USER4> Yeah. If you have to be beer buddies with people you work with you don't understand what professionalism is.

<comment><USER3> This is not about beer buddies after work, this is about getting together once or twice a year to get to know each other a bit more...

I am going to answer here the person who deleted the long message yesterday saying saying he/she rather play PlayStation alone and so forth (hopefully he/she will read this)

If one of my employees is having panic attacks thinking about the yearly team building diner and drinks, then we are having a big problem...

We need to sit down talk about it and find a solution, professional help, whatever it takes to go over this, because it is juts not healthy!

Not to mention on how this person will react in a real stressful situation, let's say the part of the network is down, systems affected, the company is loosing money on SLAs, big debugging call in the middle of the night - <USER2> kind of real pressure will for sure either damage a fragile person or at least case a burn out...

Mental health is no joke and have to be taken very seriously...

<comment><USER6> You sound like you know how to work with others. How do you like life as a (solo?) trader then?

<comment><USER3> I still work a "full time" job, just because I love my job and the team I lead, so every year I am postponing my early retirement to the delight of my bosses...

I work from home (my team is spread across the country), but I talk to them almost daily, so frankly I am not sure what I would do when I retire for real. The trading is fully automated, so I would get bored pretty fast I guess...

For now the plan (written in sand in a low tide) with my wife is to give it a go maybe after the kids are out of the house (hopefully in a few years) and travel for a while...

It was a bit of a long winded answer, but as you can see I have no idea yet :-)

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> 1\. Great communication skills: Both for communicating with the people who report to you and for the people you report to 2\. Understanding the business's goals: This will help you prioritize projects in a way that helps the business the most 3\. Managing office politics: Your direct reports may be gunning for each other's jobs or your own. You need to get everyone to work as a team instead of working as individuals. Improving your emotional intelligence can help here. 4\. Knowing where to get help managing when you need it. Often talking to your boss or a former boss is a great way to go.

You might find this article I wrote helpful: [https://www.climbuptheladder.com/how-to-be-a-great- manager/](https://www.climbuptheladder.com/how-to-be-a-great-manager/).

</comment><comment><USER5> 1\. Figure out the right thing to do. Be brutally honest to yourself as the biggest source of falsehood is what you want to believe.

2\. Do the right thing.

3\. Do it fast.

Great books on this: Ben Horowitz's "The Hard Thing About Hard Things", Andy Grove's "Only The Paranoid Survive", Jocko Wilink & Leif Babin's "Extreme Ownership".

</comment><comment><USER8> Camille Fournier's The Manager's Path: [http://shop.oreilly.com/product/0636920056843.do](http://shop.oreilly.com/product/0636920056843.do)

</comment><comment><USER9> There are people, who:

\- when they are in the room, others pay attention to them and wait for their opinion

\- when they start speaking, everyone listens

\- when they decide they want to go or do something, the rest follow

Be that person.

</comment><comment><USER10> [https://theamericanscholar.org/solitude-and- leadership/](https://theamericanscholar.org/solitude-and-leadership/)

<comment><USER11> Thank you. This is great.</comment></comment>


Gratitude Button - <AUTHOR> https://www.linkedin.com/pulse/gratitude-button-anup-surendran <comment><AUTHOR> If you folks are interested you can contact the author to build Healthcare related IOT along with QuestionPro. I believe the company sponsors these projects.</comment>


ThoughtLeadr announces partnership with Imgur - <AUTHOR> http://venturebeat.com/2012/04/13/thoughtleadr/

<comment><USER2> What range of sites are they going for? Do they consider blogs and news sites like CNN to be "Social Media"?

<comment><USER3> The company is pretty focused at this point on the discussions that internet users are having online, which may happen in blogs (and their comments) and social news/link-sharing sites. We're especially aiming to be a platform for emerging social sites.

</comment></comment><comment><USER4> Nice work Thoughtleadr!</comment>