The Scraping Problem and Ethics - <AUTHOR> http://blog.osvdb.org/2014/05/07/the-scraping-problem-and-ethics/ <comment><USER2> This is one of the more interesting policy questions on the web. Our search engine crawls a lot of blogs and what not on the web, criminals who want to find unpatched wordpress sites try to acrape our crawl by sending automated (scripted) queries to find them. We have developed a number of defenses over the years and pretty regularly ban them[1]. Here is the weird part though, if they hired 300 people on mechanical turk and paid them each a dollar to do one search, it probably would get them more information. Look at folks like 80legs or other 'distributed' scrapers. They exist almost solely to subvert these service terms. Are they evil? Creative?

One of the things that stands out is called out in this article. The people involved really want this information, so much that they are willing to expend time and effort to construct scraping bots and what have you . Why not just buy it? How is it that someone gets a request from their boss to get some information, but their boss expects them to get it for free? Can you imagine if they said, "We need pens, pencils, notebooks, staplers, the works for the office here. Oh and you can't spend any money getting that stuff, just get it here." Would they construct some elaborate raid on a nearby Office supplies store using a mercenary army of criminals? Why do that with information?

We did an experiment where we would 'grep the web' for you, basically run a regex over a multi-billion page crawl, give you the first 50 results for "free" and you could buy the complete set. I think we sold exactly one of those.

It is a weird thing, the OP captured it perfectly.

[1] Its a violation of the terms of service.

<comment><USER3> I think there is a great meta-question in here, about business models for digital data and software.

Here you have a great case study, about an organization that tried to do a volunteer model, and it didn't work. Then they pivoted to a commercial model, but fundamentally they still believe in a free tier. But they have to cripple that free tier pretty thoroughly, and even _still_ people abuse it.

I have a product I'm working on, that some people are apparently willing to spend lots of money on. Ideally I would have some kind of low tier, so that people without lots of money would be able to use it too. But I can't figure out a way to segment the product so that everybody pays what they can afford without bad apples abusing the low tier and ruining it for everybody. The result is that I may end up only selling it to customers with deep pockets, even though the product is much more broadly applicable.

<comment><USER4> They made the process of paying for the software a laborious pain in the ass. They are desperately trying to extract money from those who can pay, which sadly drives away those who can pay but don't want an involved process.

