Drupal Camp NYC 3 wrapup

Whew, Drupal Camp was like taking a drink from a waterhose. I met all kinds of folks from all levels of expertise. There were even Rails people there (gasp!). Anyway, I caught the tail-end of the performance discussion, attended an advanced theming session, and debated the downsides of server-side browser sniffing.

Overall, it was a great experience, and I’m pretty psyched about developing some new features for my own Drupal-based sites. In fact, I’m in the midst of redesigning therac25.net in Drupal. So, wiredgeek and I came up with a little rhyme that really succinctly states how I feel about Drupal:

Rose are red,
Drupal is blue.
PHP sucks,
but what can you do?

Session 2

1:21PM – Beginning modules. Finally some meat. I have been interested in developing my own modules for a while, but never knew where to get started. Here we go:

  • use api.drupal.org
  • hooks – create a dir for the module
  • create module_name.info file
  • create module_name.module file (no closing php tag, start with it, but don’t end with it)
  • if you’re creating something that makes new tables, you need a .install file. When you install and enable a module the first time, Drupal runs the hooks in the install file. The hook name is the name of the module file
  • in the uninstall file, free any variables you create
  • hook_nodeapi – operations on nodes that your module does NOT manage (on pre-existing node types) you can change weight to change execution order
  • hook_form_alter – cool

First Session

12:00 PM – CiviCRM – a few guys sitting in a room talking about CiviCRM, led by a guy who works for a competing CRM product. No one really knows a lot about CiviCRM, but we’re talking about various features and “what is it?” kind of stuff.

Drupal Camp NYC 3

10:19 AM – This is my first “unconference”. So far, we’ve had bagels and are now signing up/creating sessions for the day. It’s pretty chaotic, but that’s the beauty of it. Ken and I were thinking of doing this for a Rails Camp. Call it RuBarCamp or something.

lightbulb moment about iPhone and Safari for Windows ®

So, I watched the WWDC keynote, and I was like, “Why is Safari for Windows such a big deal that it is the ‘one last thing’ in Steve’s keynote?”

Well, it just hit me as I was reading this. Safari on Windows isn’t there to draw users to the Mac experience, it’s there so that people developing web apps for the iPhone have something to test with. The iPhone uses a “full version” of the Safari engine. Of course this needs to be tested, since each browser has its own quirks. There was no other way to test for safari than to buy a Mac. Until now.

Okay, now I can relax.

<EOL>

you never see Eden and Batman in the same room at the same time…

Of course, she’s only 2 days old, so that’s not saying much. Yes, this is a shameless plug to show off the baby 🙂

what a cute profile!

She kinda looks like a Peanuts © character, no?

kimchi is too hot!

What is daddy feeding me?

wha'choo talkin'bout, willis?

Sometimes, Eden is waaay too serious. I mean really, babies shouldn’t be worried about the merits of compiled languages vs. interpreted languages.

separated at birth?

It’s the eyebrows, man.

<EOL>

some new code

A2C and I have been working on some new code, and we’re proud to present the results to you 🙂 Here’s what it looks like:

#include <iostream.h>
#include "flushTypes.h"
#include "Michaels.h"
#include "Wang.h"

public class baby: public Wang, private Michaels {

    public:

        baby *baby::baby(mother *, father *);
        void baby::cry(time_t time, int intensity);
        void baby::eat(time_t time);
        void baby::sleep(time_t time);
        void baby::play(time_t time);

    private:

        // This function returns true if the the diaper contains something
        boolean baby::diaperCheck();
        void baby::flush(bodilyFunction flushType);
}

void main(void) {

    mother *elaine;
    father *andy;
    baby *ourBaby;

    ourBaby = new(baby);

    Michaels::baby(mother, father);
    fatherhood.run();
    motherhood.run();
    parents.sleep(0);
    new(life);
    life.begin();
}

Next, we compile the code:

$make install --SUNDAY baby

Then, we look at the results:

$ls -l
total 1
-rwxr-xr-- 1 malfunction54 michaels 19.25 13 May 15:30 EdenHopeMichaels

For those of you who can’t read the code, I’ve made a GUI that may be more intuitive for you…
a little hand

Born on May 13, 2007 (mother’s day), she weighs in at 7.00 lbs

a little foot

She is 19.25″ long

our baby!

We proudly introduce Miss Eden Hope Michaels!

holy small form factor, batman…

Back in 2002 or so, I became fascinated with small form factor computers. Those of you (okay, *both* of you) who have followed my blog for any time have probably noted this fascination.

There’s something about the shrinking size of all that computing power that really appeals to my geek-ness. I think it’s the possibilities that are opened up for putting powerful computers into more and more everyday things, like toasters, cars, appliances, etc. Or, it could be that the shrinking size of my living space has necessitated replacing all those huge, power-guzzling, noisy boxen of yore with svelte, silent, cool-running machines of the future.

