Facebook recommended that a psychiatrist's patients friend each other - <AUTHOR> http://fusion.net/story/339018/facebook-psychiatrist-privacy-problems/ <comment><USER2> This is one of the many dark patterns that Facebook uses. It simply does not respect any boundaries the user might wish to have in place...

Install it on your phone? Anyone you have in your phone's address book gets to see your picture under "people you may know".

Someone in your family joins Facebook and friends you? Now everyone you are friends with gets prompted about whether or not they know your family member.

Want to delete some pictures you uploaded to Facebook? It's extremely difficult and they must be deleted one by one.

Other than LinkedIn, I'd say FB is the prime innovator of UI dark patterns that exploit users' unwitting behavior for profit.

The youngest generation of internet users gets this which is why they largely do not use Facebook. Soon they will realize that IG and Whatsapp are connected, and will avoid those too.

What's interesting to me is that the recommendations are fundamentally not useful. It's easy to look someone up by searching for their name without the privacy-invading helpful suggestions.

<comment><USER3> I know it's seems like it's 'dark pattern' week on HN, but not everything is a dark pattern.

Dark Patterns are user interfaces that are designed to trick users.

Facebook requests the permission to go through your stuff and if you read their data use policy, they go so far as to tell you in detail exactly the information they're taking from you, as well as how they use it.

Sure, it's a little bothersome when the information that you've given them goes farther than your personal preference, but it's not a 'dark pattern', it's just a feature that you don't like.

<comment><USER4> Indeed, I don't believe the problem here was that Facebook was tricking their users here into handing over their phones/emails contact information (aka this persons client lists). FB is explicit about permissions in this sense, although most users agree to everything without thinking twice.

The real problem is how the information was utilized by the recommendation engine, which is known to be creepily effective at matching people (people who just met for the first time, for example). FB is investing heavily in AI here so this is the natural outcome - where the results are very effective but has some unintended side effects. The side effects are largely due to the fact this connectivity happens in the background, outside of a place where the user can control privacy settings on particular contacts.

So I'm not sure there is an easy solution here. Mining contacts and social information is Facebook's business. It's what you hand over to use the service and why many people stop using Facebook voluntarily - or carefully limit what information they allow access to. I never allow FB to access my phones contacts, for instance, and their mobile app still works fine.

<comment><USER5> Fundamentally though that's the problem with the modern web - the services that users get is not a transaction in the sense that the user knows what they're giving up for the service - it's all hidden under an innocent permissions check (if it's Facebook) or not said at all (if its LinkedIn). The user provides permission for a small pittance like their email address or phone number and it snowballs into having every want need and action tracked and catalogued to make the service owner money. A product not intent on tricking the user into giving up every bit of the data on their life would ask if it could use individual bits of information to serve them ads and sell their information.

It takes more than it asks, and the fine print is there to cover its ass, when in reality if users were asked about what information they were willing to share they would be much more uptight. The users's have no real idea what is happening with their data, what they've given up or how its used to make the company money. It may be true that most user's don't care, and some might even prefer the outcome to them in the form of "relevant" ads (if the choice is made over "irrelevant" ads or paying for the service). It certainly is transforming what is in the public sphere about people, and the lessening of privacy can certainly be used as a weapon (and it is, to the extent that it is a big powerful force arrayed against a person independently figuring out what they want to spend their resources on).

</comment></comment></comment></comment><comment><USER6> TLDR#1: The investigation still didn't reveal exactly how this happened.

TLDR#2: The recommendation to "prevent" these issues on the individuals side is, "Lisa's medical community has started recommending that patients concerned about privacy not log into Facebook or other social media accounts at medical offices, or even leave their phones in their cars during appointments. "

This is about as practical as recommending people just figure out how to fly and occasionally levitate into the upper atmosphere to go out of the cell tower's range, move a few kilometers west, and then fly back down to earth to scramble all these tracking algorithms.

<comment><USER7> So basically don't install Facebook or Whatsapp try to use the Facebook website if you can or better yet don't use Facebook at all on your phone if you value your privacy.

It's sad that we are at this stage but it's mostly our fault for being so complacent with companies doing these kinds of things.

If people stopped using their service when they did these kinds of things they would change their behaviour really quickly but most people don't know or care that this is happening.

<comment><USER8> An individual's data sharing with Facebook is less of the issue, here, though. You personally not using it doesn't prevent you from becoming the common thread that ties others together.

Just because I'm not on Facebook (I'm not), anyone that's allowed Facebook to see their own contacts, in their phone or email, has shown that they are or are not connected to me in some way. Without me actually ever even having an account with Facebook they can correlate this data from users to see who is likely to know one another by a shared connection to me. Just because my particular node on the relationship tree has more blanks than it would if I was a Facebook user does not mean I don't create a node at all.

My guess for this Facebook issue in particular is that the Doc potentially did absolutely nothing herself, but rather all of her patients had mail and phone contact lists that included her and that common thread along with the same geographic area was enough to trigger a recommended match. In other words, this was equally likely to happen even if the doctor never had a Facebook page of her own.

<comment><USER9> That doesn't seem to be very important. It's not the doctor who wants privacy.

The people who want privacy allowed Facebook to scrape their contact lists and monitor their locations. They then expected Facebook not to correlate this data with others who contact and visit the same doctor. Why not?

<comment><USER10> > They then expected Facebook not to correlate this data with others who > contact and visit the same doctor. Why not?

Because that would be a dick move.

But clearly that is not enough to dissuade companies from doing this kind of thing, because they have no morals.

And that is the crux of the problem. They don't give a shit what would be considered "reasonable behaviour" for a human being, because they are just giant correlating machines with access to data they shouldn't have been given access to by people who don't know better.

At the end of the day, we are allowed to have reasonable expectations of others, including companies, so I take issue with any implication that they should have known better. We are allowed to have these reasonable expectations. And we will be constantly disappointed. But we should maintain them, I might even say that it is a duty to do so.

Saying "they should have known better" is giving up the fight prematurely. They shouldn't have to know better. They should be able to expect that their privacy (a right) will not be violated.

It is an ideal, not a reality, but it is something to work towards. One step might be to sue the hell out of Facebook for this.

<comment><USER11> Suing Facebook for knowing something people told them ought to be interesting. Please tell HN all about it if you ever pull the trigger.

</comment></comment></comment></comment></comment></comment><comment><USER12> So, I deactivated my account maybe 6 months ago, and uninstalled the app long ago. Since then, I moved halfway across the country and, using a _brand new_ laptop, a fake name and number, and a throwaway email address, created another profile so I could use their API.

People You May Know still had old high school friends, my old real estate broker (??), and someone I starred on GitHub. I have _absolutely no idea_ how they connected that account to my old one, considering Google Mail is the only other service I've used on that laptop.

<comment><USER13> You're not using some kind of mobile router/dongle thing for network access are you?

Otherwise all that's left is you - how you type, click & otherwise use FB.

Edit: and the 1st thing the goddamn site shows me is a pop-up begging for a Like :\

<comment><USER12> I'm not, in fact I'm using a different ISP entirely. You really think my behavior patterns are uniquely identifiable at FB's scale? I can't imagine how many other users must have similar typing/clicking/resting/etc. patterns.

<comment><USER13> Interestingly, my comment's getting down-voted without refutation. C'mon, let's talk :)

Anyway, no, I don't know if FB can do that at scale.

What I do know is that sites, especially complex ones like FB, like to track user interaction to evaluate UX (hover targets, click targets, time it takes to find call-out etc).

If I were a data science type at FB, and knew FB was collecting that stuff, I think I'd like to find out what other questions I could answer with it.

Or more banal - did you use your laptop as a wifi endpoint and connect your phone & WhatsApp to it?

</comment></comment></comment></comment><comment><USER14> The phonebook hypothesis seems most plausible to me (especially considering that WhatsApp is owned by facebook). All those apps gaining access to a phonebook is a privacy disaster.

<comment><USER15> I recommend that we all add the office number of a health care professional we _don 't_ need to our phone book. It will muddy the water just a little bit.

<comment><USER16> It would be better if Facebook didn't hoover up data not explicitly entered into their app or website.

In fact I think that should be the basis of privacy laws everywhere: You can only use data that the user personally entered into your application or website. Data should only be available across your different "properties" it they are branded as being part of a single platform.

It would be much more in tune with the average persons understanding of something like Facebook.

<comment><USER6> Your suggestion might actually lead to something very interesting.

Once a day when someone logs into FB, they should be presented with a word problem asking if the data they have thus far submitted to Facebook can be used to mine such-and-such fact about them.

If they cannot answer correctly, FB should not do said type of mining. As their understanding of the potential for mining info increases, FB is also allowed to add that type of mining.

This would be a win-win. People would actually understand what is going on, and FB itself has something to fall back on when the day comes when people turn this into an inquest (more a question of when than if in my view).

And I wish all the big tech companies would do something like that.

<comment><USER16> >People would actually understand what is going on

I don't think that's in the interest of companies like Facebook or Google. If people understood how their data can be used, many would close their accounts immediately. Data mining companies, and their customers are best served by keeping the public in the dark as much as possible. Revealing how much they actually know about us would cause trouble, if nothing else then simply because it's creepy as hell to many of us.

