Monday, November 27, 2006

Getting Started With QualNet

QualNet is a commercial network simulator produced by Scalable Network Technologies, Inc. It is a commercialized version of GloMoSim, but it is completely C-based, so it does not use GloMoSim's specialized "ParSec" language. QualNet includes a graphical "scenario creator" tool, but it's often easier to simply specify qualnet configuration files by hand, and it's certainly much faster, once you're familiar with the parameters.

Presentation from Spring 2007
Installing in Linux

I'll assume that you've gotten the Qualnet tarball from somewhere. Put it somewhere (for example, your home directory on your research lab's computing machine that has a license for QualNet available). Unroll the file using: tar -xzf qualnet.tgz (or whatever it's called)

You need to set a few environment variables, and update your path:

export QUALNET_HOME=~/qualnet/3.9.5 (assuming you unzipped the tarball in your home directory)

export PATH=$PATH:$QUALNET_HOME/bin:$QUALNET_HOME/gui/bin

You should add these statements to your .bash_profile so you don't have to type them every time you log back in.

Next, you have to compile the application. This is easy. From the documentation:

For a machine running gcc 3.2 and higher:

cd $QUALNET_HOME/main

cp Makefile-linux-glibc-2.3-gcc-3.2 Makefile

make

It will chug away. When it's done, you're ready to run qualnet.

Finally, copy the license file to $QUALNET_HOME/license_dir

To test that it works:

cd $QUALNET_HOME/bin

qualnet default.config

Some numbers should fly by.

Getting up and running with QualNet is fairly easy. A basic simulation is run simply by creating a number of configuration files. The configuration files are declarative, rather than script-based. You simply set up a scenario by defining a bunch of variables, and then let it rip using the command:

qualnet <name>.config

The best documentation for these files is in the qualnet installation. Look in qualnet/3.9.5/bin, and you will see a bunch of files using the naming scheme default.* (for example, default.config, default.nodes). These files are well-commented, and will serve as a good guide, and starting point.

For a basic simulation, you'll probably want at least these files:

* .config
* .nodes
* .app

Note that you can actually call these files ANYTHING you want, but these conventions make it easy to remember which files do what.

There are a HUGE number of other configuration files, controlling things like background traffic, antenna models, weather, link faults, and so on. If you want more info on these, check out the files in the directory! They are well-commented.
Configuration Files
<name>.config

This is the core QualNet scenario configuration. Let's look at some of the core configuration parameters in this files. This document will only cover BASIC configuration parameters for running a simple wireless experiment. You should copy the default.config file, because most of the default parameters for MAC/PHY settings in this file are good for beginning. If you want to modify them later, you can view comments in the file for more information.

* EXPERIMENT-NAME <name>

This one should be straightforward enough. Call it whatever you want.

* SIMULATION-TIME <time>

This specifies how long the simulation should run. The default.config file explains the different time values that can be used. For example, 15M = 15 minutes, 100S = 100 seconds.

* SEED <number>

A random seed for experiment repeatability.

* COORDINATE-SYSTEM CARTESIAN

Self-explanatory. Others exist, but this is probably what you want, as a beginner.

* TERRAIN DIMENSIONS (<x>,<y>)

Sets the size of the terrain. X and Y are in meters.

* SUBNET N<subnet-specs> { node names }

This option is fairly complicated. For the early simulations, you probably want to have a single subnet of nodes, and the interface addresses the same as the node ID. To acheive that, for say, 10 nodes, use:
@@SUBNET N16-0 { 1 thru 10 }

* LINK N<subnet-specs> { node A, node B}

Create a *wired* link between two nodes. This complicates the setup a bit, so if you need wired links, examine default.config file for more details.

* NODE-PLACEMENT [UNIFORM|RANDOM|FILE|GRID]

Describe how nodes are placed in the simulation terrain.

* GRID-UNIT <num>

Grid spacing if GRID placement is used.

* NODE-POSITION-FILE <filename>

Usually name.nodes, see below for description of the file.

* MOBILITY [NONE|RANDOM-WAYPOINT|GROUP-MOBILITY|FILE]

Group mobility is an advanced option, we'll ignore it for now. If FILE is specified, then NODE-POSITION-FILE is used.

* MOBILITY-POSITION-GRANULARITY <num>

Specify how fine-grained movement steps should be.

* ROUTING-PROTOCOL <protocol>

