Riley's making a Peanut Butter and Jelly sandwich, singing "peanut butter jelly time, peanut butter jelly time" as he spreads. I've got The Cure's "Friday I'm in Love" stuck in my head. Abby's affixing suction cupped controller nubs to the face of her iPod Touch to play Lego Harry Potter while ignoring her Cheerios.

I made my coffee this morning. This itself brings many thoughts to mind. Amazon is discontinuing their "subscribe and save" program for the 24-count boxes of K-cups we use to make coffee. They're instead offering to ship 50-count boxes, but I have to respond to their email in 11 days or I won't be able to switch my subscription. On top of that, we've changed the formula for the coffee after it's brewed: Instead of the flavored creamer we were using, I'm adding sugar-free hazelnut Monin, half-and-half, and a pack of Truvia. The box of wooden stirrers I bought is working out well to reduce the churn of spoons through the dishwasher.

My hunt for a good to-do list continues in earnest. I've not been thankful enough about people's suggestions, but I'm still trying them all. I've got 14 apps on my iPhone to track to-dos and they all have some simple failing. Too complicated, lacking a critical feature, ridiculous "imitation leather" styles, no cloud sync... I'm being picky, but I have to because after I choose, is there a way to migrate between any of these apps? No.

I've got D&D this weekend. I have the plot outlined, but I need to flesh out the parts that we'll be playing before game night. In last month's episode, players fled the Canith mine in Eberron's Mournland via flying ship, but the ship was so heavily laden with spoils that it was vulnerable to ground-based war forged reavers. They shot the ship from below with basilisk-mounted ballistas, and nearly caused it to capsize. Homunculi boarded the ship stealthily and tried to escape with a mysterious artifact recovered from the mine. Players returned to a surprisingly bustling marketplace with two missing brothers, and clues as to the direction of an errant sister. An overabundance of goods is expected to be exchanged in the market for gold and better equipment.

I transferred all of my sites to a new server last night. Slicehost has served me well, but the server I've had there for four years is showing its age. I started out with Debian Etch, and recently tried to upgrade to a newer version to get PHP5.3, among other things. While the upgrade was superficially successful, the server had started experiencing issues that required me to restart it very frequently all day yesterday. Since I can't be bothered to babysit the server all the time, it seemed like it was time to do a proper transplant. So I installed Ubuntu Maverick on a new Rackspace Cloud server and migrated everything over in one fell swoop. It was surprisingly not as painful as I expected it to be. But I'm sure there are issues lurking that I'll have to deal with in the next couple days.

This reminds me of Habari. If I've moved all of my servers off of Slicehost, Habari DNS needs to be migrated, too. And that'll coincide nicely with Habari's 0.7 release, which should be at RC3 as of this morning. I'd really like to get this out the door, since it's been much too long in coming. I suspect that 0.8 will be out very quickly after the 0.7 release, at least in relative terms (which could make, what, 8 months quick?). 0.7 has a lot of crazy giant leap improvements over 0.6. I've seen a handful of great sites being built on HEAD, and I'm enthusiastic to see what people do with the new platform.

Work progresses workfully. That's primarily what I need the to-do app for, to keep things straight. Makes me want to work on Stonepath. Makes me want to write TinyTask. Instead, I'll just write a barcamp scheduling app, since as far as I can tell, there aren't any that people have written for deployment, and that can probably be done in a couple of days.

Also this weekend is Girl Scout ice skating night, a probable trip to the tax office, and hopefully a meal or two out of the house with the family. Being cooped up indoors all week takes it's toll.

Now my coffee is over and the kids need to get on the bus.

Someone on the PANMA list recently asked about running a web server on his FiOS line. I have some thoughts.

Verizon definitely blocks incoming port 80. The only way around that is to get a business account that allows servers (opens port 80) and provides a dedicated IP address.

To serve a web site from your internal server to a remote browser, that browser must make its request on a different port than the standard port 80. In addition, you must configure your internal network so that the incoming request is routed to your server.

