21 December 2008
Would M'lady Care to Dance?
11 December 2008
Apprentice Products Pitches Guitar Trainer to VC's
05 December 2008
Python is Your Friend
#!/usr/bin/python
import twitter
from sys import argv
api = twitter.Api(username='askForCharon', password='redacted')
status = api.PostUpdate(argv[1])
api.ClearCredentials()
There's the entirety of my script. It knows my credentials (although I'm loathe to write anything that stores a password in plaintext) and takes the message to tweet on the command line. A slightly more sophisticated version would include a check to make sure the message was <= 140 characters. I wrote this for clinic, actually. I was getting ready to start a long-running job and I wanted to be alerted when it finished (particularly if it failed), so I wrote this script and ran the following:
>my_long_job ; tweet "The job finished with status $? at `date`."
This is instructive to budding linux users:
- The semicolon means run the second command (tweet) after the first (my_long_job) finishes.
- The '$?' is a shell variable that holds the exit status of the last command run.
- `date` runs the `date' program and puts the output into the string.
- I put the argument to `tweet' in double quotes because the shell will provide variable expansion in a double-quoted string, but will use a single-quoted string verbatim (I wanted it to actually expand $? and `date` into their values, not pass those characters to my program).
~KMarsh
04 December 2008
Reactions
Look forward to a post next week (probably not this weekend) about the final days of the semester.
~KMarsh
28 November 2008
Playing With Real Boy's Toys
26 November 2008
Tweet Tweet
Perhaps I'll write a script so I can tweet from the command line. Perhaps I'll write a script that posts messages both to twitter and to my facebook status. Perhaps I'll write a script that parses a file with timestamps and messages and automatically sets up my first script to post the messages when the proper time comes! You never know!
If I do write these scripts, I'll post about them here and, of course, on twitter. I wonder if I'll find μ-blogging addicting enough to keep at it. Have a nice thanksgiving.
~KMarsh
Oh, and give my regards to the ferryman.
24 November 2008
Enormous Kites
My feet are shown on the pedals of the glider I flew in. Notice the overall lack of instrumentation and controls. There's the big red tow cable release knob in the middle, the pedals at my feet, the stick between my knees, and the trim and spoilers controls at my left hand. And the AC vent, but that was somewhat broken. As for instrumentation, we have an altimeter, a variometer (rate of climb indicator) and airspeed indicator. And a piece of string taped on the outside of the bubble as a slip-slide indicator.
Below is Larry's high performance glider. It's worth >$100,000 and has significantly more bells and whistles than the others. And a reclined seat. With parachutes if you want to do aerobatics, and oxygen if you want to make high-altitude flights.
Larry is the man who runs Sailplane Enterprises out of the Hemet airport and he was one of our tow pilots. He gave us an excellent deal that let us use club funding to get as many students as wanted to out flying.
My co-leader getting ready to glide. She and I were lucky enough to get to fly on both the trips we took. On my second flight the instructor let me try flying while we were still on tow, which is quite the experience. I also got to stall the glider and practice some steep-bank turns. It's a bit of a difference from the Cessna 172 I've flown with Iris, but probably not quite as different as some other aircraft could be.
One of the students in the first group to fly with us is working on his private pilot's license. Larry let him help taxi the tow plane out to the runway after refueling. We also had a private pilot in the second group who got the glider instructor she flew with to sign her log book towards a glider rating.
There are more pictures and stories, but I'll let it go for now with the following group photo of the first group who went out with us. Iris Critchell is the lady at the head of the glider, and my co-leader and I are on the far left of the picture.
If you want to hear more, let me know. Until then, have a great time.
~KMarsh
16 November 2008
No Two People Are Not On Fire
~KMarsh
06 November 2008
Now the Nightmare's Real
rather than spend the $70 on the authentic Morton Safety boots used in the video. The goggles are old Willson brand welding goggles from the days before arc welding that I got on e-bay last summer. The freeze ray was built from some cardboard boxes, various kinds of tape, bits of pipe from Home Depot, spray paint, and a camera flash (more on that in the next post). The most important part, the coat, was made by my girlfriend, who is an exceptional seamstress as well as being a Mudd engineering student. She modified the McCall 2233 pattern (the original pattern is for a chef's coat) and watched the film countless times to get it right. My Captain Hammer also agonized over his costume, finding
cheap alternatives to the gloves and boots that he needed. Another group had Dr. Horrible people, including the entire Evil League of Evil. More pictures are below. The semester is pretty busy right now, so I'll have to owe you the rest of what should be in this post (more halloween pictures and stories, and an explanation of my awesome freeze ray).
Above: Tie Die and Professor Normal of the ELoE. As a side note; welding goggles make amazing sunglasses.
Catch you later,
~KMarsh
25 October 2008
Moving Right Along
In other news, I have acquired all the components for my Halloween costume and just need to put the finishing touches on a few parts before I'm ready. One of those parts is a capacitor about 2/3's the size of a AA battery. It scares the crap out of me, so I'm not doing anything with that component of the costume until I can get down to the electronics lab on Tuesday. Hopefully I can get all the soldering I need to do done then and just finish with the assembly and spray painting at my leisure. Now that I have tantalized you thoroughly, I take great pleasure in saying that you have to wait until Halloween to see it, like everyone else. Nyah nyah. Don't worry. I'm taking pictures as I go and I'll have plenty from the parties.
Speaking of the electronics lab, there's something cool going on this semester (and hopefully continuing on afterwards). A pair of students who are excited about learning more electrical engineering and getting an intuitive feel for electronic systems set up an informal lab period for interested students to come and play with the electronics lab. We do a little bit of instruction and mostly tinkering on projects of our own. I'm hoping they can help me with the bits of my costume that I don't have the knowledge to do safely.
Speaking of student-driven interest groups, I've got updates on the Barnstormers! Claire and I (co-presidents of the Barnstormers Aeronautics Club here at Mudd, if you'll recall) have been working with Iris Critchell to get the soaring trip going. We flew to Hemet and Crystalaire, where there are glider schools in operation, to see what was available and decide where we wanted to go. Larry Howell, the man in charge of "Sail Plane Enterprises" at Hemet really impressed us and offered us a great deal on pricing. He can only take 12 students a day, and only on the weekends, which is lower than the "Great Western Soaring School" at Crystalaire, but we liked the feel of his operation much more than the Crystalaire one, so we called him up and scheduled two trips. At least two of Claire, Iris, and I will be on each trip, so I'll make sure we'll get plenty of pictures and we'll have some wonderful stories.
See you after Halloween,
~KMarsh
*A glaring exception was Quest for Glory: Shadows of Darkness. This game had a glitch that made it impossible to progress beyond a certain point no matter what. Instead of releasing a patch or an update, Sierra provided a save file with the character located past this point so that players could see the end of the game, albeit with a different character than the one they had built up along the way.
22 October 2008
Quest for Graduation: Dragon Fire
In fact, we can do better. By taking this result and feeding it to the program as one of the inputs, we can extend this panorama indefinitely.* I put a third image into it here:
Next week: Automosaicking.
~Kyle Marsh
*Pro tip: if you actually try to mosaic images all the way around a circle, you'll hit problems as you approach 180 degrees -- the program tries to map straight lines to straight lines, so it'll try to bring the vanishing point (infinity to each side) into the image. Your result will be an infinitely wide image. To actually make a full panorama you have to map the images onto a cylinder, and to do that you need to know the focal length of the camera.
14 October 2008
Quest for Graduation: Shadows of the Real World
This is great when you want to test supersonic aircraft or munitions, either of which may leave enormous craters in the ground (depending on whether they work or not, respectively). It is somewhat sub-optimal when it comes to having anything else within a reasonable commute of the place.
Hopefully they will have a place for a poor computer scientist among all the engineers. Besides...how cool would it be to learn to fly from a fighter pilot?
In other news, I am really enjoying my Computer Vision class. Professor Dodds is a fun guy and he really makes learning these things fun. Two weeks ago we implemented an algorithm called "seam carving". This algorithm will remove connected seams of pixels from images to resize them to different aspect ratios without cropping or distortion. The idea is that you first find the edges of a picture (or some other measure of "energy"), then find the string across the picture with the least "edgyness" or "energy" and remove it. This maintains any interesting areas of the picture, where "interesting" is defined by your energy function; in this example, edges are "interesting".
This picture is of a Pentium Pro I opened up (fairly destructively) to get a look at what was inside. The die on the left is the L-2 cache and the die on the right is the processor itself (Pentium Pro was based off the Pentium II's microarchitecture, which is what the Core2 chips are based on, as well). The image in the upper right is the energy function; white pixels are strong edges, black pixels have no edge strength. The lower left picture is the result of adding up energy across the image to find the lowest energy "seam" and the picture in the lower right shows the carve result (same scale as the original image in the upper left). This method doesn't always work well, but when it does it can produce some spectacular results. There is an extension (that we did not implement) to use seam carving to resize videos as well.
This week we're working on auto-mosaicking to create panoramic images from a set of pictures.
Also: I'm looking forward to Halloween like crazy; it's by far my favorite holiday and there are always such great costumes here at Mudd.
~KMars
27 September 2008
Quest for Graduation: Wages of War
20 September 2008
Quest For Graduation: Trial by Fire
Once again, I find myself in the digital electronics lab at 2am (or, as I prefer, 0200) -- edit: by the time I finished writing this it was 0340. I'll swear I told myself I'd never do this again, but here I am making the same mistakes I made this time last year. My girlfriend (an engineer) is taking E85: Digital Design and Computer Architecture (required for engineers, not CS, but I took it last year for fun) and I offered to help her when she needed things explained. One of my primary functions should be helping her avoid all the little pitfalls in the terrible-does-not-deserve-to-exist-and-should-die-in-a-fire software that class uses called Xilinx ISE. How this software came to be industry standard I do not know, but it is and it is buggier than any game Sierra ever made back in the 90's. And that's hard to do (mind you, I do love my vintage Sierra games).
Despite my supposed wisdom from having experienced all this before I ran us into a 2 hour detour when I forgot that xilinx (look! I'm not even dignifying you with the capital letter deserved by proper nouns, you awful program!) is sensitive to which file you have selected when you tell it to run the simulator. Thus I ended up having her simulate the schematic file rather than the testbench file. The result: the simulator happily simulated the circuit with no input. It didn't have any test program to run through the circuit to check it, so it just said "Okay, your inputs are floating, so I can't really say what the outputs should be, but I've got it sitting here simulated." This led us on a merry 2 hour chase reorganizing how we did the input wiring in the schematic before I noticed that the wrong file was selected in the other window because xilinx is made of FAIL.
On top of the whole xilinx sucking thing, realize that there's a much better way to do this: HDLs. HDL is an acronym for Hardware Description Language. There are two popular (read: industry standard) HDLs: VHDL and Verilog. VHDL is an acronym for VHSIC HDL and VHSIC is an acronym for Very High Speed Intigrated Circuits program. It was developed by the Department of Defense. Hence the 2-level deep acronym. VHDL is more common in academia, and Verilog is more common in industry. Professor Harris, one time digital engineer for Intel, decided we should use Verilog. I digress. The point is, the cute little gui that gives everyone so many headaches in xilinx is really just a wrapper around verilog. When you click the buttons to make it simulate it writes (rather nasty) Verilog behind the scenes. If you wrote the Verilog yourself to begin with, as we do in later labs, you'd avoid all the headaches of xilinx and it'd be much faster to boot.
\end{rant}
By now I've probably scared you all off and bored the rest to tears. I had a nice paragraph here about what I think is cool about Verilog (it looks like a programming language, but each "function" is actually a hardware module so you can't treat it exactly like programming) but then blogger went and ate it, so I'll leave it with that bit inside the parenthesis. If anyone's particularly interested feel free to leave a comment for me and I'll describe it in more detail. To finish off I'll leave you with an interesting proposal: Professor Dodds teaches a class called "Programming Practicum" in which students must solve problems similar to those found on the ACM programming challenges. He gives bonus points for being the first to solve a problem in a particular obscure language. This has led people to solve some of his problems in languages like x86 assembly, Prolog, PostScript, and Tex, of all things. I think someone should solve one in Verilog, that is, someone should implement the solution in hardware and run a simulation to get the answer.
As a parting word, I'll give 10 points to the first person to correctly identify the inspiration to the recent post's titles.
~KMarsh
17 September 2008
Quest for Graduation: So You Want To Be A Mudder
We're back and school has begun. Actually, it began 3 weeks ago. The semester started off rushed for me, but it's settled down for now and I finally have time to blog again. As you may have noticed, I'm learning Russian. It's far too much work to be worth it (6 hours of class/week + 2 hours of homework/night = totally not worth it), but it's my favorite class so far. Be that as it is, however, I'm enjoying all my classes considerably more than usual -- there are often one or two that I just need to take, but this year all my classes are of my own choosing (except clinic, sort of) and I'm enjoying them all.
I'm enjoying living in Case, too. The rooms are huge, although mine is still filled with boxes that I haven't unpacked yet or are waiting to return to storage, and this time around I actually know the people I'm living with and they all range from "I don't know you very well yet" to "damn cool". We've got my Wii in the corner of the L and Litz got a PS3 over the summer so we're going to buy Rock Band 2 when they come out with the new peripherals for it. I also managed to acquire an armchair and 3-seat couch from my grandparents when they bought new furnature. It is some of the most excruciatingly comfortable furnature I've ever experienced, so I'm happy.
Computer Vision is such a cool class. I'm not really sure how much Professor Dodds actually knows about robotics and computer vision because he's always telling us stories about things he tried that didn't work, but I get the feeling that he knows his stuff. It doesn't actually matter, though, because he is extremely good at teaching it and at inspiring excitement and enthusiasm in his students, and that's really the whole point. Our first project was to write a program in C++ or Matlab that locates a can of spam in an image. We took a bunch of pictures of each other holding spam in class on the first day and used those to test our programs. We met with mixed success, but had a fun time seeing what we could do with the code libraries available.
In non-academic news I am now co-president of the Barnstormers (as mentioned before, apparently...). The Barnstormers are HMC's club for all things aeronautical, and Claire and I were given leadership of the club when Matt McKnett graduated. We've already done some cool stuff, like skipping class to hang out with Stan Love -- an HMC alumnus who happens to be an astronaut, but we have even more cool stuff coming up.
First is the annual aero alumni fly-in. At the end of September each year many of the school's alumni who have airplanes will fly in to Brackett Field, take current students up on joyrides with them in everything from carbon-fiber homebuilts to a Citation 2 jet. After the flying we all retire to the Aviation Room at Hoch-Shannahan dining hall (paid for by the aero alumni, hence the "Aviation Room") to have dinner and catch up.
Second is an event we've been planning since last year (also mentioned before). When Claire and I took over the Barnstormers, Matt and Iris proposed that we try to take any interested students on a gliding trip. We started looking at possible glider schools and sent an e-mail to the student body asking for interested parties. Within hours I'd received over 50 responses. Now, after sending an e-mail to the new freshman class, I have over 80 people who have expressed interest. The club got $2400 in funding from the school for the trip, and if even half of those people are still interested when the time comes we'll probably have to make them pay more than I wanted. Also, Claire, Iris and I flew out to visit one of the potential glider schools and the guy there mentioned that he could probably fit about 12 students in one day, so we'll have to split this up into multiple days. More on this as it unfolds.
That's about all I can think of right now, but keep an eye out for more regular posting -- I'll probably start updating on Friday or Saturday and I'll see about getting an RSS feed going. As a parting word, kudos to all those who caught the reference in this post's title.
~KMarsh
26 July 2008
Mad Science
- IR Goggles: Engineers learn that there is no such thing as perfection. Specifically, for my application, there is no such thing as a perfect band-pass filter. The human eye can be thought of as a system that produces a significant response to electromagnetic radiation with wavelengths between 4 and 7 hundred nanometers, peaking at about 550nm (green light). This band of the EM-spectrum is usually called "visible light" because, well, we can see it. The response is a curve, though. It's impossible to get a sharp cutoff in any system, and that includes our eyes. Thus, with a powerful enough source and some way to block all the "visible" light it becomes possible to see light classified as infrared (around 720nm). Your eye produces a very weak response to near-IR light, but it's still there and by blocking out all the visible light, we can actually see IR light. I don't have quite the right lighting gels, however. A friend had extra gels that she gave me and she had the correct "Primary Red" but not "Congo Blue". I tried it with the "Royal Lavender" that she had, but that doesn't actually block much more red than the "Primary Red". Thus I have very dark red sunglasses until I get my hands on some actual "Congo Blue" gels or equivalent.
- Tesla Turbine: Nicola Tesla was a mad genius. Probably my favorite historical figure, Tesla was a brilliant man who really had some great ideas. Many know him as the invertor of the Tesla Coil and pioneer of AC electricity, but he also built other things. The Tesla Turbine is a design for a bladeless turbine that uses a nifty property of flowing fluids known as the Boundary Layer Effect. In short, when a fluid is flowing across a surface, the molecules against the surface don't actually move. The next layer of molecules moves slowely and each further molecule moves faster until you reach the full speed of the fluid. Tesla, although fluid dynamics was not a field that we knew much about at the time, observed this and used it to make a pump to move mercury. He thought it was friction at first, but soon realized it was something else. He later ran it in reverse, pushing fluid through it in order to make it spin. The idea here, is that you take a bunch of disks and stack them up with very little space in between. You then put the stack in a cylinder and squirt a fluid on a tangent to the edges of the disks. The fluid "sticks" to the disks because of the boundary layer effect, transferring some of its energy to the disks. As it loses energy, it travels more slowly, so the radius of the circle it takes around the disks shrinks. It eventually spirals all the way to the middle where it reaches an exhaust drain. I made mine from CD's glued together with neodymium magnets and a small CD spindle. These turbines produce high rotational velocities, but rather low torque. I suspect that is the reason you never see them in modern applications even though they are more efficient than conventional turbines -- you normally want high torque.
04 June 2008
Adventures in Cooking! (in Space!!!!)
There are some things money can't buy. These things can be enormously enhanced by imagining them in space.
On a slightly more serious note: tonight I cooked for the first time, a real meal for myself. Sure I've made scrambled egg sandwiches for lunch and baked cookies for dessert, but tonight for the first time I cooked a real dinner with vegetababbles and everything! I decided to chronicle it, then thought of the MasterCard commercials, then thought of Star Wars, then went a little overboard with the star shaped brush in Photoshop...although I must admit I forgot to do all the cool glowy filters on the lasers. Ah well.
Anyway, let this be a lesson to you all: cooking is not hard, is not scary, and means you don't have to live off hot dogs and peanut butter sandwiches for an entire summer like I did last year.
~KMarsh
25 May 2008
Adverse Yaw
One of the new things that I learned was adverse yaw. In the aero world, the three rotational movements are called "pitch" (tipping up or down), "roll" (rolling side-to-side), and "yaw" (pivoting left and right). When you use the rudder to induce yaw, one wing is travelling faster through the air than the other which provides it with more lift. That additional lift induces a roll. However, when you use the alierons to create roll, the change in lift and drag across the wingspan will induce yaw counter to the turn. This phenomenon is called "adverse yaw" and is prevented by applying rudder into the turn as you roll.
Iris, being a flight instructor, was able to put us (one at a time) into the left seat and let us actually fly the plane once she'd gotten us into the air. Among the things that she showed us were steep-bank turns, low-power (and thus slow) flight control, and stalls. We also got to see how the plane reacted to flight conditions it didn't like -- we gave it a sharp tug to increase or decrease pitch and then took our hands off the controls and let the plane sort itself out over the course of the two oscillations for which it had been rated to do so. After we flew around for a while and learned more about flying in an hour than we had ever known before she took us back down and we headed back to Mudd.
Iris mentioned that when a new flight instructor is being tested for certification, it's an immediate fail if the trainee instructor ever stops talking. Perhaps that's why she'll talk your ear off.
~KMarsh
At World's End
First up is the end of school. Spring semester 2008 is now over at Harvey Mudd College and that means us students are out to do whatever it is students do over the summer. In my case that means working in Pasadena. Before we get there, though, we have graduation! The seniors are leaving us for ever and ever until they come back to tell us how easy the rest of the world is, and we get to listen to Bill Nye the Science Guy give the commencement speech. Bill's a great speaker and now my class has to come up with someone better...I have no clue how we're going to magic that up. Side note: I swear, if you're gonna get a doctoral degree pick the school with the best robes. We've got some very colorful members among our faculty.
Graduation from Mudd occurs on a Sunday (often Mother's day) and students are required to vacate the dorms by 8:00 Monday morning. Thus Sunday night finds my roommate and I packing feverishly and wondering where all this crap came from and more importantly, where it all can possibly hide during the year -- you really settle into a place and don't realize how much stuff you have until it's time to pack it all away. Things also tend to be distressingly non-rectangular. Being the first time that I'm spending the entire summer not living at Mudd (frosh year I took Summer Math, so I stayed for the first 6 weeks and soph year I worked on Staff for the CS Department almost the entire time) this is the first time that I've actually had to pack everything. I'm moving (moved...) into my sister's apartment in LA for the next 11 (10) weeks, so everything must be packed up and everything must be moved or put in storage. Good thing Mudd provides a lot of storage options for us. You see there my room in a state of partial destrucion. Things certainly got worse before they got better. I hadn't thought to take any pictures of my new room/apartment until now and it's currently plunged into darkness, so that'll wait until the morning.
Finally, I started work last week! So far I'm enjoying it. Guidance Software does computer forensics; in the paraphrased words of my (Mudd alum!) boss: first the door-kickers go and kick in the door (doorknobs are out of style in today's world), they shoot a bunch of people and shout "Clear!" Then the detectives come in and shut down the computers in a forensically-sound manner, check the computers into evidence, check them back out, and take the hard drives out. The hard drives have write-blockers attached and the detectives use our software to make an image of the drives. The computers get checked back into evidence and finally the detective uses our software to search the drive images for whatever he or she is looking for (incriminating e-mails, pictures, documents) even in the unallocated disk space (deleted files and such). It's apparently incredible to see someone tear into a drive with this and my boss is hoping to get me into one of the training courses they offer because it's "Wicked cool."
In order to unlock all the features of the software so I can be a developer, they gave me a USB dongle. It's worth about $60,000.
~KMarsh
edit: Here are pictures of my apartment. The first is the living room/kitchen/dining room and the second is my room.
23 May 2008
Gimmie just a minute...
By the way...I know I'm getting some visitors...you should comment; it'd make me feel all warm and fuzzy.
~KMarsh
11 May 2008
Free at Last, Free at Last...
- Theremin: My summer roommate (a fellow roboticist and rocket scientist, possibly at the same time) has agreed to build a Theremin with me over the summer. Not because we can play music (although he's actually quite good with a guitar...mostly I can't play music), but because it oozes sciency sexiness. The theremin is a musical instrument played by waving your hands around it -- it consists of two antennae and some circuitry. One antenna controls the volume (closer your hand gets, the softer the volume) and the other controls the pitch (a variable-period oscillator is connected to the antenna and moving your hand changes the capacitance, altering the period of oscillation. This creates beats with a fixed-frequency oscillator and that signal is sent out to an amp). And I have friends who wonder how to make E&M sexy for high-schoolers.
- Blender 3D Robot Gait Plugin: Blender 3D is an open-source 3D modelling program. It has an extensive api and my friend Jacques over at Robots of Joy has realized the lack of good tools to let garage roboticists design walking gaits for multi-legged robots. Thus the idea was born to write a plugin for Blender 3D that lets the garage warrior build a model of his or her robot, animate it, and send out the commands for the motors when it's ready.
- Work: Oh yeah...I'll be working at Guidance Software in Pasadena. They do digital forensics. I'm not entirely sure what I'll be doing for them, but it should be neat. It will also be good experience working in the software industry.
I have Portal, Half-Life 2 (yes, I've never played it yet), and now Mirror's Edge on my list of compelling reasons to actually spend money on a decent computer. This game looks awesome. There are at least two things that are strikingly unusual about it. First, there's no HUD (on-screen display). Watch again. There's no ammo indicator, health bar, minimap, or any of the other elements you expect to get in between you and the world of the game. Second, your character's limbs are rendered, yet it's a first-person game. This is an attempt to make jumping decent in first-person games (perhaps the biggest complaint about Portal, actually). Finally someone has gone out on a limb and made what looks like a pretty good parkour game -- they did this by focusing on the parkour and not trying to add it as an extra like in Prince of Persia (decent games, but not great).
The game is set in something of a totalitarian dystopia where the government reads all electronic communications, so the only safe way to send illegal information is by using message runners. Your character is one of these message runners and, as seen in the trailer, the feds try to stop you. You can beat them up and even take their guns, but you only have whatever remains in the magazine when you take it and bigger guns will hamper your movements, so it's better to run away in most cases.
Mind you -- I still would rather do this stuff myself. I have a friend (who actually failed out of Mudd in a spectacularly epic way) who was learning some parkour and he showed me a little bit last time he came to visit. There's a decent spot to practice some of the basics on Mudd, but I'd like some other people to work with. Maybe I'll get a group together next year. For those of you who haven't seen it or don't know what parkour is, here's one of the more popular videos:
Actually, this would perhaps be better classified as free running (distinguished from parkour by its emphasis on acrobatics rather than efficiency), but either way it's really cool.
~KMarsh
03 May 2008
Army of (Friendly) Robots
Last Thursday was the demonstration day for our robotics class. As you may remember, my team was intending to enter the Semantic Robot Vision Challenge, but unfortunately two of our 4 members were also taking VLSI which maybe sorta ate all our time and possibly our souls. We scaled it back so that we were only looking for textbooks, under the assumption that textbooks have very well-defined images, and did not implement the bounding-box stuff. Even so we were in the lab Wednesday night from 17:00 until class the next morning. We seemed to work best in shifts of two or three; you've heard that too many cooks will spoil the soup, and in this case there weren't enough different parts for all of us to work simultaneously on the project.
We each had "expertise" in a different area of the project, too; I knew how to make the wheels take the robot where I wanted it to go and had a good general feel for making Python talk to the different microcontrollers we were using (the ER1 Evolution base, the AcronameBrainStem controlling the servos, and the Arduino board controlling the sonar). Heather was the vision person and she did most of the work making our robot identify the books. Greg was the man who braved the dark waters of computer networking to get our MacBook Pro and Dell PC talking to one another via a short length of ethernet cable and even magicked up the campus network on the MacBook's wireless and shared it with the Dell. I don't understand such black arts, but he managed it. Ellen was the servo wizard. I bloody hated those things. They were built from magic and the desolation of lost souls and were even more finickey than the network to get right and always did something wrong if you looked at them cross-eyed, but she managed to bend them to her will somehow.
Next up we actually had to integrate all these pieces. We had a subversion repository full of code fragments that were each a proof of concept for controlling one element of our setup, but with three microcontrollers, two computers, and code written in both C and Python it was no mean task to get them all working together. In fact, it took all night. I was took the task of writing the main Python driver while Ellen was at a play rehersal and Greg and Heather worked on the vision code. I spend a good deal of time making it modular and following good coding procedures and I think that will really help anyone who decides to follow in our footsteps or really anyone who needs to figure out how to make any of these controllers work.
Once I had that put together, we hooked everything up, turned it on, and watched with bated breath as our robot ran headlong into a cardboard box. Turns out that the sonar sometimes returned a bad value and that would crash my program, so I caught the exception and ignored it -- potentially a dangerous thing to do, but it was a 30second fix and I was in a rush. After some confusion stemming from dead batteries powering the servos (did I mention how much I hate those things yet?) we actually got it running and completed the final tests around 07:00 Thursday morning. By this time Greg was passed out and Ellen had gone to bed leaving Heather and I to run the final tests and add in some amusing code of our own. Here is a video of our demo. Professor Dodds isn't the greatest of steadycam men, but it's probably the most exciting video of our robot so far. And for those of you who are wondering, Yes. The "Where are you hiding" is a tribute to the turrets in Valve's Portal.
~KMarsh
23 April 2008
It's About Time!
A cellular network works because the towers have overlapping areas of coverage -- think of a Venn-Diagram -- and when the phone is in the intersection of two towers' coverage areas, it chooses to use the one that gives it a better signal. The problem is that the radio waves used by cell phones get blocked by buildings, mountains, trees, and other unfortunate side-effects of civilization and geography so the towers are fairly close and powerful to provide good coverage. A plane flies over all the detritus on the ground and your cell phone can receive a decent signal from towers miles away. This means that the phone is constantly switching towers to find the best signal and that puts unwanted strain on the network. A cell phone will crash a plane the same way it will crash a car -- by distracting the driver, not by interfering with instrumentation. And airline pilots get slightly more training than automobile drivers.
Wired magazine ran an article in the current issue that mentions this, although it doesn't do much to explain it. The primary focus was to let people know that several major airlines are providing Wi-Fi service to passengers via-cellular networks. The way these work is by having a "cell tower" in the plane connect to the base stations and all the network devices on the plane connect to its tower instead of the cell sites, thus avoiding the network problems described above.
I may have some details wrong in the above description as I don't know a great deal about radio communications, but the gist is correct and this has been a pet peeve of mine for a long time, so I'm glad the myth is finally getting resolved. It's as bad as the 10% of your brain myth.
~KMarsh
Old Engineers are Amazing
Mostly. The screen didn't, which is kind of a pain. It appeared that everything else worked, so after some rooting around we discovered a key hanging inside the case of the machine that, once we tested it, opened the panel that the screen is on. We took it out and looked around to find a very smoky looking fuse -- we suspect it was blown when Ross zapped himself under the table, but we couldn't quite tell and didn't have a spare on us. We'll go back soon and check to see if that was it.
But the cleverness that you see in old mechanical things! It's really amazing what those old-timey engineers could come up with. Take the bumpers, for instance. They are a plastic or metal tube that the ball collides into. Around the base is a pressure switch that the ball presses when it hits the bumper. That switch triggers a solenoid (almost everything in the machine is a solenoid) that drops a metal ring from the top of the bumper. The ring is concentric with tube part of the bumper but slightly larger around so that it hits the ball somewhere on the bumper-side of the ball's center, forcing the ball away from the bumper. There was also a solenoid pointed at the side of the case. The best guess that Ross and I could come up with was that it was for making big thumps as sound effects.
~KMarsh
22 April 2008
I Love Mudders. And Planes.
With that in mind, consider the following. I sent an e-mail to the student mailing list (students dash L, we call it) asking for students interested in a glider trip with the aeronautics club next year at 22:30 on a Monday night. I had the good luck to send it right as the mailing list moderator was cleaning out his in-box so it got sent right away. Within 3 minutes I had 7 responses. 3 and a half hours later, in the middle of the night, I had 34 responses. One day later and I had nearly 50 responses. I did not expect this, but it is exciting all the same. The 3 minute one is really the important one.
As for the trip, well I'm taking over joint leadership of the Barnstormers (HMC's aeronautics club) next year and one of the suggested events was to schedule a trip for the club to go on a glider trip. We need to submit our budget proposal by Friday, so I needed to gauge interest: a 30 minute flight is about $100, we might get a 10% discount, people'd probably be willing to spend about $20 out of pocket and the club pays the rest if we can get our hands on the dough. Thus, it's just a matter of how many people are interested. With 50 expressing interest right now I figure we'll probably find ourselves with about half that actually ending up wanting/able to go depending on when it's scheduled.
Another thing to note is that Harvey Mudd College used to have an aeronautics program in which students would learn about aviation and eventually get their private pilot's license. Iris Critchell was the driving force behind the program, and she's still here at Mudd. Look for more about the Bates Program and Iris in upcoming posts.
~KMarsh
19 April 2008
Registration and Current Coursework
Last night the entire school decided to party. I'm not entirely sure why, but among other reasons it seems that everyone realized that we're near the end and the mountain of coursework is, in fact, doable. For some value of doable, at least. I've finished one of the movement analyses I have to do and have started researching my big paper, so that's good, but VLSI needs to be documented, so we have a huge task writing that up now as well. My robotics project has been scaled back to the problem of finding textbooks instead of generic objects because two of our team members are in VLSI and couldn't work on the robot much recently. I'd better get back to researching.
~KMarsh
14 April 2008
Registration is in the Air
Tentatively, my schedule for next semester looks like this:
- CS Clinic (cool industry research/work project class)
- CS Colloquium (get talked at for an hour a week by people doing CS-y things)
- Computer Vision (taught by Zach Dodds, who is Awesome, about once a decade)
- Occult and Magical Philosophy (taking it on Pitzer with friends -- fills Humanities reqs.)
- Some Language Class
- German -- 4 days a week and I've wanted to take it for a while.
- Japanese -- possibly quite useful, but 5 days a week and people tell me it's hard/huge time requirement.
- Chinese -- 5 days a week, but taught on Mudd by a new prof. Fills an on-campus hum req. but new prof is a gamble. I'm not remarkably interested in it.
- Russian -- 5 days a week. Slavic language may be useful for travel in Eastern Europe.
- Some Other Class
- Project Management -- Engineering class, may have overlap with Software Design.
- Networks -- I don't know much about computer networks and I really should learn.
- Enterprise and Entrepreneurs -- Econ class on Mudd, fills on-campus hum req. Easy prof.
- Materials Science & Energy Conversion/Storage -- something cross listed under Chem, Engineering, and Physics. Sounds interesting, but held at 8:00-9:15pm
~KMarsh