Category Archives: Tech

Technology, gadgets, software, and the industry around them.

Horde of Projects and Matrix

The Horde Project really has a lot of applications under its reign. In my opinion it’s by far the best web email client out there, but Kronolith, Jonah, and Gollem look really good. There should be a directory of high quality free PHP scripts. I’ve started using the Task application to track things I’m doing and should be doing, though the interface is a litle clunky. Something small and simple might be more in order.

Speaking of websites that should exist, Josh picked up This is the Matrix.net yesterday. Hopefully something cool will come out of it. 🙂

Take the —— Pill

If you would like to see the new Matrix with me and a few others tomorrow, here’s what you do.

  1. Go to Fandango.
  2. Enter your Houston zip code. (77035 works for me.)
  3. Choose the 10:20 showing at “Edwards Houston Marq*e 23 & IMAX.”
  4. Buy tickets.
  5. Call, email, or comment, and I’ll tell you where we’re meeting up and such.

I can’t wait. In others news Tantek recommended a number of books to me (some of which he’s posted about) and I’ve started it out with Neuromance and I haven’t been able to put it down. Finishing it tonight. Thanks for the recommendations! (To the certain person who has seen Reloaded already, shhhhhhhh.)

A Minor Fix

Many thanks to Mr Zeldman for sharing the random image script I put together. (Twice in about a week, I’m starting to blush.) Shortly afterwords Charles Dietlein (who also has one) dropped an email suggesting that I seed the random number picker for users of old PHP distributions. Done, and thank you for the heads up. I still believe that letting the web server do the grunt work is the most elegant method available.

I have received several questions asking how the individual images may be cached but it still “rotates” on every reload. Well, it’s all in HTTP. The response from the PHP script is never cached because it sends a 302 Temporary Redirect header, which by specification should not be cached by the browser or caching servers. The images themselves, once served, are just like any other static file, and they are server with Etags and Last-Modified headers that allows a browser to check later if anything has changed. If the browser receives a 304 Not Changed header in response, it knows it can go on its merry way and return the image from cache. There you have it.

I had to go back and edit this post because I was dropping in and out of the editorial we. What you read really influences how you write.

A Better Image Rotator

The Hiveware Image Rotator, shared by Mr Zeldman, does one thing and does it fairly well: it shows a random image on each reload. However, the approach the script takes is slightly flawed, and could be improved as detailed below.

My first issue with the script is that it is really only set up to handle two types of files, GIF and JPEG, and then only with the file extensions of .gif or .jpg, so something like .jpeg (fairly common) would not be included. Not to mention the noble PNG is left out entirely. Fixing this, however, leads us to a more fundamental problem: the images are served through the script. This means that the script has to handle the content-type header, something that is messy to do. A better method, I propose, is for the script to merely serve a temporary redirect header, which sends the browser with a minimum of overhead to the actual location of the file, which has a number of tangential benefits including that it allows the image itself to be cached properly, either by a caching server or the browser itself, and it delegates content negotiation and such to the web server, which is most likely infinitely better at it.

So now what we have a script which reads files in a directory, grabs the ones with a user defined set of file extensions, and sends a simple Location header to whichever file is randomly chosen. The complication now that the location of the image is now important in terms of the web server document root. One bonus of Dan Benjamin’s method is you can use images outside of the web root, though I don’t know why anyone would want to do this. The script could ask for two variables to be defined, the absolute path to the images and the path to the images through the web server, but I would like for this to be as ridiculously easy to setup as possible. Another option would be to subtract the $DOCUMENT_ROOT variable from the absolute path given and use that, but that would require people to know the absolute path of the directory they’re using, and like I said I’d like this to be easy as humanly possible. The best solution is to use a relative path; if the users enters nothing it’s assumed that the images are in the same directory as the script but if they aren’t the path can be entered in a relative manner, like “images/random” or “../rand-img”. Easy peasy.

Finally, instead of the plain rand() we’ll use mt_rand, which is about four times faster and slightly more random. What do you get? The Photo Matt Random Image Script. I’ve tested it thoroughly, but if you have any problems don’t hesitate to let me know. It’s just standard HTTP though so I don’t foresee any trouble. Something neat about this is that with the code we just wrote, you can also serve random anything—from zip files to MP3s—just by changing the extension line. Enjoy! Here’s an example of it in action, you should recognize some of the images as the delightful graphics Jeffrey has been putting up, the rest are snips of photographs I haven’t uploaded yet.

A Random Image

Call Me Speedy

Well the 512MB of DDR333 memory I ordered came in today, and so now I’m up to 768MB, which is quite nice. I feel like my applications can breath again. Even more importantly I upgraded the 900MHz processor that was in there on accident to a Athlon XP 1600, and it’s making a huge difference. My desktop is starting to feel like a real work environment again.