Specifies which protocol should be used in this simulation. AODV or DSR, for example, or one you create yourself.

* APP-CONFIG-FILE <filename>

This specifies the file that contains the applications to be run in your scenario

* Statistics

You want to collect information from your simulation of course! There are quite a few options. You can pick and choose which traces and statistics you want to output when you run your simulation. Look for "HOST-STATISTICS" in the default.config file to see what your options are. Look for "PACKET-TRACE" in the file for more info about tracing. A nice feature of QualNet is that it will output quite a few basic statistics without requiring you to save or parse huge traces.
<name>.nodes

This file specifies node position, and mobility if used. The file is very straightforward, it is simply a series of lines of the form:

<node> <time> (<x>,<y>,<z>) <theta,phi>

For basic 2D experiments, you can set z to zero, and omit theta and phi.

The entries must be sorted in increasing time order. The simulator will do linear interpolations between two points in time.
<name> .app

This file specifies the applications to run. It is of the form:

<appname> <params>

The parameters will vary depending on the application. All of the apps and paramters for them are described in default.app. A basic option is CBR (constant bit rate). It is:

CBR <src> <dest> <items to send> <item size> <interval> <start> <end>

If <items to send>=0, the CBR client will simply send for the whole specified time interval.

CBR 1 2 0 512 1 10 1000

Send 512 byte packets from node 1 to 2 ever second for 990 seconds, starting at 10 seconds into the sim.

Thursday, August 10, 2006

Palm OS Flaws

I've been using the PalmOS since about 1999. It's amazing how much it's stayed the same in the past 7 years. In some ways, this is a good thing. Conceptually, PalmOS is very well designed for the target device. For its original PIM tasks, it's quite well designed. But 7 years later, I expect to see notable improvements, and I just haven't. So here's the run down, in no particular order:

1. The UI appearance is outdated. Many people will argue that this is irrelevant. These are the people that use TWM and Ratpoison as Window Managers in Linux. I whole-heartedly disagree that a nice, pleasant appearance is not an important part of a computing experience. It is possible to make something aesthetically pleasing without hurting performance. It was one thing when the Palm screens had a 2-bit depth, but with 16-bit color, I really expect a bit more.

2. Unevolved PIM features. Is this a business move, so that companies like DateBk? or Iambic can stay in business? The Palm PIM features have not changed _at all_, for the most part. Functionality like hierarchy in Todo Lists, linking of items, and better per-diem planning should be *integrated parts* of the system.

3. A horribly crappy syncing system. At one point, this was OK. When my palm connected via serial port, the behavior was more understandable. But now, 7 years later, they still essentially simulate that same protocol over a USB port. The whole point of USB is to make devices smarter, and allow the computer to automatically detect them. It is INEXCUSABLE that I still have to press a button on my palm in order to sync it. Really, people. Come on. Furthermore, network syncs simply don't work. The protocol is closed source, so Linux support is slow to come, and buggy. The only saving grace is that I still prefer this to a Windows CE device.

4. The ability to crash the system hard. I've already experienced this a few times. It's one thing to install a program that makes the palm behave poorly, or that causes it to reboot. However it's poor design for an operating system to be irreversibly put out of commission due to an installation. I've experienced the "reboot-loop" problem, where the device just reboots before it comes back into function fully. At the very least, Palm should include a FAILSAFE mode that allows you to delete certain items or at least back up your data before doing a hard reset. This feature combined with the inability for automatic un-monitored syncing (as mentioned in 3) really put a damper on my excitement about the device.

Sunday, April 16, 2006

Dancing on the Diodes

I probably should not admit it, but I do like to dance. Coupled with the fact that I am a geek, this disco-floor project at MIT really piqued my interest!

Thursday, May 05, 2005

Rrrrrrrrrrr...

All of us who work frequently with computers know the importance of having a comfortable, well-designed keyboard that can get the job done. I couldn't resist making a mention of this keyboard that Rob pointed out to me!

Wednesday, April 20, 2005

I have a rainforest on my desk...

I have to read a lot of technical papers to stay current. Reading on my laptop is painful on the eyes, and not really very convenient, given the form factor. I keep hearing about digital paper, but will it ever become a reality?

Monday, April 11, 2005

Insanity of Credit

