February 2009 Archives

twitter-logo.pngMy blog here at kolich.com has been dead over the last week or so.  I've been absolutely swamped at work.  Fortunately, a lot of great stuff is happening at HP and I'm very excited about the direction we're heading.  Because I've been so busy, and haven't had time to submit any lengthy blog posts, I got a suggestion that I should join Twitter.  The idea behind Twitter is to post very short (140 characters or less) life snippets about what you're doing, where you are, etc.  So, here I am.  Twitter has a nice REST API, so I'll probably play with it once I get back from Reno/Tahoe.  I'm heading up to the Tahoe area for the weekend.  Have a good one.
gagawa.pngA new version of the Gagawa Java library (version 1.0.1) has been released to the open source community.  A few changes have been added to the library which make it easier to chain/append attributes and elements to a given node.  The Java class path has also changed; the Gagawa package was renamed.  The Release Notes are available here.  The latest JAR library is available here.  Enjoy.
obama-cream-of-nothing-bugfurhat.jpgFrom WorldNetDaily:  "As the Obama administration pushes through Congress its $800 billion deficit-spending economic stimulus plan, the American public is largely unaware that the true deficit of the federal government already is measured in trillions of dollars, and in fact its $65.5 trillion in total obligations exceeds the gross domestic product of the world."

Are you worried yet?

ita-snapshot.pngBy far, the best airfare search tool I've ever used in the ITA Software Trip Planner.  It's free to use, and no account is required.  To use it for free, click "Log in as a guest" once you're at the login screen.  What's so nice about this tool is that it lets you search a comprehensive list of airline fares and schedules from just about every airline worldwide.  Plus, there are no ads and other annoying sales gimmicks; just the data you need to help you plan your trip.  In fact, I think this tool is used by many travel agents.

Once you find the flight that matches your schedule and price range, click "Show booking details" in the upper left.  This will show you a booking code, and a price break down, among other things.  To book the flight, you'll need to call the airline and tell the representative you want the rate associated with the correct booking code.  The site will say something like "1 adult in booking code K, covered by fare (B1) below."  So, when you call the representative all you need to tell them is the date, flight number, and the booking code to get the price shown on the ITA Travel site.  On average, the ITA Travel search tool will find better rates than the actual airline sites (southwest.com, aa.com, united.com, etc.) themselves.  Enjoy.
When making changes to your DNS records, you may need to flush your local DNS cache.  This can happen if you've submitted a DNS change, but the system you're using hasn't yet accepted the change.  Recently, I updated the DNS record for nick.kolich.com.  However, once I updated the record, my Vista machine didn't seem to recognize the change; even though all of my other boxes did.  In this case, I needed to flush my DNS cache.

On Vista, using an Administrator Command Prompt, run:

ipconfig /flushdns

On XP, run the same command, but you don't need to be an Administrator user:

ipconfig /flushdns

Yea.
If there's one thing Yahoo is still good for, it's finding out who is linking to your domain.  Using Yahoo's linkdomain search qualifier, you can find out who Yahoo claims is linking to your site.  In the Yahoo search box, enter:

linkdomain:example.com -site:example.com

Replace example.com with your site, or a domain you'd like to check-up on.  Here are the Yahoo linkdomain results for my blog.  Remember though, using Yahoo isn't as complete as analyzing your own log files.
nadya-suleman-is-a-failure.jpg
I'm officially adding Nadya Suleman to my list of all time FAILURES.  You may have heard that Suelman recently gave birth (if that's what you call it) to octuplets.  Only problem is she's on welfare, and already has six kids.  If you're thinking rationally, you're probably saying to yourself, "yeah, this lady is a complete and utter moron."  Man, I'm with you.

Here are some other details about this whole octuplet situation that make it even more asinine (from MyWay News):

  • Suleman has been supporting her six other children with $490 a month in food stamps.  She receives Social Security disability payments for three of the youngsters that total approx $2,379 a month.  She's clearly in no position to bring a kid, yet alone 14 of them into this world.  She expects hard-working Californians and Americans to pay for this atrocity?

  • Suelman estimates her in vitro fertilization procedures have cost $100,000.

  • Suleman has said she saved for the treatments by working double shifts and also used money from a disability award exceeding $165,000 that she received after an on-the-job back injury.  She's an opportunistic leech on the state of California, the United States, and our legal system.

  • The Suleman octuplets' medical costs have not been disclosed, but in 2006, the average cost for a premature baby's hospital stay in California was $164,273, according to the U.S. Department of Health and Human Services. Eight times that equals $1.3 million.  So, how is she going to pay for this?

  • Suelman is now getting death threats for bringing eight more kids into this world, while expecting tax payers to foot the bill.  Gee, I wonder why?

Listen, I have nothing against responsible mothers, children, or having kids.  But I have everything against irresponsible people making irrational choices while expecting me and other hard-working citizens to pay for their mistakes.

Don't Yell [Shout] at Your Disks

| No TrackBacks
shout-out-at-disks.pngFrom Omninerd:  "Brendan Gregg from Sun's Fishworks team makes an interesting observation about inducing disk latency when he tries yelling at active disks."

