Ripple v0.5.0 Released: Announcing BlackBerry WebWorks Support

It has only been a month since we announced the acquisition of tinyHippos by RIM. But what a great month it has been! We’ve had a great time getting comfortable in our new environment and have had the pleasure of working with some really awesome people here.

Today, we are very pleased to announce that we are adding support for BlackBerry WebWorks 2.0.0 to Ripple. This support includes most of the APIs in the WebWorks stack as well skinning for 3 supported BlackBerry devices (The BlackBerry Torch, BlackBerry Bold, and the BlackBerry PlayBook).

If you don’t already have Ripple installed, we invite you to install it and take it for a test drive. You can also visit our docs page to see the extent of the WebWorks support as well as what’s new in this release.

We also invite you to read more about this release and other great news about the WebWorks road map on the BlackBerry developer blog.

Happy coding!

Quit Yo Jibba-Jabba And…

Continue reading

Some Observations On Asynchronous Programming In Client Side JavaScript

Programming operations asynchronously in client-side JavaScript can make life a lot easier. Lately, I found myself wondering what async truly means in this case, did some investigations and figured it would be worth mentioning.

Continue reading

JIL on Android: Thoughts

The Android release of the JIL Widget Manager came out a little while ago with support for Android 1.6 and 2.1. You can download the Android (or Nokia S60) runtime here, listed under “Widget Run-Times”.

Installation

Installing the widget manager and runtime is pretty straightforward. You download the .apk file to your sd card, then install it as an Android app. (Installed as the “Apps” application). From there you can open .wgt files (using a file browser like Astro) and promptly install them with the widget manager. Configuration is more flexible on this runtime as it seems able to install JIL 1.2.x and 1.0 based widgets as well as Opera based widgets.

Now you are rocking the JIL widget manager on Android, time to see what it can do.

First Thoughts

The Android version of the JIL runtime and widget manager seems to be built upon Opera Mini’s widget manager with extra support for JIL baked in. This also means it’s a presto based rendering engine (unlike LiMo’s widget manager). Webkit would of been a much better renderer to go with in my honest opinion (like on LiMo’s runtime renderer), but building upon and leveraging the Opera runtime it can provide some extra capabilities for developers such as remote debugging (with Opera 9.64) and a baked in widget manager.

All in all I’m still very giddy to get my hands on this upcoming widget manager.

Continue reading

Modular Programming Patterns With JavaScript

These days, if you search around the web even a little, you will eventually come across many examples, tutorials, code snippets, libraries and more on JavaScript (i.e EMCAScript). Unfortunately it being a very flexible and easy to learn language, a good bunch of it is is not an ideal example of good practices. Then again a lot of the examples are very helpful too. Best bet, go to the library, bookstore, amazon or any other veritably knowledgeable source, and do some reading. Don’t forget to get your hands a little dirty by writing some code too!

For those of you that have been trained/educated in using classical object oriented languages, JavaScript will feel a little foreign. And, if you’re like we were when we first started using JavaScript as our platform, you’ll want to apply your OO knowledge to JS… please don’t, you’ll just hurt yourself :-)

In this article we’re going to present our favourite way of creating objects and doing inheritance. Keep in mind, this peg will not fit into just any size hole. Take the time to learn JS and then apply the patterns that match your needs best. We recommend this book to get started:

JavaScript: The Good Parts (very short book, and a must read)

Continue reading

CSS Priming For Fun Part 2: CSSPrimer 0.1

A while back I did a small post on parsing HTML/XML files and extracting the ids and classes into a generated CSS file. I finally got around to refactoring and packaging it into a ruby gem. This can help you rapidly prototype your markup without having to write the CSS at the same time. Use the gem to generate a scaffold CSS file that you can then fill out. The generated CSS file can also be used as a template for generating multiple “themes” for your html/xml markup :-).

You can install the CSSPrimer gem  as usual with ruby gems.

–> gem install css_primer

For full documentation and examples check out the source code on github.

Next plans:

  • get a working Redcar plugin!
  • generating a CSS file from multiple html source files

