Curia

Announcing the pyramid_assetmutator package

by on Apr.19, 2014, under Uncategorized

If you’re like me, one of the first things you do when starting a new web application project is set up a CSS alternative such as LESS or SASS/SCSS. Those who aren’t particularly fond of JavaScript might also tend to add CoffeeScript. These “metalanguages” can assist in making client-side/asset code more pleasurable to work with, as they typically provide functionality that’s “missing” in the the languages they get interpreted into.

Some frameworks (e.g. Ruby on Rails) give you support for these alternatives out-of-the-box, but in the land of less opinionated software things can require a bit more work. Since I am personally a fan of the Pyramid web framework, I’ve used the pyramid_webassets and pyramid_fanstatic packages in the past to provide this support. However, these packages are so powerful and comprehensive that they can also tend to be somewhat involved in regards to configuration, so I recently decided to roll my own Pyramid add-on: pyramid_assetmutator

Although definitely not as “feature-full” as the packages I have mentioned earlier, as of this writing it provides the following:

  • Support for piping (a.k.a “mutating”) assets through pretty much any command you like (its core functionality is quite rudimentary).
  • The ability to specify whether to have your assets “mutated” during each request, or on each “application boot” (typically best for prod setups).
  • Partial support for template language parsing in your asset files (e.g. Mako or Jinja2 template tags in your JavaScript or CSS files).
  • A unified Python 2/3 codebase.

Feel free to check it out on GitHub or browse the documentation, and share here or open a GitHub issue if you have any comments or suggestions.

Leave a Comment more...

An rsync-like utility for Amazon S3 and Google Storage

by on Dec.11, 2011, under F/OSS, Linux, Python

Every so often I find myself working on that odd job that requires syncing files with Amazon’s S3. In the beginning, I tried some of the various S3 FUSE interfaces—hoping for something that would play nice with rsync—but FUSE’s stability always left something to be desired and more often than not I’d be left with that one transfer that never would quite finish correctly.

Eventually I discovered boto and settled in to using a hacked together (but stable) Python/boto solution for these type of tasks—all the while wondering why nobody took the time to write a “real” rsync-like client for S3.

Well, this last time around I finally decided to stop whining and take matters into my own hands. After a couple of late nights fleshing out my original boto solution, I’m happy to announce what I’m calling “boto rsync”—an rsync like wrapper for boto’s cloud storage interfaces (both S3 and Google Storage).

Please take a look at the project on github and let me know what you think: http://github.com/seedifferently/boto_rsync

4 Comments more...

The long overdue “Shootout” update

by on Sep.12, 2011, under F/OSS, Linux, Python, Web Development

It’s been several months since I’ve had a chance to update The Great Web Framework Shootout, but this weekend I decided that it was time to dig in and freshen things up a bit.

Not only have most of the frameworks seen new releases since the last revision, but I finally decided to move all of the tests over to Amazon’s “release” version of the Ubuntu LTS AMI.

Below is a quick summary of what’s new in this revision:

  • All tests were performed on the updated Ubuntu LTS AMI (ami-fbbf7892 ubuntu-images-us/ubuntu-lucid-10.04-amd64-server-20110719.manifest.xml)
  • The updated AMI was configured with Python 2.6.5, PHP 5.3.2, Ruby 1.9.2p290, Apache 2.2.14 (default config), mod_wsgi 2.8 (embedded mode), and mod_passenger 3.0.9
  • Rails 2.x and 3.0 were dropped from the “full stack(ish)” tests in favor of Rails 3.1.
  • CakePHP 1.2 was dropped from the PHP tests in favor of 1.3, but Symfony and Yii were added as they seem to have considerable market share.
  • CakePHP’s caching engine was incorrectly configured during the last round of tests, and this has been corrected.

Circle me on Google+ to keep track of further updates, and feel free to contact me there with any questions or comments.

1 Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...