In other news, we’re going on 3 weeks since they took my laptop, and it’s really starting to get to me. I really could have used it to keep up with things these last few weeks, which incidentally have been my busiest in a long, long time. I had my next to last final today, and I was really ecstatic afterward. Knowing there is just one more (on Thursday) is a great feeling, and I can’t wait for summer to finally get started.

It’s going to be a summer of road trips, beaches, tans, jogging, and some very cool web stuff.

Blogroll Updated

The blogroll on the menu has been seperated into Pingers and Non-Pingers. People under “Updated” ping Weblogs.com when they update and float to the top of the list, which I check umpteen times a day. Those on the other list ping very inconsistently, or not at all, so I just check them every now and then to see if anything new is going on. If you’re on one list and think you should be on the other, let me know because there’s probably a problem with the URL I have for you not matching whatever you ping with. I also came up with a much, much simpler way to parse blogrolling lists into semantic lists, and I’ll update the script and article accordingly later this week when I have more time.

New What’s Playing

This plugin looks like exactly what I’ve been searching for. Right now I use one called DoSomething to ping a URL that inserts the data into a database, presumably so I can do something with all that juicy data later. (Right now it has over 9000 rows.) However my current plugin has a lot of drawbacks, mostly that it won’t read any data from ID3v2 tags and doesn’t work with Winamp 3, neither of which are a problem with this newer plugin. So this is mostly so I can find it later, as while I’d like to install this, figure out the POST variables, update my ping script, and come up with some novel ways to parse all the data I have, there are a thousand things I need to do first. I can’t recall ever being this busy. Hat tip: Dougal.

Saturday Night

Well yesterday night turned out very well, as I got a chance to hang with Sarah for a bit. Then I met up with Rachel and Arizona (Arida?) at Brasil’s for some liquid refreshment. They had italian sodas, I had hot chocolate. Then we rented 40 Days 40 Nights from Blockbuster which we watched in Rachel’s dorm. It was a hoot, like I remembered. It’s also need because the main character is named Matt, is Catholic, and does web design! What are the chances?

The night called for some food again, so off to IHOP it was. You see the most interesting characters at IHOP when the clubs are getting out, especially the one on 59.

After that it was back to the dorm for a Chris Rock song, which was quite funny. Rachel also showed me local file-sharing that she uses at Rice which is quite nice. It makes sense that those connections would be much faster than anything going over the internet would be. The other cool thing that Rachel had was a XM radio in her car. I don’t know if I’m crazy about the $10 a month price tag, but some of the stations were very cool. What’s funny though is that we ended up listening to a CD anyway :). Finally we watched the Kevin Smith classic Jay and Silent Bob Strike Back, which was also as funny as I remembered it.

Hardware Rant

The problem with too many modern day manufacturers is that they’re too concerned with selling the whole package. I for one would be more than happy to buy a nicely designed laptop from say, Sony, sans an operating system, free internet from AOL or MSN, an office suite, and any other fluff that I’m convinced accounts for several hundred dollars in final cost. In addition, I would like the option to buy a laptop without a hard drive or memory, because from the manufacturer it’s going to be overpriced and I’ll probably upgrade it anyway. Why should I have to pay twice for things like a hard drive or Windows XP when I already own what I need? There are of course a number of third party manufacturers from which I could buy just a laptop shell, or something equivalent, but their design is laughable. I don’t need to give my Mac friends another reason to laugh at me ;).

First Final

I got my first final out of the way, only three more to go. I’m right now enjoying the broadband at a nice internet café called “Get Internet Café” or something like that. The salad was great, but I must get back to work now. Wish me luck!

Houston, We Have a Problem

Well, who would have thought that installing a keyboard and mouse could be so difficult. After my first few words, and using the mouse just long enough to start to really like it, everything has crashed and burned. One of the questions burning in my mind was if I could use the keyboard a,nd mouse with my existing Bluetooth dongle, partly because I don’t want to have to carry anything extra around and mostly because the “laptop adapter” for the Microsoft Bluetooth receiver sticks out from the laptop at least 4 inches. I plugged my old dongle in, and nothing special happened. Not surprisingly, the Bluetooth keyboard and mouse stopped working. I went into the Bluetooth software that came with the dongle to see if I could “discover” them and pair them somehow so they would work. The good news is that it was able to detect both the keyboard and the mouse. The bad news is it had no idea what to do with them. Any attempt to discover their services turned up blank.

I should have known that the operative word when dealing with Microsoft is “proprietary.” I wasn’t entirely dismayed though, I was ready to stomach carrying around the ridiculously long MS Bluetooth dongle just to be able to use the very cool Explorer Mouse; I like buttons and this mouse had them in buckets. But being able to dial up to the internet through my cell phone (T68) using Bluetooth is even more of a must, so I decided to try that with the ugly Microsoft Bluetooth adapter. It worked, beautifully. Many times when dealing with the current Bluetooth software implementations I’ve felt like it was back to the old Windows 3 days, when the interfaces were clunky, buggy, unresponsive, and ugly. The wizard that set the phone up was elegant and felt like a real part of the operating system. In fact it was apparently, but we’ll get to that in a minute.