I just received a disgusting marketing latter in the mail today. Household bank, which periodically tries to get me to sign up for their credit card. However, there was a friendly anecdotal letter with this one, about Todd and David. Apparently, Todd used his evil debit card (i.e., spent only within his means) and lived a horrible life. But David used his household bank Visa, and lived a full, happy life!

This is absolutely wrong. As it is, teenagers and college students are not given enough education on the details of financial matters. On top of this, credit card companies are now sending out INCORRECT information. This is irresponsible, and adequately shows off the piss-poor morals of the 7th ring of hell, also know as "Marketing Department."

That is all.

Friday, January 28, 2005

That's the music I like...

So, here I sit, listening to "Pulsradio," which is playing some typical trance-style electronic music into my ears. I'm really enjoying listening to this, but it's started to make me wonder: why do I find this music so enjoyable?

Much of the music that I like tends to have a very repetative nature. Furthermore, if you choose any two songs from the "Trance" genre, the chance of them sounding the same is quite high. Despite this, I love the music! I *do* find the subtle differences that exist, and I savor each and every one!

The repetition of the music is part of what makes it so amazing for me. It's something that I'd liken to an aural massage. When you get a massage, the fundamentals of the massage are incredibly repetative. However, there are subtle motions that add the variety. The same motion can be repeated a number of times, and just when the motion starts to bore you, a little twist might be added, which will re-stimulate your senses.

In my opinion, this is also what happens when you listen to trance music. The fundamentals are always the same. But the subtleties, and the addition of variations at just the right time, are what make the music what it is.

Wednesday, January 19, 2005

Being Interesting...

Why is it that when someone sings about their life experiences, they seem to be more interesting and meaningful? I mean, when you get down to it, there's rarely anything unique about the subject of a song, and yet, when it's set to music, it adds a whole element of magic.

This leads me to wonder... if I start singing about everything I do, will I find more motivation?

I always wish I'd been a performer, or a traveller, rather then just some engineering programmer who sits around reading boring papers and thinking up boring ideas.

Tuesday, January 11, 2005

Substandard Gadgetry

Why do well established companies insist on making shiny pretty new gadgets that suck? We are halfway through the "naughts," and digital technology has developed a pretty well-established user-interface paradigm that we should all be comfortable with. In spite of this, I still see new, over-priced items that seem like they might be really awesome, until you realize that they are missing *key* features.

This blog-thought was prompted while reading a review of one of those "media-streaming" devices. You're supposed to be able to connect this thing to your TV, and use it as an interface to digital media that is on your computer. This particular device had fatal flaws like that fact that if you leave the "song information" screen, and then return after doing something else, the song restarts! Blunders like this are simply UNACCEPTABLE, especially for something that basically amounts to $150 wireless card with a little bit of support circuitry.

Is it really so much to ask for that shiny pretty devices actually WORK?

Wednesday, January 05, 2005

Success requires communication?

It's time that I start writing in my blog again. This was prompted by the reading of this article, which bestows the virtue of being able to communicate one's thoughts clearly. My reading of this article is juxtaposed with the fact that I just finished teaching the first class of the first course assignment of my teaching career. These two events together have made me realize that communication is something that I could really stand to improve on.

I'm not sure what my problems with clear communication are. It seems that I'm capable of it, at times. At other times, I quickly falter, lose sight of my point, or fail to find the correct words or phrases that accurately express what I'm trying to say. It's a bit easier when I'm writing as I am now, as a stream of consciousness. The problems usually occur when I need to communicate in a structured fashion, like writing a paper, or presenting a lesson to a class. Being able to identify where exactly I'm going wrong would be a great benefit to me, and would probably result in me being much more successful.

I believe that a lot of my problems stem from emotional reactions. The way I feel at any given time will strongly influence the way I express myself. For example, when I am teaching a class, it is necessary to include some amount of redundancy, and occasionally to state things that seem obvious. Ideally, this is done in a creative way, so that points are made. Unfortunately, I can't get past the feeling of "gosh, I'm being silly and redundant."

Another example of this emotional influence follows technical paper writing. When writing technical papers, it is difficult to remember all of the important details that should be included. One has been working on a problem for so long, that certain key points seem obvious, and not worth including, when in fact they are crucial for conveying the message. Additionally, I don't want technical papers to seem so BORING, but it is hard to keep a paper from being boring using normal literary tricks, because then you threaten the clarity of your message.

These communications problems are still a work in progress for me. Anyone who happens to stumble across this post should feel free to offer suggestions. :)