The router is often able to take incoming requests on a specific port (I like to use port 88 or 8080) and forward them to a computer with a specific IP address inside your internal network. Routers can often reroute that request to a different port, thus requests originating on port 88 can route to the server on your internal network on port 80. The advantage of this is that you can make normal requests of your server from inside your network without adding the port to the requests.

There are two concerns if this is what you want to attempt. First, your router must know to what computer the request should be routed. Usually if you connect a new computer to your network, DHCP simply assigns an IP address to that PC from the pool that the router makes available. This is a problem because then the server is not guaranteed to be using a specific IP address. If the router must be configured to route incoming web requests to a specific IP address, then an IP address that changes is a problem.

To mitigate this issue, you must either assign a fixed IP address to your server from the range that is outside of your DHCP range. On my network, this internal IP address is 192.168.111.68 and is fixed as my home server's IP. Alternatively, some routers allow you to always assign the same IP address to a system via DHCP by identifying its MAC address. This is often a better solution if your router allows it because it allows you to configure IP addresses entirely from your router, rather than having to assign addresses at the server.

The second concern is mapping the correct external port to the port on which the server is listening. This is usually done by configuring port mapping in the NAT table of your router. If can also be done using the DMZ, which will route all requests from the internet to a specific IP address. This can be dangerous though, since you are effectively exposing all other running services on the server to the internet.

Beyond the configuration of NAT on your router, you must determine a way to connect to the IP address of your router from outside, since the IP address assigned to your router can change at Verizon's whim. There are dynamic DNS services that can assign a domain to your IP address and change it as your network address changes. You will need either a router that supports one of these services, or some software running on your server (or one of the other PCs on your network) that can periodically update the dynamic DNS service with your network's address. This will allow you (and others) to find your network using a domain name rather than the IP address.

Note that there may be additional concerns about assigning a domain to your network IP, especially if you are using virtual hosts on your server. Also note that depending on your router and your network configuration, you may not be able to access your server using that domain name, even though it may work from outside your network.

Finally, it may be against Verizon's terms of service for you to run a server on your residential network connection. For that reason, I do not run public servers on my internal network. The servers I make available are for my own use, primarily internally on my network, or for accessing files on my PC remotely.

All of that said, if these configuration instructions don't already make sense to you, then exposing your internal network to the internet is probably a very bad idea.

Man, this week has been difficult. We've had a few server issues with work clients, and I've been playing around with my own servers, and it's just been a mess that I'm hoping will be in the past come next week. But I've learned some lessons, and I figure I might as well pass them on because people are apparently still buying hosting from really bad places.

What do I need? This is the most basic question you need to start asking yourself before you even hunt for hosts. Having some idea of your demands, both from a technical perspective and a logistical perspective can save you some pain in the future. Here are some really basic considerations:

Shared/VPS/Dedicated -- What level of hosting you choose will depend on the types of service you intend to run and the affordability of storage space. Shared hosting is for small, single, low-traffic installations, like a single blog or a low-traffic forum. VPS hosting allows you to interact with the server configuration directly, to host more complex applications and more of them. Dedicated hosting gives you full control over what runs on your system, plus often includes dedicated storage that is many times what you'd get from the other options. But there are more things to consider.

Backup -- Even if you don't get this from the same company as your host, you should consider how you're going to manage it. If you buy a dedicated box to get the 80GB drive, consider where you're going to keep backups of those 80GB. If your host offers backup, all the better, but in many cases you'll need to investigate whether that backup is on a separate box/location (useful) or on the same machine in a different drive (more often than not, useless). Don't rely on assurances that RAID will save you - in my experience RAID is more the cause of problems than the solution.

Transfer -- Be sure that the host meets your needs in terms of data transfer. One of the easiest ways to get charged extra every month is to order a plan that doesn't cover the total amount of data you're going to transfer. The best way to gauge your transfer is to look at your existing transfer usage. The next best way is to guess, but consider that if you're primarily handling photos, videos, or podcast audio, transfer is going to be more of a concern than if you're hosting only text. Also keep in mind that those transfer amounts can be reduced by using a content delivery system like Amazon S3 to store your heavy files, while keeping your site light.

