Well, I got asisaid moved over to the new server, as I noted a few posts ago, but I haven't gotten much further. I made a copy of the rest of my sites last weekend, but this past week was so busy that I didn't make the switch over. Now the copy of the sites I made is outdated. sigh
I'm hoping to get OfB and company moved early this week so that posting can resume (and I can stop be billed from two web hosts). It appears that OfB operated mailing lists have quit working, so the sooner the move the better.
…are so much more trouble than USB devices.
Jim Dalrymple writes,
Piper Jaffray Senior Research Analyst, Gene Munster, on Saturday said he believes Apple sold between 600-700 thousand iPads on the first day. This includes the pre-orders that would have been coming in since March 12.
Something tells me he is likely to be right and that there is a very good chance we could see Apple's press release announcing the iPad hitting the million unit mark before the WiFi+3G version even starts to ship (hurry up already, Apple!).
The naysayers of the last few months will be backpedaling about the iPad's impending failure any time now. Twenty years down the road, I think the iPad will be remembered as the device that finally pried people away from the desktop computer user interface model pioneered in 1984 by the Apple Macintosh.
The iPad will define the tertium quid between the PDA/phone and the PC that has been trying to appear since the ill fated Network Computers of the 1990's.
Ars Technica's Ken Fisher has a thoughtful piece on how ad blocking is killing high quality web sites.
If you read a site and care about its well being, then you should not block ads (or you subscribe to sites like Ars that offer ads-free versions of the site). If a site has advertising you don't agree with, don't go there. I think it is far better to vote with page views than to show up and consume resources without giving anything in return.
Fisher offers concise and truthful responses to some of the common defenses for blocking ads. For example,
Invariably someone always pops into a discussion like this and brings up some analogy with television advertising, radio, or somesuch. It is not in any way the same; advertisers in those mediums are paying for potential to reach audiences, and not for results. […] On the Internet everything is 100% trackable and is billed and sold as such. Comparing a website to TiVo is comparing apples to asparagus. And anyway, my point still stands: if you like this site you shouldn't block ads. (Emphasis is mine.)
[HT: John Gruber]
One thing I often enjoy doing during the summer is tinkering with my long time coding project SAFARI, the system that powers asisaid and numerous other sites I've designed. Other than pragmatic, urgent changes here and there, I rarely have time to mess with it during the academic year, and while I by no means enjoy programming enough that I would want it to be my “day job,” I do enjoy the change of pace. To that end, over the last three summers, I've been modernizing SAFARI's code base, slowly removing dead code — some of which has been non-functional for the better part of a decade — and adding little features here and there.
Today I undertook cleaning out a lot of dead code from the component that puts together the lists of posts such as you find on the front page of this blog. That particular component probably has some of the messiest code of the entire program and, worse, a few parts still depend on an otherwise retired old theming system I replaced during the summer of 2010. I have been wanting to eliminate that dependency so that I can be completely rid of the inefficient old theming system and stick to the much cleaner, object oriented one I put together two years ago. As part of that, I needed to rewrite the subroutine that lists recently commented upon posts. Previously, that subroutine required several different SQL queries to list those posts, but I wanted to get it down to just one, more efficient query.
To accomplish this, I not only had to unleash my old friend “JOIN,” but also played around with non-JOIN subqueries. The result is not beautiful, but it allows me to get the data I need using just one SQL query:
SELECT uninet_articles.*, UNIX_TIMESTAMP(uninet_articles.gmt), uninet_comments.commentcount, uninet_comments.lastposter, UNIX_TIMESTAMP(uninet_comments.maxgmt) FROM uninet_articles RIGHT JOIN (SELECT aid, (SELECT poster FROM uninet_comments AS a WHERE b.aid = a.aid ORDER BY gmt DESC LIMIT 1) as lastposter, COUNT AS commentcount, MAX AS maxgmt FROM uninet_comments AS b GROUP BY aid ORDER BY maxgmt DESC LIMIT 10) AS uninet_comments ON uninet_articles.aid = uninet_comments.aid LIMIT 10
If any of my SQL inclined friends have suggestions for making the query more efficient, they certainly would be welcomed.
SCO, who was Caldera, who bought SCO (confused?), has decided that it has received over $1 billion in damages from IBM and now wants Big Blue to show the money. It seems to me that this is just a wild last ditched effort by a has-been Linux distributor (at one point, Caldera was the second largest distributor) to make some money. You can read my entire thoughts on this at Open for Business.
A cell phone, rather obviously, should be one of the germiest things we use. Between times we pull out our phones, we touch door handles, shake hands and so on. Now some inventive folks are trying to create a special UV sanitizer just for cell phones. The nifty thing is that this device avoids making UV sanitation an extra step by combining cleaning and charging into one process. Intriguing.
From the site:
Wired put it best when they said, “The irradiated warmth of a cellphone's interior is a vile, germ-infested bath loaded with more pathogens than any surface in your home.” The difference from your cell phone and everything else around you is that your cell phones is a safe-haven for bacteria. Their warmth allows bacteria to continue to live and to continue to reproduce!
The inventors have set their Kickstarter fundraising goal at $18,000 for production to begin.
As longtime readers of asisaid know, this blog — and my other sites — run a custom content management system called SAFARI that I started writing way back in 1999. For a long time, SAFARI evaded spam comments simply because most spammers targeted WordPress and other vastly more common CMSes. However, at some point in the mid-2010’s as I started serving as a pastor and professor, this blog went into something of a hibernation and the spammers went crazy with it. I later implemented more serious anti-spam measures, but there were already thousands of junk comments to deal with. I recently realized that my panicked hacking away at the comments back then wiped out nearly 4,000 early comments to the blog that were not spam.
I wanted to restore them from a backup I dug up, but since more comments have been posted since then, the unique id number given to each comment had been given away to other comments. The database table that stores the comments is set to auto-increment the ids, so I could remove the ids from the backed up comments before restoring them, but the result bugged me: older comments that were restored had higher id numbers than the newer comments. It didn’t ruin the function, but it bugged me.
So, I looked for a way to regenerate the unique ids and to do so in chronological order. I combined several of the answers on this Stack Overflow page to achieve the desired result:
SET @count = 0; ALTER TABLE `uninet_comments` DROP `cid`; ALTER TABLE `uninet_comments` ADD `cid` int UNSIGNED NOT NULL FIRST; UPDATE `uninet_comments` SET `uninet_comments`.`cid` = @count:= @count + 1 ORDER BY `gmt` ASC; ALTER TABLE `uninet_comments` ADD PRIMARY KEY(`cid`);
I figured I would share the queries I used in case anyone else needs to accomplish the same thing on a database.
The spam situation is getting worse. Thousands of spams now find their way into the mailboxes on my server each and every day. Each client of mine receives SpamAssassin, a tool that helps filter those messages out of the main inbox, but the messages keep coming. Bandwidth is still wasted and spammers realize that the messages are being delivered (at least, by most appearances).
I'm thinking about adding SMTP-level filtering that would follow blacklists and block mail accordingly from known spammers. Presuming I'd do this, I'd try to go with the list(s) that seemed to have the least amount of false positives. However, anytime one uses a blacklist some legitimate traffic may be blocked.
Now, some of you who read my blog are hosted by ServerForest, at least a few others have inquired about my services and virtually all of you have some kind of web hosting account. Here's the question: does you present server (if you aren't on my server) use blacklisting and if so, how do you like it? If you aren't presently on a server with blacklisting, do you wish you were? Would you object to being on one with blacklisting? Would it change your view positively/negatively concerning ServerForest if we used blacklists?
Sorry to use y'all as a focus group, but I figured I should confront this issue, and I knew I'd get some good opinions on my blog. I've actually received a request from one client to implement this, and I was sort of thinking about it anyway.
In other news, I need to implement a password protected section to this blog. There are some interesting server security-related things I'd like to post about, but for the obvious reasons, it is advantageous not to post such publicly. Maybe I'll do that in a few weeks.
Last week, Apple's Free Software implementation of Rendezvous for POSIX systems was updated. Despite getting some coverage from the GNU/Linux community, do we continue to face a landscape where distributors ignore this great technology as most of them have in the past? Read my take on Rendezvous and its importance to GNU/Linux on the desktop at OfB.