occasionally useful ruby, ubuntu, etc

11Jul/100

Grandparent of Ruby and Java: Eiffel and friends

I'm curious about the effort involved in writing a new programming language, and hence have been doing a little research (including watching Guy Steele's now-famous and amusing Growing a Language lecture). I know I want to target the NekoVM (primarily one of the targets of haxe, for now), but what languages should I base it on? One of the languages I've heard a good deal about about, mainly based on its design-by-contract principles, is Eiffel.

(even if you're not interested in building a new language, learning about programming languages and their design decisions increases our understanding of them and, hopefully, our proficiency with them)

11May/109

Attaching a sticky header/footer to an Android ListView

In my Android app, I have a ListView, and I want to persist a button at the bottom of the page (like how the Gmail app has Archive, Delete, and Older on the View Email screen). Unfortunately, this is not trivial, and many others have tried, but despite those suggestions, I never found something that quite worked correctly. The third article above got me actually pretty close, so without further ado, here's a working solution (images and javascript include after the jump):

Filed under: android Continue reading
6Mar/106

HTML5 Web SQL Database – Intro to Versioning and Migrations

I've been dabbling a bit with Chrome extensions, which have at their disposal HTML5 localStorage and Web SQL Database. And...the web sql database especially is pretty cool. But one thing was bothering me -- if I have a database on the client, how do I maintain the schema? The (simplest) answer is in changeVersion.

Tagged as: , Continue reading
24Jan/100

Beet, Barley, and Black Soybean Soup

For fun I transcribed my girlfriend's recipe into Ruby code that could theoretically execute, given the proper support classes. No I'm not doing much today, why do you ask?

Filed under: food Continue reading
23Jan/106

A brief introduction to Ruby, Sinatra, and Haml

Ruby and Sinatra make it ludicrously easy to make a webapp, but getting started, as with any new language or framework, can be daunting. By the end of this part, you'll have a simple template that talks back to you!

12Dec/090

Destructors in Ruby? Not quite…

So I was curious to see how destructors work in Ruby, and...they don't. Or rather, the method we do have, ObjectSpace.define_finalizer, is rather restrictive. But it does leave a loophole -- the callback method receives an object_id.

6Dec/090

LockNLoad is…locked and loaded?

I've just completed and pushed the initial version of LockNLoad, a Spring-like Inversion of Control container for Javascript, which follows the dependency inversion principle (I think I'm getting all these terms right...). Given the proper configuration, you can simply say LNL.$("my_id") and get a prototype or singleton object or function. Read on for more information.

7Nov/090

Cool free hosted tools for your Ruby webapp

Some of these are obvious (i.e. get exceptional, hoptoad), many of these aren't Ruby-specific, but I thought it might be nice to put all these in one place, at least for my sake.

Exception tracking

Get Exceptional limit: 1 app
Hoptoad limit: 1 project, 2 users

Bug tracking:

there's github, of course, if you're already using that...
16bugs limit: 1 project
I'm not including full hosting platforms, like Google Code here, but you could use those, too

Email

One-off emails (i.e. signup)

Sendgrid limit: 200 emails/day
GMail allows 500 emails/day, but doesn't offer all the doodads that Sendgrid does

Mailing list (i.e. newsletter)

Mailchimp limit: 500 subscribers, 3000 emails total a month

Customer Support

SnapABug limit: 10 reports/day
uservoice limit: 100 unique users/month
GetSatisfaction limit: 0 official reps, not hosted on your url

Analytics

There's a ton of options in this space, but I use:
Google Analytics limit: no limits, because it's The Goog
Clicky limit: 1 website, 3000 hits/day

Metrics, Monitoring

New Relic limit: no troubleshooting, optimization, etc

User Avatar Hosting

Gravatar limit: none

Authentication

OpenID

RPX limit: up to 6 providers, instead of 12

Time tracking/invoicing

Harvest limit: 2 projects, 4 clients, 1 user

Help desk thing

Just kidding, couldn't find any free hosted help desk apps

Anything else I'm missing that every webapp needs?

Filed under: ruby, webapp No Comments
31Oct/090

karmic koala finally

So I may have totally hosed my server in the process, requiring me to reimage the thing, but I finally have Ubuntu 9.10 running on it :P woot...

Filed under: Uncategorized No Comments
25Oct/090

Pleasantly Surprised: Windows 7 RAM reporting

It's the little things that show someone's listening at Microsoft that make me happy.
Vista, when it first came out, reported that I had 3.25 gigs of RAM in the System Properties dialog. Bummer, but to be expected when I put 4 gigs of ram into a 32-bit system.
Microsoft later released a "patch" so that instead of reporting how much RAM you had available, it would report how much RAM was /installed/ (aka, 4.00 GB instead of 3.25 GB). I, along with countless other nerds out there, were outraged that we had to download a third-party program to find out how much RAM was actually available.
Windows 7: Installed memory (RAM): 4.00 GB (3.50 GB usable). Huzzah! Don't know where the extra 0.25 GB came from, but at least they're trying, right?

New little discovery -- "progress bar" applications, like copying files, have their progress bar /in the system tray/. How cool is that?

*still writing this post from Ubuntu :) *

Filed under: Uncategorized No Comments