Archive for category Geekiness

The Horseshoe Crab

Here’s something I didn’t know until recently: Pharmaceutical companies rely heavily on horseshoe crab blood to ensure that their products are bacteria free.

Horseshoe Crab

Here’s some other interesting things I learned:

1) Their blood is pale yellow or white and turns blue when exposed to air.

2) A single crab can be worth $2,500 over its lifetime for periodic blood extraction.

3) Although kind of freaky looking, they’re completely harmless to humans.

4) Horseshoe crabs possess the rare ability to regrow lost limbs.

5) Although not yet an endangered creature, horseshoe crab populations are declining.

Here’s the Wikipedia article, a neat article on the medical uses, and a nice general information site.



Color me High-Def

Well, the high-def video format war is over. Blu-ray is the winner. With Toshiba and now Microsoft pulling out from supporting HD-DVD, we can finally feel at ease buying a video player. Interestingly, the DAY of the announcement from Toshiba (February 19) I got an email offering me a $89 HD-DVD player with 7 free titles! Someone’s triyng to clear some stock… I’m glad to see the format resolved and looking forward to my Blu-ray purchase (coming soon!).

Anyone out there reading this purchased a Blu-ray player yet? If so, any details — recommendations? I’m considering getting a Playstation 3 and using the built-in Blu-ray player on that. We’ll see though. Currently the electronic focus at our house is on my wife’s brand new, high-tech, sewing/embroidery machine. It’s pretty spiffy and can create some high-def embroidery patterns with ease!

, ,

No Comments


Well, my wife is thinking about starting up a business… There’s definitely a market and the concept makes sense to me. In the past, she had sold craft items (specifically faux sealing wax) but had been somewhat limited since she was essentially just buying in bulk and repackaging for individual sales. Not many other people were selling assorted sticks in small quantities so there was a small market. However, it’s a somewhat unusual item and it was hard since margins were so low. There were other sellers and since most of the labor was making a post on eBay with the item, it was hard to justify very much markup.

The new concept is better… Diapers, nursing accessories, and other stuff that babies excrete gross stuff on! Yes, that’s right. It’s apparently quite the thing. In addition to making them, you can also embroider and customize them! This is all very new to me, but at the same time the results are impressive. In my opinion, one of the good things about this is that it takes a professional (i.e. expensive) embroidery machine to do a good job on this. Because of this, there’s at least a somewhat high-entry into the market. We’ve now invested in that and hope to have some success.

The next step (and the really fun step) is to make a website to sell these items on. Something fairly secure and “check-out” friendly but still with a personal, small-shop feel.

I think a good name would be “Ye Olde Smelle Diaper” but the wife has other ideas… Your name ideas here! My wife promises to spend as much time considering the name that you suggest as she considered the name I suggested.


Whole Disk Encryption Insecure

Hmm… well this is kind of a blow for the security departments that have been relying on this. My “work” (notice the parentheses) laptop has whole disk encryption and it’s terrible. For some reason it usually (like 4 out of 5 times) does not ask me for my password anymore (and it really does seem random) and it takes noticeably longer to do anything on the machine (which is why I barely use it and didn’t even take it with me this trip). Now it’s revealed that it apparently doesn’t even really protect anything!

So much for “corporate security”.


No Comments

A Useful Widget At Last!

I like the idea of widgets in OS X and the way Dashboard works. However, other than the calculator I don’t find myself using them very much. But I finally found a Dashboard widget that really is handy. It’s a tool that lets you track packages from a variety of places (Amazon, UPS, FedEx, USPS, etc.). You enter the tracking tag a nice little widget is created. It will change status and will also integrate with Growl to give you notifications (so you don’t have to always look at Dashboard to notice a change).

Here’s a screenshot.


And a link to the author’s (very nice) website. Any widgets that any of my readers use and find useful?

, ,


If only I had time!




Multi-Function Printers that Work

I’ve been looking for a multi-function (print, scan, copy, fax) printer for the last few months. I’ve been really disappointed with what I’ve found.

What I want to be able to do is the following:

  • Print documents from any modern operating system across the network
  • Scan documents/pictures from an auto-document feeder or a flatbed and in some way have this data end up on whatever system on the network I want
  • Copy documents/pictures by standing at the printer unit itself
  • Receive faxes and send faxes from anywhere on the network

