Tech Archives, page 37

All things technology. Very popular here on Justinsomnia.

rediscovering making art

i got the coolest present from my parents this christmas, a wacom drawing tablet, but i haven’t had a chance to play with it until this afternoon because i was waiting for my new baby to arrive (see previous post).

using it for the first time (i’ve never played with a graphics tablet before) is exciting and eerie. unlike a mouse, where position/movement is relative to the location of the cursor on the screen (you can pick up the mouse and place it back down and the cursor is still in the same place), with the graphics tablet, the position is relative to the location of the pen on the tablet surface, which maps to the screen area, so if you pick up the pen and move it to another part of the tablet, the cursor mysteriously moves to that spot. it’s like learning how to mouse all over again.

another neat thing is that the tablet senses the location of the pen when it’s hovering over the surface. it only draws (or clicks) when you’re actually dragging along the surface. so you can move the pen and see the location of the cursor without drawing. in other words it acts uncannily like a real pen.

so after writing my signature like 10 times and scribbling in ms paint (the only graphics software i had installed at this point), i thought “well, might as well just draw (er, sketch) what’s right in front of me.” which happened to be a chair.

sketch of a chair

suffice it to say i’m pretty much blown away at how much fun it was to draw “into” my computer and have it look as good or better than using pen on paper. click on the image above to see the full original version.

proud father of a new baby

name X23 T42
processor Pentium III-M 866MHz
512KB L2 Cache, 133MHz FSB
Pentium M 745 1.8GHz
2MB L2 Cache, 400MHz FSB
memory 256MB 1024MB
hard drive 30GB 60GB
screen 1024×768 (12″) 1400×1050 (14″)
video integrated 64MB ATI Radeon 9600
networking 10/100 ethernet/802.11b 1Gb ethernet/802.11b/g/Bluetooth
perks CompactFlash slot CDRW/DVD, Fingerprint reader
weight 3.6lbs 4.6lbs
born February 2002 January 2005

the stork arrived with a slightly heavier baby, against some of my earlier pronouncements. after some serious thinking over the holidays, it occured to me that the need for extreme mobility (less than 3lbs) has diminished now that i’m out of school. and what i really wanted was a system that i could use to do more visual/design work, with photos, with a new graphics tablet. but i didn’t want to be glued to a desk.

disorienting blog experience

so i go back to boingboing which i’d opened in a tab (in firefox) earlier, reload the page, and start reading, like ya do. there’s this interesting post about the world’s largest book, which i send to the SILS students listserv. i notice that the post was linking to something jason kottke posted from last october, which struck me as weird (because it was so old), but maybe just something that fell through the cracks.

so i’m reading and reading, and i start seeing a few posts that i remember. the working ipod costume and pulling a lessig.

and i’m thinking to myself, “geez, cory, xeni, etc. are really falling down on the job.” it’s easy to believe that they have a mental catalog of everything they’ve posted to boingboing in 5 years, but i’m sure they’ll post something old once and a while. guess today’s that day.

so i end up reading through like three days of posts (seeing a few more dups) before i realize, “crap, i’ve been reading the archive (that i’d opened earlier today) this whole time!”

which suggested to me at least, from a usability perspective, boingboing might want to do something to visually differentiate their archives from their front page.

roll your own multiple select listbox

with a standard html select box, you can select multiple options if the “multiple” attribute is set, but you’ve got to hold down the appropriate modifier key (ctrl on windows) in order to do so.

standard html select box

as an aside: it would be interesting to study how many people grasp the modifier-key concept and how usable the modifier key is in terms of time to complete a task and number of errors.

nevertheless “experts” tend to bemoan the usability of holding down a modifier key to select multiple options, and i would tend to agree. so after a little digging around the intarweb, i discovered three alternatives. the first is pure javascript (and less than satisfying) while the latter two creatively use checkbox widgets inside an html div to create a custom select box.

so let me throw my hat into the ring with a modification on the second example above that mixes in a little javascript to improve the visibility of the selected option and works some CSS magic to perfect the borders.

custom multiple select box

view the html/css source here.

developmental stages of a computer programmer

if there were stages marking one’s growth as a programmer (aka hacker, coder), i’d be in the one where the programmer enjoys writing code to do low-level backend tasks that someone has probably already written.

i started working on a database abstraction layer before i left for ghana, basically a bunch of objects that my financial application uses to manipulate data in a database. but i’m not just building the objects that represent actual tables in my database, i’m building the underlying database interface object that they all inherit, which abstracts the difference between SQL inserts and updates, and in its latest incarnation, implements post-insert/update/delete trigger functionality. it’s pretty cool.

in a conversation with patrick, i mentioned that i feel like i’m giving myself a mini-computer science education. except my limited experience with computer science never seemed to focus on this art and evolution of programming. if i ever go back to school, i would like it to be more like art school for programmers. (does such a school exist? are there any good books on computer science/programming pedagogy? one i’ve already read and recommend is esr’s how to become a hacker.)

i think the next stage of development is one where i feel more comfortable putting together blocks of code written by other people to solve larger problems, requiring an almost intuitive understanding of how their code functions based on my experience solving similar problems.

the developmental stages of a programmer (as i see them)

  1. first exposure, tinkering
  2. solving small problems with control structures
  3. solving medium problems that other people have already solved
  4. building large applications using code that other people have written