Storage -- Right along with transfer, get a general estimate of how much space you're going to need for storage.

CPU -- Some CMS engines need more juice, especially when they get bigger. If you're using a shared host, there could be hundreds of other sites vying for the CPU's attention. At best, you'll get a fair slice of that CPU time and things will run at a moderate speed. At worst, your host will tell you you're using an unfair amount of CPU time and shut you down. Be aware that CMS packages like Drupal can often be ill-configured to suck down tons more CPU time than your host would like to allot you.

Support -- The oft-forgotten element. For work sites, we need phone support 24x7x365, because when one of our client's site's goes down as a result of a server problem, the only way to get it back online is via the host. If you're doing more than running your own stuff, you're going to want high availability of support staff, at least through a real-time ticket interaction system, but probably via some kind of contractual uptime and support guarantee.

What do I look for? This question is best answered by telling you what to look out for.

Overselling! -- This is the biggest thing to look out for when selecting a host. If the host you're shopping at offers 300GB of storage and a crazy multiple of that of transfer, it's more than likely that they're overselling. Basically what this means is that they take a server with 500GB of storage space on it, and fraction that out to 100 people on the assumption that you'll never use more than 5GB. And those that use a little more just eat into the share that the others on that server aren't using. If everyone on the server used their full allotment of space, the hosting company would go under trying to buy adequate storage to keep up. More likely, they'd just shut your site down citing an ambiguous violation of their terms of service. Happens all the time. Beware!

Live Chat Boxes -- Your only recourse for support should not be via a web-based chat system. In most cases, the person at the other end is fielding incoming requests from 100 other disgruntled customers, and they have their terminal set to respond to all requests with the same pat response.

Software -- Make sure that the server you get has the software you need and that the host both keeps it up to date and knows what they're talking about. For example, if your host doesn't offer PHP5, then they're probably unaware that support for PHP4 has been discontinued (as of mid February). If they do offer PHP5, make sure that then know how to configure its options. Make sure that they have configured the correct drivers for PDO. Make sure that they're running MySQL 5, not 3.x. Simple stuff to check, just call and ask. If they don't know the answer immediately, run away.

Extraneous Junk -- I see a lot of hosting advertised that offers free software or free AdWord ad units if you buy with them. Shouldn't your host be concentrating on giving its clients the best experience and not on how to beef up its affiliate numbers? It's ok if it's offered as an added value after the sale, but avoid hosts that reel you in by offering those special deals up front.

Resellers -- When I'm considering a host, I always to a tracert on their IP address to see what network they're on. You'd be surprised how many "hosting companies" are really some guy renting a dedicated server from someone else and reselling the space. There's nothing wrong with this per se, because they can offer added value if the server is otherwise unmanaged, but if something happens to the physical server, you might be waiting a while for his upstream support to respond.

Control Panels -- Beware when choosing a control panel. Some panels lock you in to certain configurations of software. For example, updating PHP on a server that runs Plesk can be tricky and often ends in violence. CPanel servers often run old versions of Apache, and can't support subversion hosting. Be aware that using a control panel may limit your ability to configure your server manually later, especially if you're using a shared host, where your hosting company will be even less inclined to upgrade things when it affects all clients on the server.

Managed vs unmanaged -- This really only comes into play when you are shopping for a VPS or dedicated box, but essentially if your server is managed - that is, if you're paying for managed service - then you should have a hotline to someone who will do things like install upgrades, hard power reboot, and swap out bad memory. If you pay for managed hosting and they won't install software for you, then you're paying 10 times over what you're actually receiving.

I can tell I'm missing things from this list, but hopefully I'll come back and update it as I think of them. There are so many little questions you can ask that might be important.