Anyway the phone works just fine with the MS adapter, however I couldn’t get it to talk to either the mouse or keyboard now. I thought maybe this is just a software glitch, so I went through all the regular motions. Reboot, retry, un-install, reboot, reinstall, reboot, try again, uninstall other Bluetooth software, reboot, try again, reinstall, smash mouse to smithereens against head. Okay, I made that last one up, but I did all of the others, perhaps more than listed. At this point I was thinking it must be a simple hardware issue, so I changed the batteries in both devices to fresh ones that I was sure worked, and tried again. Still no go, it simply wouldn’t detect either of the devices.

Having isolated nearly every variable I could think of, I decided to try it all out on my desktop. So I went through the first step of installing the software, and it tells me that for it to work it has to have Windows XP Service Pack 1 installed. Life is too short.

As a last ditch attempt, I decided to try and pair either of the devices with my phone. I think the keyboard might have paired, even though it probably wouldn’t have worked anyway, but I’ll never know because of the proprietary and non-standard way which the keyboard and mouse pair works only with the Microsoft software. Which only works on Windows. The latest version. With the latest Service Pack. (Did I mention it un-installed the special software for my touchpad on the laptop?)

What I suspect happened is something about the way the old non-Microsoft Bluetooth adapter tried to interface with the devices messed something up, and that is what’s causing them to not work. But at this point I really don’t care.

Maybe Logitech will come out with something nice to counter this, and maybe then I’ll try it, but right now I can only think of disadvantages to using Bluetooth HIDs, such as no current BIOS supports it, it tricky, it takes up two of your seven possible Bluetooth devices, doesn’t offer anything extra, the range isn’t worth it. Also on the range note with my Logitech Cordless mouse (the original model) I was able to walk all the way across the house into the garage, and it would still move the mouse on the screen, but I think that may have been an anomaly. Still, how far do you need to go?

So I have packed everything up from the batteries to the cruddy documentation, and tomorrow I will attempt to get store credit and buy something that actually works. Oh joy.

New Altavista

So speaking of companies struggling for relevancy, Altavista has redesigned. I hesitate to call it that though, because it’s actually become uglier than I could have imagined. They have no excuse, and I shudder to think how much money that may have been spent on what is quite possible the most aesthetically unattractive “major” site I’ve seen. It’s like they’re trying to do simple, but fail badly. Warning: Altavista link NSWE.

Update: This article at Wired talks about the design, but I think it gives Altavista way too much credit for it’s current efforts. They used to be my favorite search engine too, but that doesn’t mean they were that good at it. They were simply the best there was at the time. I remember routinely going 8-10 pages into results to find what I needed. They tout a more frequently updated index as one of their improvements, but the fact of the matter that the index doesn’t really matter, it’s putting the “good stuff” on top, on the first page, which Google does very well. Don’t buy the hype.

Macromedia Contribute

Macromedia has announced Contribute, which they look to be positioning as an editor for the mases. Everyone who has attempted to architect a client editable web page runs in to this problem early on. Either you just have them put in raw text, and maybe do a little fancy formatting to make it readable, or you invent your own “simplified” markup language, like many bulletin boards offer, or finally you just try and teach them HTML and hope that a missing end tag doesn’t turn your entire design into a link, or some other catastrophe. Taking a more robust approach to this problem are the editors which take HTML in a text field and put a WYSIWYG editor on top of this. Internet Exploder has a version of this integrated, but it gives such ugly code that it has been known to break mirrors. Mozilla (the meat behind the new Netscape) has a much more promising version which generates better code, but still has a lot of bugs to be worked out; I know because this is the solution I used for a recent client. There are also products like Editize which are quite nice.

It looks like Macromedia is trying to target the medium to large website developers who are tired of doing trivial updates and the managers who don’t want to go through said developers whenever they want to change text of some sort. Let’s say that this is implemented throughout an entire company, is that a good thing? I would say that just because everyone can have a voice on the company website, doesn’t mean they should. Also I’m suspicious of any product that says it’s “easy as Word.” The pricing point of this product and more importantly how it interfaces with the server will ultimately tell if this product is going to be the next big thing, a product as big as its vision.

Tweak Tweak

Well a little bird whispered in my ear that Google was starting its monthly crawl again, the major one, not just the update one, and so I thought it would be a good opportunity to tweak some of the more egregious errors on this site. The URL system throughout the site is now more consistent, and the header stuff has been optimized a bit. TODO: fix login system, jazzquotes, add “new photos” thing, update MTCurly.