As it turns out, you shouldn't yell at your disks, even if they're misbehaving and they've pissed you off.  Yelling at them won't help as shown in the video on this blog.  In fact, screaming at them induces latency and reduces performance.  One theory: sound vibrations from excessive noise negatively impacts disk platter performance.  This should be a wake-up call to system and data center cabinet designers: build systems to reduce noise (e.g., loud and annoying fans) and build cabinets to dampen/absorb subtle vibrations.  Doing could "theoretically" improve overall JBOD performance.  Remember, disks have feelings too.
dao-ze-dong.pngI'm so impressed with Hibernate in Java, that I've decided to write my own persistence framework in PHP.  I'm pretty sure I might call this PHP framework DAO Say Dong, just because it sounds funny (and because a persistent framework exposes a set of DAO's that provide an abstract interface to a relational database; e.g., MySQL).  Once I have more details (and code) to share, I'll post what I have ready to my blog.  Until then, you might enjoy this primitive DAO Generator for PHP and MySQL.
jpandmeghan-flowplayer-stream.png
While working on streaming Flash video support for jpandmeghan.com, I encountered some very interesting buffering problems with Flowplayer.  Turns out the way I was originally loading videos into Flowplayer was filling up its in-memory buffer too quickly causing it to generate an "out of memory" error.  The video would start to buffer and then about 20 MB or so into the buffering process, it would just stop.  I dug into this a little more, and found that the way I was loading the video stream into Flowplayer wasn't optimal:  I was trying to load a 30MB Flash video file entirely into memory, which is bad.

A better approach is to use a Flash video streaming server (RTMP) to deliver your streaming content to the browser.  But, if you don't want to spend the money on an expensive RTMP solution, you're in luck because you can simulate a primitive RTMP server using Apache and PHP ...
If you've ever hacked on a Linux box, you know that there's a slight chance the system might freeze and become entirely unresponsive.  In general, this is extremely rare with Linux but it does happen.  When installing the HPPA port of Debian Linux onto my HP PA-RISC J6000 Workstation, the Debian installer completely froze (as described here in my post to the HPPA Debian community).  BTW, I never got a response back from my attempt to alert the Debian folks of this issue.

Nevertheless, if you need to take control and gracefully restart a completely "frozen" Linux box, you'll be happy to know that there is hope.  Hold down the ALT+SysRq key combination.  While holding down ALT+SysRq, press R-E-I-S-U-B and watch your system reboot gracefully (e.g., no corrupted file systems).  Here's what R-E-I-S-U-B does while you're holding down ALT+SysRq ...

  • R: Switch the keyboard from raw mode to XLATE mode.
  • E: Send the SIGTERM signal to all processes except init.
  • I: Send the SIGKILL signal to all processes except init.
  • S: Sync all mounted file systems (IMPORTANT).
  • U: Remount all mounted file systems in read-only mode.
  • B: Immediately reboot the system, without un-mounting partitions or syncing.

sysrq-key.png

Check out some of the other Linux ALT+SysRq helper functions here.

Enjoy.
8510w-full-speed-fan.jpg
The fan on my HP 8510w Notebook seemed to constantly run as fast as possible at all times.  When I'm running Windows Vista, I simply ignored the fan knowing that Vista's excessive CPU usage was probably the cause of my fan speed/noise problem.  However, when I booted into Linux I noticed the fan was still rev'ing out of control, even though gkrellm reported that my CPU usage was hovering between 0 and 1%.  Additionally, gkrellm told me there was little or no disk activity at the time.  So, there was really no reason for the fan to spin at full-speed.  I dug into it a little more and discovered a "Fan always on while on AC Power" option in the BIOS settings (as shown in the screen shot).  On my 8510w, this option was set to "Enable".  Therefore, anytime my laptop was plugged into a docking station or A/C power adapter, the fan would constantly spin at full-speed.  I disabled this setting, and the fan noise from my notebook is now more acceptable.

I don't know if this BIOS setting exists on notebooks other than the HP 8510w, but you can check.
Thumbnail image for apache.gifAgainst my better judgment, I've decided to publicly publish my latest kolich.com referrer log data for Oct 2008 through Jan 2009.  You can find my full referrer log here.  However, before I published it, I took some time to crawl through the log and remove all obvious referrer spam.  Many system administrators blindly publish complete referrer logs without stripping out the spam; this is bad, and only helps perpetuate the evil and ongoing referrer spam cycle.  Even after I stripped out the referrer spam, I still found a few very interesting log entries ...
rss-logo.jpgParsing an RSS feed can be tricky.  Your code has to gracefully handle all sorts of strange corner cases; everything from malformed XML to an unexpected byte sequence in the feed prolog.  I recently worked on a problem that dealt with the latter: I was trying to parse an RSS feed in Java, and kept hitting an org.xml.sax.SAXParseException: Content is not allowed in prolog.  The prolog is anything before the opening <?xml tag at the start of the feed.  I dug into it a little further, and discovered that many UTF-8 encoded files include a three-byte UTF-8 Byte-order mark.  When dealing with a UTF-8 encoded RSS feed, this three-byte pattern (0xEF 0xBB 0xBF) in the prolog can cause all sorts of interesting XML parsing problems, including a SAXParseException: Content is not allowed in prolog.  The solution is to use a quick-and-dirty regular expression to cleanup the XML prolog before feeding it into a parser ... continue reading for the details.
add-this-button-shot.png
You may be familiar with the AddThis sharing button found on many blogs and sites across the web.  Essentially, you click the widget and you're presented with a list of social bookmarking services that allow you to share URL's with your friends (assuming you and your friends are members of the specific service you're using to share links).  This widget is neat, but I wanted to make my own bookmark sharing widget; and I did.  In the far right column of my blog, notice a list of icons and social bookmarking services.  Yes, that's my widget; probably not as elegant as the AddThis widget, but it gets the job done.  I implemented this because I wanted to bush up on CSS Sprites and jQuery.  Plus, I didn't want my blog to be dependent on AddThis ...

Twitter (@markkolich)

Translate

About this Archive

This page is an archive of entries from February 2009 listed from newest to oldest.

January 2009 is the previous archive.

March 2009 is the next archive.

Find recent content on the main index or look in the archives to find all content.