Posted on Nov 1, 2010

Put SAP on Your iPhone or Android mobile device – Part I

In the past mobilizing SAP has been a painful and expensive process.  Most companies went with some form of middleware that is both very costly and complicated to implement.  Others have tried to utilize the very difficult to use SAP Netweaver Mobile to put a mobile SAP application together, which typically results in a clumsy user interface.

Ladies and gentlemen, enter the age of open source paradise, where we no longer need to buy any additional software to build beautiful and robust mobile applications for SAP.  In the next several posts I will be walking you through all of the necessary steps to make that happen. Continue Reading

Posted on Oct 18, 2010

Migrating from Aptana Cloud ( Joyent ) to Engine Yard AppCloud

We’ve been a happy user of Aptana Cloud for over a year.  For those of you who are not familiar with Aptana Cloud, it was a service provided through Aptana IDE that allowed you to deploy a Ruby on Rails (as well as other framework) application to a Joyent SmartMachine in a couple of clicks, without having to know a lot about Linux and server administration in general.  For us, it was a great value – we were and still are avid users of Aptana IDE so going to Aptana Cloud for hosting was a natural thing to do.  Unfortunately, Aptana has recently announced that it is shutting down its Aptana Cloud offering on October 31st, 2010.  So we were faced with a “fun” exercise of finding a new hosting provider for our Rails application – Switchboard. Continue Reading

Posted on Sep 26, 2010

Thou shall not waste

Read a newspaper article, watch news on TV or even receive a tweet on your phone and you are likely to be faced with some dreadful image of the current economic conditions.  The housing bubble has exploded and dragged us into a hole that many still consider to be too wide and deep to crawl out of.  Those few times that you actually hear about a glimpse of hope for economic recovery is usually overshadowed by some discouraging statistic the following day.

But all is not lost.  In fact, by finding ourselves in a corner we are truly challenged to choose between needs and wants, real value and make belief, between progress and waste.   Continue Reading

Latest Pictures