It might be helpful to you to tell you what hosts I use. As far as shared hosting, I've come to the conclusion that the big guys are the love/hate of the hosting world. They work great up until they don't. When they stop working great, it's time to move up to a VPS. That said, I have hosting at both Site 5 and Dreamhost. I like Site 5 a little better because their admin is cleaner and their database servers don't feel like their across town from the web server.

In terms of VPS hosting, I lean toward low-support unmanaged hosting, meaning I can't really call anyone when something goes wrong. Nonetheless, I've had interactions with the support folks at both of my primary VPS sites via email and ticket systems, and they're very responsive. Plus, there's been very few reasons to even contact them for tech support, which is much better than other hosts I've been on who go down for no reason and then become mysteriously unavailable to contact. I use Slicehost and VPSLink for VPS hosting, and am very happy with both.

For dedicated hosting, when I was on it, I was very happy with ev1, who have now become part of The Planet. I can't really vouch for them now since they've moved and it's been a while, but I was really happy with both the service I received and the hardware in use. My server was unmanaged, so I was doing all of the software and OS configuration, while they took care of the infrastructure.

Have any good hosts or suggestions for finding them? Tell me why you like your host best. I'm always looking for the best place to host my sites. Hosting these days is such a commodity that there's no reason to stick with a host if they're not providing the service and features that you need.

I'm taking on some more server-management related responsibilities for work, and I'm trying to be a little proactive with getting things under control so that I still have time to code. One thing that I would like to do is have a server configuration that we can standardize on so that when something goes wrong on a server we have many benefits.

The advantages of having a pre-configured system are that we'll have a way to set up a server again quickly that we know will work with the software we already have on the system. If something goes wrong with one of them that is related to the system settings, we'll know what we need to fix on all of the servers to make them right, not guess at whether the fix needs to be applied to each.

The process of standardizing allows us to pick the tools that we want to be on the system without having to rely on them being provided by a host. This gets particularly hairy when we try to build tools on a hosted environment and we're not sure what other tools might be on the system that could be affected or affect the tool we're trying to build. There are too many questions.

One way I would like to mitigate these issues is to have a go-to OS platform that we use to build systems. One reason I would like to steer away from RedHat Enterprise Linux is that we're not easily able to replicate those systems locally for testing. The free version of RHEL is not identical to RHEL, and who knows what trouble minute version differences might cause.

For that reason, and some others, I'd like to standardize on Debian. Debian seems to have a good track record with testing and I like the way they deploy packages in separate stable/testing packages. It's great that you can upgrade anything in-place, and that the repositories for adding new software are the same for what we would use on the live server as what we would use for local testing.

I need a way to convince my coworkers that this will suit us well in the future, that it's not so much of a change to what they're used to, and that the additional benefits of the OS and the system I'm devising will be of immediate use to them.

I've spent the last couple of nights building a script that will deploy a working LAMP server with all of the tools I like to use to a bare Debian Etch installation. I know that the host provides images with LAMP tools already on it, but like I said, if I control what goes on, then I know how the things on it interact.

I've managed to put together a pretty comprehensive script that works really well with VPSLink, a host I've found that offers affordable Virtual Private Servers with Debian installs. The script deploys Apache 2.2, PHP5, and MySQL 5. It builds the environment with mod_vhost_alias so that creating a new domain or subdomain is as easy as creating a new directory for it. It also has APC pre-installed so that all of the work I've done recently to increase server speed on some of our clients' servers won't need to be a thing that we add on later, and it comes with svn pre-configured and ready to use as either a client or a server.

I've got the basics pretty well set, and the server runs smoothly. There are still a few things that I need to improve.

I've been writing a script to install postfix and dovecot to work together with a mysql user database. This will let the VPS have unlimited virtual users without having to touch configuration files. You could write a front-end to it in any CMS, and such a thing would be a great value-add to our customers who frequently use Drupal.

Unfortunately, the script is not yet complete. I get really close to having everything work, but then I have to rebuild the server to make sure that changes to the script apply cleanly. Thank goodness the server setup script only takes 5 minutes to create a fully-functional server out of a blank slate.

