2010
03.08

So after months of uncertainty, it looks fairly solid that I now have a new advisor. I have been struggling to decide what to do while I pleaded, prodded, and pondered about my situation.

Apparently, my last advisor all but abandoned me, but I wasn’t the only one. He almost abandoned other PhD students and has apparently done this to other students too. His other 2 PhD students reported success in getting him to respond after complaining to the Dean. I did the same but met with different results.

Some of you may be reading this and wondering more details about what happened, what you can do to avoid what happened to me, and how to identify it might happen. I agreed to work with an advisor but not schedule the thesis hours until the last minute because I needed the flexibility (due to my day job). After a year, this advisor stopped responding to my email or phone calls, was never in his office, and only appeared to teach 1 class twice a week. I saw the signs of this happening earlier when I had to start meeting him outside of the lecture hall after his class was over. Then he disappeared for 2 months around Christmas and 3 months over the summer (did not respond to any correspondence). If he ever responded to any of my attempts to contact him, it would be days or weeks late (he missed reviewing papers for his other students for publication).

My recommendation is to just how fast they respond to an email at 10PM on Monday. The most active professors will respond almost immediately, followed by the professors that will respond within 2 days (give time for lectures/tests), and the least active professors will not respond within a week without a really good excuse (on leave, sick, technology failure that can be verified). If you want to work with a professor and are worried they are not active enough, give them the 10PM test.

I will be working with Dr. Latifur Khan on Datamining. When I originally sent him an email, I sent it at 10:21PM and he responded before I could finish sending another professor an email. I met with 2 of his other students and I now have 2 topics to pick from to assist them in their work (typical for Masters). I even learned that he is technically on sabatical yet is on campus every day from 10AM to 6PM to continue research without having to teach any courses.

Now that it looks like I can actually start on real work, rather than scratching an idea together only to see the focus change with every meeting, I am seeing the finish line. I am slated to graduate this Fall, which means I have to be ready to defend by December.

2010
02.24

So I’m a software engineer by trade and passion. Generally, people of my profession and inclination are drawn to all things digital, but I often find myself apathetic. This is mostly due to my high expectations of other engineers and partly because so many mass market technologies fail shortly after release that I find it hard to really get excited. That’s ironic considering I started this blog as a series of perl scripts and SSI files on my Sparc machine running Debian for a webserver, with a domain name on one of the earliest dynamic DNS services.

It wasn’t until last November that I finally became motivated to buy a cell phone. You read that right, I bought my first cell phone 1 month from the end of the first decade after 2000. What motivated me? Android. In fact, the idea that it was built on Linux, which I have been running since 2000, only sweetened the deal. I wanted to develop my own applications and I had read that they were just Java applications.

It turns out that was sort of a red herring. Android itself is open source. That’s already a big improvement over the iPhone (I bet Apple would dispatch assasains to protect their code). On the surface, Android is a platform built for openness and flexibility; precisely why I love Linux. I immediately wanted to download the SDK, which I assumed was just a JAR file. Wrong again. Those instructions are a bit intimidating, especially considering that I generally prefer not to use Eclipse (can someone tell me what Eclipse is anyways; it’s goal to be a platform to build platforms seems vague). I’m no stranger to writing Java; I personally have authored a framework in Java and JNI, that measured in the 6 figure SLOC range, that has made permanent employment for 3 people. Those instructions almost look worse than your typical automake project. My motivation all but vanished when the Android Scripting Environment abandoned 1.5, which my phone runs. It seems the Android Scripting Environment has been fixed to run for 1.5, so it has renewed my interest.

I noticed that I immediately gravitated to the free apps. After a while, I grew frustrated with most applications, providing little motivation to pay for the “pro” version. I started looking for open source versions of some of the applications I would like to improve and found that there are surprisingly few. They are out there, such as Mustard Shelves, and ZXing. There are plenty of apps that feign openness by providing an API for building applications on top of them, such as Twidroid, Last.fm, and Ping.fm. That’s like giving me the instructions on how to drive but not telling me how to tinker under the hood; if you can’t open it, you don’t own it.

