# Friday, October 08, 2010

So I just got off the phone with a Comcast sales person.  I use Comcast for my business internet connection and they wanted to sell me their phone service as well.  Fair enough, but their prices are still higher than what I pay Vonage, and I'm an "if it ain't broke don't fix it" kind of person, so I'm fine staying with what I have.

Next she asked me who I have service through, so I told her Vonage.  At that point she tried a scare tactic on me, which I find a bit disingenuous, unethical (and maybe even legally shaky).  She told me (paraphrasing here) that she had heard reports of people being able to listen to your Vonage calls, even on cell phones when they didn't intend to.  He claim was that since vonage used "the internet" that it was pretty much open to anyone listening.

So I asked her this.  Since my "internet" is provided through that same Comcast cable that their phone service would be providedd through, how was that any different?  She then backpedaled and told me there were threee "lines" in the cable - one for internet, one for phone and one for fax.  I should have asked what line the TV broadcast would come through if I had that, or that when I look at the wire I only see one line.

I then informed her that I was fine continuing my Vonage service.  She again tried the scare tactic and asked "so you don't care if people can listen to your business conversations?" 

I told her that I actually didn't care.  If someone wan't to listen to the infrequent and usually boring phone conversations I have they're more than welcome to.  I'm not doing any super-secret spy stuff, and our value is our experience, and you can't steal that through my phone line.

What I will be doing, however, is shopping for a new internet provider.

Friday, October 08, 2010 12:46:29 PM (Central Daylight Time, UTC-05:00)  #     | 
# Friday, June 05, 2009

The new Demo showing XAML for Windows CE is really, really impressive.  This is non-WinMo, meaning CE no longer is a second-class citizen  in the device market.  If only I knew how to do design work....

Friday, June 05, 2009 5:48:26 PM (Central Daylight Time, UTC-05:00)  #     | 
# Tuesday, May 12, 2009

Admittedly this isn't really mobile related, but the guys over at CI Advantage are giving away T-Shirts with every download of the eval version of Deploy Now (which we do use and love here).  If you have desktop installations of anything, including mobile software or tools (we use it for testing the SDF installer scenarios, among other things) - it's a major time saver.

Tuesday, May 12, 2009 9:01:04 PM (Central Daylight Time, UTC-05:00)  #     | 
# Wednesday, January 07, 2009
I just discovered a site that I think is invaluable for any of us that answer a lot of public questions.

Wednesday, January 07, 2009 11:36:32 AM (Central Standard Time, UTC-06:00)  #     | 
# Thursday, November 06, 2008
So a few months ago we released our CAB Installer SDK, and we decided to try out value-based pricing as a social experiment.  Our thinking was that developers make their living - and typically a more comfortable living than flipping burgers - and that the would a) understand the value of code and time saved and b) be willing to compensate us for the SDK based on their perceived value of the product.

We here we are a full four months later, and how is this experiment going?  Well here's a graph that says it all:




What this says is that we've sold 51 "value units" to 37 customers, meaning that over 80% of you who bought it only paid $5.  Now assuming you're a low-paid, entry-level guy making only $40k a year that means you felt it's worth just over 15 minutes of your time (and keep in mind this thing comes with full source code).

What this tells me is that one of these must be the case:

1) The SDK sucks and has no value
2) People don't understand "value-based" pricing
3) Developers are cheap bastards who will pay as little as possible for something

Well #1 is probably not true, as we've used it on a few projects and it works well.  I think we descibed value-based pricing pretty clearly, and it's not a tough concept.  So all I can conclude is, well, #3 must be true.  Now we can't really hold it against you, after all we did allow you to buy it for $5 and some people simply have low moral standards.  I'm just surprised it's so many of you.

Will we change the pricing model?  Well I have two thoughts on that.

1) the current pricing includes zero support, so it's no "work" for us to just leave it as-is
2) moving it to fully open source might increase the number of people using it

I'm inclined to go with #1, simply because moving it to open source requires a bit of work on our part.  In short, we'll keep it out there as an apparent $5 product because I'm too busy to do anything else with it, but the likelihood of it getting any additional features is pretty slim.  It was an experiment that yielded data, and as such I'd say that it was valuable.  It certainly shows that it's a pricing model that can't be used to support a business.

