Monthly Archives: December 2008

FeedFlix Gets Your Money’s Worth from Netflix [NetFlix]

Netflix’s subscription rental service makes it easy to get nearly any DVD delivered to your doorstep, but have you ever wondered how much you’re actually paying per movie or whether you’re getting your money’s worth?

Web site FeedFlix aims to answer that question. It does so by tapping into Netflix’s API and analyzing your usage habits. Once it does so, you can see how much each rental costs you and keep track of the average time you keep your DVDs. If you don’t like what you see, FeedFlix can create alerts that will send reminder emails when you’ve kept a movie for too long. FeedFlix even takes Watch Instantly movies into account to give you a more accurate picture of your viewing habits.

FeedFlix is a great tool to help determine if your Netflix subscription is worth the money you’re paying. If it’s not, you can save the cash by canceling your account or let FeedFlix help you stay on top of your rentals so you’re making the most of your account.






FeedMyTorrents Offers TV Torrent Feeds without Duplicates [BitTorrent]

Web site FeedMyTorrents publishes RSS feeds of torrents for popular TV shows. Just subscribe to your favorite show and let your BitTorrent client automatically download new episodes as soon as they’re available.

FeedMyTorrents isn't the only web site of this kind—perhaps the most notable alternative being tvRSS—but it's a good deal more simple to understand and use than tvRSS. Where tvRSS has an undeniably larger collection of shows, FeedMyTorrents is strict about a duplication-free feed, meaning you don't have to tweak the feed or weed out downloads you don't want. Just pick the show you want to subscribe to, set it up in your BitTorrent client of choice, and you’ll always have the latest and greatest episodes of your favorite shows as soon as they’re available. Thanks Jason!






Generac Guardian Automatic Standby Generator

Right now, the electrical power I’m using to submit this entry as I watch television in my warm home is being supplied by my Generac Guardian 12kw generator. It’s been running continuously for more than 40 hours now since the latest ice storm left 250,000 people in Maine without power. I’ve had this unit for nearly ten years now, and it has reliably provided power whenever the grid fails, which can happen a few times a year in this pretty rural part of the country.

The exact model I have is a 04456-0 which is 10kw when used on Natural Gas or 12kw when used with LP (Liquified Petroleum) Gas. Ours sits on a small pad in the backyard hooked up to the same buried LP gas tank I use to heat the house, provide hot water, etc. Since the unit is air cooled, there’s no radiator or water pump to worry about. No fan belts. And very little maintenance. Essentially, you have a 5-year battery to replace and an oil change every six months. It “exercises” once a week for 20 minutes and will indicate if there is a problem. The most that’s ever gone wrong with it in all these years was a bad spark plug that I fixed in minutes. Mostly, you ignore it until the power goes out. I test mine in the fall or if I hear a big storm is coming; I do that by walking over to the master breaker switch from the power company and shutting it off. Like clockwork, 45 seconds later the house is lit back up as the generator is up and running.

Most importantly, this generator is automatic. As a volunteer firefighter, I wanted a unit that would start up and run automatically, since when we loose power there’s a good chance I’ll be too busy out on the fire trucks to go dragging a portable out of the garage and wiring it in.

Back about 10 years ago, this kind of permanently-installed generator was less common. The Generac line was really one of the first for consumers. At the time, automatic standby units were for businesses and public safety use. Big commercial units were simply out of the range for home use. My Guardian was purchased and installed professionally — including the transfer switch and wiring — for around $5500. I’m told they’re available for much less now. There are also other products out there — mostly higher-end ones like those from CAT — that are great, but still too expensive for the average rural homeowner.

Honda makes great portable generators, like the previously-reviewed EU Series, which is enough to keep the fridge or freezer cold, or switch over and run the furnace to keep the house warm, but they’re heavy, tricky to set up for many people, and don’t hold as much fuel. At 12kw, the Guardian can run my whole house as long as I don’t go crazy. The electric dryer and the air conditioner in my server room are not connected to breakers served by the generator, but everything else is. We’re careful not to use all the burners on the stove and the microwave and oven all at once, but otherwise, it’s just like being on the grid. The generator burns just under a gallon of LP gas per hour on a light to average load. With the tank I have, I can go several days if need be, which is plenty of time to arrange for a delivery of more fuel. During this blackout, my neighbors have even come over to cook and use the shower while their houses are still without power and they’re struggling to keep enough heat in to keep the pipes from bursting. I can’t think of a better testimonial than that.