Of course, Apple’s Mac mini is on my wishlist of small computers to add to my collection of small powerhouses, but today I read an article about the new pico-itx form factor designed by VIA, the leader in small form factor design. Prior to the availability of the Mac mini, VIA were the ones to watch in the SFF arena. The mini brought more features, slightly smaller size, and impeccable style to the table. To be honest, the offerings in SFF with regards to visual impact are pretty sorely lacking. I have found that Casetronic has the most attractive cases in the market, aside from Apple.

comparison image shamelessly linked from mini-itx.comSo the new Pico-ITX form factor reference design is targeted to consume about 1Watt of power under normal usage! Pretty amazing. This combined with RoHS compliance, I believe, are helping to push the industry toward lower and lower power consumption and better environmental impact.
Anyway, enough of my rambling.

saying goodbye to an old friend…

right side viewBack in my college days (seems like ages ago now), I assembled my first PC. Ah, the memories. I hand-picked my components, trying to achieve the perfect balance of cheap, good, and fast. I had selected a motherboard and CPU combo with a 486 DX2-66MHZ processor, and 2 VLB slots and 6 ISA slots. I put in my 4 MB RAM from my first computer and lived with that for a while until I bit the bullet and added 4 MB and then another 4MB, eventually having 12MB RAM. I got a SoundBlaster AWE-32 which, at the time, was *the* top-of-the-line sound card. I also got a 2X Sony CDROM drive so I could play Myst. For the graphics card, I selected a 1MB VRAM STB Powergraph 24. 640×480@24-bit color, baby (my 14″ IBM monitor couldn’t handle resolutions above 640×480). For the communications (had to get on the ‘net!) I chose a Zoltrix 14400 model. This was a *huge* step up from my measly 2400baud modem that came with my PS/1.

I also purchased a 1GB Seagate ST31220A Enhanced IDE hard drive. A mere 3 months before, it debuted at $1000. I picked up that bad-boy for a mere $500 and change. What a deal! With it, I had to get a VLB disk controller, since the mobo didn’t have a built-in HDD controller. The last piece I needed was a case to stuff all these totally ‘leet components into.

On the way home from a somewhat long night of revelling, I stumbled past the local computer shop and beheld the most interesting case I’d seen to date. The design was interesting, but not overdone, and it seemed large enough to house the many upgrades I envisioned for my perfect machine.

3/4 front view

This case lasted me several years and many fun upgrades. And, many sleepless nights fearing that I’d completely screwed something up. I remember playing Doom with an audio CD playing in the background (Usually Smashing Pumpkins). This required a TSR (terminate and stay resident) driver for the CDROM drive. Oh yes, did I mention the not-so-leet Labtec speakers? “Tiny and Tinny” was their claim to fame but for the college dorm, they were enough.

Its first rejuvenation was the move to a Pentium 100 on an Asus P/I-P55TP4XE with upgradeable pipeline burst cache (which I bumped from 256KB to 512KB). This beast had 24MB of RAM, an MPEG-1 Decoder card (the docs were all in Korean, but hey, it was free). I also splurged on a 17″ Sony CPD-17SF-II Trinitron monitor which was driven by the amazing, all-powerful Number9 Imagine 128 4MB VRAM PCI graphics engine. 24-bit color at 1152×864. I also decided to get into digital artwork and purchased a Wacom 4″x5″ tablet. Sweet. I decided to upgrade the mouse to a Logitech Mouseman Serial 3-button mouse. Count ’em and weep! I also bumped up my keyboard to a Microsoft Natural (the big honkin’ original, not the Elite). It was on this machine that I first installed Solaris x86 and Linux (Redhat, then Slackware).

left side viewEventually, I upgraded, as the case had the worst arrangement for the drive cage. Any maintenance required disassembling the entire drive subsystem, which was a lot of work back in those days. I kept the old case lying around, and eventually revived it with old parts salvaged from discarded PCs (I believe it was a Pentium in the 150MHz range), and finally, I purchased overstock components and it lived out its last days as a 1GHz Celeron with 256MB RAM on an Epox baby AT motherboard (they actually made baby AT motherboards after the turn of the century!) The mobo/CPU/RAM live on in my current linux box, but that’s another story. As you can see, it also acquired a mass of stickers. The kana on the left side is the hiragana for my english name. I lovingly glued, X-acto knife’d out the excess, and taped over it with clear packing tape to preserve it for all time.

So, It is with misty eyes and a heart swelling with emotion that I bid a fond farewell to a trusty but finicky old friend. You will be missed.