I know that there are problems with some of these — specifically Scanning and Faxing. I see multiple issues with these:

  1. Storage (where does the scanned or faxed document get stored physically?)
  2. Notification (even if a fax is stored, how does a user know when it arrives?)
  3. Configuration (the above should ideally be accomplished without configuring anything on the end-systems)

I see a solution but I’ve not found a sub $1000 printer that accomplishes it. Some of the high-end “counter-top”-sized systems (that run $10,000 and above) have something similar but are usually way overblown.

  • Storage would be provided by flash memory (something as simple as 1-16GB Compact Flash card).
    • Sharing of this storage would be accomplished by using a Samba server running on an embedded Linux kernel (similar to the sort of functionality that currently exists on home routers).
    • Samba shares would be exposed to Linux, Mac, and Windows systems by using something like Avahi (or whatever the Linux version of ZeroConf is that works best at the time). Bonjour could be used on the client end if you’re running Apple to easily see these auto-configured shares but it would have to be installed specially on Windows clients.
  • Notification could be accomplished via email. If a simple SMTP setup is configured once on the printer unit itself, it could automatically route emails to a specific user, multiple users, or different groups depending on the fax number used or other variables. There are many other alternatives using things like the XMPP or even SMS for notification.
  • Configuration — as mentioned this would work like magic on a Mac and slightly less magically (and unfortunately much less beautifully) on a Windows PC. Any system on the network could access recently scanned or faxed documents or perhaps be only restricted by a username/password (heck — even tie it into an LDAP server if you’ve get centralized directory services). Basically, this largely gets rid of the need for client software other than just the printer driver itself. In reality, I’m not clear why we even need a specialized print driver when a web interface (again, hosted on the device) could likely provide any custom features (software-based maintenance, looking at the queue, etc.)

So why isn’t it out there?

, , ,

No Comments

Microsoft’s Dark Plan

I rarely quote things verbatim from elsewhere on the Internet but I found a comment in one of this morning’s Slashdot posts quite amusing…

Recently one of my friends, a computer wizard, paid me a visit. As we were talking I mentioned that I had recently installed Windows on my PC, I told him how happy I was with this operating system and showed him the Windows CD. To my astonishment and distress he threw it into my micro-wave oven and turned it on. I was upset because the CD had become precious to me, but he said: ‘Do not worry, it is unharmed.’ After a few minutes he took the CD out, gave it to me and said: ‘Take a close look at it.’ To my surprise the CD was quite cold and it seemed to have become thicker and heavier than before. At first I could not see anything, but on the inner edge of the central hole I saw an inscription, in lines finer than anything I have ever seen before. The inscription shone piercingly bright, and yet remote, as if out of a great depth:

4F6E65204F5320746F2072756C65207468656D20616C6C2C204F6E65204F5320746F 2066696E64207468656D2C0D0A4F6E65204F5320746F206272696E67207468656D20 616C6C20616E6420696E20746865206461726B6E6573732062696E64207468656D

‘I cannot read the fiery letters,’ I said.

‘No,’ he said, ‘but I can. The letters are Hex, of an ancient mode, but the language is that of Microsoft, which I shall not utter here. But in common English this is what it says:’

One OS to rule them all, One OS to find them,
One OS to bring them all and in the darkness bind them.

From Slashdot (unfortunately by an Anonymous Coward so I can’t credit the individual)

, , ,

1 Comment

Computer Science vs. Programming

There have been a few Slashdot submissions here and here. They’re concerned with an article published by two professors from NYU that assert that Java (and similar high-level languages) are damaging to teach as the “first language” of a Computer Science education. Since I wasn’t a real CS major, I’m perhaps a little outside of this discussion. However, I cut my teeth on C/C++ at school before moving on to the high-level languages (really just .NET and some very high-level languages like Ruby and Python).

I tend to agree with the conclusions. It’s not that there’s no place for Java. It’s just that without the fundamentals of pointers, memory management, and basic understanding of the construction of complex data structures which are just handed to you with Java or .NET, it’s very difficult to fully comprehend what you’re doing

