Monday, November 16, 2009

Google Voice

I've always been a fan of Google tools. I use GMail, Google Apps (for KC Web Programmers), Calendar, Maps, Blogger (obviously), Groups, etc. But my new favorite Google tool is.... Google Voice. There are so many great features:

1) When callers leave voice mail online, it is transcribed automatically (though far from perfectly) and sent to your email and as a text message to your cell phone

2) Once you have your Google Voice phone number, it means you only have to tell people one phone number from then on because that number will ring any other number you tell it to.

3) You can create rules based on different callers. For example, for family ring all my phones and for unknown callers only ring your home phone.

The only drawback to me is having to tell people that I have a new phone number since I've already switched numbers recently. But again, this service means it *should* be the last time I'll need to switch.

Right now the service is invitation only, but I have 1 extra invitation at this point. Leave me a comment if you want it.

Saturday, October 3, 2009

PHP Hosting

For a long time, I've been using a PHP host called EZ-Web Hosting. The price was good, only $6.45 / month if you buy a full year at a time. And the control panel was standard.

However, recently my hosted database became corrupted. The site that uses that database is not one I check regularly, but still the data was very important. So by the time I noticed the corruption, it had been corrupted for a few months. I asked them to restore their last good backup and they said they only keep a couple months of backups, so all of their backups were corrupt too. So the result was that the entire tables were lost. I had to restore the last backup I made, which was over a year ago.

So there are two lessons here. First, make regular backups of your online data. I think everyone knows they should regularly backup their own computer in case it crashes. But I, for one, do not expect that the data I have online will be lost. After all, those companies are supposed to specialize in reliable, redundant systems for hosting your data. It seems they should have many safeguards against corruption and data loss. Turns out, even hosting companies can screw up. So go to your control panels regularly and make backups.

Second lesson is that you should not use EZ-Web Hosting. I still believe that no hosting company should lose your data for any reason other than you accidentally erasing it yourself.

So do people have suggestions for good PHP hosts?


I just learned about this "text-to-movie" site called It's a very cool and easy way to make an animated custom movie. They provide the animated backdrops and actors, and then you add the script and pick the camera angles. You can make the actors do little animations and facial expressions too.

It can all be done online for free. Or you can pay $5/month for more backdrops and actors. You can also download a desktop version called State. State has even more features. You can make the actors move around. You can create your own custom camera angles. And there are more animations, like dancing. State ran very slow on my Pentium 4, 2.8 GHz laptop with 1.5 GB of RAM. I don't have a great graphics card on the laptop though.

Here is a video I made using the online free version.

Sunday, July 12, 2009

cloud development tools?

I spent several hours this week trying to upgrade my MS SQL Server 2005 database on my laptop to MS SQL Server 2008. First I tried to just install 2008 also, but I got a "versions are incompatible" message. So I had to uninstall 2005 first, then when I tried to install 2008 from the main installation site, it gave me an error. So I had to find an alternate installation file...again, many hours.

The beauty of "cloud computing" is not having to install a bunch of software on the desktop and worry about these kinds of things. Its now easy to check email, watch videos, and make word processing and spreadsheet documents all in the cloud through your browser. But when it comes to software development, the tools are pretty specialized. And for security reasons, you might not want to let Web files be editable in the actual folder they are viewed. So it seems I'll always need to install my development tools on my machine, which means I can only develop form that machine too, rather than any computer with Internet access.

*If* anyone reads this :-) and is a developer, do you have any solutions for this? I used to work at Devry and they had a system where you could connect to a server that had development tools on it to do labs. That's not exactly what I'm imagining, but it could work. But I don't see that available as a product for the public. Thanks for your thoughts on it!

Tuesday, March 31, 2009

Current week in the month - PHP

I had this problem to figure out today. I thought it was pretty tricky, it took me a few tries. So I thought I'd post it.

The problem was to figure out what week of the month on the calendar it is based on today's date and a calendar week that starts on Sunday. So for example, if the 1st of the month is on Friday, the first two days of the month would be week 1, then the 3rd (a Sunday) would be week 2.

