More Crested Butte. Ally and I went exploring today, and after some feux-off-roading and walking down a trail that we thought was a hiking trail but ended up just being the path to get to some tennis courts, we ended up by a secluded trailhead next to a stream, hoping to get some actual hiking in. The trail was unfortunately blocked by the stream, though, which was probably 15 feet across and freezing cold. It doesn’t look like it in the photo below, but the little log bridge was super narrow and wobbly, and the stream was narrower (therefore faster and deeper) underneath it.

It was still a beautiful place to just sit and relax.


On another note, this panorama was stitched together using 64 images. After the 20 minutes it took Photoshop to stitch it, I tried to save the image before I started editing, but was denied by Photoshop because it won’t write files larger than 2GB, and this guy exceeded that by at least 0.5.

Despite my obvious intent to capture enough photos to make a clean and complete panorama, as it usually goes, I still missed large sections, most notably the lower left corner.

original panorama

(original panorama)

When Adobe CS5 was announced, I remember having seen a video talking about how filling in holes like that will now become so easy. So I did some research and found out that there’s a new tool in Photoshop called “Content-Aware Fill” which is similar to the patch tool, but knows what should exist in the target selection. After applying the fill to just the lower left corner, this is how it looked:

content-aware fill applied

(content-aware fill applied)

Not too bad, if you ask me. In CS4 I would have either had to crop that whole left section out, or painstakingly recreate that corner with the clone stamp which would probably end up looking fake anyway. After a little cleanup around the edges (and removing all the extra dirty t-shirts that got cloned in), it actually looked like a convincing patch of ground with relatively few duplicate patterns and shapes.

When doing my research that led me to the content-aware fill, I also found a new tool called Puppet Warp which is a lot like the existing Warp tool on steroids. It creates a mesh of triangular sections over the entire layer that you can add anchor points (or “pins”) to and move them around to warp the mesh. One of the example uses tutorialists love to show is how you can add anchor pins to a person’s elbow and shoulder, and easily move their arm around in an anatomically believable way. I’ve never needed to move a person’s mid-wave hand position before, so that matters very little to me.

One of the other applications the tool has, though, is to stretch and warp a panorama’s uneven edges to better fill in an even rectangle without having to crop out large areas. I tried it out, and it was pretty easy to use, though it might take some practice to find pin placements that don’t end up distorting the final image.

puppet warp applied

(puppet warp applied)

As you can see, I got a pretty ugly curtain-draping effect at the top, which would have been very difficult to fix and even more obvious if the entire top half of the photo wasn’t evenly toned sky. Also, the horizon became much more wavy and uneven. Look at the house on the left compared to the car on the right. Though their placement is fairly symmetrical, the angle at which they meet the ground is completely different.

Although the final panorama really isn’t a good picture by any means, I thought it was too good of a new-Photoshop-tool exercise to not post.

final panorama

(final panorama. wtf is up the neon green I added? I mean...seriously.)

One last photo for the day, taken (again) from the balcony of our room.


No Comments »
date Jun 6th 2010
author Mike
category Geek, Photo
tags, , ,

Page 7 Page 8

This is a pretty exciting time here at rhymes with milk. I’ve posted 28 posts – 29 including this one – and I have WordPress set to display 5 posts per page, making 6 total pages of posts. Follow so far?

The pagination* that I use on this site was actually created as a WordPress function by Eric Martin (I later found out it’s also a WP plugin, but I don’t think it was when I first installed it). It’s a clean and simple alternative to the default “next page/previous page” links built into WP, and makes the site much more navigable.


As you can see, there are currently 6 pages (as I already said…), and every page has its own link. When it reaches 7 pages, though, is when things get exciting. Since it’s not possible to continue linking to each individual page, the pagination ends up taking on a new, more compact form. The thing is, I can’t remember what that form is, though…

I remember testing out the paginate function when this site was still under construction by writing a bunch of dummy posts and setting WordPress to only show one per page. The function allows you to choose at what point it breaks from its current form into the more compacted one, and I remember setting that to be at page 7. I also remember customizing the compact look, but I can’t exactly remember what I customized it to.

I’m super excited to see what’s about to happen. Here’s to Page 7.

UPDATE: I have a few private posts that I never ended up posting, but still show up for me when I’m logged in. Therefore I see more pages than you do, so you all can’t see this yet, but it just rolled over to 7 for me. And guess what happened? Nothing. My memory was clearly wrong. I’m beginning to think it’s page 8 when the magic happens. Yeah, page 8, that’s definitely it. Here’s to Page 8!

* How do you pronounce “paginate”? Everywhere I look says it’s paj-uh-ney-shuh, but I refuse to believe that. Why would something originally pronounce with a long “a” suddenly change it to a short vowel sound, especially since there’s still a single consonant then a vowel trailing it? I could understand it if the spelling had been changed as well, to something like paggination, but it didn’t.

No Comments »
date May 15th 2010
author Mike
category Geek

not genuine

