Posts tagged developer
Six years ago, Swedish programmer Jonas Bonér set about trying to crack some of the most challenging problems in distributed computing. These included scalability, so that a system as large as the Internet of Things won’t fail no matter how large it gets; elasticity, a way of making sure that its computing problems are matched with the right hardware and software at the right time; and fault-tolerance. And he wanted to make sure his system would work in a “concurrent” world in which zillions of calculations are happening at once—and often interacting with one another.
He may or may not have been listening to ABBA while doing so.
Bonér had built compilers, runtimes and open-source frameworks for distributed applications at vendors like BEA and Terracotta. He’d experienced the scale and resilience limitations of existing technologies—CORBA, RPC, XA, EJBs, SOA, and the various Web Services standards and abstraction techniques that Java developers have used to deal with these problems over the last 20 years.
He’d lost faith in those ways of doing things.
This time he looked outside of Java and classical enterprise computing for answers. He spent some time with concurrency-oriented programming languages like Oz and Erlang. Bonér liked how Erlang managed failure for services that simply could not go down—i.e., things like telecom switches for emergency calls—and how principles from Erlang and Oz might also be helpful in solving concurrency and distributed computing problems for mainstream enterprises.
In particular he saw a software concept called the actor model—which emphasizes loose coupling and embracing failure in software systems and dataflow concurrency—as a bridge to the future.
See also: What’s Holding Up The Internet Of Things
After about three to four months of intense thinking and hacking, Bonér shared his vision for the Akka Actor Kernel (now simply “Akka”) on the Scala mailing list, and about a month later shared the first public release of Akka 0.5 on GitHub.
Today Akka—celebrating the five year anniversary for its first public release on July 12—is the open source middleware that major financial institutions use to handle billions of transactions, and that massively trafficked sites like Walmart and Gilt use to scale their services for peak usage.
I recently caught up with Bonér—now CTO and co-founder of Typesafe—to get his take on where Akka has seen traction, how it has evolved through the years and why its community views it as the open-source platform best poised to handle the back-end challenges of the Internet of Things, which is introducing a new order of complexity for distributed applications.
How To Manage Failure When Everything Happens At Once
ReadWrite: What is the problem set that initially leads developers to Akka?
Jonas Bonér: Akka abstracts concurrency, elasticity/scale-on-demand and resilience into a single unified programming model, by embracing share-nothing design and asynchronous message passing. This gives developers one thing to learn, use and maintain regardless of deployment model and runtime topology.
The typical problem set is people want the ability to scale applications both up and out; i.e., utilize both multicore and cloud computing architectures. The way I see it, these scenarios are essentially the same thing: it is all scale-out. Either you scale-out on multicore, where you have multiple isolated CPUs communicating over a QPI link, or you scale-out on multiple nodes, where you have multiple isolated nodes communicating over the network.
Understanding and accepting this fact by embracing share-nothing and message-driven architectures makes things so much simpler.
The other main reason people turn towards Akka is that managing failure in an application is really hard. Unfortunately, to a large extent, failure management is something that historically has been either ignored or handled incorrectly.
Failing At Failure Management
The first problem is that the strong coupling (between components) of long, synchronous request chains raises the risk of cascading failures throughout the application. The second major problem is that the traditional way to represent failure in the programming model is through exceptions thrown in the user’s thread, which leads to defensive programming with the error handling (using try-catch) tangled with the business logic and scattered across the whole application.
Asynchronous message passing decouples components by adding an asynchronous communication boundary—allowing fine-grained and isolated error handling and recovery through compartmentalization. It also allows you to reify errors as messages to be sent through a dedicated error channel for management outside of the user call chain and not just throw it in the caller’s face.
The broad scenarios where Akka gets a lot of traction are those where there are a lot of users and unexpected peaks in visitors, environments where there are a lot of concurrently connected devices and use cases where there is just a ton of raw data or analytics that need to be crunched. Those are all domains where managing scale and failure are of critical importance, and those are where Akka quickly got a lot of traction.
In The Actor’s Studio
RW: What is an “actor,” and why is the actor model that’s been around for more than 40 years seeing a renaissance?
JB: Actors are very lightweight components—you can easily run millions of live actors on commodity hardware—that help developers focus on communications and functions between services. An actor encapsulates state and behaviour and communicates through its own dedicated message queue, called its “mail box.” All communication between actors is message-driven, asynchronous and fire-forget.
Actors decouple the reference to the actor from the runtime actor instance by adding a level of indirection—the so-called ActorRef—through which all communication needs to take place. This enables the loose coupling that forms the basis for both location transparency—enabling true elasticity through an explicit model for distributed computing—and the failure model that I mentioned.
The actor model provides a higher level of abstraction for writing concurrent and distributed systems—it frees the developer from having to deal with explicit locking and thread management, and makes it easier to write correct concurrent and parallel systems. Working with actors also gives you a very dynamic and flexible programming model that allows you to upgrade actors independently of each other and shifting the them around nodes without changing the code—all driven through configuration or adaptively by the runtime behavior of the system.
Like you say, actors are really nothing new. They were defined in a 1973 paper by Carl Hewitt, where discussed for inclusion in the original version of Smalltalk in 1976 and have been popularized by the Erlang programming language which emerged in the early 1980s. They have been used by Ericsson, for example, with great success to build highly concurrent and extremely reliable (99.9999999% availability—equal to 31 millisecond downtime per year) telecom systems.
The main reason that the actor model is growing in popularity is because it is a great way to implement reactive applications, making it easier to write systems [that] are highly concurrent, scalable, elastic, resilient and responsive. It was, like a lot of great technology, ahead of its time, but now the world has caught up and it can start delivering on its promises.
Scaling The Internet Of Things
RW: There is a lot of interest about Akka in the context of the Internet of Things (IoT). What’s your view of the scale challenges that are unique to IoT?
JB: The Internet of Things—with the explosion of sensors—adds a lot of challenges in how to deal with all of these simultaneously connected devices producing lots of data to be retrieved, aggregated, analyzed and pushed back out the the devices while maintaining responsiveness. Challenges include managing huge bursts in traffic in receiving sensor data at peak times, processing of these large amounts of data in both batch processes and real-time, and doing massive simulations simulating real-world usage patterns. Some IoT deployments also require the back end services to manage the devices, not just absorb the data sent from the devices.
The back-end systems managing all this needs to be able to scale on demand and be fully resilient. This is a perfect fit for reactive architectures in general and Akka in particular.
When you are building services to be used by potentially millions of connected devices, you need a model for coping with information flow. You need abstractions for what happens when devices fail, when information is lost and when services fail. Actors have delivery guarantees and isolation properties that are perfect for the IoT world, making it a great tool for simulating millions of concurrently connected sensors producing real-time data.
RW: Typesafe recently collaborated with a number of other vendors on the reactive streams specification, as well as introducing its own Akka Streams. What do the challenges look like for data streaming in an IoT world?
JB: If you have millions of sensors generating data, and you can’t deal with the rate that this data arrives—that’s one early problem set that we’re seeing for the back-end of IoT—you need a means to back-pressure devices and sensors that may not be ready or have the capacity to accept more data. If you look at the end-to-end IoT system—with millions of devices, the need to store data, cleanse it, process it, run analytics, without any service interruption—the requirement for asynchronous, non-blocking, fully back-pressured streams is critical.
We see Akka Streams playing a really important role in keeping up with inbound rates and managing overflow, so that there are proper data bulkheads in IoT systems.
Lead image courtesy of Shutterstock; image of Bonér courtesy of Jonas Bonér
View full post on ReadWrite
At this year’s Game Developers Conference in San Francisco, virtual reality wunderkind Oculus unveiled the second-generation of its much-buzzed-about hardware, the Oculus Rift. The second edition of the Oculus Rift VR headset, known as the DK2, is still very much a development kit and not yet ready for a wide consumer release.
The very first Oculus Rift took the gaming world by storm, but with low resolution and dizzying motion blur issues, the headset had obvious room for improvement. The DK2 takes the baton from the “Crystal Cove” prototype that Oculus showed off earlier this year, which addresses many of those core complaints.
So what’s new with the DK2? Oculus has upped the resolution to 960 x 1080 for each of the Rift’s two visual fields, for starters. The new DK2 also includes a custom-built camera that faces the player to track motion depth and makes efforts to minimize those pesky wires. Now only one 10′ cable extends from the Rift, which splits into an HDMI and a USB cable to provide video and power, respectively.
As for the Oculus Rift’s dizziness problem, the DK2 employs low-persistence OLED to reduce motion blur and judder, which Oculus pinpoints as the two main causes for so-called “simulator sickness,” which we definitely experienced in our time trying out the Rift. Beyond those major improvements, the DK2 ships with a built-in latency tester and an SDK with engine integrations for the Unreal Development Kit, Unreal Engine 4 and Unity 4.
According to the Oculus blog announcement:
“DK2 isn’t identical to the consumer Rift, but the fundamental building blocks for great VR are there. All the content developed using DK2 will work with the consumer Rift. And while the overall experience still needs to improve before it’s consumer-ready, we’re getting closer everyday—DK2 is not the Holodeck yet, but it’s a major step in the right direction.”
There’s still no word on a release date for the consumer version of the Oculus Rift, but it’s still very much in active development. The company may accelerate its efforts now that Sony has officially announced its own VR headset to compete with the Rift, called “Project Morpheus,” but like Oculus, Sony has no further price or release details since that system is similarly in its early stages.
In the meantime, developers interested in exploring the vast, weird world of VR can pre-order the DK2, said to ship in July, for $350.
View full post on ReadWrite
Julie Ann Horvath, an influential developer known for helping make GitHub a more attractive place for women programmers to work, announced Friday night via Twitter that she had quit her job because of alleged harassment by GitHub “leadership”:
I’ve been harassed by ‘leadership’ at GitHub for two years. And I am the first developer to quit.
— Julie Ann Horvath (@nrrrdcore) March 15, 2014
I regret defending GitHub’s culture to feminists for the last two years. I’m sorry to everyone I’ve hurt in doing so.
— Julie Ann Horvath (@nrrrdcore) March 15, 2014
Horvath wasn’t very specific about her reasons for leaving GitHub. In her comments on Twitter, Horvath implied that she quit her job because of “aggressive behavior” that was disguised as “professional feedback.” She wrote that she faced unspecified “harassment” from GitHub “leadership” (a word she set in quotation marks) for two years, adding that “[w]hat I endured as an employee of GitHub was unacceptable and went unnoticed by most.”
Shortly thereafter, she added: “Also a reminder that what looks good from the outside may be systematically fucked on the inside.” Horvath also wrote that she hopes GitHub will ask the people “responsible for abuse and harassment” to resign. In response to a question on Twitter, Horvath confirmed that her alleged harassment wasn’t sexual in nature.
Horvath delivered her broadside against GitHub shortly after she’d complained on Twitter about a post on the anonymous service Secret that, she said, attempted to “assassinate my character.” The post on Secret, submitted by someone who referred to himself or herself as “greenshirt” (presumably because the account on Secret uses a green shirt as an avatar), accused Horvath of specific types of unprofessional conduct without providing details.
It’s unclear whether Horvath intends to go into more detail regarding her accusations. As of publication, she had not responded to requests for comment by email. On Friday evening, Horvath tweeted, “I will be writing about my experiences soon.” By Saturday afternoon, though, she hedged a bit with this tweet: “I’m only interested in telling my story so that others can learn from it. It seems like my comments here may have been enough.”
We have reached out to GitHub for comment and will update this piece when and if we learn more.
Until Horvath left, it looked like GitHub was becoming a significantly progressive anomaly in the tech world. Last year, Horvath founded Passion Projects—GitHub’s first and only talk series—which invites notable women in technology to talk about their careers.
Since Passion Projects began, GitHub ditched a rug that some minority programmers found offensive. During the second half of 2013, a quarter of GitHub’s most recent 60 hires were women—and some directly because of Passion Projects, according to then CEO Tom Preston-Werner.
Horvath’s departure puts a huge dent in GitHub’s women-friendly reputation, but she said she won’t stop her efforts to make the tech community a better place for women to work. Horvath said she’ll continue to give Passion Projects talks “on the road.”
“I’m not quitting tech. I’m not gonna hide. This is my community. These are my people,” she tweeted.
Update: An earlier version of this article briefly, but incorrectly, failed to acknowledge the difference between code hosted in a GitHub repository and GitHub’s own code.
View full post on ReadWrite
Google’s head of Chrome and Android, Sundar Pichai, announced today that the company would release a new software developer kit for wearable gadgets within the next two weeks. Speaking with John Battelle at a panel discussion at SXSW 2014, Pichai mentioned that new SDK was coming from Google to help developers create Android apps for devices like smartwatches and fitness bands.
“In two weeks we are launching the first developer SDK for Android. That will lay out the vision for developers in how we see this market working,” Pichai said.
Pichai didn’t give more details of what the Android SDK for wearables would specifically entail, but it will likely help developers take advantage of current and emerging sensor technology that will be baked into smartwatches and fitness bands. Google has released similar SDKs for Android for television, automobiles and tablets.
View full post on ReadWrite
Facebook announced today that its developers conference—F8—will return after a hiatus of three years on April 30th at at the San Francisco Design Concourse. Parse CEO Ilya Sukhar announced the return of f8 at an event at South By Southwest in Austin, Texas.
Event registration and details will be made by Facebook shortly. For more information, see the F8 event page here.
View full post on ReadWrite
Google typically holds its annual I/O conference towards the end of June, but this year, the search giant will add a few more developer conferences to its schedule—one completely centered on its new experimental modular smartphone, “Project Ara.”
On Thursday, Google announced (via Google+) the first of three Ara Developers’ Conferences on April 15-16—a meeting that will be held online, with a “limited number of participants” able to attend in person. The conference will highlight the release of the Ara Module Developers’ Kit (MDK), which is a free and open platform designed to contain everything developers need to build an Ara module. (Hint: It may or may not involve 3D printing.)
The full agenda for April’s Ara Developers’ Conference will go live in the coming weeks on projectara.com.
Lead image by Google Advanced Technology And Projects (ATAP)
View full post on ReadWrite
Why ASO May Be The New SEO
App Developer Magazine
Just like the evolution of SEO, ASO is no different. It's important to include your keywords within your title and description, but you should refrain from keyword stuffing or spamming. While the Google Play or Apple App Store may not issue penalties …
View full post on SEO – Google News
PayPal—having finished its $800 million acquisition of Braintree, a Chicago-based payments company known for its developer-focused tools and customer service—is now moving its existing developer relations team into Braintree. The combined teams will market both Braintree and PayPal’s tools.
PayPal’s bigger resources and programs like its Battle Hacks events will likely help Braintree win more international business. John Lunn, the head of PayPal developer relations, will run the combined group and report to Braintree CEO Bill Ready.
One question mark: The fate of Braintree’s relatively new San Francisco office, an increasing focus for the company before PayPal bought it. The San Francisco location is a center for work on Braintree’s mobile tools, and a hub for interaction with its many Bay Area-based customers. Braintree’s Ready recently told ReadWrite that he’d be spending more time in San Francisco in the coming year.
And in a recent ReadWriteMix interview, PayPal president David Marcus acknowledged that his San Jose-based company had “to do a better job at finding places for people who live in [San Francisco] to work.”
When I asked about Braintree’s San Francisco office, Marcus smiled and said, “It’s a nice office.”
View full post on ReadWrite
The app developer community may have finally hit an inflection point for Android. A year ago mobile developers preferred Apple’s iOS, given superior tooling and revenue opportunities. Yet, today’s developers simply can’t ignore Android’s and outsized and rapidly growing installed base. Practical wisdom would say that the tide of developer interest in Android has to shift eventually, just because it is so massive and global. New survey data from Vision Mobile and Evans Data shows that the shift developer interest may indeed be starting to gravitate to Android while still remaining strong iOS.
What it often comes down to is developer maturity and experience. Broadly speaking, the new survey data from Vision Mobile says that the more years a developer has been working on mobile apps, the more likely they are to choose iOS over Android. In many ways, this is informed by geography. The presence of iOS developers and mobile consumers is very strong in the United States and Western Europe and we have seen over the course of the last several years that developers in those markets are better able to monetize their apps. Android performs well in these areas as well but is its reach is much more global, hitting nascent smartphone markets in regions like Asia, India, the Middle East, Latin America and Africa. As more users come online with Android smartphones in emerging markets, we correspondingly see new and relevant interest in developing for Android.
Developers Prefer Android
According to Vision Mobile, 34.4% of developers now choose Android as their primary application platform, compared 32.7% that first target iOS. On average, developers target 2.9 different platforms for mobile development, indicating we live in a multi-platform world. But forced to choose where to start, more go with Android.
This trend is more pronounced in tablet application development. According to a new Evans Data developer survey, 84% of those that want to develop for tablets target Android compared to 62% targeting iOS and 52% targeting Windows.
Emerging Markets, Emerging Opportunities
A little over a year ago, GigaOm surveyed the developer landscape and found that most app programmers were in North America or Western Europe. Since that is where they lived, they localized apps for those particular markets. Today there are signs that this is changing.
For example, Vision Mobile’s survey of 5,266 developers shows a clear preference for Android among new developers (see chart below).
This data doesn’t necessarily mean Android is easier or more approachable platform, though many would argue that it is. Another way to read this trend is to correlate Android development with emerging markets. Much of the growth in mobile device shipments is moving to developing economies, leading to rising developer populations in these regions.
This supposition seems to be borne out by how much Android developers make compared to iOS developers.
This data could be read, as Vision Mobile does, to “lower barriers to entry for Android developers and the use of Android among Hobbyists.” But it seems at least as reasonable to suppose that Android developers make less revenue per application because they’re building for markets that have less money to spend.
A Land Grab For App Buyers
The geography and user base of Android in emerging markets may help to explain the Evans Data finding that Android apps are developed much faster than iOS apps. According to the survey, 41% of developers targeting Android said their typical app is finished in one month or less compared to 36% for iOS and 34% for Windows Phone. As these markets boom, there’s a corresponding boom in the developer population for these emerging markets and a rush to get apps developed as fast as possible.
Apple and its supporters contest that Android serves a “junk market” where devices are bought but not used. As I’ve argued before, this is wrong. Android gets used, but in different ways than iOS devices get used.
The Android vs. iOS developer monetization gap is narrowing. This is likely being driven by developers in established markets that give Android more time and attention, but it’s also being pushed by emerging markets becoming more established. As such, with emerging markets maturing, we’re likely to see Android not only dominate mobile shipments but soon, perhaps, developer wallets.
View full post on ReadWrite