My older model doesn’t have Generac’s new “True Power” feature that provides a cleaner power cycle for sensitive electronics, so I use battery backup units with AVR (automatic voltage regulation) on that gear. Newer Generac models provide this themselves. The one linked to below appears to be the newer version of mine in terms of size/market/capability, but it’s only $3k. Given that it includes the transfer switch, that’s a hell of a deal. For a cheapo 1 or 2 kw portable generator and transfer switch you’d pay around a thousand bucks.

– Andrew Pollack

Generac Guardian Automatic Standby Generator
$3,050
(12 kW)
Available from Lowe’s

Or $3,000 (10 kW) from Amazon

Manufactured by Generac Power Systems, Inc.

Related Entries:
Pumps-a-lot Water Pump

Self Reliance Journal

Listeroid Diesel Engine

Working with Bitfields

Given space is often at a premium when writing applications for mobile devices, I want to show you how to use bitfields to manage a series of values that need only on/off status. The upside is that you can store a surprising number of status values within a single integer, 32 to be exact.
The [...]

David Pogue’s Best Photography Tricks (and Ours) [Digital Photography]

Tech columnist David Pogue pulls out “The Best Photography Tricks of All Time” for anyone shooting digital, including the crafty use of a lampshade:

It turns out that the threads at the top of just about any lamp—the place where the lampshade screws on—are precisely the same diameter as a tripod mount! In a pinch, you can whip off the lampshade, screw on the camera, and presto: You've got a rock-steady indoor tripod.

His other tips—always half-pressing the shutter button to reduce camera lag, getting a limited depth of field, forcing the flash on outdoors, and exploiting the "magic hour"—are all good reading for anyone new to shooting, especially to memory cards instead of film. We thought we'd add a few of our own collected tips from over the years to round things out a bit:

  • Exhale and pull elbows in for steady shots: Especially if you’re not rocking a vibration-control lens on a DSLR rig, this body-steadying practice can make all the difference for no-flash shots.
  • Use the Unsharp Mask/Smart Sharpen for crisper shots: Photojojo explains how to use Photoshop (and similar photo editing tools) to get finer contrast on digital camera pics. Our commenters wisely point out, however, that the Smart Sharpen tool in Photoshop CS1 and later is the way to go.
  • Deal with shooting in direct light: Because you, and your subjects, can’t always get up at the hour just after dawn, Digital Photography School explains how to work with, and around, a hard sun.
  • Get behind something to shoot more candidly: As Rick pointed out (taken from Digital Photography School’s tips), it's hard to walk around with a lens pointed and not be noticed. For more candid shots, try shooting over someone's shoulder, or shooting through or around something that you don't mind being in the actual photograph for a voyeuristic effect—tree branches, window frames, and the like.
  • Get a cheap, DIY lens hood or flash filter: A lens hood—like the kind you can print yourself—prevents glare, flare, and other light tricks beaming in from just around your lens edges. Similarly, a piece of white coffee filter can work wonders for diffusing your flash, giving bar shots and other low-light situations a much mellower light.

If you had only one tip to give a newcomer to digital photography, what would it be? Step up the chalkboard in the comments. Photo by ssh.






Xcode Keyboard Shortcuts

I’ve always been one to prefer the keyboard over the mouse. It’s fair to say that moving from a command line environment to a GUI was not a quick or painless process.

To this day I still do what I can using the keyboard, and given that I spend the better part of my days working [...]

Detect Forgotten Attachments Before You Send That Email [Microsoft Outlook]

New VB scripter Troy modified a script for Outlook that lets him know when he’s forgotten an attachment on an email (not counting his company logo).

Troy writes:

I started a new job back in July, and had to fill out a form to get access to a client’s network. Unfortunately I sent the email without the form. As part of my new job I had been working on learning VBScript, so this was the perfect opportunity to test my skills. With a little searching I was able to find an example of what I needed, and tweaked it to account for my signature’s company logo.

In short, Troy modified a script Jack Stowage originally posted in the comments here to work for him. Since he attaches his company logo in his outgoing message signature, this version of the script lets you set a base messages attachment number (in his case, one logo file) and compare from there. So if he sends a message with the word “attach” in it and it only has one file attached (the logo)? Outlook pops up the notification shown above.

