Posts Tagged java

Who pays for the Internet?

This was the question presented by the professor of my undergraduate networking class. As far as I can tell, the answer is: you do. And you’ll pay increasingly more for it if some people have their way.

Unless you live in an area with subsidized broadband and/or wifi, you’ve got to pay an access fee to an ISP. At this point, dial-up is more or less useless, so you’ve got to fork over $40 every month just to get online. Like most people, your ISP is probably a large telecom, like Verizon, Comcast, or AT&T, so the true cost is probably a lot more than that since it’s almost impossible to buy internet access by itself. You’re forced into signing up for a “bundle” which is some combination of land line phone, cell phone, TV, and internet all provided by the same company.  A lot of the junk (and added cost) that comes along with the bundle is probably unwanted, like bizarre foreign language TV channels, call waiting, and hardware rental fees since the option isn’t often given to buy your own modem or cable boxes.  By purchasing a bundle from an ISP, you’re subsidizing the weirdos who actually watch some of those high-numbered TV stations, listen music on their TV, or enjoy being nagged by call waiting that can’t be turned off.  Since the number of providers available for a given location are usually pretty limited, you’re forced into paying monopolistic prices as well as paying for services that you don’t even want.

It’s bad enough that you’ve got to fork over the dough for services that you don’t even want in order to get internet access, but in truth, it’s a lot worse.  Access is merely a base cost for using the internet.  In nearly all cases, there’s also a cost for accessing content.  Somebody has to pay for hosting and generation of that website you frequent or the videos you watch, and again, it’s going to be you.  Advertising is one commonly used method to shift the cost onto consumers.  Nearly every website has it.  Until around five years ago with the advent of pop-up blockers, Javascript removal tools, and ad-blocking tools, every website I visited spammed me with a torrent of flashing banner ads, pop-ups, and keyword advertising.  Somehow, the notion goes, enough people would actually click on that crap and buy whatever it was that was being advertised.  The advertising revenue would keep the servers running and provide the blog/newspaper authors with a small paycheck.

Personally, I can’t stand advertising in general.  It gets in the way of whatever it is I’m trying to do, whether it be searching or browsing the internet, reading a print newspaper, or watching TV.  Reading the paper or watching TV probably adds about fifteen minutes of sifting through all the ads or waiting through commercials to get to the rest of the TV show I want to watch or the newspaper article I want to read.  I’ve never clicked on a banner ad, much less even bought something that was advertised in this manner.  On the internet,  it’s hard to manually filter out all the crap to get to what you want.  Fortunately, current ad-blocking tools do a pretty good job.  I’ve even forgotten how good a job they really do, for when I sit down in front of a computer without any ad-blocking software, the harassment of flashing banners and keyword ads drive me up the wall.

Though internet advertising revenue has increased in the last year, it is predicted to fall in 2009.  Everyone is finally getting sick of all the junk constantly being pushed at them as advertising approaches levels seen in “Idiocracy” and methods used in “Minority Report.”  A great argument against internet advertising states that it is “not trusted, not wanted, and not needed.”  While print newspapers are folding due to declining subscriptions, content providers on the internet are worried about a similar fate due to declining ad revenue.  Ironically, the print newspapers mainly blame their plight on the shift to electronic media.  To that end, content providers are considering increasing their usage of a second tool to provide revenue: yet another access cost.

Most online newspaper websites and online offerings of network TV shows do so with fairly low restrictions on who accesses their content. The front page stories for nearly every newspaper are available online as well as last night’s Lost episode.  This freedom of access is what makes the internet so great: once you get in, there are few barriers to access anything.  However, the same people that brought you bundled internet access want to change that.  One media executive says, “We want to change consumer behavior somewhat, so the expectation that everything online is free has to change.”  If this expectation changes, the internet as we know it is finished.  It is the freedom and openness of the internet that makes it as valuable as it is.  You can find anything or anyone and learn about nearly any topic available.  On the internet, you can collaborate with people half a world away.  The introduction of a second access cost for some internet content will most likely remove that openness.  The effort to preserve network neutrality has been in place for several years, but now it may be coming to an end.  Several ISPs are currently proposing pay access for channels and TV shows online.  The movement of this business model may force providers of other media to do the same.  Original sources will become locked down, leaving open and collaborative efforts to rot without them, such as Wikipedia, or IMDB.  Someone may want you to look at a video posted to YouTube, but you can’t look at it because you don’t have the money to pay the access fee.