I would also like to tie in some more basic tools with the install so that they're standard on the system. A reporting tool that reports back to us when one of our clients' servers is down would be great. Also, a tool that does periodic backups of vital data - email, web - to an external location would be very nice. Something that logs traffic and server load over time, and perhaps outputs MRTG graphs, would be nice. And to put the icing on the cake, a mysql performance monitoring tool would be great, since although I've had plenty of ISPs tell me that my site's queries are taxing the server, none of them have been able to tell me which ones.

If I really wanted to get fancy, I would also include a standard install of lighttpd, for use as either a caching proxy or a faster, lighter web server. One of my VPSLink VPSes runs Habari on lighttpd with sqlite in a scant 64MB of RAM without a hiccup. For $8/month and the option to upgrade in-place to something more roomy, there's no reason to go to a more expensive shared host.

Primarily, if I can get the email working via this script, I'll be in really good shape. But I'm impressed so far with what I've been able to build in a couple of days, and how much it will reduce my personal time for server setup.

I've been part of the top-secret beta program over the past month or so of Microsoft's new Home Server product, and since it's now been released CTP, I can finally talk about it.

The software is actually really cool in concept. You basically allocate a box as your "home server". Many of us are getting so many computers around the house that it's becoming impractical not to have a dedicated server machine for sharing files and running printers, so it's a good idea to offer software that helps automate some of those tasks.

The Microsoft Home Server software looks like a kind of stripped-down version of Windows 2003 Web Server, but with a few dedicated applications for interacting with your home network. You access the main control portions of the Home Server via a "Terminal Services"-like client. It only allows you to connect to your Home Server, and does not provide you access to the Home Server OS, but a dedicated Home Server control application. When sitting at the Home Server system itself, you have access to a very pared-down version of Windows Server.

The thing that is specifically both nice and bothersome about Home Server is the backup software which is one of the key features.

On each computer where you want to interact with the server, you install a component (Windows-only) that runs from the system tray. The icon gives you a quick display of the "health" of your network. If green, healthy. If red, ill. I guess -- I'm still a bit confused about that.

The backup occurs every day automatically at a time you schedule. The scheduling takes place on the server, which is the big problem. If you leave a desktop computer off during its scheduled backup time, Home Server complains about the fact that the desktop did not perform a backup. In fact, it's pretty insistent about it, setting the network alert level to red across all desktops on the network.

It's very troublesome that if I leave a computer off for several days (like Abby's, which she uses infrequently) then it generates this type of error.

More concerning is that you can't set the backup schedule of the computer in the control console unless that computer is on and connected to the server. It simply gives you a message like "This computer is not connected, so you can't do that." So you have to turn on the computer that doesn't need backed up (because it's been off) in order to turn off the backup, thus the notification.

I understand that if a desktop is actually on and fails to contact the server, that could be a serious problem, since data loss on that machine would not be recoverable. But the annoyance factor is really high when you don't want to follow such a rigid schedule.

Forget about using Home Server notebooks that are not always home, and frequently on the road, still trying to "phone home" to the server that doesn't exist.

The Administration console shows backup status of every registered network PC, and can show you nice pie graphs of disk usage based on purpose (backup vs files). It's also supposedly pretty easy to set up storage redundancy in USB drives, where the additional drives will function like a RAID array. I didn't have any spare USB drives to try this out, but I'm told the process is fairly plug-and-play.

When the backup does work, it's seamless, quick, and amazing. You can get old versions of files from any backup you've retained on the server, and the server has rotation rules that will keep many versions back.

Oh. Wait. I could never get that single-file restore feature to work. It universally failed to work, actually. It's supposed to create a folder on your desktop that gives you access to the files from that backup. Although it created the folder on my desktop, double-clicking it to open it resulted in a strange system error each time, something like "Network resource no longer accessible".

