Hacking

Friday, 4 April 2008 06:15 pm
da: (bit)
This week started off slowly at work, but wow, it picked up nicely. I've been working on the most interesting project I've had in many months: a c++ program to process data from a large IR emitter and sensor array, which reports 3-d positions (within 1/10 a millimeter) for a set of markers within a 3m x 3m x 4m cube space.

I was asked to learn how this machine talks with the computer over the serial line, and figure out if it can report raw 3-d position data for each of 4 sensors, instead of reporting the aggregate position and orientation of the sensors. There's a sample C++ project which fully demoed the program's capabilities, which I've been hacking on. There's no tricky math- and their code is quite well documented. And a friendly support engineer helped me determine that I had the right approach to get the data using their API. I also found a bug in their code, which we're fortunately able to work around.

So I've gone from zero to almost-but-not-quite-there in the last 48 hours. This involved: learning Visual Studio, learning the API, and figuring out enough of this C++ program to be useful. This is what I wish I'd been working on for the last year. I'll be done with this project on Tuesday... (at least I hope I will, because I'm leaving with [livejournal.com profile] melted_snowball for Florence on Wednesday, not back until the following Thursday!)

Visual Studio is the best Microsoft product I've ever worked with; I got up to speed quite quickly and the only thing holding me back was, um, a bit of fuzziness on C++ datatypes. Also, I wish I could get the debugger to use the breakpoints I set; I'm having to do more debugging-via-print-statements than I'd prefer.

Brains and Bones

Thursday, 14 June 2007 04:28 pm
What did I do today?

