Notacon, The Ruby Platform, and More

Simulacra and simulation

Long time, no post. This blog certainly has been on the backburner recently. Have been pushing plenty of updates to the Omega Blog as well as to the project itself so be sure to check out the new additions if it's been a while (and the latest changelog entry though there have been plenty of updates since!)

For those in the Cleveland, OH area this weekend and are free, be sure to swing by Notacon where I will be giving a presentation / demo of Omega. It will be held Saturday @3PM in Ballroom III at the Cleveland Mariott East. Of course there are plenty of other great happenings at Notacon, I attended a few years back. Unfortunately, this year may be the last time the event is run due to financial difficulties putting it together. Hope this is not the case as it's a great conf, but will have to see.

Work-wise we've been making a lot of headway on automating various aspects of the the Ruby post-publishing build process, Polisher has seen alot of improvements recently. For example it is now possible to easily run a diff of a forked gem on github via it's original rubygems.org source:

  fog = Polisher::Gem.from_rubygems 'fog', '1.19.0'
  other = Polisher::Git::Repo.new :url => 'https://github.com/ManageIQ/fog.git'
  other.clone unless other.cloned?

  diff = fog.diff(other)
Patches for a RPM spec could be generated from there:
  patches = Polisher::RPM::Patch.from diff
  puts patches.collect { |p| p.title.blue.bold + ":\r\n " + p.content[1..50] + '...'.blue.bold }

One can also use Polisher to quickly retrieve this list of tags which a rubygem has been built for in Koji or to cross reference the packages in a Koji tag:

  tags = Polisher::Koji.tagged_in('rails')
  diff = Polisher::Koji.diff('f21', 'f20')
bundler_ext has also seen alot updates recently including a new release. The BundlerExt API can now be used intechangibly w/ Bundler's setup and require features which will load the gems described in your Gemfile.
  BundlerExt.system_setup(gemfile_in, :default)
  BundlerExt.system_require(gemfile_in, :default, Rails.env)

In Bundler's case the user will be prompted to retrieve missing gems from rubygems.org (via bundle install). With BundlerExt the gems will be loaded from the local system, & it will enforce that contract, any missing ones / inconsistencies will result in a failure. In both cases the ruby load path is setup to contain the only the dependencies include paths so only the specified gemset is used.

Finally of no particular relevance to the above, I've picked up a copy of Simulacra and Simulation and while I haven't gotten too far into it, it's already quite an interesting read. In a nutshell the author's main argument seems to revolve around our defining our own realities by continuously simulating our behaviours and actions (whether concious of it or not) and by accepting endless progression of Simulacra, or images which first distort, then hide, and ultimately replace the reality of that which is being simulated. Ironically it is simulation that insists that reality is real, inorder for it to have some sort of baseline, but rather since all our experience is based on perspective (which in return is influenced by behaviour and vice-versa) simulation / simulacra is reality.

The argument has been posed before, afterall wise ones and sages have been advising about the fallacies of perspective and multitude of interpretation for thousands of years, though the author does present a well constructed formal argument so far. I have to finish reading the treatise before I can comment further but am looking forward to seeing where he goes w/ it from here.

Enjoy the simulation!