Legacy Man

Legacy Man

by Mauriat Miranda
(with apologies to Billy Joel)

It’s nine o’clock on a Wednesday
The regular files are looking neat
There’s an old dev sitting next to me
Trackin’ bugs in his Excel spreadsheet

He says, “Son, can you debug this memory
I’m not really sure how it works
But it’s bad and discrete and I knew it complete
When I wrote a younger man’s code.”

La la la, di da da
La la, di di da da dum

Write us a hack, you’re the legacy man
Write us a hack tonight
Well, we’re not in the mood for an upgrade
And you’ve got it compiling all right

Now John in support is a friend of mine
He helps me debug in C
And he’s quick with a fix or promoting Linux
But there’s some apps that he’d rather see

He says, “Bill, I believe this is boring me.”
As his mouse clicks away through his trace
“Well I’m sure that I could sell iPhone apps
If I could get out of this place”

Oh, la la la, di da da
La la, di da da da dum

Now Santosh is a database analyst
Who never has time for his wife
And he’s talkin’ with Louie, who codes like a newbie
And probably will do for life

And the IT are enforcing policies
As the senior devs slowly check nodes
Yes, they’re using an app they call hopelessness
But it’s better than writing new code

Write us a hack, you’re the legacy man
Write us a hack tonight
Well, we’re not in the mood for an upgrade
And you’ve got it compiling all right

It’s a pretty big patch for a testing day
And the managers change the release
‘Cause they know that today, there is nothing I’d say
To cause their process to cease

And the desktop, it looks like a Commodore
And the Microsoft disks are near
And they run all their builds and think bugs are all killed
And say, “Man, how is this workin’ here?”

Oh, la la la, di da da
La la, di da da da dum

Write us a hack, you’re the legacy man
Write us a hack tonight
Well, we’re not in the mood for an upgrade
And you’ve got it compiling all right

Automated FTP Script

I’ve been doing some development for some embedded Linux devices which only support ftp and telnet. In order to automate transfer of binaries from my Fedora development host to the target embedded device I’m using this handy ftp script: pushftp.sh


# arg1 = dest hostname
# arg2 = local file
# arg3 = dest dir



ftp -inv $HOST<<ENDFTP
chmod 755 $SRCFILE

Then I added something like this to my Makefile after cross-compiling:

        sh ~/bin/pushftp.sh $(TEST_BOX) $(APP_BIN) /usr/local/data

So after I run make all, I run make push. I still need to telnet to the host to test/debug the application, but this makes the process much faster (and less error-prone).

I’m just noting this for myself, hopefully it’s useful to someone else.

Downside to Enterprise Linux

(Note: For the purpose of this post CentOS is equivalent to RHEL)

It has been about 2 and 1/2 years since I built a dedicated server and chose CentOS instead of Fedora. Since I installed CentOS 5.1 I have used the upgrade process 4 times with no problems bringing me to version 5.5 with practically no re-installation, re-configuration or troubleshooting upgrade issues. This is the goal of enterprise linux. A long term stable solution with no major changes to preserve compatibility with every piece of software that was provided since it was released (in this case April 2007). In the time I’ve been on CentOS I’ve upgrade/replaced Fedora at least 5 times on other machines. Each time learning the changes to software, languages, security and many other components.

I’m very pleased with CentOS knowing that after the next yum update all my software will keep working. And everything is 100% secure.

However the exact reason enterprise linux is so great is also the exact reason why it can be a major pain. Once a main component is locked down, Red Hat will not provide updates unless needed for security or stability.

An objective for my server was for web development. The state of web as defined in 2007 when RHEL was created is coming close to obsolete. CentOS 5 includes PHP version 5.1.6. However PHP 5.2, which was released before RHEL 5, has become the default standard requirements for many PHP applications. I was updating some code to utilize JSON when I realized I would have to deviate from standard updates to install PHP 5.2 on CentOS. (This wasn’t too bad)