I had a very good professor that taught algorithms and data structures at school and although at the time, the experience was painful, I’m sure it has helped immensely. Despite my affection for things like Ruby on Rails which is extremely high level, I’m annoyed sometimes because of the indeterminacy of functions and the vagueness of the specifications. When you write a language that can do powerful things in one line of code, you’re taking a lot of shortcuts and it can be surprising when a function returns something very unlike what you expected do the complexity of the underlying code. Basically, you ignore things like sorting algorithms entirely in favor of the “built-in” sort routine. How does it work? Well, you can dig it up in the code, but most people will simply use it and assume that it’s the fastest for all of their needs. What happens is that writing code becomes an assembling of pre-built components. It reminds me of “building” Ikea furniture. Granted it takes a certain amount of handiness to put together your new desk but you’re not gaining skills that you can use to build anything yourself without first being handed the pre-built pieces.

I tend to think of myself as primarily a Software Engineer. I’m not just a programmer because I do a lot more than write code. But I’m also not much of a Computer Scientist because I spend very little time actually attempting to improve upon techniques and mechanics of processing information. These definitions are a little vague, but I feel that Software Engineering is more what I do because I apply creativity to the process. I think one can be a Computer Scientist and a Software Engineer but I don’t think my work normally falls into both categories. I’ve always found the role of a traditional Architect to be similar to Software Engineering. It’s an application of creativity (design, color, texture, material, etc.) to a field of science (physics) that results in [hopefully] useful buildings. There are some “cutting edge” Architects that attempt new and innovative projects but most Architects are working with existing ideas and applying them creatively.

I’ve heard that Frank Lloyd Wright’s buildings although amazing in appearance and remarkable in their artistic qualities are often problematic in simple ways. Flooding basements, leaking roofs, etc. were the result of a poor implementation of a great and artistic idea. It’s not enough to be artistic and creative; a good system like a good building works and functions as it should in addition to its aesthetic qualities (which make it unique).

I’ve always seen this distinction between implementation-focused approaches and theory-focused approaches. Implementation is desirable for the production of new applications and system but will always be held back by advances in theory. It seems that Computer Science has largely lost its way in North American schools by focusing too much on implementation without teaching theory. Programmers are cheap. It doesn’t take a lot of brains to assembly code from pre-built components and creativity often is the only difference between a good programmer and a mediocre or poor programmer. Without new advances in theory, applications and systems will simply have to stand on their desirability of implementation (i.e. how easy is to use?). New ideas must be infused into the process for real advances to be made.

The use of so-called AJAX seems an interesting example. The ability to use things like the XMLHttpRequest object were available for quite some time before companies like Google began using it to do amazing things. This is entirely focused on implementation. Web 2.0 applications (whose primary distinction seems to be AJAX technology) are an innovation in implementation only. Many “hard-core” programmers find the terribly sloppy and inefficient results that often result less than satisfying. It does cool things but isn’t there a Better Way? I use AJAX quite a bit these days and it’s handy. However, I have only a bare understanding of how it works and what might be a better design. I don’t tend to concern myself with the next evolution of the Internet– I focus on building things that work with the technologies that now exist. But AJAX really isn’t a huge advance — in fact its “magic” often results in massive security holes, odd and unpredictable behavior, and hugely increased server overhead.

At the same time, a Software Engineer who truly understands the science of the code that he writes is likely to make far fewer mistakes and write much more efficient code. Even without much creativity, a programmer who can optimize code is a desirable catch for any software company. I think that everyone should understand the underlying details of code even if some end up focusing on the creative, implementation focused approach or the theoretically, algorithmic approach.

I mentioned security in regards to AJAX and this seems important. It’s well and good to provide applications that do the same things in easier ways but without a strong cadre of Computer Scientists, developing faster, more secure, and more reliable ways of doing business, we end up with applications that are never properly tested (it’s difficult to test code that just does magical things!) and never adequately secured.

A little rambling of a post — hopefully I’ve managed to convey something. Your comments welcome.

, ,


Happiness is Ruby on Rails

Ruby on Rails is such a beautiful thing… Here’s some view (presentation) code that I slapped together in about 2 minutes:

  <% Category.find(:all).each { |category| %>
    <div id=<%= category.cssid %>>
      <h2><%= category.Name %></h2>
        <% category.items.find(:all).each { |item| %>
        <li><%= item.ShortDescription %></li>
      <% } %>
  <% } %>

Basically, it let’s me easily list out categories and then items within those categories on a webpage (with per-category styling supported). It’s interleaved with HTML and produces very slick output. It just feel so natural and that’s what I love about it.

, ,

1 Comment