|
I got a "PACKAGE RECEIPT NOTIFICATION" email today. Not being sure what it was, I figured I'd pick it up on Tuesday, when the package center reopened. However, walking to lunch today, I noticed they kept it open specially, for Valentines Day (or Singles Awareness Day, or whatever, depending if you're Nate, Carol, or the rest of us)... I stopped by, and now I'm the proud owner of two copies of the second revision of the Intervalometer board!

I got it all soldered up today, and it's working wonderfully so far! I made the jump to 3.3V (with one of Sparkfun's new 3.3V LCDs); I haven't gotten output hooked up yet, and won't, today, since I have to finish some stuff with the secondary microcontroller that's in charge of the trigger and output and stuff... including actually acquiring the exact chip I'm going to use there.

Here's a shot of it, all clean-like, with the LCD attached, and power from a 3.3V regulator:

The code/schematic/etc. is all in bzr, the pictures are all on Flickr!
I'll keep writing, especially once I make a box (which I can do now!! finally!)
2009.02.03 in code and gnome
Robb just posted a bit about what we've been working on recently... I won't talk about everything, but I will repost the two awesome videos:
The game I wrote over the last few days, in Seed, using Clutter and stuff:
Same Gnome Clone — In Seed! from Tim Horton on Vimeo.
Robb's Tetris, done in Vala and Seed together (and Clutter, of course):
Tetris from Robert Carr on Vimeo.
Pretty cool, both!
Also, we have a Planet, just for the lols. It updates every hour, I hope (waiting for 1PM to see if Robb's post and this one show up). Aggregates Robb, Matt, Carol, Savvy, and I. Ha!
Epiphany extensions are pretty cool, too. Robb's post talks all about what to do with them. Really you'll know a lot more if you just go read his post!
EDIT: I've removed the Vimeo embeds so that Planet is happier.
2009.01.31 in code
Hey! Following Robb's recent blog post about an implementation of Life as a GLSL shader, I now present to you a Mac OS X screensaver in the same style (using his shader and the original GPULife source).
Screensaver
Source
It's been a long time (20 days) since my last post — in that time:
- I've moved back to RPI and gotten settled in.
- We have a new President! And he's already doing a much better job. *high hopes*
- Robb and Matt (and Nate!!) and I have started our next project after Seed. I can't tell you about it yet, because we want to wow everyone once it's done.
- I sat through a 3 hour lecture by RMS, who then stayed in Matt's dorm room, down the hall, and went to dinner with Robb and Matt! (more about this experience later)
- I finished and ordered the second revision Intervalometer PCB, this time, for a "dual-core" intervalometer!
- We've had two weeks of class. LITEC is ... incredibly disorganized but awesome; Graph Theory is boring and, so far, a repeat of DSA; ModComp... we'll see; SD&D is strange because it involves designing and writing software with a group of people that I don't know (they all seem cool, though!).
- Seed got a writeup in Ars Technica, which was reposted to Slashdot and OSNews, and prompted #seed on Gnome IRC to become slightly busier than usual!
- I got Seed working reasonably reliably on Mac OS X, and am working on MacPorts packages (waiting on a new gir-repository release), and wrote a Seed/Clutter Pong, though it's really rough and useless at the moment!
- WebKit passed revision number 40,000. This would not be notable except for the fact that Matt has spent most of his waking hours attempting to create Arch binary packages for every single revision of WebKit.
- New pictures! Not much, just of all of us (and of Matt's RMS-signed laptop), but still cute!
2009.01.02 in code and gnome
Robb, Matt, and I finally wrapped our the second Seed release this week! It's the cumulation of almost two months of continued work...
I completely updated the tutorial, and it uses a new coding style which we're going to use universally from now on (I also partially updated Lights Off to this style...) It should definitely work on Fedora now, too!
There are packages for Seed in our PPA, if you use Ubuntu. Matt has provided us with a Arch package that builds from SVN, as well. Otherwise, grab it from SVN and build it yourself:
svn://svn.gnome.org/svn/seed/trunk
A slightly shortened version of the Changelog, after the jump...
Seed 0.3, Wednesday Morning 3AM (2009.01.01)
- Memory usage is excellent, finally.
- Innumerable bug fixes.
- Structs work now! Things like GdkRectangle: you can allocate them, get at their members, etc.
- GObject subclassing, which was rushed in to a 0.1 point release, is reliable now! We've also added signal installation.
- Multiple context support, rather than the silly global context.
- Support for string array argument conversion.
- C extension Modules (readline, Multiprocessing/pipes, sqlite3, canvas)
- Signals use userdata now. The 'this' argument was removed, as it really just lead to organizational issues.
- object.signal.connect is defined for connecting by strings (allows for connecting to detailed signals, like property notifications)
- 'out' arguments of methods work.
- Enums use Gtk.WindowType.Normal instead of Gtk.WindowType.normal, may break existing code in subtle ways (as Gtk.WindowType.normal will now be JavaScript null).
- Licensing update - libseed is LGPL. The trivial examples are BSD, the more complete ones are GPL.
- External API is pretty usable now, and comes with a turtle graphics example.
- Threading sort of works now. It's rather unpredictable, but async callbacks and stuff are fine.
- Many more Seed examples. Ranging from a Gnio Server to threading. The browser example is pretty neat now, and has sqlite bookmarks, WebInspector, and a few other tidbits. lightsoff and browser are the two highlight examples to play with.
- New builtins: Seed.spawn, Seed.repl/glib_repl/thread_repl. They're all somewhat useful for debugging.
- Removed builtin: Seed.prototype: Now use Gtk.Window.prototype
- Removed builtins: Seed.closure/Seed.closure_native: automatically handeled
- Removed builtin: Seed.readline: Moved to readline module.
2008.12.23 in code
So! I recently realized that the dump probably wasn't the best way to share code. Actually, that's not a recent realization... I just finally got around to doing something about it.
Anyway — I decided to move things into a bazaar repository. There's some code there already, and I've been actively using it for stuff I'm working on now (which I'll write about later). Also, a bzr copy of WebKit, because Robb had forgotten about git://git.webkit.org/WebKit.git, and wanted a DVCS copy of WebKit to help him out... it took quite a few days to generate, so I'm going to leave it there (and keep it up to date).
The repository is accessible through a loggerhead web interface, at:
http://www.hortont.com/bzr
If you have SSH access to Jayne, you can use:
bzr+ssh://www.hortont.com/bzr/project
to access the repository. You can also create new repositories, and commit to my stuff (but be nice!). Make a new subdirectory of /bzr on Jayne and bzr init inside of it — everything's writable by all of you.
If you don't have SSH access, you can check out projects with:
http://www.hortont.com/repo/project
Anyway... have fun!
P.S. You might want to update your bzr install. I use rich root, for the bzr-svn stuff (WebKit, nano), so you need a recent version. I'm not even sure the bzr that shipped with Intrepid is new enough.
EDIT: This is no longer true; I've moved some things to Git, which is how I'm storing everything from here on out.

Just after Thanksgiving, I ordered an Asus Eee PC 901 from Amazon. I had a few reasons for this rather large purchase: first and foremost, I want to work on Wayland with Robb, but need an Intel graphics card (we're planning on making this our RCOS project for next semester); it's fun to tell people I bought a new computer just to obtain a crappy graphics card; in addition, Kaylee's starting to show signs of age (being a year and a half old, and stuffed in my backpack and banged around daily... college life is not easy on a laptop, just ask Robb's, or Anthony's...), so I thought I should take a little stress off that machine; also, a little tiny laptop makes more sense in the classroom, gets out of the way more, and it's just plain adorable.
The machine I got is the Linux version, of course (more about that later). Intel Atom at 1.6 GHz, 1024x600, 9" matte display, keyboard about the size of my fingers, 20 GB SSD, 6-cell battery (lasts about 5 hours, though without wireless it's more like 8, and without X, 9), 802.11n, bluetooth, etc.
So! What have I found?
I love the keyboard. I wasn't expecting to so quickly adapt, but it's just fine for me! I'm writing this post on it, I write code on it, typing is no problem whatsoever. The small screen is no problem, either — it's led to me thinking a bit about how I use a computer, and I'll show you what's come of that later... it's plenty bright, too. The wireless card is extremely strong (comparable to, or perhaps better than the Thinkpad T61, worlds better than my MacBook Pro)... the camera is acceptable but I really don't care about little integrated webcams. The build quality is perfectly acceptable, it's no aluminum MBP, but it's not as flimsy as, say, the poor parts of the T61 (everyone I know with a T61 has parts flaking off... unsurprisingly, if you play with it for a minute). The design is ... poor, but not as poor as your run-of-the-mill laptop. To be honest, the Dell Mini 9 design is far superior, just in terms of jutting bits and the overall material consistency. For some reason, Carol prefers the Eee's design over the Mini, but she also has a sunshine-yellow, cursive-font Amarok... (just teasing!)... here's what it looks like, and it's a reasonably adequate explanation of the feel of the design of the Eee, if the Mini 9 is iTunes: (and mind you, we still love Carol, just like we still love the Eee!)

The SSD is awesome, though it could have been significantly more awesome. It turns out Asus ships different SSDs in Europe vs. America; Europeans get transfer speeds of ~80MB/s, which is only slightly slower than Jayne's epic hard drives. However, my Eee (and many of the other American Eees) only gets ~30MB/s, which is closer to the speed of the T61's hard drive. Nothing horrible, but certainly nothing to write home about, either. None of these speeds compare at all to the >200MB/s that people are getting with the new Intel SSDs, but those cost twice as much as an Eee by themselves! (someday, someday, I keep promising myself... two years, perhaps, with my Nehalem laptop :-D) In any case, it's really really nice to be able to swing the machine around without worrying about moving disks, especially with it being so small and light! (it's really too bad that there's still fans... and more unfortunate yet that the Atom runs warm...)
The trackpad is no problem, though I of course have the same problems with it as I do on my MacBook Pro: I cannot obtain an acceleration that I can deal with. I wish there were a magical "match OS X's mouse acceleration" button, but there's not... perhaps there will be in Wayland's input system. Wink, wink, nudge, nudge.
The Xandros install that ships with the machine is a piece of crap. Whoever thought that shipping Xandros was a good idea... needs to talk to whoever wrote the epic Ubuntu-based launcher that ships on the Mini 9. Anyway... after taking ten minutes to determine whether I had accidentally ordered a Windows XP Eee, Robb and I spent a few more minutes laughing quite hard on the floor in our room before grabbing an external CD drive and installing Ubuntu.
I've since hacked up my Ubuntu install quite a much: instead of a full GNOME, I'm using awesome, a tiling window manager, scriptable with Lua. This way, windows take up the full size of my display, always... I have nine "tags", which I currently use purely as virtual desktops, but which actually carry a bit more recombinational power that I have yet to learn to make use of. I keep Pidgin on the last tag, Thunderbird on the second-to-last, Firefox on the middle one, and tend to work on the beginning tags, heading right. This has worked well for me so far, though I think it's rather unconventionally simple compared to the crazy flexible way most awesome users work.

I've constructed a tiny kernel that has just what I need, and massively edited boot and shutdown scripts. Boot is between ten and fifteen seconds now. Halt/reboot is like three, as it's basically just a sync and power down. I'd be able to do five second boot if I had one of the 80MB/s SSDs, but ... I don't!
There's a bunch of buttons built into this silver line between the keyboard and the hinge — I've got them set up to a) play the Jayne song, from Firefly b) xkill c&d) turn on and off the VGA port, auto-detect its resolution, and (if turning it on), set the background to a plain color, for "presentation mode". They're pretty cool, even if I don't usually like extra buttons. I use GNOME-Do for most other launching tasks...