Thursday, November 06, 2008 9:13:06 AM (Central Standard Time, UTC-06:00)  #     | 
# Wednesday, September 10, 2008
Every now and then (much less now that .NET languages have been around are are pretty mature) I see people who are moving into .NET programming and they ask "which is better, C# or VB.NET."  Generally speaking there is no "better" but there are some things available in one language but not the other.  Typically I've always thought that C# had just a little more - it has the ability to support unsafe code, which I like and use occasionally.  I could never come up with something VB had that C# didn't.  Until today.

A friend asked me how he could use the Contains() method of a string inside a case statement, and it reminded me of an old VB 6 construct that I'd used, so I tried it to be sure VB.NET still supported it, and sure enough, it works fine:

        Dim myvar As String = "My Test String"

        Select Case True
            Case myvar.Contains("not there")
                Debug.WriteLine("Contains 'not there'")
            Case myvar.Contains("Test")
                Debug.WriteLine("Contains 'Test'")
            Case myvar.Contains("Other")
                Debug.WriteLine("Contains 'Other'")
        End Select

However the construct won't work in C#.  It won't even compile because C# expects case labels to be constants.

        string myvar = "My Test String";

        switch (true)
        {
          case myvar.Contains("not there"):
            Debug.WriteLine("Contains 'not there'");
            break;
          case myvar.Contains("Test"):
            Debug.WriteLine("Contains 'Test'");
            break;
          case myvar.Contains("Other"):
            Debug.WriteLine("Contains 'Other'");
            break;
        }