Another objective was a file server and backups. I’ve been playing with DropBox (*) as means of an off-site backup solution. What makes it great is it’s support for Linux! Even text-based linux which is what my server is. However the first requirement is Python 2.5. CentOS uses 2.4, and you can’t do a major update of Python in a CentOS/Fedora install without breaking many things since this is a critical component. You can do a parellel install for Python 2.5 but this is a bit annoying to maintain as you have 2 versions of python installed. (I have yet to get Dropbox working well on my server)

I also have been writing C++ software using boost. I recently realized the asio library was standard in boost 1.37 and later. I was locked to 1.33 in CentOS 5. No big deal since, the boost package was not critical for me in CentOS and it could be easily replaced. So I decided to recompile a newer Fedora boost src.rpm. However I would see errors like this:

error: unpacking of archive failed on file /home/mirandam/rpmbuild/SOURCES/boost-1.41.0-iostreams-zlib.patch;4c7880e5: cpio: MD5 sum mismatch

The above error is simply because Fedora 12 changed the RPM compression algorithm used and rendered older versions of RPM incompatible with newer packages. I don’t dare meddle with RPM as it is a core component, so I ended up compiling an older Fedora 11 version of boost 1.37 src.rpm which did the job.

Overall I’m still happy with my setup, but slowly I’m spending a great deal of time patching different pieces as my needs have slowly evolved. Interestingly Red Hat recently announced extended support lasting up to 10 years. That seems way too long considering the state of software (although everyone still uses Windows XP – now 9 years old).

I’m getting a little antsy running 3 year old software. The good news is that RHEL 6 is in beta, which means that soon after release the totally free CentOS 6 will follow as well. Which I’m eagerly waiting for, because all my issues will be addressed … at least for the time being.

(*) Affiliate link – I highly recommend Dropbox.

HTC EVO 4G Battery Life

I have read the most serious complaints about the HTC EVO 4G have been over battery life. I would like to offer my observations.

I got my EVO on May 19 with 1 free month of service till June 20. During that time I didn’t use the phone much. I switched my primary account after I returned from India. In doing so I found that in my absence an update was available. The points that caught my attention:

  • Improvements to Wi-Fi performance
  • Addresses Facebook sync issue which can improve battery performance

Until this update I was never using WiFi on the phone, and I don’t use Facebook for addresses (or anything else for that matter).

So it has been about less than 2 weeks of usage as a primary phone, and for the most part I think the battery life is completely acceptable.

