Archive for June, 2012

Crack the Gathering™

I just discovered Magic 2013 for the iPad. It’s one of the best MTG dueling games I’ve seen since I stopped playing the real version and sold all my cards 10 years ago. I’m trying to decide whether my productivity can handle the full version. Anyone want to duel?

Advertisements

Wonderfully under productive Saturday

I didn’t do any work today. I think over 21 days straight (a couple were only around 4 hours) is enough, and I needed some down time.

I did manage to give my new drums a satisfactory tuning, and spent a couple hours disassembling my bass pedal while trying to figure out how to adjust the throw. You’d think they would include some instructions. This helped.

I also found some good video lessons to start working on. I need to set a goal for myself.
Also, I took a nap.

On a more somber note, I learned that my primary and junior high band director/music teacher died today. He was a great brass player, and was truly passionate about teaching kids about music. He had such a profound effect on my life. He really helped nurture in me an absolute passion for music.

Ironically, the last time I saw him was 16 years ago, almost to the day, at a funeral – my father’s
Rest in peace, Mr. Howcroft. You too, Dad.

Cheap cymbals are cheap

So I got a drum kit. I had a very specific budget, did a ton of research, watched video reviews, etc. I chose the kit due to the excellent reviews, the smaller size (good for jazz), and of course because it looked cool.
The kit I chose, the Sonor Safari, is what’s called a “shell kit”. That means the price you pay only includes the four drums, and you have to shell out more money to get all the other parts. This include buying cymbals.
Now, being a musician and having worked in a music store (r.i.p. String Shoppe) I’ve learned that pretty much any musical instrument, no matter how cheap, usually has some redeeming quality that a little work and effort can bring out.
Cymbal “starter packs” are the exception to this rule. There’s nothing you can do for a crappy-sounding cymbal: you can’t rebuild it, you can’t set it up properly. I knew going in that I was going to have to cut corners on my cymbals.
When I was making my purchase at the Home Depot of music stores, the guy working in the drum department suggested a cymbal set from Meinl. The only time I’ve ever seen Meinl cymbals was on Lamb of God’s drummer Chris Adler’s kit. My sales guy, who was very cool and helpful, said they’d sound better than the Zildjian set I was originally looking at. Since I’ve been out of the music scene for so long and really had no idea, I decided to take his word on it.
I could have assembled a better sounding set of cymbals from my kitchen and garage. To my ears, these things sounded like random round pieces of metal. The 10″ splash actually sounded like a pie tin.
The next day I boxed them up and took them back to the store to exchange them. I grabbed the original Zildjian set I wanted and actually took them out and tried them, they actually sounded like cymbals! I even played the pie tin next to the Zildjian splash, which sounds like a splash, and the guy actually said “you think that sounds better?!”.
The lesson learned here is that even if you’re buying a cheap cymbal package that costs as much as one “good” cymbal, make sure you play them before shelling out the cash.
Now to figure out how to tune these drums…

It’s a bit blurry, but here’s the happy new cymbals:

20120615-060359.jpg

Update: I think I’m going to write a WordPress plugin that automatically replaces the word “actually” with a synonym.

Note to self: look up synonyms for “actually”

A new creative (and stress) outlet

How to add some fun to your life in 6 easy steps:

1. Unload the boxes

20120613-200507.jpg

2. Start putting stuff together

20120613-200554.jpg

3. Keep putting stuff together

20120613-200635.jpg

4. Keep putting stuff together

20120613-200710.jpg

5. Sprinkle liberally with children. Mix well.

20120613-200807.jpg

6. Enjoy!

Note: The optional “warn neighbors” step was skipped.

Instapaper

I know I’m a bit slow on the pick-up sometimes, but I just recently discovered how useful Instapaper is. Even more so when you use the bookmarklet for the iPhone(and probably other smart phones). I can look something up wherever I am with my phone, send it to Instapaper with a single click, and bring it up later on my iPad or my desktop.

Used CD’s

I picked up a few used CD’s the other day at a local used video game shop while my kids were looking for games. At $1 each, it was completely worth it for some 10-15 year old discs.
I have a CD player in my car, but it also has Bluetooth which I use more to stream Mog or Pandora while driving.
Anyway, I started to realize that I was going to have to rip them all to MP3 and get them on my phone, or in the cloud or something. Wouldn’t it be cool if there was a service that would allow you to take a picture of the disc or scan the barcode and automatically get streaming access to it.
I know there are some serious holes in my idea, like walking through BestBuy scanning barcodes with your phone, but it would still be pretty cool. Maybe I can find an Angel to finance it 🙂

25

I’ve recently been asked to provide the ability for our Sitecore users to manage the robots.txt file on our site. The way our environment is configured, modifying a file on the file system requires a formal deployment procedure, and it seemed like too much overhead involved to make the occasional file edits.

I thought about a couple possibilities: use an Alias or Proxy pointing to the file stored in the Media Library, or create an Item in the content tree named “robots.txt”. I tried several variations of Aliases and Proxies, but couldn’t get any of them to work.

Note: this solution was implemented in Sitecore 6.2, therefore, your mileage may vary.

It seemed like the easiest solution would be to allow the users to upload their text file to the media library and create an Item in the tree to serve the contents of the file. This solution not only solves the robots.txt issue, but also provides an easy way to serve the contents of plain text files in a managed fashion.

The first thing that needs to be done is to tell Sitecore to allow requests for .txt files to be processed in the pipeline. In web.config, add “txt” to the list of allowed extensions that will be handled by the PreProcessRequestProcessor:

<processor type="Sitecore.Pipelines.PreprocessRequest.FilterUrlExtensions, Sitecore.Kernel">
 <param desc="Allowed extensions (comma separated)">aspx,ashx,asmx,svc,txt</param>
...
</processor>

We will need to create a simple Layout and Template to represent our plain text files in the content tree.

Create a new Template and give it a single field of type “File”. I called the field “Text Content” and saved the template as “Plain Text Page Template”.

Next, create a simple aspx-based layout in the Layouts folder named “Plain Text Layout”. I chose not to create a code-behind, since the markup and code is dead-simple.

<%@ Page language="c#" AutoEventWireup="true" %>
<%@ Import Namespace="Extensions" %>
<script runat="server">
 void Page_Load(object sender, EventArgs e) {
     Response.Clear();
     Response.ContentType = "text/plain";
     var item = Sitecore.Context.Item.AsMediaItem("Text Content");
     if (item == null)
         return;
     Response.WriteFile(item.FilePath);
 }
</script>

You may have noticed that I’m importing an “Extensions” namespace. This namespace contains some Sitecore Item extensions to make life easier when dealing with the content tree. In the code above, I’m using the AsMediaItem extension function

public static MediaItem AsMediaItem(this Item item, string fieldName)
{
    FileField file = item.Fields[fieldName];
    if (file == null || file.MediaItem == null)
        return null;
    var mediaItem = new MediaItem(file.MediaItem);
    return mediaItem;
}

Now we need to bring the template and the layout together in the content tree. Create a new item in the content tree, named “robots”. Use the “Plain Text Page Template” and the “Plain Text Layout”. In the “Content” section, browse to the actual robots.txt file in the media library, and save the item.

You should now be able to browse to /robots.txt and get the plain text contents of the robots.txt file that lives in the Media Library.