End of a Journey
December 19th, 2000 was a Tuesday. It was the day I enlisted into the Arizona Army National Guard. Today, 9 years later, I’m finishing up my service. From my very first days at C Btry, 1/180th FA, a tour in Iraq, and all the way to Eco 29th BSB, it’s been quite a ride. I didn’t reenlist because I want to concentrate of my career, and frequent deployments would put me at a serious disadvantage in my field. This is not to say that I’m not torn by my decision. Part of me wants to stay in. Part of me will always want to be in the Army. It has been an amazing 9 years for me. Being part of the Army has given me discipline and confidence and has taught me the meaning of honor, duty, loyalty, and courage. I think I was a good soldier and as an NCO I think I did my best to take care of the soldiers under me. Along the way, I also made some wonderful friends who might as well be family now. The kind of camaraderie that forms when you serve with people in a combat zone cannot be put into words.
Looking back I think I can say that I’m satisfied with my career. I still remember coming in as a 19-year old Private… I knew that I at least wanted to make Sergeant before I got out, and I’m glad that I was able to achieve that. Being able to wear the uniform is something amazing. You are a part of something larger than yourself. It’s hard to put into words… I just know that it’s something that I will miss terribly.
I can’t say that I’ve looked forward to this day (although my family has). 9 years is a long time to serve and after doing something for so long, it becomes a very integral part of you and your identity. I guess I will always be a soldier and a veteran; I have earned that right. But I know I’ll always be looking back at my Army years fondly, half-wishing I was still wearing the uniform and still serving the nation.
Go Army! HOOAH!
Popularity: unranked [?]
The Sun’s not going to blow up
In any science fiction story I’ve read (or science fiction movie or TV show that I’ve seen) that talks about death of the Sun. I’ve always heard references to Earth’s sun “going nova”. I’ve read about this even in Asimov’s stories. In most cases, they’re talking about a supernova. But here’s the thing. The Sun is not going to blow up. Even if the writers were talking about an actual nova, they’re still wrong. Here’s why:
Our Sun is a yellow dwarf star (more precisely known as a G-type main-sequence star), and doesn’t have enough mass to undergo a supernova explosion (type IIa). You need a star that’s at least nine times the Sun’s mass for a supernova explosion. If we’re simply looking at a nova (type Ia), then the Sun doesn’t have a companion to draw matter from when it turns into a white dwarf. So no matter which way you look at it, the Sun is not going to blow up. It’s just going to be really, big and red and will eat the Earth. Unless the Earth moves outward due to the Sun losing mass. Finally the Sun with eject its outer layers and turn into a white dwarf. See? No blowing up. I don’t know why some science fiction authors still talk about the Sun “going nova”. Maybe it’s because it sounds more dramatic.
If anyone has read a science fiction story (or seen a science fiction movie or TV show) that talked about the death of the Sun/Earth and did so realistically, then let me know.
Popularity: unranked [?]
Inside an actual can of whoop-ass
My friend Joey sent me this picture! I think it’s pretty awesome!
HOOAH! Go Army!
Popularity: unranked [?]
Ten years
So ten years ago, I started college. Yeah. Ten years. I remember the ten years before that, and they seem very long compared to these last ten years that have gone by. As people always seem to say… it just seems like yesterday, and I can vividly remember each of these last ten years. It has been an amazing decade for me. Friendships that have been through a lot, that have gone through trying times, and that have come out stronger. Experiences that have shaped me and changed me, from a wide-eyed college-kid into an adult.
Five years ago, I made a similarly introspective post and I wondered where I would be five years from then. Well, so here I am. 27 years old… almost 28… I’m a veteran of a war and I’m finishing up my military service, I’m a citizen, I’m gainfully employed at a job that I absolutely love, I still own a house and a car, and finally, last but not the least, I have found that special someone I’ve been looking for my entire life (and let me tell you, she’s AMAZING). There were many times during the last ten years that were hard for me… but I somehow got through it all, and actually ended up on top when all was said and done.
Looking back at my early days in this country I laugh at myself when I think of how naïve I used to be. But I guess that’s a part of life and it’s probably something that everyone goes through. All in all, I think I’ve done pretty well for myself. So, here’s to another wonderful ten years.
Popularity: 1% [?]
The Problem with Shaadi.com
Arranged marriages are common among Indians. I’m not going to go into the merits and demerits of it; that’s not what this post is about. What I want to address is the problem with sites like shaadi.com that supposedly make it easier for Indian people to arrange these marriages. Now don’t get me wrong. There are many people who have met their soul-mates through shaadi.com (and similar sites). My sister met her husband through that. But the problem with these sites is that they are not geared towards the individual. Before I elaborate, we need to talk about what arranged marriages are, and why they are arranged.
Read more »
Popularity: 9% [?]
The Battlestar Galactica Series Finale was Frakking Awesome, ok?
I know the finale was broadcast last weekend, but I didn’t get to see it until a few days ago. If you haven’t seen it yet (or if you haven’t seen the series at all and are planning to start), don’t read any further because there are spoilers!
The re-imagined Battlestar Galactica earned itself a place in my list of “All-time favorite Sci-Fi shows” (alongside Star Trek: TNG, Star Trek: DS9, Stargate SG-1, X-Files, and Doctor Who (2004)) pretty much after the first season. During its run it was arguably “the best show on television”. Although the series faltered a tiny bit during the 3rd season, I have never seen such a well-written show with fully-fleshed out characters, a gripping story line, complex existential, religious, militaristic, and moral themes, and gritty, exciting action. The success and superior quality of the show is further supported by the fact that it attracted an audience that traditionally doesn’t watch Sci-Fi. In fact, many of my friends who don’t usually watch Sci-Fi (to the extent that some of them actually dislike it) instantly liked the show despite its obvious Sci-Fi underpinnings. The themes of the show were especially valid in a post-9/11 world. Here is a (by no means comprehensive) list of issues that the series tried to address:
- The effectiveness of armed insurgency or suicide bombing
- Personal safety (or the illusion thereof) at the expense of personal freedom
- Civilian versus Military rule
- The importance of wearing the uniform, military service, and upholding the oath you swear when you sign up (an aspect that particularly appealed to me)
- Divine intervention, divine providence, fate, and destiny
- An examination of the human condition in the direst of circumstances (when the survival of humanity is at stake)
- An attempt to answer the question of what it means to be Human
The series had a message that was so pertinent and so valid, that the cast was invited to a summit at the UN. To quote Robert Orr, the Assistant Secretary-General for Policy Planning, “You’ve got people thinking about issues that we try and get people thinking about every day.”
Ok, now that I’ve done more than enough gushing about the show, let me go onto the finale. I know that this subject has already been beaten to death since the finale aired, but I want to put in my two cents. The finale was frakking awesome ok? A lot of people are complaining that the finale didn’t address every single question that they had, and that there are some loose ends. Some of them are even complaining that the finale was a little too long, and even that the enter finale was a cop-out resolved by deus ex machina. Ok, they’re entitled to their opinion… but really? Yes, there were some deus ex machina moments (like Starbuck realizing that the opening strains to Watchtower were actually FTL co-ordinates to our Earth) that require a leap of faith. But that’s the point. I mean, what explanation were you expecting for Head Six and Head Baltar? Are they angels or demons? Schizophrenic hallucinations? No one really knows, and that’s fine. The point is that there we don’t know everything and that there isn’t an answer for everything.
You could make the argument that the writers had too grandiose of a vision, and that they had too many plot points, leading to some that were apparently unresolved. But again, it’s a matter of opinion, and it is quite subjective. For example, consider Kara Thrace. What is she? An angel? I don’t know, and I’m fine with that. She was apparently born with a destiny and with a task to perform. From the series you can tell that all her life she has been searching for a purpose. Her entire life has been an existential crisis and a search for relevance and validation. This search is finally realized when she finally leads Humanity to a permanent home.
The weakest part, arguably, of the finale was after they find our Earth. The surviving population is apparently content to leave behind all their advanced technology and start a pastoral life on Earth. This didn’t completely sit well with me. I found it a little hard to believe. One could argue that the human population on the ships haven’t really been leading a good life for the past four years. They have essentially been refugees the whole time. I guess you could argue that wouldn’t want any reminders of those difficult four years and would want to start completely anew. But I still have a hard time believing that the entire population would agree to that. In fact, when it became obvious that they had arrived on a pre-historic (150,000 years ago to be exact) Earth, I imagined that the population would probably split into two camps: one hanging on the the advanced technology, and another abandoning it completely. There would presumably be no contact between the two, and the technological group, to minimize their impact on Earth’s indigenous population would perhaps retreat to an island that subsequently gets destroyed by a natural disaster. It seems like a neater conclusion to the story. But this wasn’t the case, and even still, I don’t think it ruins the overall message of the finale or the series.
Then you have the final few minutes where we find out that the colonials landed on an Earth 150,000 years in our past. Though the finale could have ended with the scene where Admiral Adama sits on the hill beside President Laura Roslyn’s grave, talking to her while looking at the sunset, I think the final sequence presents a clearer message about the cyclical nature of human history, and about death and rebirth. I also liked how they pointed out Hera’s significance to Humanity and Cylons in the end, when it is revealed that she is Mitochondrial Eve. Finally, I also liked the conversation between Head Six and Head Baltar at the end where they compare our current civilization to the past human civilizations on old Earth, Kobol, and the Twelve Colonies (playing into the whole “cylical nature of history”/”death-rebirth” concept) but also note that there is always a chance that humanity won’t chose a self-destructive path again. I know that some people found the ending montage of the robots to be a little cheesy, but I think it was pertinent in the sense that humanity has always advanced faster in technology than in social maturity (Lee Adama talks about the same thing during the finale) and that we really need to be careful. With that, the series finally ended on a cautionary, though optimistic note.
Well, that’s my two cents on the series finale. If I had to condense that into two words, I’d say it like I said before: Frakking Awesome!
Popularity: 1% [?]
How I Joined the Army, Went to War, and Came Back
This is an article that I originally wrote for Anjali, a publication from KHNA (Kerala Hindus of North America). I was asked to write an article describing my experiences in the Army and this is what I came up with. It eventually ended up being a lot longer than I planned.
How I Joined the Army, Went to War, and Came Back
About 8 years ago, I raised my right hand and took the oath of allegiance. I swore to follow and obey the lawful orders of my superiors, and to protect the United States of America from all enemies, foreign and domestic. I enlisted in the Arizona Army National Guard on December 19th, 2000. I was 19-years old at the time. Many people have asked me about my motivation for doing so; this was two-fold. Firstly, there was the issue of college tuition. The Guard offered to pay (at the time) 75% of my college tuition if I fulfilled my contract, and kept good grades. Secondly, I was attracted to the discipline of the Army, and I wanted to be part of something larger than myself.
After formally enlisting in December, I went to Basic Training at Fort Jackson, South Carolina on the 26th of May, 2001. Basic Training is definitely something I look upon fondly (now), but at the time it was definitely a very difficult and trying experience. I was never the overtly physical type while growing up. Hence, the completely physical aspect of the Military was intimidating to me. I had also heard stories about the Drill Sergeants, how they were extremely strict and demanding, and continually in your face. Basic Training is a strenuous physical, mental, and emotional ordeal. For most people, it is the discipline and lack of freedom that is most difficult. The Drill Sergeants control every aspect of your day. You do everything according to a set time-table, and you learn the value of punctuality and discipline. To the uninitiated, seeing what a recruit experiences at the hands of a Drill Sergeant may seem frightening, or even cruel. Recruits have to sacrifice some of their individuality and personal freedoms, and this is terrifying to some people. What Basic Training teaches you (other than how to be a soldier) is how to be part of a team; to place the welfare and well-being of your brothers and sisters-in-arms (and by extension, the nation) above your own.
To be very frank, the strictness of Basic Training didn’t faze me. I went to an Indian School, growing up. I found many similarities between the school environment in an Indian school and the environment in Basic Training (excluding the weapons, explosive, and other bodily-harm-causing implements). Both environments have a strong focus on discipline and respect. In Basic Training, the Drill Sergeants are God. To do anything, you require their permission. You speak when spoken to. If you want to go to the bathroom, you raise your hand. If you speak out of turn, or do not do what you are told, you get punished. Does this sound familiar to any readers who have studied in an Indian School?
The day I graduated Basic Training was a very proud day for me. I had endured one of the toughest experiences of my life. I went from a scrawny 104-pound 19-year old to a 125-pound, US Army Soldier. I was confident, disciplined, and words like “Honor”, “Duty”, and “Loyalty” were more than just mere words to me; they actually meant something now.
Over the next few years, things weren’t all that exciting. I went to AIT (Advanced Individual Training) at Fort Lee, Virginia in 2002 to qualify for my MOS (Military Occupational Specialty), which was to be an “Automated Logistics and Supplies Specialist”. To be honest, I didn’t know what my job in the Army actually was when I enlisted. My conversation with my recruiter went something like this:
Recruiter: Well, so what do you do in College?
Me: I’m trying to get a degree in Computer Engineering.
Recruiter: Oh really? Well this has computers in it!
Me: Oh really? I’ll do that!
At the time, I was really naïve and perhaps should have put a little more thought into it, but in retrospect it’s interesting how that one little decision shaped the rest of my life. The description of my job isn’t that glamorous. I essentially maintain a supply chain so that the mechanics in the maintenance section can get the parts they need to fix the vehicles in our unit. To this end, I worked on an archaic piece of software that was written in the 80′s and subsequently updated over and over again. When I found out that this was what I was actually doing, I felt a little… deflated. But eventually I realized that I was an important part of the system, and my programming and computer engineering background eventually did help me excel at my job, especially when I got deployed.
The next few years in the Guard were pretty uneventful. I attended and performed my duties at drill one weekend every month, and two weeks in the summer for Annual Training. Of course, things changed after September 11th, 2001. Twice after that, I was almost deployed; once to Luke Air Force Base, and then to Iraq . Though I understood my obligations, I was extremely unnerved and frightened at the prospect of putting my college education on hold. Through an intricate series of events not of my design, I somehow fell through the cracks and managed not to get deployed. I was able to continue my college education and graduate in the spring of 2004. When I finally did have to go, I felt that I was ready.
In early 2005, I was told that I would be deploying to Iraq. Needless to say, my family wasn’t very thrilled. They were understandably scared and worried about my safety. Many of my friends asked me to figure out some way to get out of it (one of them kindly offered to break my legs, so I wouldn’t be able to go). If I had done what they had asked, I don’t think I would have been able to live with that decision. The truth of the matter is that no one wants to go to war. In fact, I vividly remember my Drill Sergeant talking about going to war. He once asked us to raise our hands if we wanted to go war. Of course, all of us raised our hands up. He said, “Really? Then all y’all are stupid! No one wants to go to war! No one wants to die! We go to war because it’s our duty!”. Trying to get out of going to Iraq seemed dishonorable to me. I would be turning my back on my comrades and I would be violating the oath I took when I enlisted. I understood, and knew that it would be a difficult and dangerous experience, but I decided to do it any way, because it was what I had to do. It was my duty.
I left Phoenix on the morning of the 30th of August, 2005. It was definitely one of the most heart-wrenching and saddest days of my life. I wasn’t sad for myself, but I was sad for my family and friends. I didn’t want them to worry about me and I even felt slightly guilty at the emotional turmoil I was putting them through. But even though they’d rather have me back home, they all understood why I was going and why I had to go. I spent three months in Ft. Lewis, Seattle where the whole unit underwent pre-mobilization training. We left for Kuwait on the 18th of November. We spent about two weeks there before we actually flew out to Baghdad, Iraq.
I realize that most people, when asked to make up a list of positive experiences, don’t put “war” on that list (unless you’re an arms dealer). My year in Iraq was definitely a stressful and difficult experience that fundamentally changed me in some ways. But in a gestalt sense it was a positive experience for me; in some way it has characterized and validated my service. Prior to my deployment, I often had the feeling that I was simply “going through the motions” of being a soldier. But there I was in Iraq, doing what I was trained to do, supporting my fellow soldiers, and getting the mission done.
For most people, politics and war are inextricably intertwined. War is, after all, an action which is the culmination of a series of events based on some sort of political policy. This really isn’t the case with soldiers (or any military person). Of course, this seems paradoxical, or even nonsensical. After all, we’re the ones who’re participating in the war, so shouldn’t we be aware of the politics of it as well? Not really. Politicians decide policy, and in the case of war policy, the military carries it out. I was well-aware of the hugely political overtones of the Iraq War. I was also well aware of the arguments for and against the war, and I had my own views on the matter. But when you’re lying awake in bed in the middle of the night, listening to incoming mortars exploding all around you, shaking your flimsy tin-can residence, politics becomes largely irrelevant. People often ask me about my political feelings about the war and I decline to answer. They often ask me my views because of my experience, but this is the very reason that I don’t answer. People assume that because of my experience, my views have an extra legitimacy to them because “I was there”. By extension, they also assume that my political views define the character of, or motivation for my service in Iraq. It is hard to explain how or why soldiers maintain this “wall” in their heads. It’s not an attempt at rationalization, rather it is necessary for us to function properly in a combat environment. Trying to decide whether throwing the grenade that is currently in your hand espouses and promotes a libertarian or neo-conservative political world-view, while bullets are flying at you from all directions, is probably detrimental to your combat effectiveness. Hence the need to completely render politics irrelevant. When people ask me why I went, and why I served there, I tell them that I did it because it was my duty; because I wanted to support my fellow soldiers and because I wanted to complete the mission. I owe no further explanation.
Like I had mentioned before, my experience in Iraq was definitely stressful. I missed my family and friends terribly. I realized the value of the simple things in life, like not being afraid of being hit by mortar (for instance), while lying in bed, watching South Park on TV. Finally, imagine spending a whole year with your baseline level of anxiety ratcheted up to about 10 times its normal level. When we first got there, I was startled by every incoming mortar, but I eventually got used to it. I was initially stationed at the Green Zone, and got to visit the major landmarks in the area, like the Crossed Sabers, Saddam’s Palace, and the Al-Rashid Hotel. However, our mission changed and I came back to join the rest of the unit at Camp Liberty, Baghdad.
Our unit’s mission in Iraq was varied. We would usually be transporting VIP’s, prisoners, or supplies to different places in and around Baghdad. My job mainly kept me on base (and my family was extremely relieved because of that). To be very honest, there were times that I wished I could go “outside the wire”, instead of stay on the base. It wasn’t because I was fatalistic or crazy, but I enjoyed the adrenaline rush and also felt like I was doing something more tangible. I was able to go out about 10 or 12 times during my tour in Iraq. If you ask me what it feels like to be in imminent danger, I can say that it’s definitely an odd feeling. While I realized that I was in extreme danger, I didn’t feel scared or frightened. Only extremely alert and focused, which I guess, is how you would want to feel in a combat environment.
I didn’t truly realize the importance of my MOS until my tour in Iraq. Since our unit’s mission consisted a lot of convoying, the maintenance team was extremely busy ensuring that the vehicles were in a fully mission-capable state. A vehicle that breaks down outside the wire is extremely vulnerable, and so we had a huge responsibility to ensure that this never happened. My job, as mentioned before, was to ensure that the maintenance team had access to the repair parts they required. Most people in my position simply use the software provided. However the software being archaic, and having been written a few short weeks before the invention of the wheel (I am being sarcastic, of course) was not very user friendly or intuitive. Tasks that should be simple took forever to complete. The interface was obtuse, and the designers had made some seriously brain-dead decisions. Reporting was even more tedious. Most other units there would painstakingly write up a report every morning manually and send it up to the TOC (Tactical Operations and Command). Not content with this state of affairs, I resolved to completely streamline our operations. I essentially wrote my own programs that automated a lot of the data entry and reporting. Tasks that normally took hours now took only a matter of seconds to complete. In addition, I was able to send out extremely accurate reports because I figured out how to interface with the Army software’s database. I never once in my life thought that I would be putting my degree to use in Iraq. I never created any of these enhancements in the expectation of some sort of reward. My driving force was to ensure that I did everything humanly possible to guarantee the safety of my friends and the success of their mission outside the wire. Towards the end of the tour, I was awarded the Army Commendation Medal for my efforts.
Due to the nature of my job, and the fact that I mostly stayed on base, I wasn’t able to interact very much with the Iraqi people, or catch that much of a glimpse into their lives outside the base. In my experience though, most of the Iraqi people I did meet were extremely friendly and hospitable, with a sincere desire to see their country succeed. This is not to say that all Iraqis liked us. More than once I saw people on the street make obscene gestures at the convoys as we drove by. That, and the IED’s (Improvised Explosive Devices) clued us into the fact that we weren’t universally liked. A lot of Iraqis actually worked on base and ran shops that sold different kinds of merchandise and also a whole lot of bootlegged DVD’s (one of the first Iraqis I met was a kid on the street who wanted to sell me DVD’s). They would arrive at the base in the morning and leave in the evening. They were required to have escorts at all times as well, and this was how I was able to meet a lot of them. The lower enlisted (I was specialist at the time and hadn’t been promoted to Sergeant yet) had to perform extra duty, and one of these was “escort duty” where you had to escort Iraqis or TCN’s (Third-Country Nationals) around the base. I can recall my first time performing escort duty as especially poignant. The person I had to escort was a 12-year old boy who helped the garbage truck collect garbage around the base. He spoke excellent English and I asked him why he didn’t go to school. He told me that his father had been killed when insurgents blew up a mosque he was praying at. Since he was the oldest member of the family, he had to quit school and earn money.
The year passed by quickly (although at the time it seemed to drag on forever). Soon, the unit that would replace us arrived on base and we quickly started training them. We had gone from counting-down months to counting-down days. Finally, the day of our departure arrived. We flew out of Iraq at the beginning of November. We stayed in Kuwait for two days before flying out to the United States. As the plane left the tarmac, everyone on the aircraft started cheering; we were glad to be finally leaving the Middle East.
The day I finally landed in Phoenix, Arizona was one of the happiest days of my life. My friends were there to greet me and I was relieved and ecstatic that I was finally back home. Getting back to civilian life took some work. My friends told me that I was a little more subdued, and quiet. My family complained that I wasn’t that social and didn’t want to talk. The truth was that I really didn’t feel like talking about anything, really. Sudden noises would startle me, and make me think of an incoming mortar attack. As the months went by, I finally got used to being a civilian again. For the most part, I was my old self, but with a host of new memories.
As I write this, I have less than a year left in the military. My ETS date (time of separation) is December 18th, 2009. When I am discharged, I will have served 9 years in the United States Army National Guard. I have decided not to re-enlist, even though I know that I will miss the Guard terribly. Even though there were difficult moments I had to deal with, I know I will miss the camaraderie and the discipline. I have decided to focus completely on my civilian career, and I feel that 9 years is a decently long stint in the Guard. Even though I will be out of the military in a year, it will forever be a part of me, and will also be something that defines me as a person. Joining the military was one of the most pivotal decisions of my life, and it has turned out to be a rich, rewarding, and wonderful experience all the way. It has helped me grow more as an individual, and has built up my confidence. It has taught me the meaning of the words Loyalty, Honor, Duty, and Courage. Even though I may not wear the uniform in a year, in my heart I know that I will always be a Soldier of the United States Army.
Popularity: 2% [?]
The State of Computer Engineering
I was having a conversation with a few good friends (old college buddies, and fellow nerds) over a couple of beers a little while ago. We mainly reminisced about certain key classes we took while we were at ASU, and also about the state of CS and CSE graduates today. Indeed, the very nature of the degree. First, a little bit about those key classes that we took and still think about. These classes are CSE 225, CSE 421, CSE 423/438, and CSE 521. I wasn’t able to take CSE 423 and 438 because they were discontinued by the time I had completed the required prerequisites. But I was able to take the other three. All three classes deal with assembly programming. Assembly programming is the lowest level of programming there is. You directly control the CPU by sending it instructions. These instructions are actually decoded into a bit-pattern, which essentially translate into a series of on and off signals that travel to various places within the CPU (or even associated memory, I/O, etc.) and make it do cool stuff. At this level, you don’t have any of the niceties of higher-level programming-languages. There are no variables. There are no function parameters. There is no easy way to do I/O. Data can sometimes be program code and program code can sometimes be data, depending on your point of view. It’s a highly restrictive and immensely liberating and powerful environment at the same time. It takes a lot of effort to code in assembly, and much more effort to code well.
My introduction to assembly programming began with CSE 225. The class was taught by Lance Johnson and dealt with the Motorola 68HC11 (now produced by Freescale Semiconductor). I was pretty nervous about the class because I had heard how hard it was. As it turned out, yes, the class was hard. I put a lot of time into the class, and in the end it paid off. I got an A. The next class after CSE 225, was CSE 421 and this was taught by Dr. David Pheanis, one of the best professors I’ve ever had. Lance taught CSE 225 the same way Dr. Pheanis taught CSE 421, although it wasn’t as difficult. Both classes had “shotguns” (unannounced quizzes) and lab demos. In both classes you had to document your code thoroughly. In addition, you had to demo your code to the TA’s and every time you failed a demo, you would have 5 points knocked off your score for that lab. Oh, and in addition you were also graded on the efficiency of your lab solution. Embedded environments are usually sparse when it comes to resources, so getting your program to be small and fast is very important. Your efficiency score was calculated against the professor’s score. For every byte that you were over the optimal solution, you get one point taken off your lab score. If you ever beat the optimal solution, you got additional points. Pretty exacting standards.
In CSE 421, it was even harder. Dr. Pheanis would grade you on time on some of the labs as well. You also wrote code on the Motorola 6800, which was the predecessor of the 6811. As a result you were limited on the number of registers you had, which made it harder to write code (well, efficient code). You also had to have a very good amount of documentation. Each lab had a General Overview, User’s Guide, and Internal Overview. Any subroutines in your lab had to have its own User’s Guide and Internal Overview. Stack usage had to be properly documented. Logical groups of your assembly code had to be extensively documented and you had to explain the what, how, and why of your code. So if your program wasn’t adequately documented, you lost points. Our final lab involved implementing an Asynchronous RS-232 receiver and transmitter driver for the 6800. At the end of CSE 421, I learnt a lot of useful things. For one, I learnt how to write efficient code (something that has carried over into my high-level programming) and I learnt how to document my code really well. I also learnt how to be a good programmer.
The last class I took with Dr. Pheanis was CSE 521. You could register for this class, but more often than not, Dr. Pheanis invited you to take the class if he thought that you were a good student, and that you could handle the course load. I was privileged enough to be invited by Dr. Pheanis. In CSE 521, you write assembly code for the Motorola 68000. The 68k is a beautifully designed processor. The instruction set is almost completely orthogonal, and in general, it was a complete delight writing code on it. On a side note, writing on the 68k spoiled me to the point where it was impossible for me to pick up x86 assembly. The design is just atrocious. Anyway, the class was hard. I took it during my final semester at ASU, and I had two other classes (that I actually needed to graduate), but I spent the most time on CSE 521. In addition to the usual stuff you got graded on in CSE 421 (demo-passing code, efficieny (time and speed), and documentation) you were also graded on English grammar. I remember getting my first lab back and finding red marks all over it. Granted, I had done a little better than my classmates. I’ve always been comfortable with the written aspect of the English language and I thought I had a decent grasp of the language. Well, it wasn’t as decent a grasp as I had thought. I was introduced to problems such as “it or this without proper antecedent”, “the scope of ‘only’”, and “proper hyphenation”. Oh, there was also the infamous “Avoid ugly passive voice” stamp. Examples of such problems:
An “it or this without proper antecedent” grammatical error occurs when there is ambiguity in a sentence about exactly what “this” or “it” is referring to. For example, “Susan bought a dress and a hat. It was green.” In this example, we can’t say what “it” is referring to; it could be the dress or the hat. The sentence should be rewritten: “Susan bought a dress and a hat. The hat was green.” The “scope of only” is an interesting one. Consider the following sentence: “John only drinks water.” You might think it means that John only drinks water and not any other kind of drink. Actually, the only restricts the scope much more than that. What the sentence actually means is that John only drinks water and does nothing else. He doesn’t eat, sleep, sit, stand or do anything else for that matter. He only drinks water. The correct version of the sentence is “John drinks only water.” In general, you want to use “only” as late in the sentence as possible. Hence, the “scope of only”. Then there’s “proper hyphenation”. You generally want to use hyphens with compound nouns and adjectives. For example, “dining table”, “fish tank” and “operating system” are compound nouns whereas “black and blue” and “extremely hot” are compound adjectives. When you use an adjective to describe a compound noun (or vice versa), you need to properly hyphenative. Otherwise, the meaning of the sentence will be ambiguous or nonsensical. For example, consider the colloquial expression “It was a cold ass day”, meaning “It was a really cold day”. Does it mean it was a “cold-ass day” (compound adjective “cold-ass” with noun “day”), or does it mean it was “cold ass-day” (adjective “cold” with nonsensical compound noun “ass-day”)? Properly hyphenated, the sentence should read “It was a cold-ass day”.
You might wonder why English grammar is so important in an assembly programming class. Programming is more than just writing code. Once you write something, you (or someone else) needs to maintain it. So it is generally helpful if you can tell what your code is doing. This is especially important in assembly programming where it is not immediately obvious what the code is doing. I remember how Dr. Pheanis used to say that Engineers generally have terrible documentation skill. This is very true. I cannot count the times I have scratched my head looking at code I only wrote a few months ago, trying to figure out what exactly I was trying to do.
Now to the original point of my post. Larry Wall (creator of Perl) along with Randall L. Schwartz and Tom Christiansen outlined the three virtues of a greate programmer:
- Laziness – The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don’t have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris.
- Impatience – The anger you feel when the computer is being lazy. This makes you write programs that don’t just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer. See also laziness and hubris.
- Hubris – Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won’t want to say bad things about. Hence, the third great virtue of a programmer. See also laziness and impatience.
In addition to the three listed above, I’d like to add another one: Passion. This is the virtue that makes you like writing code. This is the virtue that makes you sit up till 3 A. M. in the morning hacking out a Mandelbrot-Fractal Generator or an artificial-life simulator just because you think it’s a cool thing to do. This is the virtue that makes you crash your box because you decided to do something bleeding-edge and incredibly unstable and dangerous just because you wanted to. This is also the virtue that gives you the desire to learn; the urge to acquire newer and better skills and to be a better programmer. Passion, is unfortunately in short supply these days among most programmers that come from college (or at least, ASU). In part, I blame the administration itself. When I was in college, the department tried very hard to force Dr. Pheanis out of his class, ostensibly to “modernize” the curriculum. Their rationale was that the processors used in Dr. Pheanis’ classes were “outdated”. Apparently they weren’t able to grasp the concept that assembly programming is not about using the latest and greatest processors, it is about learning the fundamentals. Dr. Pheanis’ last class was in spring of 2004. He’s a professor emeritus, and no longer teaching at ASU. ASU’s current computer engineering curriculum doesn’t have many interesting courses, for example, as I found out from Marc, ASU isn’t offering a compiler-design course anymore. In an urge to make the course more “modern”, I think a lot of soul has gone out of the program. Just taking all the classes doesn’t turn you into a Computer Engineer or programmer. It’s true that I learnt a lot of theory and a lot of other useful stuff from the classes at ASU, but a lot of times I went out of my way to learn things on my own. When I started college, I didn’t know the first thing about Unix. I knew how to write code (I wasn’t great… yet
heh), but that was it. During my first semester I taught myself how to work on a Unix system. I learnt how to use vi and how to write shell-scripts. Over the years I started teaching myself more and more stuff – I taught myself Perl and PHP, and picked up the finer points of web development. I taught myself how to set up and administer a FreeBSD server. What also helped me a lot was that I was around people who found these kinds of things as interesting as I did. The classes and professors fostered the type of environment where you felt inclined to learn more than just what the curriculum offered. There are graduates these days who don’t think there are other development environments besides the GUI. I was writing code on a Solaris system when I was in college. My development environment consisted of the commandline and vi. It’s actually only recently that I’ve been using IDE’s (I hadn’t really used an IDE since Borland’s IDE for C++, and that was during my junior and senior years of highschool), and while I definitely find that they enhance productivity (especially for large projects), I feel equally at home hacking on the commandline. There are graduates today who don’t know anything more than what they’re taught at college (I like to call them “cookie-cutter programmers”). They know Java and/or C++ (and perhaps Lisp, and C). They know data structures, and maybe they’ve heard of Linux. But they really don’t know anything besides what they’ve been taught (I don’t think all is lost, however, there still are graduates who do more than just the curriculum – who are passionate about the field).
I guess what I’m trying to get at, is that I think CS programs at should should foster an environment of self-discovery, self-learning, and exploration. Unfortunately, I find that this is not the case with ASU’s CS program these days. Compared to what it was when I’ve gone through, it just contains a bunch of stock classes that have replaced the older ones. The reason? Supposedly “accreditation”. In fact, I remember feeling extremely disappointed when Google closed their doors in Tempe. The Google office was very close to the ASU campus. Their closing told me that they weren’t able to attract good talent from ASU, and that’s just disheartening. Perhaps the heads of the CSE department at ASU should be more concerned about giving students good, practical knowledge, and teach them how to be better Computer Engineers and Programmers than just being concerned about accreditation.
Popularity: 1% [?]
Happy New Year
Happy New Year, everyone! Hope this year is better than the last. I’m in Irvine right now, with family. I won’t be back in AZ until the 4th. Looking forward to relaxing for a couple of days.
Popularity: 1% [?]