So there you go VB lovers - score on point for your side.  I'm not saying that I'm going to start writing all my code in VB now (not that I have anything against VB, I mean I did co-author a book on it, I'm just really rusty) but here's some fodder for what some consider a religious debate.

Wednesday, September 10, 2008 10:55:08 AM (Central Daylight Time, UTC-05:00)  #     | 
# Thursday, January 17, 2008
We've had a little bit of a brand confusion problem for a while now.  Many people incorrectly refer to our Smart Device Framework library as "OpenNETCF" - so you hear things like "I'm using OpenNETCF version 2.1" which is a bit annoying.  OpenNETCF is the company name.  We have multiple products.  You're not using Microsoft 8.0 are you?  "Hey look at how smart I am!  I listen to music on my Apple 4.0."

But it seems to have gotten worse.  A friend just sent me a clip of a resume he received.  Of course it seems to have way more on it than a person probably would know having graduated probably 2 or 3 years ago (it's clipped, but I assume that the candidate was at UT for probably 2 years) but note the list of technologies.


Thursday, January 17, 2008 4:48:13 PM (Central Standard Time, UTC-06:00)  #     | 
# Thursday, March 08, 2007

And so ends the debate of whether you can time an engine by ear or not.

 

Thursday, March 08, 2007 8:00:38 AM (Central Standard Time, UTC-06:00)  #     | 
# Friday, June 30, 2006

Check this out!  Software stored on 12-inch vinyl.  That's insane.

Friday, June 30, 2006 12:29:24 PM (Central Daylight Time, UTC-05:00)  #     | 
# Tuesday, May 30, 2006

As I get older and busier I've found that I seem to have a hard time keeping up with artists that produce music I like.  The radio only plays familiar new stuff over and over and is a poor way to get informed, and I don't really have the time to go blog hunting to find someone with similar tastes and then look at their play lists, then look at each band.  I want simplicity.

Today I found Pandora, and I found it works beautifully.  Basically you put in a group or song you like and it just starts playing random songs that it thinks you might like based on that.  You can tune it like a TiVo - telling what you do and don't like (though I've not had to say no to anything yet).  Even more impressive is that it will give you an explanation of why it picked the song it's playing.

They have a revenue model as well - you can buy the song directly from iTunes or the entire album from Amazon from the interface, which means that they may stay around a while to continue bringing us music.

 

Tuesday, May 30, 2006 11:09:53 AM (Central Daylight Time, UTC-05:00)  #     | 
# Monday, May 29, 2006

For those interested in the quick version of how I got where I am, I just posted my partner profile at OpenNETCF.  If you want a more detailed version you'll have to catch me in person and buy me a beer.

Monday, May 29, 2006 2:19:41 PM (Central Daylight Time, UTC-05:00)  #     | 
# Saturday, April 29, 2006

So OpenNETCF Consulting is growing and as such I decided to get a business number and fax line through Vonage.  We get and send very, very few faxes (maybe 1 a month if we're busy) but the line was free, and when you need it send or receive a contract, NDA or whatever, you just have to have it. 

Well we had been using the eFax service but since the fax line was free I figured there was no point in spending the $12 a month for the service we didn't need.  Mind you I never had a problem with them.  Service was fine, the product met our needs when we needed it, it just has become unnecessary.  So I decided last night I'd cancel it.  This is where the journey began...

Step 1 - Log in.  Well I don't use the service often, so I had to find my PIN.  Of course I recently changed jobs, so my PIn was in an email that was in a PST archive saved off from another PC.  Search through boxes to find the righ CD, then search through the CD for the PST, then search through the PST for efails from eFax, then search through those for a PIN.  I've now burned an hour.

Step 2 - Cancel service online. Scoured their site - every logical (and even not so logical pages) to find something that allows me to stop the service.  Found ways to alter my billing info, pay yearly instead of monthly, change my PIN to somethign I might remember (would've been useful a while ago), but nothing for stopping service. Another 30 minutes or so down the drain.

Step 3 - Email customer service.  Searched the site for an email for customer service.  Nothing.  Sent an email to their sales staff becasue it was the only email I could find.

Step 4 - Call customer service. I hate calling when an email or online form will do, but a call is what it must be.  Sorry, it's after their business hours, please call later.

Step 5 - Call customer service again.  Waited til the next day (got the feeling Saturday won't be too helpful, but I'm wishful).  Actually listened to automated menu this time and found that you cannot cancel service over the phone.  You must do it online (nice eh?).  Fortunately the message gives the URL: www.efax.com/cancel. There is absolutely no link on their site to this (believe me, I went back and looked) - it's an orphan page.

Step 6 - Cancel service online.  To cancel service you must chat with a live representative. Why can't I just click a damned button?  Now I'm getting irritated.  The representative needs my eFax number and PIN - fortunately I dug through the boxes yesterday to get it.

Step 7 - Chat with representative and try to simply cancel service.  Rep obviously is eitehr cut and pasting or has an app that posts responses or they have Clark Kent on the help desk.  Green are comments, not chat text.

Welcome to chat.
The session has been accepted.
 
{eFax Rep} Hello, Chris. Welcome to j2 Global online support. I am <rep name>, your online live Support Representative. How are you doing today? 
(at least he's friendly)
{ctacke} fine 
{ctacke} I have an account that I'd like to cancel 
{eFax Rep} I'm sorry to hear that you wish to cancel. Could you please provide me your Fax number and the PIN for verification purposes? 
{ctacke} the number is <number> 
{ctacke} pin is <pin> 
{eFax Rep} Thank you for the information. Please give me a moment while I quickly check your account. In the meanwhile, may I ask why you wish to cancel your fax account? 
(understandable.  always good to know why someone is leaving)
{ctacke} We installed a land line for faxes 
{ctacke} Basically we've grown and now have a permanent office 
{eFax Rep} Chris,I have just checked your account. Our records indicate that you have been a long time customer. We value your business and relationship with us. I would like to mention to you an exclusive offer.
(here comes the soft sell - now I know why I can't just bush a button)
{eFax Rep} Chris, It is always good to have a alternative faxing service as you may not know when the need for faxing may arise.
In the current scenario, as a special consideration and gesture of goodwill.Your eFax account will be credited with $25.90 so that you may utilize our services without being billed our monthly fee for the next two billing cycles. 
{eFax Rep} Hence, you will be able to use our service to its fullest capabilities and re-evaluate it for your faxing needs. During this credit period, you will not be charged any monthly fees. 
{eFax Rep} If however, you still feel that you do not have any use for our services by the end of the two months credit period, then you can always contact us back anytime. 
{ctacke} No thanks. I'd like to just cancel it. 
{eFax Rep} During this two months credit period, you can keep this service active and if you use it once in these two months we will be more than happy that we were able to serve you. Trust me there are no hidden traits and you will not be charged any monthly fees for this account during this period. 
(What part of "cancel it" does he not get?)
{eFax Rep} As a good will gesture to continue our association we will offer you an additional gift balance of $10 along with the monthly credit which will enable to send up to 100 additional fax pages free of cost anywhere in USA & Canada. 
{eFax Rep} Chris, all you need to do is contact us once before the two months credit period ends if you do not wish to continue with the service. There is certainly no obligation to stay back after the two months credit period ends. You can contact us anytime. We are available 24 x 7.
(24x7 if you know the magic way to get here maybe)
{ctacke} Yes, I understand that, but as it is I forget things. For example, I installed my land line almost 2 months ago and kept eFax just in case we had issues. We haven't, so I'm comfortable with just keeping the land line. 
(really, I'm forgetful and the last thing I want is to get another charge in 3 months because I forgot to find my PIN, come to this magic page and get this same sales pitch again)
{ctacke} So I would like to cancel my eFax account. Thanks. 
{eFax Rep} All right, I will cancel the account for you now. 

So what's going on here?  It's just like many other companies.  They count on you being forgetful or not closely monitoring your bank account.  I obviously don't need a second fax line, but if they can get me to keep the service, even for free for a few months (zero cost to them to do that) then maybe after that period I'll forget to cancel and they can charge me at least once before I can cancel again.  Sure, it's only $12, but it adds up.

Saturday, April 29, 2006 10:35:57 AM (Central Daylight Time, UTC-05:00)  #     | 
# Sunday, April 16, 2006

Some people who know me say that my sense of humor is a bit skewed. I agree and as proof, here's something I find hilarious. In fact most of the cartoons on their site quite funny.

 

Sunday, April 16, 2006 11:35:06 AM (Central Daylight Time, UTC-05:00)  #     | 
# Tuesday, February 28, 2006

So today I'm working at home listening to a new found online 80's radio station from somewhere on the other side of the pond and on came a song that actually somewhat shocked me.  I mean I'm not offended - I thought it was funny as hell, and being offended is what being free is about anyway. 

Anyway it was a guy I'd never heard of before: Ivor Biggun.  Now I imagine if you're from that side of the pond you've heard of him - he's been around for decades and has loads of albums out, but after reviewing a little of it - just scanning track titles even - I think I know why I've never heard him before.

Long live the uncensored world of online radio.

Tuesday, February 28, 2006 3:52:42 PM (Central Standard Time, UTC-06:00)  #     | 
# Friday, November 11, 2005
You Passed 8th Grade Science
Congratulations, you got 8/8 correct!
Friday, November 11, 2005 9:53:31 PM (Central Standard Time, UTC-06:00)  #     | 
Your IQ Is 125
Your Logical Intelligence is Below Average

Your Verbal Intelligence is Genius

Your Mathematical Intelligence is Exceptional

Your General Knowledge is Exceptional
Friday, November 11, 2005 9:53:10 PM (Central Standard Time, UTC-06:00)  #     | 
# Wednesday, June 01, 2005

So I was going through my office the other day and accumulated a small pile of stuff, which included a full copy of Studio 2003 Pro still in the box.  Of course I could eBay it all, but what fun is that?  I'm thinking I need to have some sort of competition or giveaway or something.  I don't want to go through the hurdles of our last competition, so I'm up for ideas.  What should I do with it all?

Wednesday, June 01, 2005 1:37:03 PM (Central Daylight Time, UTC-05:00)  #     | 
# Wednesday, May 18, 2005

Sorry, couldn't resist the pun.  Here's an article I did for .NET Developer's Journal this month.  It's a peek at what I've been working on the last couple months.

Wednesday, May 18, 2005 5:10:42 PM (Central Daylight Time, UTC-05:00)  #     | 
# Saturday, May 07, 2005

My wife and I head to Vegas in the morning for MEDC and a little R&R.  It'll be nice to get a break to recharge from a very hectic last 6 months (though things are still going better than for Neil it appears).

Once I'm back I'll post some stuff on what I've been up to lately as well as some status info on the long awaited SDF 1.3 (it's good news, I promise).

Saturday, May 07, 2005 8:58:19 PM (Central Daylight Time, UTC-05:00)  #     | 
# Thursday, April 07, 2005

OpenNETCF has a budget of about zero.  We've paid for absolutely no marketing whatsoever, so any “market awareness” is purely by word of mouth and search engine results. 

So tonight I got to wondering, many compaies pay thousands for search engine ranking and hire teams to better themselves.  I wonder how we're faring. Here are the results from some quick Google tests.  I list the search term and the placement we got:

Compact Framework : #2
Compact Framework Code : #1 (beating Microsoft even)
Compact Framework Samples : #15 (surprisingly low based on the last 2)
.NET Mobile : Not in first 50 (though DePaul University has a CF course, neat!)
Managed Code Mobile : #49
Pocket PC VB : #12
Pocket PC C# : #28
Pocket PC Managed : not in top 50
CE Managed Code : #7
Compact Framework Consulting : #4

So it seems that we've got pretty good placement for what I'd think are common search terms. I'd love to see higher ranking on some, but it seems we're getting more than we pay for.

Thursday, April 07, 2005 9:40:13 PM (Central Daylight Time, UTC-05:00)  #     | 
# Thursday, March 10, 2005

A transmission rate of 10 Mbps implies that each bit is sent in 0.1 microseconds. For a coaxial cable, the speed at which the signal travels along the cable is approximately 0.77 times the speed of light (3.0E8 m/s). A bit therefore occupies 23 meters of cable. That means the smallest frame would be 13.3 km long.

For those who no longer use 10-baseT and gave up coax for twisted pair years ago, propagation speed in twisted pair is much slower - roughly 0.59 times the speed of light.  I'll let you do the math for a frame.

Thursday, March 10, 2005 9:48:07 PM (Central Standard Time, UTC-06:00)  #     | 

So I'm in the process of writing a couple classes that wrap a stream interface driver.  Specifically I'm writing a class for a PCA9555 I2C chip, which inherits from a generic I2C class that inherits from the StreamInterfaceDriver class.  I come the the Read function and I realize that as the data parameter I have to pass a byte array, but the actual driver I'm talking to wants this to be a structure.  To make it more fun the structure contains a pointer to a byte array, so the struct is 16 bytes, 4 of which are a pointer to an array of unmanaged data.

To make a long story short, I ended up writing a new Read function in the I2C class that hides the base version so I can manage the unmanaged data.  Well I then needed to call the FileEx.ReadFile function, which needs a port handle.  The handle is a private member of StreamInterfaceDriver - oops, guess I didn't consider this in my original base class design.  Fortunately the SDF is shared source, so time from bug detection to when the publicly available code was fixed (making it protected) was about 2 minutes. 

If you've got customers concerned about using 3rd-party libraries I'd think examples like this would help ease their fears.

Thursday, March 10, 2005 3:58:11 PM (Central Standard Time, UTC-06:00)  #     | 
# Tuesday, March 01, 2005

Another personality preview for those bored with the work they should be doing.

 

Cattell's 16 Factor Test Results
Warmth ||||||||||||||| 46%
Intellect |||||||||||||||||||||||||||| 90%
Emotional Stability ||||||||||||||| 50%
Aggressiveness |||||||||||||||||| 54%
Liveliness |||||||||||||||||| 58%
Dutifulness |||||||||||||||||| 58%
Social Assertiveness |||||||||||| 34%
Sensitivity ||||||||| 30%
Paranoia |||||||||||| 38%
Abstractness |||||||||||||||||| 58%
Introversion |||||||||||||||||||||||| 78%
Anxiety ||||||||| 26%
Openmindedness ||||||||||||||||||||| 70%
Independence |||||||||||||||||| 58%
Perfectionism ||||||||| 26%
Tension |||||||||||| 38%
Take Cattell 16 Factor Test (similar to 16pf)
personality tests by similarminds.com
Tuesday, March 01, 2005 10:23:43 PM (Central Standard Time, UTC-06:00)  #     | 
# Wednesday, February 09, 2005

If you've done much with the CF, then you're likely aware that NDOC doen't much like any namespace that's outside of the standard FFW (like the Microsoft.WindowsCE stuff).  While that's been an annoyance for documenting parts of the SDF (leaving holes in the docs), I just ran into a place where it prevents me from generationg any docs - when targeting the TinyCLR.

So, has anyone found anything that can generate decent looking docs without exploding on stuff it doesn't see (or maybe asking for the reference)?  I know NDOC is open source and I could get it working, but I'd rather do actual work.

Wednesday, February 09, 2005 10:18:19 PM (Central Standard Time, UTC-06:00)  #     | 
# Wednesday, February 02, 2005

Pop quiz, what does this code do?

DS1307 d = new DS1307(Cpu.Pin.GPIO20_VTU_TIO1A, Cpu.Pin.GPIO21_VTU_TIO2A);
d.SetRTC(new DateTime(2005, 2, 2, 21, 22, 0, 0));
for (int i = 0; i < 10; i++)
{
    DateTime dt = d.ReadRTC();
    Debug.Print(dt.Hour + ":" + dt.Minute + ":" + dt.Second);
    System.Threading.Thread.Sleep(2000);
}

Okay, so it's not too exciting, until you realize that what it calls - an I2C driver - is written in C# as well.  Yes, I've achieved a managed code driver.  Next question - what's it run on?  I'll give you a hint - it's not a Pocket PC.

Wednesday, February 02, 2005 9:33:41 PM (Central Standard Time, UTC-06:00)  #     | 
# Tuesday, December 21, 2004

So I finally ordered Halo II.  I put it off becasue I've had an unbelievably busy month and I knew that if I ordered it, productivity in getting the new house unpacked and all the other work I need to do would suffer, But I finally opened it up Friday night.  I finished the game last night - not bad considering I put in about 10 hours of coding on Sunday and didn't play at all.

Best part of the game?  Laura Prepon does the voiceover for a Marine and when she called one of the Covenant a jackass after shooting him I just about fell out of my chair.  I had no idea she had done a voice in the game, but it was unmistakably her.

Tuesday, December 21, 2004 11:41:08 AM (Central Standard Time, UTC-06:00)  #     | 

Following Mike and Neil, I took the “What OS Am I” online quiz and found that I'm Slackware Linux.

Interesting.  I used to be a diehard Slackware user in '93-'94, in fact in my recent move I found the old distribution CDs.

Tuesday, December 21, 2004 11:34:12 AM (Central Standard Time, UTC-06:00)  #     | 
# Tuesday, August 03, 2004

Here's an article I found while browsing Casey's blog, and I must say it's quite simple as well as insightful.  Now as any good Linux advocate would do, Paul maligns Microsoft - I'm not here to say that's good or bad, my views have already been stated - but the overall observations are right on target.  I know several great developers, and every one of them fits this model.

Tuesday, August 03, 2004 12:23:30 PM (Central Daylight Time, UTC-05:00)  #     | 
# Monday, August 02, 2004

Relative newcomers to the software industry, as well as a lot of people looking to get software done often ask some variant of the question “why does it cost so much to contract a developer?”  It might be disguised as “Why would I pay that much for a 3rd party component?” or “I can hire a junior programmer for a year for what they want for this!” but it always boils down to a misunderstanding of a value equation.

If a contractor quotes you $80 and hour you might be quick to say “that's about $160k a year!  Screw that!” but that misses a lot of things.  Leave out the fact that the contractor has to pay insurance, workers comp, FICA and all the overhead of a business.  Lets focus on what you're buying. 

You're not just buying an hour of that person's time.  You're buying the years of experience doing other work they have.  They're going to have seen far more problems and srewed up applications than a junior programmer will see in even their first 2 years.  You're buying access to a portfolio of base code they can draw from that is largely tested and true.  You're buying the late nights that they spent on past project pulling out their hair so that pitfalls are quickly avoided on your project.  Essentially you're paying for a much better ability to control the cost and schedule of your project.

So you're still thinking “it still seems expensive” are you?  Well face it, you can't sell an hour more than once.  If the contractor is selling you a product, you're getting a pro-rate on the hours spent developing the product because you're sharing the development hour with all of the other people buying the product.

Does it always make sense to contract out?  Of course not, but next time you're project has shot past a delivery deadline or gone overbudget and think about the experience base you have working on it then ask yourself “would having this project where the GANTT chart says I should be be worth the cost of a consultant?”

Monday, August 02, 2004 10:25:22 PM (Central Daylight Time, UTC-05:00)  #     | 
# Monday, July 26, 2004

I'm installing Platform Builder 3.0 so I can do some legacy support and when it prompted for Disk 10 it occurred to me that those of us who bitch about how long it takes to install Studio 2003 need to do a sanity check.  Remember the days when Office was something like 30 1.44 floppies?

Thank goodness for Virtual PC - I'll only have to do this once.  If you're a developer and not familiar with VPC, go check it out.  I think it gives Studio competition as one of the top productivity tools for developers.  Hell, I have half a dozen PCs without having to buy all the hardware, and it's easy to load to a known configuration.

Monday, July 26, 2004 4:49:36 PM (Central Daylight Time, UTC-05:00)  #     | 
# Saturday, July 17, 2004

Well I shut down commenting a while ago due to blog spammers.  I'm turning them back on and we'll see if it remains a problem.

Saturday, July 17, 2004 3:20:18 PM (Central Daylight Time, UTC-05:00)  #     | 
# Thursday, July 15, 2004
Thursday, July 15, 2004 11:01:10 AM (Central Daylight Time, UTC-05:00)  #     | 
# Thursday, July 08, 2004

Neil covered some great mechanisms for getting 10,000 records into a device database:

<quote>
1. Tie one end of a piece of string to the WiFi antenna, if your device has
one, and tie the other end to a tin can. Enumerate the 10,000 records on
your desktop computer and verablly dictate each record into the tin can.

Performance: slow;
Success rate: zero.
Implementation: easy peasy lemon squeezy.

2. Purchase a flock of carrier pigeons, 10,000 in number. Hand-write each
record onto a piece of paper and attach to the bird. Aim the bird at the
device and release.

Performance: slow:
Success rate: zero.
Implementation: possibly very messy.

3. Move to SQL Server. RDA and Merge Replication are your friends.

Performance: good!
Success rate: >1,000,000,000 pigeons.
Implementation: well documented.

4. Hire 10,000 people and get them to memorize one record each. Get them to
follow the device wherever it goes.

Performance: In theory, should outperform Oracle for record access. In
reality, you're statistically likely to get a few "slow" records
Success rate: Depends on the demographics of your recordset.
Implementation: costly, just like Oracle :)

5. Populate the DataSet on the server and transmit as a DataSet object using
Web Services ().

Performance: suffers from a serialization/deserialization overhead which is
costly with 10,000 records.
Success rate: Jackpot, baby!
Implementation: piece of cake.

6. Re-architect your solution. No one should need 10,000 records on a
device. Don't even think about loading that into a ListView either :)

Performance: the best yet.
Success rate: it's the pot of gold at the end of the rainbow.
Implementation: requires some research and reading of those folded paper
thingies.... (books)
</quote>

Thursday, July 08, 2004 11:56:46 AM (Central Daylight Time, UTC-05:00)  #     | 
# Monday, June 21, 2004
Monday, June 21, 2004 1:00:14 PM (Central Daylight Time, UTC-05:00)  #     | 
# Monday, May 10, 2004

So now NASA is considering using robots to repair Hubble instead of a manned mission.  The primary reasoning being that it is safer and more cost effective.  While laudible reasons, I think that using robots should be the preferred method for a completely different reason.

Let's face it, putting a man up there and doing repairs, maintenance and upgrades isn't technically challenging (though it is rocket science).  We've done it all before, and doing it again really doesn't teach us anything or push the boundaries of space exploration for us.  Using a robot, on the other hand, is a new advancement.  We've not done it before and by pursuing it we'll be improving our ability to understand the complexities of the job.  THis will further our ability to make robots that repair other craft and machines even further from Earth.

So by all means, scrap an astronaut visit. It's costly, risky, and just plain boring.  If we want to push further in our abilities to explore space, we need to push our abilities to do work locally, and in this seemingly rare case what is good for science may also be good politically.

Monday, May 10, 2004 4:33:44 PM (Central Daylight Time, UTC-05:00)  #     | 
# Wednesday, April 21, 2004
For those of you who have devices custom manufactured, Intel has declared the SA-1111 companion chip as EOL (end of life).  This chip was commonly used in conjunction with the SA-1110 StrongARM processor (EOLed over a year ago) and the PXA 255 XScale processor in devices.  If you're using them, either start planning a migration path or a inventory purchase.
Wednesday, April 21, 2004 8:59:18 AM (Central Daylight Time, UTC-05:00)  #     | 
# Monday, February 09, 2004
A classic example of why ActiveSync 3.7 was quickly replaced with 3.7.1can be found here.
Monday, February 09, 2004 5:33:13 PM (Central Standard Time, UTC-06:00)  #     | 
# Monday, December 15, 2003

After reading Neil Cowburn's resolutions, I feel compelled to lay out my own:

  1. I will learn better how hardware and data buses work by learning PIC programming
  2. I will finish my Pocket Excel wrapper
  3. I will resist the temptation to always start new projects when I have unfinished ones on my plate
  4. I will overcome my loathing for web programming and try out ASP.NET
  5. I will get off my lazy ass and learn how the DataSet class works

Of course I should add to that the fact that I need to place more effort into some project that provide me financial benefit, otherwise my wife is going to get a bit fed-up with me burning so much personal time.  Anyone need any small project help or side work done?  :)

Monday, December 15, 2003 12:09:41 PM (Central Standard Time, UTC-06:00)  #     |