The funny thing is that while I think all this data mining is creepy, I also believe it's useless in most cases. The only thing I've seen work well over time is Amazons recommendation of books.

<comment><USER6> Its also not in my interest to reduce my net worth by paying taxes. But it happens promptly each year. Maybe its time we demanded this from the companies.

Also, I would argue it is indirectly in the interest of said companies and their employees if they prefer that their legacy is to avoid being referred to in the same bracket as the Enrons and the Arthur Andersens of the world.

The trouble is, they are also too big to fail now. The thing that petrifies me more than a thriving Facebook is a Facebook on the brink of collapse and which has nothing to lose.

</comment></comment></comment></comment></comment></comment><comment><USER17> Note that everyone's favourite privacy-respecting app (mine too!), Signal, also does contacts-sharing, although it doesn't do friends discovery (so the server knows one's contacts, but one's contacts don't). If Open Whisper Systems wanted to be evil, though, they could do this form of analysis.

Back in March I laid out how they could use a private set intersection protocol to enable any pair of users to privately share their contacts: [https://news.ycombinator.com/item?id=11289223](https://news.ycombinator.com/item?id=11289223) (I'm not posting this to shame them or something: March wasn't that long ago for developing a feature like this, and of course it's open source; I could develop it myself and submit it to them).

I think it's something they care about; they've just not found a solution they're comfortable with yet.

<comment><USER18> Yet another daunting issue in our modern world:

No matter how good a given company or product is at privacy-respecting, what happens to all that data if they are bought out by someone else?

<comment><USER17> Well, that's the good thing about PIR — with the protocol I discussed, OWS wouldn't have access to one's list of contacts. They'd still know with whom one spoke (anonymising that is a hard problem), but at least they wouldn't know everyone one knows.

</comment></comment></comment><comment><USER19> I uninstalled the Facebook app from my phone when it kept trying to push Messenger on me. I only use the webclient these days.

This bolsters my resolve to keep that app off my phone. You know, it doesn't bother me too much to have companies like Google analyzing my email to send targeted ads because I assume that information is not going to get out to the public. Facebook is a different case because there's a bidirectional flow of private information. It is a HUGE privacy concern (especially as someone that will be a physician in a few years).

<comment><USER20> I succumbed to the Messenger app and the first thing it did was message a random handful of my friends to say I've joined Messenger... instant uninstall. Now I also just use the web client and if I want to read my messages on my phone I can do that by requesting the desktop site.

<comment><USER21> You can also request the mobile site (m.facebook.com), but with a desktop user interface. This seems to be the most practical way of reading Facebook messages on mobile at this time.

<comment><USER19> Yup, this is exactly what I do.

</comment></comment></comment></comment><comment><USER22> Amazed that this 'feature' hasn't been killed yet. At this stage of Facebook's maturity, everybody finished adding their real friends about five years ago, and suggesting non-friends with tenuous connections to the user serves only to remind everyone what a privacy disaster Facebook is and generate bad press.

<comment><USER23> The other side of that argument is: You don't stop making friends & meeting people, why should Facebook stop suggesting people you might know?

I moved out of state three years ago, most of the people I see & spend most of my time with a completely different than the people I did five years ago.

<comment><USER24> > You don't stop making friends & meeting people, why should Facebook stop > suggesting people you might know?

If we've agreed to become Facebook friends then we've done it outside Facebook. If I use the "People you may know" feature I look like a stalker.

<comment><USER25> There's many younger people for which this isn't the norm.

</comment></comment></comment></comment><comment><USER26> "If you have something that you don't want anyone to know, maybe you shouldn't be doing it in the first place."

Granted, that's Schmidt, rather than Zuckerberg. The attitude seems to be the same, though.

<comment><USER27> I normally reply to people who cart this argument out: "so you're ok with someone following you around with a camera videoing you? At work....in the toilet....in the bedroom...?"

Privacy != doing something wrong.

<comment><USER28> A much clearer example is this article: "Going to a doctor for a mental health issue".

<comment><USER26> There's still a stigma, most places. It's a shame, and I wish there weren't, but there is. So it's not hard to see how that argument can have a hard time getting traction.

<comment><USER28> Oh, I just mean it as an example of something that you should absolutely do if you need it, but something that most people wouldn't want publicised (because of that stigma).

</comment></comment></comment></comment></comment><comment><USER29> WhatsApp (now) shares data with Facebook. Now imagine if Facebook, Google, LinkedIn were also to share data with each other.

Imagine the possibilities [0]. What a wonderful world!

[0] If this were to come true, then the word "possibilities" would be replaced by "synergies" :)

</comment><comment><USER30> This is a real problem. My sister is a legal clinic domestic violence attorney, and apparently there are concerns about DV clients unwittingly friending their legal clinic advisors, not realizing that by doing so they're outing themselves to their abusive partners.

</comment><comment><USER31> > Facebook and the other companies in the Facebook family also may use > information from us to improve your experiences within their services such > as making product suggestions (for example, of friends or connections, or of > interesting content) and showing relevant offers and ads. [whatsaap privacy > policy]

Many possibilities here:

1 - whatsapp connection with messages exchanged

2 - contact list loaded by whatsapp

3 - psychiatrist secretary number in whatsapp

4 - friends in common

5 - places in common

<comment><USER32> Or 10 people checked psychiatrist's facebook profile, facebook found common interest, saw that none of these people are fb friends and suggested to become friends, because hey, you all have something in common, you are all interested in this person.

<comment><USER33> Yes, I believe this is what happened

Fb will suggest you know person X if a) you looked at person X's profile or b) person X looked at your profile

</comment></comment></comment><comment><USER34> I think it's also quite likely that the psychiatrist's patients are searching for her profile just to checkout how's her personal life on FB which might give FB some clue as these people might know each other hence a friend suggestion. I do that sometimes to see some of my not-so-close friends.

<comment><USER35> I have a number of psychologist FB friends and every one that I know of has changed their name on FB to make it harder for patients to find them. Many go with FirstName MiddleName, some make up a last name, etc. That's not to say that it's impossible to find your therapist on FB, but I'd be _really_ surprised if it's easy.

<comment><USER34> Interesting.

</comment></comment></comment><comment><USER36> There should be a way to turn off "Peole you may know". I actually hate this feature.

<comment><USER37> If it has a consistent ID, you could add a custom stylesheet to your browser (or use an element hiding ad blocker) to hide it.

</comment></comment><comment><USER38> That's why I am getting more and more reluctant to share anything. It's starting to be impossible to predict how your data will be used and what is private and what isn't.

</comment><comment><USER39> I wonder if there is an open WiFi access point in the vicinity. I noticed that I had several coworkers suggested as friends shortly after I connected my phone to the office WiFi.

It makes sense that people using the same access point or connecting to Facebook from the same external IP would likely know each other.

<comment><USER40> It's quite an assumption that they would want to 'friend' each other on facebook or even be presented with another's facebook profile.

<comment><USER39> Sure, I'm just tossing out another hypothesis beyond tracking locations or everyone importing their contact lists containing the doctor.

</comment></comment></comment><comment><USER41> Actually _wayyy before_ WhatsApp announced [0] that they were going to share data with Facebook, Facebook had already started suggesting me to add friends. These are people whom I have no mutual friends with, but after more suggestions popped up, I realized they were all people I added to my address book and contacted before on WhatsApp.

I definitely did not consent to sharing my address book contacts with Facebook, and frankly nor would I want to. Now WhatsApp is offering an "opt- out" option, but I'm not sure how that will help. Isn't it a little too late for that now?

