Category: Computers

  • Globe

    Today at work my friend Kerry and I were talking about geography and globes, which was prompted by the Yahooligans Where in the World is? game (where you see if you know your world geography), and came up with what I think would be the perfect globe: an interactive one whose outer surface is a touch-sensitive LCD screen that has all the details projected onto it from the inside. Think about it: it’s basically a spherical computer screen, so it could always be up-to-date with new political country borders—download new data to it via a USB connection to your computer—and facts about each country; a touch-sensitive surface means you could simply poke a country to get information about it, or play games on it (find the country); it could be custom color-coded; it could be animated; you could even load other planets onto it, say Mars, Jupiter, or even a fictional one. It would have to be programmable, of course, so hackers could customize the hell out of it.

    A cursory search online reveals this: The Explorer Globe from LeapFrog. It’s similar to what I’m thinking:

    Touch the interactive pen any place on this interactive, talking atlas and learn thousands of amazing facts. Compare population and land area between say Dundee, Scotland and Oaxaca, Mexico. Find out flying times between Lubbock, Texas and Kyoto, Japan. Learn fascinating facts about continents, countries, capitals, music, currency, highest points and so much more.

    There is also a “Eureka” game mode that prompts players to find geographic points of interest (giving hints along the way) before time runs out. Up to four players can play six multi-level games with this very chatty, very challenging atlas. And it isn’t just for kids either. Everyone will have fun testing their knowledge of geography and exploring the world.

    Sounds cool. Sadly, I’m pretty sure technology isn’t advanced enough yet to come up with my perfect globe. When it is, though, I want royalties.

  • PHP on .NET

    Jeff Sandquist has a pointer to a video interview with two programmers that are writing a PHP compiler for Microsoft’s .NET Framework. The name of their project is Phalanger.

    That’s cool, I guess, if you don’t mind working in .NET. I’ve been thinking for awhile that I wouldn’t mind a PHP compiler that would create standalone executables (though cross-platform, not just tied to Windows), so this is kind of a step in that direction.

    Of course, there’s already PHP-GTK which is cross-platform. And hmmm, I notice in their February news, there’s a pointer to a project called bcompiler which lets you create an exe file from a PHP-GTK app… very interesting.

    Oops, and I notice the Roadsend PHP compiler does just what I was rhapsodizing about. It appears I’m behind the times. Though the “Professional” edition (compiles to Windows, Linux and FreeBSD) costs $399 (“Personal”—Windows only—is $89).

  • Emachine freezing

    Okay, this is fun. Our two-year old eMachine keeps periodically freezing up, typically at least once a day or more, and I was hoping someone might have some ideas as to what to do about it or what’s causing it. I can’t seem to ferret out the problem, but it often seems to freeze when doing something graphic- or sound-intensive (playing games—even Flash games, or using the scanner), or when using SpyBot, for instance (though other spyware killer software runs fine). It just freezes up, non responsive, nothing gets written to the event logs or anything like that. I’ve seen it do this in normal mode and safe mode. Often after a freeze, and a hard boot, it will freeze again while booting, right after the Windows XP splash screen and before the login screen—when the mouse pointer appears on a black background.

    It’s an eMachines C2160, running XP Home SP2, with an AMD Athlon XP 2100+ chip running at 1.72 GHz, and 256 MB RAM. Some thoughts I’ve had are problems with USB (the mouse was on USB, the scanner, printer, digital camera are all plugged in), or low power issues. Needless to say, I haven’t had any luck.

    Any ideas?

  • PHP Suggest

    Over on php.net, they announced a full implementation of a search field suggestion box:

    The function list suggestions we started to test a year ago seemed to be working better as some bugs were found and fixed, so it was time to make the result available on all php.net pages.

     

    Whenever you type something into the search field, while having the function list search option selected, you will get a list of suggested functions starting with the letters you typed in. You can browse the list with the up/down keys, and you will be able to autocomplete the function name with the spacebar.

    Couple things I find interesting about this. First, it predates Google Suggest by a year (prior art that everyone heralding Google Suggest seemed not to notice); did Google get the idea from the PHP site, or is this more common?

    The second point is a bit more trivial, but I noticed when I was trying it out by typing in “date” that there are two additional PHP date functions that appeared in the list: date_sunrise() and date_sunset(). These are new to PHP 5. They take a timestamp, latitude, and longitude and return the respective time of day for sunrise or sunset. What’s interesting is that they are remarkably similar to two functions I had written well before PHP 5 came out. (“Written” is subjective, more like “adapted,” probably from a Java function somewhere.) However, from the looks of the manual, these new built-in functions only take a Unix timestamp, which limits the results to dates between 1970 and 2038, while my functions take any combination of month, day and year. The point? I just like to toot my own horn sometimes. :)

  • Crappy tech service

    Don’t bother buying a Brother printer. I helped to set up a new one today and, get this, it didn’t come with any type of interface cable. No USB, no parallel cable, nothing. It even says so on the quickstart instructions. WTF? Is that stupid or what?

    Speaking of stupid, or perhaps just stubborn, AOL apparently doesn’t get the hint that we don’t need their service, and has called us several times. Of course, I brought this on myself—when we went to San Diego, I installed AOL (the free trial) on the laptop just in case we needed to get online and didn’t have any other means of doing so. (Never needed it; we got a strong WiFi signal at my brother’s place.) AOL is sure trying to master the hard sell. When I cancelled, the guy tried to resell me on AOL something like three times, even after I had explained that I didn’t need it and already have broadband access. Must be following the “three NOs before you go” rule. They sure aren’t gaining any favor at our house.

  • PHP code rant

    This is a mini-rant on PHP that can be safely avoided by non geek types.

    This post over on PHP Everywhere caught my attention, vis-a-vis programming semantics and practice. Basically, inside a switch statement, someone placed the default block before the case blocks and was surprised when that default condition executed, and the “expected” case did not.

    Some are calling this a bug; I do not. This is the exact behavior I expect switch and default to display, and I always place any default blocks last in the statement, because that makes the most sense semantically and logically. I expect this because that’s how I learned it when learning C years ago; it’s the way the switch construct works and why it’s so fast.

    Relevant snippage from the PHP manual:

    The switch statement executes line by line (actually, statement by statement). In the beginning, no code is executed. Only when a case statement is found with a value that matches the value of the switch expression does PHP begin to execute the statements. PHP continues to execute the statements until the end of the switch block, or the first time it sees a break statement. If you don’t write a break statement at the end of a case’s statement list, PHP will go on executing the statements of the following case….

    A special case is the default case. This case matches anything that wasn’t matched by the other cases, and should be the last case statement.

    Seems pretty clear to me. I would expect PHP to immediately execute the default block as soon as it encounters it, even if this “cuts off” remaining case blocks below it. So quit complaining and write cleaner code.

    Okay, done ranting.

  • COBOL

    From Tim Bray tonight comes this amazing fact:

    There are five billion new lines of COBOL getting created every year, and there are (wait for it) 220 billion lines of COBOL in production. (Holy cow, now that I think about it, I bet I wrote ten or twenty thousand of them).

  • Blog bot roundup

    The variety is amazing: here’s a list of various agents, spiders and bots that I’ve culled from my chuggnutt.com logfiles over the last 30 days that have to do with RSS and/or blogs (specifically blogs, not just general purpose spiders like Google’s). These are only the ones I know for sure are blog or RSS related; others in my logs might be also, but aren’t obvious about it.

    Geek types, note that these strings (with wildcards mostly) can be used as-is when identifying HTTP_USER_AGENT.

    • Bloglines: The web-based feed reader/aggregator
    • kinjabot: The (currently) beta bot for the Kinja weblog directory/guide
    • Feedreader: Windows-based feed reader/aggregator
    • PubSub.com RSS reader: Another searchable, web-based aggregator
    • FeedDemon: Windows-based feed reader/aggregator
    • fastbuzz.com: Fastbuzz News is another web-based aggregator that scans news and blogs
    • ORblogs.com-bot and ORblogs-bot: The crawlers for ORBlogs which compile metadata and RSS for the aggregating site
    • SharpReader: Windows-based feed reader/aggregator
    • Technoratibot: Technorati‘s crawler
    • UniversalFeedParser: Mark Pilgrim‘s liberal feed parser which is used in a variety of RSS software
    • Feedster Crawler: Feedster’s RSS spider
    • BlogBot: I think this is Blogdex‘s crawler, but I’m not totally sure
    • BlogPulse: Yet another blog/RSS crawler and indexer
    • Slower, Friendlier Spiders (BlogShares V1.35): The spider for BlogShares, the fantasy share market for blogs
    • NITLE Blog Spider: The National Institute for Technology and Liberal Education‘s spider for their blog census
    • LocalfeedsPageCrawler
    • NusEyeFeedCrawler
  • Friendster goes PHP

    An item I saw yesterday but forgot to blog about: Friendster goes PHP. Pretty cool.

    Finally on Friday we launched a platform rearchitecture based on loose-coupling, web standards, and a move from JSP (via Tomcat) to PHP. The website doesn’t look much different, but hopefully we can now stop being a byword for unacceptably poky site performance.

    I haven’t had much of a chance yet to use Friendster to see if it truly is faster, so I can’t personally comment on that aspect. And predictably, this is going to bring all sorts of people out of the woodwork arguing over the relative merits of Java/JSP (which was old Friendster) versus PHP… just look at the comments on the link above to see it already happening. And while debate and disagreement can be healthy and productive, how about a quick reality check to everyone:

    PHP is good. Java is good. Both have their merits and disadvantages. Loudly complaining that [Java|PHP] is the only true way and the other is crap is boring and uninformed.

  • Spolsky on the Windows API

    Joel Spolsky on How Microsoft Lost the API War:

    Outside developers, who were never particularly happy with the complexity of Windows development, have defected from the Microsoft platform en-masse and are now developing for the web….

     

    Much as I hate to say it, a huge chunk of developers have long since moved to the web and refuse to move back.

    Good article. I recommend reading all of it, not just my highly selective snippets here.