Nobody really wants to pay a pile of access fees to get the latest news, or even to watch videos on the internet, especially when an ISP is charging a significant monthly fee just to get online (though some say they are).  The problem is that the annoyance and unprofitability of internet advertising is forcing a shift to another solution to prop up content providers.  If the shift to selling access to content goes too far, the internet may become segmented into a large number of tiers, causing the digital divide to span both the physical and electronic worlds.

, , , , , , , , , ,

No Comments

Upgrading to TinyOS 2.1

I recently upgraded my TinyOS version from 2.0.2 to 2.1 and discovered that it makes use of Java 6.  I was testing my installation and kept getting the following when compling TestSerial:

java.lang.UnsupportedClassVersionError: Bad version number in .class file

Changing my java complier and runtime to Java 6 fixed this problem.

, , , , , , ,

No Comments

Code Size: It’s too big for my head

In all my previous programming projects that I’ve done on my own, I’ve always remembered exactly how everything worked: what every function and variable did and how every data structure and class interacted with each other.  In a way, I was able to store and compile the entire source code in my mind and know exactly how it would work.  With my current project, I can no longer do that.  The code is just too big and I can only remember pieces of it.

I think I’ve got about 10,000 lines that I’ve written for this over the past few months, which easily surpasses anything I’ve worked on before.  Nearly every week I’ve made significant changes to existing code and added in a lot of new stuff.  Something of this size in a constant state of change is a new challenge to me.

Consequently, I’ve taken a lot of steps to keep everything organized since I can’t do it in my head.  Since the code is mostly in Java, I’ve done my best to take advantage of its object oriented nature.  I try to keep things as loosely coupled as possible so that when I’ve got to make some modifications, it doesn’t screw everything.  I’ve made use of Java packages to group stuff together that has similar functions.  On top of all that, I’ve put the project into a Subversion repository so I can always go back to old stuff and so that I can work on it from multiple machines without it being a huge headache.

Of course, this is standard procedure for any programmer, but until now it’s never been absolutely necessary for any projects I’ve worked on alone.  During my internships, I had worked on stuff that was in the tens of thousands of lines, but it had been contributed to by other people.  Good programming practices made sense since other people would be working with my code and vice versa.  With what I’m working on now, it’s almost as if some of the stuff was written by someone else.  I’ll come across a method that I wrote two months ago and not remember much of how it worked.  I feel like a one man programming team.  I recall an interview of Bjarne Stroustrup that complained about grad students that would work on their own projects and write terrible code, not expecting that later on it would be needed for another project or possibly released to others.  I’d rather not fall into that trap since the stuff I’m working on now will likely see plenty of use in the future.

Increased comprehensiveness is one reason they say that Extreme Programming is so valuable — having someone else there with you really helps in making something that not only works, but is built in such a way that everyone can understand it.  Some people, including myself, can often write something that is almost completely unintelligible to others.  Knowing this is one reason I like to avoid cramming several actions into one line, for which I’ve gotten grief from others about being “verbose”.  I’d rather be verbose, but understandable than concise ambiguous.  I’ve never understood why people brag about writing a program in as few lines as possible, usually in some loosely-typed scripting language.  For part of this project, I had to use someone else’s MATLAB script to convert some trace data.  Of course, they crammed the conversion code into about fifteen lines that took me forever to figure out what it did (partly because I’ve never used MATLAB).  Not wanting to revisit that, I translated the code into Java in a more drawn out format so it would integrate well with the rest of my project.