(Gmail users, you can also have this feature by enabling it in Gmail Labs.)

Hit the link below to grab a copy of the VB script for Outlook, and get the instructions for setting it up yourself. Congratulations to Troy! He’s earned himself a signed copy of our latest book, Upgrade Your Life. Here’s how you can win one yourself by sharing your best timesaver of the year.






OpenSUSE 11.1 Adds OpenOffice.org 3.0, Other Improvements [Linux]

OpenSUSE is out with an 11.1 release that rolls in the latest improvements to GNOME, KDE, the Linux kernel and more, as well as packaging OpenOffice.org 3.0 (which we’ve toured) and renovating the built-in printer and partition tools. Grab an live CD image or torrent link to try it out.






Handling Dynamic Storyboards and Animations in Silverlight 2

Animations are a key part of Silverlight 2 that allow your applications to stand out from all of the boring and dull applications floating around on the Web.  In previous articles I’ve written about storyboards and animations but as a quick review, Silverlight relies upon a Storyboard element to define several different types of animations such as DoubleAnimation (which animates object properties of type double) and ColorAnimation (which animates color properties).  In this article I’ll show you how Silverlight can be used to create animations programmatically and how you can interact with animations defined declaratively in a XAML file using C#.

For this example I’ll create a simple “lightbox” style container that can display pictures from Flickr.  As the picture is being shown the box will grow from a height/width of 0 to a larger size that’s determined by the size of the browser.  Three different animations will be performed by the image display container:

  • Animate the Width from 0 to the width of the browser / 1.5
  • Animate the Height from 0 to the height of the browser / 1.5
  • Animate the Opacity from 0 to 1

If you know the To and From values of the animations upfront then it’s easiest to define them in the XAML file.  In cases where there’s an unknown animation property value, you can create the storyboard and animation objects programmatically or update properties of an existing Storyboard defined in XAML.  In this case a Border control will be animated:

<Border x:Name="LightBoxControl" BorderBrush="Black" BorderThickness="3"
        CornerRadius="10"
        Height="20" Width="20" Opacity="0" Margin="5"
        MouseLeftButtonDown="Image_MouseLeftButtonDown">
    <Border.Background>
        <LinearGradientBrush EndPoint="0.893,0.116" StartPoint="0.403,0.694">
            <GradientStop Color="#FFB9B9B9" Offset="1"/>
            <GradientStop Color="#FF4F4F4F" Offset="0"/>
            <GradientStop Color="#FF666666" Offset="0.496"/>
        </LinearGradientBrush>
    </Border.Background>
    <StackPanel x:Name="spImage">
        <Border HorizontalAlignment="Right" VerticalAlignment="Top" BorderBrush="Black"
                BorderThickness="1" CornerRadius="8" Background="LightGray" Width="60" Height="25">
            <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="12"
                       Text="Close" />
        </Border>
        <Rectangle x:Name="LightBoxImage" HorizontalAlignment="Center"
                   Fill="Black" RadiusX="10" RadiusY="10"
                   Stroke="LightGray" StrokeThickness="2" Margin="5">
        </Rectangle>
    </StackPanel>
</Border>

Here’s an example of programmatically creating a Storyboard and defining the 3 animations mentioned earlier to change the Width, Height and Opacity properties of the Border control:

double? width = (double?)System.Windows.Browser.HtmlPage.Document.Body.GetProperty("offsetWidth") / 1.5;
double? height = (double?)System.Windows.Browser.HtmlPage.Document.Body.GetProperty("offsetHeight") / 1.5;
//Programmatic way to create a storyboard and animations
Storyboard sb = new Storyboard();

//Create animation for Border control's Width
DoubleAnimation wa = new DoubleAnimation();
wa.Duration = new Duration(TimeSpan.FromSeconds(0.5))
wa.From = 0;
wa.To = width;
Storyboard.SetTarget(wa, LightBoxControl);
Storyboard.SetTargetProperty(wa, new PropertyPath(Border.WidthProperty));
sb.Children.Add(wa);

//Create animation for Border control's Height
DoubleAnimation ha = new DoubleAnimation();
ha.Duration = new Duration(TimeSpan.FromSeconds(0.5));
ha.From = 0;
ha.To = height;
Storyboard.SetTarget(ha, LightBoxControl);
Storyboard.SetTargetProperty(ha, new PropertyPath(Border.HeightProperty));
sb.Children.Add(ha);