Palm Tungsten-T Released

Well, just minutes ago Palm officially released their new Tungsten T product. They really need to start coming up with better names for these things. This is bad, and Zire? What’s up with that? Anyway this unit looks quite good, it has everything Palm has been lacking for so long:

  • Sliding graffiti area, so it should be pretty small.
  • Voice recording and playback, which has been missing for far too long on the PalmOS platform
  • High resolution screen (320×320), Sony has had this for ages. Again, long overdue.
  • Bluetooth, this is a big deal, and a first in the PalmOS market. Finally, innovation!
  • Multimedia Card and Secure Digital expansion slots. Groovy.
  • OS5: evolutionary, not revolutionary.

What’s going to decide how this unit does in the market is how Palm markets this, and how the well the form-factor and screen is received. Most people don’t admit it, but the feel of a handheld is really the one of the biggest factors in making their decision. That’s why people think the Treo looks funny but love it once they hold it in their hand. Palm hasn’t been very consistent as far as screen quality goes, so I’d really like to see how this one looks, and how it compares to the ones Sony is putting out. The only real flaw I see with this unit’s specs is that it has the headphone jack and hardware to play MP3s, but it says “separate

Hopefully this will be the unit that keeps Palm afloat and reasserts the PalmOS over PocketPCs. There is really no reason to buy a PocketPC anymore: not for speed (try actually doing something on that faster processor), not for multimedia, not for working with Office documents, and certainly not for the price. If you did somehow end up with a PocketPC through some twist of fate, do yourself a favor and put GNU/Linux on it.

Update: There in a nice review on Infosync by Larry Garfield, an old PalmStation buddy, where he covers pretty much everything I was worried about, including the screen. His review is very favorable. Palm Infocenter as a pretty detailed announcement with some good discussion. PDA Buzz has hands-on reviews from a number of people who have one already. Brighthand also has a new review up, but I’m hesitant to recommend them because their design looks a little too familiar.

Font for Code Editing

I’ve been looking for a nice monospaced font to replace Courier New in my code editing programs. Several people suggested Andale Mono, so I decided to check it out. Unfortunately, I don’t have it on any of my machine, so I decided to hit up Google to see where it would be available. I went on a goose chase through MyFonts that led me to a dead end when I saw that Andale Mono was part of Microsoft’s TrueType core fonts for the web, which were available for free, but now aren’t offered for download from Microsoft. However, it looks like the original license the fonts were released under is broad enough to allow third parties to continue to offer the fonts for download, which led me to the Core Fonts Sourceforge project which on their download page had exactly what I needed. Ahhhhh.

However my search is far from over, in the larger sense. Andale Mono is working out great so far, but I’m not sure if I like the feel of it yet, and so I’m going to test out some commercial fonts to see if any of them suit me better. I’ll post the final decision once I make it.

Let It Be

This site looks different in different browsers; that should be a given. All I can do is offer the HTML up to the world and let people take it from there. Now I do some testing in different browsers mostly because I use a number of browsers normally, however on this site I write the code for the code itself, not with the presentation quirks of any particular browser in mind. That said, I think the overall design looks better in Mozilla than it does in Internet Explorer, which is funny because IE is what I used the entire time I was putting this site together, even though I coded some things into the CSS I knew IE didn’t support (yet). Speaking of which, is anyone else perturbed that with IE6’s service pack they didn’t fix any of the CSS bugs? I guess they’re doing all they can to keep up with security venerabilities. Back to the topic, if you haven’t tried this site out with Moz or one of its derivatives yet, give it a run, if just to see what things are intended to look like, and will look like whenever IE gets the act together. The reason this all comes up is I’m bopping so much to this Daoist groove that it is really painful to go back to commercial projects where I spend thrice as much time tweaking things in 5 different browsers on half as many platforms then I do on the actual design, which is not right. Now it’s a skill like any other, and I consider myself pretty good at it, but I hate it. It’s not what the web is about.

I’m Wired

Have you ever looked at your server logs and gone “Whoa s—“? Neither have I, but there has been a considerable spike in traffic from this article on Wired.com. The article deals with Apple’s viral marketing where they include a number of stickers or decals with every new Mac sold. The article is worth reading but if you’d like you can skip straight to the picture. I’d like to offer an extended caption: I’m sad to say that it is not my car, currently my car has a jazz sticker, a Free the Mouse! sticker, and a Redhat hat sticker. The picture was actually taken at my constant hangout House of Pies on Shepard, where I was eating with Julie, Rachel, and Josh. (Pictures) The car with that sticker was parked right outside of our window and my mind immediately went to my friend Alex who is an Apple enthusist, and how much he’d like it. So I snapped a picture (actually two) through the window. Leander Kahney found the picture through a Google search I mentioned recently. And there you have it. I just noticed that a thumbnail of the picture is on the front page!