I go to church at IBC. Bible translations which I have read in their entirety include JPS, KJV, and NIV.
I have two degrees from MIT. I have memberships with AAA, ACM, ADC, and NRA, and an Open Water Diver certification from SSI.
The airports I’ve visited the most are TPA, FLL, BOS, IAD, and DCA. I drive a 4WD 2006 FEH and usually get between 29 and 32 MPG.
I work for PTR at NRL, which is under ONR (part of DOD, of course). My computer is an LED-backlit MBP running OS X (pronounced “oh ess ten”, not “oh ess ex”; it’s the version after OS 9). I write software for its BSD layer and compile it with GCC. Other software I write against the JDK’s API, which I then compile with ANT and run in a JVM. Sometimes I run Scheme code with PLT or MIT/GNU. I have also worked on software to control robots from MHI and ASI.
I store files on AFS and money at BOA and ING. I communicate via AIM and my ATT cell phone. I spend far too much time browsing the WWW and reading RSS feeds. I listen to music in AAC format. I watch TV shows and movies on DVD. TNG and TOS are my favorite Star Treks. SG-1 is my favorite Stargate. TAS is my favorite Batman. My favorite comic book characters are the members of the JLA in the DCU.
I live in the USA.
I am JRH.
Showing posts with label work. Show all posts
Showing posts with label work. Show all posts
Thursday, July 2, 2009
Monday, November 19, 2007
Because Polling Is Evil
Is this thing still here? Wow. Anyway, I like my job. I get to play with robots, and I have opportunities to learn a lot of new things (most of the tasks assigned to me are things I've never done before). Last week I learned how to write a daemon.
I had been asked to write a Linux program which would sample force-torque data from an ADC and then send it to another computer (via TCP). Doing the bare minimum didn't take all that long, once I stopped trying to use the buggy DAQ driver from the vendor (I won't name names, but it's a national company known for making various types of instruments) and went with libcomedi instead; but after I got it working with the functionality I'd been asked for, I decided to scrap that and do it the right way instead. (The original design had me doing things like transmitting floating point numbers as ASCII character strings and taking sample readings in response to polling from the client rather than at a steady frequency. Polling!)
In the process of making the deliverable awesomer, I decided it would be a good opportunity to work on my Unix system programming skills (which don't get exercised much when I'm doing Java stuff). So, first I read about getopt_long and had it parse command line arguments to (for instance) set the server port number and data collection frequency. Then after thinking about it some more, I decided that my server should act like a real server and have a name ending in "d", so I set to work daemonizing it (this came in handy). I redirected I/O to /dev/null, I replaced the verbose-mode printfs with calls to syslog, I gave it a .conf file which lives in /etc, and I gave it an init script so that my daemon would get launched automatically when the machine enters runlevel 2 (the kubuntu default). Oh, and a lockfile so that only one instance will run at a time. And I added the "d" to the end of its name. I'm quite happy with the result, and my project supervisor said, "You are the biggest geek I know. And that's saying something. Good work."
Of course, the guys I did this work for? The first thing they asked me to do was stop the daemon so they could run their slow buggy collect-data-and-save-to-a-file, regulate-collection-frequency-with-usleep program based loosely on the old version of mine. Oh well.
I had been asked to write a Linux program which would sample force-torque data from an ADC and then send it to another computer (via TCP). Doing the bare minimum didn't take all that long, once I stopped trying to use the buggy DAQ driver from the vendor (I won't name names, but it's a national company known for making various types of instruments) and went with libcomedi instead; but after I got it working with the functionality I'd been asked for, I decided to scrap that and do it the right way instead. (The original design had me doing things like transmitting floating point numbers as ASCII character strings and taking sample readings in response to polling from the client rather than at a steady frequency. Polling!)
In the process of making the deliverable awesomer, I decided it would be a good opportunity to work on my Unix system programming skills (which don't get exercised much when I'm doing Java stuff). So, first I read about getopt_long and had it parse command line arguments to (for instance) set the server port number and data collection frequency. Then after thinking about it some more, I decided that my server should act like a real server and have a name ending in "d", so I set to work daemonizing it (this came in handy). I redirected I/O to /dev/null, I replaced the verbose-mode printfs with calls to syslog, I gave it a .conf file which lives in /etc, and I gave it an init script so that my daemon would get launched automatically when the machine enters runlevel 2 (the kubuntu default). Oh, and a lockfile so that only one instance will run at a time. And I added the "d" to the end of its name. I'm quite happy with the result, and my project supervisor said, "You are the biggest geek I know. And that's saying something. Good work."
Of course, the guys I did this work for? The first thing they asked me to do was stop the daemon so they could run their slow buggy collect-data-and-save-to-a-file, regulate-collection-frequency-with-usleep program based loosely on the old version of mine. Oh well.
Tuesday, June 5, 2007
La Vita È Bella
My life is pretty good right now. In fact, it's very good. I've been happier recently than I had been in a long time.
There is a high likelihood that no one other than myself will ever read this, and I'm perfectly OK with that. I'm writing this for my own personal benefit, so that when I find myself feeling down, I can refer back to this and remember to praise God for being so faithful. (And thanks to the marvel of Teh Intarweb, I don't have to be at home to do the referring back.)
It's actually a very sobering realization, that as much as I try to be faithful to Him, God has been so much more faithful to me. I started thinking about it the other day after I got back from Hershey. On the way back, Lux was talking to me about how she wants to see the young people in her fellowship learn to put God first, rather than money; she doesn't want to see them become workaholics out of a desire to amass wealth at the expense of spending time with other Christians (and, when they get married, their families).
It made me think, because I spend more than 40 hours at work every week. How am I assigning my priorities? I came to the conclusion that I am not, in fact, spending a lot of time at work out of a desire to hoard money; I'm spending a lot of time at work because I love my job. I truly think that right now, I have the ideal job for me. I work with a bunch of great people, I get along with everybody, I'm learning a lot of new things, AND I GET TO PLAY WITH ROBOTS.
Three years ago, when I was getting ready to graduate, I had absolutely no idea what I would be doing after that Commencement ceremony. I had been accepted to the EECS Master of Engineering program, but I wasn't sure if I would be doing it; I didn't want to go any further into debt than I already was, so I prayed about it and decided that I would only go through with it if I found a paid position as a research assistant.
When classes ended, I still had nothing, but I kept praying about it, trusting that God would show me one way or the other what He wanted me to do. And then during the week or two between finals and Commencement, I found out about a position working for a professor in Course I, doing wireless network stuff. After an interview that I didn't personally think too highly of, I found out that the position was mine. Praise God! I get to defer the dreaded job search for another year.
The next year, as I was working on my thesis, my former roommate told me about a company that was looking to hire for work in DC which had contacted him. I sent them my résumé, and after an interview that I didn't personally think too highly of, I found out that I had a job. Praise God! I get to avoid the dreaded job search.
But then the original project I would have been working on for this company fell through, so I had a company but no job. Here I was with two degrees and no idea what I'd be doing with them. (At the time I was spending the summer back home in Florida.) So, I went back to praying about my future, and I started talking to a couple other companies, but then I got a call about a different project in DC, which sounded more interesting than the original one I'd signed up for: I would GET TO PLAY WITH ROBOTS. Could I wait a couple more months? Hmm… more time in Florida, now that's a tough decision. So I ended up taking the position and started working at the end of January 2006.
All seemed to be going okay until last October or November, when my boss told me that, due to several setbacks throughout the year, he intended to shut down his company and move away from DC. So now I had a job but no company. So, I went back to praying about my future again. I liked my work and wanted to stay with the project, but I needed to find somebody willing to give me paychecks for it. I ended up talking to the company of one of the other guys on the project, a smallish private engineering firm called The PTR Group, Inc. After an interview that I didn't personally think too highly of, I found out that I was PTR employee # 26. Praise God! I can go home for Christmas vacation and have a job when I get back. The entire process from first contact with the company to my first day as their employee took one week. I was the fastest hire in the history of the company.
Which brings us back to the present. I'm twenty-four years old, I have two degrees from MIT in Electrical Engineering & Computer Science, I work at a well-thought-of private company which is small enough that I know everybody and everybody knows me, and I GET TO PLAY WITH ROBOTS.
My (civil servant) project supervisor (our resident robotics supergenius) is a terrific guy and we get along very well. We both have a computer science background, we both claim Mac OS X as our operating system of choice, and we have very similar senses of humor. Either of us can make a joke with Biblical allusions or Douglas Adams references and the other will get it. Professionally, I've developed a rapport with him such that I feel free to ask him about robotics stuff and he comes to me about programming. He's been assigning me increasingly important software responsibilities, and I think he's decided that I either know or can quickly figure out how to do pretty much anything he asks of me.
Even in this long exposition, I've glossed over so much about my work (and about how I wound up at MIT in the first place). In the past year and a half, I've learned about network programming, threads, 3D simulation, nonlinear optimization methods, trajectory planning, computer vision… and I GET TO PLAY WITH ROBOTS. I love my job.
On top of all of this, I'm more involved with my church than I've ever been before. I'm in a Bible study with some great guys and I've been doing sound engineering for youth group on Wednesdays and my own service on Sundays. Because of that, I met the people who do sound for the Hispanos en Cristo (Spanish language) service, and through them I've gotten involved with the young Latino group. I finally feel like I belong, and I hadn't been searching for any of it.
It had been years since I had the opportunity or necessity to practice Spanish in earnest, other than conversing with my grandmother, and I did vaguely regret not having a reason to use it, but I wasn't actively seeking to change the status quo. I'm reticent as it is in English; I certainly didn't think my Spanish was good enough to inflict upon a genuine Latin American (at least not one who wasn't a relative with a familial responsibility to tolerate my inability). But God saw fit to meet a need I wasn't asking about, and the end result has been that I've met a bunch of new friends and have been having fun with them. And practicing my Spanish.
When I stop and look back at all the little seemed-insignificant-at-the-time events (and the few big ones) which have led to where I am right now, it's as plain as day how God has been directing my path. Which is totally awesome, but also makes me think about how many times I know I've disappointed Him, even in the past year. It's not that He's been faithful to me because I've been faithful to Him; even while I was screwing up royally, He was engineering things to my benefit. Wow. What an amazing and merciful God He is.
And that makes me happy.
There is a high likelihood that no one other than myself will ever read this, and I'm perfectly OK with that. I'm writing this for my own personal benefit, so that when I find myself feeling down, I can refer back to this and remember to praise God for being so faithful. (And thanks to the marvel of Teh Intarweb, I don't have to be at home to do the referring back.)
It's actually a very sobering realization, that as much as I try to be faithful to Him, God has been so much more faithful to me. I started thinking about it the other day after I got back from Hershey. On the way back, Lux was talking to me about how she wants to see the young people in her fellowship learn to put God first, rather than money; she doesn't want to see them become workaholics out of a desire to amass wealth at the expense of spending time with other Christians (and, when they get married, their families).
It made me think, because I spend more than 40 hours at work every week. How am I assigning my priorities? I came to the conclusion that I am not, in fact, spending a lot of time at work out of a desire to hoard money; I'm spending a lot of time at work because I love my job. I truly think that right now, I have the ideal job for me. I work with a bunch of great people, I get along with everybody, I'm learning a lot of new things, AND I GET TO PLAY WITH ROBOTS.
Three years ago, when I was getting ready to graduate, I had absolutely no idea what I would be doing after that Commencement ceremony. I had been accepted to the EECS Master of Engineering program, but I wasn't sure if I would be doing it; I didn't want to go any further into debt than I already was, so I prayed about it and decided that I would only go through with it if I found a paid position as a research assistant.
When classes ended, I still had nothing, but I kept praying about it, trusting that God would show me one way or the other what He wanted me to do. And then during the week or two between finals and Commencement, I found out about a position working for a professor in Course I, doing wireless network stuff. After an interview that I didn't personally think too highly of, I found out that the position was mine. Praise God! I get to defer the dreaded job search for another year.
The next year, as I was working on my thesis, my former roommate told me about a company that was looking to hire for work in DC which had contacted him. I sent them my résumé, and after an interview that I didn't personally think too highly of, I found out that I had a job. Praise God! I get to avoid the dreaded job search.
But then the original project I would have been working on for this company fell through, so I had a company but no job. Here I was with two degrees and no idea what I'd be doing with them. (At the time I was spending the summer back home in Florida.) So, I went back to praying about my future, and I started talking to a couple other companies, but then I got a call about a different project in DC, which sounded more interesting than the original one I'd signed up for: I would GET TO PLAY WITH ROBOTS. Could I wait a couple more months? Hmm… more time in Florida, now that's a tough decision. So I ended up taking the position and started working at the end of January 2006.
All seemed to be going okay until last October or November, when my boss told me that, due to several setbacks throughout the year, he intended to shut down his company and move away from DC. So now I had a job but no company. So, I went back to praying about my future again. I liked my work and wanted to stay with the project, but I needed to find somebody willing to give me paychecks for it. I ended up talking to the company of one of the other guys on the project, a smallish private engineering firm called The PTR Group, Inc. After an interview that I didn't personally think too highly of, I found out that I was PTR employee # 26. Praise God! I can go home for Christmas vacation and have a job when I get back. The entire process from first contact with the company to my first day as their employee took one week. I was the fastest hire in the history of the company.
Which brings us back to the present. I'm twenty-four years old, I have two degrees from MIT in Electrical Engineering & Computer Science, I work at a well-thought-of private company which is small enough that I know everybody and everybody knows me, and I GET TO PLAY WITH ROBOTS.
My (civil servant) project supervisor (our resident robotics supergenius) is a terrific guy and we get along very well. We both have a computer science background, we both claim Mac OS X as our operating system of choice, and we have very similar senses of humor. Either of us can make a joke with Biblical allusions or Douglas Adams references and the other will get it. Professionally, I've developed a rapport with him such that I feel free to ask him about robotics stuff and he comes to me about programming. He's been assigning me increasingly important software responsibilities, and I think he's decided that I either know or can quickly figure out how to do pretty much anything he asks of me.
Even in this long exposition, I've glossed over so much about my work (and about how I wound up at MIT in the first place). In the past year and a half, I've learned about network programming, threads, 3D simulation, nonlinear optimization methods, trajectory planning, computer vision… and I GET TO PLAY WITH ROBOTS. I love my job.
On top of all of this, I'm more involved with my church than I've ever been before. I'm in a Bible study with some great guys and I've been doing sound engineering for youth group on Wednesdays and my own service on Sundays. Because of that, I met the people who do sound for the Hispanos en Cristo (Spanish language) service, and through them I've gotten involved with the young Latino group. I finally feel like I belong, and I hadn't been searching for any of it.
It had been years since I had the opportunity or necessity to practice Spanish in earnest, other than conversing with my grandmother, and I did vaguely regret not having a reason to use it, but I wasn't actively seeking to change the status quo. I'm reticent as it is in English; I certainly didn't think my Spanish was good enough to inflict upon a genuine Latin American (at least not one who wasn't a relative with a familial responsibility to tolerate my inability). But God saw fit to meet a need I wasn't asking about, and the end result has been that I've met a bunch of new friends and have been having fun with them. And practicing my Spanish.
When I stop and look back at all the little seemed-insignificant-at-the-time events (and the few big ones) which have led to where I am right now, it's as plain as day how God has been directing my path. Which is totally awesome, but also makes me think about how many times I know I've disappointed Him, even in the past year. It's not that He's been faithful to me because I've been faithful to Him; even while I was screwing up royally, He was engineering things to my benefit. Wow. What an amazing and merciful God He is.
And that makes me happy.
Subscribe to:
Posts (Atom)