November 4, 2006 spout

Pay As You Go Phones For the Boys

Back in writer avoidance mode, I did some research into PAYG phones for the boys based on some recommendations from friends, colleagues and Wikipedia. This is what I found:

Company Entry-Level
Phone Cost
Initial Airtime Additional
Airtime
Coverage
In My Area
Virgin Mobile $20 $20 (100 minutes) $11/hour uncertain
T-Mobile ToGo $30 $10 (30 minutes) $20/hour good
Firefly Mobile $80
(no keypad)
$7.50 (30 minutes) $15/hour reported
Tracfone $20
(shows time left)
$40 (120 minutes) $20/hour reported
Boost Mobile unknown
(bad website)
unknown
(bad website)
$12/hour reported
Cingular GoPhone unknown
(bad website)
$10 (40 minutes) $15/hour +
$1/day for usage
crappy
Verizon INpulse $70 $10 (100 minutes) $6/hour +
$1/day
reported
Net10 Wireless $40
(shows time left)
$30 (300 minutes) $6/hour reported

Assuming I trust my kids to call whoever they want (so long as they pay), it seems clear that Net10 is the way to go. It’s effectively $10 for the entry-level phone (because it comes w/ $30 of free airtime) and $6/hour for more time after the first 300 minutes are gone. Plus, the Net10 phones show the amount of time left on the account, so the boys can monitor it themselves easily. Neither AT&T Wireless or Cingular has good reception in my area, so who knows what the reception would be, but for $40, it wouldn’t be expensive to find out and they sell them at my local Safeway…

October 30, 2006 money

Mark Twain on Investing

OCTOBER: This is one of the peculiarly dangerous months to speculate in stocks in. The other are July, January, September, April, November, May, March, June, December, August, and February.

-Mark Twain

October 28, 2006 fun

Project Life Cycle

Project Life Cycle

This one’s been around a while and just feels so true…
Sat, 10/28/2006 10:24am

October 18, 2006 fun

Imitation, Flattery, Nudity

Imitation, Flattery, Nudity

From JJ5′s web site.
Wed, 10/18/2006 11:08am (what a thing to see so early in the morning…)

October 18, 2006 spout

Isaiah Okorie Asks “How do you do what you do?”

From: Isaiah Okorie

Sent: Friday, October 13, 2006 08:06 AM

To: csells@sellsbrothers.com; csells@microsoft.com

Subject: XSellent!!!

 

Hi Chris,

 

I am  a .Net developer working in Ghana, West Africa. I have been reading your articles for a while now and listened to you whenever the opportunity came along. I think you have been very inspirational to my own work.

[csells] I’m happy to hear that. Thanks.

 

If you don’t mind, I would like to know how you are able to organise you work. How are you able to prepare for your conferences and still be a prolific author?

[csells] I think I’d sum it up as: Commitment + Fear. First, I commit to something, then I let the fear of bad consequences, i.e. giving a bad talk, missing my deadline, writing something inaccurate, etc, motivate me to do a good job. Unfortunately, this means I spend more time working then I’d like, but generally the results turn out pretty good.

 

What discussion groups, conferences, blogs (if any) are a must for you?

[csells] Since becoming an MS employee, I lurk on a few internal aliases based on the technologies I’m interested in. Externally, I hang out on slashdot.org, joelonsoftware.com and computerzen.com and that’s probably about it. It used to be lots, lots, lots more, but I just don’t have the kind of time I used to. As far as conferences go, I generally only do the PDC and my own DevCons.

 

How are you able to keep up with the changes? What books do you read?

[csells] I keep up with changes by a) a broad familiarity with as much technology as possible and then b) committing to using it because it feels like it’ll be the right thing and c) using fear to motivate me (recognize a pattern? : ). I read books on demand given the topic I’m into, and then it’s 3-5 books in a week for immersion. Frankly, after writing a few books, I’m a bit of a snob, so I don’t read a lot of technical books for fun the way I used to.

 

Now you work at Microsoft, how do you manage your usual tasks’?

