About Us

Bulletpoint StarImulus® is a technology focused design + interactive agency.

In addition to our client services we also have a few products in the works. Our office is always filled with chatter and this blog is an outlet for our creative energy, rants and ideas.

Podium

Support DetailsSupport Details
Find the cause of client browser issues and get the lowdown on what client's are using to see your site.
Support Details by Imulus

Featured Project

Category: software

Jan8

Using Microsoft’s Web Deployment Tool to automate backups

Recently here at Imulus we had a production server go down, meaning all of our clients’ websites on that box were unreachable.  Thankfully, we had the proper precautions taken and backups were restored in hours.  Yet it was a very stressful time for all of us and it led me to wonder what else was out there and how much better we could have responded in an emergency.

After a bit of research I found Microsoft’s Web Deployment Tool, also sometimes referred to as MSDeploy.  Of course it only applies to Windows Servers with IIS, so if you are looking for another OS/web server solution this article is not for you.

I was somewhat skeptical at first because, well, I’m skeptical of everything.  They even call me the skeptic here at work.  It also seemed a lot of people that were writing about it were fanboys and it was a very new product (I started testing when this product was still a release candidate).  After reading about it thought I should give it a shot since it sounded very powerful.  Here is a short version of what we were looking for:

  • Able to take all manual steps out of recovery
  • Backup all files and code that made up the website
  • Include all settings, SSL Certificates, Bindings etc.

After playing with it and doing some tests I was very impressed.  The tool does deployment/backups per site, so if you host multiple sites on a server and want to customize depending on site you are able to do that.  You can view code dependencies, backup databases – do almost anything you want.  You can choose to use the GUI from IIS Manager or go command line.  You can choose to export the package to another server immediately or create a folder with an archive of all necessary files for restoration later.

If you are interested in using it for deploying, go get it,  check out this overview page or visit their forums.

If you are interested in seeing how we created a fully automated solution, read on.

Since we wanted something that had little or no human interaction, and therefore not error prone with a high degree of reliability, I came up with a solution that took all human involvement out of the backup and recovery process.  The solution we came up with is broken into 3 parts.

1) Backups of all sites in IIS needs to occur in case of a server failure.

2) Replicate backups to other available live servers as well as offsite automatically.

3) The ability to recover our site(s) needs to be easily and quickly available with fewest manual steps as possible.

To address all these I wrote a small, simple program to help the Web Deployment Tool with this process.  The program has two purposes and can easily be scheduled through the task manager in order to create a repetitive and up-to-date solution.  The program writes two files.  The first .bat file should be run nightly, or however often you want, and contains commands for msdeploy that create an archive backup for each site in IIS.  The second bat file contains all commands for msdeploy to install/restore each website that has been archived.  This second file should only be run if a server goes down and you need to restore sites on your standby server.

To take care of our first step we must schedule an execution of our custom application to generate our archival and restore bat files.  We must also schedule an execution of the archival .bat file our program generates to be run afterwards.  The bat file execution results in the creation of an archive for each site.

Now that all sites are backed up with step #1, we need to take care of step #2.  To do this, just use your favorite sync tool to copy all necessary files to other server(s) and offsite.  If you don’t know what I am talking about, check out Super Flexible File Synchronizer or Microsoft’s Sync Toy.  Using a program to move files on an automatic basis allows us to be ready to execute step three if we ever need to.

Step #3 is the only manual step in this whole process and is quite easy.  First, bind the new server you are recovering to with all necessary IPs, or do whatever network voodoo you need to.  Secondly, run the recovery .bat file.  The file will install your site(s), application pool, certs and restore all settings.  One click recovery?  Yes please!

If you think this code could be used in your environment you may grab a generic version here – I hope it helps.  Obviously, I make no warranty about any of this process or code.  If you do use the code, please read the readme as well as the code comments.  The code is a Visual Studio 2008 C# solution licensed under GPL.  Use your heads and do your testing people!

If you come up with anything different feel free to comment and let us know how you have improved upon the process.  If you modify the code please send me what you have done.  Enjoy!

Dec4

Pandora in a standalone app with global shortcut keys

I just recently got back into the magic of Pandora, an awesome way to find new music and share music mixes with friends.

However, after a few hours of use I remembered what kept from making it my main jukebox player in the beginning. The answer is simple, it’s hard to use while working in other applications. For someone like me who spends hours at a time locked in a text editor, switching to my browser and tracking down a play/pause button 20+ times a day can be frustrating. My first idea was to move Pandora to a standalone browser instance using Fluid. However, after a quick search and a bit of help from a co-worker I found an even better solution — PandoraBoy. It’s a small free Google code application that works similar to a standalone browser instance but also adds global hotkey controls.