I’m sure there are plenty of things I could do to make my code more better than it is now, but it’s hard to improve when there isn’t someone to give you feedback.  I can learn from my successes and mistakes from previous projects when working on my current project, however.  It seems as if most good programming practices don’t matter so much when the code size is small, but when a threshold is crossed, they seem to go from irrelevant to absolutely necessary.

, , , , , , , , ,

2 Comments

More Ubuntu, TinyOS-2.x, and Java

Last time I checked, the TinyOS 2.1 tools want Java 5 and in the instructions I posted here I wrote about removing other Java versions that were giving me trouble with the install. I figured at the time that removing Java 6 might come back to bite me and it did today, when another app I tried to install blew up on me. It needed Java 6. I found a way to switch between Java runtime versions using this post and this post, by running:

$sudo update-alternatives --config java

To change the java complier (javac), run:

$sudo update-alternatives --config javac

Now I can have multiple Java versions coexisting on the same machine (I hope).

, , , , , , ,

1 Comment

Installing TinyOS 2.x on Ubuntu (with Iris support)

Since upgrading my Ubuntu installation, I got plenty of compile warnings when compiling TinyOS applications.  To fix this, I just decided to reinstall TinyOS.  It can be a pain to install and each time I do it, I’ve got to look for resources on the internet and try a couple different things to get it working.  I’ll try to keep this updated whenever I discover something new or have to upgrade or reinstall TinyOS again.  Here are the references I found to help me compile this:

All Platforms:
Installing TinyOS 2.0.2

Ubuntu:
5 Second Fuse – TinyOS Installation
Install TinyOS-2.x On Ubuntu << Udin Harun

I also got it running on my Leopard Macbook using this:
Installing TinyOS 2.x on Mac OS X (Tiger and Leopard)

This worked for me on Ubuntu 8.10 Intrepid Ibex.  I did have a previous install of TinyOS that I removed, but some stuff may have been left behind.

1.  Add the following line to /etc/apt/source.list:

deb http://tinyos.stanford.edu/tinyos/dists/ubuntu hardy main

Currently, there isn’t any repository for Intrepid Ibex, but this seems to work fine.

2. Update the repository cache from a terminal window:

$sudo apt-get update

3.  Install TinyOS packages:

sudo apt-get install tinyos tinyos-avr tinyos-msp430 nesc tinyos-tools

In my case, “tinyos” caused a warning since it was an abstraction for several packages.  I installed “tinyos-2.0.2″.

3a.  (Iris Support): Install TinyOS from CVS:

I also wished to have the latest TinyOS version from CVS since it seems those provided via the Stanford repository did not support the Iris mote.  To install from CVS, open a terminal window to the installation directory of your choice and run the following:

$cvs -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos login
$cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-2.x
$cvs -z3 -d:pserver:anonymous@tinyos.cvs.sourceforge.net:/cvsroot/tinyos co tinyos-2.x-contrib

tinyos-2.x-contrib is a library of user-contributed code that can help in designing your own applications.  If you installed as su, you may want to change the permissions of your tinyos-2.x directory if you wish to compile anything in the apps directory or modify any TinyOS code:

$chown -R <uid> tinyos-2.x

4. Add the following environment variables to ~/.bashrc:

export TOSROOT=/opt/tinyos-2.x
export TOSDIR=$TOSROOT/tos
export CLASSPATH=$TOSROOT/support/sdk/java/tinyos.jar:.
export MAKERULES=$TOSROOT/support/make/Makerules
export PATH=/opt/msp430/bin:$PATH

Depending on the directory and version you have installed, you may need to change TOSROOT to reflect the correct directory.

5. Install TinyOS Java Toolset:

I had issues with this one: you may not have to do this step if you just use the tinyos package provided by the Stanford repository.  However, I installed via CVS and had to install the TinyOS Java toolset manually.  Ensure that you have performed Step 4 and modified your .bashrc file before proceeding.

First, from the terminal, run:

$sudo tos-install-jni

