Sunday, August 10, 2014
Benediction
Monday, August 29, 2005
Google, we need to talk
I've been pretty excited as I watched the rumours on Slashdot fly around about a new instant messaging system from Google. After all, Google has revolutionized several internet technologies that were previously miserable: take Google search, Google maps, Gmail, and Picasa, as a few prime examples. They've always been friendly to the open-source community as well. When I heard that their new chat client would use the Jabber/XMPP protocol, I was really excited. Unfortunately, Google let me down this time. I haven't actually installed their IM client yet, but if it's anything like their other work, then it probably has a nice, easy to use user interface and a good feature set. However, after reading this article, I've decided that Google missed the mark this time. I'll explain why.
Instant messaging is currently highly centralized--only instead of one center it has three or four. Whenever you use one of the major instant messaging clients (AIM, ICQ, Yahoo!, MSN), your computer connects to a central server somewhere. When you send a message to your friend, the message goes to the server, and the server then sends it to your friend. Each different service has its own server and its own way of tranmitting messages (called a protocol). What this means is that if you're using AIM, you can only talk to other people using AIM, and likewise for each of the other services. If you want to talk to everyone, you have to run three or four different instant messaging clients. There are some third party programs out there that allow you to connect to and use all of these different services through one program (Miranda or Gaim, for example). But you still have to have an account on each service and the program is still performing some pretty impressive gymnastics under the hood.Jabber is an attempt to change that. The Jabber/XMPP protocol establishes a standard way for these servers to communicate with each other. It's based on XML and DNS, if you're familiar with those. With Jabber, instead of everyone connecting to the same central server, everyone can connect to any Jabber server they want. Each Jabber server is identified by domain name, just like email. So if my Jabber ID is me@mydomain.com and I send a message to you@yourdomain.com, then my message goes first to the mydomain.com server, which then sends it on to the server at yourdomain.com, which then passes the message on to you. This has many advantages. For one thing, I only have to compete with people on my domain for IDs, so there's less of this convoluted screen name business. It can also be more secure, since if I want to, I can set up my own Jabber server on a local network (for example) and messages to people on that server never leave my local network. It also means that no one company/organization/person/government/whatever controls the entire system, which has obvious ideological drawbacks.
Unfortunately, Google Talk doesn't take advantage of this capability. Sure their service uses the Jabber protocol, which is kind of cool because it means that those multiprotocol client programs that I mentioned earlier already support Google Talk, but very few people actually use those anyway. But even that small percentage of people (mostly Linux geeks) will still have to have a Google account to use the service.
The best way to understand it is to compare it with email. Imagine if you could only send email to people who used your ISP. AOL people could only send email to AOL people, Comcast people could only send email to Comcast people, students at one school could only send email to other students at that school, etc. Maybe there would be some programs out there that let you use each of these different email services through one program, but you still have to have an account with each one (which in the case of ISPs, usually costs money). Believe it or not, it actually used to be that way, until around 1991 when SMTP became widespread. SMTP provided a way for all of these email servers to communicate with each other, thus allowing everyone to email everyone. (Similarly, HTTP is basically the same thing for web pages, and a similar parallel could be drawn there.)
Wouldn't it be great if all of the major IM service providers would adopt the Jabber/XMPP protocol? Then you could choose your favorite chat client (Google Talk would probably be a good choice) and instantly talk with anyone on any of the other services. If Google had led the way and decentralized their software so that it could connect to any Jabber server instead of just the Google Server, or even if they had just set up their own massive Jabber server which would communicate normally with other Jabber servers, then very likely the others would have followed suit. If they didn't, then likely people would migrate away from them towards other services that allowed them to communicate with more of their friends. Instead, they're going to selectively create "federations" with other services. Even if Google eventually allows you to message between Google Talk, AIM, MSN, and Yahoo!, it will still be centralized, and it would still be like requiring everyone to subscribe to one of a few "big names" to send email to each other.
Instead, Google has just added one more hoop to jump through if you want to be able to instant message with everyone. You now have to have one more account and one more client (or one more backward handspring if you use a multiprotocol client) in order to be in touch with everyone. Instead of "organizing the world's information and making it universally accessible and useful", they've now made it that much more scattered and inaccessible.
Shame on you, Google.
Tuesday, July 12, 2005
Nathan is...
Check out Googlism.com to find out what Google thinks about you (or anything else, for that matter).
Some of my favorites from a search for me:
- nathan is?
- nathan is in the military and gets vaccinated for everything
- nathan is a sweet innocent 8 year old boy
- nathan is hot
- nathan is missing a valve in his heart and the hole was directing the blood through the heart instead of nowhere
- nathan is a fish that was removed from this website due to it's provocative nature and detailed analysis of nathan's biological make up
- nathan is a babe
- nathan is right
- nathan is my alter ego if you will
- nathan is africa's most experienced bow hunter
- nathan is one who is a 'jack of all trades' because he can do various things
- nathan is the leader in the field of french as a foreign language
- nathan is not an option
- nathan is back
- nathan is in het verhaal ongeveer 10 jaar oud
- nathan is very athletic
- nathan is kinda happy
- nathan is the only member of his family with artistic ambitions
- nathan is the author of 9 papers which have been cited a total of 7090 times
- nathan is modern hey
- nathan is scheduled to appear on the conan o'brien show on april 1
- nathan is a guy whose motto is like sir winston churchill's
- nathan is a young teen with dreams of being a filmmaker when he discovers he's gotten his girlfriend
- nathan is quick
- nathan is brought face to face with an evil killer
- nathan is a genius
- nathan is trapped in a nightmare even he could never have envisioned
- nathan is an established 'lifestyle' brand in australia
- nathan is an excellent traveler
- nathan is kosher
- nathan is sexy
- nathan is martin is steve
- nathan is just too dang sexy
- nathan is a jewish biologist
- nathan is singapore president
- nathan is not gay?
- nathan is on his way to ransom his sister
- nathan is skeptical but also desperate
- nathan is a gangsta who spends his free time stealing lunch money
Wednesday, July 06, 2005
You boys like Mexico!?
I've seen a play on Broadway in New York City. I've been in the Sears Tower in Chicago. I've seen the Smithsonian, in Washington, D.C. and the St. Louis Arch. I've been to Edinburgh Castle in Scotland and to Buckingham Palace in London. I've been to Miami, Honolulu, Dublin, Puerto Rico, Jamaica, and Venezuela. And now, after this 4th of July weekend, I can stick another pin on the map, this time in Monterrey, Mexico.
After spending 4 hours at the Mexican Consulate to obtain 2 temporary travel permits and a vehicle permit (all complete with official rubber stamps) and after filling all of our leftover milk cartons, ice cream buckets, and other spare containers with water and our backpacks with a few clothes, some sunscreen, and some toilet paper, my roommate and I donned our sombreros and set off to go south of the border (and I don't mean Taco Bell). Our first stop was the public library to pick up the "Let's Go: Mexico" guidebook and a Spanish-English dictionary and phrasebook. We quizzed each other on Spanish vocabulary and practiced our conjugation all the way to Nuevo Laredo where we zipped through the border patrol and found ourselves stopping at signs that said "Alto," checking our speed in kilometers (though we soon realized this was not really necessary), and trying not to look suspicious to the underpaid Mexican teenagers with large guns at the military checkpoints along the way. Undeterred, though, we pressed on toward our destination, now about 4 hours away. Thus began the adventures of Sergio y Fernando, Los Dos Amigos!
We arrived at Monterrey late in the afternoon, and headed straight downtown. This, we discovered, was no easy task. Little did we suspect that when our guidebook said that Mexicans "drive as safe as anybody," that they weren't referring to "anybody" in the generic, "most normal people" sense, but were apparently referring instead to a blind orangutan name "Anybody" with a penchant for drinking. Such was the free-for-all that Sergio deftly negotiated while Fernando expertly translated signs, navigated, and occasionally screamed loudly to warn of impending death by maniacal taxi driver. After eating some tradition Mexican McDonald's food, we set out to find a place to stay, and a few hours later we slept soundly in a small, un-air-conditioned, but clean and very cheap hotel with a friendly attendant and enclosed parking. We woke up on Sunday morning and set out on foot to see the city. Fernando started the day off right by purchasing a cowboy hat from a Mexican thrift store for 100 pesos (~$.90). Our next stop was the Museo de Historia (the Museum of History), which was the lamest museum ever. Besides one room full of random junk without even an explanatory plaque, the only other open exhibit contained about a dozen self portraits of a rather vain Mexican painter. I did manage to climb up onto the roof from a ladder in the bathroom, though, which was kind of fun. The Zona Rosa (Area of the Rose) was more interesting, and we amused ourselves for a few hours by wandering, shopping, people watching, and lounging in the park. The Fountain of Neptune was particularly pretty and it was fun to watch the vendors hawking their wares, the couples shamelessly displaying their affection, the teenagers kicking the fútbol in the grass, and the kids playing in the water. Leaving the park, we headed for the Barrio Antigua (the Old District), which is one of the few places in Monterrey that still has traditional Mexican architecture and which supposedly has a pretty hot nightlife during the tourist season. We were there in the middle of the day in the off-season, though, so there weren't many people there, but we ate at a good Mexican restaurant with a cheap taco buffet and tried the local cerveza (Cerveza Sol), which wasn't half bad, for a beer. As the day wore on, we headed back toward our hotel at a leisurely pace, taking time to walk through the open-air markets and the rich shopping district, to buy a homeless man a burger, and to watch some sort of Mexican talent show. We ate a late dinner of sandwiches at a local restaurant which we washed down with fresh papaya juice and topped off with some flan (which, as far as I could tell, was just red jello), after which we headed back to our hotel, took a cold shower, and went to sleep.
Monday morning, we decided we'd had enough of the city and wanted to get out and see the countryside. We finished up some shopping (baseball caps, a fútbol jersey, a colorful blanket, and a few more $1 cowboy hats) and then paid a visit to the tourism office, where a nice lady who spoke English recommended that we head to Bustamante. Waving goodbye to the Cerro de la Silla (Saddle Mountain) we fought our way out of the city and were soon driving along a long, straight, abandoned country road which would have been a perfect place to find out if my car can go exactly 98 miles per hour (with the air conditioner on). Apparently, a crazed truck driver also felt it would be a good place to check my car's offroading capabilities, since he decided to swerve into my lane and run me off the road as I tried to pass him. But fear not! Los dos amigos can not be so easily stopped. We took the opportunity to make a photo shoot in our cowboy hats in front of a Mexican ranch and then continued to Bustamante.
As we neared the town, we began to see signs for two different attractions: "el ojo de agua" and "las grutas." We didn't know what "las grutas" were, but the "eye of water" sounded like a fun place, so after stopping for a refresca (coke) in Bustamante, we drove out to what seemed like the Mexican equivalent to a state park, beautifully set in a valley amidst the Sierra Madres. We did a bit of painful hiking (the bushes are surprisingly territorial for a vegetable) and worked up a good sweat before jumping in the cool water of the springs (the "ojos de agua"). We splashed around for a long time and tossed the disc a bit, and then decided we'd go into town for some dinner and then return to the park to camp for the night (we'd brought a tent for this very reason). Returning to town, though, we discovered that none of the shops or restaurants were open. Upon a recommendation from a shop-keeper (where we had bought cokes earlier that day) we found a hotel/restaurant owned by a very kind old couple. They cooked dinner for us (we were the only ones there) and we discovered in a halting but more-or-less successful conversation with the owner that they had many more visitors during the cooler parts of the year, both Mexican and American. We also learned that "las grutas" meant "caves" and that there was one near the top of a nearby mountain, and that this mountain was also a neat place to go at night to look at the stars. We decided that this was too good to pass up, so we nixed the idea of camping and rented a very nice room for the night (still no AC) and set off up the mountain. It was a somewhat grueling hike, but we made it and were rewarded by a spectacular view of the heavens. We sang some patriotic songs (it was the 4th of July, after all) and God provided the fireworks as we watched the shooting stars and the lightning bugs and gazed at the Milky Way long into the night.In the morning, we hiked right back up the mountain, this time with a Mexican family of 5 and a guide and explored the cave at the top. The cave was far from pristine and we grimaced as the Mexican children climbed all over the stalactites and other formations, but it was impressive nonetheless, and the most fun part was hanging out with the Mexican family and trying to communicate (which mostly consisted of exchanging nouns in English and Spanish with the kids).
As we hiked back down the mountain, our adventure was drawing to a close. We made one last stop in Bustamante for some ice cream and then headed back for the states. This time we were stopped by one of the aforementioned Mexican soldiers with large guns, and though we never did understand his questions, he seemed satisfied with our papers and let us go. The U.S. border patrol was less impressed, though, and made us take everything out of our car while a dog made sure we didn't have any drugs in our 4-foot Batman piñata. Once they were satisfied, we got back on I-35 north and said "¡Adios!" until the next episode of...
The Adventures of Sergio y Fernando, los Dos Amigos!
Click here to see pictures from the trip.
Friday, July 01, 2005
Tuesday, June 14, 2005
Keeping busy
Many people have asked me about what I'm doing this summer. I usually give a short explanation that doesn't really do it justice. If you're interested, I'd like to take some time to explain in a bit more detail about what I'll be working on this summer.
I'm working for a company in Austin, TX, called National Instruments. The program that I'm a part of is called the Engineering Leadership Program, or ELP. The purpose of ELP is to give new hires and interns a chance to sort of sample the company and determine how they want to shape their career at NI, while continuing to gain experience with NI products. Basically, this means that ELPs work in the Applications Engineering department for 1-3 years and sort of alternate between doing things like phone support or teaching classes, and working on projects with other departments in the company.
As a 3-month intern in the program, basically what this means is that my internship has three parts: two weeks of LabVIEW training, a week of phone support on LabVIEW, and then a little more training and I move off to a sweet project in the consulting department. Oh look, a topic sentence.
My first two weeks at NI were spent in various orientation activities and an 8-day crash-course in LabVIEW. What is LabVIEW, you say? I'm glad you asked.
For that matter, what is National Instruments? NI creates "innovative computer-based products that improve everyday life. We give our customers a better solution for measuring and automating the world around them." So, the key words there are "computer-based," "measuring," and "automating." Traditionally, tests and measurements are done by large, dedicated pieces of hardware. If you need to measure voltage, you use a big voltmeter. If you need to monitor a signal, you get a big oscilloscope (fig. 1). These instruments are expensive, proprietary, largely non-interoperable, and have fixed functionality. By contrast, NI has pioneered the concept of the virtual instrument. In this approach, you just buy a data aquisition (DAQ) card (fig. 2) that goes in a PC or in one of our chassis. You can then control all of your hardware easily and intuitively using our graphical programming environment called, you guessed it, LabVIEW. It's cheap, it's small, it's customizeable, it's flexible, it's powerful, and our world-class support (provided by well-trained, knowledgeable engineers like myself) will be glad to help all along the way.
Now, I'm taking a few more classes on DAQ and some of our specialty products (LabVIEW real-time, LabVIEW FPGA, and motion-control). In another week or so, I'll move over to the NI Consulting Services group and begin working on a project to improve a demo that we use at trade shows and such. The demo consists of a scaled-down aircraft wing undergoing a deflection test. We use a motor with a lead screw to deflect the end of the wing and monitor the strain experience by the wing via 15 strain guages on the surface. The data is processed and displayed in pretty pictures and graphs.
Currently, the entire demo is run off of a single Windows-based machine. This includes all of the motion control, data aquisition (from 15 strain guages and a load cell), data processing, and visualization. The problem is that the processing demands get extremely high and even with an impressive computer the user interface starts to slow down and a lot of the visualization gets laggy.
My job is to redesign the system to use a separate, real-time system to do the motion control to administer the test. This will accomplish three things. First it will lighten the load on the PC so that it can focus on fancy analysis and display. Second, it will allow more precise control of the test itself (I'll be using a closed-loop architechture with a PID feed-back loop, in case you care). Finally, it will allow us to show off another really cool piece of NI hardware. The system I design will run on a box called compact Reconfigurable Input-Output, or cRIO. This is basically a little computer-in-a-box designed for time-critical (i.e. real-time) applications in extreme environments. It's rated for -40°F to 158°F and can take up to 50 gees of shock. This page describes some of the fun things you can do with cRIO (like launch it in a rocket or throw it off a building) and has a link to a great video. I heard they also ran over it with a Hummer.
The company is really cool, too. Everybody is really laid back and friendly. A few weekends ago my entire department (about 80 people) went tubing down the Guadalupe River, complete with a raft full of beer coolers. They also like to have "deck parties" whenever they can find an excuse (such as a new product release, or being rated one of the fortune-500 top 100 places to work for the 6th year in a row), where all the employees go hang out for a while at the end of the day (on the clock, for the interns) and eat and drink and such. My department is particularly fond of shooting rubber bands at each other whenever the opportunity presents itself. The guys right around me often play soccer in our cube.
So basically I'm getting paid to hang out with really cool people, learn lots of cool stuff, and play with some cool toys. Pretty sweet.
After two weeks of training, I then went on the phones for a week, which was definitely an interesting experience. Suddenly, after two weeks of training, I'm supposed to be the expert on a piece of software that many of our customers have been using for 15 years. I did better than I expected, though, and you would amaze yourself at how much you can learn while rambling away on the phone and clicking frantically around the LabVIEW help files (the fact that the user could have done this himself is beside the point). My favorite call was definitely the guy who called in and had some trouble running some software off of one of our training CD's. After restraining myself from saying "maybe you should just give up now," I proceeded to help him solve his problem. As I was wrapping up the call, he said "oh, by the way, you might want to know that there's a tech support phone number printed on this CD which goes to a phone sex service." Apparently we printed "800" instead of our area code. I thought about explaining to the customer that he had actually just reached our new customer satisfaction department which we were now directing customers to before routing them to our tech support department.


Fig. 1
Fig. 2

