Featured in
Process & Practices

In-App Subscriptions Made Easy

There are various types of subscriptions: recurring, non-recurring, free-trial periods, various billing cycles and any possible billing variation one can imagine. But with lack of information online, you might discover that mobile subscriptions behave differently from what you expected. This article will make your life somewhat easier when addressing an in-app subscriptions implementation.

Featured in
Enterprise Architecture

EIP Designer: Bridging the Gap Between EA and Development

This article presents the EIP Designer project, an Eclipse-based tool for introducing integration patterns into an EA design, providing fluidity and continuity while filling the gap existing between EA practices and concrete software development.

News

JRuby-Prof is a new, low overhead profiler for JRuby which, unlike plain Java profilers, will generate clear, Ruby-specific reports. A new feature in JRuby is JRuby::Synchronized, a module that, when extended, will make all methods of a class synchronized.

Today, the Akka team released version 0.7 of their actors framework for the Java Virtual Machine. Akka attempts to address future concurrency challenges with a solution relying on message based actors, software transactional memory and appropriate fault handling strategies. InfoQ talked to Jonas Bonér about the intent behind Akka, its current state and adoption, and future plans.

MacRuby 0.5 has been released, with a new VM, AOT and JIT support. The GIL MacRuby inherited from Ruby 1.9 is now gone and Grand Central Dispatch support allows to keep a system's cores busy with Ruby threads.
Work on the 0.6 release is already under way; a new debugger feature is already available in the trunk.

The Unladen Swallow project that aims to speed up Python has proposed to be merged into mainstream Python. One of Unladen Swallow's goals was to remove the GIL; a new implementation of Python's GIL by Antoine Pitrou will be fairer and less intrusive on multicore CPUs. Also: Squeak Smalltalk has been ported to Android.

The ConcurrentDictionary is a cornerstone in .NET 4.0’s greatly increased emphasis on parallel and concurrent programming. But while vastly superior to what we have seen in the past, it isn’t a panacea and developers need to study its semantics carefully.

Clojure 1.1 RC1 is out and cuts the overhead of functional programming with a few new constructs: transients bring controlled mutability for persistent data structures; chunked sequences make lazy sequences more efficient. InfoQ takes a look at what makes these improvements work.

Coordination Data Structures (CDS) is designed both to be used directly and to act as the building blocks for more complex concurrency frameworks. It includes advanced synchronization tools like the Barrier, several thread-safe collections, and a couple different ways to create futures.

Task Parallel Library, .NET 4.0’s replacement for ThreadPool, got a face lift for beta 2. In addition to performance improvements, it The most important change is probably the new cancellation framework that replaces parent/child relationships with cancellation tokens that can be freely given to logical groups of tasks.

MacRuby is nearing its first RC for 0.5 and adds support for Grand Central Dispatch. A new IronRuby release is available, Ruby 1.9.2 might be delayed, and Rubinius joins the group of 1.8.7 compliant Ruby implementations.

Ruby has long been criticized for 1.8's limited green threads. Luc Castera gave a presentation at RubyNation about Concurrent Programming with Ruby and Tuple Spaces. He introduces 2 ways of implementing TupleSpaces in Ruby: Rinda and Blackboard using Redis (with plans to porting it to Erlang).

In this interview from QCon London 2009, Rich Hickey talks about Clojure. The discussion includes the ideas behind Clojure's STM support, what other concurrency primitives Clojure supports and which ones might get added in the future. Other topics covered are Clojure's AOT support, the role and implementation of multimethods, Clojure ports to other systems and much more.

Part of the Ruby language was influenced by functional programming techniques. Larry Diehl brings a declarative concurrent model to Ruby by importing the concept of unification from Oz Language with the Dataflow project.