This will install the Java Toolset into your Java directory.  For some reason I had Java 1.5 (5.0), Java 1.6 (6.0), and OpenJDK installed on Ubuntu.  Oddly, javac pointed to Java 1.5 and the java command pointed to OpenJDK, which was causing errors when running TinyOS Java apps like TestSerial.  To fix this, I removed Java 1.6 and OpenJDK since these seemed to be causing nothing but problems and just about everything runs on 1.4 or 1.5 (including TinyOS Java libraries).  Now java and javac point to Java 1.5 (Hopefully doing this didn’t toast some other application).

You can then compile the TinyOS Java libraries by running the following in the terminal:

$cd $TOSROOT/support/sdk/java
$make

6. Install Graphviz
This step seems to be optional, but you need it if you want to run the Oscilloscope application.  In a terminal, run:

$sudo apt-get install graphviz

TinyOS wants an old version of Graphviz, but Oscilloscope seems to run fine.

7. Check your TinyOS Installation:
From a terminal, run:

$tos-check-env

Running this, I have received errors about the Graphviz version, but the Oscilloscope application runs fine with the newer version.

To test your installation with Telos-based motes, try:

$cd /opt/tinyos-2.x/apps/Blink
$make telosb install.0 bsl,/dev/ttyUSB0

To test with Iris motes, try:

$cd /opt/tinyos-2.x/apps/Blink
$make iris install.0 mib510,/dev/ttyUSB0

To test the serial connection with Telos-based motes, try:

$cd /opt/tinyos-2.x/apps/tests/TestSerial
$make telosb install.0 bsl,/dev/ttyUSB0
$java TestSerial -comm serial@/dev/ttyUSB0:telos

To test the serial connection with Iris-based motes, try:

$cd /opt/tinyos-2.x/apps/tests/TestSerial
$
make iris install.0 mib510,/dev/ttyUSB0
$java TestSerial -comm serial@/dev/ttyUSB1:iris

It seems that with the Iris, applications must be installed via the mib510 board (ttyUSB0) and data can be retrieved by accessing the mote itself (ttyUSB1).

7.  Issues
In addition to the Graphviz errors, for some reason the motelist command does not see the mib510 interface board or the Iris.  However, when I install to /dev/ttyUSB0 or listen to /dev/ttyUSB1, the installation works fine.  motelist does recognize the Iris on OS X, however.

, , , , , , , , , , , , ,

2 Comments

Five weeks of school and four labs left

This semester is busy and filled with all kinds of stuff for me to do, but it’s coming to an end quickly. Looking at the calendar, there are only five more weeks of classes. I’ve got a wireless paper presentation, a handful of assignments for Theory of Computation, and a wireless project paper and presentation along with the usual readings. That’s just the stuff for my two classes.

Then, I’ve got extra stuff for my adviser for the M.S. project/research which is really an extension of my wireless class project. There are weekly things he wants me to do which can make things tough. Since he keeps changing his mind on the details of the project, I have to continually refine the paper I’m working on to reflect these changes. I really want to just pick something and go with it so I can do some actual implementation, get some experimental or simulated results, and put the stuff in a paper. Then I can get my M.S. degree. The deadline for my M.S. paper and project is basically next week and my adviser didn’t want to push it, so I (hopefully) will get my degree in the summer.

The end of the semester won’t be the end, but I’m hoping that I’ll be done with my M.S. stuff by then. I then have to apply for candidacy into the PhD program (actually I don’t even have to be done with my M.S. project for that), but I have to be done with the classes I am taking this semester. Hopefully I can choose a committee without any problems and they will look at my classes and grades and say: OK. Hopefully. This all seems like a dream and it’s hard to believe that this is where I am in my life.

There are only four labs left for my intro Java class, so there won’t be too much left for that. Some of the labs are getting more complicated and some of the students are having trouble with some of the concepts (arrays, interfaces). I do my best to help, but I can tell that some of the students don’t like me. This is mainly because I get as frustrated as they do when I can’t explain something to them very well. As I’ve said before, learning to program is an individual task — spoon feeding the answers to problems doesn’t help you learn. Teaching the concepts helps, but you really have to work on stuff on your own to truly understand everything. I have to try to get the students to think independently. I try to make them ask the right questions about what went wrong when they have problems.

