AppGratis pulled from the App Store. Here's the full story - <AUTHOR> http://appgratis.com/blog/2013/04/09/appgratis-pulled-from-the-app-store-heres-the-full-story/ <comment><USER4> Detailed post, but it doesn't seem to address two things.

1\. The WSJ report noted that Apple was concerned that " AppGratis was pushing a business model that appeared to favor developers with the financial means to pay for exposure." Simon hasn't addressed this point. Do they make paid recommendations ?

If they do make app-recommendations based on payments, it makes a lot of sense for Apple to ban them. As an iOS (and Android) developer, I personally think that paid-recommendations are bad for the ecosystem (though I'm sure that some giant shops paying for recommendations may disagree). At the least, I think users of AppGratis should be told if the recommendations are "paid for".

2\. Simon's discussion of rule 5.6 doesn't really address the problem. Rule 5.6 says "Apps cannot use Push Notifications to send advertising, promotions, or direct marketing of any kind."

Simon counters by saying that they only send one notification per day and that users opt-in. However, neither claim refutes the fact that they''re violating rule 5.6. All iOS push-notifications are opt-in anyway. Rule 5.6 says 'no advertisement , no promotions,.... no direct marketing'. It doesn't make exceptions for apps that only send one notification per day. Now Simon could argue that Rule 5.6 is bad for the user and that push-notification- advertisements/promotions are good. That may be a debatable point. However, it is clear that his claims do nothing to counter the fact that AppGratis violates Rule 5.6 (as it is written)

<comment><USER5> Pay for exposure already exists within the app store. Large companies pay around $10-$20K a day depending on the category on crap ad networks (won't name them) that incentivize the users to download the companies app in order to "get to the next level" or something like that. The downloads are incredibly cheap and you get thousands and thousands of them. The app store ranking is almost entirely based on download velocity, so your ranking goes up. Once you get in the top 12ish the organic downloads start pouring in just from being near the top. The value per user of those organic users is so high that it more than off sets the cost for the crap/incentivized downloads. Almost everyone who can do this, does this.

<comment><USER6> Facebook just recently started doing this as well. You can now pay to get your app promoted in people's news feed.

<comment><AUTHOR> Completely different to AppGratis. Facebook allows you to target (based on gender, location, likes, workplace) and advertise your app. Users have no incentive to DL your app and actually have a need for your product.

I've had a lot of success on FB mobile install ads.

<comment><USER7> Mind if I drop you an email regarding FB mobile install ads? Have been experimenting with it, but not much success. Want to pick up a few tips.

</comment></comment></comment></comment></comment><comment><USER8> I will save HN the time:

"I can't believe that it's 2013 and people are still basing their entire company around the App Store with it's murky rules"

"But there's a lot of money to be made there, it's worth it!"

"Apple needs to change their procedures"

They're all true. Basing a business around an app is both risky and potentially very profitable. Apple should change their practises but have little incentive to. So, for now, I can just express sympathy- this situation _sucks_.

<comment><USER9> I've been recommending Android for a while, and here is another concrete reason why. Every time one of these stories appears I write the following: I develop for iPhone and I used to love OS X. The iPhone in entirety and OS X lately are aimed directly at people who don't know how to use computers even if it comes at the expense of those who do. Everyone do yourself a favor and switch to Linux on your computing platforms.

Regarding the OP; I hope the blog post kicks up enough noise that they allow the app again. Having a large public outcry is the only way to get Apple to do anything other than sue Samsung in attempt to prevent them from innovating faster.

<comment><USER10>
      > are aimed directly at people who don't know how to use
      > computers

What does it even mean? iPhone and OS X are aimed at people who want to use their computers, instead of getting CS degree. I've heard that majority of cars in US are with automatic transmissions and few people know how to drive "stick". Are there voices suggesting that auto manufacturers are aiming their products at people who don't know how to drive a car?

<comment><USER11> For the most part, yes, though it depends on your definition of "drive".

If you base your definition of "drive" as "being able to do the most basic of tasks", then sure, most everyone can drive a car. However, if you're an auto enthusiast, then to you being able to "drive" takes on a whole new definition; can you J-turn? How about drift? Can you jumpstart a car with a dead battery by push-starting? Can you correct your trajectory after losing control? To the hardcore drivers, these are the types of skills that will prove whether or not you can really "drive".

<comment><USER12> Just as with computers, I'd wager most people don't give a crap. Most people use cars to get from one place to another. Hauling groceries, kids & whatever else. Most people use computers to check email, Facebook, pay bills, write letters and play a couple of casual games. In both cases, there are users and there are enthusiasts.

<comment><USER13> Sure, most people don't care about what the car can or can't do most of the time. Many new cars do not allow unlicensed people to repair the car. You need a signed key to do changes to the car, repair it, or adjust the engine.

In the end, most people will get the normal use out of their car. It might be a bit more expensive and inconvenient, but in the end it will be just enthusiasts that actually care about being able to install custom parts on the car, or adjust the engine, or for that matter do repairs themselves.

</comment></comment></comment></comment></comment></comment><comment><USER14> I have zero sympathy for Simon.

AppGratis business model is dirty at its core because basically it's just a way for developers with cash to splash to have a big burst of downloads to help them climb the App Store Rank and get "organic download".

An even dumber thing is to bet everything its iOS app when you saw that a far superior product from one of your competitor was banned from the App Store 4 months ago (App Shopper) . I hope that the App Shoper banned at least made you think about the possibility that could await AppGratis and took preemptive measure. But No, instead you build an iPad app...

Now you come crying to the public in hope that a significant public outburst will make Apple changes his mind and reintegrate AppGratis in the store, I hope Apple stands firm on its decision.

I'm in no way an Apple fanboy or whatever, from a business point of view it make no sense. You knew the rules, you got burned and now you cry.

The only sympathy I have is toward AppGratis' 45 employees.

<comment><USER15> Oh come on. It's certainly "dirty" to push your app up the charts with fake downloads from bots, but this is just advertising. There are much worse things happening in the world... and in the App Store.

Plus however you might feel about apps like this, the much larger issue is that Apple is now pulling apps it doesn't like. While it's of course within their rights, this really shouldn't be just happening like this. With over 400 million or so iOS devices out there, even if it's no monopoly, there should be some regulation to prevent Apple from screwing around like this. There is a difference between rejecting apps based on an intransparent process and pulling apps afterwards because they don't fit with your business model.

<comment><USER16> I would agree, that if Apple had somehow managed to obtain a monopolistic position in mobile, such that people didn't have any real alternative to their platform, and they had to chose iOS if they wanted a smart phone, that it might be reasonable to put some restrictions on what they enforced people to do with their ecosystem. With monopoly market power, comes greater responsibilities (at least in the United States - but similar legal theories exist in other countries).

But, I think we can all agree, that Apple does not have a monopoly on the mobile platform, and, there is in fact at least one reasonable alternative (Android) - Some might go so far as to suggest that Microsoft's "Windows Phone" platform, and, for that matter, even Blackberry could be considered reasonable alternatives to the iOS platform.

And, regardless, 5.6 is pretty clear, ""Apps cannot use Push Notifications to send advertising, promotions, or direct marketing of any kind."" - <USER2> anything, Apple has simply failed to chase down all of the other apps that are doing this.

</comment></comment></comment><comment><USER17> I don't feel like the larger issue was addressed by the CEO in the post and Apple seems to be avoiding it as well.

According to the AllThingsD article [1],

"But sources close to the company [Apple] say it was more than a little troubled that AppGratis was pushing a business model that appeared to favor developers with the financial means to pay for exposure. ... In other words, app-discovery platforms built on paid recommendations aren't going to fly with Apple."

If this is their business model and this is really the issue, then it needs to be directly addressed by both sides.

[1][http://allthingsd.com/20130408/confirmed-apple-kicks- appgrat...](http://allthingsd.com/20130408/confirmed-apple-kicks-appgratis- out-of-the-store-for-being-too-pushy/)

<comment><USER18> This is an interesting point. Just curious why did the AllThingsD article cross out: "In other words, app-discovery platforms are fine as long as they're not built on paid recommendations." and replace it with "In other words, app-discovery platforms built on paid recommendations aren't going to fly with Apple."

<comment><USER17> My guess is that app-discovery platforms could also not be allowed for reasons other than "built on paid recommendations"

</comment></comment></comment><comment><AUTHOR> I hate the idea of AppGratis and I'm glad its been removed.

Who really benefits? The cheap user who will not normally pay for a high quality app? The app developer who spends $$ to get featured in AppGratis to then artificially climb the app store ranking?

Dls are one of the worst vanity metrics out there. Devs should focus on building high quality products, monetize, then acquire quality users in a sustainable manner.

<comment><USER19> The problem is low quality software and no trials. I can't tell you how many times I've seen an app, paid $2.99 for it and then found out it was garbage.

<comment><USER20> Dunno why Apple doesn't do as Google does (at least did when I had a Droid, pre-Play store), where you had 24 hours to get a refund, presumably with some sort of fraud trigger if you request too many refunds.

<comment><USER21> I believe that is down to 15 minutes now.

<comment><USER22> 10 iirc, which is outrageous. Download a game with enough content which takes more than 10 minutes just to find out it sucks ass.

</comment></comment></comment></comment></comment><comment><USER23> AppGratis is a pay-to-play platform. About $20k per app. If you watch the performance of one such AppGratis recommended app, Recorder Pro. The $20k couldnt even keep them in the top-50 in the biz category for a month. Seems a waste of dev mkting $$$ imo.

Simon should stop whining and just shift to Android. God knows it needs curation. The amount of filth in goog play is unbelievable.

<comment><USER24> There are a few ways you can work with AppGratis, but 20k per app is no where near close. They're good people to work with and as an advertising medium for a small shop are _excellent_ value compared to running ads elsewhere.

</comment></comment><comment><USER25> This shouldn't have come as that much of a surprise, given that AppShopper was pulled last December.

[http://thenextweb.com/apple/2012/12/18/apple-removes- popular...](http://thenextweb.com/apple/2012/12/18/apple-removes-popular- appshopper-app-from-sale-as-it-falls-afoul-of-app-stores-new-app-promotion- clause/)

That was also a very useful app that provided real functionality that is missing from the Apple Store, like price history and price sale alerts. But Apple doesn't want to make it easier to figure out if you should wait to buy an app. Good for Apple, bad for users.

</comment><comment><USER26> I cannot understand why the developer would be surprised, since guideline 2.25 explicitly warns not to create an app whose purpose is to promote others' apps in a similar fashion to the app store?

Did they not stop to consider this could be a problem for even a second?

<comment><USER27> According to the article they had contact with Apple over this guideline, and successfully argued their service was satisfactorily different. They also claim they had a version accepted between that conversation and this takedown.

</comment></comment><comment><USER28> Apple needs to fix this process or they WILL lose developers.

I have no problem with simple humans making a decision to list an app in the App Store according to subjective guidelines. It helps get through a lot of submissions fast.

But delisting an app should involve a serious review process involving several levels of people on both sides.

And the depth of the review process should directly correlate to the number of installs and the time the app has been in the store.

This means that something like AppGratis has at least an assurance that their 45 staff wont be out of a job simply because they got someone in a bad mood.

The whole "no sympathy" bullshit is talk from people with nothing better to do that shit upon a fellow HN reader.

Imagine if Apple decided to pull Zynga's apps because they use notifications to promote themselves. There goes a public company up in smoke. The FTC will surely have something to say about that.

<comment><USER29> It still blows my mind that you can't pay $X,000-$XX,000 a year to get into a different line at Apple and get some damn feedback. Companies are investing hundreds of thousands of dollars a month building iOS apps, and they get the same treatment as a guy making an alarm clock app one Saturday morning. And I say that as a former alarm clock app sideproject maker and now professional app developer.

<comment><USER30> but this would ruin the closest we have to a perfect competition

</comment></comment></comment><comment><USER31> The really annoying thing is not that these rules are selectively enforced or that they are bullshit to begin with. The really annoying thing is that you could have a business that is legit under today's rules and that next week Apple will update their terms-of-service and that the week after you will be out of business.

AppGratis was doing a-ok under the 'old' rules and with the 'new' rules under the previous reviewers. Suddenly they're dead in the water because the 'new' rules forbid some behaviour (which given the apps popularity serves a need both on the consumer side and on the business end) which you may actually get a pass on during a review, and which then gets turned around a few weeks later.

If you're currently a successful vendor of _any_ app in the appstore you may want to look carefully at what your 'plan B' is, just in case.

</comment><comment><USER32> Do not write for iOS.

If you write for iOS, you are sharecropping. Your income exists at the sole discretion of an entity that has more power than you and very little incentive not to misuse it. Further, your income is _more_ , not less at risk, if you are successful. If you lose, it's your loss. If you win, they take your niche, call you a plagiarist and kick you out with nothing. And if you are just puttering along, that's no guarantee you won't be sideswiped by a strategic or bureaucratic decision you can neither anticipate nor control.

<comment><USER33> People should keep developing for iOS, they should just fully understand that point and have other markets and a contingency if it does happen.

</comment></comment><comment><USER34> It's all fun and games until an American technology company leverages their market share and business model to decimate a European technology company. A couple more of these and the EU will start dragging them in front of committees with little need to be concerned about a backlash.

</comment><comment><USER35> Regardless of if you are in the "It's Apple's store, they can do what they want" camp or the "Apple should not be allowed to have this level of control" camp I think we can all agree that it's not good when one single entity holds this amount of power over arguably one the world's most important computing platforms.

Essentially, Apple can block any app they want for any reason they want. Even if you play by their rules they can change them tomorrow.

While I'm a free market supporter I don't think this is a good situation. It breaks innovation and makes our smartphones less capable than they should be. Sad.

<comment><USER10> Go and innovate on Android, what's the problem. Or make your own platform and innovate there. Or use HTML5. What makes me sad is constant whining about stuff like this.

<comment><USER35> Well the problem is, as I mentioned in my comment that the owner of the world's biggest computing platform can shut down a 45 person company without even giving a hint of warning or telling them what needs to be changed. I think even you can agree that's not a good thing for us developers, no?

Also, if I build an Android only app I limit my audience. It's like saying I should create a website only for Firefox in 2005 when IE was dominating.

But to your point, I as a developer will absolutely shy away from the iOS platform after reading this and I hope others will until they change their policies.

<comment><USER36> > Well the problem is, as I mentioned in my comment that the owner of the > world's biggest computing platform can shut down a 45 person company without > even giving a hint of warning or telling them what needs to be changed. I > think even you can agree that's not a good thing for us developers, no?

That's what happens when you put all your eggs in one basket. If you make pre- prepared food for a grocery store chain and they suddenly decide to stop selling your products (for whatever reason, justified or capricious), you're going to be in deep trouble. How many small companies get >75% of their revenue from just one client?

It's a risk/reward tradeoff to hitch your wagon to someone else; they just got a large dose of the "risk" portion.

<comment><USER35> It's interesting how many people are coming out and saying this. It's like they want to be that little company that wants to make >75% of their revenue from one single company.

The point I'm trying to make is that for us developers iOS is one of the most important computing platforms. All else being equal we would benefit from it being more open. The more consumers you can reach with your products, the better.

Now if you want to do mobile apps you have to take huge bet when addressing 50% of the market. I think we should be working on fixing that situation sooner than later.

</comment></comment></comment></comment></comment><comment><USER37> A former colleague of mine had a series of "cheat" apps which included answers to popular games on the app store. He started to see his apps pulled on Sunday. It could be a coincidence, but he had upwards of a million active users and never had an issue before either. Maybe Apple decided it was time to crack down on some of the rules they hadn't been enforcing.

<comment><USER38> Sounds more like there's been employee turnover in the AppStore review team and the new guys are re-interpreting the rules.

</comment></comment><comment><USER39> Is it really that simple to raise 12 million dollars of funding - for a company which can be destroyed pretty much overnight by Apple. Do the investors not think about this? The world really has gone mad.

<comment><USER40> It's a risk-benefit analysis. For investors it's a lot more reasonable than for founders and early employees, as investors usually can diversify. That is, if you invest in ten startups, nine goes bust, and one gives you 30x returns, you're net ahead.

</comment></comment><comment><USER41> Not the way to do it, Apple.

But this is an amazing way to deal with the situation. He's frank, honest and comes off looking like he's got the situation under control. Marketing types should bookmark this for future reference - great way to address a situation.

</comment><comment><USER42> My heart goes out to those 45 employees that suddenly had the carpet pulled from under them. Double so if they have a family to support.

<comment><USER43> Their company didn't go out of business. He even states so fairly clearly in the article.

He runs a marketing company. I'm fairly certain marketing can still operate successfully using "old" technologies like Email, Twitter and the Web.

<comment><USER42> They're not out, but their main cashflow item is now removed. I'm 100% certain there's some cloud of doubt around the company morale. It can't be an easy thing to ride out.

</comment></comment></comment><comment><USER18> Amazing how drastically things can change in a couple months. This is an interview with the founder two months ago, [http://www.forbes.com/sites/parmyolson/2013/02/18/5-minutes-...](http://www.forbes.com/sites/parmyolson/2013/02/18/5-minutes- with-the-founder-of-global-app-curation-hit-appgratis/)

"We see so much growth that we'll be past 100 million users in the next two years. There's such a huge shift from desktop to mobile that the potential for growth is unlimited."

</comment><comment><USER44> You say your competitors are a-ok but the appshopper app was pulled months ago for similar reasons.

</comment><comment><USER45> This is a little confusing to me; if the issue is the push notification why don't they simple stop doing the push notification? Or is it already too late for that?

EDIT: The All Things D article sheds more light on what might really be going on here: [http://allthingsd.com/20130408/confirmed-apple-kicks- appgrat...](http://allthingsd.com/20130408/confirmed-apple-kicks-appgratis- out-of-the-store-for-being-too-pushy/)

<comment><USER46> I believe the issue has less to do with that than with capricious enforcement of rules, and little in the way of recourse for the victims of such.

If there were a formal review procedure with rules for when an app gets notified about scheduled future actions (and when those can be superseded when needed), as well as a procedure for fixing problems before negative actions (if there is it sure doesn't seem it's followed), then we would see less of these stories.

</comment></comment><comment><USER47> The lesson here to me is simple. If you do not have an email address, you have not 'acquired' a user. If they had email addresses, they could have focused on sending out emails while trying to seek other platforms to develop for.

As for the people offended about AppGratis' business model. Can you explain the difference between it and Groupon? Or any super bowl ad? It is wrong for someone to have money to promote their apps?

<comment><USER48> i'm not offended by AppGratis' business model but i am offended by the notion that Apple are in the wrong for cracking down on paid installs. AppGratis can do whatever they want but they shouldn't expect Apple's support

<comment><USER49> agreed, it's Tapjoy's story repeating again [http://www.tuaw.com/2011/04/19/apple-banning-pay-per- install...](http://www.tuaw.com/2011/04/19/apple-banning-pay-per-install..).

ok, Appgratis was "curating" the apps, and their reviews were quite funny sometimes, but still, their business model was not "editorial", you need to pay to get reviewed. And why would you do that? Well...to boost your rankings within the App Store.

With that developer/advertiser money Appgratis can then do their own paid promotion to acquire more downloads, then go back with an even bigger claim to advertisers/developers and resell that inventory. This is basically an arbitrage model and i can understand why Apple wouldn't like that.

Anyway, they've got $13M to pivot, so they should be fine.

</comment></comment></comment><comment><USER50> This whole situation highlights another problem, you should never base a business around a third party API or service. Remember when Twitter changed their guidelines and API usage rules basically destroying companies that had built a product based around Twitter only for it to be deemed in violation of the new rules? This situation should be a warning to others thinking of putting their eggs in one basket, because if the service you've come to rely on has the final say in the end for how your product should function and if that understanding is based on loose interpretation of company rules, you are at the mercy of that reviewer.

I hope AppGratis sorts this all out, it's a heartbreaking story. I know from experience what it's like to spend months working on something only for it to be rejected.

<comment><USER51> Never? There are many cases of highly successful businesses being based upon a 3rd party API. E.g.: every successful software company that sold CP/M, DOS, Windows or UNIX software.

Perhaps a better statement would be: understand that there are risks inherent to building for any given API, study those risks, and mitigate them.

CP/M seems to be dying off? Hope you've started your DOS port already :)

<comment><USER52> The key difference is that there is no way for Microsoft to revoke an application from a users pc (pre app store I mean)

<comment><USER31> The existing apps were not revoked and still work.

</comment></comment></comment></comment><comment><USER18> Here's a link to the AppStore Review guidelines: [https://developer.apple.com/appstore/resources/approval/guid...](https://developer.apple.com/appstore/resources/approval/guidelines.html)

<comment><USER25> Only works if you are already a paid iOS dev.

</comment></comment><comment><USER53> From what I understand, AppGratis was pushing apps to top ranks. For Apple this is probably equivalent to bots behavior. A company that guarantees top ranks is not welcome in the App Store.

In addition being a user myself i have observed that many times if not all the time, apps they promote are not disclosed as advertising to their users and in addition many times are not deals at all when the company is promising one paid to free apps every day. For example today apps being promoted is Mobli, which was always free (Right?).

One more thing, they were also claiming "negotiating" those deals with developers. But here also I noticed that many times they were just taking the deals from others like Apple free app of the week. Is that wrong? no.... but they were presenting it in a way that makes a user believe the deal was brought by them and not by Apple or whoever.

I also never liked how the company is forcing me to tweet before getting a deal to download.

Probably the company was too "agressive" and this is what Apple did not like. They are referring to the rules the company violated but in my opinion and again as a simple ex user observer it looks that the company was very agressive in their business practices.

</comment><comment><USER54> Time to pivot, go web mobile, retain user base, launch from there maybe, - <USER3> overall you should of seen this coming, any time you get "tooo" close to app core apps, especially the app store models no matter how much you "fix" their problem, you will get pinched.

And the paying 20k for app promotion, or taking rev share on apps sold, that was just plain stupid given that you provide apple more ammo.

Real question is, how long does Kindertown have?

</comment><comment><USER13> If your business model is complete and utterly depended on a single third- party company, one need to be aware of the risk. It should be in every iphone exclusive company mind that Apple is in complete control, and are the sole dictator in what business models is allowed to exist on the phone.

Startups should thus do risk analyzes as part of creating a business plan. If your depended on a single supplier, then it need to be calculated in. If the supplier ever feels threatened, or has reason to enter your market, then there is nothing one can do to prevents them from cutting you of. The only option is to either gamble that it wont happen, or diversify your business to the point where you are no longer in a fully depended relationship with the supplier.

It should be mentioned that the business model of service providers when they implement a "walled garden" (Closed platform) is to retain a complete level of control. If app developers would refuse to develop to walled gardens, then this kind of problems would not exist.

</comment><comment><USER55> This is curation in action.

<comment><USER35> Yep, sucks to be a developer though. You can spend a year developing an app only to have it pulled from the store. Of course, the risk is low so you might try anyway but the situation sucks.

<comment><USER23> Heres why you should persevere though: I have 5 ios apps; together, they pay for my property tax and my mortgage. My house costs $1.1 mln btw. Prop tax in CA is ~1.25%. I am not deeply wedded to ios btw inspite of my revenue. I moved my client side code to Android. Took me ~3 weeks. Unlike Simon, I hedge my (appstore) bets.

</comment></comment></comment><comment><USER56> Is being listed in the App Store a contract? Does it matter that my app was good to go at one point but could be pulled at any time if they introduce a new guideline? How do they justify unilaterally affecting what has to be a billion dollar industry that relies (or what could amount to legal reliance for equitable reasons) on them?

<comment><USER55> Who do they need to justify it to? It's apple's app store.

<comment><USER56> Again, you have to justify unilateral changes to a multi-billion dollar industry. period. it doesn't matter if it's private as opposed to public.

I'm talking of course in a moral, good for business good will sense and not legal.

</comment></comment></comment><comment><USER57> I'm sorry for the soon to be ex employees, but I hate all these App Store fakers. Good riddance to spammy apps like this.

</comment><comment><USER58> Although I do agree that this is nerve wracking, I think the situation will resolve itself.

The one question I have is ... why did they use push notifications to send a daily message, when they could have just scheduled them locally? Clearly Apple notices anomalous traffic for non-transactional notifications, such as one that's sent once a day to everyone, and that's probably what alerted some unrelated guys in the app store. I imagine the guy wanted to follow up and then, unable to reach the CEO, pulled the app.

I would say the company with so many employees should probably have other people to pick up the slack for the CEO when he is on a plane.

Of course, what do I know. We have a completely different structure, and are distributed around the world.

<comment><USER59> It's not stated that they used "remote" push notifications, maybe they're talking about local push notifications.

Also, I guess Apple only tried to reach the CEO because when you summit an iOS app, you have to give them the information a person to contact in case they need to. I guess they gave them the CEO information.

<comment><USER58> I can say it's a good probability that they did ... and that triggered this problem.

</comment></comment></comment><comment><USER60> Work for a tyrant and you will eventually get screwed over - a good lesson for developers who target Apple products.

Stallman remains very right on Apple - it is the antithesis of openness and hacker culture, and the fact that good programmers choose to be Apple serfs is very disappointing.

For those who say developers have no choice but to target Apple products or lose a big chunk of revenue - if developers had refused to develop apps for Apple from the outset, and only targeted open platforms, they wouldn't be in a dominant position in the first place.

</comment><comment><USER61> This German site [1] had an article on the bare cost AppGratis asked the developers to pay:

In Germany you pay 15.400€ for a slot.

They work on a CPI basis. The CPI rate is 1,1 euro for iPhone and 2.2 for iPad. They list the amount of downloads that they "generally can achieve in Germany, Austria and Switzerland"

iPhone : 10,000 DL - iPad : 2,000 DL

[1] [http://www.iphone-ticker.de/15-400e-pro-aktion-wie- appgratis...](http://www.iphone-ticker.de/15-400e-pro-aktion-wie-appgratis- die-entwickler-zur-kasse-bat-45949/)

</comment><comment><USER62> Why, when I CTRL+ their site does the text get smaller and smaller while the images get larger and larger? I have a 1920x1080 display and don't have super- human vision...

<comment><USER63> Probably because they have -webkit-text-size-adjust:none set in style.css.

</comment></comment><comment><USER64> I have zero sympathy for them

Anyone that basis their entire business on a single platform controlled by a draconian company like Apple should not be surprised when things like this happen

<comment><USER65> Specially since they are being a little shady, creating their app store inside the App Store. Apple can interpret their TOS however way they want and ban their app at any time.

</comment></comment><comment><USER66> A company like Apple can be lordly and draconian in their practices, but it would still pay a dividend for them to be consistent, fair, and to have a reasonable review and communication process that distinguishes between some kid writing malware and a mature company with a serious investment in iOS and a history of asking questions and getting approval for their product as it develops.

</comment><comment><USER67> They pulled AppShopper, now they pull AppGratis. This is stupid. Apple's store sucks. You can't discover anything unless it comes out that week and has the hype of Apple's week one marketing behind it unless someone you follow on Twitter starts pimping it.

</comment><comment><USER68> I'm probably going to get like a hundred downvotes for this, but don't develop for Apple. There rules are not clear, and they ban apps based on their whim. Especially if you are famous and a threat to their current or future apps.

</comment><comment><USER69> Hmm, even just reading his blog post I think his daily push message promoting a deal on another app violates the guidelines - and that's his side of the story which should be the most favorable, heh.

</comment><comment><USER70> As much as I hope this to be true, it isn't:

"[Apple] risks a massive walk-out of developers and investors in mobile companies from the Apple eco system"

</comment><comment><USER71> Business 101: Don't be a one client company.

</comment><comment><USER72> I will defer to Bill Hicks:

<http://youtu.be/gDW_Hj2K0wo></comment>


Pointless Firesheep countermeasure, BlackSheep - <AUTHOR> http://petter-haggholm.livejournal.com/234042.html <comment><USER2> I get what is being said here, and I somewhat agree with it. Telling people something bad happens doesn't actually do anything to stop a bad thing from happening. And yes, having everyone use HTTPS all the time would be a better way to combat firesheep. But the fact is that not everyone is going to do this unless it becomes the out-of-the-box standard for web browsers.

However, blacksheep is not useless as the author suggests. If I am in a Starbucks using wifi, I might be using HTTPS for everything. I also might be using blacksheep. In that case, when alerted that a firesheep user is around, I might make use of the DoS tactics found here: <http://news.ycombinator.com/item?id=1884176>. This allows me to protect other less tech savvy users from firesheep evil-doers, and more importantly, screw with people who are screwing with people.</comment>


Ask HN: [email] what is the solution?  - <AUTHOR>

I put some thought into email solutions vs. email improvements after PG posted this:  http://paulgraham.com/ambitious.html
I have to state that I know I receive nowhere near the quantity of emails I imagine PG does in a day. That being said, I am still able to see the waste that is the back and forth on projects, the waste that is reading useless content in order to get to useful content, and I can see the waste that is incoming message after incoming message with none to little organization.
Then, I read these:
1-	http://blog.killtheradio.net/technology/email-is-not-broken-its-a-framework-not-an-application/
2-	http://gd0t.com/node/23 ("how to fix email while still keeping email")
3-	http://dewith.com/2012/this-is-the-mail-system/
4-	https://joncalhoun.posterous.com/email-sucks-this-is-how-we-fix-it
Now I am seriously curious; not only to who/what is correct, not only to what the future will bring and who will bring it, but mostly to what PG's thoughts are to the notion that email is not broken.
Where does the solution that solves his email issues fit into all of this? <comment><USER2> I think your first reference is generally correct. Email the protocol is mostly not broken, and the most fruitful improvements to email are in the client, not the protocol. An RFC can be improved (and most have), but that should be a matter of tweaking, not replacement.

I would like to see an additional kind of email built on RSS or something like it. I only get your "r-mail" if I both subscribe and poll. Maybe that can be had right now with better/different rss clients, and make (virtual) rss servers more available at an individual level.

The benefit is that I only get what I want, when I want it. Although a roughly similar result can be had through email whitelisting.</comment>


The people owned the web, tech giants stole it. This is how we take it back - <AUTHOR> https://www.theguardian.com/commentisfree/2018/mar/23/people-owned-web-tech-giants-facebook-cambridge-analytica <comment><USER2> What a bunch of populist clap trap. The people owned the web, but tech giants stole it? Please. Tech giants gave people what they wanted. Google, Facebook, Amazon: they gave people what they wanted and are compensated richly for that.

<comment><USER3> A better headline might be, the thing everyone thought they wanted is now an obviously terrible idea.

<comment><USER4> >the thing everyone thought they wanted

I'm a really firm believer in this. The Henry Ford quote is the most succinct way to describe it I've ever seen, but the topic of "miswanting" is dear to me.

</comment></comment></comment><comment><USER5> Can anyone explain to me what part of the Cambridge Analytica / Facebook thing is news?

We've known for years that tech companies have made their money off collecting data, profiling users and selling access to the users and their profiles. The general public never cared before. They signed in with Facebook around the web, knowingly gave the app permissions to read their personal data, and agreed to give third party apps access to that information.

People are not stupid. They traded privacy for convenience. Why act dumbfounded now? Why blame Facebook instead of ourselves?

<comment><USER6> Every time stories of this kind come up, you can't pretty much know that the top comment will be from a privacy-savvy commenter asking 'why is it news?'

Why is it news to you that a large proportion of the population aren't privacy savvy?

The same people who are worried about Facebook are still fine giving WhatsApp unfettered access to all the contacts on their phone, so it knows who their bank, dentist, and employer is. Go figure.

<comment><USER7> Or have to be told that even though '123' as a password is 'easier' for them, that no, it's really not a good idea.

As to FB, if you were there in the beginning, you can definitely watch the scope creep:

Some of us hopped on Facebook in college when it expanded from Harvard to other schools (02? 03?) and it was a completely different beast. You could add friends or people from your classes, send messages, connect with that cute girl in your class (because you could search by classes), personalize it with quotes and photos, etc. It was basically a cleaner MySpace. As it expanded, I used it as a personal address book to keep track of folks I met while abroad and could see what they're up to. Over time though, it really changed, was less useful, and I honestly had no reason to go on it except for once a year when people would chime in with a happy birthday and I would catch up with them.

I'm much more worried about how integrated Google is into my life or the flashes of guilt when I order something from Amazon, which used to book that quirky bookseller with a poorly-designed website that had free shipping (5-10 days) but is now a behemoth that sells everything on a poorly-designed website that has different tiers of shipping which might be leading to abusive practices of its workers.

</comment></comment></comment><comment><USER8> Nobody "stole" the web as such, what they did was lure in the sheep to the herd like what happened in "The Pied Piper of Hamelin" [1]. The web grew, both in number of users as well as in size, from Geocities (also centralised, grew annoying habits like adding advertising to users' pages) through Myspace to the current Facebook/Instagram/Twitter/Snapchat/Tumblr/etc. concoction. I consider these to be growing pains, as long as there are no China-like restrictions on actual internet connections the web - or what follows after it - will find a way to grow past this stage.

The _real_ problems will start when the censorship and leaching of data is moved to the entry points for the 'net, i.e. the internet access providers. The only way around such an obstacle would be some form of "darknet", either a "virtual" infrastructure on top of the physical one offered by the 'net or something which bypasses it altogether. We're not there yet but it doesn't take that much thought to realise that once some form of self-hosting takes off - with more and more fibre-connected users this becomes a viable proposition - those who call for censorship will not be satisfied much longer when they see the efficacy of their filters dwindle.

[1] [https://en.wikipedia.org/wiki/Pied_Piper_of_Hamelin](https://en.wikipedia.org/wiki/Pied_Piper_of_Hamelin)

</comment><comment><USER9> Yeah, I missed the "how we take it back" part. This is a pretty poor article that is largely the author's political complaint and rant being twisted into the slightly relevant click bait title that is trending right now.

If you actually want to take the internet back, join SSB or build a decentralized web like with [https://hackernoon.com/so-you-want-to-build- a-p2p-twitter-wi...](https://hackernoon.com/so-you-want-to-build- a-p2p-twitter-with-e2e-encryption-f90505b2ff8) .

<comment><USER3> The author's suggestions are fairly ridiculous. It's as if he can't fathom the idea people could use something other than Facebook. Quote:

It could be regulation; it could be anti-trust legislation to break up those tech giants that act as virtual monopolies. I like Derakhshan's idea of obliging Facebook and others to open up a marketplace of algorithms: if you don't like the current social media preference for popularity (retweets) and novelty ("latest"), you should be free to choose a different algorithm that acts on different values.

</comment></comment><comment><USER10> Thech giants never stole the web. Governments have just failed to regulate them or failed to see the power they get with their currently vast scale. They need laws and a set of ethical rules people will leave them for breaking.

<comment><USER3> What did Facebook do that should be illegal?

<comment><USER11> Already four years ago they ran experiments [1] on how to program your mood. They built an API to your emotions, and they started selling it, without you knowing it.

[1] [https://www.nytimes.com/2014/06/30/technology/facebook- tinke...](https://www.nytimes.com/2014/06/30/technology/facebook-tinkers-with- users-emotions-in-news-feed-experiment-stirring-outcry.html)

<comment><USER3> Are you proposing a law against trying to manipulate people's moods?

<comment><USER12> You mean a law against non-consensual psychological experiments? Yes.

<comment><USER13> Would this not outlaw the entire field of marketing and advertising? It's essentially entirely to cause an emotional reaction that bypasses your logical need centers to encourage you to purchase something.

<comment><USER14> Not the previous commenter, but many people have looked critically at marketing and media long enough to come to exactly this conclusion, myself included.

To my mind, there is something inherently _wrong_ about the techniques used to sway opinion about products and services. They prey on our animalian reflexes and bypass the part of the brain even capable of consent. Marketing "should" (and I don't use that word often) be prohibited to use such tactics, and instead be an exposition of the product and service and any traceable, trustworthy qualifications bestowed upon it. Such a system is still hackable (selling awards for instance), but it's a way better alternative to marketing practices than what we have today.

<comment><USER3> I dislike advertising and I'd love to see marketing move from a "push" to a "pull" model, where consumers ask for information about products they want. It's not easy to see how we get there. Defending the right of consumers to block ads, and moving from ad-based funding to subscriptions could be a start. An outright ban on ads - I don't see how that could happen without overreaching to non-infringing speech.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> He could have recommended Privacy Badger [1] so that his readers can block all of the data that The Guardian sends to Facebook and Google about which articles they are reading.

1\. [https://www.eff.org/privacybadger](https://www.eff.org/privacybadger)

</comment><comment><USER16> The problem is that a lot of people are relying too much on Facebook/Twitter/YouTube/etc and not contributing to the web in other more direct ways.

</comment><comment><USER17> FTA...

      Thanks to social media, the internet had apparently
      decentralised power. In the old days, information was
      passed down from the mountain top – by a government, say,
      or a news organisation – to the crowd below. Now the crowd
      could speak to each other and to the world. At least one
      aspect of the techno-utopians' early hopes seemed to have
      materialised.

      And it's that hope that Cambridge Analytica has shattered.
      For what we now understand is that those at the top, the
      political parties or governments that could afford it, have
      been engaged in a radical act of recentralising power. They
      saw the way social media was working, empowering
      individuals and networks of individuals, and they decided
      to grab those same weapons for themselves.

I find it hard to swallow this piece since the data was collected before "any of the early hopes seemed to have materialised". If social media is responsible for negatively impacting a US foreign policy adversary, that's no fluke. The only difference between pre-CA and now is Trump.

<comment> racer-v > And it's that hope that Cambridge Analytica has shattered.

Seems more accurate to say, that hope was shattered when people gave up on decentralized infrastructure like RSS and email in favor of Facebook's walled garden. Now there's an opportunity to go back (to the future!) and do it right.

<comment><USER18> I know this seems completely naive (and it probably is), but the internet was _awesome_ before the endless summer. What's the main difference between then and now? It seems to me that we've spent a lot of time making the internet accessible to the masses and now we're complaining that the masses are controlling the shape of the internet.

It might go beyond the ethos of HN, but I honestly wonder how much we should consider arguments like, "Normal people won't be able to use it" and "You won't be able to build a business on that because only a tiny fraction of people would want to use it". I often think about PGP/GPG (and especially web of trust) that way. I know it's useful to me and I know that the people I want to use it with are more than capable. But they decline.

RSS is an even better example. Why are we not building RSS tools? Why are we not building a brand around blog posts, FAQs, etc that contain RSS? Why is it not the "secret password" that opens the gate to the "good content that's not being gamed for the masses"?

<comment><USER19> > endless summer

Do you mean the eternal September [0]? Going back to the Internet being only for governments and universities is a bad idea, a bad thing to want.

I think the complaint at the moment is not the that masses are controlling the shape of the Internet but that a few corporations are both directly shaping it and, intentionally or not, shaping the masses.

RSS could maybe make a comeback. Podcasts are RSS and are more popular than ever. Subscribing to YouTube channels, following people on Twitter, these are actions people understand and do, it could be extended, "hey, why not use this thing that lets you subscribe and follow your favorite stuff not on individual web sites but everywhere?" The problem is, it makes it harder to make money off those eyeballs than to keep them in your walled garden.

[0] [https://en.wikipedia.org/wiki/Eternal_September](https://en.wikipedia.org/wiki/Eternal_September)

<comment> racer-v There's a tendency for too much money to ruin things. I agree that excluding all non-government and non-university participants from the Internet would be a bad thing. But there were some wonderful qualities to the Internet in the days before mass commercialization, and it's not a bad thing to want those qualities back.

</comment></comment></comment></comment></comment><comment><USER20> I missed the bit about how we take it back... ?

<comment><USER21> With standards and open source.

Email is great because there is no vendor lock in. Open source is great because large groups of people can decide to fork it (or even inividuals).

The blockchain tech now opened a lot of applications that could rival these current tech giants.

Just 1 example: OpenBazaar received 3 million dollar investment. I'm curious what these kind of web 3.0 techs will change.

<comment><USER20> Nothing. They will change nothing.

The illusion that "no-one is in control" of blockchain applications is going to meet the brick wall of regulatory reality pretty hard.

<comment><USER21> You mean the same like the regulatory of copyrighted material on BitTorrent? Can't wait. BitTorrent is indeed another nice example of what I meant.

<comment><USER20> In which case, yes, you're absolutely right. Open-source protocols could possibly change the situation.

But that's got exactly zero in common with funded organisations making applications using the blockchain.

You can't monetise what you don't control.

<comment><USER21> The example that I gave (OpenBazaar) is not an organization making application using the blockchain. That's like saying Bitcoin is such an organization.

Yes, they got 3 mil for developing their open source platform further, which in my opinion, is mind blowing. Especially since they don't have any clear plans on how to make revenue out of this.

See [https://en.wikipedia.org/wiki/OpenBazaar](https://en.wikipedia.org/wiki/OpenBazaar)

</comment></comment></comment></comment></comment></comment><comment><USER22> The people own the web, in the same way we, the people, own the real world.

all cambridge analytica and every retargetting ad firm does is to try and trick that power into mistakenly choosing against the powers own interest - but that has always been true, and the old solutions, of free press, free association and education are still the solutions.

where those rights are enshrined in the real world we will triumph, where they are not we will have to fight a bit harder.

I recognise the value of articles like this in highlighting the problem, but it's not hopeless, it's actually the opposite - the web is awesome, and now we get to keep the awesome, and clean up the problems ready for next time.

</comment><comment><USER23> As with media today, they don't get the problem right and have terrible solutions ready.

The real way forward is decentralization. We need to remove the authoritarian's 30-50% cut from everything.

</comment><comment><USER24> Yeah, the Web was so much better before Google made search and email radically better. Just loved that Excite search and Hotmail in 2001 where I could store dozens of photos in my couple of megabytes.

It was better before Wikipedia (a legitimate giant) existed and Google sent them vast traffic to help them build out their service.

It was better before Yahoo gave me access to free, rapidly updated stock quotes.

It was better before Netflix carved up the old TV content monopolies. Those awesome days when old media held me entirely hostage.

It was better when classified ads were spread across the entire country in localized newspapers and you couldn't easily access them in a centralized giant service like Craigslist.

It was better when real estate pricing and information was a black book.

It was better before Spotify, Pandora, Apple, Amazon, YouTube gave me easy, low cost access to all the music I could ever possibly consume.

It was better before Amazon made shopping online easy, with a vast selection, relatively inexpensive for shipping, and very consumer friendly customer service.

It was better before I could easily and inexpensively send money to other people using PayPal or Venmo or 37 other solutions.

It was better before I could take ten minutes, plug in a few things, and accept payments via Stripe or Square.

It was better when I had to use a janky static Mapquest, or spend money on cumbersome physical maps just so I could navigate a new city. Back in those amazing days when hunting for stores or locations was so much fun.

It was better when I had to go through hell to operate my own hosted infrastructure. This whole insta-infrastructure AWS, Azure, Google Cloud, DigitalOcean, Linode, stuff must stop. And who the hell wants a free CDN, down with Cloudflare!

Those old glorious days.

<comment> racer-v This comment is pretty wide of the mark. The article points out that consumers made a mistake in trusting Facebook and rejecting a decentralized Internet. It's valid to make that criticism without inferring that all software of the past 15 years has been a mistake.

<comment><USER25> The comment seems to reply to the headline.

Is it surprising that when authors use clickbait, people ignore the substance and reply to the most egregious part? Especially if an awful title gives no desire to read the content.</comment></comment></comment>


ORMs don't kill databases. Developers do. - <AUTHOR> http://www.arrangeactassert.com/orms-dont-kill-databases-developers-do/

<comment><USER2> Summary: _ORMs are a leaky abstraction_.

Thus, it is true that developers are responsible for knowing what is going on under the hood and either contorting how they use the ORM to get what they want or skipping it when necessary.

And it is also true that ORMs are to blame, they do not work as advertised, and often impose extra conceptual overhead because you end up composing SQL in your head and then trying to figure out how to get the ORM to generate the SQL, instead of thinking in the ORM's abstraction.

<comment><USER3> That may be true, but that's what programming is for the most part. Pretend like it will just work and then optimize later when it is proven to be too slow through profiling. In this case, you need performance data from the database. Use that data to improve anything that needs it.

<comment><USER4> Does it work 99% of the time though?

</comment></comment></comment><comment><USER5> "a bad workman always blames his tools"

ORM's are just a tool, some better than others. Developers need to know SQL, relational algebra and normalization. There is no excuse for not knowing proper databasing, ignoring the SQL generated by your ORM and blindly following along. A good ORM (like SQL Alchemy) will grow with you from the simplest of cases to the complex.

Personally, I have never developed an application with an ORM and ignored the SQL generated. Most of the time the SQL generated by the ORM is acceptable but there are instances where the naive approach with an ORM generated piggish SQL and needed to be reworked.

<comment><USER6> I think your last point is right. It's not just about knowing your tools, it's about knowing how your tools fit into the system that you've built.

</comment></comment><comment><USER7> You always hear this from somebody who is new to ORMs, spends 3 months working on a project, and then is amazed because he doesn't like one thing or another in the file.

It'll be funny when he discovers that with just a few other lines of code he can not only fix that issue, but also completely change how data is stored in the database, use 1st and 2nd level caching for the objects, and be able to easily refactor all that stuff when the business logic changes.

By the way, I seriously doubt that query is the cause of performance problems in his system.

</comment><comment><USER8> Spot on. ORMs can generate some crazy-bad SQL if you're not careful with them. A good ORM will generate great SQL in the common case and allow the developer to execute custom SQL without fuss when necessary. If your ORM makes it a pain to pump in raw SQL in place of generated SQL, find a new ORM.

<comment><USER7> "beautiful" sql is subjective. What does it mean? SQL that looks pretty to the eye (with proper indentation)? Or is it SQL that can run on dozens of different database servers with no modifications? Or is it SQL that can be automatically generated so you don't have to spend any time thinking about it but that runs 5% slower than something you spent 1 hour on?

I would probably go with the two last options.

</comment></comment><comment><USER9> The typical use of ORMs that kills the database is where one uses record-based operations to traverse a set: resulting in one query per record.

The blogger's point is quite good: a developer probably doesn't know what SQL is being generated, it may be opaque how small variants in query source can result in radically different SQL based on the translation process. Hence, a profiler should be used to find problematic queries. This is solid advice.

What's not mentioned though is that sometimes what appears to be very ugly SQL actually out-performs pretty, parsimonious, hand-crafted SQL. This, assuming the developer could actually craft correct SQL equivalent.

</comment><comment><USER10> ORMs aren't the problem here, databases not designed for use by programmers is the problem.

ORMs exist because straight SQL isn't a good interface for programmers, and ORMs are bad/a leaky abstraction because the problem is really messy.

Instead, let's just build a relational database that 1) has an API that is useful to programmers i.e. not SQL 2) supports explicitly specifying a plan, not providing hints or clues, but using operations that look map, filter, reduce, hash-join, etc.

<comment><USER11> Wrong. Relational databases are one of the fundamental components of most large scale applications and SQL is usually the interface. If you are going to be a journeyman or master programmer in this area you must understand it. If you dont, you are just an apprentice. Just like you must understand networking, concurrency, algorithms, data structures, and hardware. If all you understand is Java an its brand of OO then you are a trade school mechanic.

I know this is snarky as hell and I apologize for being offensive. But I am not an MIT CS graduate. I am completely self taught. SQL has been a necessary skill in every job I've had in the last 20 years. So when users were complaining were complaining that a data download to csv files was limited to 200 records (due to a dozen joined tables, lazy loading, table locking, using velocity to generate csv files, etc), I threw out Hibernate and velocity and used SQL, JDBC, and direct HTTP output to generate 50 times the output in one tenth the time.

<comment><USER7> Just because you have an example of a probably poorly designed, over- engineered system that could be completely replaced with some hand written SQL code, doesn't mean that is the best solution for everything. Come back when you have an example of a system running on top of 500 tables, doing read- writes in a big iron server, communicating with dozens of other servers, that uses distributed caching to improve performance, and that you can explain how you can replace an ORM with SQL.

<comment><USER11> My point was not that ORMs are bad, but that SQL is required knowledge to communicate with a databases, including getting around the problems an ORM causes. It is hard for me to believe that someone who doesnt understand SQL can be a competent ORM programmer.

The system I mentioned was well designed with hundreds of tables, multiple replicated database servers, dozens of web servers, caching and all that. The problem was a specific case where knowledge of SQL was able to produce a 50x performance improvement.

I think SQL essential to learn because it bends your mind. You have to think in terms of sets instead of sequential processes. Just like functional programming and BNF are mind stretching.

<comment><USER7> cool, we agree on that.

</comment></comment></comment></comment></comment><comment><USER12> "Error establishing database connection"

ORMs don't kill databases. Hacker News does.

<comment><AUTHOR> Sad but true! Bluehost should have sorted the issue...

</comment></comment><comment><USER13> Using ORMs gives developers (and other stakeholders) a way to get through the initial conceptual design and development faster. It helps getting to 'functional' much faster and it makes feedback loops very effective.

However, before pushing to production, you should always have some idea of typical user scenarios. What actions are they taking? With how much data? How often? In what sequence? Then, you load test based on that information. You identify that 20% of the ORM isn't going to work, and you replace it with stored procedures, or in-memory tables, or something.

For someone who grew up pre-ORM with on-staff dba-types who had to redesign their schemas on every little feature change, and thus recreate entire data layers, ORMS are FREAKING AWESOME.

But, you still need someone who knows what they're doing.

<comment><USER7> I agreed with you until the point that you said to replace things with stored procedures and in-memory tables.

Having the two different contexts for logic, code and SPs makes things a thousand times harder to debug and maintain, making the cost of anything skyrocket.

ORMs are indeed awesome, but the solution for problems like this is not to take ORM out of the way, is to work with it to make it work better.

<comment><USER13> Why is that more difficult? It seems like it worked fine for two teams I worked with. What are other common or better ways to get around this?

<comment><USER7> the big problem is that it makes refactoring and changing logic much harder, as you now two different places to maintain business logic.

In my experience, most problems that DBAs would like to use SPs for can be easily solved by refactoring/merging SQL calls and proper caching of objects during a request or session, two things that an ORM really help you with.

</comment></comment></comment></comment><comment><USER14> "Error establishing a database connection"

Heh.

Anyway, cached text from Google:

\----

Following a recent post I wrote Phillip Haydon made an excellent argument about not using LINQ in ORMs like nHibernate and Entity Framework without consideration to what they are doing.

Something I definitely agree with.

        Just as guns don't kill people, ORMs don't kill databases. Developers do.

I should have picked up on this because it's happened to me on a project I was working on. Death by ORM During development everything was performing well. So well that even the most sceptical developers decided to use ORMs instead of stored procedures.

The application was responsive and users were happy.

However in production there has no happy ending. The application went from running like sh!t off a proverbial shovel to just sh!t.

It was a nightmare and the finger pointing began.

The problem was we assumed (always a bad thing) the queries generated by the ORM would be as good as if we had written them ourselves.

So when we looked at what was being generated it came as a bit of a shock to see what was going on.

But while it was easy to use the ORM as a scapegoat the reality was developers were at fault.

Here's a simple example of how even the smallest of changes can make a difference in the SQL ORMs generate.

In the code below all we want nHibernate to do is select the of the fruit that is NOT also a color.

        [Test]
        public void Tale_Of_Two_Queries()
        {
            var fruitDatabase = new FruitDatabase();
            using (ISession session = fruitDatabase.Session)
            {
                using (ITransaction txn = session.BeginTransaction())
                {

                    var apple = new Fruit() { Name = "Apple", IsAlsoAColor = false};
                    var orange = new Fruit() { Name = "Orange", IsAlsoAColor = true };

                    session.Save(apple);
                    session.Save(orange);
                    txn.Commit();
                }

                var firstQuery = session.Query<Fruit>()
                .Where(f => !f.IsAlsoAColor)
                .Select(f => f.Name)
                .ToList();

                var secondQuery = session.Query<Fruit>()
                        .Where(f => f.IsAlsoAColor == false)
                        .Select(f => f.Name)
                        .ToList();
            }
        }

For the query that uses !f.IsAlsoAColor the SQL query looks like this

        select fruit0_.Name as col_0_0_
        from   Fruits fruit0_
        where  not (fruit0_.IsAlsoAColor = 1)

For the query that uses f.IsAlsoAColor == false the sql generated looks like this

        select fruit0_.Name as col_0_0_
        from   Fruits fruit0_
        where  case
                 when fruit0_.IsAlsoAColor = 1 then 1
                 else 0
               end = case
                       when 0 /* @p0 */ = 1 then 1
                       else 0
                     end

While this is a trivial example it highlights the fact you don't know what the generated SQL will be, let alone the execution plan.

And if your query returns the results you want are you really going to spend time finding out what's going on 'under the hood'? How comes nobody talks about this?

I can't ever recall a presenter warning about this during any ORM talk I've been to. The focus always on what it can do and how it compares to other ORMs rather than best practices. It's not just a .Net problem either

After talking to Ruby on Rails developers this is a problem for them too, because Active Record doesn't work 100% of the time. When it goes wrong they have to implement workarounds to execute queries without using active record. So how can I make sure it doesn't happen to me?

The first thing is to know what issues to look out for. The nHibernate profiler alerts page is an excellent resource for this.

With this information you can use profiling tools to see what queries your ORM is generating and how your application is performing.

My last tip is to always use the best data access method for what you're doing. It's easy to become complacent or aim to everything using an ORM, but if it makes more sense to use a stored procedure then that's what you should do.

It would be good to hear what your experiences are with issues like this and to share any tips/tools you have used to avoid ORM performance issues.

In the meantime I'll leave you with this excellent DBA vs. Developer (Star Wars Style) video

<comment><USER9> What seems to be suspicious SQL (the CASE/WHEN/ELSE) is probably not the problem. This is classic boilerplate SQL "cast" code to make a boolean value for databases that don't support booleans. Distracting, perhaps, but not a smoking gun. Likely the problem with something like this is that there's a full-table scan on the Fruits table, and that the function doing the scanning is called frequently without caching.

<comment><USER15> > What seems to be suspicious SQL (the CASE/WHEN/ELSE) is probably not the > problem.

It certainly _could_ be the problem. Like you say, a CASE becomes a computed field and requires a table scan. A simple check for IsAlsoAFruit can be done with an index scan, assuming it has that index. This can be a huge difference in data scanning and memory load. Of course, there are also plenty of times when SQL will spurn a boolean index because it's not selective enough.

</comment></comment></comment><comment><USER16> "Just as guns don't kill people, ORMs don't kill databases. Developers do."

Guns do not kill people but, they sure do facilitate killing, don't they?

</comment><comment><USER17> If you're building a Rails app, just profile your queries (perhaps with New Relic) before pushing to production.

<comment><USER6> I don't think that NewRelic would help in this situation, as they only display SQL queries and the corresponding execution plan for slow queries in slow transactions. While this is certainly helpful, the blog post is pointing out the need for developers to know what their ORM is doing from the start, not just when a performance problem begins to manifest.

Put another way, if you have good visibility into your system early on, and understand what's going on under the hood, you can avoid performance problems in the future.

<comment><USER7> I agree with what you said about developers understanding what does on under the curtains, but regarding the NewRelic statement, I couldn't disagree more with this.

Spending time early on in the project on things that don't matter and that don't really impact the system, like the example given in the post, is exactly the kind of thing that ends up creating projects that are expensive to maintain and just bad.

Focusing on solving large performance bottlenecks, that can easily improve things 1000 times more than fixing that simple example is a much better use of your time, and is what newRelic shows you.

<comment><USER17> This. At almost every level of web development, we're working with code that generates some other kind of code. Ruby -> C, Erb/Haml/whatever template => HTML, maybe Coffeescript -> JavaScript, and finally ActiveRecord/any ORM -> SQL strings.

I write Ruby all the time, I don't know a lick of C. I've got a solid understanding of SQL and relational data modeling, but why should I check the generated SQL of _every_ single query?

Furthermore, if you don't use an ORM, your model's methods will contain a lot of similar functionality. Hmm, maybe I should write a module or base class so I don't repeat myself. Eventually you will have written an ORM.

</comment></comment></comment></comment><comment><USER18> ORMs dont kill databases. SQL does !</comment>


Microsoft Apologizes for Surface Pro 4, Surface Book Issues - <AUTHOR> http://www.digitaltrends.com/computing/microsoft-says-sorry-surface-pro-4-surface-book-issues/ <comment><AUTHOR> Also [http://www.lovemysurface.net/majorly-disappointed-with- surfa...](http://www.lovemysurface.net/majorly-disappointed-with-surface- pro-4-problems/) .</comment>


Hosting recommendations for startup - <AUTHOR>

Hello,
Can anyone recommend good hosting services for a new startup?
An older post here mentioned Rackspace and Serverbeach. Are they still recommended?
I've actually had good experience with GoDaddy as an economical service in the past, but am interested in current opinions on hosts suitable for a startup.
Thanks! <comment><USER2> The canonical place to find hosting recommendations is <http://www.webhostingtalk.com> .

If you're looking for information about where YC-funded startups are hosted, here's the latest numbers from wikipedia's list of non-acquired, non-defunct YC companies:

       4     SoftLayer Technologies Inc.
       3     Layered Technologies, Inc.
       3     ThePlanet.com Internet Services, Inc.
       2     NoZone, Inc.
       2     Rackspace.com, Ltd.
       1     Amazon.com, Inc.
       1     BitPusher, LLC
       1     Carnegie Mellon University
       1     Columbus Network Access Point, Inc.
       1     Global Netoptex, Inc
       1     ServePath, LLC
       1     Simpli Hosting, Inc

</comment><comment><USER3> What kind of a stack are you running? What are your memory/CPU requirements? How much bandwidth will you need? Are you serving video or just text/images?

Anyway... it all depends on what your req's are...

<comment><AUTHOR> Hi nickb,

Thanks for your response. I was going to get into details, but figured my requirements are so typical it wouldn't be worth the extra description.

This is for a standard LAMP-based app with a minimum of graphics. I expect traffic volume to be low for the near future and have no heavy-duty requirements for video and such.

Basically I'd like to find an economical service that can scale with my user base.

<comment><USER4> <http://linode.com/>

<comment><USER5> Excellent. I was looking for something like that. Thank you!

<comment><USER6> <http://vr.org/>

</comment></comment></comment></comment></comment><comment><USER7> Heard about this at a meet-up in SF; <http://www.sun.com/emrkt/startupessentials/hosting.jsp>

</comment><comment><USER8> I don't know if your referring to <http://news.ycombinator.com/item?id=64795> as the older post, but it is only a month old. The web hosting industry is pretty cyclical, but within a month, the data should still be relevant.

<comment><AUTHOR> foodawg,

Thanks--that looks better than the thread from 148 days ago I had bookmarked (whatever date that happens to be):

<http://news.ycombinator.com/item?id=29011>

Is there a search function here I'm missing? I did search for search to parse prior posts but withdrew without the words of the most.

</comment></comment><comment><USER9> Rackspace's offerings start at $400 a month. And they have no prices on their site, so you have to talk to a 'sales associate'... God I hate it when you can't get a price off a website. Can't believe I wasted two minutes on that. Learn from my error.</comment>


GERT: Go that runs bare-metal on armv7a SOCs - <AUTHOR> https://github.com/ycoroneos/G.E.R.T#readme <comment><USER2> Previous discussions:

[https://news.ycombinator.com/item?id=15591847](https://news.ycombinator.com/item?id=15591847) (3 days ago)

[https://news.ycombinator.com/item?id=14590847](https://news.ycombinator.com/item?id=14590847) (4 months ago)

</comment><comment><USER3> Very cool, might want to take a look at Akaros as well. Porting this to RISC-V would be even better and potentially even more useful.</comment>


Healthcare.gov: Code by the People, for the People, Released Back to the People - <AUTHOR> http://www.theatlantic.com/technology/archive/2013/06/healthcaregov-code-developed-by-the-people-and-for-the-people-released-back-to-the-people/277295/ <comment><USER2> The use of Jekyll (or any static HTML generator) is a really huge, positive conceptual step. I mean, we can now make edits -- in Markdown -- to individual blog posts and submit pull requests.

Whether they actually honor those requests* is another thing, but this is a really cool step. Even the use of Markdown means that the site/content designers have to _really work_ to obfuscate the content with unnecessary modules/widgets/etc.

Regardless of the merits of the administration's policies and initiatives, I hope this catches on. 95% of the government websites I've seen, from city council to federal, could be rendered in static HTML...and maintained much more easily.

* edit: Only one way to find out: [https://github.com/dannguyen/healthcare.gov/commit/6438498ea...](https://github.com/dannguyen/healthcare.gov/commit/6438498eab1bc773c55bf567830ac71abcd82c02)

<comment><USER3> The huge leap that has to be made for Federal Government CIOs is the psychological attachment they have made between software that works and huge price tags.

Sometime, long before I ever came along, CIOs in the Federal sector became convinced that the only way for software to work was for it to be big, sold by SAP/Microsoft/Oracle, and have a huge pricetag. Anything else is a huge risk in their world.

They just don't believe that something that takes so little money, man-hours, and time to implement can possibly satisfy their requirements and replace such a huge portfolio of bloated legacy systems.

I built a metadata management system in a few weeks as a "rapid prototype" for a branch of the US military. It satisfied all of their requirements, was fast, secure, and stable. It was storing all of the production data and was made to be production ready by simply flipping a switch. Then the CIO saw it.

"Wow, this is amazing. Can you give the code to Team X so they can build it in Sharepoint?" 8 months later, a stunted, awful version of my prototype was demoed. The thick-client interface was gone, replaced by the awful, non- responsive Sharepoint bullshit. The Postgres back end that cost nothing was replaced with an expensively licensed SQL Server DB. The Google-like "search as you type" capability that was in my "prototype" was gone. Infinite scrolling in the grids was gone. Did I mention that they force their users to use Internet Explorer 8 because of "security reasons"? Never in my life have I witnessed such a huge level of IT incompetences as that on display in the United States military. This is almost surely due to endless bloated budgets which allow wankers like this to continue to keep their jobs.

<comment><USER4> "Nobody ever got fired for choosing IBM."

</comment></comment></comment><comment><USER5> The folks at Development Seed are doing really awesome work between Prose and MapBox and it's great to see them get some recognition for it.

Also a great plug for Jekyll in general. While there can certainly be more worrisome factors than cost for a site, site performance should be one of the most important issues when launching. By completely getting rid of a backing database, page lookup times can be reduced dramatically. As Prose continues to mature, it's getting more and more flexible by the day. Just last week they implemented an extensible "tagging" feature for posts: [https://github.com/prose/prose/issues/464](https://github.com/prose/prose/issues/464).

In case you haven't noticed, I'm a fan. Kudos to dev seed and big props to the White House team for the willingness to move away from Drupal.

<comment><USER6> _The folks at Development Seed are doing really awesome work_

I am also a member of the Development Seed fan club, having met many of the team members. Though, I feel like they should update their PR statement. Every time they are mentioned in an article, the Drupal past comes out: _The startup first made its mark in the DC tech scene consulting on Drupal_ I think we can all agree that mentioning one's history working with Drupal is not going to convey a feeling of cutting edge work by a, frankly, team of brilliant engineers like Dev Seed. I have done work with Drupal in the past, yet it does not appear on my resume.

Instead, they could be saying something like: Development Seed, makers of Mapbox and Tile Mill, which directly competes with Google Maps products, and in many ways is better, develops and promotes technologies and methodologies reminiscent of Bay Area start-ups.

These guys really do not get enough credit, even with a minor mention in the Atlantic article.

<comment><USER7> Their history with Drupal is a key part of their value story in DC, where Drupal _is_ cutting edge--it is rapidly replacing expensive proprietary CMS solutions for many federal agencies and nonprofits.

Although it might be hard to believe here on HN, saying something is "reminiscent of Bay Area start-ups" means jack squat to the folks in DC who spend a lot of money on web projects.

</comment></comment></comment><comment><USER8> _Last week, the United States Department of Health and Human Services (HHS) relaunched Healthcare.gov with a new appearance and modern technology that is unusual in federal-government websites._

The article seems to be about a promotional/propaganda CMS for the government, am I missing something?

 _" This is such a lean site," said Jon Booth_

 _" This is our ultimate dogfooding experience," said Eric Gundersen_

 _" The work that they're doing is amazing," said Sivak_

 _the site is just one component of the insurance exchanges. Others may not be ready by the October deadline._

<comment><USER9> It is definitely amazing how brilliant and successful every decision on a project turns out to be when you only interview the people who made those decisions!

<comment><USER10> I didn't just interview the people who made those decisions. I've talked to dozens of federal and state CIOs over the years, along with many contractors and Web developers. The consensus amongst insiders and industry observers is that this approach and outcome are genuinely novel and innovative in the government space, which is why I wrote the feature to begin with, starting months ago.

<comment><USER9> This would have been more evident if any of those people had been quoted in the story. It also would have made the story more compelling -- as it stands, it reads like a bunch of colleagues congratulating each other on what fine work they have done.

<comment><USER10> Fair point. And ouch, I think. Just so it's clear, I'm not their colleague -- and the contractors in question weren't obligated to praise CMS. I'd hoped that readers would find the perspective of the writer useful, in addition to the comments of the principals, whose interests are obvious. Thank you for the feedback.

<comment><USER11> "and the contractors in question weren't obligated to praise CMS"

If you are a government contractor and some reporter asks you about a government project, the response is going to be positive (or at least obfuscated) unless you would like to have no more government contracts.

</comment></comment></comment></comment></comment></comment><comment><USER12> This reads like the worst marketing mashup this year:

" _We knew there were performance and reliability benefits from building the stack on HTML. "_

I know there are performance and reliability benefits from talking in English.

" _You 're just talking about content. There just needs to be one server. We're going to have two, with one for backup. That's a deduction of 30 servers_"

I'm very happy the government decided to skimp on reliability for a public healthcare market.

" _You can put Wordpress into Amazon but then you 'll have problems; it wasn't designed to be a cloud application._"

Wait wait wait Wordpress isn't a cloud app? Fuck, someone go tell Hostgator that--apparently it can't be done!

" _Notably, the HHS team has been using feedback to drive design choices from the beginning, applying the 'lean startup' model to development._"

Wow, even the lean startup namedrop.

I'd be a lot happier if, instead of putting the Obama webdev team on the gravy train, they spent that same money--you know--actually fixing healthcare. As it is they seem to be just doing free advertising and lead generation on the public dime for the insurance companies.

<comment><USER10> I can think of any number of blog posts that pack more buzzwords per paragraph than this, but your experience may vary. [http://mobile.slate.com/articles/business/moneybox/2013/05/d...](http://mobile.slate.com/articles/business/moneybox/2013/05/disrupting_disruption_a_once_useful_concept_has_become_a_lame_catchphrase.html)

To your substantive point, no one skimped on reliability here. The content was pushed into Akamai precisely so it would always be available, quickly, to end users. Reducing servers in this context isn't skimping -- it's saving money by using modern Web tech. Developing this site also wasn't an option, as your comment implies: the law required its development and deployment. If you'd like public funds directed elsewhere, call your Congressional representatives.

<comment><USER13> but that doesn't seem super innovative. others in government have used akamai as origin servers--TSA then DHS did this in 06 and got rid of a bunch of servers.

</comment></comment></comment><comment><USER14> The UK Government Digital Service still kicks its ass at (a) startup methods) and (b) execution :-)

[http://digital.cabinetoffice.gov.uk/](http://digital.cabinetoffice.gov.uk/)

[https://www.gov.uk/](https://www.gov.uk/)

[https://www.gov.uk/designprinciples](https://www.gov.uk/designprinciples)

<comment><USER10> It may come as no surprise that Mullen cited the GDS team as an inspiration.

</comment></comment><comment><USER15> I'm very eager to see how they handle the actual exchange code.

Jekyll and static HTML make a lot of sense for a marketing/informational site (which this appears to be right now), but at some point, they're going to need a dynamic backend (right?). These exchanges will need to aggregate plan info from lots of different insurance carriers and display plans to people based on various bits of user-specific info. Perhaps they can generate static info pages for all of the plans and redirect people to these pages via JavaScript and then pass the actual enrollment off to the insurance companies.

If they have to support enrollment and dynamic content, it will be interesting to see how they do so while adhering to their principles of simplicity.

If they don't, it will be an interesting example of how to embrace simple solutions where possible while preventing scope creep.

Either way, I'm glad to see this type of innovative development happening.

<comment><USER16> One "website" can have multiple backends: static files prepared with Jekyl for the CMS part of it, and a full backend for any dynamic bits. You can feed both in the same page with judicious use of AJAX.

<comment><USER15> Of course. And if they do implement such a JavaScript-dependant approach, it will be entirely different from any other government site. As I said, I look forward to seeing how they progress.

</comment></comment></comment><comment><USER17> A link to the GitHub source: [https://github.com/CMSgov/healthcare.gov](https://github.com/CMSgov/healthcare.gov)

(The article buries the link to the page with the link: [https://www.healthcare.gov/developers](https://www.healthcare.gov/developers) )

<comment><USER10> Thank you for sharing the link to github. At the time of submission, the code wasn't available yet there.

</comment></comment><comment><USER18> So, does this mean they learned some important lessons from the $18 million recover.gov site?

As for Percussion, is the Sivak person saying that it takes a month to make a simple navigation change? Is this really about the CMS or the red tape involved in getting approval to make the change?

<comment><USER10> There's a lot to be learned from Recovery.gov, not all negative. In this case, the HHS CTO was referring to a change in the CMS itself, not the website(s) it controls. Getting code updated in the normal .gov contractor/sub-contractor model would generally take more time, both in terms of requirements and implementation.

<comment><USER13> I am skeptical. Seems more in the implementation of the CMS. Not a fan of percussion, but I have seen drupal implementations that tied content to presentation also take an stunningly long amount of time for a navigation change. Bad design. Bad implementation.

</comment></comment></comment><comment><USER19> This has not been "iteratively created on Github". It has one commit and 1 commit only. Just sayin...

[https://github.com/CMSgov/healthcare.gov/commits/master](https://github.com/CMSgov/healthcare.gov/commits/master)

Still cool its open sourced though.

<comment><USER20> From what I know of the project, CMS has a GitHub enterprise account that they used internally to "iteratively create on github," this Repo is the one that moved over after release.

It's a big step to have government releasing ANYTHING on Github. And yes, it's the next logical step for them to _start_ projects on GitHub. But they're not there yet -- its worth noting that neither Sunlight nor Code for America start their projects out in the open 100% of the time either. It's new ground, and government will, I think, move more towards developing out in the open as we progress. But for now, I'm pretty excited that they embraced technology from this decade.

I should note I'm the former Director of Sunlight Labs, and am an advisor to Code for America.

<comment><USER10> As I understand it, that's correct: built using Github Enterprise internaly and then published publicly. There _was_ code in public, on the Development Seed account, with respect to coding for the project; anyone can go look at the commits there. Your other points speak for themselves.

</comment></comment></comment><comment><USER21> Sorry, not feeling very patriotic about this. "by the people, for the people, released back to the people." Meanwhile those of the people who are physicians have had their fees sequestered by 2% [http://www.medscape.com/viewarticle/781630](http://www.medscape.com/viewarticle/781630) and are awash in extra paperwork for trying to prescribe something as simple as diabetic test strips as funding is tightened: [http://www.pharmacist.com/cms-cuts-reimbursement-diabetes- te...](http://www.pharmacist.com/cms-cuts-reimbursement-diabetes-test- supplies)

<comment><USER22> Your first link is login-only.

<comment><USER21> I logged out first to check that. Oh well. Here is another related: [http://www.ama- assn.org/ama/pub/news/news/2013-03-01-stateme...](http://www.ama- assn.org/ama/pub/news/news/2013-03-01-statement-on-sequestration-cuts.page)

</comment></comment></comment><comment><USER23> How long until a wordpress theme based on this is on themeforest?</comment>


CEO of $20M startup could lose his visa and his business - <AUTHOR> http://money.cnn.com/2018/04/16/news/economy/immigrant-entrepreneur-baubax/index.html <comment><USER2> He has barely $2 in _revenue_ for every dollar invested, and that counts as "successful" now?</comment>


Show HN: Bargad – data integrity, efficient Blockchains, transparency logs - <AUTHOR> https://github.com/ZanjeerPlatform/bargad <comment><AUTHOR> Author here.

Bargad is a Trillian like data integrity framework for building efficient blockchains (like Ethereum Plasma does), transparency logs (e.g Certificate Transparency), secure file systems and more. It Written in Elixir with focus on reliability, concurrency and scalability.

Yesterday I released a paper about Compact Sparse Merkle trees. [https://news.ycombinator.com/item?id=18166298](https://news.ycombinator.com/item?id=18166298).

This framework implements Compact Sparse Merkle trees as well as binary merkle trees to achieve two types of modes: Log and Map mode.</comment>