Archive for the ‘Technology’ Category
Bloggagain Beginnagin
In an effort to being my migration from centralized data services, I’m going to start blogging again. That means this site will update!
As I’ve told many people, I’ll be deleting my Facebook account and migrating to a Diaspora (http://joindiaspora.com) node as soon as they release their end-user alpha (although I’ve been playing with it on some test nodes and it looks quite nice). I’m also now on a mission to migrate away from Google services, and I’ve made a lot of progress… although I’ll probably be married to my Gmail account for some time (until grad school, in fact, when I plan to switch to my school’s servers if they don’t use Google Apps).
I’ve stopped using Google Chrome in favor of Firefox; I’ve set my default search to http://duckduckgo.com instead of Google; et cetera, et cetera. And it’s actually pretty fun discovering new services to use!
I’ve also started to move my music library around and organize everything on the file system. This way, I can easily swap between music players… for example, even though it has a dismal library management system, I’ve temporarily switched to VLC in lieu of iTunes. (Since I jailbroke my iPod, I can sit music right into the little device using SCP; no need for complicated Apple-Databases.)
Besides my computeristic endeavors, lots of other things are changing in my life. My social life is beginning to warp in unexpected ways (some good, some bad). I’m growing up as a physicist. My reading list is expanding. And my roommate brought me cinnamon rolls in bed the other day.
Things are looking up.
I’m also continuing to memorize poetry, and I’m working on the super-long poem “Tintern Abbey” by Wordsworth (which I encountered via my friend Araba when it reminded her of me):
The day is come when I again repose
Here, under this dark sycamore, and view
These plots of cottage-ground, these orchard tufts,
Which at this season, with their unripe fruits,
Are clad in one green hue, and lose themselves
‘Mid groves and copses.
I’m planning some good posts for the next few weeks, so if you used to follow my blog, you may be interested in doing so again soon. Ciao!
Building a touch-screen laboratory monitor with PyGTK
So I’m building this application to use in our lab at Clemson to keep tabs on all the sensors around the equipment. I’m not going to copy over the whole post here but for anybody who has an interest in following my coding endeavors can check out my post at http://ionsurfing.wordpress.com/2009/12/30/mockupsunusable-alpha-screenshots-for-tactile/. I’ve got some nice screenshots and explanations of where I’m going with the program. I think the biggest challenge will be finding a good way to deal with human interaction using an old-style touchscreen. Any and all suggestions on libraries to look into or thoughts on UI challenges are welcome. :)
By the way, thanks to Mairin for her Inkscape mockup class at FUDCon… I actually used it!
Reflections on Computers
Sometimes, you just have to sit back and wonder how computers are able to do the things they do. I’m at home in Charleston right now, but I have a Fedora 11 box sitting in my on-campus apartment back in Clemson. Right now, that old Dell Dimension 3000 is:
- Running an X server with at least 20 windows open that I never closed (and don’t feel the need to kill)
- Running an HTTP server
- Running mpd and icecast
- Streaming music via Icecast through an mp3 stream via a second http server through an ssh tunnel to my Arch Linux box here in Charleston
- Letting me control the music with ncmpc that I’m seeing under two layers of sshing
- Running 6 non-stop processor heavy perl scripts at a time for the past few days (this is what really boggles me).
How does a machine manage all this and still perform without noticeable lag?
I know it’s easily explainable if we start at the bottom and work our way up, but it still leaves me in awe occasionally. I mean, come on… there’s an external hard drive under my bed in Clemson. It’s spinning fast enough for some program to read data that can precisely emulate what The Decemberists sound like. All of that data is getting pushed through a USB cable and all of that is being magically mp3′d and pushed through an ethernet cable to a router to another router to another router and then out into the world where it ends up at my router and into my computer; all of that data is in an ssh tunnel, by the way. And even worse is that I’m not the only one using all of those cables and routers; there are millions of other users doing the same thing at the same time.
I don’t get it. I guess I still have a lot to learn.
Good for those engineers, yeah?
Recapping FUDCon, day -exp(pi*i)
Let’s recap what happened yesterday at FUDCon:
- We assumed spherical ponies of uniform density
- We had healthy lunches
- The sysadmins and developers actually got along at their panel
- <Insert lots of great talks here>
- Transcribed some talks
- The Fearless Leader spoke
- Dave & Busters = Food + Beer + Pool
We’ll have to see how well the hackfests can stand up to that. I’m looking forward to it. I think I’ll be attending the Fedora Insight hackfest at the very least. Still need to check the wiki to find out what else there is.
And if you missed any of yesterday’s talks, be sure to go to the schedule page to find the IRC transcripts. I’ve proudly written the one on education with OSS, the one on Inkscape, and the one on UI design (even though my internet cut out for a bit in the middle of that one).
Also, I’ve recieved a few comments (IRL) about my previously posted “spy” pictures. I want to let everyone know that I am not, in fact, taking casual pictures with my phone and calling them spy pictures because I feel sneaky using that little camera. In reality, I do have spy cameras setup at various strategically chosen locations around the hotel and campus so that I know exactly where everyone and everything is.
Always.
…
Protip: Don’t get black tea at the hotel. They don’t give you boiling water so it comes out poorly; the earl grey just tastes like bergamot oil with no tea.
FUDCon: 1320/Saturday
I attended Bert’s Installing Fedora session in block 1; I think it went pretty well, although I probably would have prefered a less technical and more end-user/hands-on approach, but that’s probably the User-Guide-”Writer” coming out in me.
BarCamp was fun too, and full of ponies…
And what lunch lacks in choice it makes up in the quaint cuteness of brown bags, along with some pretty tasty treats. I’ve arranged them here in golden sprial style.
FUDCon: 0835/Saturday
FUDCon’s here! I’m sitting in the lobby of the Hilton Garden Inn in Vaughn.
The busses come every 30 minutes, Seth tells me; I guess I’ll catch the 8:5x one (?x in {0..9}). I’ve taken some spy pictures with my phone of the lobby and such…
So apparently I need to go buy a bus ticket; will check in again… with more spy pictures.
Communicating with SPCI
Background Story/Flavor Text
So I’m working on getting this ammeter to interface with Linux system for the lab, and it turns out that this thing supports the Standard Commands for Programmable Instruments (SCPI). A few hours, Google searches, and Perl scripts after I started, I’d done what I would call a reasonable job of communicating with this device and pulling data from it.
So what is SPCI, and how does it work?
Connecting the Interface
SPCI is just a standard set of commands, not a defined interface. But it turns out that when you’re communicating with electronics SPCI is often used over serial connections like GPIB or RS-232. In my case, I was forced to use RS-232 because of hardware limitations.
Now, you can just read and write directly with the device handle. In my case using RS-232, I ended up discovering that
/dev/ttyS0
was right for me.
Commands
The entire set of commands is found in this documentation from the IVI foundation site. The commands are organized in a directory like structure. If I want to execute the command to ask how many errors messages are sitting in the buffer, for example, I’ll execute this:
:SYST:ERR:COUNT?
What this effectively seems to do is…
- Go to the “root” directory [:]
- Look in the SYST(em) folder [SYST]
- Look in the ERR(or) folder [:ERR]
- Execute the COUNT command [COUNT]
- Note that this is a query; i.e. returned data is expected [?]
Each command has as:
:SYSTEM:ERROR:COUNT? :System:Err:Count? Syst:ERROR:COUNT?
Note that you can vary capitalization without consequence, you can choose to ignore that prefixed colon, and you can even mix around when you use long and short forms.
Example
I used SCPI to communicate with a Keithley 6485 Picoammeter. I doubt seriously that many people reading this will ever need to repeat this task, but it’s all I have to present some examples.
To turn off the zero check on the picoammeter and take the current reading, we could execute these commands:
Syst:ZCh 0 Read?
Note that I could have used “OFF” in place of “0″; either is a legitimate boolean value for “false”. Meanwhile, a script running in the background that looks something like this:
#!/bin/bash cat /dev/ttyS0 >> datafile
Will magically receive a line of data from the machine that we can interpret with a simple Perl script.
Google Voice fails again
What the message really said:
I choose to pronounce the poem “A leaf falls, loneliness”, but that’s not really right, and uh, I think you’d be hard pressed to find someone who could, uh, pronounce it effectively, who’s still alive.
What Google Voice thought it said:
Hi juice pronounce the palm of leave Falls luminous, but that’s not really right and I think you’d be hard pressed to find some of yourgroup. I’m good pronounce it effectively. You still alive.