The housing selection stuff for the gradplex is this week so my roommate and I have to pick out a place. We have to find another building since we are going to be here in the summer. The one we are in now is going to be renovated. Unfortunately, the building also has the laundry machines for the whole complex. I have a feeling they will just close off the whole place and I’ll have to go somewhere else to do laundry. The computer science building is really close to one of the undergrad dorms which has laundry machines. I could drag my stuff over there and do it while I’m working in the office.

The other day I was thinking about taking home a lot of my winter clothes since I wouldn’t need them anymore. Then I realized: What’s the point if I’m going to be in Williamsburg year-round? I can just keep everything there and not have to take it home. That seems weird. It’s like I’m gradually starting to move out of home. At the same time, though, I’ve gone home a lot more than I used to.

I have gone home a ton and I’m at home again now. It’s nice to get good food and to sleep like a rock when I’m here. My dad is here for the first time in what seems like forever since he is always working. It seems a lot more peaceful at home than at school when there’s always someone that’s crashing around in the building or yelling outside. Despite that, the undergrad dorms, and especially my freshman dorm, were like pure mayhem compared to the gradplex. I’ll probably wind up at home again next weekend since it’s Sarah’s birthday. Also, she probably won’t be able to come up to Williamsburg because of her job. Funny that this time around, she just ordered what she wanted online (a coat) and I’ll just pay her back for it. It doesn’t seem like much of a present since I don’t wrap it or even get to give it to her, but it’s probably for the best since it’s something that she wants and will enjoy. At least I got a card.

The going isn’t necessarily ideal, but I am making some kind of progress.

, , , , , ,

No Comments

Lab grading script

This week was the first lab where my intro Java students were supposed to write loops, so now I’ve got to modify my grading script to handle infinite loops. On each attempt to read output from the student’s program, I measure the current program execution time using microtime(). For some reason the PHP microtime() seems to screw with the input pipes from the executing program and the input and output streams aren’t recorded in the correct order. I would be better off running a student’s program from a separate thread and killing off the whole thread from the parent thread once the execution time passes some threshold. It seems the more code I put in the pipe I/O section of my code the weirder the order of the input and output becomes. This definitely seems like a timing issue. I don’t think PHP allows for multi-threaded scripts — I may be better off using this approach in C++ or Java, but then I would have to rewrite my whole grading script. I’ll try getting what I have to work first before thinking about the drastic step of rewriting everything in Java or C++.

, , , , , ,

No Comments

One week in and there’s a lot to say

It’s off to a fast start for sure this semester.

My PhD adviser wanted me to start working on his research as soon as I got back, which seemed like it would get in the way with my classes and my other Master’s project. However, since I hadn’t done that much on my Master’s project, I switched my project to working with him. There was a lot of shuffling around involved with that, but it’s all taken care of now. My course project for Wireless Networks and Master’s project will now be one and the same, which will make life a lot simpler and allow me to focus on just a few things. The project entails data aggregation and dissemination among nodes in a mobile wireless sensor network. It should be interesting, but it will probably be hard and my adviser seems to have really high expectations while I feel over my head. I have a ton of papers to read for work related to my project and have to give a report to my adviser by Monday.

The only thing is that I might not finish with the project by the end of March, which is when everything is due if I am to get my Master’s degree in May. But now, it doesn’t matter as much if I get it in the summer since I’ll still be in school. As it is, I’ll be spending the summer in Williamsburg doing school work anyways. Since it looks like I’ll be in Williamsburg for awhile, I’m really thinking about getting an apartment by myself and getting rid of the school meal plan. I’ve had enough of the whole institutionalized lifestyle.