I have worked at lots of companies where I had a monthly budget of 10k+ that I could spend on whatever I wanted, but if I wanted any sort of complex deal (can't just put on CC with a line item) -- had to bring in legal and other groups -- instantly killed any interest.

"Licensing is based on the data needed (e.g. all of it vs subset), how it is used (e.g. internal only, external, product integration), etc."

What a goddamn horror show. I simply want a product, I want to pay for it, and I want to use it. Turning on Dropbox for Business was a decision made in about 5 minutes... "You all like it, already using it, awesome! I will get team setup." \-- 5 minute later I had given Dropbox $3800.

I really think they are getting in their own way for no benefit. They have created a very high barrier to EVEN HAVING A DISCUSSION about buying the product. So, if I don't know exactly how will use it -- I can't purchase it. Stupidity.

<comment><USER5> Publishes data in public. Can't get people to pay for it. Blames people for theft. The real thieves are the ones separating people from their wallets over data that is available public and censuring it to those who won't pay.

</comment></comment></comment></comment><comment><USER6> I'm more and more concerned that the legal and cultural environment for web scraping would make it hard for a company like Google or Yahoo to be founded today.

The internet isn't about "don't take my stuff", it's about spreading that stuff around. I'm confused by people who want to make their data public, but want to control exactly how people access it.

<comment><USER7> _I 'm confused by people who want to make their data public, but want to control exactly how people access it._

You mean like TV? or Radio? or print....

<comment><USER8> To be fair those mediums all kind of suck in their own way.

</comment></comment></comment><comment><USER9> The OSVDB website contains no signup page for commercial access. No pricing either, purely sign up via contacting someone. From my experience whenever I see this, I just refuse to use the service and look elsewhere. Contacting someone is annoying and opens you up to repeat sales calls. Perhaps they should make commercial API access easier to access rather than complain about scrapers.

<comment><USER10> It's not really reasonable to say "I don't like the way you market your goods... so you really shouldn't be concerned with people stealing them."

<comment><USER9> Not in the long term obviously, but you can't make a product extremely difficult to buy and then complain that everyone is taking the easy route.

<comment><USER11> Talking to someone on the phone is not "extremely difficult." Large companies buy stuff by talking to people on the phone all the time.

<comment><USER12> and I have a policy that if the company does not practice open pricing by publishing their prices online I will not do business with them..

Fuck that non-sense of pricing based on what ever they think they can scam me out of

<comment><USER13> Apropos of nothing: customers often have an exaggerated notion on how important it is to e.g. an enterprise software company that that company land their account.

A conversation I've had a few times:

"We need it to do $THING_IT_WON'T_DO."

"In that case, it probably isn't a great fit for your needs."

"You don't understand. I won't buy it if it doesn't do that."

"I think I do understand. That's fine. You might consider trying $COMPETITOR, although you should know their minimum spend is $1,000 a month."

"That's outrageous. You have a $29 plan."

"Yes. So you should go with the competitor if that requirement is worth $971 a month to you."

"No, I want to spend $29, but I absolutely need that."

"I understand where you're coming from, but we do not offer that feature, and if we did, we would charge prices close to what our competitor does for it."

"You're not working with me here."

"I'm trying to find a resolution which works for you, but including that feature at $29 doesn't make business sense for me, so I won't do it."

"Put me on the phone with your boss."

"I'm afraid that isn't possible, as I sort of run things around here."

"What sort of businessman turns customers away."

"You're not a customer. If you were, you would be purchasing a product I sell for the amount I sell it for. That isn't happening. That's fine. Have a nice day."

</comment></comment></comment></comment></comment></comment><comment><USER14> If I were in OSVDB's shoes, I would call these people out in an email and ask them to pay a licencing fee. McAfee have always had a shady past, even when they shook themselves clean of John, they have a history of scam-like behaviour to make a quick-buck.

You should be rate-limiting how many requests free API users can make, like; Twitter, Facebook and every other Internet provider does via their API. Make it harder for people to obtain the information (to the best of your abilities) and paying will become more of an option because they won't go to the trouble of scraping it if it's impossible and will take a lot of time to do so.

Think of your offering as a car. You currently have no car alarm or immobiliser, if you install a immobiliser and car alarm, you will make it very hard for a thief to steal your car.

<comment><USER15> On the other hand, large (even non-profit) organisations are precisely the ones who have the resources to scrape steathily and widely, as would a loosely-organised community of users... it's not hard to come up with algorithms to respect the rate limits, balancing the load across multiple IPs and accounts, and producing access patterns that don't look any different from the rest of the site traffic.

<comment><USER16> like much security, it's not about making it impossible, it's about making it a lot less convenient/a bit harder.

At one point the effort to circumvent would cost more in man-hours than just buying the product.

<comment><USER17> You can get scrapping libraries fairly easily. In my more shady past I developed a library like that and shared it, HTTP client library with automatic proxy rotation and rate limiting friendly.

When I used it (which was almost a decade ago) never ran into problems, plug a list of 10,000 proxy and scrap away.

Not condoning that, which is a bit hypocrite of me, at the time I was mostly doing what I was told and I thought I was clever. Now that I'm in a position to have a positive impact, I do buy data and pay appropriate licence fees on all software/data purchase, which still baffles some of my programmers who constantly ask "why not crack it?", "you know I found a .zip on Google with the data, why buy it?", and so forth.

I don't know what in programmer culture makes it so hard for us to pay for something, some people put some effort behind that software / data collection, and it's only fair to pay them.

<comment><USER18> Speaking as devil's advocate, it might just be more convenient to steal the data.

Maybe I want to use your data casually once, and I don't want to sign up and give you all my contact details and subscribe to your annual plan with all the other optional extras.

Tough shit, you say? I'll just steal it then, and not because I can't afford it, but because you're making it hard to pay.

<comment><USER5> but how is it stealing when one does not lose inventory? If one person scrapes a page, did you lose the source code? Does it not become available for the next visitor? What possible loss do you incur that is directly tied to your data? When you make data public with the intent of being readily accessible by the public, how can you claim theft when you are achieving what you set out to do? Does the accelerated rate of access suddenly become a theft? Does one need to pay a third party to avoid the pain associated with manual hand labor for simply hosting the data which is available to the public? Help me understand.

<comment><USER19> "but how is it stealing when one does not lose inventory?"

Scraping is not necessarily a no-victim situation. Even today after this stuff has gotten cheaper, you're costing them bandwidth fees, and likely increasing their server storage and CPU fees if it's on a metered hosting service, which is quite likely nowadays. If you degrade their site's functionality, you may chase away paying customers.

We need not hypothesize crazy third-order effects; you are taking money out of their pockets by the act of scraping itself, independent of the question of the value of the content.

"What about Google? etc." \- robots.txt-honoring scrapers that don't hammer the sites at least have a plausible claim to permission. Scrapers are quite likely to be ignoring the robots.txt.

<comment><USER20> > Scraping is not necessarily a no-victim situation. Even today after this > stuff has gotten cheaper, you're costing them bandwidth fees, and likely > increasing their server storage and CPU fees if it's on a metered hosting > service, which is quite likely nowadays. If you degrade their site's > functionality, you may chase away paying customers.

While technically correct, you are conflating the issues, because in none of the cases (that I've seen mentioned so far in this thread) the problem is with bandwidth/storage/CPU costs of _retrieval_ to any significant extent.

Instead, it appears that almost all of the costs are incurred _before_ retrieval: curating, sorting, etc.

I'm not arguing that it's okay, but it's just as much not stealing / thievery as downloading movies or music isn't.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER21> I can't help recalling a post here a couple of years ago about the concept of "hellbanning" scammers on ecommerce sites--in short, making it look like everything is going fine, while actually isolating them completely from your business logic. Orders with stolen cards appear to go through, and send confirmation emails, but no real order is generated... In this case, you could transparently poison the results served to identified scrapers with 5% bogus vulnerabilities.

Or is that about as ethical as spiking trees to prevent illegal logging?

<comment><USER22> Heh, I've always called this the map makers trick (found an article about it here: [https://theweek.com/article/index/241967/trap-streets-the- cr...](https://theweek.com/article/index/241967/trap-streets-the-crafty-trick- mapmakers-use-to-fight-plagiarism)) although I guess that is specific to putting a small amount of fake data in your dataset to prove someone else used it. The hellbanning metaphor does fit for return large amounts of poison results.

It could be like spiking trees I guess, but that depends on the potential for harm. I just looked it up and was surprised to find that only one injury has ever been reported due to tree spiking. I guess it's a better talking point than actual tactic.

And like lukejduncan said, this is definitely done in practice.

<comment><USER23> The point of spiking trees isn't to hurt people, in fact the tree-huggers _tell_ the loggers that the trees have been spiked so that they won't attempt to cut the trees. The point of the tactic is to prevent damage to the forest, _not_ to actually hurt anyone.

</comment></comment></comment><comment><USER24> This also goes way beyond scraping, in the sense of small start-ups doing all kinds of hacks or clever manips to stay within the bounds of a free trial service.

As someone who sees both sides… I don't know what to say. I'm running test landing pages on Heroku with New Relic that pings the sites every minute to ensure the dynes keep spinning and my users don't experience downtime. While I'm careful to stay within fair use, this is at best obnoxious, because if everyone did this, Heroku would certainly need to redefine what's free. From my POV though, I am a bootstrapped entrepreneur and supporting 5 landing pages. I simply don't have resources to pay for a dyno and test everything I have in my head, especially not combined with the many other resources I'd need to start paying for as well.

Or consider the kid in Florida who used Parse' free account for hundreds of thousands of users. [1] (The article was on HN a few weeks ago, this was not it's central point, just something I took away relevant to this comment.)

Part of the cause I think is that we live in a world where we're so used to having things be free, it becomes an entitlement. Another is that all these examples of start-up hacks and hustle stories, we kind of laud, don't we? Everyone talks about how Airbnb scraped Craigslist and got a huge boon that way, but few in critical tones. Should we? Or is that how competition and new products get created (i.e., if the scraping hadn't happened, perhaps Airbnb and the whole sharing economy would be less successful today).

These are philosophical questions, and I don't really have a solution, but they are things to think about.

[1] [http://pando.com/2014/04/30/how-a-florida-kids-stupid-app- sa...](http://pando.com/2014/04/30/how-a-florida-kids-stupid-app-saved-his- familys-home-and-landed-him-on-the-main-stage-of-facebooks-f8/)

</comment><comment><USER25> I was once developing a program for automated trading for my own personal use. In the beginning I made periodical requests to my broker, scraped out the price info, and made orders if the price was right. Once I had something sort of working I decided that I wanted to do this the right way and ask them for permission. They told me I would have to subscribe to a feed through some other program. After many hours of reading the manual and trying to figure out how to transfer the data to my application I again got it sort of working. But I had already started to lose interest and other things had come up in my life.

How is this relevant? Well I would have much preferred paying for scraping, than trying to learn some new api. It increased the transaction cost. If you further have to negotiate with a partner company, that sounds like even more transaction cost, from having to send emails back and forth and the mental effort of negotiating.

<comment><USER26> Beyond the moral discussion, I think a market for web scraping is a good thing because currently there are a lot of unconnected people trying to buy/sell this service.

Freelancer sites has a lot of offerings for web scraping but this niche has its own issues.

</comment></comment><comment><USER27> Pretty sad. McAfee I dont really expect much less from. They've always been a bunch of scam artists / con's in my mind.

I dontbhave time to look but couple of things striked me as odd. Is there a reason you dont lock down your request limits? Also why dont you secure access? Allow free accounts to be made and issue apis keys for them, at least that way you can much more easily rate limit access to the apis and heavily rate limit front end web requests down to reasonable numbers.

</comment><comment><USER28> Shouldn't you at least be disallowing /show/* in robots.txt? Not that scrapers are necessarily going to respect this... but the way your set up it seems like this is semi-legit behavior.

<comment><USER15> Maybe they want Google to be able to crawl their database (which it has clearly done, as you'll see if you do a search.) That also raises some questions...

<comment><USER29> Not completely by the specification, but I think this one works as expected.

        user-agent: *
        disallow: /

        user-agent: Googlebot
        allow: /

<comment><USER28> I think that userbinator's point is that the DO conditionally allow scraping which makes their position even more tenuous IMO.

<comment><USER30> By a single search engine which probably provides the _vast_ majority of their traffic.

While I don't necessarily agree with the concept of only allowing google to index your site, comparing a search engine which feeds you business to a company reselling your data with no attribution is not really fair in my opinion.

<comment><USER28> Neither of the two parties mentioned is likely to resell the data directly, both are likely to to create a derivative work which they will exploit commercially as will Google. What part of the ToS make one OK while and the other forbidden? How does this work when a smart scraper can just pull from the Google or archive.org cache?

</comment></comment></comment></comment></comment></comment><comment><USER31> Web scraping isn't a crime - the simple act of downloading the data should not be a problem here. (The reuse of the data might be, depending, but we don't have that information right now.)

This doesn't even rise to the level of what Weev did.

<comment><USER32> He's just making the point that it's unethical, which it is. Even if it boils down to simple bandwidth theft.

<comment><USER33> I feel the opposite. I don't think it's unethical, even if it might be illegal.

Even calling this "bandwidth theft" is quite the hyperbole—if the server can't handle the bandwidth, then rate limit the requests.

I think if you're serving out pages to the public, you don't really get to tell me what kind of browser I'm allowed to download it with. As long as I'm speaking HTTP, it seems fair.

Sadly, that law has been slowly creeping against this mentality... Lately I feel like I'm some old internet hippy with these views. On a site called "Hacker News", no less.

<comment><USER34> > Sadly, that law has been slowly creeping against this mentality... Lately I > feel like I'm some old internet hippy with these views. On a site called > "Hacker News", no less.

I guess it's because everyday more and more people on here are finding themselves on the other side of the fence, i.e. finding that some of their users are ripping off their content/site.

<comment><USER35> Maybe people need to come up with a better business model for websites than "Put up some 'content' and sell ads next to it."

Sell a product or service.

</comment></comment></comment></comment></comment><comment><USER36> Why not put all information behind a login page and force people to sign up? It looks like this site will be used by only a few people anyways. You can then also track scrapers by login.

</comment><comment><USER37> As a somewhat unrelated side note, I'm actually working on providing a free API written in Golang for CVE and CVSS entries. You can find it here: [https://github.com/jordan-wright/cve-api](https://github.com/jordan- wright/cve-api)

</comment><comment><USER38> Is it ethical to scrape from a scraper?

<comment><USER39> Ethical at least requires respecting robots.txt.

<comment><USER38> If robots.txt said to jump off a bridge, would your spider do it?

</comment></comment></comment><comment><USER40> It's hard to get excited about this. The data owner supposedly has a mission to make the data available but then is concerned with such a thing. It doesn't strike me as that difficult or expensive to make that sized database available.

</comment><comment><USER41> We had a former Google Maps PM give a talk about building APIs, and he addressed scraping. Something he pointed out is that the traffic pattern from scrapers differs from regular users. Regular users make requests for the same things often. Scrapers usually only request any given item once. The really obvious ones do it in order from the beginning. He had a hilarious map showing the requests of someone requesting business information starting from the top left corner of the map. They got really good information on all of the businesses between the North Pole and Greenland before being blocked.

</comment><comment><USER42> I see that the "Open Source" Vulnerability Database changed it's name to the "Open Sourced" Vulnerability Database in July 2013.

[https://web.archive.org/web/20130714002216/http://www.osvdb....](https://web.archive.org/web/20130714002216/http://www.osvdb.org/osvdb_license)

I guess they were hoping no one would notice the subtle but substantial change to their service

</comment><comment><USER43> Given these people's immediate reaction to resort to scraping, I'm honestly kinda surprised they didn't setup basic practices of at least going through proxies (or free ride off of Tor, ugh).

</comment><comment><USER44> Maybe it's the supervillain in me, but I think I would try to come up with software to recognize the scraping attempts, and rather than ban them just have it generate fake data on the fly.

</comment><comment><USER25> >including an expansive watch list capability,

I would avoid the word expansive. Too similar to expensive. Especially when emailing people who are not native English speakers.

</comment><comment><USER45> Looks like they forgot to conceal the full name and email of the guy from s21sec in one of the quoted emails...

</comment><comment><USER46> I would hope they sent a bill.

</comment><comment><USER47> Amateurs. If you are going to crawl distribute it across unique IP addresses.

</comment><comment><USER48> What is the price? I assume the price is in the 5-10k+/month range, which is a reasonable amount for data like this.

</comment><comment><USER49> What about Aaron Swartz? He essentially did the same exact thing to the computers at MIT and he is somehow a freedom fighter when someone doing the same thing to the osvdb website is considered "unethical".

This is straight from the open security foundation website:

"We believe that security information and services should be easily accessible for all who have the need for such information and services"

<comment><AUTHOR> While your sentiment is reasonable, I think the main difference here is that McAfee and others mentioned host their own private vuln databases and do not share them with anyone, so they were scraping to increase their own private resources for commercial use.

Aaron was scraping private resources to share publicly.

<comment><USER50> More than that, he was scraping private resources that were freely populated. He was not robbing content creators of their money. He was circumventing a paywall to what should be free data.

<comment><USER51> That's quite the mental leap. He was circumventing a paywall, but that's not robbing anyone of money because it should have been free in the first place? Well, it wasn't free, even if you think you it should be. Thus the paywall.

<comment><AUTHOR> To that point, the people who submitted to the journal did so knowing that it costs money to access, it wasn't as if they were tricked into contributing to a private pay-wall journal.

<comment><USER52> For most scientists there isn't another system, and certainly when the system was established nobody was envisaging a time when publishers would make hundreds of % markup on every access of a paper. The prices reflect print publishing costs and the historical lack of a cheap distribution system like the internet. Now we have a hangover where people's careers are judged on their ability to publish in high-impact journals, all of which charge several thousand pounds extra to make the paper Open Access. So we're not tricked, but we do it under duress.

The system is changing, Aaron helped.

</comment></comment></comment></comment></comment></comment><comment><USER5> Scraping is not an ethics discussion. It's what you do with the data that falls into the topic. Selling email lists scraped from websites to spammers would be one. Using email lists to prevent spam would not be one.

The article is basically saying "I want to charge people for information I have made public online, they won't pay, so they are obviously thieves by refusing to do it manually by hand like they are supposed to."

Gimme a fucking break here. If you don't want the information to disseminate, DO NOT PUBLISH IT ONLINE.</comment>


Zuckerberg Needs to Dump Peter Thiel from the Facebook Board - <AUTHOR> http://www.slate.com/blogs/future_tense/2016/05/26/mark_zuckerberg_needs_to_dump_peter_thiel_from_the_facebook_board_of_directors.html <comment><USER2> > Disclosure: One Slate editor is married to a Gawker editor. One is married > to a lawyer who represented Gawker in the Hulk Hogan trial. One is a former > Gawker Media executive editor. None of these Slate staffers worked on this > story.

</comment><comment><USER3> As rich as he is I don't think he would care. Still, gawker's blatant disrepect pisses even me off, and I'm fairly thick-skinned. But to have attacked someone because they are not a hetrosexual is as lame as it gets and gawker is about to get 'more than a mouthful', as they say.

</comment><comment><USER4> [https://cdn.meme.am/instances/500x/66593705.jpg](https://cdn.meme.am/instances/500x/66593705.jpg)</comment>


Ask HN: How to develop competitive spirit? - <AUTHOR>

Ok. This may sound weird to many but let me tell you my story. I am a proficient developer and entrepreneur. I always come with many big ideas. But, as soon as I realize that it will affect someone else badly directly or indirectly, I stop working on it. Whenever I think that if I win , someone else will lose, I stop participating in that competition. I hate Amazon and Walmart, as they destroyed many local shops.
I learnt quite a lot in robotics but gave it up when I realized that many people will lose jobs because of automation. These ideas have got fixed in my mind and I can't remove them. I am not able to progress in the real world but I can't find any flaw in my ideas. I don't understand why people compete.
Does any one of you feel the same? Did you ever have this thought? If yes, how did you overcome it? Or do we even need to overcome it? <comment><USER2> As a side note (because your way of thinking is very interesting), here's a small thought exercise. I would love to know what you would do in this situation. (This might further convince you that the way you think fails some tests). I think taking the time to really understand this train of thinking is important, as it will dictate many of your decisions in the future. :)

ActionA hurts 1 person. B,2 C,3 D,4

Which one do you chose? A or no choice? To compound the problem.

ActionA hurts 1 person you really like. B,2 ppl you kinda like; C,3 ppl you are ambivalent towards; D,4 ppl you utterly dislike (each emotion containing logical reasons, e.g. A is your girlfriend, D is a cruel warlord.)

Now your decision might change, might it not? This is how I demonstrate to you why uncertainty destroys any chance you have of effectively making decisions.

So in all, I believe your way of thinking fails at 3 levels.

1\. You believe your actions always hurt someone, though not realizing that because you're a capable and well-meaning person, your inaction may hurt many many more people.

2\. You believe firmly (so firmly that you don't commit to anything you want to do in life) that you are dealing with information when you are in fact dealing only in pure, non-founded speculation. You have NO basis to believe you are hurting people. You speculate. I would say you have information that you are hurting people when you can tell me the names of who you're hurting. This is a bad illusion to live under. It gives you the feeling that your making an active decision to do something when all you're doing is absolutely nothing except believing you've made an active decision. You set yourself a devious little trap.

3\. You do not have enough information to use the system you are using. Even if you had enough information (as demonstrated above) you would need additional rules and ways to rank the impact of your actions and who they impact, which you currently completely lack.

I know this is going to help you. Let it. If I was in your situation and someone told me this, it would've helped me. :)

<comment><AUTHOR> Thanks b0ttler0cket. Your comments definitely helped me. Though I am not 100% convinced. I will give more thoughts to your comments.

<comment><USER3> Great comment by b0ttler0cket! He is completely right.

Sharing my point of view, I am also have no competitive spirit at all (and I don't want to grow any also). My high school used to divide students in classes according to our grades. I consciously chose no to study to the finals in order to stay on the same class of my friends. I am a good soccer player, but, unsurprisingly, I am always at the loser side of a game - _sport_ is a field where competitive matters, not entrepreneurship.

As a founder myself, not being competitive certainly has implications, but that doesn't give any reason to create a "fear paralysis". Sure, we both doesn't have the right fit to create a copycat business. Create a local Groupon where we would have to ferociously compete for markets. But what about innovation? Blue ocean strategy? Non-profit startups? Social business? Research? I may even say that creating a new social networking site don't justify your fears (or are you actually afraid of being so successfull that you will make all Facebook employees fired??).

See how many possibilities? I can't not say something, and I am only saying this because I can completely relate to your spirit and I really have no intention to offend here. But, to me, sounds one of two options: or you are extremely short-sighted about what can you achieve or you are just rationalizing all of this in order to justify your inaction, your fear of getting out of your comfort zone.

On a final note, a misconception: Capitalism is not a zero sum game. Not at all. Even Karl Marx, the biggest, most important, most inteligent, most profound, most ferocious critic of capitalism says that capitalism imply in poverty, that for some to get rich, some have to be poor. No, the capitalism itself doesn't demand this. The way we practice capitalism today has this consequence, but this is changing. Less poverty in the world is better for rich people and rich countries. China growth allowed a better life for both USA wealthy people and chinese poorest - there is no way a continual world growth is possible without including Africa in world's economy. It is perfectly possible to create a business where you create wealth for every stakeholders and doesn't destroy wealth with some externality. *Marx's criticism is more in the line that capitalism leads to individualism, fetishism, human degradation(not through poverty), reification (thingification of social relations).

</comment></comment></comment><comment><USER4> Competing is not only about killing or destroying someone (a business in your context). It is also about encouraging the players to continuously improve and challenge themselves. Yes it is true that whenever someone wins, someone else loses. But instead of looking only at the loss, look at what new gains are coming in ? You say you ate Amazon etc. because they destroyed many local shops. How about the thousands of jobs they also created ? How about the value they brought to consumers all over the world which the local shops wouldn't have. Also it is not a zero sum game. There still are local shops in cities around you. They still exist.

Look at the positives of anything. Stop worrying about negatives. I am sure those local shops would have found something else to do and who knows, they might even be doing better now.

<comment><AUTHOR> "How about the thousands of jobs they also created ?" -> This was true in the past with big corporations,huge number of jobs were also created. But, now a days, even this is not true. Eg. Amazon Warehouse Automation, Automation in industries, etc. People are losing their jobs. In developing countries, as simple jobs are getting replaced by machines, many lower class are finding it even difficult to survive. The big enterprises are doing much more harm than the value they are creating. And yet I see people dreaming of making it big just because of our greed. What is good about big?

<comment><USER4> you need to think about this more. If at one end, some industries are getting automated due to technological advancements, it is also creating a new set of industry where you _need_ to hire. Sure if there aren't enough warehouse jobs, people will find something they can fit in. Like I said, don't look at it as a zero sum game.

<comment><USER3> Definetly you should think more about this. I live in Brazil, we are a developing country, we are implementing a lot of automation - particularly in our biggest business, agriculture - and our unemployment rate is one of the lowest in the planet right now.

</comment></comment></comment></comment><comment><USER2> Dear jhjhjhjhj,

1\. Not acting is hurting someone too.

You can look at this from a psychological standpoint. I've read the other comments and I agree with some of them, especially mnicole's in which s/he says "you're opening the door for another or making them step up their game." You may be "hurting" someone, but you have the potential to help many more. So from a philosophical point, you are solid. Just remember that breaking a window to employ the window maker does not add to the system. It actually just leaves you minus a window. If you don't commit to your ideas, you're breaking the window.

2\. You don't have enough information. Uncertainty.

You can look at this also from a logical standpoint. What you're saying is you are immobilized due to various reasons. These reasons, we call constraints. You are in a situation saturated with so many constraints that you can effectively do nothing. Start one thing, find bad implications, stop. Start another, stop. This is a signature sign of a bad and failing system. You HAVE to change the rules by default, assuming you want to develop a better system.

As such, forget this rule:

If I "affect someone else badly directly or indirectly, I stop working on it."

This to me is the equivalent of voodoo magic. You cannot quantify or in anyway measure the extent of your negative impacts. This means you are in a system rife with uncertainty. The special quality of uncertainty (as the 2002-2008 WS financial engineers observed) is that no matter what metrics you use, it is unquantifiable and that an overabundance denotes a system bound to fail. Your system of decision is therefore one that fails. It is not grounded in reality, but in uncertainty. You sound like a smart person ("proficient developer and entrepreneur"). You must be able to see why this is true.

Do not make decisions based on uncertainty. There's literally nothing you can do for these people you believe you might be hurting. Make decisions on reality. Go for what you want. Develop your projects and feel liberated doing so.

Now, having reconciled our philosophy with our logic, I hope you can find a better peace of mind to continue onward. :)

</comment><comment><USER5> If you don't, someone else will, and they might be even less ethical than you are. Additionally, like codegeek said, you may be shutting one person out, but you're opening the door for another or making them step up their game. There's also no reason to feel guilty because someone didn't do enough research into their profession's outlook. I saw first-hand how co-workers struggled with making the switch from desktop publishing to web; it was awful for them, but it would have been worse for everyone if the web had never come along at all. Many high schoolers are given aptitude tests that show the future growth of the industries they showed potential in. These same tests are probably available for free online at this point. Think less about the individual and more about the bigger picture; the individual will get through it and the opportunity to do something grand has much greater return for everyone.

Another way to look at it: a lot of people will work for companies they morally or ethically despise, but the pay and other factors keep them around until they've accumulated enough of this dirty money to go on to use it to do better things. If you are concerned that your best ideas are disruptive to the point of guilt, just remind yourself that you don't need to do it forever, and if you'd feel better as a philanthropist, the bad can fund the good.

</comment><comment><USER6> You should look into companies like Gore and Mondragon. There are ways to build great, competitive companies that create great jobs and ways of living that didn't exist before.

</comment><comment><USER7> There is a correlation between testosterone levels and competitiveness. Exercise will increase your testosterone levels and this may increase your competitiveness

</comment><comment><USER8> Simple solution: work on medical robotics (e.g. minimally invasive surgery). Nobody loses their job and your work affects people positively.

</comment><comment><USER9> Business is a ruthless game. There is limited market saturation. A few are on the court, while a lot more are always on the bench.

I don't think it has to be this way, but it certainly shouldn't keep you out of the game completely.

<comment><AUTHOR> Most think it should not be this way. Then why can't we change it? How will participating in the game help? I can't convince myself.

<comment><USER9> You shouldn't do nothing because you might hurt someone's feelings. Chances are they have no issue hurting yours. Necessary evil if you will.

I'd love to change it.. but it may not even be possible. Only a limited number of businesses can exist in any one market. Some will do better work than others. The ones doing the better work will remain and profit, while the others will perish. How can that be done differently?

<comment><USER2> I have to disagree.

I don't like to think of this as a necessary evil. Given the OP's philosophy, I definitely don't think it's appropriate to describe what he should do as an "evil."

It can be done differently. He's not questioning the fact that there's "only a limited number of businesses [that] can exist in any one market." Jh understands that the world is finite. What he doesn't understand is that this concept of "hurting" someone is not real. It's not sports, where the aim is to defeat the opponent (yes that is the aim of sports...I know what I'm talking about there). This is business. If there's too much in one place, go somewhere else. Jh's problem is that he can't go anywhere else. He's stuck in the middle of nowhere because every decision is blocked by an internal rule he has written.

There is no necessary "evil" here, there's just necessary. You have to abandon your train of thought. :) That is, if you want the solution to your dilemma. :)

<comment><USER10> From the guidelines: "Please don't sign comments, especially with your url. They're already signed with your username. If other users want to learn more about you, they can click on it to see your profile."

Could you, pretty please, stop prefacing all your posts with your username? It ends up appearing directly below your username, and is kind of distracting.

<comment><USER2> Oops. Sorry. :)

</comment></comment></comment></comment></comment></comment><comment><USER11> And I'll bet if you were around thousands of years ago and invented fire you'd have forseen guns and rockets and given up on fire....

</comment><comment><USER12> I say no need to overcome your philosophy, and you can be highly successful without the rather silly idea people have around the need for competition.

Cooperation, symbiosis, or whatever you want to call it, is a higher good than competition.

<comment><USER13> Logjam, I apologize for replying to your comment in another thread (<https://news.ycombinator.com/item?id=5501739>) in this unorthodox way, but you replied to one of my comments in a recent thread and before I could reply to yours, the originator of the thread killed it, which action prevented any more correspondence and might have led you to believe I had no reply to your remarks. But I do. Here's your comment followed by my reply:

>>...you're only adding to the perception that women _lie_ [emphasis added] about sex crimes. _And they do_ [emphasis added]...20%-40%...are simply false... blah blah

> Oh. My. _Lie_. Speaking of sleazy, do tell us more about your oddly worded > little insinuation, when the article you linked goes on to say:

> "First, the category of 'false accusations' does not distinguish between > accusers who lie and those who are honestly mistaken. Nor does it indicate > that a rape did not occur, merely that the specific accused is > innocent....Third, the 1-in-4 figure has 'fuzzy' aspects that could > influence the results. For example, Neufeld and Scheck mention only sexual > assault cases that were "referred to the FBI where results could be > obtained."

First, your comments aren't a reply to my comment, but to yours -- your having edited my remarks, and added emphasis not present in the original, changes its meaning. I never said that 20% to 40% of sex reports are lies, as you insinuate in your edit of my remarks, I said they are false, and they are. My claim is fully backed up by the FBI report.

Second, when a woman identifies a man as a rapist in a criminal trial, but is not certain of her identification, in a legal sense she is lying, because to offer testimony in a criminal trial, a witness must be certain -- and judges and juries assume witnesses understand this responsibility. If the witness is uncertain, saying under oath, "He's the perpetrator" in a criminal trial is not an "honest mistake", it's a separate crime. Therefore a witness saying "I was mistaken" after the fact, after the legal system makes the assumption that the identification was certain, is unacceptable, and the original testimony constitutes a lie.

The responsible-adult solution is obvious -- it's a criminal trial, someone may lose his freedom and be marked for life with the vilest kind of stigma, therefore if a witness is not certain, she absolutely must say, "I am not certain". Therefore the 20% to 40% figure quoted in the article consists of (a) liars and (b) people who are being criminally irresponsible.

And believe me when I tell you, the prevailing FBI statistics can only hurt women who come forth to report real sex crimes. The fact that 20% to 40% of such reports are false is often used by defense attorneys to ruin a woman's chance to receive a fair hearing. As Wendy McElroy says in the article I linked, "False accusations are not rare. They are common."

When a woman chooses to accuse any convenient suspect, she may feel a temporary vindication that some man pays for another man's crime, but in the long run, all women pay the price for that irresponsible act.</comment></comment>


How Deutsche Bank Made a $462M Loss Disappear - <AUTHOR> https://www.bloomberg.com/news/features/2017-01-19/how-deutsche-bank-made-367-million-disappear <comment><USER3> I wrote my feelings about how Deutsche got into this mess here. I think its still a valid take on how things unraveled.

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

> Essentially, the trade had little economic purpose—only an accounting one.

Yep, that's one of the first things you learn about when you take any kind of trading course. At a lower level in the cash equity markets you have something similar with wash trades.

The rule of thumb has always been, did you swap any risk, if not then consider you may have done something dubious, not always, but its a very good first pass.

> This month the bank agreed to pay $7.2 billion to resolve a U.S. probe into > its subprime mortgage business, admitting it misled investors. Deutsche has > paid more than $9 billion in further fines and settlements related to claims > of tax evasion; violating sanctions against Iran, Libya, Syria, Myanmar, and > Sudan; rigging the $300 trillion Libor market; and other alleged breaches of > the law.

I think this is going to be the new normal for banks from now on until they get completely out of trading an market making, which is probably going to be never.

It's very hard to police a world wide distributed teams, who have many conflicting views, all of who get paid based on what they produce and don't have much long term incentive to see things any other way.

I mean, in this case even the risk team singed off on it. What more could a CEO do. At some level you have to trust your people to make money and do it without breaking the laws of every country you do business in, even if those laws can conflict.

Having said that, Deutsche bank is one bank that keeps coming up when fines and abuse in the baking system are in the news.

They allegedly wrote famed hedge fund Renaissance Technologies their infamous basket option put that let RenTech claim that its short term trades were actually long term captial gains instead by virtue of them owning the put written by the bank that just happend to include every single short term trade Rentech did over the year.

Deutsche got paid handsomly for writing the put and RenTech got the cliam long term capital gains vs short term capital gains.

[https://www.bloomberg.com/news/articles/2014-07-21/renaissan...](https://www.bloomberg.com/news/articles/2014-07-21/renaissance- avoided-more-than-6-billion-tax-report-says)

Side Bar:

I've said this before, but when the tell all book about RenTech is written, their genius will be confirmed but I think you'll find they did alot more shady things like the above to juice their returns.

<comment><USER4> >"It's very hard to police a world wide distributed teams, who have many conflicting views, all of who get paid based on what they produce and don't have much long term incentive to see things any other way."

Why is this hard for management to police their own departments? Other industries manage distributed teams just fine. I agree with your other points in that passage.

The real issues is that there exists a culture a criminality with little little fear of consequences. jail. The only way that's going to change is to start holding individuals accountable.

>"I mean, in this case even the risk team singed off on it. What more could a CEO do?"

Verify? These CEOs have insane compensation packages. They make more in a year than most people will in a lifetime. When questions about their insane pay packages arise, the party line always seems to be that they are worth it because they are "that good."

If they are that good then more should be expected of them. They should be conducting independent audits - "trust by verify" or do some innovating in the area of compliance. Their M.O. is always to blame someone else, the buck never stops with them.

<comment><USER5> Companies don't want to police their own departments. This is how lots of modern companies deal with laws they don't like. They commit to obeying the law, tell everybody not to do anything illegal, but at the same time place requirements and expectations on the peons that force them to break the law. Then the peons get caught, they tell everybody how it's not their fault, they told everyone not to do that. The peons get fired or worse, the company hires replacements, tells them not to break the law, gives them unrealistic expectations, and the cycle repeats.

<comment><USER4> Wow I was downvoted for saying that management needs to be held accountable for criminality?

The cycle repeats because there is no disincentive to stop it. How many people went to jail after the 2008 crisis? I think you could count them on one hand and still not use all you fingers. Nobody will go to jail for Wells Fargo fraud either.

<comment><USER6> Downvotes happen. Maybe someone fat fingered. Maybe someone doesn't like you because of a different post. No point in dwelling on it, and in any event often enough it swings back later.

<comment><USER7> Gotta give everyone their fresh, daily dose of self doubt.

</comment></comment></comment></comment></comment></comment><comment><USER8> There is a subtle historical irony on this deal happening with an Italian bank.

Italian banking, including the bank in question, got its start back in the middle ages by getting around prohibitions on usury with similar "guaranteed to lose" bets on currencies. The bank would give the borrower money in one currency now, and the borrower would give the bank back a different sum of money in another currency in 6 months. Given currency fluctuations, it was theoretically possible for the bank to lose the bet. Given the sums involved, this was very unlikely to happen in practice.

(Jews had the same commandment against usury, but interpreted it to only apply to other Jews. They could lend to Christians all that they liked, and did. That is where the connection between Jews and moneylending got its historical start.)

A lot has changed in the intervening centuries. The prohibition on usury was dropped, first by the Protestants and then by the Catholics during the counter-reformation. Banks have been regulated. And now the original workaround to allow loans at interest is seen as unacceptable. And so the Italian bank has been taken down by a deal that is very similar to the ones that got it started in the first place.

<comment><USER9> The song "Everything Old Is New Again" by Peter Allen & Carole Bayer Sager from the 1974 album _Continental American_ seems apt.

<comment><USER10> Like Admiral Yi Sun-sin and the turtle ships.

</comment></comment></comment><comment><USER11> Speigel Online had a phenomenal article (Oct 2016) about the transformation of Deutsche from a staid German bank to a crazy highflyer. [http://www.spiegel.de/international/business/the-story-of- th...](http://www.spiegel.de/international/business/the-story-of-the-self- destruction-of-deutsche-bank-a-1118157.html) is in English and is an interesting read.

</comment><comment><USER12> Somehow I need (as an Italian) to underline how the Monte dei Paschi di Siena was founded in 1472 (yes, that is 20 years _before_ Columbus found America thinking to make a new route to India) and had prospered until the new economists/geniuses took over in the 90's.

In other words "how to make five centuries (500 years!) of experience go waste".

</comment><comment><USER13> I'm having a hard time understanding why they could not execute this as a simple loan? Would that not have gotten around the requirements?

My reading here is that the base mechanism of the trade was "DB gives X, receives Y% of X over Z years".

I really wonder what % of transactions are this sort of fee-generating trade

<comment><USER14> A loan doesn't change your profit for accounting purposes - you gain $$$ in cash (asset), but have the same $$$ as a loan (liability) on the other side of the balance sheet.

</comment></comment><comment><USER15> So this one investigation managed to neutralise all people at Deutsche Bank that were doing same things that most other banks are also doing - <USER2> highly risky semi legal investments and reaping profits. So now without those kind of people in Deutsche Bank the have no way of competing on global markets and will loose money while other bankers reap the benefits. Nicel done. Congrats to American bankers.

</comment><comment><USER16> Whatever happened to the "Greece crisis"? Deutsche was one of the banks on the hook for that mess, and now you hear nothing about it. Did little ole Greece have billions of dollars in a dusty treasure chest somewhere? All this financial crap is a scam...

</comment><comment><USER15> Now I understand what american bankers meant by saying "We won".

</comment><comment><USER17> They used a spreadsheet.</comment>


Think OS: A Brief Introduction to Operating Systems - <AUTHOR> http://greenteapress.com/thinkos/ <comment><USER2> For those looking for a bottom-up approach to learning what OSes do:

[https://www.bottomupcs.com/](https://www.bottomupcs.com/)

Pretty great resource, read through it just recently, and while it had some unfinished sections, it was just what I need to answer definitively a question like "How do threads work on linux", with excruciating detail.

</comment><comment><USER3> My personal recommendation concerning OS development is xv6: [https://pdos.csail.mit.edu/6.828/2016/xv6.html](https://pdos.csail.mit.edu/6.828/2016/xv6.html)

Printout of important parts of the source code: [https://pdos.csail.mit.edu/6.828/2016/xv6/xv6-rev9.pdf](https://pdos.csail.mit.edu/6.828/2016/xv6/xv6-rev9.pdf)

Book: [https://pdos.csail.mit.edu/6.828/2016/xv6/book- rev9.pdf](https://pdos.csail.mit.edu/6.828/2016/xv6/book-rev9.pdf)

(both are linked in the menu at the top of the page)

Review by John Regehr: [http://blog.regehr.org/archives/1114](http://blog.regehr.org/archives/1114)

(Github Repositories:

> [https://github.com/mit-pdos/xv6-public](https://github.com/mit- > pdos/xv6-public)

> [https://github.com/mit-pdos/xv6-book](https://github.com/mit- > pdos/xv6-book)).

<comment><USER4> Thanks for the pointer. I just spent 30 minutes moving the binaries into `/bin`, in the generated filesystem, then making the shell find them via a PATH-search.

Made me appreciate some of this stuff all over again.

</comment></comment><comment><USER5> Try this too: [http://pages.cs.wisc.edu/~remzi/OSTEP/](http://pages.cs.wisc.edu/~remzi/OSTEP/). OS - Three Easy Pieces. It has the right mix of text and relevant code to drive down the concepts.

</comment><comment><USER6> I love Allen Downey's books. His "How to Think Like a Computer Scientist" was the first CS book I used in high school, and it has given me the strongest fundamentals I could ever ask for.

I'm a college student now taking OS, so hoping this will be a good complement to my education.

</comment><comment><USER7> As a comprehensive textbook on operating systems I would recommend reading "Modern Operating Systems" by Andrew S. Tanenbaum.

Yes, it's almost a 1000 pages, but it's written very accessibly and understandably.

</comment><comment><USER8> How does this book compare with "Operating System Concepts" (aka the dinosaur book) ? I've read neither, but plan on teaching myself more about OS—after I complete "Elements of Computing" and "Computer Systems: A programmer's perspective." (hopefully in the next six months)

<comment><USER9> It takes you 6 months to read two books?

<comment><USER10> These are not books that you read as leisure, so probably one can't read it continuously. And I would recommend to have a personal project (or maybe one borrowed from another person) to test the concepts as you read. As people have social life and work, this 6 months time span seems acceptable.

About the books: I can't say about these two books because I learned it through a Brazilian book and I was applying it directly at my job (so I had to learn it faster).

<comment><USER9> I understand one has a job and stuff to do, but 6 months is 4320 hours. Let's say you waste 10 hours a day commuting and in your job, that's 1200 hours in 6 months. You have 3120 hours left to sleep and do whatever you want to do (obviously you have to factor out bed time), unless you have two jobs or children to raise, I think that's enough time to read at least six good size books. I myself am a book junkie, and I always make time everyday to read, because there are so many things to learn!

Mais assim não da.

<comment><USER11> Not all books are created equal. I'm not the fastest reader, but if I can read a novel in a week or so by just reading 1-2 hours a night. Mathematics texts on the other hand may require as much as 1-2 hours for 1-2 pages (depending on how dense it is). CS texts tend to fall somewhere in the middle for me, but there's a reason that science courses tend to cover half of a book in a semester.

</comment></comment></comment></comment></comment><comment><USER12> My personal favorite still is: Operating Systems Design and Implementation, by Andrew S Tanenbaum.

</comment><comment><USER13> Thanks for all these links and tips. Just starting a course on this myself!

</comment><comment><USER14> Thanks for posting. Their other books look interesting too.

<comment><USER15> Little Book of Semaphores is extremely good.

</comment></comment><comment> Const-me The very first page says "compiled languages are usually limited to static types."

It's good authors of Objective-C or C# didn't get the memo.

<comment><USER16> "usually"...</comment></comment>


Challenger: The shuttle disaster that shook the world - <AUTHOR> http://www.bbc.co.uk/news/magazine-12306318

<comment><USER2> I lived in Florida at the time. It was 6 days after my 9th birthday. I was in 4th grade, and because of our proximity to the cape, the teachers always took classes outside to watch the shuttle launch first hand. I remember the teachers first being confused, but then immediately becoming distraut after realizing something went wrong. They tried to hide their reactions from the kids, but everyone young and old knew that the launch wasn't "normal".

It was a big dose of reality for a 9 year old. Watching the shuttle launches was always a highlight for me, being the little geek that I was. That was the day that the fairy tale of infallible science propaganda ended for me and the reality of failure hit me square in the face. Fortunately, it had a positive effect on me, rather than negative. I recognized that I shouldn't take anyone's word at face value. I should aways seek to learn for myself.

<comment><USER3> I was 7 years old at the time, watching it in my classroom with two other rooms merged into ours. The teachers had different reactions than what you describe - they all started crying. I remember my teacher specifically was inconsolable for awhile.

<comment><USER4> I was in school as well and i think we were given a half day or something. I came home and i think it was on the news and they were showing it and talking about the fact that the astronauts might not have died in the explosion but might have been conscious while they fell to earth.

</comment></comment></comment><comment><USER5> The article only touches on it but I think a lot more has to be said about the young children angle.

What makes the Challenger disaster so relevant even today is many of us were young and had studied this shuttle and its crew for weeks. The plan was for Christa McAuliffe to conduct a class from space. So many teachers (mine included) had their classes study everything about Challenger.

At 7 years old I knew these people's names when that rocket exploded. I knew how many children they had, I knew how many missions they'd flown and so on. I knew more about this crew than I knew about my own parents. And I, along with children around the country, watched them die on live TV.

That has a significant impact on a generation (as you can see from the other comments here from adults who were kids at the time)

</comment><comment><USER6> "Minds are like parachutes. They only function when they are open."

This was the quote by Sir James Dewar that Morton Thiokol engineer Allan MacDonald put in the foreword to his book "Truth, Lies, and O-Rings" -- highly recommended if you enjoy pondering organizational banality and how human decision-making works (and often doesn't).

He goes on to say in the foreword: "I wasn't recommending not launching because of what I knew, but because of what I didn't know."</comment>


New Study Finds That More Attractive Students Have Higher GPAs - <AUTHOR> http://www.businessinsider.com/new-study-finds-that-more-attractive-students-have-higher-gpas-2013-12

<comment><USER2> Original article has much more detail: [http://healthland.time.com/2013/12/10/teachers-give- better-g...](http://healthland.time.com/2013/12/10/teachers-give-better- grades-to-more-attractive-students-study/)</comment>


Ask HN: What do you think about Cringely's TV show on startups? - <AUTHOR>

Link: http://startups.cringely.com/ <comment><USER2> That site needs to be ditched in favor of a simple Wordpress site. It does not get much worse than that. I could barely figure out what the site was or how it worked.

</comment><comment><AUTHOR> Really weird why a nation wide TV show about startups gets so little coverage on a startup news site.</comment>


Why Are Containers So Disruptive to the Data Centre? - <AUTHOR> https://medium.com/microscaling-systems/why-are-containers-so-disruptive-to-the-data-centre-58dad83dda4c#.55d98jfkb <comment><USER2> Duh, lots of APIs scattered randomly across a buzzing article. Yawn...</comment>


Spectrum injects JavaScript into unsecured webpages to show copyright notices - <AUTHOR> https://gist.github.com/jzebedee/7c5000779cd131df2498a3e6d041991c <comment><AUTHOR> I was surprised to find a Spectrum notice tacked onto an unrelated HTTP site this morning. It looks like Spectrum are editing customer traffic to inject a DMCA notice page that loads their own unsecured scripts.

Other ISPs like Comcast have done this in the past[1], but this is the first time I've seen anything like it from Spectrum, who normally keeps their hijacking limited to ad-riddled search pages for failed DNS lookups.

I use HTTPS Everywhere[2] and rarely visit sites delivered over HTTP, so I can't say if this is happening only on unsecured pages or everywhere.

[1] "Comcast injects JavaScript into webpages to show copyright notices to customers" [https://news.ycombinator.com/item?id=10592775](https://news.ycombinator.com/item?id=10592775)

[2] "HTTPS Everywhere" [https://www.eff.org/https- everywhere](https://www.eff.org/https-everywhere)</comment>


Anonymous hackers may be targeting Mars rover, says security firm - mck- http://www.gmanetwork.com/news/story/269564/scitech/technology/anonymous-hackers-may-be-targeting-mars-rover-says-security-firm

<comment><AUTHOR> "A cybersecurity firm claimed to have spotted an Internet relay chat (IRC) message seeking help to hack into the National Aeronautics and Space Administration's Mars Science Laboratory Mission,"

So someone joined the anonops IRC server, sent a message asking for help and a security company bothered to write a report about it. Must have been a slow day.

</comment><comment><USER2> 5 Points to the first person who works out how to DDOS the mars rover.</comment>


Show HN: MoneyCollector, Accept credit card payments on any PHP enabled server - <AUTHOR> http://pay.longren.org/

<comment><AUTHOR> On github: <https://github.com/tlongren/MoneyCollector></comment>


Defects are not the fault of programmers - <AUTHOR> https://buttondown.email/hillelwayne/archive/defects-are-not-the-fault-of-programmers/ <comment><USER2> IMO, if the defect is because some functionality wasn't specified and there's an edge case, that's not the programmer's fault.

OTOH, if the required functionality is documented and it doesn't work, that _is_ the programmer's fault.

> A lot of the nastiest bugs come from components that are all correct in > isolation but interact in a dangerous way. This is called a Feature > Interaction Bug.

IMO, the original programmers of those components are not at fault, but if someone uses those components together and doesn't verify that they're working as desired, that "someone" is at fault.

Sure, stricter discipline won't always help, but sometimes it will. Sometimes, the programmer really is just being lazy.

And I say this as a programmer.

<comment><USER3> If functionality wasn't specified, then it's not a defect, it's working as expected.

<comment><USER4> Some functionality should be common sense to a competent developer, and not have to be specified. As a developer, I'd expect working code to have the following behavior, whether or not it was explicitly written into the spec:

\- If the credit card transaction fails, do not ship the product to the customer, and notify the customer of the failure.

\- Don't let the customer order more items than are available in our inventory, or zero items, or a negative or non-integer number of items.

\- A web-based system should correctly handle multiple concurrent transactions.

\- If something goes wrong, show the user a meaningful error message in their selected language, not a Python stack trace.

If my excuse for my code not doing this was "it wasn't in the spec", I'd expect people to ridicule me.

</comment></comment></comment><comment><USER5> Once you've introduced the concept of "blame" for a situation it's hard to get out of it.

It's unhealthy, IMO. Instead, I prefer to focus forward on what to do next and how to avoid this particular issue again... and simply move on.

<comment><USER6> Well, you can't know how to avoid it until you know how you got into it. Which is one form of "blame" \-- though I would agree it's more productive not to direct it at a _person_ , and instead blame features of the _situation_.

<comment><USER5> You're still putting the concept of "blame" into the water.

Blaming in the context of a situation is called "an excuse", and it's still defensive.

It's pretty nuanced after this though. If folk are defensive when a problem happens ("I don't know how this happened"="it wasn't me"), you have a blame culture.

So how does one figure out what happened without someone jumping on the blame- sword (or run screaming from it)? I haven't quite figured out the answer to that question, but one thing that helps is only ask what happened if it's truly a mystery that must be solved. If it was human error, quietly move on.

</comment></comment></comment><comment><USER7> It seems like it would be a lot easier to say "Bob Martin is not my cup of tea." He's not mine either. I've read a bunch of his stuff. Some good ideas, some I definitely don't agree with. I don't love his writing style.

But you said "explain why we don't like Robert Martin", which to some extent says its a problem with the man himself, not his point of view on software defects. Starting your post that way undermines your conclusion and makes it seem as if you're post-hoc rationalizing your dislike of the mine rather than talking about software methods.

</comment><comment><USER8> It's a mistake to think when something goes wrong there must be a single person (or rule) to blame. If a program does not behave according to spec, then presumably the programmer made a mistake, unless satisfying the spec is impossible. But if the defect made it past qa, then the qa must be imperfect also. And if your programmers and qa team are all a bunch of fuckups, maybe your hiring process is flawed also. And so on.

</comment><comment><USER9> React was invented because anytime developers at Facebook touched code regarding unread messages/notifications, they would introduce a defect. You'd find the error and then fix it, but it was fundamentally a minefield. So, they had to invent a new way of building frontends, and then all those defects went away.

Now, I do tend to believe, that there still is a lot of low-hanging fruit with regards to programmer discipline. Many juniors (and some seniors) just straight up don't pay attention to things, don't check things, don't think things through to their obvious conclusion. You can then try to add policy to try to force them to do these things, like, e.g. you must have 100% coverage on your code, maybe that'll force them to try running their code at least once before merging into master. But then of course that must be a blanket policy for everyone, and you know how the story goes.

</comment><comment><USER10> Defects are the fault of programmers but programmers are pressured to deliver quickly and judged on their ability to deliver quicker than another (in some cases, not all). Given this, the blame can be pushed onto the person setting a timeline if and only if they don't give the programmer enough time to evaluate a solution and implement based off of that evaluation.

If the programmer is given an opportunity to evaluate the scope of the work and allowed to communicate the time they think it will take, then any fault in the resulting work is the fault of the programmer.

What I've seen are programmers unwilling to spend the time necessary to fully understand the work they are doing and managers/sales people/whohaveyou who push for aggressive timelines.

</comment><comment><USER11> > Defects are not the fault of programmers

It's not that it's wrong. It's just really, really unproductive.

Rust language and community capitalized greatly on taking the opposite approach after years of stupid attitude like this present in systems languages community.

BTW. Uncle Bob has his opinions, good for him. They are not much more worth than anyone's else.

</comment><comment><USER12> Well the worst defect I've seen in a while is sitting unnoticed in a program I wrote and was specifically required by the owner after months of argument against it, references to scholarly works showing why it was stupid, explanations for how search engines work etc. etc.

Right now customers are happy, but I expect some time in the next year someone is going to get a big fine because they didn't find the data they were supposed to and didn't realize it, and then they will no longer be happy.

<comment><USER13> I hope you have that in writing.

<comment><USER12> As a matter of fact I do. Although the way things are structured I doubt anyone would come to blame me.

</comment></comment></comment><comment><USER14> I wish more people would understand (and the article alludes to it) that testing is only one of the three general methods to achieve software quality (lack of defects), the other two being:

\- Abstractions - preventing bugs by having a proper language in which to express the ideas

\- Assertions - making sure that certain assumptions are satisfied during the actual execution of the code, AKA defensive programming

And in particular, unit testing is IMHO a rather weak method of testing, compared to property-based or integration testing. There is this famous quote "bad programmers worry about the code, good programmers worry about the data". Similarly, I believe we should spend more time testing the assumptions that we have about data (can this value be 0?) rather than testing the logic of the code under the same and possibly wrong (or unstated) assumptions.

</comment><comment><USER15> Defects are the fault of a lot of factors. The reason our skyscrapers rarely fall down is that there is societal pressure against them falling down. So we create laws that enforce that buildings conform to a set of standards. Some places have more prescriptive standards than others, and the result is that there is less room for creativity by the architects and engineers, but it makes the average case easy to reason about. Some places have performance based standards which come with their own downsides, but the end result is that if a building comes down in a first world country, it's a pretty big deal.

We could do this with software, but the world would look very, very different. We haven't had too many major destructive acts outside of privacy leaks, so there isn't pressure and resulting political will to regulate the industry, so economic pressures dominate what software looks like. Things like CSP headers are a distant, distant afterthought. People can't even keep their OSes, libraries, and runtimes current.

Plus software is harder to reason about than a building. Things can squeeze in or out through the smallest crack and nobody on the planet really knows whats going on in a modern cellphone or self-driving car top to bottom.

That said, I take responsibility for the security holes and bugs I create. There is no other way of being a professional software developer, even if it is hard.

</comment><comment><USER16> Who's fault is it when a Jenga tower is toppled?

Was it the last person to pull a piece out?

Maybe the person before, who barely managed to keep it upright?

Or is the tower doomed to fall by design?

</comment><comment><USER17> The responsibility for bugs and software not behaving as specified falls on the dev. team. This sort of defects is their collective 'fault' or responsibility because even if a single dev. tries to cut corners or is not very thorough there should be internal processes to catch it.

Now, "behaving as specified", well, having clarity on that can often be a big problem. The dev. team does have some responsibility there as well because they should push for clarity instead of trying to interpret on their own. I've seen it many times: spec defines something in vague terms, dev implements it the way (s)he decides to interpret/imagine it without even asking for confirmation.

<comment><USER18> I agree, but only provided that the dev team has the authority to set their own processes for ensuring quality, to refuse inadequate specifications, to refuse timelines that don't leave enough time for ensuring zero defects. Take away any of those things, and they are no longer responsible.

<comment><USER17> The dev team has authority to set internal processes, and in any case nothing prevents it, like nothing prevents a dev from trying to clarify a spec.

Issues can go beyond the dev team of course, but they cannot escape their responsibility.

</comment></comment></comment><comment><USER19> About the hosting site (Buttondown) - does anyone know what "Unlock full access" does?

I liked the post, so I filled out the newsletter signup form with my email. It immediately switched to show a credit card form to "Unlock full access" for $25/month. I was annoyed by this bait-and-switch, only to find that apparently it's all already accessible [1] and I received a confirmation email with a link to subscribe. So now I'm just confused.

[1] [https://buttondown.email/hillelwayne/archive](https://buttondown.email/hillelwayne/archive)

<comment><USER20> Buttondown lets you send emails to just paying subscribers of the newsletter, kinda like substack. I was playing around with the config and didn't realize it would ask people to pay! I am very dumb.

Anyway, I disabled it. There is no paying-subscriber-only content and I don't plan to offer any in the near future. Sorry about that!

There's some archive posts[1] that are only for newsletter subscribers. Those are usually first drafts of blog posts I'm writing and don't want to be shareable yet. But that's just a newsletter subscription and totally free.

[1] [https://buttondown.email/hillelwayne/archive](https://buttondown.email/hillelwayne/archive)

</comment></comment><comment><USER21> No, the defects are the fault of language designers.

<comment><USER22> I can write you a defect in any language.

</comment></comment><comment><USER23> > "Defects are the fault of programmers" may sound good, but it does nothing > to help us fix defects.

The utility you gain by believing or disbelieving a statement has no bearing on its truthfulness.

<comment> tom-thistime That might or might not be accurate, but I still care about utility. There are a lot of truths that don't have any utility for me. I celebrate not knowing most of those truths.

I mean do you want to be on this call? ... A: "One point seven million dung beetles can fit in my suitcase." B: "Let's get back to work." A: "Utility has no bearing on truthfulness."

<comment><USER23> I do not want to be on that call. However, if following this exchange, person B goes on to write a blog post titled "One point seven million dung beetles CAN NOT fit in my suitcase" and justifies this claim by saying that knowing how many dung beetles fit in a suitcase is not a useful thing to know, then despite how right they are about the utility, their conclusion is wrong.

<comment> tom-thistime Sure. They should claim "it doesn't matter," not "it's false." By the end of the article I felt the author said something like "substitute more design space and dev activity for blame analysis."</comment></comment></comment></comment>


The Evolution of Lisp (1993) [pdf] - <AUTHOR> https://www.dreamsongs.com/Files/HOPL2-Uncut.pdf <comment><USER2> Off-topic, just had this (micro)-epiphany that I wanted to share:

It is well-known that a majority of programmers dread mathematics beyond something basic like high-school math, sometimes even less.

What these programmers don't know is that a significant fraction of mathematicians (probably majority of them) who haven't been involved with programming, computers, computer algebra systems etc, have a similar dread about programming, in addition to the envy of programmers getting paid at much better rates.

It's also said by many, though without universal consensus, that programming is more rigorous than mathematics (here 'rigor' means mathematical rigor, nothing to do with everyday usage of the term).

When you start as a math major after high school, you take computational classes like calculus and linear algebra. Then you move on to theoretical stuff and "high mathematics" like real analysis and abstract algebra. Then, at an even more advanced level, you get into logic and foundations of mathematics, and at some point you get familiarized with the concept of constructive mathematics.

What I just realized is that programmers are essentially doing constructive mathematics (as well as logic, to a fair degree) all along, without realizing it, the moment they start coding!!! and yet the same programmers dread mathematics. That is funny (although not to say it makes it any easier for those programmers to learn all the rest of mathematics; IMO mathematics is still harder than programming as a discipline).

I think this is one example of many, I've found over the years but can't recall of the top of my head, where an expert of a given discipline is so encumbered by the "underlying machinery" of their field, that they fail to see that once they reach a higher level of abstraction, it sometimes becomes easier, rather than harder, if you forget about the details while working at that level, or you hadn't gone through the harder path to get there.

Another example being electrical engineers toiling through the difficult issues of power electronics, analog and digital design, computer architectures, instructions sets, only to find out that computer science people, who don't know all these things, have a much easier time working at the assembly language level, and those who don't even know assembly-language either, have no problem just sticking to a higher level language like ruby, javascript, and not worrying about or even aware of how the whole machinery works.

<comment><USER3> I doubt any of the "many" people that say that programming is more mathematically rigorous than mathematics are mathematicians. For mathematicians rigor is about proof and they would never say that a discipline that usually does not involve writing proofs is more rigorous than mathematics.

Maybe these people mean that formally verified programming is more rigorous than mathematics. That seems reasonable, but it is a tiny part of programming, isn't it?

(Computer science, on the other hand, particularly the subfield affectionately called "theory", is typically mathematically rigorous.)

<comment><USER2> What I said is along the lines of 'every program is a proof' and what people like Philip Wadler say that we should treat propositions (essentially theorems) as types and programs as proofs.

Now, where the mathematicians disagree-with/dislike such an idea has something to do with the question "If a program is a proof, what is the theorem?".

Since we can have buggy programs, the norm rather than the exception, in my opinion the program is still a proof, just not for the theorem the programmer had in mind.

When I say programming is more mathematically rigorous, what I mean is that a computer is way more precise at going through the program (a sequence of statements in a formally specified language) than a human-mathematician is at going through a proof (again a sequence of a statements in a formally specified langauge). In fact a computer never makes a mistake (unless there is a bug in the hardware or the compiler, i.e., something treated as an impossibility while programming). The mistakes are still at the human end (creating a proof/program for the wrong theorem/spec).

A second, very strong, argument in favor of programming being more mathematically rigorous than mathematics: increasing reliance on computers for proof checking and assistance (not even including multi-terabyte proofs that would be impossible without a computer).

<comment><USER4> It doesn't really mean much, though, if the working program (proof) corresponds to a theorem like "Given an Int, I can turn it into some other kind of Int", or "Given some sort of String, it's possible to turn it into a Boolean", or "Given an arbitrary input, I can yield some sort of arbitrary output". Those theorems are rather pointless. That's what most programs "as proofs" are like, where the value in them is in the side effects rather than their types. Now, when dependent types become more of a thing in the industry, maybe we can argue that our programs are getting more rigorous.

</comment></comment></comment></comment><comment><USER5> This appears to be an attack file.

Objects with Javascript code (34): [10, 16, 18, 22, 26, 30, 38, 44, 50, 56, 64, 70, 88, 94, 98, 120, 126, 132, 136, 138, 144, 161, 165, 167, 169, 174, 176, 180, 182, 184, 192, 214, 221, 225]

Recommend pdftops!

<comment><USER6> someone please elaborate on this.

</comment></comment><comment><USER7> Is this current, or can we get a (date) on this?

<comment><USER8> Published in 1993

<comment><USER9> Ok, added. Thanks all.</comment></comment></comment>


Is there a dark side to happiness?   - <AUTHOR> http://www.bakadesuyo.com/is-there-a-dark-side-to-happiness

<comment><USER2> For me, the dark side of happiness (or rather contentment) is that I don't grow or develop or achieve much of anything. If I have good friends and a stable romantic relationship, the 9-to-5 looks pretty good.

When I'm sad and lonely and it seems that everyone else in the world is doing better than I am, achieving their goals and leaving me behind, that's when I feel compelled to go work out and build things.</comment>


Kogi Korean BBQ, a taco truck brought to you by Twitter - <AUTHOR> http://www.latimes.com/features/printedition/food/la-fo-kogi11-2009feb11,0,3007869.story

<comment><USER2> <http://twitter.com/kogibbq>

</comment><comment><USER3> Since when was having a Twitter account considered tech-savvy?

<comment><USER4> I think using a Twitter account to generate what amounts to a flashmob of customers for your mobile restaurant could be considered a tech-savvy business maneuver. I've driven by @kogibbq when it was in full swing, and the crowds are big.</comment></comment>


OS X Lion: Change Login Screen's Dirty Linen (How-to) - <AUTHOR> http://www.macobserver.com/tmo/article/os_x_lion_change_login_screens_dirty_linen/ <comment><USER2> Interesting requirements:

        1. Must be a PNG
        2. Must be the same resolution as login screen
        3. Must be 72 ppi/dpi

What happens if one or more of these requirements is violated? No background image? Revert to linen? Solid color?</comment>


Free CTO School by New York Tech Community and NextNY - <AUTHOR> http://nextny.org/CTO-School-F2010

<comment><AUTHOR> If I may quote from the email I got that references these classes:

"I see a lot of tech teams of 1 or 2 people where the lead dev is called the CTO... It's their first time in that role, they've never managed anyone, never scaled an app before... but they _could_ grow into that role and become really successful. Every great CTO started out somewhere, which is why Jean Barmash and I have put together CTO School starting this Monday. We have some great speakers on the way, starting with Jean and Knewton CTO Pete Miron on Monday, and we're looking forward to packing the room with every first time CTO in NYC."

</comment><comment><USER2> I am nowhere close to being even an architect, forget a CTO but I'd love to know if this is being streamed online. It'd be a very nice lesson for anyone who might end up wearing different hats sometime in the near future.

</comment><comment><USER3> Will the classes be put online at some point?

<comment><USER4> I am one of the guys running it. If somebody volunteers to record, we'd love that; we've been spending all of our bandwidth on curriculum / getting good speakers.

<comment><USER5> Perhaps you should fix the typo in the who is this for section: "You are the technology guy responsible for the product, whether your title is Lead Developer, CTO, or VP Engineering, or "The technical guy"."

I think y'all meant technology person ;)

</comment></comment></comment><comment><USER6> Signed up for all of them.

All the courses are from 6:30pm - 8:30pm so they shouldn't get in the way of other stuff you are doing.

There are 5 free courses being offered, 4 of which are on mondays and 1 of which is on a wednesday.

</comment><comment><USER7> This is a fantastic idea!

I hope they are able to put the classes online after the sessions.

</comment><comment><USER8> Decided I'd come from Baltimore, it's a reasonable excuse to visit NYC.

</comment><comment><USER9> The same form 5 times was fun

Other than that pretty pumped.

</comment><comment><USER10> I'm in for the first one...Seems like it could be interesting.

</comment><comment><USER11> Sounds like fun. Signed up. See all you New Yorkers there.

</comment><comment><USER12> this is exactly what i need right now. see you all there!</comment>


Anonymous Pro: a programming font with style - <AUTHOR> http://hivelogic.com/articles/anonymous-pro-programming-monospace-font

<comment><USER2> This is by far my favorite programming font and has been for years now.</comment>


The NSA cracked the Kryptos sculpture years before the CIA (2013) - <AUTHOR> http://www.wired.co.uk/news/archive/2013-07/11/nsa-solved-kryptos <comment><USER2> I feel like this headline is misleading. They've solved the first three parts, but not the last. I was really hoping that this article was going to say something about progress on the last section, commonly called K4.

If anybody is interested in Kryptos, I highly recommend Elonka Dunin's page: [http://www.elonka.com/kryptos/](http://www.elonka.com/kryptos/)

<comment><USER3> They might have solved K4 but the method used might be extremely classified, for example if it is AES-256 encrypted and they solved it, yeah, mass panic.

</comment></comment><comment><USER4> The _CIA Fine Arts Commission_?

Is there an _FBI Jazz and Bebop Directorate_?

<comment><USER5> There have been a number of good HN threads (sorry I don't have links) on the CIA's history of promoting arts and letters—often by artists and writers who became distinguished later, indicating rather good taste at the CIA.

<comment><USER6> Or perhaps indicating that the CIA knows how to make an artist famous without it being traced back to them.

</comment></comment></comment><comment><USER7> Does anyone know precisely what is at the location of the coordinates?

First thing I thought to do, as soon as I saw that 4th puzzle was unsolved, was to look at a map of the coordinates:

[https://www.google.com/maps/place/38%C2%B057'06.5%22N+77%C2%...](https://email@example.com,-77.1458225,84m/data=!3m1!1e3!4m2!3m1!1s0x0:0x0)

Looks like it's a place on a sidewalk on the premises, so perhaps it's where a clue exists that makes it possible to solve K4?

<comment><USER8> It's in a courtyard inside the Langley headquarters.

<comment><USER7> Thanks for the reply. I was thinking more along the lines of high-resolution images of what is on the sidewalk at precisely those coordinates, or in the vicinity of those coordinates. Or if anyone on HN reading this thread has actually been there to see first-hand what's at those coordinates.

<comment><USER8> I have been there. It's a tall rusty sculpture in a courtyard well inside Langley HQ. The only odd thing I noticed is that some letters are over or below the line. Can't take pictures or rubbings so not much else to report.

</comment></comment></comment></comment><comment><USER9> Superb example of inter-agency knowledge sharing and co-operation. So hopefully Iranian intelligence officers can work out how to have multiple handlers and multiple income streams and - cha-Ching!

/ bad mood /

</comment><comment><USER10> Was half-expecting the story to say that the NSA just went to their tape database and re-listened to all phone calls made between Sanborn (sculptor) and Scheidt (CIA crypto resource).

</comment><comment><USER11> This is what citizens' tax dollars pay for. How nice that public funds can so easily be used to pay people to do nothing.

<comment><USER12> I, for one, would prefer to have my tax dollars spent commissioning statues and other art, rather than buying bombs or weaponry of any sort.

<comment><USER13> False dichotomy.

<comment><USER14> What about if we bomb other countries with our art....

<comment><USER12> High-speed photography of explosions can be considered art. My point appears moot.</comment></comment></comment></comment></comment>


Apple tweaked iPhones to lessen strain on AT&T network - report - <AUTHOR> http://www.appleinsider.com/articles/10/03/30/apple_tweaked_iphones_to_lessen_strain_on_att_network.html <comment><USER2> _John Donovan said he and other executives flew to Apple's Cupertino, Calif., campus to give the handset maker a "crash course in wireless networking."_

The prospect of nitty gritty communications issues being communicated by executives is possibly frightening, but I suppose a CTO could be briefed up on the issues.

The issues they mention, e.g. message querying, sound more like a "we don't do this particular operation very well right now, please stop hurting us" talk. These can be fantastically productive. Back in the '90s I was with a group that got one of these from Sybase. (They called it a talk on optimization.) The presenter knew their products warts inside and out, started us down the road with the big, common ones, then worked with us on our specifics. No where in the printed documentation would you find this knowledge, but once you had it passed to you orally you could dramatically improve performance. I have never seen a project benefit more from a half day meeting.

</comment><comment><USER3> The balance of power ought to be tilted towards Apple in this situation right? I mean, I've never met anyone who owns an iPhone and actually _likes_ AT&T. So I'm a bit surprised to see Apple doing work on their end to make the iPhone less network-heavy, rather than demanding that AT&T moves faster to upgrade their network. Am I missing something? Does AT&T actually have any negotiating power with Apple?

<comment><USER4> I have an iPhone and I like AT&T provided that I'm in a city with good coverage. I feel like they've done a decent job in LA and they're improving constantly (faster and faster 3g it seems), and they're about on par if not better than the service I get from Verizon. I don't know that many iPhone users in LA that are angry at AT&T. Only if they can't get service in their homes, or if there's some major outage...happens occasionally, but not enough to be a serious bother.

That being said, I go up to San Francisco like once a month, and up there my calls exceeding 1 minute drop at an alarming near-100% rate, my text messages are delayed, half my phone calls can't even be received, location services never works because data never works, and if I can't even get GPRS, there goes all my email and more. It's a complete wreck and I can totally understand the AT&T griping then.

Part of me thinks that Apple is caving in here to AT&T's requests because the level of service AT&T is providing is hurting Apple because a lot of people are refusing to buy or are no longer buying iPhones because of AT&T. Also because for AT&T to upgrade their network, it will take time, and these little changes can make a big difference while we're waiting for these upgrades to happen (now, whether or not AT&T is actually upgrading their network is a different question....).

Lastly, I feel that this kind of situation is one that any carrier would have run into if they had a phone like the iPhone available on their network. It's not just any smartphone, it's a smartphone that changes the usage habits of the users, and changing the user experience of what these users are looking at...no wonder we're all using more data. It would be a strain on any network.

</comment></comment><comment><USER5> The main differences I've noticed in recent weeks: (1) the presence of 4-5 bars of signal strength is no indicator of whether a call is possible or stable; (2) wild swings of connectivity even without changing position; (3) the presence of the '3G' icon and bars is no indicator of whether a data connection is possible.

That is, it's gotten worse -- less reliable, and the indicators of service have become less connected to the actual level of service available. (This is in San Francisco.)</comment>


Android Apprenticeship - <AUTHOR> http://blog.bloc.io/2014/02/worlds-first-android-apprenticeship/?utm_campaign=androidlaunch&utm_source=HN&utm_medium=web <comment><USER2> Seriously, creating an "Instragram" or a "Twitter" following this tutorial [http://developer.android.com/training/basics/firstapp/index....](http://developer.android.com/training/basics/firstapp/index.html) is very easy if you know how to code, I wouldn't spend $5,000 on that, but if you don't know how to code the I would spend those $5k in learning how to code in a different platform since beginning with mobile apps it's no easy stuff.

</comment><comment><USER3> I don't know if it's fair to call a paid education an "apprenticeship."

</comment><comment><USER4> It looks to me like you only get 3 hours of (admittedly 1-on-1) instruction per week for 12 weeks. That doesn't seem like much for $3500/$5000.

Compare that to Make Games With Us [0], which teaches you how to make iOS games in Objective-C and Cocos2D, gives classes 9-5 x 5 days a week for 8 weeks, for $5000.

[0] [https://www.makegameswith.us/summer- academy/](https://www.makegameswith.us/summer-academy/)

<comment><AUTHOR> that's actually just the _minimum_ amount of time you're REQUIRED to spend :-)

Most students do more.

<comment><USER4> Ok, thanks for clarifying that.

</comment></comment></comment><comment><USER5> FYI, Coursera is offering a free alternative. No one-on-one, but an active student community on the course. [https://class.coursera.org/android-001](https://class.coursera.org/android-001)

</comment><comment><USER6> The biggest hurdle in learning Android programming isn't the platform or the Java language, is that stupid, stupid Eclipse.

<comment><USER7> Eclipse should no longer be a valid complaint.

I started Android dev using with Eclipse. Moving to Android Studio made everything much, much smoother (except for builds, which take slightly longer now).

Android Studio is much better for showing views in multiple form factors.

Another important step, using an Atom Based image + Intel Hardware Acceleration Module ([http://software.intel.com/en- us/android/articles/installatio...](http://software.intel.com/en- us/android/articles/installation-instructions-for-intel-hardware-accelerated- execution-manager-mac-os-x)).

This reduces load time from about 2+ minutes to 15 seconds and similarly makes debugging apps much, much smoother.

Things that still bother me (as a converted iOS developer):

      * Java's lack of anonymous functions (blocks in iOS)
      * having to design for many more form factors
      * no standard core data function
      * not being able to ignore Android 2.* market share (seriously, this lacks even a simple Action Bar)
      * managing 4+ pixel densities for assets

<comment><USER8> Haven't tried it myself yet but the latest Support Library includes a supposedly full-featured ActionBar. That would make it suck much less. Just in time for 2.x to start fading away.

</comment></comment></comment><comment><USER9> Android before iOS...interesting.</comment>