I would love to be wrong. Everytime I try to Google for open source applications, it’s usually Google’s keyword matching to the association of Android itself being open source, not about an open source application for Android. If you know of any such applications, please post a comment so that others may find what I could not.

2010
01.17

Git Going

In my spare time, I like to write code snippets and samples. I like to test an idea here and there without writing something all the way to fruition. It gives me the freedom to tinker and and let my imagination wander. Once I start working through a complete solution that will eventually need support for a growing community, I start to lose interest. It’s the act of discovery that is what entertains me.

So I’ve collected some useful snippets and some garbage snippets. I’ve never bothered to put them in a repository because they were just small bits of code that were not intended to retain a long lifespan. When I got my Dell Mini10, I started writing snippets on that machine as well. Since I did this away from home, I couldn’t rely on my fileserver to be always available. I needed an easy way to organize my codebits so that I can see them on multiple machines.

I decided it was time to set up a repository, which will go nicely with my new domain. I set out to setup a server similar to GitHub but found that wasn’t as straight-forward as I had hoped. I asked a few questions in #git (irc.freenode.net) and received a few mixed answers. I ultimately was getting the following error:

Initialized empty Git repository in /tmp/test/.git/
Enter passphrase for key ‘/home/s1n/.ssh/id_rsa’:
fatal: ‘/test.git’ does not appear to be a git repository
fatal: The remote end hung up unexpectedly

No matter what I tried, I always ended up with an error along those lines. Then I found this guide, which has a great rundown for “impatient” users. Turns out, that path after git’s ssh:// URL is the path. That is ssh://someuser@server/path/to/repo.git has the repo.git in the /path/to/ folder on the server hostname available as someuser. I made a symlink in / to the repository folder and everything was ready to go.

Now I should be able to run my own git-daemon for my miscellaneous codebits and thoughts without having to publish them in a public repo. Maybe in the future, I’ll install a GitWeb browser, but right now, these are really considered private thoughts and I don’t think I want to share them.

2010
01.01

Photo courtesy of Christopher Chan


Looking Back

Today is the first day in 2010 and the second decade in the new millenium. Tons of events have transpired in the last 12 months and especially in the last 10 years. In usual fashion, I like to go over what I did/didn’t do this year and what I want to do next year. Well, since it’s the last day of the decade, lets extend that and also cover what I did/didn’t do this decade and what I want to do next decade. This may be a long post and not entirely entertaining if you don’t personally know me.

College

I wasn’t really sure where to start with this, so I guess I’ll start with chronological events and just drive by at 80 MPH. Let’s see, in 2000, I graduated from high school and went off to college. Lots of things happened while I was at college; I held 3 jobs, dated my now wife, and learned a lot while I studied. I graduated as a UPE (national computer science honor society) memeber in 2004. I lived in San Antonio, dated my wife while she was in California then after she transferred to Austin. I eventually proposed to her just before graduation (2003).

Employment

I worked a number of internships while in college. I held a position as a tutor at the university. I tutored students on how to write decent Java code because I did well enough in the introduction course that the instructor knew that I would be able to help my fellow students. That was fun but had to leave the position to take a position as a software engineer at an insurance provider. That was mostly a drag. I worked with a guy who couldn’t stop telling me how the previous guy he worked with could do no wrong. I don’t recommend working in a position where you report to a person outside of any technical experience (my boss was a financial person). I was let go because I had to work part time for school. I took some more time off and eventually took a position at a contractor for a government contractor. I wrote mostly C# 1.0 code, which was somewhat entertaining. My boss a nice guy but always wanted me to take a database course even though I repeatedly refused to do so. He didn’t do a very good job because the company went bankrupt on Valentine’s Day in 2005, just one month after our wedding.

Marriage

