Your current filters are…
An introduction to Rhodes” - Mobile Apps Development has taken by storm after the introduction of iPhone and the App Store. Its a long way with others like Android, Blackberry etc entering into the arena. Developing mobile apps for each device and mainting different code bases is not so DRY and its too time consuming. Presenting one of the frameworks that uses Ruby & HTML so effectively in developing crossplatform mobile apps with one single code base all written in Ruby!
Rhodes is an open source Ruby-based framework for building locally executing, device-optimized mobile applications for all major smartphone devices. These applications work with synchronized local data and also take advantage of native device capabilities such as GPS, PIM contacts, camera, and SMS. Yet you write the majority of your interface with high productivity in HTML and Ruby. Rhodes allows you to write an app once and it will then run on all iPhone, Windows Mobile, BlackBerry, Symbian and Android smartphones. During this session we'll build a sample app for all mobile devices, from scratch, in minutes.
by Sai Venkatakrishnan and Hari Krishnan
Ruby is a wonderful language for rapid development, it is easy to learn, we have wonderful frameworks, an active and dynamic community. But when it comes to concurrency Ruby is plagued with problems, controversies and urban legends. A lot of people would know about green threads in Ruby, GIL and its inherent limitations. But that it only one part of the big picture. Ruby offers much more than threads to helps us with concurrency.
This presentation explores other options of writing highly concurrent applications in Ruby and options available in it. We cover topics ranging from Actor like message passing concurrency in Ruby, dataflow concurrency of how we can coordinate across different threads, Event driven methods, coroutine based concurrency which never blocks ;) and finally Software Transactional Memory. We look at lots of code, some serious looking yet colorful performance graphs comparisons, and conditions at which each of these forms are concurrency are effective and ineffective.
by Hemant Kumar
I have been building client/servers in Ruby for past 3 years and drawing from that experience I would talk about Threads in Ruby, Reactor pattern in Ruby, Eventmachine, Revactor, Packet, Actor pattern in Ruby, protocol parsing (ragel). Touching upon various threading implementation in MRI1.8, Ruby1.9 and JRuby. Best practices regarding threading. Writing threaded clients/servers. When threading model suffices and when it breaks down. Non-Blocking IO in Ruby. Select VS other advanced selectors. When to use NIO model and when to look for alternatives. Using Actor pattern in conjunction with Reactors for better scalability. And at last if time permits, I would present my ideas on building better network protocols and using ragel for protocol parsing.
by Arun Gupta
GlassFish is an open source and production-quality application server with full enterprise support from Sun Microsystems. In addition to traditional Java EE applications, it allows applications developed using different Ruby frameworks to be easily deployed as well. The choice of application frameworks is also available for Groovy/Grails and Python/Django apps and can be easily extended further.
This talk will demonstrate how GlassFish provides an extensible framework that allow applications created using different Ruby frameworks can be easily deployed. The attendees will learn the different deployment models available in GlassFish through live coding examples and several customer use cases of Rails deployments on GlassFish. The talk will show how Rails, Sinatra, Merb and any Rack-based framework can be easily deployed on GlassFish. It demonstrates how popular Rails applications can be easily deployed on GlassFish without any modification, and shows how GlassFish Gem can be used as an effective alternative to WEBrick, Mongrel, and other traditional deployment models.
It also explains the inner workings of GlassFish so that developers understand what’s happening under the hood. It will explain how standard Java monitoring technologies like JMX can be used to monitor/manage these applications.
The session also demonstrates how NetBeans provides a comprehensive IDE for developing, running, and debugging a Rails application directly on GlassFish – all without using any Java code.
by Vineet Tyagi
Would you like to know how to build an application server from scratch? This talk would provide an insight to the thought process and the key decisions made while building WebROaR from grounds up using C & Ruby.
What enables this server to deliver high performance and also offer a rich bouquet of integrated features like Analytics, Exception Notifications etc? If gaining knowledge about design of a good software product interests you, do join us for this interactive session.
by Aman King
Asked to design an object-oriented solution to a problem, most of us would come up with a list of classes and an idea of how they'd interface with each other. Some might even figure out the class hierarchies and the methods involved, not to mention the methods' arguments. Those who desire further details would begin thinking of the data fields to be placed in the classes. This class-driven technique for coming up with OO solutions is a well-known one, and almost all OO languages support this by providing constructs to represent classes, methods, attributes, inheritance, and so on.
A language like Ruby, however, goes a step beyond to provide certain features that pertain not to classes but to "objects", independent of their class hierarchy. And yes, unlike conventional languages like Java, there is a clear distinction of whether the concept applies at a class-level or an instance-level. Take for example access modifiers:in Java, when a method is made private, its privacy is tied to theclass; two objects can call each other's private methods as long as the calling and called codes reside within the same class definition. In Ruby, if a method is made private, the method cannot be invoked by any other object, even from code that originates within the same class. Similarly, Ruby allows a method to be defined at an object-level, making it available only via that particular instance and not any other object, even of the same class. And, of course, there is "duck typing" which says that for a method to be invoked on an object, what matters is not what class the object belongs to but whether such a method exists for the object or not.
Such features are shifting focus back to the "object", and are gradually leading programmers to think more about objects and their interactions, rather than class-related concerns. This makes for a more lax and open playing field that retains the cleanliness and maintainability of a class-based approach while encouraging newer ideas that tend towards a truly "object"-oriented solution. My session will expound on this thought, providing examples to delve deeper into the OOP mindshift that is coming about and the benefits thereof.
India's up and coming startup culture is one that's been long-overdue. While the country's large pool of talent and artistic minds is primed nd ready for starting up hundreds of innovative web companies, the reality is that not many exist, and the ones that do rarely compete on the global stage. While the problems facing new companies in India are well-known, there are alternatives to going the 'traditional' startup route.
This open-ended talk will put forth some new techniques for Indian entrepreneurs to compete globally, by leveraging agile and rapid development efforts using Ruby that directly appeal to cash- and time-strapped founders. There will also be some discussion on growing your startup, finding good developers, helping build a community of like-minded individuals locally, and pointers to next steps. The last quarter of the talk will be an open-mic Q&A session that will help directly identify pain points for entrepreneurs in India and possible solutions to the same.
We know that testing is important; that separation of concerns is important; that modeling our domain is important; and that their are often many domains within an application. So why is it that most of the view engines make it so easy to break all these important activities?
View engines, such as erubis and ERB, make it so easy to break the model-view-controller-paradigm by allowing turing-complete code in the view. It is so easy to pull the database into the template by making calls such as <%= Order.find(:all, :conditions => { :status => 1 }) %>. Oh no! Now separation of concerns is thrown out the window, closely followed by testability and domain modeling.
Never fear - there is a better way! By following the teachings of String Template, we can introduce a strict enforcement of the model-view-controller-paradigm. In this session, we will highlight the problems with the existing engines, explore the possibilities of String Template and introduce Slippers - the ruby port of string template.