May 30, 08 by cjgibbs
This blows my mind every time I read it.
ZFS has been designed from the ground up to be the most scalable file system, ever. The file system itself is 128-bit, allowing for 256 quadrillion zettabytes of storage. All metadata is allocated dynamically, so no need exists to pre-allocate inodes or otherwise limit the scalability of the file system when it is first created. All the algorithms have been written with scalability in mind. Directories can have up to 248 (256 trillion) entries, and no limit exists on the number of file systems or number of files that can be contained within a file system.
Source: ZFS Administration Guide
May 29, 08 by cjgibbs
Does anybody else out there hate the fact that if your Gmail label is too long it gets cut off? I thought Gmail supposed to be up with the times. Would it kill them to have fluid column widths?
For example, my indiana-discuss mailing list label gets cut off just before I can see how many unread messages I have. It’s annoying. Stupid color boxes, I don’t even use them.
May 17, 08 by cjgibbs

I am now officially addicted to TrackMania United. If you have a Steam account I highly recommend you get this game. You can also play TrackMania Nations for free if you wanna try it out first.
May 16, 08 by cjgibbs
My purpose for doing this was to automate file transfers between servers. So I needed a secure copy method (SCP) without prompting for a password (SSH keys). I’ll call my two systems production and backup. I need to be able to ssh from production to backup without it prompting for a password.
On production generate your private/public key pair:
chris@production ~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/export/home/chris/.ssh/id_dsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /export/home/chris/.ssh/id_dsa.
Your public key has been saved in /export/home/chris/.ssh/id_dsa.pub.
The key fingerprint is:
bd:cf:bb:c0:30:1c:c3:5f:74:80:3b:f0:1f:82:20:bb chris@production
Put the public key file (id_dsa.pub) on the remote system you will be ssh’ing to as the authorized_keys2 file in the .ssh directory of the user you will be using to ssh:
chris@production ~$ scp ~/.ssh/id_dsa.pub backup:.ssh/authorized_keys2
Or append it if you have a preexisting authorized_keys2 file.
That’s it. You should be able to ssh from production to backup with whatever password you entered in the key generation process (or none if you didn’t enter one).
April 11, 08 by cjgibbs
This morning while I’m still asleep my wife goes “Chris your computer is making a noise…” and after repeating herself ten times I finally comprehend what she’s saying and start listening. Sure enough there was a loud clicking noise coming from my server in the other room. I figured I had just lost a hard drive but I wasn’t worried because I have a spare that’s supposed to pop into action when this happens. So I hit the power button once and listen as it shuts itself down cleanly.
Looking back I probably should have been more cautious but hey, I was still 98% asleep. When I finally got a chance to look at it, I find out the spare wasn’t actually added to my storage pool. Oops, my bad. Well I still wasn’t worried because my storage pool (all my really important data) was still up and rockin’:
peemus@serenity ~ $ zpool status -v
pool: tank
state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
see: http://www.sun.com/msg/ZFS-8000-2Q
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
c2d0 ONLINE 0 0 0
c2d1 ONLINE 0 0 0
c3d0 ONLINE 0 0 0
c3d1 ONLINE 0 0 0
c1t0d0 UNAVAIL 0 0 0 cannot open
c1t1d0 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c1t3d0 ONLINE 0 0 0
errors: No known data errors
So what did I do next? Added my spare and replaced my failed drive of course!
peemus@serenity ~ $ sudo zpool add tank spare c1t4d0s4
peemus@serenity ~ $ sudo zpool replace tank c1t0d0 c1t4d0s4
peemus@serenity ~ $ zpool status -v
pool: tank
state: DEGRADED
status: One or more devices could not be opened. Sufficient replicas exist for the pool to continue functioning in a degraded state.
action: Attach the missing device and online it using 'zpool online'.
see: http://www.sun.com/msg/ZFS-8000-2Q
scrub: resilver in progress, 0.05% done, 2h16m to go
config:
NAME STATE READ WRITE CKSUM
tank DEGRADED 0 0 0
raidz1 DEGRADED 0 0 0
c2d0 ONLINE 0 0 0
c2d1 ONLINE 0 0 0
c3d0 ONLINE 0 0 0
c3d1 ONLINE 0 0 0
spare DEGRADED 0 0 0
c1t0d0 UNAVAIL 0 0 0 cannot open
c1t4d0s4 ONLINE 0 0 0
c1t1d0 ONLINE 0 0 0
c1t2d0 ONLINE 0 0 0
c1t3d0 ONLINE 0 0 0
spares
c1t4d0s4 INUSE currently in use
errors: No known data errors
Check that out! So to recap, it was my fault I didn’t have a spare configured, but ZFS let me add my spare and replace my failed drive with it - all while my data stayed up. You can even see it scrubbing data over to the spare!
ZFS rocks.
March 12, 08 by cjgibbs
$ sudo service com.apple.DirectoryServices stop
Not fun.
March 03, 08 by cjgibbs
So in my last post I touched a little on usability and I’ve been thinking about that word a lot lately. Like how on earth are we going to create an interface to myACU that is both extremely functional and usable. And by usable I mean easy enough for Joe Shmoe freshman to figure out. For those of you who don’t know what myACU is, well it’s ACU’s student, faculty, and staff portal. From myACU users can access the standard stuff like email, calendars, documents, files, and ACU account information as well as get the latest news and participate in the ACU community. So the big question is, how do we pack all that stuff (and more!) into the iPhone?
In order to answer that question I think we need to back up and ask the following:
- Exactly what content do we want in a mobile version of myACU and how should that content be organized?
- How do we integrate that content with future applications in the learning and social environment?
- How will the content adapt based on the user? (ex. professor vs. student)
Once we have some answers to these questions the design and interface options available to us will become a lot clearer. So one day soon (hopefully) we’ll actually have some things to show off!
* Just for clarification, the acu.mobi website is more a proof of concept and a place for links to our development applications. I for one hope that the final mobile version of myACU is a lot more functional and feature-rich!
February 26, 08 by cjgibbs
If you haven’t heard, ACU just announced that all incoming freshmen will receive an iPhone or iPod Touch - the details aren’t hammered out yet - Engadget has even picked it up. There has been a huge movement at ACU pushing this for quite a while and has been fueled even more by a student/faculty/staff created video called Connected. So being the first school in the nation to do this it’s pretty big, which really puts the pressure on us to deliver the applications necessary to utilize these devices in a learning environment.
For the past couple months we’ve been ramping up iPhone development; you can see most of what has already been developed at acu.mobi (best viewed in Safari as it’s designed for the iPhone). NOTE: This is still considered a development site and not production ready. There is a protected section (requires and ACU login id) which allows us to display data customized for the user viewing the site and a demo of what you might see if you were logged in.
A lot of the content on acu.mobi is just links to external apps (like Google Docs, Facebook, etc.) that are customized for the iPhone but there are a few that we’ve developed specifically for the university environment. For example, I created an application that allows professors to take attendance in class from their iPhone. You can see it in the demo section of acu.mobi under My Classes (professor) -> Roster. It allows the professor to easily select which students are Present, Tardy, Absent, or Excused as well as automatically send an email to those students notifying them of their status. When I was a student I would have loved this because often I was marked absent when I really wasn’t and so had no way of knowing I needed to ask the professor about it.
There are a number of challenges when it comes to creating applications for the iPhone. I won’t go into all of them but the biggest is usability. Some people say content is king, well I say usability is king. This is true with any program or website but especially true on the iPhone, where you have a very limited interface. Thanks to all the classes on usability and design standards with Dr. Susan Lewis in the JMC department that I thought I’d never need, I’m able to (hopefully) design with usability in mind.
Well this is just the beginning so I’ll try to keep updating this as iPhone development starts to become more and more a top priority. Hopefully we’ll make some pretty cool apps, both general purpose and for higher education.
December 08, 07 by cjgibbs
I love it when a site that I frequent displays an error message that is actually worth reading. I’ve seen some good ones on digg.com but the one that just caught my attention was at TPB.
Eating waffles, be right back. We need some more power since we’ve been growing lately, so we’re doing additional upgrades right now. Sorry for the waiting period!
That was it. No style or images or anything else. In fact, if you view the source there’s not even an html structure. Just that sentence.
I love it.
November 02, 07 by cjgibbs
Well I finished the Crysis demo and lets just say it’s feaking awesome. It plays ok on my current system with all the settings turned to low, but it’s definitely cause for an upgrade.
What I liked most was that there was so many ways you can accomplish a particular objective. If sneaking in to a compound from one direction doesn’t provide enough cover, just try it from another angle; or use strength mode and jump right over everyone. The game allows you to follow the story line but in your very own way.
Almost there: November 16.