(Cover your eyes, it's kinda gross):

Reconstructing the surface of a brain sample [1] and installing a Slice-o-matic to segment leg-bones.

Ewww!

Yes, I'm a day late to the zombie party, but nothing of what I wrote above is fiction.

Ewwwwww!

[1] The brain's the optical lobe of a fruit-fly brain, sampled by a laser scanning microscope... which makes for a really neat software tutorial.

[Edited to add:] And I didn't even get to wear gloves.
I thought this was cool, if pricey: a service to make your sketchup, 2nd life, or wii avatar in coloured plaster.

But this is probably cooler: Build a Candyfab 4000 to fabricate your objects from sugar. DIY, $500 parts. (Link via [livejournal.com profile] secretsoflife)

Indeed, it's based around a controller board kit which might even be useful for work. I'm tempted to inquire with a prof about using this board to assist with developing better servo-motor controls for one of the labs. *ponder ponder ponder*
The world's first CT scanner was designed and built from 1967-1972 by Godfrey Hounsfield, who worked for a lab at Electric and Musical Industries, otherwise known as EMI.

EMI Labs was diversified; they worked on radar and guided missiles during WWII and Britian's first transistor computer in the 50s. But by the late 60s, their profit center was clearly pop music, though they didn't sell off their dev labs.

...Meaning that development of the first CT scanner was funded by profits almost entirely from the Beatles.

And then things got busy.

Thursday, 3 May 2007 06:40 pm
New project. A prof in Kinesiology has just gotten a peripheral CT scanner. (Peripheral, as in, fits extremity body parts. CT as in "computed tomography", formerly known as computed axial tomography. I share because I didn't know it before this afternoon either).

After a chat last week with my boss, I'd thought she just wanted to figure out how to convert its output into a data format she can use. More: she would like to feed this output to an open-source program that describes the scanned bone's strength; and further, to replicate the work of another researcher, who has turned this open-source program into a commercial service, no discounts for his colleagues. So, I got the dime-tour of the project, and printouts of a couple of useful papers, and I promised I'd have questions for her in a week. Fun! We discussed the options, which might include other commerical software, or hiring a scientist-programmer solely for this research, but I hold out this tiny hope that I might be able to do development work for this myself, as ill-qualified as I am to do the heavy-lifting. We'll see; whether I can understand much of the papers she's given me would be a good start.

I was considering asking for a complete high-res scan of my arm, but I'm not sure whether that's a great idea. (7mm/slice x 20 slices = 20 X-rays of my arm? For a medical reason, sure, but for fun?)

Lunch with [livejournal.com profile] melted_snowball, [livejournal.com profile] mtffm, and [livejournal.com profile] the_infamous_j; huzzah for it is patio weather. This year I resolve to take my lunch outside more, instead of sitting in front of the computer. Whether or not there's anybody around to eat with. Vitamin D is good for me too. :)

I'm also working on trying to find the source-code for a compiled LabView program used throughout the department, which doesn't currently work on machines newer than Windows 98. I'm hopeful about finding this code, otherwise this one project is going to become gargantuan as I try to replicate the developer's work from scratch. Conversely, if I can find the CVI code, the nice people at LabView have promised it's a simple recompile with newer libraries to make it work for machines up to Vista. Win! (if only the data is still here).

...I like that Indian students play cricket on the quad outside my building. This evening, there was a Canada goose standing stock-still under a tree, watching them.

After work, right on schedule, incoming [livejournal.com profile] bats22. He's in town to present his Master's Thesis tomorrow. I'm sure it will go swimmingly, because he's been working hard for two years on the sucker, and his eyes become animated when he talks about basement moisture which is pretty darn cool.

Dinner at Pho Dao Bo, and now we're all relaxing.

Ergonomics

Tuesday, 10 April 2007 11:20 am
I just got an ergonomic assessment of my office. It was useful, for helping me track what's causing my shoulder to hurt recently. I knew it was mouse-related, since it hurts precisely when I use the mouse. It turns out I'm holding up my arm too much. Way too much. I should be resting it on the arm-rests. All right then.

I need to investigate:


  • a footrest. The assessor said when I'm not using my keyboard or mouse, I might want to be tipping my chair slightly back (something about blood-flow in the back being increased). She recommended putting my feet up. I like putting my feet up.
  • I still need a windows program that will simply go 'ding' every 20 minutes- to remind me to take a break. Options: many.
  • a split keyboard without a keypad? She doesn't know of any. I'm going to let this one go, it's only to make my mouse closer at hand and I don't really need it.
  • I need to ask the kinesiology gym people about two exercises which may be OK for my shoulder, since I've been skipping the arm-lifting exercises at the gym. "prone fly" and "shoulder retraction".


20 minutes very well spent.

Work mice

Wednesday, 21 February 2007 10:59 am
I just met with the grad students who had a project for me in December. I've felt like I should've been making faster progress these last two months, especially since it's my first project and I imagined everyone wondering what the hell I was doing. But I didn't have a deadline- it's thesis work and they're not done with data-collection. And technical progress reports weren't really what they were after, so I got to work without interruption for quite a while. So I'm chugging away, learning VB from scratch, and today was the first demo.

I half expected them to say, "that's OK, but when will it be finished?" But no, they are very happy with my rate of progress, and so far, the work I've done is what they need. Before the meeting I'd thought I was about 80% done, time-wise (about 90% feature-wise). I've revised that downward to about 70%/85%, though the next time I see them they may have more features to add. (Which is fine; my job's to make their research easier; and for some of the program mechanics and features, they won't know if it's right until after they've seen it.) But they didn't have any complaints about the rate of progress; nor of the product. Yay.

It's satisfying to demo a project and have everything work correctly. I only demoed what works, and it didn't spontaniously break, and that pleased me.

Instead, I hit a button and we watched excel build 11 sheets, each filled with charts, breaking down the measurements of mice running around in cages, how much food they ate, how much oxygen they used and a few other things.

Yes, they can add more trials. Yes, they can have more or fewer mice, and relabel their data. Bam, here's another 11 sheets of output. They liked this, since each run took Chris a few days to do by hand.

And now, it's time for me to go home for lunch with d., who is apparently awake before noon today (after something like 13 hours of sleep the night before).

Woot.

Wednesday, 31 January 2007 10:11 pm
Can I get a woot?

Woot for mac and cheese, made by [livejournal.com profile] melted_snowball in... remarkably quick time, given it needs to bake. And he had to go to the store after we got home, before he even started with the onions.

Woot for a visit from [livejournal.com profile] mtffm & [livejournal.com profile] the_infamous_j who came to help us eat it, play a few rounds of games, and scheme for Saturday. Saturday of Toronto-dom.

Woot for the word "mortify." Just because.

And a generic woot because today was not so bad. I've conspired to get a National Instruments Labview instructor and a sales-dude to come up to the Kinesiology department so we can give them a tour. "We" being the guy who formerly did my job (as much as anyone did), the prof who was most involved in hiring me who uses a lot of Labview, and myself, so I can learn as much as I can from all of these folks at the same time. I hope they ask good questions. ;)

Oh, and it looks like I might get my speakerphone power-supply in a week. The ebay-seller has reimbursed me for the shipping and I've got a tracking number for the replacement. It's gotten from San Jose to Sacramento. My mis-sent power supply is in Toronto, apparently. I wonder if they will wave as they pass by on trucks over the prairies.

Rubber Ducky

Thursday, 7 December 2006 10:18 pm
Today was a whole pile of work, and I loved it.

First off I had a chat with my boss, including a bit about a project I'll be advising them for starting on Monday. She said, "Why don't I show you the mice?" We went down the hall and into a lab housing a dozen white mice. (They're genetic knockouts for a particular bone-regrowth gene, and they're studying whether they have a higher, or lower, metabolism because they aren't making that particular protein. I think- it was explained rather rapidly.) Their boxes were sealed to the outside and had sensors for oxygen-use, food consumption, and a batch of security-system tripwire lasers in each box to measure their activity-levels. The data got dumped into a machine which... they were reading in an excel spreadsheet. Monday, they're going to ask me how to divide the spreadsheet data into time intervals. It all looked quite professional, and I hope it's as simple a problem as they actually described. (Of course it won't be; there will be exceptions. There always are.)

Shortly afterward, I got an email from a grad student in a spine-lab who had an easy(ish) Visual Basic question, and a difficult LabView question. We made plans to meet after lunch.

Lunch was the Department Christmas Party at the Faculty Club. I sat next to a charming and vaguely eccentric retired professor who lives out in the boonies and is getting Ontario Power to put a generating windmill on his property... The two administrative staff sitting on the other side of the table were getting a bit wide-eyed at some of the things he was over-sharing about (which I won't indulge in here, thanks much). I enjoyed the lunch and conversation, then excused myself at 1:30 to meet with the student.

The meeting was dizzying. This project involves a... robotic bench-press, sort of, which compresses and moves sections of spine (!) and measures the resultant forces in various directions. Her labview program is complex, but she thinks it should be able to sample at least four times faster. So I sat there for a while going "uh-huh" as she told me piles more information than I could understand at my current level... I was tremendously amused that just last night, [livejournal.com profile] bats22 told [livejournal.com profile] melted_snowball and me about the Rubber Ducking technique, and here I was, a professional rubber duck. I did contribute a few general suggestions ("Can we break the problem into smaller problems? Can we move other stuff outside the loops?") and by the time I walked out, she had a pile of new things to try. This is precisely what I think I was hired for, and I hope to be able to gradually increase the usefulness of my comments. But boy do I have a lot to learn.

Hm, I was going to write all about my new to-do system, but I think that will wait.

Hey. I seem to have hit the ground running. I'm looking forward to tomorrow!

New Office

Monday, 27 November 2006 04:33 pm

New Office
Originally uploaded by da_.
Things are looking OK. I like my office. It's in a quiet wing, probably one of the toughest areas of this building to get to if you don't know your way.

The window faces an alley that goes between M-lot and campus. I can't quite see the Student Life Centre volleyball courts, though.

I'm going through a bit of disorientation this afternoon, as nothing's where it's supposed to be, and I need to get all my office junk back from home. Also, windows desktop frustration: none of my linux shortcuts work. No multiple desktops! No klipper multiple-paste buffers! No cygwin shell yet. Sigh.

job (2)

Friday, 10 November 2006 05:52 pm
OK, it's sunk in, a bit. My first-ever (non-contract, non-time-limited) real job. Yay!

I'm looking forward to this. This will be a real stretch. I've never (ever) been responsible for writing production-quality C code, even though I've edited a fair bit in my time, and wrote some in school. I know very little about the content-area; I couldn't correctly spell kinesiology two weeks ago. I've certainly never touched this breadth of hardware before. Eek. Still, it seems to be stuff I will be able to do, and enjoy.

When my new boss called this afternoon, I asked if she knew of a good book on LabView, so I could read up a bit before I started. She laughed. Then later, she left voicemail saying she'd located some manuals for me, if I want them. I think I do. :)

At the moment, I'm very grateful.

I'm glad that yesterday I had the bright idea to write up a piece of sample code in C++ to give them today (it was a stretch for me, since I... um... never wrote any C++, ever.) This little script defines a bunch of random n-dimensional vectors and tells you which two are closest to each other. Around 100 lines with comments. It doesn't have anything really clever in it, or any templates or inheritance, but... it may have made a difference; they seemed relieved when I handed it to them, since it showed I can do more than perl. I suppose it showed them I knew what they were looking for, and that we were on the same page.

I owe a guy in my IRC channel a beer for pointing out a semi-obvious bug that I could have spent hours not seeing. I owe my wonderful [livejournal.com profile] melted_snowball... more than I can say, for being the stabilizing influence he's been for me while I was looking for work, and a sympathetic ear, and much more.

I owe alla-you a lot for being there.

Thank you.

This afternoon there was a neat talk, sort of at the intersection of Computer Science and kinesiology.

The title was "Endpoint Prediction Using Motion Kinematics," by a new prof in CS. His specialty is Human Computer Interaction, predicting motion of computer-users, with a mouse or a pen on a computer tablet.

Apparently there is a formula with the unappealing name of "minimum jerk law" which accurately predicts how a person will choose to move while pointing (that is, we move to minimize jerking around). The formula depends on velocity, acceleration (derivative of velocity), jerk (derivative of acceleration), and the three following derivatives.

I didn't realize those three derivatives had names. I wondered about them, in calculus. Not for long, mind you.

I can conceive of and observe acceleration. I can even conceive of jerk, and semi-accurately observe and describe it. Darned if I have a concept of the following three derivatives. Physicists, said this speaker, call those derivatives "snap", "crackle", and "pop" so I have a fair guess that they don't really grok them either; so they give 'em cutesy names like they do with quarks. We can describe and define them even if you can't see 'em.

Neat.

[hm, according to LJ's spell-checker, kinesiology should actually be: gynecology, genealogy, or kinfolk. Um, no. And LJ isn't LBJ, either. Sigh.]

New Job

Friday, 10 November 2006 12:41 pm
I got the Kinesiology job! I'm starting in two weeks.

On my third interview today, they showed me four labs. One is being used for a blood-flow study for the European Space Agency and NASA! My involvement with that lab is likely very low. But still, very cool. Another lab has servo-controlled back-joints, to test joint stress through regular, repeated motion. It's likely I'll be working on that.

What a load off my mind. The timing was... weird, but hey, I'll take it.

This will take some time to sink in, I think.

[Edit: Non-friends-locked job description here.]

interview (1 of 2)

Thursday, 2 November 2006 04:49 pm
Right, we're due for an update.

This morning Dan's mom left after two nights at our place. It was a good visit. I'll probably have more to say on it later.

Bright and early, I had the first half of the interview for the University position I mentioned. The title's "Software Technologist" for the Kinesiology Department. The HR person ran out of qualifying questions really quickly, making for a super-short interview. The additional information she could tell me about the position was very interesting and positive as far as I'm concerned. I think I'm good for this job. :)

Over the last few days I've learned a bit about kinesiology: it's a science that seems to be rooted in biomechanics, or how people move, based on the constraints of the human body. Kinesiology includes anatomy and physiology and has applications into ergonomics, physical therapy and other fields. It's, frankly, a field I'd never have approached, as itself.

This position, though, looks great: writing and maintaining software to interface with hardware interfaces in labs; plus advising people on Matlab, CAD, LabView and a mish-mosh of other 2d/3d modeling software; and maintaining computers for students and faculty. You know what? I could do this. I've used most of the software they're concerned with, when I was an engineering student; I like playing with hardware interfaces, and helping researchers figure out how to sample tricky data sounds like a dream.

Also, with the connections to ergonomics and software, I could possibly start taking classes in Human Computer Interaction, something I've had in the back of my mind for a while. Lest that seem like it's out of left field, I've always had an interest in making computer interfaces more sensible, useful, and educational; it's just been sidelined by... y'know... paid work. The mac UI stuff I've been thinking about recently has brought me back to that a bit, even though it's had little to do with my day-job. And I think it's really funny that a monochrome mac interface I used in 1995 for simulating circuits, which was written with this programming system called "LabView", might help me get a job today.

...I just checked and my undergraduate advisor is now in charge of the HCI lab, re-using the course numbers from when I was there and it was called the "Interactive Media Group".

August 2013

S M T W T F S
    123
4 5678910
11121314151617
18192021222324
25262728293031

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Friday, 21 July 2017 02:41 pm
Powered by Dreamwidth Studios