My wife and I were married on January 15, 2005 in Austin. We went to Hawaii for 9 days for our honeymoon. We had a nice ceremony; the whole family helped throw a wonderful wedding. Everything went off without a hitch. The nice thing about getting married in the new millenium is that everyone has a digital camera. I think we received about 1000+ photos from everyone including our photographer, parents, estranged extended family members, and friends. I intended on posting some pictures but that effort kept getting postponed.

Losing my job was a nice way to start our marriage. We used all the money I had saved for the honeymoon to survive until I found my current position. In May 2005, I took a position at a government contractor doing mostly C++. I primarily work with Linux, so that makes the job more enjoyable. Unfortunately, it’s a government contractor and the code is typically boring. I would say by C/C++ skills have greatly improved over the years; I am fully confident in my ability to work on very large codebases (2 million lines or more), especially in C/C++.

Housing

In the last decade, I’ve lived in 6 apartments and 1 dorm room. In April 2000, the dorms at the university were shut down and we were prevented from accessing our rooms due to mold issues. I did manage to snag my little black book so that I could call my future wife when she got home for the summer. One of the dorms I lived in was a true batchelor pad; we wrecked the carpet, it was tiny, and there were always loud neighbors. Another apartment was a brand new and luxurious. I hosted many BBQs and social gatherings. In September 2008, my wife and I bought a house in north Dallas. We really love this house and the neighborhood; I am currently trying to repaint a majority of the interior.

College, Again

Shortly after moving to Dallas, my wife started pursuing her MS in Accounting (2006). She procrastinated taking the GMAT so she had to stop attenting in 2007 until she could take the test. Later in 2006, I also started pursing a MS in Computer Science (Intelligent Systems track). She finished her degree requirements a few weeks ago and will start the CPA exam prep in January. I am 9 hours away from completion (6 are thesis hours) and on schedule to graduate in the Fall 2010 semester. Graduate school has consumed much of our lives for the last 3 years, so we’ve been more than busy with that.

Running

Also, after moving to Dallas, I became obsessed with running. In fact, it has become my only hobby. I first flirted with the idea of running when I lived in the swank apartment in San Antonio (2003). I would do 2 laps around the complex, which was 1 mile, or head out of the complex to add an extra mile. After moving here, I regularly did 3-5 miles 2-3 times a week. I ran my first 5K in July 2006 and finished in 31:06; the fastest 5K I’ve done since was about 25 minutes even. I’ve run 10Ks, a 20K, half marathons, did the training for a marathon (though didn’t actually do the event), and a few oddball distances in between. I’m not very fast, so I strive to beat my best times every time I run in a race. Running is the most challenging physical activity to do and I enjoy pushing myself.

Family

Our family is 5 members strong, by some definition of members. We started out with Birdie, an obnoxious cockatiel who’s now 12. In January 2007, we adopted another 2 year old cockatiel named Rose. In March 2009, we adopted a lovable Boxer/Pitt mix named Alexa (Lexa for short). She has proven that dogs are a man’s best friend. We had a rocky start; she chewed up nearly everything and had energy to spare. She’s matured some and no longer has a chewing problem. I take her to Home Depot and for exercise on a regular basis now. We’re looking into CGC training courses now so we can take her to Scottish Rite and brighten some faces.

Obsession With Technology

Over the years, I went from being unable to write a poker game in TurboC++ to managing 300K lines of C++, a subset of the 2 million lines of codebase. I’ve learned a bunch of languages and technologies, everything from Perl, to Javascript (my knowledge of this is way outdated now), from databases to Hidden Markov Models. Learning new technologies and expanding my understanding is what I do best.

