In my home I have some simple paper blinds. In order to "open" them I have to tediously fold the paper back and forth a few dozen times. I imagine this used to be easier when they were fresh and un-crinkled, but they aren't new anymore. Because they are so inconvenient to open, we usually don't. We have been talking about replacing them with something equipped with a draw-string, but new blinds are so costly. Before we sunk money into new blinds, I wanted to see if I could make better use of the paper we had. I wanted to add a draw-string.
... was simple:
Recently, while preparing a lasagna dinner for some friends, I thought of a new way to build it which would prevent the hard, crusty, edges that plague so many otherwise great lasagnas. The problem is, in the time it takes the innermost depths of deliciousness to thoroughly bake into ooey-gooey-goodness, the outermost edges (and especially the corners) of most lasagnas will completely dry out. This leaves the edges, and sometimes even the whole top layer, as hard as an uncooked noodle. You can't stab it with a fork. You can't cut it with a knife. All you can do is beat it into brittle submission (or peel it off), which gets messy.
Not wanting to serve my dear friends less than perfection, I pondered this problem a moment. I could cover it with aluminium foil, but this technique has often yielded watery, runny, lasagna. A lasagna should stiffen up a bit as the sauce cooks and the cheese sets. Sure, much of this setting occurs during cool-down, but a watery lasagna won't set right. So, I'm back to crusty-edged lasagna. If only there were a way to make an edge-less lasagna. There is (almost)!
more...Previously, when HTML coders wanted to cause a link to open in a new window, they used the target
parameter in their anchor tags, specifically <a target="_blank" ...>
. This, of course, is deprecated (invalid) in the current standards (HTML 4.01 Strict and XHTML 1.0 Strict). While the target
parameter apparently will return in HTML5 we are nonetheless left with the current dilemma of how to recreate this behavior.
I have noticed a small variety of popular responses, solutions, to this:
target
parameter
<a target="_blank" href="http://tyleruebele.com/">
<a onclick="window.open(this.href,'_blank');return false;" href="http://tyleruebele.com/">
rel
parameter value external
<a rel="external" href="http://tyleruebele.com/">
<script type="text/javascript"> var anchors = document.getElementsByTagName("a"); for(var i=0; i < anchors.length; i++){ if(anchors[i].getAttribute("href") && -1 < anchors[i].getAttribute("rel").indexOf("external")) { anchors[i].target='_blank'; } } </script>
Option 1 is clearly outside the intent of the standard and this article. Option 2 is compliant, and cleanly self-contained in the anchor. Option 3 attempts to replicate the simplicity of <a target="_blank" ...>
with rel="external"
, and recreate the functionality with a few lines of javascipt, typically added to the end of the document.
There has been a lot of chatter lately about using exercise balls as chairs. There are many who tout supposed benefits of sitting on the large inflatables all day, instead of a contemporary office chair. Contrarily, there are some concerned voices letting us know why it could be a bad idea. It's quite the fad of late with balls showing up not just in homes, but business offices. There is even an established radio/podcast personality who does all of his broadcasts sitting on an iconic blue ball. Ironically, he also demonstrated a risk on his live broadcast. Despite his peril, I've been interested in trying it out myself.
But I had a different idea. I wondered what I could do that would take up less space. Looking around the house for what I had at my disposal, I found some scraps of wood and decided to try a basic one-legged stool. In the quickest build you can call a build, just nailing two already cut scraps of wood together with three nails, I had my new stool. It was just the right height, small, easy to store away, and not a bad sit. Unfortunately it was too stable -- it didn't accurately enough mimic the experience of the exercise ball. The fixed joint gave me too much lateral stability, and the forward width of just over five inches gave it too much forward stability. Worst of all, it didn't bounce.
I like to take a lot of pictures. Sometimes, when I see a particularly appealing scene, I will take several overlapped pictures with the intent of putting them together into one panoramic image. In the past, I've tried to use Adobe Photoshop CS2 (or other made-for-the-job tools) to assemble my panoramas. My success was... limited:
Notice how you can see every seam?
More recently, I discovered Microsoft Image Composite Editor which Microsoft offers for free. It's not officially supported, and not a complete product; it has few options for the user to manage, meaning that there is no way to correct what it does wrong. That said, it's by far (by far) the best panoramic image compositor I have seen (not that I have seen many). The single most important aspect of its method is, I think, the perspective correction it does on each frame before trying to combine them. Consider the below rendition of the above panorama:
Or this demonstration of a full 180 degree pan, in which I turned the camera on its side to get more vertical coverage:
I have plenty of other stitched panoramas for your viewing pleasure!
Quite some time ago a co-worker experienced a computer failure. She did not have a backup. She scoured her digital world for any trace of her data. Some of her music was on her iDevice, and while Apple doesn't like to let you copy music off their branded devices, various third parties provide the tools she used to make it happen. Then there was the several hundred photos she had posted on facebook, either in albums, or merely tagged of her. Because facebook scales down uploaded photos, it makes a lousy photo backup site, but when compared to total loss; her choice was evident.
But how to recover several hundred photos from facebook without spending days right-clicking? Ask meyour programming co-worker, of course!
Faced with the challenge of manipulating facebook's album pages to download all of her pictures, I turned to Firefox's Greasemonkey plug-in. Greasemonkey lets users run user scripts, which are basically scripts, run by the user, to various web-pages. In this case, facebook's album pages. Making extensive use of firebug and some basic javascript skills, I was able to coax firefox into downloading an entire album. Running this user script against each of her album pages produced all of her pictures for her.
more...