My advisor let me pick out a laptop and order it through the department so I can have something to use for TinyOS development. I’m surprised he let me do that. Not only that but he just handed me $500 worth of motes to screw around with. I guess it’s nice having funding. With respect to the laptop, nesC and TinyOS have trouble with Macs because some Java USB/serial communication libraries aren’t implemented for them. So, I can’t use my Mac. I’ve got a desktop with Windows on it that I use for games (when I’ve got time) and I also used last year for this, but I can’t bring that into the office to do work, so my advisor just cut me loose on the IBM/Lenovo website. If they ordered what I spec’d out, I’ll be getting an X61 with a 14 inch widescreen and XP instead of Vista. It comes with the new Intel Santa Rosa platform too. The 14 inch seems like it is the best combination of performance and size and I’ve heard nothing but good things about IBM and Lenovo. I like my Macbook too, but for a Windows computer, this would probably be my first choice.

Classes are all at weird times this semester. I have Theory of Computation at 3PM on Mondays and Wednesdays, which is when practice starts. That class is a normal lecture/homework type and hopefully it won’t be too hard. My Wireless Networking class with my adviser is on Tuesdays and Thursdays in the morning, which is the first time I’ve had a morning class in awhile. That gives me Friday off, which is nice, but Thursdays suck — my TA assignment is to conduct two intro Java labs back to back from 1-5. With class in the morning that doesn’t leave me with much free time. I also have to meet with my adviser once a week after class on Tuesday. So things are a lot more than the usual go to class, sit through a lecture, and do the homework. I’ve got a big project to work on, meetings, and two labs to administer.

The labs on Thursday were interesting — I had to play teacher for four hours. Being an intro programming class, some of them are going to have trouble later on. The lab consisted of just setting up the Eclipse IDE and copying a hellow world program to a file and running it. A lot of people had to be spoon fed stuff and were asking for help on seemingly simple things, like finding a configuration setting in a preferences menu. To learn to program, you have to absorb the material on your own. It’s not something that you can memorize or have someone tell you how to do it. When they start doing actual programming, some are really going to have trouble, so it’s going to be up to me to help them through it.

One of the guys in the lab knew my sister from somewhere, which was interesting. He said I looked like her. I never get that. When I’m somewhere with Katie, I’ve had people think she was my girlfriend. Conversely, when I’m with my girlfriend, I’ve had people think she was my sister. Weird. Also, Sarah asked me after the labs last night if the lab students addressed me by last name. None of them did — it was all first name. I just wrote my whole name on the board and didn’t say anything about how I wanted to be addressed. I then commented to Sarah that the students were all the same ages as everyone on the team that I associate with and we have a more or less peer to peer relationship. But then as I’m running through campus this morning one of my teammates walking the other way addresses me as “mister”. Then I realize he and several other guys do that on a fairly regular basis. I never really thought about it before.

I’ve been running at weird times too, sometimes just before class on Monday and Wednesday. Yesterday I got up before dawn so I could be finished before class. That was the earliest I’ve been up to run since the summer. I won’t be able to go to practice much because of my schedule and the work I have, which sucks, but that’s how it goes. I really enjoy going and when I’m in a bad mood seeing everyone makes me feel better. I walk into the locker room and everyone says hi and there’s always some interesting stories someone has to tell. It’s like a scene out of Cheers. Unfortunately, most everyone in the department just sits in the office all day and works. Not many people in there get out much.

I did get to hang out with everyone last weekend since Jason came down from VCU. It was nice seeing him and we went out to dinner on two nights. On the first night we went to Bruster’s afterwards for ice cream and I got this fudge cheesecake flavor that was arguably the best ice cream flavor I’ve ever had. Usually I complain about chocolate stuff being too weak — especially chocolate milk and chocolate ice cream. This flavor was what I think chocolate ice cream should taste like. It had a ton of chocolate in it. Lately I’ve been craving ice cream a lot for some reason. I can only handle it about once a week and it’s only worth getting if it’s good, such as it is at Bruster’s. I would probably get it every week too if I could find someone to go with.