While I was in college, I studied lots of interesting topics. I worked on an independent study aiming to study how the Linux kernel syscall table works and how to hijack it. I thought I enjoyed parallel processing above all other topics but it turns out that I was more interested in Intelligent Systems more because of their increased difficulty and lack of progress (compared to other topics). In a middle level course in 2002, a professor turned me on to Perl, which is where my obsession started. I have to admit though, other scripting languages may have captured my interest because of their flexibility compared to C and Java (then 1.4). I’ve fiddled with other loosely typed languages and always keep coming back to Perl. In 2009, I joined the community effort to revive Perl 5’s image and joined the Ironman Perl Blogging Challenge. The frequency of my posting has mostly been hampered by my school and work schedule, though I still enjoy taking about it. In 2009, I also attended my first conference, YAPC::NA 2009. It was fun but would have been more enjoyable if I were an active contributor.

Back in 2000, I updated my personal university page by SSI and my (then) trusty pico text editor. I eventually salvaged some junk equipment and started running a file server. While working for the insurance company in 2002, I salvaged an old Pentium2 machine and turned that into a router, which I still use today. I turned the fileserver into a webserver and registered s1n.dyndns.org. I used that address for 8 years.

When I moved into the dorms after starting college, I was using a prebuilt HP machine running Windows 2000. I met a few guys in San Antonio, through Quake 3, who introduced me to Linux. I was so convinced that it would show me a new technological world, that I installed Red Hat 6 after attending the universities ACM chapter meeting. They kept showing me more about Linux and I eventually installed Slackware. I learned much from using Slackware for a year and eventually started experimenting with new distributions. Back then, there were only a handful of distributions, but I tried them all. Eventually, a friend of mine introduced me to Gentoo in 2003 and I never looked back (except for my newfound appreciation for Arch).

The Incident

So the last thing I want to mention that happened in the last decade is something I have yet to address here. In 2001, I was arrested for Breach of Computer Security. Sounds worse than it is, but it was basically my roommate telling campus police that I had hacked his network share. He also tried turning me in for posting Tool lyrics in my network share and claimed I was a member of a hacker super group responsible for stealing credit card information. What really happened was I broke his network share password and he already detested me. Then someone I knew online decided to email me credit card numbers he claimed were real; I didn’t believe him but somehow the email ended up on a floppy. I don’t remember doing that specifically, but the police seemed to focus on that, so I did what I could to help them find the guy who sent it to me. I turned over a check he sent me for responding to emails with a template response (seemed harmless then). They charged me with Breach of Computer Security, which was a class B misdermeanor; it was eventually adjudicated (and dropped). It didn’t stop me from getting my current job and I had to disclose it to my employer and the government, so I don’t feel compelled to keep it to myself anymore.


Looking Forward

So what do I expect out of the next decade? In 2010, my wife and I will be attending our 10 year high school reunion, though high school is fairly meaningless to me since I’ve been in college for 8 years now. I might finally persue a PhD but only if I do so full-time; part-time grad school is a test of your patience and perserverence.

I am interested in finding a position that allows me to contribute directly to an open source project, such as the Linux kernel. I took my current position for the stability and availability. I would like the next position I take to be more lucrative, riskier, and more on the fringes of technology. I am not the type of person to stay in one position for too long and 15 years in one position strikes me as stagnation, which makes employment elsewhere difficult.

My wife and I would like to have a child or two. We have been postponing it until she finishes college so we aren’t negligant. I think I would make a good father but I think my wife doubts her ability to be a good mother. I’d rather have a boy because I want to avoid the heartache of watching a daughter start dating.

In summary, I’d like to tackle my Beta List more. Specifically, I’d like to travel the world more and run an ultra marathon (at least 50K). I am hopeful for the next decade. The last decade had it’s ups and downs but was generally a good 10 years. As long as we chase things that make us happy, we’re hard pressed to have a bad decade. I made the same resolution to not make resolutions this year so I cannot be disappointed. I have a feeling that the teens will be better than the digital decade.

Happy New Year and New Decade!

2009
12.24

Depending on how you got here, you may have noticed a change. I have been putting this change off for years and finally decided that now was the time.

I bought a domain name (two actually).