I just got a new laptop, and it came with dozens of annoyingly bloated applications that I really don’t need. At least 4 different media galleries and organizers were pre-installed. To get around having to delete and uninstall everything, I just wiped the C: drive and installed a fresh, albeit cracked, version of Windows 7.

As it turns out, a lot of the terrible annoying applications were actually there for a reason. They made my computer work. Specifically, they made all the features that originally made my laptop badass work. Not only did a bunch of features stop working (touchpad scrolling, bluetooth, the Fn key), Microsoft somehow found out that the new version of Windows I installed was not genuine, and they reminded me that they knew every 5 minutes.

I called Sony to see if I could buy a restore disk, which I was hoping would be able to restore all of the lost functionality. After a lot of confusing phone calls, I found out that a restore disk doesn’t even exist for my computer. They said that it’s most likely because it’s a new model, and often restore disks aren’t created for at least several months after new products are released.

Which makes NO sense.

Maybe that is in fact the case, but don’t you think it’d be easy enough to create an install disk BEFORE you start selling a specific model. But whatever.

Anyway, I eventually was told that my computer actually has the restore “disk” built in. When I was installing the fresh version of Windows, I noticed that there was at least one extra partition on my hard drive. I had no idea what it was for at the time, but I decided not to erase it…just in case.

Thank god I didn’t. That extra partition contains what is essentially a snapshot of your computer when it left the factory. It had a backup of the original operating system and custom applications Sony spams their new computers with. Ultimately, it was entirely painless going through the restoration process, and within an hour or two, my computer was back to normal.

What I’ve learned (aka the moral of the story):

  • Don’t delete mystery factory-created drive partitions…just in case.
  • Uninstall shit like Norton 60-day free trials, but if it says “Sony” and you don’t know what it’s for, simply don’t touch it.
  • If a cracked product requires activation to work, always activate it OFFLINE if possible.
No Comments »
date May 2nd 2010
author Mike
category Geek


I’m a fan of Disqus. It’s a great commenting system, the Gravatar support is a plus, and the comment tracking they have for your profile is awesome. So a few months ago when I was still in the process of creating this blog, I installed it here on Rhymes With Milk using the official Disqus WordPress plugin.

As the process of creating this site started to wind down, I started thinking about validating my code (as any good developer would do). Essentially this just means that I check to see if the organization that governs internet standards thinks my XHTML is up to snuff. And whaddaya know, the homepage alone has over 3 dozen errors*, but none of them are errors I made. They mostly come from the code Disqus adds to the page (with most of the others coming from an embedded YouTube video).

This really rubbed me the wrong way. These weren’t simple negligible errors like “you shouldn’t have a border size declared on an iframe because that’s not allowed” (this in fact is an error on Mark’s blog — I think it’s a Tumblr thing, so give them shit for it, not Mark)** but ones like “there’s an extra link closer-outer tag for a link that doesn’t even exist.” Seriously, Disqus? You didn’t test the plugin before you launched it?

So I decided to hack it. The php files that actually define the plugin’s actions are a bit more advanced than I was prepared for (I can usually pick my way through other people’s code pretty well. Just take a look at my archives. You think those looked like that out-of-the-box? Hell no.). I Googled the problem with very low expectations (Disqus dev documentation is surprisingly scarce) but stumbled upon this gem. This blog takes you step-by-step on how to correct the invalid markup that Disqus adds to your page. Awesome, it just saved me at least 4 hair-pulling hours.

I think the post was written at least one plugin version ago because some things looked a bit different on mine than in the examples, but for the most part I was able to do just what it said verbatim. And happily it worked. My site’s validation checked out (aside from that stupid YouTube video), but for some reason I lost comment count. All posts said that there were zero comments. With my tail between my legs, I got rid of the hacked Disqus and reinstalled a factory-fresh version, complete with its terrible markup.

But not all is lost. The site doesn’t really visually or functionally “break” because of the poorly written code (at least not on good browsers), so in the short run I can ignore the validation issues. And hopefully “the short run” is all that I’ll have to worry about. 3 days ago Disqus posted this on their blog:

We’re nearing the release of our new WordPress plugin that contains bug fixes, better importing, compatibility fixes with themes and other plugins, as well as offers new improvements in performance and speed.

And one of the comment moderators (aka a Disqus employee) said that the plugin is supposed to be released this week! It feels like Christmas in the RWM household. Hopefully they get it right this time. All the way right.

* Take a look for yourself. Click here to see all the errors.

** The only reason I looked at the validation info for his site was because he also has Disqus installed on his blog and I wanted to see if it generated the same errors there, too. It does not because the Tumblr and WordPress inclusion codes are different.

1 Comment »
date Feb 22nd 2010
author Mike
category Geek
  1 Comment

a sneak peek…

…of Ally’s new blog design. Dustin and I worked all night on it.

1 Comment »
date Feb 13th 2010
author Mike
category Geek, Life
tags, ,
  1 Comment