Ripple Emulator Documentation, At Long Last!

There are only so many hours in the day but finally we have collected all the Ripple documentation and centralized it.

If you have been checking the community website recently you may have already noticed the Docs tab, which linked to an initial release. Since then we have been adding on more and more.

What does this mean?

  • Get all the information and updates you need from the documentation as well as the community forums
  • The @RippleEmulator and @tinyHippos twitter accounts along with our Blog will still feature Ripple content, but our goal is to always mirror that content in documentation

What can I find on there?

  • Tutorials and Documentation on using Ripple itself
  • Working with specific widget platforms with Ripple and what API’s are currently supported
  • Links to useful articles and resources

You can view the docs at http://ripple.tinyhippos.com/docs.

Please keep in mind the docs are a work in progress and are susceptible to frequent updates and additions.

If you have any ideas, wants, desires or just plain old feedback about the documentation (or anything), please feel free to bring it up in the forum or even contact us directly at ripple [AT] tinyhippos.com.

Remember, it’s you the user that gives us the most valuable feedback.

Happy Coding!

Redcar: An Open Source, Extensible and Cross Platform Text Editor.

For the past months I have been following the development of a very interesting text editor called Redcar. Redcar was created by Daniel Lucraft and since then it has started to grow with community contributors, features and plugins.

Redcar currently:

  • Supports TextMate bundles, snippets and themes.
  • Has a low barrier of entry (and even lower…) for plugin development.
  • Runs on Windows, Mac and GNU/Linux.
  • Is written in Ruby and runs on JRuby (though you don’t need JRuby to run it).

Another good place to get your head wrapped around it quickly is here. Still being actively developed, it’s still a little “rough around the edges” but definitely worth a look!

Reference Links

http://redcareditor.com/

http://wiki.github.com/danlucraft/redcar/faq

http://danlucraft.com/blog/

CommunityEngine: The Play-Doh for a Rich, Functional and Decoupled Social Extension to any Rails application

Lately we have been working diligently on getting the Ripple Community website up and running. A daunting task in itself, not to mention alongside launching our flagship product The Ripple Emulator into Beta!

Our ideal goal was to find a solid and easy way to integrate a solution that could help save a lot of time researching and writing the social extensions of the site that we needed.

Eventually, we came upon CommunityEngine and promptly opted to integrate it.  A featured- packed, open source Rails plug-in that seemed to have what we needed including; forums, blogs; and much more. Currently it provides a very powerful, decoupled and extensible integration into your existing application. The end result:  we were able to deploy a full blown social media site for Ripple in about three weeks.

So far, we have been enjoying working with it. Models, views and controllers can be easily overridden or extended while keeping the plugin files unchanged and easy to update. A bonus for us was the use of Authlogic as the user authentication mechanism. Sweet, now all our previous User (model) code is just plug-and- play with the fused in User model from community engine’s implementation. Or  just override the User model to match your own needs.

Sending email with Gmail and Rails, while supporting multiple Ruby versions

Recently I have been working on a Rails app hosted on our deployment server (Heroku) and trying to get ActionMailer and Ruby working with Gmail’s SMTP service. The one catch is you need to use the TLS protocol and prior to Ruby 1.8.7 (Rails 2.3+) you need to write your own wrapper.

Heroku (still using 1.8.6 on some servers) had a nifty addon (now just a blog post and a Rails plugin) that has a TLS wrapper and configuration for ActionMailer’s  SMTP server settings. Awesome!

But… the plugin still fails to work on a platform with Ruby 1.8.7! Most notably my local development environment. Fortunately the internet is great and solutions can be found.

But… something inside of me still wanted to take advantage of the built in support. So I quickly went ahead and did just that and posted my changes to the Heroku google group (a working alternative to the plugin is mentioned here as well).

Hopefully this helps anyone looking for the same answers as me.

* Update *
Heroku just updated their platform (with a complimentary blog post) to support painless migration to updated deployment stacks (including 1.8.7 and 1.9.1).

Follow

Get every new post delivered to your Inbox.