Monday, October 11, 2004

Cruise!

Ok, now's the time for me to dump all of my cruise memories before I completely forget everything.
Rob's Stepdad's Stepmom was kind enough to include the two of us in her cruise plans! So, we made up part of a group of 20 people.

Sunday, October 3rd, 2004

We left at around 10 in the morning, from Rob's parents' place in Carmichael, CA. Destination: Duarte, CA, where we'd stay the night. This was my first time travelling down I-5 through central California. It has to be one of the most boring rides ever! It was broken up a little bit, luckily. We stopped in Santa Nella, CA, for food, and to see a place called "Pea Soup Andersen's." We didn't eat there, though, since we were in somewhat of a hurry.

We arrived in Duarte at around 5pm. This was my first time in the LA metro area. Duarte was not much to see. It's a dank little suburb, and I'm not sure why we stayed there. I think someone had family nearby. Anyway, after putting all of our belongings in the hotel, we met with the rest of the bunch at the Spaghetti Factory, for dinner.


Monday, October 4th, 2004

We woke up without much excitement. The next stop was Rite Aid, to buy alcohol to bring along on the trip! Sure, the little booklet specified that alcoholic beverages are NOT to be brought on board, but it was worth a shot, to save money!

After that, we grabbed breakfast at Carl's Jr. Then, it was off to Long Beach, to get ready to embark!

Tuesday, October 5th, 2004

Welcome to Catalina Island!

Wednesday, October 6th, 2004

Welcome to Ensenada, Mexico!

Thursday, October 7th, 2004

"Fun Day" at Sea.

Friday, October 8th, 2004

Let us off of this thing!





Friday, September 24, 2004

Upswing!

Things have taken a definite upswing. I'm working pretty diligently on a couple of problems now, and I'm actually thinking towards my academic future. It's kinda scary.

I'm thinking that laying off of alcohol is helping quite a bit. I am still drinking a little bit on the weekends, but for a while I was going out 4 or 5 nights a week!

Meanwhile, the apartment is a disaster. Rob's always too busy to clean, so I guess I'm on my own. Unfortunately, I can't really clean since most of the piles of garbage are his, and I don't know what to throw away.

One of these days, I'll have something compelling to write. Inspiration always hits me at a point when I'm not at the computer. Go figure.

Saturday, September 18, 2004

*Sigh*

I knew it would happen... it's been forever since I posted!

Well, I'm feeling more in the direction of a PhD these days. If you check out my research blog , then you can see what I am working on.

I've also spent some time debugging some open source projects. In particular, I was tracking down the cause of flickering OpenGL screensavers in KDE. I think I tracked it down, though. It's the first time I ever tried to fix something in an open source project, and then told other people about it. I have a feeling, though, that my fixes are not going to be good enough. They really seemed too easy....


I got a new chair from OfficeMax the other day! It was a 130 dollar chair for 90 dollars off. Not a bad deal, eh?

After a chat I was having in a chat room earlier, I think I should count my blessings about being in a research program. It's boring, and hard at times, but I think that most jobs that people have are boring. I can't imagine being in a retail/sales/marketing/financial job.

I'm on my third cell phone! The replacement phone that I got after my phone fell into the river, well, it stopped working so well. So, I got another friend to donate a phone. This one's just like my old phone, only it has one of those tacky blinking batteries:




I thought they were cool, like 2 years ago. Now I have one and I hate it. Oh well!

Tuesday, August 24, 2004

Kazam!

I don't want a stupid PhD! Let my people go!

Sunday, August 22, 2004

Urban Living

Just for the record, I have decided that I *have* to live in a urban setting. It's the only thing keeping me sane these days!

Wednesday, August 18, 2004

Random Spoutings

PhD factor for today: 2.0 (on a scale from 0 to 10)

So, it's been a less mentally productive week so far. The thing about mentally unproductive weeks is that I still think--I'm just not thinking about what I'm supposed to be thinking about (ad-hoc networks and so on.)

It would be nice to have a job where I was just paid to think about whatever I felt like thinking about. I suppose that'd be something like a cross between an artist, a consultant, and a psych ward patient.

Really, it's starting to get to the point where I'd just like to have an income.

Sunday, August 15, 2004

My milkshake brings all the boys to the wedding...

Ok, so today, I attended the sort of event that I haven't attended since I was 4. That would be 20 years ago, for those of you that need things spelled out for you.