[csells] Honestly, it’s hard to keep up with the personal mail; I don’t do as good a job as I’d like. The web site stuff, e.g. blog, tools, spout, Genghis, etc, is catch as catch can. As soon as this last book is done (WPF Programming: The RTM Edition), I plan on trying to get some balance back into my life.

 

Many thanks for your inspiring hard work.

 

[csells] My pleasure.

October 11, 2006 fun

The Positronic Man

The Positronic Man

From left to right, Ted Neward, Rocky Lhotka, Chris Sells’s cardboard cutout and his electronic image projected to building 33 in Redmond, WA from Lake Oswego, Oregon, Patrick Cauldwell and Scott Hanselman.

From Keith Pleas, Microsoft Patterns & Practices Open Source in the Enterprise” panel organizer
10/11/2006

October 6, 2006 fun

I don’t know what this has to do with Vista…

but I like it.
October 6, 2006 .net

WPF: Enabling Crimes Against Nature in a Good Way

WPF: Enabling Crimes Against Nature in a Good Way

My friend Jeff asked me to do a terrible thing yesterday: How do I show a form in the popup window that a menu shows?” I said, Dude! Don’t do that — write a dialog!” And that’s what he did, but then, like a train wreck, I couldn’t look away. It took me all of 10 minutes of very straight forward coding and here we are:

If you’re familiar with WPF, data binding and data templates, this is all standard stuff. Here’s the data structure:

class Person : INotifyPropertyChanged
{
    string name;
    public string Name
    {
        get { return name; }
        set { name = value; Notify("Name"); }
    }
    int age;
    public int Age
    {
        get { return age; }
        set { age = value; Notify("Age"); }
    }
    public event PropertyChangedEventHandler PropertyChanged;
    void Notify(string prop) { if( PropertyChanged != null ) { PropertyChanged(this, new PropertyChangedEventArgs(prop)); } }
}

The data template is also bog standard:

<DataTemplate DataType="{x:Type local:Person}">
  <Grid>
    <Grid.RowDefinitions>
      <RowDefinition Height="auto" />
      <RowDefinition Height="auto" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="auto" />
      <ColumnDefinition Width="auto" />
    </Grid.ColumnDefinitions>
    <Label Grid.Row="0" Grid.Column="0">_Name</Label>
    <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Name}" />
    <Label Grid.Row="1" Grid.Column="0">_Age</Label>
    <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Age}" />
  </Grid>
</DataTemplate>

Setting up the app itself is nothing special:

<Window ...>
  <Window.Resources>
    <DataTemplate DataType="{x:Type local:Person}">
      ...
    </DataTemplate>
  </Window.Resources>
  <Grid>
    <Menu>
      <MenuItem Header="File">
        <MenuItem Header="Exit" x:Name="fileExitMenuItem" />
      </MenuItem>
      <MenuItem Header="Form" ItemsSource="{Binding}" />
    </Menu>
  </Grid>
</Window>

Notice that the items that make up the menu come from a binding to the ambient data source, which we set in the code-behind:

protected override void OnInitialized(EventArgs e)
{
    ...
    Person tom = new Person();
    tom.Name = "Tom";
    tom.Age = 11;
    DataContext = new Person[] { tom };
}

The only thing at all tricky is that, even though we’re only editing a single object in the popdown window,” it has to be in an implementation of IEnumerable so that the menu can display it (it expects items to come in a list).

That’s it. You can download the RC1 WPF project here.

You might wonder why I would post such a sample, when clearly that’s not a UI we want to foster on folks. The answer is simple: because WPF allows it.

The power of any platform should be judged by how well it lets you write bad code. Early versions of Visual Basic let you write really bad code — but it worked. Likewise, WPF lets me build the worst UIs ever — but they work. This is necessary so that UI visionaries can experiment and get to a place where they’re doing something completely different from UIs of today and we like it.

Do you think the Office folks, who, for all practical purposes, have been setting UI guidelines on Windows for a decade, could use MFC or Windows Forms? No, because they’re not flexible enough. Could they use WPF? Absolutely they could. And so can you.

The crayon box has lots of colors that I don’t like, but in the hands of an artist, they can create beauty.


← Newer Entries Older Entries →