The other night Jason and I went out to a pizza place just down the street from the gradplex, in Colonial Williamsburg. I had never been there before and I don’t plan on going back. We split a supreme and got two drinks and it was pretty crappy for $12 from each of us. It was small and had almost no substance to it. Even a regular chain place would have been better (and cheaper) than that. A bunch of other guys on the team showed up along with some recruits. Seeing the recruits really made me feel distanced from everyone. They didn’t seem very old at all.

It seems everything has really shifted focus from putting equal weight on school and track/cross country to shifting focus to school. Seeing everyone at dinner that night made me realize how much things are changing. It’s a bunch of small changes that have taken place incrementally over time and now they are adding up. I’m not who I was a year ago, and especially not two or three years ago, even though I go to the same school and even see some of the same people every day. I don’t mind these changes, in fact, I welcome them, for it’s time to accomplish something new in my life. Hopefully I can do that by pursuing a PhD.

The weather has really been getting to me, but this is the worst time of the year. Last week it rained and snowed and was freezing cold. This week it’s just freezing cold. Either the cold has been worse than normal or I’m just getting weak — I can’t tell which. I’ve had several nosebleeds thanks to the dry air and my legs are tightening up on my runs. I strained my calf last week in the cold and crappy rain and then this morning about six minutes in something in my knee popped. It was so violent it sounded like someone shooting a cap gun. The rest of my run it felt like something was out of alignment in my knee and now it’s still clicking and grinding. It hurts too. I’m hoping I’ll be okay running tomorrow, but I don’t know. I feel like I’m coming apart at the seams. I haven’t been able to work out since I’ve been such a mess, so I’ll be taking it easy until I feel better.

I came home today since my doctor had a suspicion that I might have the dreaded Celiac Disease and wanted me to see a specialist. It seems they come up with diseases just so the drug companies can sell a drug for them, but not the case with Celiac (yet). It does seem kind of bogus, though. Basically, it’s an allergic reaction to wheat products, which basically means everything. It essentially means if I have it that I am supposed to go on the near equivalent of the Atkins diet. I guess some grains are okay, like oats and rice and I can still eat potatoes without problems, but I can’t see myself giving up stuff like pasta, cereal, and bread. I live on stuff like that. Now I’ve got to get a blood test done to see exactly what’s up. It will be nice to be home for a little again even though I just left. The weekends can get boring out at the gradplex. I really should try to make an effort to find some people in my department that share similar interests and want to do stuff. It’s hard to do that being an introverted computer science type. Like I said before, there’s a gap forming between myself and everyone on the team, and it isn’t just age.

So now I’ve got my work cut out for me: a Theory of Computation assignment, a handful of papers to read and comment on, and some intro labs to grade. The lab grading could be a pain since I’ve got to go through and run 30 students’ programs and look at their code. I have to give them feedback too. I could try automating it with some kind of test script, but it will probably be more trouble than it’s worth. The people at NASA also just handed me some last minute requests, but I’ve got no time for that now. I feel bad telling them that I can’t get to their requests, but that’s how it goes. Now it’s off for me to be a researcher this weekend.

, , , , , , , , , , , , , , , , , ,

No Comments

It’s happening

On Wednesday I got an email from my boss from last summer that the NASA guys were checking my references. At that point I realized they were seriously considering me for the internship. Then, on Thursday I had a follow-up phone interview with someone who was in the same research group as the person in the first interview. This one wasn’t as long, but covered much of the same things as the first one, focusing on my experience with Java. Again, I talked about the Software Engineering class I took with its massive class project as well as a networking class I took that used Java. I also talked about the Java GUI experience I had and general software development practices that I followed at work and learned at school.

I was getting worried because I had to let Lockheed Martin know what I was going to do by this Sunday. It was really coming down to the wire. Last night when I got back to my room, I got an email that I had been pretty much accepted at NASA Ames and only some details needed to be worked out. Today, I sent my response to everyone involved that I would be going to NASA.

This is something I have wanted to do for quite a long time. I really want to see what it’s like to live somewhere far from home, especially with the notoriously awesome summer weather of Northern California. The internship work itself sounds great too and will probably be something that will keep my hands full all summer.