[0]: [https://blog.whatsapp.com/10000627/Looking-ahead-for- WhatsAp...](https://blog.whatsapp.com/10000627/Looking-ahead-for-WhatsApp)

</comment><comment><USER42> The funny thing is that this would be very easy for Facebook to fix - just a line of text under each friend request explaining the suggestion:

      * "You're both friends of Duffman McPartyDude"
      * "We found Psycho Ex Boss's phone number in your contacts"
      * "Location Services confirms you were both frequenting a dubious drinking establishment at 4am three Saturdays ago"

Would they do it though? Of course not. It would scare the hell out of their users if they knew how this algo actually worked.

</comment><comment><USER43> "People You May Know is based on a variety of factors, including mutual friends, work and education information, networks you're part of, contacts you've imported and many other factors," said the spokesperson by email. "Without additional information from the people involved, we're not able to explain why one person was recommended as a friend to another."

Facebook is full of shit. Of course they are using locations, why else would I get suggestion to friend the guy that cuts my Mother in Law's yard - he stops by for a check from my wife.

<comment><USER44> Isn't it more likely he has your mother in law's/your wife's/your phone number programmed into his phone and shared his contacts with Facebook?

It seems like that is the source of 99% of 'creepy' Facebook recommendations: Facebook doesn't realize that while 'has phone number' is a great indicator of 'knowing somebody' it has poor transitive properties.

</comment></comment><comment><USER45> And that's one of the reasons I stopped using Facebook. Fuck'em.

</comment><comment><USER46> > It's a massive privacy fail,

I can't believe "fail" has become the standard noun instead of failure. It started as a lolcatism and now is standard.

</comment><comment><USER47> It should be a lot easier for everyone to collectively sue Facebook and other social networks for violation of privacy.

This is just one of the economic asymmetries where small annoyances to everyone, but not enough to individually do anything about it, aggregate to billions for a few in power.

The only social network we need is a collective legal one.

</comment><comment><USER48> I know for a fact that Facebook uses my phone contacts to suggest friends. When I started at a new job and was exchanging numbers with coworkers, they would appear as a suggested friend within 24 hours.

My doctor also showed up as a suggestion. I figured either the office phone number was linked to his FB page, or FB was scanning my calendar events and linked me to him that way.

</comment><comment><USER49> I regularly have people show up on my "People You May Know" that have no mutual friends with me, and I don't know them so they certainly don't have my email address or phone number. Oftentimes it's people who went to the same university as me, so I wonder if they base it on friends of friends of friends and other less direct connections.

</comment><comment><USER50> Facebook is probably using geo-location to determine if two people are in the same vicinity for extended periods of time over time.

</comment><comment><USER51> This happened to me after attending NA.

I got friend recommendations from FB for other members of the support group.

</comment><comment><USER52> I assume the connector is the doctor - why doesn't she have a work phone with the patient's numbers that she doesn't use Facebook on? Then the chance of patients being connected to one another is dramatically lower.

<comment><USER53> But will that actually help? I could easily imagine Facebook matching people who have shared contact numbers, even if the contact number shared is not associated with an account. Possibly they don't do that to try to avoid this situation.

I think this issue requires action from Facebook. The minimum they should do is allow numbers to be registered to be not used for making connections. Much better would be for them to be more explicit about what information they are collecting (with sufficient guidance that the user understands that medical privacy can be affected) and allow users to not send them that information in the first place. I can't imagine them doing that voluntarily, though.

</comment></comment><comment><USER54> tl;dr

"When Lisa looked at her Facebook profile, she was surprised to see that she had, at some point, given Facebook her cell phone number. It's a number that her patients could also have in their phones."

</comment><comment><USER55> Ironically, before it lets me read this story the site pops up a "LIKE US ON FACEBOOK!" prompt. I'm pretty sure once I do that all you fellow article- readers will be my next friends.

</comment><comment><USER56> "Unfortunately, due to health privacy reasons, Lisa was not able to put me in touch with her patients directly"

You mean: "Fortunately..."

</comment><comment><USER57> After three accidental ad-clicks and a scrolling ad on mobile, I gave up on reading the article.

</comment><comment><USER58> She lives in a small town, she specializes in treating a small subset of that population. It is quite possible the patients were recommended as friends as coincidence, not having anything to do with her.

<comment><USER59> "Most of her patients are senior citizens or people with serious health or developmental issues, but she has one outlier: a 30-something snowboarder. Usually, Facebook would recommend he friend people his own age, who snowboard and jump out of planes. But Lisa told me that he had started seeing older and infirm people, such as a 70-year-old gentleman with a walker and someone with cerebral palsy."

<comment><USER58> One outlier hardly establishes a pattern, it is still reasonable that the connection to Lisa had nothing to do with these suggestions, and that there was something else in play.

<comment><USER26> An outlier like that destroys the pattern you're arguing must exist.

<comment><USER58> I'm not arguing that any pattern exists- I am merely arguing that we don't have enough information to demonstrate conclusively that Facebook is recommending these people as friends simply because they are all Lisas patients. Such a pattern may be probable, but there simply isn't enough information to come to a conclusion.

<comment><USER26> I don't suppose I feel it necessary to reach absolute incontrovertibility on this matter, given Facebook's longstanding history of doing things very like it, but find mere strong preponderance of likelihood to suffice. But I understand that some may feel otherwise.

</comment></comment></comment></comment></comment></comment><comment><USER60> > "Without additional information from the people involved, we're not able to > explain why one person was recommended as a friend to another."

Such a terrible excuse. FB you only have one job! Fail.

<comment><USER16> Facebook must understand how weird that sounds. How can they not know why people are recommended to each other?

They really do need to dig into the issue, if in fact they don't know. Because something seriously need to be excluded from their recommendation algorithm if the article is true.

<comment><USER61> She can't reveal the patients to them, so Facebook wouldn't be in a position to give a specific reason -- only generically how the algorithm is calculated.

</comment></comment></comment><comment><USER62> Hopefully it was no Tinder.

</comment><comment><USER63> Sounds like a solid ground for a class action suite.

</comment><comment><USER64> LinkedIn has had similar issues. Not news.

</comment><comment><USER65> But I'm still a paranoid lunatic because I don't want to smear my picture all over the web and give my every scrap of data away for the dubious benefits of Facebook or Twitter...

<comment><USER66> Hear, hear! I'd suggest some sort of paranoid lunatics' support group, but none of us would show up.

</comment></comment><comment><USER67> Talk about blowing something simple out of proportion.

All these people have one friend in common with this person, maybe they know each other as well? Being a psychiatrist or whatever has nothing to do with it.

EDIT: I stand corrected. Not so simple regarding where they get the "potential friendship" data from. Diagonal reading mistake on my part.

<comment><USER26> You might want to take another look at the article; your understanding appears to include a severe oversimplification.

<comment><USER67> You're right, I stand corrected. The technique is still simple, the way they get the data is not so transparent to the user.

<comment><USER26> I'm not sure how they get it at all, except via contact list mining. It makes sense that the doctor's phone number is part of her Facebook account. It does not make sense that her patients, who have not added her as a "friend" there, would nonetheless have explicitly told Facebook her number from their end. (I don't even think that's a thing you can do.)

<comment><USER68> Facebook will happily slurp your entire contact list even if you're not FB friends with all of them. And the algorithms almost certainly know and take into account having someone in your contacts as a way to build a graph of relationships.

<comment><USER26> Exactly. And, of course, there is not even a way to flag some contacts as private, or otherwise to be excluded from social graph analysis.

I mean, I guess you could keep those contacts in a note or some other record outside your contacts list, and just tap to call or email or whatever. But that only works as long as the Facebook app doesn't decide it needs access to that kind of record, too. And when you find yourself going that far out of your way to circumvent something that's installed on your phone, maybe it's time to think about whether that thing is more trouble than it's worth.</comment></comment></comment></comment></comment></comment>


Phone users have a reason to cheer ACCC's black eye - <AUTHOR> http://www.rossgittins.com/2020/02/phone-users-have-reason-to-cheer-acccs.html <comment><AUTHOR> This article makes a very interesting point that I hadn't heard before. When the Australian government banned Huawei equipment from phone networks, it shut down the only serious proposal to build a new network, handing a lot of Australia's money to the oligopoly that owns the three existing ones.

It would be really interesting to know how much of that money was donated back to the political party that banned Huawei.

(I've used the title from the paywalled newspaper column. The link is to the author's blog, where the title has a typo that reverses its meaning.)</comment>


Morten Lund provides an update on life - <AUTHOR> http://lundxy.com/?p=3246

<comment><AUTHOR> I love Morten, and I love what he wrote here. He is one of those people who understands there's a thin line between having everything and having nothing at all (as so many are learning in this financial crisis). A truly talented person will always enjoy the ability to build back the empire from scratch, and society will benefit from the process.

<comment><USER2> the first million is the hardest to make. The reason Lund can bounce back is because he made his own fortune unlike all those other trust fund babies who started and grew their parents' existing fortunes

</comment></comment><comment><USER3> For those who are just as confused as I was - Morten Lund, ladies and gentlemen:

<http://en.wikipedia.org/wiki/Morten_Lund>

</comment><comment><USER4> His talk on Le Web 2008. Pretty inspiring. <http://www.ustream.tv/recorded/932388>

</comment><comment><USER5> _Its feel like my ass is itching and my arms are to short to do anything about it… But I will invent a mechanism to itch back._

Well put.

</comment><comment><USER6> The most interesting thing about personal bankruptcy is how society (and the media) responds to it. In my experience it's a big negative in Europe; but as my former employer used to say: "When you lose everything, just start over.".</comment>


San Diego Hacker News Meetup 58 Tomorrow (1/30) - <AUTHOR> http://anyvite.com/pznmqqaufc <comment><USER2> Having been to many of these, they are enjoyable and cover an incredibly wide gamut of topics. It is great to see the invite upvoted.

</comment><comment><USER3> I'd like to see one of these in Orange County. Who organizes them? I'd come to this one if I had time for the drive.

Maybe HN should have regular meetups in every city?

<comment><USER4> Definitely in Orange County. I can host in Laguna Beach. :)

<comment><USER3> What should I create? Meetup is workable but kind of annoying IMHO.

<comment><USER5> +1 for OC meetup :)

<comment><USER3> Working on it.