//Create animation for Border control's Opacity
DoubleAnimation oa = new DoubleAnimation();
oa.Duration = new Duration(TimeSpan.FromSeconds(0.5));
oa.From = 0;
oa.To = 1;
Storyboard.SetTarget(oa, LightBoxControl);
Storyboard.SetTargetProperty(oa, new PropertyPath(Border.OpacityProperty));
sb.Children.Add(oa);

this.spImage.Width = width.Value - 30;
this.spImage.Height = height.Value - 30;
this.LightBoxImage.Width = width.Value - 75;
this.LightBoxImage.Height = height.Value - 75;
sb.Begin();

In this example the final height and width of the target Border control are determined by grabbing the offsetWidth and offsetHeight values using the HtmlPage class.  Once those values are determined a Storyboard object is created along with the three animations all of type DoubleAnimation.  Each animation takes 1/2 second to complete and animates the Border control’s Height, Width and Opacity properties respectively. 

Looking through the code for each animation object you’ll notice that it is associated with the target object and target object property using the Storyboard.SetTarget() and Storyboard.SetTargetProperty() static methods respectively.  This may seem strange at first glance but makes sense once you understand the concept of attached properties.  Each animation object is added to the parent Storyboard object using the Children.Add() method and the Storyboard is started by calling the Begin() method.

Interacting with Storyboards and Animations Defined in XAML

The programmatic approach to creating animations works great when there’s a lot of dynamic data being fed into animation objects.  However, in this example only the Height and Width properties are being changed on the Border control.  That’s a lot of code to write to change two properties.  Rather than defining everything programmatically you can instead define the storyboard and associated animations declaratively and fill in the dynamic pieces at runtime.  Here’s an example of defining the 3 animations shown earlier in XAML:

<Storyboard x:Name="sbShow">
    <DoubleAnimation x:Name="daWidth" Storyboard.TargetName="LightBoxControl"
                     Storyboard.TargetProperty="Width"
                     From="0" Duration="00:00:0.5" />
    <DoubleAnimation x:Name="daHeight" Storyboard.TargetName="LightBoxControl"
                     Storyboard.TargetProperty="Height"
                     From="0" Duration="00:00:0.5" />
    <DoubleAnimation Storyboard.TargetName="LightBoxControl"
                     Storyboard.TargetProperty="Opacity"
                     From="0" To="1" Duration="00:00:0.5" />
</Storyboard>

Before the storyboard starts to play the To property of the daWidth and daHeight objects can then be assigned values as shown next:

double? width = (double?)System.Windows.Browser.HtmlPage.Document.Body.GetProperty("offsetWidth") / 1.5;
double? height = (double?)System.Windows.Browser.HtmlPage.Document.Body.GetProperty("offsetHeight") / 1.5;

//Define how big the Border control should be animated to by setting the To property value

this.daWidth.To = width;
this.daHeight.To = height;
this.spImage.Width = width.Value - 30;
this.spImage.Height = height.Value - 30;
this.LightBoxImage.Width = width.Value - 75;
this.LightBoxImage.Height = height.Value - 75;
this.sbShow.Begin();

And that’s all there is to it!  Silverlight makes it easy to work with dynamic animations whether programmatically or through modifying storyboards defined in XAML.  Download a working version of the Flickr lightbox application here if you’d like to see the animations in action (as well as some others).

 image 
Interested in learning more about Silverlight 2 application development?  Visit Interface Technical Training’s website for more information about their Silverlight 2 training course or call 1-800-264-9029.  I'll be teaching the course in the Phoenix area (or onsite at customer locations).

LucidChart Makes Stripped-Down Flowcharts for Free [Flowchart]

Flowcharts are supposed to be a combination of words and line drawings anyone can grasp, but some software solutions get far too complex with them.

LucidChart, an online flowchart creator that offers a free plan with 5MB of online storage, gets back to black-ink/white-background basics. The standard process/decision/input/etc. inputs are in a left-hand toolbar, the diagram background is graph-lined paper, and it works fairly snappy on most browsers. There are custom images for certain fields, and you can upload custom images if you’d like. But for those who just want a clean and easy PDF, screengrab, or print-out, LucidChart’s basic tools are best. LucidChart has a free plan that requires a sign-up.






WP Like Button Plugin by Free WordPress Templates