One would think that being part of a beta program, I would have better records of this. You know, I did. But here's another issue: The bug reporting on their beta site requires that you submit a log from a special tool along with your report. I can't be bothered to install this additional tool, and cause the server to fail again just to create your bug report. I'm not Microsoft QA, this thing is supposed to work reasonably well out of the box. If you want my feedback, make it easier for me to report. As a matter of fact, while I'm complaining about it, the beta support site really stinks.

Where was I? Oh yeah, Windows Home Server...

The shared folders feature worked really well. It's based on the tried and true SMB network format, so I would expect that it would work well. I was able to connect to the server's regular shared folders and move files in and out.

One of the cool things about Windows Home Server is that it works with the XBox 360. I could see the Server on my network and play music and videos from it. It could play MP3 and WMA audio, which is what I have all of my music encoded in, but it can only play WMV video, which is terrible because I can't be bothered to convert all of my Xvid or DivX videos to yet another format for playback.

Also, it doesn't support well any realtime streaming to the XBox 360 like a Media Center PC might. That's disappointing. There are no tools that I know of that will do live conversion of local files from one format to the format needed by the XBox 360, even if downsampling is required. This one feature seems like a braindead "gotta have it" feature for anyone who would actually buy Windows Home Server. Otherwise, it would be better to buy a whole Media Center PC and some off-the-shelf backup software or service.

There is apparently some feature that lets you access the Windows Home Server remotely via the web. Sadly, there are problems with this feature. Verizon (my ISP) blocks incoming port 80 requests, making it impossible to connect to a server on that port. Many ISPs do this because they don't want you to run servers when paying residential prices for your broadband.

Geniuses who constructed the software say basically, "Connect to http://your.domain.com, and click 'Log On'." Well not everyone has a domain that points to their home internet connection. I do, but that's beside the point. Even so, being on DHCP, you would think that the server would offer some way to update a DynDNS (or other dynamic DNS provider) entry so that you could connect this way. Nope.

Searching in help for "port" yields no results, so even if I wanted to change the incoming port for the web server, I have no idea how that would be done.

I admit that I did not bother to axe my system so that I could try the restore disk. I have a functioning home network, not a testbed.

The Home Server offers no other server-like features. No email. No FTP. No DNS. It cannot be used as a firewall. For all of the security focus Microsoft has had over the past few years, you would think that they might provide some server-based firewall/web-blocking/filtering/proxy/whatever support with Windows Home Server. Maybe that's not a good idea?

I don't know what Windows Home Server will cost. For free, I can set up a Linux server with SMB support. I can use rsync to sync my important files to the server on a schedule of my choosing, and I can do it from systems that are not Windows-based in addition to those that are. I can also run a full-featured web server on a port of my choosing, in addition to email, DNS, firewall, and DynDNS updater.

What does Windows Home Server make easy? It is really easy to install. That part went very smoothly. If they improve the backup after the beta release I have (you'd almost have to to keep users from routinely ignoring the little perpetually red tray icon) then backups are so easy that fish could do it. Sharing files over SMB doesn't get easier than with the platform that made it standard.

Administration with Windows Home Server is a snap. If you're not tech wiz, it's really easy to get things going. I'm left scratching my head though, wondering how much a person who is not a tech wiz needs a dedicated home server. I suppose that it'll become more prevalent, but the day after I installed Windows Home Server, I saw two push-button Linux-based look-alikes announced. They're probably not as seamless, but with a little elbow grease they'd probably work just as well, and I imagine that anyone who would drop some Benjamins on a server box and the Home Server software is at least that invested in the process.

The worst thing about Windows Home Server is that the upgrade from beta 2 to CTP is going to wipe out my data. And there doesn't seem to be a way to backup my server. This seems like a very strange oversight.

I've put a lot of my data on the server to give it a reasonable test run. I'm really disappointed that I'll have to practically reformat to upgrade to the latest version to see if it fixes any of my issues. Even though I couldn't report them.

In spite of all of the above, Windows Home Server is a really neat product. I'm excited to see Microsoft have interest in this area, which I think will grow quickly as many people are growing their home networks.

Pat's probably never going to invite me to beta again...