The Case of the Case-Sensitive CustomFilter Refiner

While working on a project involving setting up FAST Search Server 2010 for Sharepoint, I ran into trouble setting up a custom date refiner. I was hoping to see refiner values that said things like ‘Last 30 Days’, ‘Last 60 Days’, and ‘Earlier’, but instead I saw this, which is the date ranges for the last 30 days, last 60 days, etc.

This is a problem, because it’s much harder to quickly grasp what the different groups are. Which is easier, to understand ‘Last 30 days’ or ‘From 2012-08-12 to 2012-09-12’? Considering that most of the date range is not visible, this makes it even harder to consume. I wanted to fix this.

Read More

Musings on my Fear of Blogging

A blog post can be scary to write. You’re putting your reputation out there for everyone to judge – and their judgments/comments can be viewed by the entire world.

I have two fears when writing a blog post: First, I fear I’ll write on a topic I’m familiar with, but that is so basic and simple that someone reading it will assume that I don’t really have much depth of knowledge. The second fear I have is that I’ll try writing on something that I’m not very familiar with, someone will point out some huge, obvious blunder I made in my post, and thus my blog post will be revealed as wrong and worthless. And sometimes I’ll have both fears at once about a post I write.

As for the first fear, I need to remember an interesting fact about learning: when you don’t know something, it can seem overwhelming and confusing, but once you work with it and learn it, it’s easy to think that you somehow had perfect intuition and picked up the technology as though it were second nature – and you forget that you were once overwhelmed and confused. So if I’m interested in writing about a technology that seems simple and obvious, I should remember that once it was this crazy, impossible technology that I was clueless about. It’s likely that there is someone else out there who could benefit if I wrote some of my thoughts an experiences down in my blog, even if it seems simple to me at the time. I’m just a couple of steps ahead of them.

As for the second fear, I just need to get over my pride and be willing to put some stuff out there on my blog, even if it might be wrong. If someone else rips it to shreds, it can be a great learning opportunity for me. It is certainly better than continuing in ignorance, and it can help me to connect with someone who is more knowledgeable than I who can help me learn even more.

Have I written anything helpful? anything worthless and stupid? Let me know!

Uglified Unicode on Rails

TL;DR - IE doesn’t like minified unicode. To fix this, create a custom passthrough minifier to disable minification of unicode when using uglify in the rails asset pipeline.

I’m pretty new to rails, so please let me know if I’m off the mark here.

Asset Pipeline

Rails has an interesting component called the asset pipeline that, among other things, can combine all of your js files into one file, and all of your CSS files into another, then it can strip out whitespace and rewrite your code to make it smaller, by doing things such as replacing long variable names with short ones. This is called combining and minifying. Combining and minifying are important because they can help a web page to load faster. A web page can load noticably faster if it has a single 150kb file to load from the server rather than 25 files that are 10kb each.

Without question, we wanted to minify and combine our code using the asset pipeline. For more information on setting up minification, see the asset pipeline documentation.

IE and Unicode Problems

However, we had strange results with the minification. When our code was _not _minified, it worked great in both IE and Chrome. After being minified by the asset pipeline, however, it worked great in Chrome but some parts of our app mysteriously failed in IE.

Read More

Canon MX700

It’s a fancy looking printer. Scanning, Faxing, Printing, built-in networking. But it is quite the difficult device to set up. For anyone else who is interested, here is the process:

  1. Hope that someone else has already set up the printer on the network so you don’t have to figure that part out.
  2. Create a local administrator account on your laptop, then login with that account (a domain account with local admin permissions is not enough for some strange reason…)
  3. Download the canon driver from the internet and install (I think It’s something like a 3.4GB download, which is about average for printers nowadays)
  4. Plug in the USB cable, wait for driver install to finish (better not do this before installing the driver, because the out-of-the-box windows plug-and-play drivers won’t work)
  5. Unplug the USB cable (I know… you just plugged in it. Bear with me)
  6. Delete the canon printer and fax that now appear in your printers list (I guess you can leave them if you don’t mind sharing a USB cable with everyone else)
  7. Install the printer drivers again, this time with the network option instead of the USB option (why couldn’t I do this in the first place?)
  8. Go to the printers list and delete the fax device that was added (unless you like having a long list of useless items in your printer list)
  9. Log off of your local admin account and log in with your domain account (but only if you want to use email and such)
  10. Delete the old local admin account to clear it out
  11. Open notepad. Type something in. File – Print. Wait for paper to come out of the printer.
  12. Discover that due to the long printer setup time, the ink in the printer has dried out and you need to buy more ink.
  13. Cry. Pull an Office Space.
    This post is dedicated to all those who have fought with a printer and lost.

Wordpress and Azure Websites: I want my Domain Name

Update: You can now point your domain name directly at your Azure Website without any of this nonsense. Read the announcement for more details.

If you set up Wordpress on a free Azure Website, which means you went with the Shared model, you may have discovered that Microsoft gives you a custom subdomain, such as However, if you want to use a custom domain, such as, you can’t.

You can try pointing directly to the IP address of your server, or you can even try using a CNAME to point to, but neither will work.

Custom domains are available today, but only on reserved Azure Websites.
Custom domains are planned for the future for shared websites, according to @scottgu
However, with a little bit of jQuery, we can get it to work like we want, even on a shared website.

Read More

Azure Upgrade Costs

So you have an application running in Azure, running on a set of web and worker roles, and you need to upgrade it. What do you do?

Well, you could redeploy your application to the live, production instances of your web and worker roles, but that would result in half an hour of downtime or so. That’s probably not the best option if you have users that connect to your site, unless you have periods of time where it doesn’t matter if your site is down.

You could also do an in-place upgrade

The third option is to do a VIP Swap, where you set up a completely new set of servers in Azure with the new version, then you click a button and your production IP address immediately starts routing to the new servers.

The following chart, from Mark Russinovich‘s recent talk on Azure, shows some of the limitations with these three options:

That’s great, but how much is this going to cost?

Read More