pandoraBoy

You can set global shortcuts for actions such as: play/pause, next song, next station, previous station, vote up, vote down, player volume, and mute.

hotkeys

Once mapped you can use Pandora as your primary media player without ever having to view it in browser. Props to the makers of this app, it’s exactly what I was looking for. If you’re keen to try it you can download it now.

If you find, like me, that you can’t stand the dock icon you can use the quick one I whipped up. Download my PandoraBoy alternative icon.

Jun2

Introducing Support Details

support-detailsWe’re happy to formally announce the launch of Support Details, our first planned public product. This is one of those ideas which was in the works here at Imulus far longer then need be. In fact the idea was discussed in ’03 and sadly it fell off the radar until this year. Support Details is an attempt to add clarification to browser related issues between non-technical web visitors and their clients & customers.

This idea started as way to save time. To solve odd browser issues our team was always asking the clients questions like:

What browser are you using?”, “Which version of Flash is installed?”,”Do you have cookies enabled?” “What is your screen size?”

You get the point.

We simply were losing too much time to explaining the “how to” aspect; hence Support Details.

To be useful the product had to determine what browser a customer was using, along with any other configuration data which could be detected. Then, it needed a reliable way for capturing and sending the data over to the person who was working on the problem.

support-details-detail

The concept is simple. That is part of the reason we believe it works so well. Yet, we’re always open to good suggestions for improvement and we’re eager to hear your feedback.

Feb5

I’ve Got a Revenue Model for Facebook and Twitter

It’s called charging people a monthly fee.

Why are so many web-services scared to charge their user base? Especially when the service kicks ass like Facebook or Twitter. TechCrunch is saying that 1 in 5 people on the web have accessed Facebook. I’m sort of thinking that there is something of value there for that many people have an interest. Why then are these companies still looking for a way to make money when the answer is in their face?

Charge us!

Facebook is struggling with ad supported revenue and Twitter is anyone’s guess. Their customers are asking to be charged and would gladly pony-up some cash if it meant a better service.

Facebook and Twitter set bad examples for start-ups by not charging. It creates the impression that all web-services must be ad-supported. This simply isn’t a good approach to building a long term sustainable service. Locally, I try to attend the monthly Boulder / Denver New Tech Meetup, and I’m continually heartbroken by all the startup founders looking for ways to capture VC funding when they already have a fairly nice service to offer. It’s as if everyone is trying to cash in on building the ‘next big thing’ by growing fast and selling to Google.

I fully understand giving a service away in the beginning in order to draw in the users, but have a clear plan to stop the free services and convert to a paid model. The “try before you buy” model isn’t used enough. Facebook could charge for users who’ve been on their services for over 1 year. Twitter could easily charge by volume of Tweets.

I can already see the comments coming in about how charging will diminish the social / community value of these services. Yet, I would be MORE likely to use these services if I was confident they would be here in the future and not sold off to Google, Yahoo or Microsoft.

Jan5

I’m going to the bathroom, if anyone’s interested

Ok, I know George and Bruce will probably kill me for this, but I just don’t get Twitter. For marketing purposes, I completely understand where it’s beneficial. However, social marketing is only effective if you have an audience. So, why is Twitter working so well? Twitter Logo

I know people love to talk about themselves, but frankly I don’t think anyone needs to know what I’m doing every 5 minutes. I guess if I have something to say, I say it to the relevant people. I also personally don’t give a shit what you’re up to. I mean that out of love. I swear. I love to know where my friends are and what they are up to, but I really don’t need a play by play. Knowing you’re at work or out for the night is just fine. I just don’t care that you’re brainstorming for a big project, just beat someone at Halo, or just ran out to the bathroom. Really. Who really needs that information?

I’m all for a personal IM conversation with my friends, but I don’t need the whole world to know. I guess that’s why I don’t update my facebook status. I only write on people’s walls. That may be why the “mini-feed” pisses me off. Sure it invites more conversations, and I know people can view whatever if we’re friends, I just don’t think my friends need to know every freaking thing I do. I’m all for advances in technology, especially in our industry, but isn’t there a point where we’ve lost all personal communication?

I’ll give Twitter some credit for putting like-minded folks together. I think it’s a great system for bouncing ideas off other people or getting help, but do I really need to know that you had a snowy drive into work this morning? If the point of Twitter is to get information from people and share ideas, great, but that’s clearly not what it’s used for, at least not exclusively.

I’m sure the hate mail will come soon from Twitter defenders, but please someone explain why I should Twitterfy my life!!