So the final solution is:
ceiling (( todaysDate - dayOfTheWeekPastSunday - 1) / 7) + 1

In PHP, todaysDate is obtained by date("d") and dayOfTheWeekPastSunday is date("w"). So in PHP we have:

$currentWeek = ceiling((date("d") - date("w") - 1) / 7) + 1;

The reasoning, if you're interested: we know that the week number is going to be at least the integer value, rounded up, of the date divided by 7. So on the 19th, for example, its always at least the 3rd week. But it could be one more, the 4th week, depending on which day the month started. So we're dividing by 7 and rounding up, but we need to adjust for the day of the week too. If we subtract the number representing the day of the week (0 to 6) from the date, then we will get some result that is the same all week long, because as the date increases by one, the number we're subtracting is also increasing by one. So the trick is to make that final division problem equal 1 on the first week, 2 in the second, etc.. We also need to subtract 1 from that numerator to make our dates zero-based. In other words, we want the 7th to get the same division results as dates 1 through 6, so really we're going to treat those dates as the 0th through 6th.

So in the first week, when we subtract the day number from the date and subtract one more, we're always going to get a negative number unless the month starts on Sunday, in which case we'll get 0. So if we round up, we'll always get 0. When we roll over to the second week, our date goes up one but the number we subtract goes down 6, for a net increase of 7. So now our division by 7 will give us a number one higher all week long. Now all that's left to do is add 1 to those division results to get a 1-based week number.

I hope that helped. Please feel free to add comments if you like or don't like it or have an even better way.


Monday, February 9, 2009

I just thought I'd highlight another site that I've been using quite a bit lately. It's called It gives you the ability to "email" very large files that wouldn't normally fit in an email. Most people's email has a maximum attachment size of 20 MB or so. If you need to send someone a file bigger than that, then YouSendIt will allow you to upload the file to their site and will send an email to the recipient with a link to download it.

A basic account is free and lets you send files up to 100 MB in size. The download link will be available to the recipient for one week. Paid accounts let you send even bigger files and you can store them longer and there are some other added features. But 100 MB is enough for pretty large audio and video files so the free account has worked well for me.

Thursday, January 22, 2009


This is probably very boring to most people, but hopefully someone might find it helpful if they have the same issue. Today one of my client's had multiple (at least 3) computers on their Windows network running very slowly. They thought it was the Intranet speed, but even non-network operations seemed to be going very slowly on all computers. I pulled up the Task Manager on one, and a process called wmiprvse.exe was using over 60% of the CPU. And sure enough, same service was hogging CPU on the other computers too.

I was worried it was a virus, but after some Google searching, I found some references to failed print jobs. I've seen similar issues before where failed print jobs cause chaos in Windows, so I thought that was a likely cause. I checked the printers via Control Panel, and found one with 13 tasks cued up that were 2 days old. So I deleted all of them, and then that wmiprvse.exe process went down to 0% CPU. Woot!

Thursday, January 15, 2009

Often my clients have images or photos they want to post to their Web site. But often the image or photo is enormous and needs to be shrunk and/or cropped. Most ordinary users don't have Photoshop, so the easiest free desktop solution would be Microsoft Paint. And that isn't a great solution.

So here's my new favorite productivity site:

It allows you to upload a picture, crop and resize it online, then download the final result. I even think its faster than opening Photoshop or Paint, and its way easier to use and show others how to use than Photoshop or Paint too. Especialy since Crop and Resize is about all the image editing most of us ever need to do anyway.

Purpose of blog

This is my first post of the KC Web Programmers tech blog. The purpose of this blog is to give me (Eric Barr) a place to post technical links to technical solutions/tools/etc. that I think are very useful. I learn about a lot of tech things from the TechCrunch blog. Hopefully this will be more than my highlights of the TechCrunch blog, but it might only be a little more than that :-)

I may post a solution to something that took me a while to figure out and I'm hoping that by posting it, someone else may find the solution and it will save them some time.

I hope you find something that is useful to you!