I went to a wedding!

A friend of mine from highschool, Kaitlin Roach, was joined in holy matrimony to her now-husband Bradley Olsen. It was absolutely beautiful, I must say I was really touched. I 'd only seen Kaitie once or twice since graduating from highschool, so it was somewhat shocking to see her come out, looking so gorgeous (not that she is not ALWAYS pretty), in a wedding dress!

The ceremony proceeding, well, mostly unceremoniously. That's not particularly a bad thing. It went as planned! Except, perhaps, for the part where Kaitie's dad welled up while reading the scripture. It was very very cute.

The other brilliant part of today's event was that I got to see a lot of people who I haven't seen in quite a while. Nick Counts, Matt McLaughlin, John Watts, Regan Roberts, and Kenny Roach. It's great to see that they were all, more or less, the same wonderful people that they were when I knew them in high school. The better memories of high school were reawakened!

After the ceremony there was, of course, a reception. I think the highlight of the reception was seeing Kaitie's grandmother keep the place alive! This woman was great... she certainly had more energy than I did! And she made it her duty to dance with every man there.

At one point, there was the traditional tossing of the bouquet. Being somewhat wined-up, and a bit of a clown, I decided to join the girl in attempting to catch it. I wasn't really going to try very hard, I mostly just held my hand out and made melodramatic expressions. However, Kaitie tossed the bouquet and it literally fell into my hand. I kid you not. I didn't even have to try. The wedding party seemed to get a kick out of it, luckily.

I was NOT aware of the second part of the tradition--the tossing of the garter. Bradley removed it and tossed it, but none of the guys really seemed to jump to grab it... leaving it for my highschool friend Matthew McLaughlin to catch. He, it seems, was ALSO not aware of the final part of the tradition.

He had to put the garter onto my leg.

My face was incredibly red during most of this time. The professional photographers ATE this up though. I think they are part of the paparazzi!

I was a little concerned that I had stomped all over the tradition, and that the girls would never forgive me for it. But then I realized the following things:

  • Everyone had a good time.
  • Gavin Newsom's goodwill was just shot down in court, so I'm supposed to be bitter.
  • The wedding was in the San Francisco metropolitan area: what you expect??
So, good times were had by all. After the wedding, we went back to spend a little bit more time with my friends at their hotel room. After sharing stories and catching up, Regan introduced us to the cartoon known as Aqua Teen Hunger Force. *I* had always thought that this was some anime show, since when the titles are translated to English, they always seem to be random strings of words like that. However, I was suprised to find that it was in fact very American: a floating serving of french fries, a walking milkshake, and a roly-poly amorphous ball of meat. I'm not sure what else to say, you'll have to do the research on your own.
Today, I am going to a wedding! The last time I went to a wedding was when I was a ring bearer for my Aunt Kendra's wedding. I was, 4, I think. She still has it on video! The only things I really remember from that wedding are doing the "funky chicken" dance, and the fact that Kara got a really cool lollipop because she made a request from the DJ (I was uspet!).

The wedding present I chose was a fondue set from Linens and Things. At first, it seemed like a somewhat trite choice. But in the end, it seemed like a somewhat cute idea. I wanted something that they could do together. I just hope they don't end up with 14 fondu kits. :)

Just for effect, we're using a shower-loofah with a lion head as the ribbon. Teehee.

Saturday, August 14, 2004

Thar she blows!

I'd "caught wind" of the fact that there's been quite a storm brewing over on the Atlantic coast. I hadn't seen much about it on the news, but I did check weather.com yesterday, and I saw that hurrican Charly had basically eaten the whole Florida peninsula. I mean, It was literally covering the whole thing! That's a recipe for disaster...

So this morning we went to get coffee, and on the front page of the Sac Bee are picture of utter devesation! Right in the city that my grandmother lives in! The front page photo was of a liquor store... only one floor was left standing, and it seemed like a U-Haul had been blown on top of everything! Maybe someone just drove it there, though. I can't find the Sac Bee photo, but here are some others.
Anyway, I haven't been able to get in touch with my grandmother, so I hope she's ok!


Friday, August 13, 2004

Intellectrospective

For those of you who are at all interested in the more serious, career-oriented side of Jason, you can follow my PhD pursuits on my other blog. I'll try to make it interesting, but academics are not known for their appearances on late-night talk shows, or in entertainment magazines, so no promises!