Ruby on Rails Feed

  • Rails 3.2.1 has been released

    Rails 3.2.1 is out, with some fixes and doc improvements. Please check the CHANGELOGs gist for details.

  • Rails 3.2.0: Faster dev mode & routing, explain queries, tagged logger, store

    So we didn’t quite make the December release date as we intended, but hey, why break a good tradition and start hitting release targets now! In any case, your patience has been worldly rewarded young grasshopper: Rails 3.2 is done, baked, tested, and ready to roll!

    I’ve been running on 3-2-stable for a few months working on Basecamp Next and it’s been a real treat. The new faster dev mode in particular is a major step up over 3.1.

    Do remember that this is the last intended release series that’s going to support Ruby 1.8.7. The master git branch for Rails is now targeting Rails 4.0, which will require Ruby 1.9.3 and above. So now is a great time to start the work on getting your app ready for the current version of Ruby. Let’s not hang around old versions forever and a Sunday like those Python guys :).

    There’s a v3.2.0 tag on Github and we of course we still have the 3-2-stable branch as well. You can see all the glorious details of everything that was changed in our CHANGELOG compilation.

    For documentation, we have the 3.2 release notes with upgrade instructions, both the API docs and the guides have been generated for 3.2 as well, and there’s a brand new 3.2-compatible version of Agile Web Development with Rails. A smörgåsbord indeed!

    Note: If you’re having trouble installing the gems under Ruby 1.8.7, you’ve probably hit a RubyGems bug with YAML that’s been fixed in RubyGems 1.8.15. You can upgrade RubyGems using “gem update—system”.

    If you can’t be bothered with the full release notes, here’s a reprint of a few feature highlights from when we did the first release candidate:

    Faster dev mode & routing

    The most noticeable new feature is that development mode got a ton and a half faster. Inspired by Active Reload, we now only reload classes from files you’ve actually changed. The difference is dramatic on a larger application.

    Route recognition also got a bunch faster thanks to the new Journey engine and we made linking much faster as well (especially apparent when you’re having 100+ links on a single page).

    Explain queries

    We’ve added a quick and easy way to explain quieries generated by ARel. In the console, you can run something like puts Person.active.limit(5).explain and you’ll get the query ARel produces explained (so you can easily see whether its using the right indexes). There’s even a default threshold in development mode where if a query takes more than half a second to run, it’s automatically explained inline—how about that!

    Tagged logger

    When you’re running a multi-user, multi-account application, it’s a great help to be able to filter the log by who did what. Enter the TaggedLogging wrapper. It works like this:

    Logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
    Logger.tagged("BCX") { Logger.info "Stuff" } # Logs "[BCX] Stuff" 
    Logger.tagged("BCX") do
      Logger.tagged("Jason") do
        Logger.info "Stuff" # Logs "\[BCX\] \[Jason\] Stuff" 
      end
    end

    Active Record Store

    Key/value stores are great, but it’s not always you want to go the whole honking way just for a little variable-key action. Enter the Active Record Store:

    class User < ActiveRecord::Base
      store :settings, accessors: [ :color, :homepage ]
    end
    u = User.new(color: 'black', homepage: '37signals.com')
    u.color                          # Accessor stored attribute
    u.settings[:country] = 'Denmark' # Any attribute, even if not specified with an accessor

  • Rails 3.2.0.rc2 has been released!

    Hi everyone,

    Rails 3.2.0.rc2 has been released!

    What to update in your apps

    • Update your Gemfile to depend on rails ~> 3.2.0.rc2
    • Update your Gemfile to depend on sass-rails ~> 3.2.3
    • Start moving any remaining Rails 2.3-style vendor/plugins/*. These are finally deprecated!

    Extract your vendor/plugins to their own gems and bundle them in your Gemfile. If they're tiny, not worthy of the own gem, fold it into your app as lib/myplugin/* and config/initializers/myplugin.rb.

    Changes since RC1

    ActionMailer

    • No changes

    ActionPack

    • Add font_path helper method Santiago Pastorino

    • Depends on rack ~> 1.4.0 Santiago Pastorino

    • Add :gzip option to caches_page. The default option can be configured globally using page_cache_compression Andrey Sitnik

    ActiveModel

    • No changes

    ActiveRecord

    • No changes

    ActiveResource

    • No changes

    ActiveSupport

    • ActiveSupport::Base64 is deprecated in favor of ::Base64. Sergey Nartimov

    Railties

    • Rails 2.3-style plugins in vendor/plugins are deprecated and will be removed in Rails 4.0. Move them out of vendor/plugins and bundle them in your Gemfile, or fold them in to your app as lib/myplugin/* and config/initializers/myplugin.rb. Santiago Pastorino

    • Guides are available as a single .mobi for the Kindle and free Kindle readers apps. Michael Pearson & Xavier Noria

    • Allow scaffold/model/migration generators to accept a "index" and "uniq" modifiers, as in: "tracking_id:integer:uniq" in order to generate (unique) indexes. Some types also accept custom options, for instance, you can specify the precision and scale for decimals as "price:decimal{7,2}". Dmitrii Samoilov

    Gem checksums

    • MD5 (actionmailer-3.2.0.rc2.gem) = 118c83b2cddaa935d1de7534cfb6c810
    • MD5 (actionpack-3.2.0.rc2.gem) = 6b18851bc26d5c8958672f27adda05ca
    • MD5 (activemodel-3.2.0.rc2.gem) = d82f4eed949dcff17f8bf2aed806679a
    • MD5 (activerecord-3.2.0.rc2.gem) = d07806fd5fc464f960200d20ceb2193a
    • MD5 (activeresource-3.2.0.rc2.gem) = f51af240ff4623b0b6f8a4293ffa50dc
    • MD5 (activesupport-3.2.0.rc2.gem) = 01380240c12e0380c9e61c97dd45f2f1
    • MD5 (rails-3.2.0.rc2.gem) = 134f923f7d821f514abf6bdf4af62ca7
    • MD5 (railties-3.2.0.rc2.gem) = 4b3ac0f9c5da16b90a1875e8199253d2

    You can find an exhaustive list of changes on github. Along with the closed issues marked for v3.2.0.

    You can also see issues we haven't closed yet.

    Thanks to everyone!