The new hostname is Simon, of course, what with the Eee being a PC (so it must be male), but rather effeminate, and fitting in with my recent Firefly naming scheme...
2008.12.18 in code and gnome
Somehow Robb and I got on the topic of two-finger scrolling in Linux, the other day.
Now, being a Mac user, I'm rather used to pixel-precision two-finger scrolling...
Here's what you usually get in Linux:
Bad scrolling from Robert Carr on Vimeo.
Here's what you get now, with Robb's patch to Gtk and the Synaptics driver:
Awesome scrolling from Robert Carr on Vimeo.
Read more on Robb's blog.
P.S. The browser he's using there is our currently-under-development 'complete' Seed browser.
2008.11.23 in code and gnome
Here's the video I promised in the last post...
Lights Off v.2 from Tim Horton on Vimeo.
It's been a while since I've written anything terribly much here, so I'm going to make a nice rambling post spanning various different subjects...
Firstly, Seed! We're going to spend a lot of time finishing up Seed 0.2.0 during the next day-cycle (whatever that means, these days — last night, I went to sleep at 8PM and got up this morning at 4 to do homework...). We'll most likely release this weekend. Robb's changed the core a lot this time around — we get struct support, a much, much better memory footprint, GObject properties (and, probably, signals) from Javascript, Cairo support (it's not pretty, but it works!), many improved examples and tests. Also, exceptions work in a lot more places now, making it much easier to debug apps.
I've also been rewriting Matt's Lights Off example in Clutter — I'll upload a video when I get back if I can figure it out — it's incredibly awesome!
On another note: I got female headers and got the LCD interfaced properly to the PCB; I've taken lots of notes for revision B of the PCB, which should be the "final" revision. I've also started a Keynote (I'll post it here when I'm done) that I'm going to present to E-Club closer to the end of the semester, detailing the project from beginning to "end", as well as what I learned about executing a "project".
As for school — everything's wrapping up; last horrific diff.eq. homework next week, last data structures lab next week, etc. I'm currently in the middle of the last project for VisComm, which is where the muffin pictures on Flickr come from. You really need to take a look at this one full-size... it's... scary!
I'm calling Carol's landlord later tonight to schedule an apartment tour... yikes!
|
|