I am now the proud owner of voidreturn.com and voidreturn.org. Right now, I am using the .com because of the name recognition that comes with it, but I think the .org sounds better. I even setup Google Apps so that I can have a mailserver without running the server (I highly recommend doing this unless if you have a personal site).

I am still running my own webserver because I just don’t like the idea of not hosting my own stuff. Internet connections are cheap and fast these days; I have 15 Mbps down and 3 Mbps up, more than a personal site would ever really need. I realize that it’s not as reliable and can be more time consuming, I’m a control freak (why do you think I still run Gentoo?). Over the next year, I will most likely upgrade my router to a 1U server and upgrade the storage space in the file server to count in TB instead of GB.

Also, you may have noticed that I updated all of the old links and installed a broken link checker. Broken links now appear with a strike-through. Even the name of the blog has been updated along with an apropos quote by Emile M. Cioran.

I’ve been using the dyndns.org address for nearly 10 years; it’s sad to see it being phased out. It will still be available but will basically redirect to voidreturn.com. Nothing is static, everything is evolving.

2009
11.27

Today is the American holiday of Thanksgiving. Today, some people are thankful for their friends and families, some people are thankful for their big screen TV, and some have nothing to be thankful for. Today, I let me follow in this shopping holiday tradition and extend my thanks.

I am thankful to everyone who has contributed to an open source project. Your contributions have assisted in completely upheaving the software development model. I am thankful to the people behind the wonderful, efficient, and flexible Linux. I am thankful for everyone who has every contributed to Perl or uploaded a module to CPAN. I am thankful for everyone who has contributed to GNOME, KDE, boost, python, and so many more wonderful products. Without you, we would all be using Unix or Windows, and neither of those sound appealing.

My livelihood has been made possible from the contributions of everyone who has ever contributed to an open source project. You have enriched the lives of many budding software engineers. You have shown business-minded people that there is such a thing as a free lunch. You have changed the world and history will look back and thank you for opening our minds and helping everyone look beyond monitary rewards.

At the risk of being flooded, I want to extend my offer of one free beer (or a cup of coffee if beer isn’t your thing) to anyone in my area if you have contributed to open source. A few beers is the least I can offer for people who have made my career possible, widened my perspective, and generally ignited my passion for software.

Thank you.

2009
11.18

I’ve often wondered what places someone in an open source community. Is it advocating the software? Openly contributing source code? Are users members of the community? I’m not sure if the definition of membership is clear to me.

You’re probably reading this entry on the Perl Ironman Blogging challenge. I joined the challenge over the summer when I had much more time to devote to active participation (no classes). I have failed to leave Paperman status since the semester started.

I haven’t contributed much. I haven’t been able to clean-up and upload my lingering perl projects to CPAN yet. I haven’t contributed to fixing bugs in CPAN modules or perl5 itself. I have flirted with contributing to Rakudo over the last 18 months but have become consumed with my graduate work as of late. I have been to only 1 YAPC::NA event, which was this summer at YAPC::NA 2009.

I don’t write gobs of professional code using Perl; 95% of my professional code is C++. The last professional Perl project was to recreate Test::Harness and TAP::Formatter to meet my needs, which turned out to vary widely. I’m not a sysadmin, so I don’t get to use Perl as a glue to hold my universe together. I don’t have 14 million repuation points for Perl on StackOverflow.com.

I don’t wax philosophically about the Great Divide between Perl 5 and Perl 6 developers; I am both, so that would be weird to argue with myself. I love Perl, both 5 and 6. I love all the great things people have contributed over the many years.

To put it bluntly, my graduate degree greatly eclipses anything I would like to contribute to the open source community, Perl included. I take a few hours a week to run and that’s about all I get for free time.

I did restart DFW.pm, now referred to as Dallas.p6m. Dallas is blessed to have a few significant community members, so I at least try to bring them together for coffee once a month. I’ve held a few mini-hackathons, though attendance has dropped, likely due to the time of the year.

So where would I fit in this Community Ball of Mud?