Php

Henri Bergius has incorporated code from my Weblog Pinger Library for PHP into the Midgard Content Management System. This represents a Sally Field moment for me, the first time that any code I've written has made its way into another project thanks to an open source license. I'm going to celebrate my increased geek cred by buying something like this. ... (read more)

Changing Weblog Software is Drudge Work

I just finished moving the Drudge Retort from Movable Type to Wordzilla, my PHP/MySQL software that runs Workbench, giving all 14,400 weblog entries and 233,000 user comments a new home. The project took 10 days, around eight more than I expected. The Retort is emulating Daily Kos by giving site visitors the tools to create their own blogs. I'm going to choose interesting user blog entries for the main page and home page to run alongside my own blog entries -- I've always wanted to give the ... (read more)

Let's Put Everything on the Table

Of all the insults I received for popesquatting, the ones that stung the most were about my web skills, such as this comment on MetaFilter: Eh, his website needs work. The text overflows the white box and he must've used the nowrap attribute as there is a hideous amount of rightwards scrolling. pls fix ur website b4 u sho it to teh whirled, pls ok tks. Ouch. F U 2. I like three-column designs, so I lay out my sites with HTML tables, often putting ads in the rightmost column. This lends itself ... (read more)

Weblog Comments Near and Far Out

I'm coding this weblog myself in PHP and MySQL, writing software that I will eventually release under the name Wordzilla. A new recent comments sidebar on Workbench makes it easier to follow active discussions on old weblog entries. Running a weblog with open comments attracts some unusual discussions when people using a search engine find familiar names in an old entry. For two years, Workbench has hosted an ongoing soap opera between the current and former spouses of Atlanta ... (read more)

Extended Pings in Weblog Pinger

RSS support was added to Weblogs.Com this morning, making it possible to send an extended ping message to the service that includes the address of a site's RSS feed. This will make it easier for services that are built atop Weblogs.Com, such as Technorati and GigaDial, to incorporate RSS feeds. I have extended my pinger to support this new feature. Weblog-Pinger, an open source class library for PHP, can send update notification pings over five XML-RPC services that monitor new weblog content. ... (read more)

Server Attacked at Random

My server has been under attack for three days by a user in Colorado who requested the same URL 8.3 million times (and counting). The user, making simultaneous connections from eight IP addresses in a block controlled by Time Warner Telecom, requested a URL on URouLette that redirects to a random web site -- as many as 30 requests a second to a PHP script that made a MySQL database connection. I'm guessing the motive was to acquire web addresses for e-mail harvesting or some other form of net ... (read more)

Podcast Support in Weblog Pinger

I have updated Weblog-Pinger, a weblog update notification class library for PHP, to support podcasting. When a new weblog entry contains an audio enclosure, you can ping Audio.Weblogs.Com, which in turn notifies a lot of services that monitor the site, such as the podcast directory GigaDial. One gotcha for anyone else working on Audio.Weblogs.Com notification: the site's XML-RPC server is at audiorpc.weblogs.com, not audio.weblogs.com, which I finally discovered when I read the documentation. ... (read more)

Weblog Update Notification in PHP

With help from Dave Sifry of Technorati, I have released Weblog_Pinger, a weblog notification class library for PHP that sends update pings over XML-RPC to services such as Weblogs.Com, Blo.gs, Ping-o-Matic and Technorati. The code has been released as open source under the GNU General Public License. Dave's going to be writing about this code on the Technorati Developers Wiki, which has an extensive section devoted to how to ping the site with weblogging software. ... (read more)

Thinking Outside the Box

Although I have been touting the new autoboxing and unboxing feature in Java 2 version 5, I didn't realize how far the language is willing to go with these automatic conversions. The following code doesn't work in version 4: public void setDeposit(Float deposit) {   if (deposit >= 0) {     this.deposit = deposit;   } } You can't use a comparison operator like ">" to compare a Float object and a float value -- an "incompatible types" error indicates ... (read more)

Addressing a PHP Name Resolution Glitch

My PHP error logs have been filling up with an ominous error message: PHP Warning: main(): php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution (is your IPV6 configuration correct? If this error happens all the time, try reconfiguring PHP using --disable-ipv6 option to configure) I don't know about the low-level cause for the problem, but I've figured out why it's happening so often on my server. I had the bad habit of using URLs in include statements for local ... (read more)