<comment><USER3> Up: [https://groups.google.com/forum/#!forum/ochackernews](https://groups.google.com/forum/#!forum/ochackernews)

</comment></comment></comment></comment></comment></comment><comment><USER6> Would anyone in San Diego be interested in getting together for coffee or lunch during the day?

<comment><USER7> Sure, I'd much prefer 1-1 sessions rather than a group meetup. Don't get me wrong -- the meetups are great, and it's fun to meet new people. But you don't get to dig into much of anything.

I'm in SD (live in PtLoma, work downtown) and am down for a cup of coffee or lunch. Can do during the week if it's close to downtown, otherwise I'm sure we can figure something out. Email is in my profile.

</comment></comment><comment><USER8> Any Austinites out there? Looks like there haven't been any recent ones in ATX.

</comment><comment><USER9> Look out for fake hotspots and things of that nature 'hackers'.

Such a ripe group...</comment>


IOTA: A Tangled Mess - <AUTHOR> https://codesuppository.blogspot.com/2017/12/iota-tangled-mess.html <comment><USER2> Wow. I was literally talking to someone in the CS department at school that had a large investment ($20k+) in this "coin". I heard about the transaction issues, did not know the coin had so many technical issues.

Be safe out there.

</comment><comment><USER3> The header of this blog turned me off to anything this person has to say.</comment>


Compiler Benchmark - <AUTHOR> https://github.com/nordlow/compiler-benchmark <comment><USER2> The D compiler really is impressively fast. To the point where for most projects the compile time is dominated by the linker. It really makes you appreciate how nice a tight feedback loop is when programming.</comment>


RDF Literal Data Types in Practice (2011) [pdf] - <AUTHOR> http://iswc2011.semanticweb.org/fileadmin/iswc/Papers/Workshops/SSWS/Emmons-et-all-SSWS2011.pdf

<comment><USER2> Luckily most (all?) of this was fixed in RDF 1.1 interesting read anyway.</comment>


Your balance is $0.30000000004 - <AUTHOR> https://medium.com/selency-tech-product/your-balance-is-0-30000000004-b6f7870bd32e <comment><USER2> I'm currently rewriting our store implementation, and it's complicated.

One example is that some currencies have 100 subunits (eg USD), some have 10 subunits (EG TWD/MOP) and some have no subunits (eg JPY). This is made slightly more difficult in that Stripe/Paypal will treat subunits differently, for example Paypal might treat JPY as having 100 subunits and Stripe will treat it with 0 subunits.

You want to be really careful here not to charge 10x/100x more/less to the end customer than you imagine.

Formatting currencies is also something you need to do carefully as dots and commas mean completely different things in various countries and can lead to unexpected charges for customers.

Don't get me started on VAT :P

All worth it in the end though, I enjoy writing this sort of thing and I do see long term benefit to our business that we do it all in-house.

I'd also recommend future proofing implementations to use longs instead of ints for storing money values. Back when Bitcoin was less valuable we allowed BTC as a currency where 1 subunit = 1 satoshi (100,000,000 satoshis in a bitcoin). It was possible to overflow an int this way.

You also can't really write payment systems with the speed you might write other code in your startup - errors and mistakes here could have real impact on peoples lives. For example, loops that create charges that don't end (possible with both Stripe AND Paypal). Loops can manifest themselves as lock collisions as well. Basically, be careful and if speed is important you probably want to outsource it at the expense of some control.

<comment><USER3> What's the long term benefit?

<comment><USER2> Lots of third party implementations will take a few % off your bottom line. That's the main one.

There's a couple of other points here as well:

\- If you do enough volume, you're able to negotiate the fee with the payment processor, we've done this successfully. If you outsource, that negotiation is the third parties margin.

\- I'm not sure if this is true for third parties, but if they wrap up all your payouts in your native currency (EG GBP£), you lose money on forex. We try our best to have all our EUR and USD sales land in their respective currency accounts, then convert them with low cost services such as transferwise which has saved us a lot of money in the long run.

Saving on your forex and having no third party processor fees, I think in some instances you could be saving in the region of £40,000 to £80,000 per £1mm of sales.

We also couldn't find a third party implementation that would allow us to bill for our product, varied by country, amount, currency AND billing frequency. This fine tuned control can have real benefit, for example we noticed in Ukraine we had high traffic but no sales - by introducing a low monthly UAH billing option we started to grow sales in this region.

Other third party implementations won't handle VAT properly or comprehensively which can create more of an accounting burden, or round VAT transactions unfavourably (size of that benefit is irrelevant to very small obviously depending on volume of transactions!) This gap is being slowly filled from what I've been seeing though.

Using a third party solution for SaaS will always have some level of disconnect, it just feels nicer for the customer when it's all integrated seamlessly. One example being you have full control over branding and distribution of invoices/receipts etc.

</comment></comment></comment><comment><USER4> Martin Fowler's money pattern [0] solves this problem. Just make sure whenever you're dealing with currencies to use a value object for money, rather than float. Lots of languages have libraries for this pattern. [1]

[0] - [https://www.martinfowler.com/eaaCatalog/money.html](https://www.martinfowler.com/eaaCatalog/money.html)

[1] - [https://github.com/topics/fowler-money- pattern](https://github.com/topics/fowler-money-pattern)

<comment><USER5> One thing I've always wondered is who the heck is Martin Fowler and why does he have such a following?

<comment><USER6> > One thing I've always wondered is who the heck is Martin Fowler and why does > he have such a following?

You don't know the history of your craft; study more, look into where agile came from, the extreme programming movement, and who was involved and how refactoring became a thing. Names like Ward Cunningham, Kent Beck, Martin Fowler, Ron Jeffries, Rob Martin, and Dave Thomas should be familiar to anyone who knows their craft.

<comment><USER7> I think I've read some of them, but it would be nice to refill my bookshelf with classics. Could you please recommend a re-starter kit of these authors' top books?

</comment></comment></comment></comment><comment><USER8> You would think that this is a fairly rookie error and that big companies would know better, but I regularly see this on Uber: [https://i.imgur.com/qDACtG0.png](https://i.imgur.com/qDACtG0.png)

<comment><USER9> browser console:

(1.005).toFixed(2)

(1.005).toFixed(20) reveals the problem.

Math.round(1.005 * 100) // wrong

In the end these conversion errors are not solvable in any language, so you have to "cut off" somewhere. There are different approaches to this.

Wasn't there a case where programmers stole the "wrong" cent and wasn't The Office a persiflage on that?

<comment><USER10> > In the end these conversion errors are not solvable in any language

Not true at all.

Ruby has BigDecimal: [https://ruby- doc.org/stdlib-2.5.1/libdoc/bigdecimal/rdoc/Big...](https://ruby- doc.org/stdlib-2.5.1/libdoc/bigdecimal/rdoc/BigDecimal.html)

.NET also has a Decimal type.

I've worked on salary calculation applications and e-commerce platforms, and found that language choice makes a big difference.

<comment><USER9> With insolvable i meant just the technical restrictions of floating point numbers. There are of course solutions. But there is just the fact that binary numbers with discrete length can only be mapped to so many numbers.

If you use numbers directly in exponential form in vanilla javascript, you already get better results.

</comment></comment></comment></comment><comment><USER11> One of the reasons people used COBOL is that it handled currency better. You'd say "ACCOUNT-BALANCE PIC S999999V99" to specify the account balance was signed with 8 digits, and an implied decimal point (V) before the last two. The math was done with integers so floating point inaccuracy wasn't a problem.

An unrelated issue with money handling: I once got a credit card charge for $NaN (not a number). Fortunately it was resolved without me needing to write a check for $0/0\. Photo of the receipt at [http://www.righto.com/2008/05/importance-of-software- testing...](http://www.righto.com/2008/05/importance-of-software-testing.html)

</comment><comment><USER12> The easy way would've been to output a fixed fraction precision rather than a floating point number directly, but that doesn't mean the underlying data or checked algebraic operations are any good.

There are several things that could've prevented this, but apparently they become forgotten every few decades or so. Here's one that could help:

A fixed-point math library using a 64-bit word format like Q1:49:14. That would be a signed, 49-bit whole number with a 14-bit fraction (4 digits for nominal storage / 2 digits for settlement rounded in-place). With a ~$562 trillion limit, it would have an effective range of -562,949,953,421,311.9999 to +562,949,953,421,311.9999. This would work for almost all banking operations but could break down in hyperinflation and the distant future, where reserve and government banking would likely hit "Y2K" issues with it first. Considering 128-bit types exist (although at double the storage cost), it might be worth creating a Q:1:60+:14 format with built-in Hamming code (or similar) ECC for protection beyond that which exists at the hardware level (RAM, possibly CPU caches & IO backplane, probably storage.. but ECC and integrity isn't universal nor always possible).

</comment><comment><USER13> How can you write an article about this without mentioning that you should use a Decimal type for working with currency calculations?

\- [https://dzone.com/articles/never-use-float-and-double-for- mo...](https://dzone.com/articles/never-use-float-and-double-for-monetary- calculatio) \- [https://husobee.github.io/money/float/2016/09/23/never- use-f...](https://husobee.github.io/money/float/2016/09/23/never-use-floats- for-currency.html) \- [https://husobee.github.io/money/float/2016/09/23/never- use-f...](https://husobee.github.io/money/float/2016/09/23/never-use-floats- for-currency.html)

</comment><comment><USER14> Obligatory reference to the Moonpig billing system, and Mark Dominus' excellent deep-dive article on its design:

> Sometimes I see other people fuck up a project over and over, and I say "I > could do that better", and then I get a chance to try, and I discover it was > a lot harder than I thought, I realize that those people who tried before > are not as stupid as as I believed. That did not happen this time. Moonpig > is a really good billing system. It is not that hard to get right. Those > other guys really were as stupid as I thought they were.

[https://blog.plover.com/prog/Moonpig.html](https://blog.plover.com/prog/Moonpig.html)

<comment><USER15> That is incredibly interesting, thank you for linking it!

</comment></comment><comment><USER16> Reminded me of this: [https://twitter.com/billkarwin/status/347561901460447232](https://twitter.com/billkarwin/status/347561901460447232)

</comment><comment><USER17> because not everyone knows.

Most lisps can handle fractional numbers as actual fractional numbers without the BS floating point rounding. 1/3 of 100 For example, is 33.333 repeating. Most languages and databases will round this off at some point. Most lisps are perfectly happy with the idea of fractions and thus circumvent this problem entirely, at least, until you need to interface with some other brain damaged system or need to give someone physical cash money.

If you're dealing with money, you should seriously consider using a lisp.

</comment><comment><USER18> Work with cents everywhere and format the output in the UI. Done.

<comment><USER19> The smallest unit of US money is the mill or 1/1000 of a dollar. The smallest unit of US currency is the cent. You're supposed to work in mills and round to cents.

Or just work in floats and round as the last step. Or do both selectively depending on which rounding error works in your favor, but don't tell anyone that's what you're doing.

The real problem is that nobody at the company seems to have looked at the parts of their software that everyone sees, so what else have they not looked at?

<comment><USER2> I really don't see any need or benefit in storing values as mills unless you're writing forex trading platforms. It's inviting more mistakes.

<comment><USER20> Yeah, nobody is going to notice or care about an error of a cent or two for something like retail, especially if it evens out in the long run. It matters for finance, not for stuff like Uber or Amazon. Just make sure you render it properly on the front end and nobody will care whether you use floats, ints, or decimals. Be consistent in the back end and careful in the front end, ideally with standard functions for translations.

</comment></comment></comment></comment><comment><USER21> Good example of a leaky abstraction. JavaScript developers almost never have to worry about or completely understand the intricacies of floating-point arithmetic, until errors like this happen. [https://en.wikipedia.org/wiki/Leaky_abstraction](https://en.wikipedia.org/wiki/Leaky_abstraction)

<comment><USER22> This is not a leaky abstraction. JavaScript doesn't pretend that the numeric type is anything other than an IEEE-754 float. It would be a leaky abstraction if JavaScript said "this type can represent all real numbers!" but that would be insanity.

<comment><USER23> Sure, it's not a leaky abstraction as long as what you want to represent is an IEEE-754 float. Let me know if you ever come across a real-world case where that's _exactly_ what you want.

Sure, that's a good-enough abstraction for a lot of cases, which is why a lot of languages implement that standard, and it's pretty reasonable for JS to do that.

The pedantic argument you're making is basically that it was never intended as an abstraction. But when it's used as an abstraction, it's almost inherently a leaky abstraction, and it's almost always used as an abstraction.

<comment><USER22> It's not a pedantic argument. A leaky abstraction is a thing when you have some kind of abstraction where the user is supposed to not have to know anything about the implementation details, but where implementation details accidentally "leak" through the abstraction (meaning that the user does, in fact, have to know about the implementation details).

That's not the case here. JavaScript provides an implementation of 64-bit IEEE-754 floating point numbers. You do not need to know anything about the implementation (is it implemented in hardware? in software? what are the algorithmic details? who cares, they just work!) to use them, they function perfectly like IEEE-754 floating point numbers should.

You're saying "well, some programmers think floating point numbers can represent finite decimal numbers exactly", and that may be true. But it's not JavaScript's fault that some programmers are bad at their jobs and don't understand how floating point numbers work (note that this really has nothing to do with JavaScript: this is true in essentially every programming language). A misunderstanding is not the same as a leaky abstraction.

Think of it like this: no sane person would think the fact that an integral type (i.e. an "int" or a "long" in C/C++/C#/Java/whatever) can't represent the number 3.75 exactly means that "int"'s are a "leaky abstraction". Of course they can't represent 3.75, it's an integral type! Likewise, of course a floating point number can't represent 0.3 exactly: it's a floating point type! They never pretended otherwise! If you want to represent 0.3 exactly, go with a rational or decimal type, that's what they're there for.

> _Let me know if you ever come across a real-world case where that 's exactly > what you want._

All the time! Like, 99% of the calculations you make on a computer, IEEE-754 floats are by far the best choice to represent a number! They're a stupendous numeric type! There's a reason why every CPU and GPU in the world is optimized for floating point operations (that's even how you measure their performance, with mega/tera/peta-FLOPS!), and there's a reason why every language under the sun has built-in support for them! Some languages (like Lua or JavaScript) make them essentially the ONLY built-in numeric type: it's that good!

<comment><USER23> > That's not the case here. JavaScript provides an implementation of 64-bit > IEEE-754 floating point numbers. You do not need to know anything about the > implementation (is it implemented in hardware? in software? what are the > algorithmic details? who cares, they just work!) to use them, they function > perfectly like IEEE-754 floating point numbers should.

You're missing the point: the fact that it's an IEEE-754 floating point number is _always_ an implementation detail. I've literally never been told by a business user, "Hey, I'd like you to add an IEEE float field so we can track some IEEE floats." That doesn't happen.

> Think of it like this: no sane person would think the fact that an integral > type (i.e. an "int" or a "long" in C/C++/C#/Java/whatever) can't represent > the number 3.75 exactly means that "int"'s are a "leaky abstraction". Of > course they can't represent 3.75, it's an integral type!

Sure, nobody will agree with your straw man argument. But de facto people want their float types to not round decimal values to binary values. And even integers are a leaky abstraction--if you expect `int` to represent an arbitrary integer, you're going to be disappointed when the values get large enough. But hey, you're the one who said it was an integral type.

> Likewise, of course a floating point number can't represent 0.3 exactly: > it's a floating point type! They never pretended otherwise! If you want to > represent 0.3 exactly, go with a rational or decimal type, that's what > they're there for.

The difference being that the average developer or business user knows what an integer is, whereas I doubt even you can tell me whether an arbitrary case will go wrong without testing it or doing some back of the napkin math.

> All the time! Like, 99% of the calculations you make on a computer, IEEE-754 > floats are by far the best choice to represent a number! They're a > stupendous numeric type! There's a reason why every CPU and GPU in the world > is optimized for floating point operations (that's even how you measure > their performance, with mega/tera/peta-FLOPS!), and there's a reason why > every language under the sun has built-in support for them! Some languages > (like Lua or JavaScript) make them essentially the ONLY built-in numeric > type: it's that good!

Way to not read a full 1/3 of my post. I'll just post it again, please read it this time:

Sure, that's a _good-enough_ abstraction for a lot of cases, which is why a lot of languages implement that standard, and it's pretty reasonable for JS to do that.

I'm not sure why you're leaping to the defense of floats: just because something is a leaky abstraction doesn't mean it's not a _useful_ leaky abstraction. I'm not saying languages or architectures shouldn't implement floats.</comment></comment></comment></comment></comment>


Name your Arguments - <AUTHOR> http://jamie-wong.com/2011/11/28/name-your-arguments/

<comment><USER2> Obscure Objective-C aside that you should never actually take advantage of:

You don't actually need anything between colons in a method signature.

for instance, you could write:

doStuff:arg1 :arg2 :arg3

The method signature would be something like:

\- (void) doStuff:(NSString _)arg1 :(NSString_ )arg2 :(BOOL)arg3;

So it's strictly a convention even in Obj-C that arguments are "named".</comment>


Ask HN: The Struggles of Poverty and Trying to become a programmer from 0 - <AUTHOR> I'm an African-American male based in Seattle. Code fellows is only a bus ride away from me but can't afford it. College is expensive. CodeFellows is expensive. Can barely live off Mim wage warehouse job.
Trying to jump-start your career and get into Web development as a low-income African male is a tough mission. Everyone else seems so privileged comparing to me. I want a career in Web development but see no hope right now. Financial barrier, even Udacity is charing now $200 per month per nano course! and I thought Udacity was the only way to make it into tech for someone like me until they got money hungry.
what is your advice? <comment><USER2> Start hacking.

 _CodeFellows /Udacity/College is expensive_. Hack: Figure out what they teach you, and find other, cheaper sources of the same information. (edit: Check out Zed Shaw's stuff [http://learnrubythehardway.org/book/](http://learnrubythehardway.org/book/) [http://learnpythonthehardway.org/book/](http://learnpythonthehardway.org/book/))

 _CodeFellows /Udacity/College says they teach you what you need to know to get a job._ Hack: Ask employers directly what they look for when hiring. Learn that instead.

 _I don 't have experience/proof of skills._ Hack: Start posting your work online. (Get a free blog or use GitHub or something.) Even if it's a tiny thing. Bit by bit, day by day, you'll be proving that you can ship something. When someone asks what you can do, show them the site. (edit: A shining example is Jennifer Dewalt's 180 Websites in 180 days: [http://jenniferdewalt.com/](http://jenniferdewalt.com/))

 _I don 't know people who can help me._ Hack: Find your local web development meetup and go. Don't sit in the corner. Meet people. Get their contact into. Tell them what you're trying to accomplish. Ask them for advice. (People love to give advice.) Email them later and let them know you enjoyed meeting them. Thank them for their advice. Build relationships.

<comment><USER3> This is fantastic advice. Pretty much exactly what I did to get to the point of being employable (when not working on my own ideas). Starting from a position pretty similar to the OP.

The most important part of this is the emphasis on releasing code on a consistent basis. I'm 6 years into my journey and am still doing this pretty regularly. Example: [https://github.com/Tapha/Custom- Highlight](https://github.com/Tapha/Custom-Highlight) \- A simple, open source text highlighter that allows you to add custom functions to it. Like the Medium editor.

</comment></comment><comment><USER4> Hi,

I was born and live in West-Africa, meaning epileptic power supply, expensive/slow/sometimes unavailable internet connection.

Right now I am a software developer with about 4 years in the game and yes I am self-taught like most people here, this was before things like Udacity and Khan academy. Google was my teacher. I believe you can see free online resources to learn how to program like I did, I've never used Udacity or any of those online learning sites, I read a lot and use HN to keep abreast of latest news in tech. You are in America for crying out loud! is it not supposed to be a land of opportunity? With enough courage and determination, I believe you can do anything.

PS: Right now I work as a remote developer for companies in New York, Calfornia and I've never been to the United States before. I believe you can do anything if you put your mind to it.

<comment><USER5> There is nothing stronger for motivation than a very good example coming from someone with a similar background. It is up to you poveritysucks.

</comment></comment><comment><USER6> I lived in my car for 8 months this year. When I didn't have a job I was at the public library everyday reading about and writing code. I applied for every job I could anywhere in the country. Eventually it paid off and I got a job.

Playing the race card on why life is hard is a cop out. You have to put effort into this. You cannot huff and puff your way into it.

This site is filled with people posting blogs and sites that contain free tutorials.

<comment><USER7> "Playing the race card on why life is hard is a cop out."

What a shitty, thoughtless thing to say. Life is significantly harder for african americans. That's a fact; dismissing experiences is an ignorant thing to do.

I'm pretty sure he knows he needs to keep on trucking in spite of that, or he wouldn't be posting here. But being african american has and will cost him several "well, let's give this kid a chance" foot-in-the-doors that white guys experience pretty frequently (like me).

</comment></comment><comment><USER8> You can learn everything you need to know for free, at least to get started.

The only barrier to entry is having internet access and a computer and some spare time in the evening and on weekends.

Email me and I'll point you in the right direction to get started. HN username @ gmail.

</comment><comment><USER9> Best of luck mate! I was a McNair scholar in college, even though I am caucasian I still faced my share of challenges and lack of what privelage can bring. To me, that privilege is largely in the sense of self-worth and knowledge about little things such as applying for Pell grants. Financial aid can be enough to allow one to live on in cheaper school areas. A college education for many is less important, but coming from a background such as yours can help establish credibility quickly and provide a broader sense of life. I'd recommend considering it, and especially fill out the FAFSA to see what help you could get ([https://fafsa.ed.gov](https://fafsa.ed.gov)).

College is still expensive and particularly so in a big city like Seattle. I live in Boise and would highly recommend moving to a more inexpensive city such as Portland or Boise. Rent in Boise, for example, is often only $400 for your own. The job market is also often better in these smaller towns. However, family ties often bind us to a place, so there may be smaller outlying towns around Seattle which have community colleges and such while still being cheaper.

If you decide college still isn't for you, I'd heartily recommend doing what many of the other posts say: start hacking! Committing to open source projects is a great way to build a portfolio. Another good approach is to start offering to build websites for friends, family, colleagues, and well anybody. You probably know people or acquaintances who have small businesses (construction, stores, ...) that would like to have a website or inventory system but don't realize that it's both relatively cheap to get a website. Listen and offer to do cheap help setting up websites on WordPress, etc. A side benefit is it can help your own community in a positive way. For example, help make a website for "Aunt Matilda's lawn and gardening services".

I would also recommend reading classic authors who overcame difficult situations and valued practical skills [Up From Slavery - Booker T. Washington]([http://www.gutenberg.org/ebooks/2376](http://www.gutenberg.org/ebooks/2376)).

</comment><comment><USER10> There are free Coursera courses available for webdev:

[https://www.coursera.org/specializations/full- stack](https://www.coursera.org/specializations/full-stack)

It lists a price for each course, but you can actually access the material without paying anything. You have an option to pay in case you want a certificate.

<comment><USER5> Moreover, CS courses on Coursera have extremely high quality. As the guy above said, you can access the material for free.

Actually, you can even hack the paid certificate. Coursera has a financial aid policy, allowing poor people to have the certificates without paying. You should apply for that!

</comment></comment><comment><USER11> Subscribe to newsletters from Udemy, StackSkills, Stone River Academy, and the BGR Store. They often have specials where you can get a whole bundle of online courses AND there are several that have a project that you complete and can add to your portfolio. They've had deals where you can pick up 10+ courses for $20. I also echo the recommendation to go through the MIT or Stanford courses. Check out edX for many of those. As someone else said, it really never has been better. I even attended a free CSS3 tricks class from Noble Desktop earlier in the week. It was a gift for being a subscriber to their newsletter. It was live and they created a GoToMeeting for me and the instructor took my questions and paid me plenty of attention. Great free two hours of my time!

Good luck, you CAN do it!

</comment><comment><USER12> I'll do what I can to help you if you are serious about learning. Email me at partisanyc at gmail.

</comment><comment><USER13> You can download all the programming books you'll ever need for free with bittorrent. Its like Frank Zappa once said, "If you want to get laid, go to college. If you want an education, go to the library."

</comment><comment><USER14> If I were in your situation, I'd get an entry level job in an unrelated field, get a loan and go to college part time.

There's lots of reasons why you'd want to go to college:

1\. You want to future proof yourself against ageism. It's much harder without a degree.

2\. It's a really good place to find entry level IT jobs that do not require a degree/experience.

3\. Once you're done you are not limited to working in web developement but in a wider range of IT and software development jobs

4\. Sort of the same as no 2 but employers would really rather hire the guy who is working through college over the guy who is not, even though both lack a degree.

5\. A degree is useful for a lot of things. Many visas require one, for example.

</comment><comment><USER15> There is a glut of free resources for learning to program The first thing is find a community with a computer if you do not have one second, look for things that interest you as this would help you build your online portfolio third get a github account & codepen to show of your work fourth Follow a free web development program like freecodecamp which teaches HTML, CSS, JS and MEAN stack fifth talk to people to keep your sanity and for support sixth don't give up seventh good luck :)

</comment><comment><USER16> Whhhhatttt?

Man I became a coder at 14 years old (10 years ago) when there was no where near the online resources there are now. I come from a low-income family I didnt take courses and I couldn't tbh, not because of prices but because there were none available anyway.

Get a book, join a community. =). Just start practicing. Do stuff for free, find charities that need some web dev and build a portfolio whilst doing good things for people.

Also, you can do the udacity courses ALL FOR FREE. The only difference is you don't get a certificate. And a certificate isn't exactly needed..

</comment><comment><USER17> I've been working on a free service for some time now to allow freelancers to find jobs and understand the job market. It currently contains data from upwork.com and allows you to search for jobs and see various analysis of the job market.

Try it out

[http://upstats.garage-coding.com/#search/jobs](http://upstats.garage- coding.com/#search/jobs)

All feedback is valuable and I use it to improve the service.

</comment><comment><USER18> pluralsight is only $29/mo has a lot of training material. I bought it when I was unemployed. Also, look at upwork.com you might find some project to get you experience. I'm surprised you can't get college tuition assistance: [https://fafsa.ed.gov/](https://fafsa.ed.gov/)

Before I got a job after my degree:

1\. I wrote a Point of sale system for my uncle's pizza shop. ( was supposed to get paid)

2\. wrote a POS system for a friends print shop($10/hr) 93'

3\. wrote a POS for a storage unit company($10/hr) 95'

each of these used it for themselves and hoped to sell it to other companies.

4\. wrote an e-commerce site for a online card company($15/hr). 98' found this on an ad on campus bulletin board.

look at jobs from the state or local government. They are good way to get your foot in the door.

<comment><AUTHOR> is pluralsight like lynda? sometimes the direction to take without guide is what gets to me.

<comment><USER18> sounds real similar. I would go to the job boards and find the skills most employers are looking for and brush up on them. Next, if you know any one that owns a business try to write a software program for them.

</comment></comment></comment><comment><USER19> If you can get online, you can take courses from Khan Academy for free. Stanford Online is free as well, and MIT has put a lot of lecture videos and course materials online for free. There are thousands of tutorials on any subject you care to study. Really, it has never been better.

<comment><AUTHOR> I keep learning all these things but what do I do with it is the main obstacle for me.

<comment><USER20> 1\. Freelancer.com 2\. Fiver.com

My most important advice to you is to make friends who are programmers. As many as possible. How? Join programming themed forums, introduce yourself, help others out when you can by answering questions and offering to help any other way.

Programming competitions online would help you pick up new skills and experience faster.

Lastly, write programs everyday. It doesn't really matter what you write. It doesn't also matter if it's a little script or a large one. Keep at it and you'll be alright.

PS: Be patient and try to have fun. Thinking mainly about money right now will likely frustrate you. Good luck.

</comment></comment></comment><comment><USER21> I would start by looking for a QA,producer, or support role and then work your way up. Those positions are entry level and pay a lot more than minimum all you need is basic technical skills.

</comment><comment><USER22> Have you tried [http://freecodecamp.com/](http://freecodecamp.com/) I'm going through it at the moment. I'm no programmer, but found it really interesting.

</comment><comment><USER23> This is all you need. Good luck bro.

[http://www.theodinproject.com/](http://www.theodinproject.com/)

</comment><comment><USER24> Do you have a project that you can work on? Lack of a syllabus is a problem, so having a structure means you learn what you need to complete the project.

You then build up a portfolio.

</comment><comment><USER25> There are many roads to doing what you are attempting to do. Just having access to the internet and a computer is a huge start. You are in a tough position, but I'm living in the Philippines where many have no access to a computer and some don't even have electricity.

Much of a career in web development (or anything) is about dealing with people. Communicating with your employers, team, clients and anyone else you need to deal with. Along with the technical components, take some time to practice writing and learning good grammar. You can take free online classes for writing and grammar. Writing well is one of the most powerful ways to come across as a professional who can solve problems. You'll be judged on this before you even get to the point of demonstrating technical ability.

Have you built anything? If not, then start there. Web development is a craft, it's about building stuff. For me, building came first. My passion in creating things to solve my own problems and sharing those things on the internet put me on the path to paid work, not the other way around. You don't need to go through courses to start building. Start with a Google search. Dedicate one hour every day to build on this first step. Increase the time you devote to this journey as you are able. Keep a journal of your progress.

Find communities of other developers and contribute your knowledge. Ask questions when you get tripped up (though in the beginning, you will find most of these questions answered already.) Build up your reputation, which will also add to your "authority score." As this score grows, others will seek you out for your knowledge. Once you have demand for attention from others, then you have the platform from which to get paid for your skills.

Most of the above is for the "web developer" route. Always keep in mind the end mission of your work. You are setting out to create solutions to problems. Even if you are helping out other web developers, those developers are probably working to help a paying client make money. At the end of all roads is someone like Bob Jones making a transaction with Amy Johnson. These are two great people who may know nothing about what you are doing, but Bob needs your help to advance his business. Amy loves what Bob is doing and feels that Bob's work makes her life a little bit better. Be a good guy and help make Bob and Amy's life a little bit brighter.

You will also have to do a bit of hustling. Don't wait for things to come to you, go out and get them. Go ahead and take courses, but drive your education through your own building and discovery. Don't send out resumes. Directly contact agencies and dev shops that you find on the internet. Find out who works for these places and follow them on social networking, Github, Stack Exchange and other platforms. Interact with them when you see the chance. If you can't get a job right away, go knock on Bob's door (and all the other doors in the community) and let Bob know that you can help him out. When you get Bob's go ahead, treat him like royalty. Even if you make mistakes on the technical side as you are starting out, Bob will always appreciate the person who treats him and his concerns as #1. Most people would take the money and follow-up with a half ass job. If you are different, then you are way ahead of everyone else.

Use the courses to supplement the above. They shouldn't be your driver. Remember that the vets who are celebrating their 10 year anniversary today as web developers didn't have all these courses available. We had books, documentation and for some things we sort of blazed our own paths.

Good luck and have a great 2016.

</comment><comment><USER26> I am currently struggling with similar tough situation.I see some helpful advice here but honestly, its easier said than done.

-I am a latina, working in retail, no support of any kind whatsoever, surviving and on top of that with an expensive autoimmune medical condition. My job is in retail working long stressful hours, no benefits, no vacations. That leaves almost no time to study or hack around because I need to work in order to survive. Many things regarding web development requires owning a Mac computer that many people can't afford or taking some basics classes around which are not free. Nowadays, if you have internet access and a simple computer that should be enough. Guess what? Many people cant even pay for those basics needs. I just bought a Mac with money I don't have...hopefully it will pay in the future. But there are people even in the US with less choices than your average person. For example, many people lack credit access and money to buy computers, have internet access, buy books, go to places...hard to believe but it's true. When I first was diagnosed with my medical condition, I did not have insurance or financial help and all I needed was less than $2000 for my medical tests. No one helped me financially even when asked for help. I lost my hair, couldn't go to work so I did not earn money for those days, had some skin rashes due to my conditions. How can I be able to meet people like that? or study? I spent my few savings on all that. Thankfully, I recovered and my medical situation is now manageable. But It was a painful situation...I am afraid to face the same situation in the future: Health vs rent? Because eating became my third choice...

I applied to many free hack/development schools just to be denied from all of them. The last one I applied at the beginning of December 2015 just denied me I believe for not completing a bunch of tests/quizzes in order to get in. Guess why I couldn't finished? I was working long hours during holidays and did not have a computer and they required a mac. So I rushed to get one just to complete my tasks, didn't get sleep in order to advance some tests, and put some internet and the Mac on a credit card(at least now I have access to one but It wasn't always like that). When I put my internet to begin working on those entrance quizzes which are really long tasks, I saw my denial email. That was 2 days ago...I allowed myself to cry that whole day. Today, my plan is to keep my mac computer and try to pay if off little by little and study from free sources.

I live in NYC, my bills are not expensive because I have learned to budget after my health vs rent situation 2 years ago...but it's tiring to live with so many constrains.It's tiring to not have vacations AT ALL not even holidays off. I understand that my situation could be worse if I didn't plan my steps everyday. I just pray things don't get worse for me, especially health-wise.

This is what I recommend since you live in a big city like me:

-Try to eliminate your debt if you have any so you can get easier access to stuff in the future like loans. credit card, set up internet accounts, etc. -Try to get a credit card by doing #1 and buy yourself a refurbished or cheap Mac computer as many schools/teaching tools are really requiring a Mac -Get access to public library and have a card -try to get cheap internet access by shopping around. I don't have cable tv just cheap internet -Read free sources online and get free ebooks about programming -Check around for free development schools/IT programs in your city. NYC offers some or with minimal financing...apply if you can.Apply to all of them and don't give up...within your city that is. -Go to meetup groups and try to network.

NYC Fellowships just denied me, I don't qualify for Per Scholas here in NYC since I am currently working and need my job to survive...Treehouse is not longer free with public library access as it used to be. I fell into any possible crack in every situation. I feel forgotten by everyone in every situation and I am afraid. But I don't have much choice but to keep fighting.

I don't have friends in the industry, I don't have a mentor or someone to guide me in my journey. I have no financial help. All I know is that I love computers and programming, I have to survive and I need money to cover my unpredictable medical condition and I only have my own help for all that.Also, I am tired of working every day of the year. I want at least JULY 4th, Christmas and New Years off.Or even a week vacation...I want to leave my soul sucking job...these are " basics" things but many people lack them.For me, just having one of them , it's a privilege. I finally got my hair back and my skin rashes are more manageable, so now I am ready to meet new people and be more presentable.Better keep up now because I feel my time is limited due to my health condition. Who knows when I will lose my hair again and all that? I better be positive about my situation and don't stress myself more about my struggles.

Just believe in yourself, don't forget what you want and your needs, keep fighting and don't give up. Don't dwell in painful situations and don't allow yourself to cry for more that a day. Don't look back, just look forward but don't forget the reasons you are fighting for this. Don't really wait for a break, just go after what you want...

Hopefully, your situation turns around. Keep us updated...</comment>


AMA TIME – For blockchain gaming the most exciting thing is interoperability - <AUTHOR> https://www.dapp.com/article/dapp-com-ama-episode-8-vladimir-from-blockchain-cuties-kokushi-from-my-crypto-heroes <comment><USER3> Nice action and indeed interoperability is important for blockchain in gaming. They were several examples that could be inspiring (historically order): \- In 2016 already 2 cards/tokens of [https://spellsofgenesis.com/](https://spellsofgenesis.com/) were playable in another game, [http://www.mandelduck.com/sarutobi/](http://www.mandelduck.com/sarutobi/) \- In the same ecosystem (on Counterparty/Bitcoin), several games & collections of [https://app.bookoforbs.com/](https://app.bookoforbs.com/) have common playable items: Spells of Genesis, Force of Will, Age of Rust, Mafia Wars, etc. even with other games like Augmentors, or in another blockchain like with Beyond the Void (on Ethereum) \- Cryptokitties.co allowed kittyhats.co and then promoted the concept with [https://www.cryptokitties.co/kittyverse](https://www.cryptokitties.co/kittyverse) \- Alto made a challenge contest for its crypto-items usable in multiple games [https://contest.alto.io/](https://contest.alto.io/) \- Enjin followed the trends with their "metaverse" initiative \- etc. So the concept is old, but had nice feedback from players

<comment><AUTHOR> hey Nicolas - thanks for sharing those articles, all good stuff - <USER2> through them now.</comment></comment>


Surveyors' Maps and Journals an Untapped Source for Climate Scientists? (2019) - <AUTHOR> https://www.historicalclimatology.com/blog/are-surveyors-maps-and-journals-an-untapped-source-for-climate-scientists <comment></comment>


Self-Driving Cars Won't Work Until We Change Our Roads – And Attitudes - <AUTHOR> http://www.wired.com/2016/03/self-driving-cars-wont-work-change-roads-attitudes/ <comment><USER2> This article is by Andrew Ng and Yuanqing Lin.

It started out as an interesting read but then a page filling message popped up complaining about my ad blocker. (I closed the tab then.)

<comment><USER3> "Reader View" button in firefox does wonders for such pages. Just wait until page loads (don't scroll), click button and you have just one column of text and scripts don't work anymore.

<comment><USER4> Perfect, thanks! Even after the paywall message has arrived, I can right-click and choose "open in Reader View".

</comment></comment></comment><comment><USER5> With regard to situations where the car's cameras have difficulty distinguishing the color of the traffic signals when the sun is directly behind overwhelming the traffic light, why not add a different kind of signal intended for cars only rather than equip every car with "better cameras". Same for "wide turns", flammable liquids, etc. Develop a parallel protocol for non human drivers alongside the already existing protocols for humans. Simple but robust transmitters and receivers with fallback to interpreting human protocol in the event of failure.

<comment><USER6> I'm not sure why the traffic light scenario needs a computer-specific fix; it's tough for people to look into the sun as well.

</comment></comment><comment><USER7> So... people who want to sell autonomous driving argue that human behavior and the organization of public space should adapt to accommodate the unsolved problems of autonomous driving.

The emotional appeal regarding 3000 deaths every day is a bit cheap considering the fact that many of those deaths are cause exactly by bad attitudes and bad road infrastructure.</comment>


Apple's FaceID – Schneier on Security - <AUTHOR> https://www.schneier.com/blog/archives/2017/09/apples_faceid.html <comment><USER2> > I am confident that Apple is not collecting a photo database, but not > optimistic that it can't be hacked with fake faces. I dislike the fact that > the police can point the phone at someone and have it automatically unlock.

That's what I thought too when the Face ID feature was confirmed (post rumors). It's easier for other people to take one's phone (talking about known people here), point it at the face and unlock it without the owner's consent or interaction. This is not that trivial to do with Touch ID, where one would have to grab the owner's hand and place the finger (or fingers) on the Home button. The odds of being deceived into unlocking one's phone without knowledge or consent seems to be higher here.

From a privacy perspective, I also worry about how governments would use these advances in technology for surveillance (if we believe Apple's claim of fingerprints having an error rate of 1 in 50000 and face recognition having an error rate of 1 in a million).

<comment><USER3> Unlocking requires attention. They'd have to take your phone, point it at your face, and stop you from closing your eyes or looking elsewhere.

If they can do all that, how can TouchID or a passcode stop them?

<comment><USER2> I mentioned in my comment, within parentheses, that I was referring to known people - like friends, acquaintances, classmates, co-workers, etc. It's easier to unlock the phone and get sensitive information with Face ID than with Touch ID. I can only think of pranks going severely wrong and causing havoc. We'll get to know in a few months.

</comment></comment></comment><comment><USER4> It bothers me how people scan faces voluntarily now.</comment>


Whatever Origin - <AUTHOR> http://www.whateverorigin.org/ <comment><USER2> The GH issues hint this is not maintained? The site itself seems to be working, though.

Although since recently I have been using [https://github.com/technoboy10/crossorigin.me](https://github.com/technoboy10/crossorigin.me) without any downtimes or ssl issues. (I am not related to any of the two projects in any way, though.)

</comment><comment><USER3> That's what i love about open source. You have a problem, solve it and others can benefit from it and even extend your solution.

Great work</comment>


Ask HN: where are the Amazon headlines in the NSA/Snowden saga - <AUTHOR>

<comment><USER2> That's an interesting question. On the commercial side 1/2 of amazon is public and the other 1/2 can be gotten in finer detail from banks and credit cards.

That still leaves AWS which is a huge portion of the internet.

</comment><comment><USER3> Double post: [https://news.ycombinator.com/item?id=6778438](https://news.ycombinator.com/item?id=6778438)

<comment><AUTHOR> i don't know how that happened...</comment></comment>


Google Is Slowly Phasing Out Google+ - <AUTHOR> https://www.yahoo.com/tech/google-is-slowly-phasing-out-google-112517429669.html

<comment><USER2> A month old article, that was wrong then as it is now.

Stream is an internal name.</comment>


Simplest. Signup. Ever. - <AUTHOR> http://geo.presence.co

<comment><USER2> i think you might be biased, there.

Domain Name: PRESENCE.CO

Registrant Name: Tamer Rizk

;)

</comment><comment><USER3> And at the moment it is the only thing working. None of the links work on the page.

</comment><comment><AUTHOR> Absolutely biased, but still:

Simplest Signup Ever!

Since the form autonomously parses whois information, I would probably be aware that I am listed for presence.co, captain obvious. :)

Thanks for the heads up jpmc.</comment>


Faster than the speed of light? A theoretical physicist blogs. - <AUTHOR> http://www.jimal-khalili.com/blog/faster-than-the-speed-of-light.html <comment><USER2> Jim is a brilliant presenter. But it is kaons (K-mesons or K -- which do oscillations similar to B and ...D!), not "koans".

<comment><USER3> Yes he's not up there with the top guys in understanding, but I'm sure that not only does he know that it should be spelled kaon, but that he also knows what a koan is.

</comment></comment><comment><USER4> See also a somewhat contrary view about time travel, from one of the comments: [http://blogs.discovermagazine.com/cosmicvariance/2011/09/24/...](http://blogs.discovermagazine.com/cosmicvariance/2011/09/24/can- neutrinos-kill-their-own-grandfathers/)

<comment><USER5> Considering the small difference in speed I suspect we are dealing with something closer to _virtual particles in a vacuum slow down light and physical particles. It's not drag because virtual particles don't remove energy from the system but you get some propagation delays. It just so happens that gravity waves also propagate the speed of Neutrino etc. and relativity while nearly true has some edge cases._ <\- wild ass guess 1. _Neutrino's ignore curved space time_ <\- wag 2. _Neutrino's time travel_ <\- wag 300.</comment></comment>


Vloggo launches! Feedback? - <AUTHOR>

Hey Guys,
I just launched my startup, Vloggo, last week. Vloggo is your life through video. It allows you to share and interact through 60-second videos called vlogs. A vlog can be posted via the iPhone app, webcam recording, or by traditional uploading. All vlogs are organized into one simple timeline so it's quick and easy to experience what's happening in your friends' daily lives.
I'm looking for any feedback or advice you can give me. I've implemented the video player on the timeline in a really unique way, so it's a creative and fresh way to watch video. Let me know what you think! Many thanks!
URL: http://vloggo.com
iPhone app: bit.ly/vloggoapp
My profile: http://vloggo.com/members/kurt <comment><USER2> Alter that play button to be transparent, or resize it to half/quarter of its current size and move it to the bottom right corner.

It makes the video preview image completely useless.

</comment><comment><USER3> would like to see better privacy setting info and options

<comment><AUTHOR> you can make your profile private where people must request to follow you. do you think more options are necessary?</comment></comment>


Hashtagram – Smart Hashtag Generator - <AUTHOR> https://apps.apple.com/pl/app/hashtagram/id1510509546 <comment><USER2> ProTip: Photos on the instagram are better positioned when there are only 5 tags.

//Ale ogólnie to ciekawa aplikacja.</comment>


Hudson's Bay Near Deal to Buy Online Retailer Gilt Groupe for $250M - <AUTHOR> http://www.wsj.com/articles/hudsons-bay-near-deal-to-buy-online-retailer-gilt-groupe-for-250-million-1450131724 <comment><USER2> I used to watch for their flash sales regularly & actually buy stuff at Gilt. There were some great deals to be had in their early days. Then they moved so far up-market that I might as well have just walked into a Nordstrom or Bloomingdales and paid regular price.

<comment><USER3> Completely agree. Often I'd look on the designer's website and find the exact price listed - even though Gilt said it was heavily discounted.

After my last shopping experience with them, I won't be buying again. Whilst it took several weeks for my items to arrive as they picked a cheap shipping option (which I don't really mind), they expected me to pay for fast delivery back to the US when I had to return the items. In the end, I received a little more than £100 back from an order that cost almost £200.

</comment></comment><comment><USER4> Summary without the paywall: [http://www.reuters.com/article/us-gilt-groupe-m- a-hbc-idUSKB...](http://www.reuters.com/article/us-gilt-groupe-m-a-hbc- idUSKBN0TX2MI20151214)

</comment><comment><USER5> My spouse works for Saks / HBC. They just gutted their health plan and did a sweep of layoffs in the NYC office. Seemed to be cutting their spending to bare bones this fall. Curious if acquiring Gilt was the plan all along.

HBC does not operate anything like what a Gilt employee is likely used to.. will be a tough pill to swallow

</comment><comment><USER6> Interesting. Both the CEO and the President are former Travelocity execs.

The total of all rounds of VC funding for Gilt was $280M.</comment>