At this point, I’ll probably drive out there so I can have a car. Someone will probably have to go with me since there is no way I can drive 10-12 hours straight for four days. This will combine three things I’ve really wanted to do into one package: road trip, living on the west coast, and an interesting job. For me, it’s about the excitement equivalent of breaking 14 minutes in the 5k. Maybe I can do that in the next few months too, who knows?

It seems there are a few things to be worked out, mainly the starting date and housing. If I run at regionals, I’ll only have a little more than a week to leave school, pack my stuff at home, and get to California. If finals are as tough as they were last semester, things could be rough, but I’ll be finished with those a little earlier in May. With housing, it sounds like there is a hotel/lodge kind of deal on the NASA Ames campus from what I have read on the internet, so maybe I’ll be able to stay there. That would really help with commuting, too.

On the flip side, the internship is at about step 1500 on my to-do-list, and I’m currently on step 5. There is a whole lot of stuff that will happen between now and then. With school, I’ve got some homework assignments and then some projects coming up. With running, assuming I don’t get hurt or sick, I’ve got a lot of training to do and quite a few races. IC4As is in Boston next weekend, which is a pretty big deal. I ran the qualifying time for IC4As at Virginia Tech last weekend that should put me in fast heat of the 5k, but I’ve been worried about my sore calves turning into an achilles injury.

Regardless, there is a lot going on. It was also this time last year that I found out I got into grad school. This year, it’s the internship. A lot of the seniors on the team who have applied to graduate school are hearing back. It should be interesting to see where they end up.

Despite having the promise of an exciting future, I’ve got to take things one day at a time. I’ve only got a few months left of being on the team and I really want to take advantage of that. I don’t have that much more school left, either, so I have to live in the present and enjoy what I’ve got.

, , , , , , , , , , , , ,

No Comments

The Plot Thickens

Last week I got an offer from Lockheed Martin. I found it hard to believe I was offered a job considering I didn’t walk away with a very good feeling following the interview. The position will be along the DC beltway in Maryland, close to the University of Maryland. That means it won’t be too difficult to find someone who is subleasing their apartment for the summer. It will be government contract work of some kind, but probably not for the military. It sounds like it could be a good experience working with a large number of people on a particular project, which was unlike my previous internship, where I worked with three or four people at most.

Of course, the NASA Ames telephone interview wasn’t scheduled until today, so I had to get the deadline extended for my acceptance at Lockheed. The interview today went more like what I had expected in the first place — more detailed job descriptions and more questions about specific things that I knew. The guy I talked to listed off a few potential projects I could work on, some of which had to do with Eclipse plugins, which sounded interesting. Eclipse, he said, was one of the reasons I was interviewed, since I listed my experience with it on my resume. I’ve done development with Eclipse, but never created a plugin for it. I talked a lot about what I had done in school and for work, much more than at Lockheed. He also asked a few questions about stuff I hadn’t had any experience with, which might not be a good sign, but he didn’t seem too worried. Overall, I think the interview went over well, but it’s hard to say what will happen. I feel I gave a much better impression of myself than I did the last time.

Hopefully I will find out next week about NASA so that I can make a decision about what I want to do. It sounded like there may be a follow up interview to test my technical knowledge, specifically with Java. It seems like I could get grilled if that happens.

I’m also dealing with finding housing for next year. At present, I just slapped down my room deposit for graduate housing so I have that as a sure bet. I would rather room with someone I know well, which pretty much equates to my teammates. Some of them found a house not too far from the graduate complex but it seemed too expensive and too many little surprises (unfurnished, not enough bedrooms) to be worth it. Maybe someone else will be willing to get an apartment. Though if I do that, I will most likely be paying rent on two places over the summer, so hopefully I can find someone else to sublease to.

School has started to pick up a little and I’ve got a fair share of assignments. Before long, there will be a whole torrent of stuff to do. This is one reason why I’m glad all these interviews are going on now and not later.

, , , ,

No Comments