ano.malo.us pretty typical actually..

In Category posts

Bored and found some photoshop brushes online

background1.png

Bruce Springsteen

Bruce SpringsteenTill now, I’ve been immune to the feline-infested ridiculousness of the interwebs. No Lolcats for me, thank you. My youtubing was free of home videos of cats doing stupid stuff. And now, suddenly, that’s all changed. Previously, a video of a cat waking up its owner would evoke mild amusement at best; now, I recognize in it some deep universal truth. From ‘meh’ to ‘awwwww’ in less than four days. The culprit for this sudden change? Bruce Springsteen — Heather’s new kitten.

I’ve never had a pet (except for a hermit crab I had for two weeks during the ninth grade but that was for a science project) and never really cared to have one. But if all pets are like Brucie (I doubt it’s possible), I can see the appeal. Anyway, that was my introduction to my new best friend. Expect more cat-laden posts in the future.

ps. The blawg has a new look. That’s not related to Brucie though.

Considered harmful considered overused

According to google, there are ~68,000 search results for “allintitle:* considered harmful“.  No wonder programming is so difficult with so many harmful techniques and methods and tools and tech.   

Giving Props

Over the last couple of weeks, I’ve used some great open-source (mostly python) tools. Here’s some pagerank-improving props:

I borked up my python installation in a 4AM egg-deleting frenzy so I installed Python 2.5 and re-installed all packages. Without easy_install and the Cheeseshop, this would have been a tedious nightmare. I’ve loved this kind of package management since the first time I did an ‘apt-get install gnome’ (Yes, I used CPAN before apt-get
but only minimally (the punctuations made my eyes hurt)).

I decided to rewrite a Turbogears webapp in Pylons. I like TG and am still using it for another project but the upcoming TG2 release seem to have a lot of non-backwards-compatible changes and so I’m waiting for that… and I wanted to check out Pylons. It’s similar to TG and I was able to copy most of the code directly. It’s nice having the flexibility to copy over the old templates with minimal changes (thanks to Genshi) and even though I haven’t had the opportunity to use them much, the webhelpers package looks really awesome. I’m also diggin this whole WSGI and paste stuff — don’t understand most of the details but enough to get it working and see its larger potential.

SQLAlchemy is easy enough to use and lets me be relational while still being hip with the ORM kids and Elixir makes creating SA models dead simple. Their DSL-magic happens thanks to what they call Statements, classes that add themselves into the containing class’ dict. This little bit of python black magic let’s you write stuff like:

class Widget:
   has_field('name')
   has_field('type')
   belongs_to('machine')

In the above example, has_field and belongs_to modify the Widget class without having a reference to it by getting the reference via sys._getframe. Hackish and beautiful.

CocoaDialog lets you create little mac GUI widgets (progress bar, file chooser, dialog boxes, etc) on the command line, passing all params via command line arguments and interacting via stdin and stdout. This has been my way of getting a little mac GUI goodness without learning Objective-C and all the Cocoa libs.

And finally, py2app let’s you stuff a Python interpreter, standard libs and any packages and modules you use into a Mac Application bundle so users can run your code just like any other mac app without having to worry about python or any dependencies. They get a native-looking app and I get python.

I’ve been working on a project that would’ve taken about 2 years to develop instead of 2 weeks had I not had the benefit of all these tools. Standing on the shoulders of giants, indeed!

Negative Zero

Zero is zero, right? Can’t have positive and negative zero? Wouldn’t make any sense!! right?

Well, as I learned, IEEE does actually define a negative zero. It doesn’t make sense conceptually but it’s used when one wants to round off small negative values to zero but still indicate that the original value was negative. In python, this results in this weird example:

In [1]: x  = -0.0
In [2]: x
Out[2]: -0.0
In [3]: x < 0
Out[3]: False

This is what I was stuck with today as I tried to figure out how to detect negative eigenvalues… which is tricky when -0.0 < 0 is False. Fortunately, Numpy has a function that specifically checks the signbit of numbers.

It’s problems like this that take so long to discover and fix that makes programming frustrating at times.

Academic journals in a networked world

Academic journals perform roughly the same function as record labels — they filter and distribute.  Both help their customers navigate the large amount of content available.  And both face potential obsolescence for similar reasons: the net makes distribution an almost zero-cost venture and facilitates filtering by the users themselves.

So, what’s a journal to do?  I think journals need to embrace the net (is fighting it even an option?) and transform from simple providers of knowledge to platforms for knowledge.    Nature seems to be taking steps in the right direction: Connotea, an online, social reference manager, has been available for a while now and recently, they released Nature Precedings as an arXiv-like preprint service for the biochem world.

The filtering that journals provide (in the form of peer-review) isn’t going away anytime soon but it’s nice to see some journals expand beyond their traditional role in science.

Introducing the ano.malo.us tumblelog

Problem: I don’t post much on this blog because I have nothing meaningful to say..
Solution: Start another one with lower signal-to-noise ratio requirements.

A Tumblelog is a type of blog with lots of small, non-editorial posts. They’re basically a list of photos, bookmarks, videos, quotes and short messages without much commentary or thought — the type of stuff most of us email to our friends. Since Tumblr provides a convenient way to create such blogs, I’ve created one to share with the world all the random junk that makes it into my tubes.

anomalously.tumblr.com

Overconsumption

1169333339.jpg

Imagine if the 2.5 million plastic soda bottles consumed in America in one hour were dumped in one big colorful pile. Or the 426,000 cellphones retired in one day. Or the 750,000 shipping containers that pass through American port daily. Sure, these images would be meaningful and a far better representation of our over-consumption than bland statistics. But who knew they’d be so beautiful? Link [via BoingBoing]

 

DelegateGcal v1.1.2

delegategcal-112.png

Install DelegateGcal v1.1.2

Here’s a new version of the DelegateGcal extension that:

I can’t seem to get the automatic firefox extension updating to work and since it’s friday evening, I’m not going to bother. If you have the older version, just click on the above link and it’ll upgrade. The update.rdf file is located here and if someone can figure out what I’m doing wrong there, please let me know.

Update 11/2007: This extension does not work with the new version of Gmail. There’s a greasemonkey userscript (not written by me) that seems to work well and has more features.

DelegateGcal

delegategcal.png

I took the bookmarklet that I quickly wrote up on friday and converted it to a Firefox extension. It now adds a link in Gmail to create a new Goggle Calendar event with the title and details filled in with the subject of email and the URL of the email respectively. This can be done on any email whether it has event information or not.

This is based on the DelegateToTodoist extension by [ICR].

Install DelegateGcal

Update 11/2007: This extension does not work with the new version of Gmail. There’s a greasemonkey userscript (not written by me) that seems to work well and has more features.

← Before After →