New Kindle Software Update!

Sweet!

  • Longer battery life for Kindle (Global Wireless): You can now read for up to 1 week on a single charge with wireless on. Turn wireless off and read for up to 2 weeks.
  • Built-in PDF reader: Your Kindle can now display PDF documents without losing the formatting of the original file. Send PDF documents directly to your Kindle (via your @Kindle address) or drag and drop PDF files from your computer to your Kindle (when connected via USB). Learn more.
  • and a few other things …

Get it here manually, or wait for the auto update.

Kindle 2.3 Update

I immediately added a few manuals for cameras, etc. – things that I take on vacations with me that I occasionally wish I had the manual for. I had converted them using their free service before, but it left them a mangled mess too often. The Nikon D300 manual for instance, is very readble now on the Kindle.

Thanks Amazon for this upgrade!

Google’s Chrome OS, Day 1

I downloaded the open source build of Google’s Chrome operating system from gdgt here and then tried it out in Vmware Workstation 7 running on Windows 7 x64. (It didn’t work the first time I tried it as my fresh Vmware installation required a reboot, which I hadn’t done).

Biggest shock is that they included Flash Player:

image

image

Even on my quad core though, it’s barely usable. There aren’t any “vmware tools” for the environment, so my experiences I’m certain don’t represent any real world scenarios. There’s no audio support either, so it’s not useful either.

Apparently, other things are broken as well:

image

image

Using CTRL+ALT+T, you can access the terminal. For example, here’s the list of processes running:

image

Other than that, there’s not much to see. It’s just a browser. Yawn.

Maybe it will become clear why this is such a great thing – but for now, it’s just not clear. It’s probably a good thing that it won’t be ready for a year, as I’m sure that the market overall isn’t ready for a device like this. And if the price difference isn’t much between this and and a Win7 powered netbook, why bother? Even if it can cold start in 7 seconds, I can return from standby on my current laptop in about 2 seconds ….

Are you interested in Google Chrome OS?

“Can you hear me, sort-a? What? Huh?”

My wife and I decided to switch our cell phone service to Verizon, to join the USA’s most awesomest network. We bought 2 new Android phones, figured out what plans to get … it took about an hour and half in the store.

Having learned our lesson last time we tried to switch wireless carriers, we declined the automatic number port and got new numbers instead. We confirmed that we could port the numbers later and cancel our existing AT&T service ourselves.

On her Droid phone (the Eris), she got maybe one bar of service, if she stood in the right place, and faced the proper direction, with her arms at the proper height.

On my Motorola DROID, it was about 1 to 2 bars of service. A call between the two phones sounded absolutely terrible, with cut outs and so much vocal digitization that it was a very unpleasant experience.

Yes, there was “3G” service at our house, but making a phone call seemed to be a challenge – so, sorry Verizon. I can’t hear you now.

(And I’m aware of the Wireless Network Extender, but it has a bunch of caveats about size of house, network bandwidth, etc., that we can’t necessarily adapt to).

Phones will be returned.

AT&T didn’t even know we temporarily considered other options. :)

Silverlight ClipToBounds

WPF’s ClipToBounds property is not available on Panels in Silverlight, which can lead to some design frustration. Using the new Interactions and Blend Behavior framework, it’s easy to whip up something nearly identical!

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Interactivity;
//using Microsoft.Expression.Interactivity.Core;

namespace AutoClipperDemo
{
    public class AutoClipBehavior : Behavior<DependencyObject>
    {
        private RectangleGeometry _rectGeo;

        protected override void OnAttached()
        {
            base.OnAttached();

            if (base.AssociatedObject is FrameworkElement)
            {                 
                FrameworkElement fe = AssociatedObject as FrameworkElement;
                fe.SizeChanged += new SizeChangedEventHandler(AttachedObjectSizeChanged);
                
                _rectGeo = new RectangleGeometry();
                fe.Clip = _rectGeo;
                
                OnAdjustClip(fe, new Size(fe.ActualWidth, fe.ActualHeight));
            }            
        }

        protected virtual void OnAdjustClip(FrameworkElement fe, Size sz)
        {
            Rect rect = new Rect(0, 0, sz.Width, sz.Height);

            // it would be interesting to handle the border, but alas
            // we can't as it would clip the border as well. :)
            // best solution is to just put the border on or around
            // the panel being clipped by this
            _rectGeo.Rect = rect;
        }

        private void AttachedObjectSizeChanged(object sender, SizeChangedEventArgs e)
        {            
            OnAdjustClip(AssociatedObject as FrameworkElement, e.NewSize);
        }

        // always clean up after yourself ... remove anything that was attached
        // to prevent incorrect clipping and unnecessary event handlers
        protected override void OnDetaching()
        {
            base.OnDetaching();

            if (base.AssociatedObject is FrameworkElement)
            {
                FrameworkElement fe = AssociatedObject as FrameworkElement;
                fe.SizeChanged -= new SizeChangedEventHandler(AttachedObjectSizeChanged);
                fe.Clip = null;
                _rectGeo = null;
            }
        }
    }
}

image

<Border Grid.Column="4" Grid.Row="2" BorderBrush="White" BorderThickness="4" Background="#FF31C525">
    <i:Interaction.Behaviors>
        <local:AutoClipBehavior/>
    </i:Interaction.Behaviors>
    <Grid>
        <Ellipse Fill="#FF09570A" Stroke="Black" Height="250" Margin="91,138,-61,-46" VerticalAlignment="Bottom" Width="250"/>
    </Grid>
</Border>