Eventually Consistent HTTP with Statebox and Riak
Bob Ippolito explains how to solve concurrent update conflicts with Statebox, an open source library for automatic conflict resolution, running on top of Riak.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Ron Bodkin on Sep 09, 2010
Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).
3.3.2 An Application may not download or install executable code. Interpreted code may only be used in an Application if all scripts, code and interpreters are packaged in the Application and not downloaded. The only exception to the foregoing is scripts and code downloaded and run by Apple's built-in WebKit framework.
Apple and Adobe didn't immediately respond to requests for comment. But one thing is clear: Adobe didn't come to its decision to scrap its Flash-to-iOS project lightly, and resurrecting it wouldn't be simple.
As of today, more than 65,000 developers have signed up to use Titanium and more than 4,000 Titanium-built applications are in the iPhone App Store or Android Market.
This change was triggered by Flurry Analytics reporting on unreleased devices as indicated a response by Steve Jobs at the D8 conference, in which he also said they'd allow use of analytics "solely for advertising." The language in the new agreement has been softened, considerably, now focusing only on requiring user consent and banning analytics software from receiving device data:
3.3.9 You and Your Applications may not collect user or device data without prior user consent, and then only to provide a service or function that is directly relevant to the use of the Application, or to serve advertising. You may not use analytics software in Your Application to collect and send device data to a third party.
Unlike the previous version, these new terms ensure that Apple’s developers have the choice of a variety of advertising solutions (including Google’s and AdMob’s) to earn money and fund their apps. Apple’s new terms will keep in-app advertising on the iPhone open to many different mobile ad competitors and enable advertising solutions that operate across a wide range of platforms.
The Wall Street Journal's Jennifer Valentino-DeVries blogged about this, noting "Apple seems to be saying that it views apps as a core part of its brand, rather than simply things that are delivered over its systems." And noting:
“We have over 250,000 apps in the App Store. We don’t need any more Fart apps. If your app doesn’t do something useful or provide some form of lasting entertainment, it may not be accepted.” “If your App looks like it was cobbled together in a few days, or you’re trying to get your first practice App into the store to impress your friends, please brace yourself for rejection. We have lots of serious developers who don’t want their quality Apps to be surrounded by amateur hour.” These sounds like things that Steve Jobs has said repeatedly. Just this month, he made the same reference — to “amateur hour” — when talking about what consumers don’t want to see on Internet television. ... But the comment also makes clear that Apple believes the app market is growing up. The original fart apps might have made it in, but that’s not what people want anymore.
Rob Pegoraro of the Washington Post noted "Much of these rules are common-sense guidelines" but he identified a number of more controversial rules, such as:
2.11 Apps that duplicate apps already in the App Store may be rejected, particularly if there are many of them. 2.12 Apps that are not very useful or do not provide any lasting entertainment value may be rejected. 3.1 Apps with metadata that mentions the name of any other mobile platform will be rejected. ... 9.3 Audio streaming content over a cellular network may not use more than 5MB over 5 minutes. ... 15.3 "Enemies" within the context of a game cannot solely target a specific race, culture, a real government or corporation, or any other real entity.
Overall, Apple's changes to their developer programs were well received, although there were still concerns about the restrictions.
Ron Bodkin is the Founder of Think Big Analytics, which builds big data solutions using Hadoop and NoSQL.
Want to know how software releases can be stress-free and happen with one click? Try Go free!
Accelerating Software Delivery
Agile Development: A Manager's Roadmap for Success
Go: Agile Release Management Solutions. Go enables predictable, defect-free and timely software releases.
I have no plans to develop for this platform, but when I saw these restrictions I decided that I would never even consider it. In my view anybody who even thinks that this was a reasonable approach has major problems.
It's refreshing to see this change. There will be permanent suspicion about what might happen in future. Restrictions are still there. Your work still funds the company. But a great move.
Well done Apple.
That would be great for teaching kids how to program.
I would like to port my site, scrabblecheat.com but all I know is C++ and c#. Java I can do as it is like c# but objective c was weird.
I hope they allow these other languages so I can my site to the iphone.
Would be very fun.
Search for "java to iphone cross compiler" and "c# to iphone cross compiler". I don't know how good these tools are but there seem to be some out there.
C++ was allowed previously. Unofficially MonoTouch (C#) was allowed but now officially. It will cost you though.
Bob Ippolito explains how to solve concurrent update conflicts with Statebox, an open source library for automatic conflict resolution, running on top of Riak.
Erik Onnen attempts to demonstrate that Java is still the best programming language for the JVM if simplified idioms are used along with proper tooling.
Approaches to integrating data are changing with emergence of cloud computing.
Michele Ide-Smith presents the lessons learned in the process of introducing UX principles and techniques into a large organization through a series of small steps.
Dave Farley and Martin Thompson discuss solutions for doing low-latency high throughput transactions based on the Disruptor concurrency pattern.
Rajneesh Namta shares his thoughts, experiences, and some of the critical lessons learned while implementing software test automation on a recent Agile project.
Dale Schumacher presents several patterns of actor interaction that can be used in collaborative programs written in any language.
Rúnar Bjarnason discusses Scalaz, a Scala library of pure data structures, type classes, highly generalized functions, and concurrency abstractions to perform functional programming in Scala.
5 comments
Watch Thread Reply