My typical usage has been less than 1 hour talk time per day. At home I leave WiFi on (even through the night) and while at work I turn WiFi off. At work my 3G coverage is not great (3/5 bars) and often does data roaming (4/5 bars). I haven’t really used much BT or GPS. I haven’t even seen any 4G :( so that’s off. … I do minimal web browsing (only when I’m not near a computer). However I do lots of email. I have 4 email accounts setup (with push email) which seem to *beep all day long*. I usually don’t run the task killer to quit any background battery wastage. I have haptic feedback enabled, use a starfield “live” wallpaper and leave the default brightness. I don’t have very many apps installed and I don’t use any widgets that constantly update. However I do use auto-sync for Google calendar.

With that, I can go well over 36 hours before I hit the 15% battery critical alarm. If double the talk time or do equivalent surfing (as talking), that comes closer to 24 hours.

Yesterday I chronicled my usage in detail. I had the battery at 100% charge at about 3:30pm yesterday. I hit the 15% critical at 1:30pm today (22 hours later – 21:52:41 to be exact). In that time I have done:

  • 1:10 hours BT music streaming in my car (two 35 min trips, no GPS)
  • 1:30 hours talk time (WiFi on)
  • 0:15 min talk time with BT handsfree (WiFi on)
  • 0:20 min GPS navigation in my car (with some GoogleMaps looking for a place)
  • 0:30 min 3G web surfing (with some youtube)
  • 0:30 min of email

During the bulk of the usage last night there was a major thunderstorm and the signal was a little weak. I did have one dropped call (which is why I disconnected the BT hand’s free).

I’m not saying this is amazing (even though the EVO 4G has one of the biggest batteries on the market). However I don’t find this worthy of my complaint.

In contrast:
I have a Motorola Droid (currently disconnected), which I only leave WiFi on. In less than 24 hours (with practically no usage) the battery is completely dead. Pushing the power button does nothing.
Previously when I used the Palm Pre, I would have to be very careful at night. Randomly I would wake up to the battery at critical. I would usually have to charge at night. And I disabled everything (no WiFi and no email updates).

The one major need for power on my phone is that it should (1) last all day for my typical usage and (2) if the battery is not close to critical when I go to bed, it should not be critical when I wake up. Currently my EVO seems to do this much better than my other phones.

I do plan to monitor this further in the future.

* Full disclosure: I got this device for free, but I was planning on buying it anyways. I do pay for service.

Fedora 13 Released

Paul W. Frields announced the release of Fedora 13.

The email there is quite comprehensive, so please take a look at it. Otherwise you can read the release notes in 1 page.

I have not had much time to spend with F13 in the beta period, but from what I have used, I’m quite pleased at how many things work with little to no effort. I encourage the upgrade.

Please download Fedora 13 using the standard mirrors or using the Torrent (recommended).

(Note: I have not published any guides/information for this release yet. This will happen in the next few days. Most of the Fedora 12 information applies.)

CentOS 5.5 Released

The CentOS team just announced the release of CentOS 5.5.

The wiki has the Release Notes. Most major changes can be found in the RHEL 5.5 release information (which CentOS is based).

yum update
should update your system. Keep in mind the recent post-release updates should be syncing with the CentOS mirror soon.

As always, relatively smooth sailing with CentOS!

LCD Monitor Recommendation

I have been on a 3 year quest to dump my old Sony CRT monitor and replace it with an LCD monitor, but I keep getting sidetracked.

I am looking for suggestions (recommendations really) for a high end/quality LCD monitor.

Resolution must be 1920x1200 or higher (NOT 1080), and most likely 24in display.
It would be really nice with dual-inputs so I can add both my desktop and laptop.
A built in USB hub would also be pretty useful.

Price is not an issue (it is, but I care more about quality), so I have an open mind. I don’t care for another TV, just more screen space.

My top picks are the Dell UltraSharp U2410 and the NEC MultiSync EA241WM. I’ve always been interested in Samsung but too lazy to figure out which series are cheap and which are quality.

If you own or use any of the above monitor or know of one you really love please let me know. I want to buy something in the next 1 to 2 weeks. (Apologies for all the messages).

Leave a comment or Contact me.

Stable Release Updates in Fedora

If you missed it there seems to be yet another debate going on about updates in Fedora. I don’t intend to rehash anything. Josh Boyer has a bit of an op-ed post which I think is a good read.

Think of the issue in a simple scenario:
Should Fedora 12, which was released in Nov 2009 with KDE 4.3 receive the recent KDE 4.4 update? Or should KDE 4.4 be reserved for Fedora 13 which will be released in June 2010? And who benefits or loses in each of those options?
(In case you don’t know, KDE 4.4 was available as stable update at the end of February).

My personal opinion is that it really does not matter FOR ME. I do not mind 4-6 month wait for software. (BUT Some people are impatient) And on the flip-side if I get a massive problematic update, I am experienced enough to work through it. (BUT Some people are total newbies)

I read the Stable Release Updates Vision, and the only thing I can express is surprise. I don’t know if Fedora as it exists will accommodate this or if it can work out as envisioned. I would think this puts more responsibility on the contributors (who are mostly volunteers).

I would love to see more stability in Fedora, but I don’t know what the fair cost should be.

Please read the Updates Vision and if you partake in this debate please be considerate of the many different types of users and contributors involved in Fedora.