« January 2004 | Main | March 2004 »

February 29, 2004

thoughts on open source software

Some interesting thoughts on open source.

http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=232dc22c-83fe-4e1f-bb4d-47040daf3107

which is a followup to this

http://staff.newtelligence.net/clemensv/PermaLink.aspx?guid=8fe41294-a988-4c73-948a-1bfab622fcce

Posted by mikel at 10:00 PM | Comments (0)

February 27, 2004

Teach yourself programming in 10 years

Guess I've got a ways to go. I'm sure the fundamentals stay pretty much the same, but at the rate all the technology changes its no wonder there is such poor software. By the time anyone gets really good at it, they are on to something new. But that's one of the reasons I like software, its new, changing, and always allowing me to do more or think of new things. Maybe I'm doomed to writing a life of only slightly improving software (my bent towards trying new things will counteract my experience)?

Early adopter reminded me about this gem... Teach yourself programming in 10 years [link from Early Adopter] [simplegeek]

Posted by mikel at 10:42 AM | Comments (0)

February 26, 2004

Potential device to purchase for the MCL

Here's a device we could get for the mobile computing lab


... Ken Levy brought his new Toshiba PocketPC. That sucker has the coolest screen and design. See, I do notice nice design. It felt like a black iPod when I held it in my hand. It has a 640x480 screen that you need to see to appreciate. At $599 it's out of my price range.

...

[The Scobleizer Weblog]

Posted by mikel at 09:54 AM | Comments (0)

February 24, 2004

Compact framework debugging without a network

If try to debug to the emulator without a network connection (e.g. you're on a laptop and outside of wireless range), it will fail. But you can install the loopback adapter to fix this.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcepb40/html/pbtskInstallingMicrosoftLoopbackAdapter.asp

via http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/CompactFXDebug.asp

Posted by mikel at 10:41 PM | Comments (0)

.NET Performance tips from JW

Jim gives some good, practical performance tips. The stuff about StreamReader and linking parent-child controls was new to me. Also, I'm using XmlDocument in SWOOSH. Going to need to look at rewriting that part. Saving files towards the end of the game does take longer than I like.

I gave a short (45 minute) talk at the Edge East conference in Boston this morning on maximizing Compact Framework application performance. If youÂ’re interested, you can download the slides. ItÂ’s not a deep technical talk but rather some practical tips. I hope you find it helpful.

[Jim Wilson - JW Hedgehog, Inc.]

Posted by mikel at 10:38 PM | Comments (0)

Software development on Mars

Pretty interesting. Don't know why I would have thought developing software for the rover is fundamentally any different that any other software but still interesting and surprising to hear how surprisingly "normal" it sounds.

""The irony of it was that the operating system was doing exactly what we'd told it to do," Klemm lamented"

I wouldn't expect the mainstream media (NBC, CNN, etc.) to give this detailed of an explanation but I'm sure this will be interesting to the folks who read our blog.  Lot's of good info on exactly what went wrong on Mars with the Software on the rover.

http://www.eetimes.com/sys/news/OEG20040220S0046

[Sean Campbell & Scott Swigart's Radio Weblog]

Posted by mikel at 08:15 AM | Comments (0)

February 17, 2004

Command line builds for the compact framework

Interesting, not sure that I'll use it much. But interetsing to know the details of how VS does the builds.

I suppose it could be said that I'm a purist. Wizards, templates and helper utilies are great, but I believe before you become reliant upon these things you really ought to understand how they work. One problem that is presented to .NET Compact Framework developers is how to compile their code from the commmand-line, outside of Visual Studio. Using the piece of code below, I'm going to show you how you can simplify the process.

...

This file is saved and then referenced in the compile command as follows:

csc /t:winexe /noconfig @C:\MyApp\cf_csc.rsp MyApp.cs

Note that we still have to explicitly specify the /noconfig option. If we include this in the response file, it will be ignored by the compiler.

[Neil Cowburn]

Posted by mikel at 10:43 AM | Comments (2)

February 16, 2004

updating compact framework applications

This looks interesting. Will have to check it out further prior to the deployment lectures.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetcomp/html/AutoUpdater.asp

Posted by mikel at 01:00 PM | Comments (0)

February 14, 2004

.NET Compact Framework poster

The poster arrived and is now hanging in the mobile computing lab. Thanks Jonathan!

Posted by mikel at 02:46 PM | Comments (0)

February 12, 2004

More info on BuddyLinks

It might not technically be a virus (I did agree to install it) but its still underhanded to send out the advertising message without notifying me when it does it.

Google News

Spread by an instant message touting an Osama bin Laden game, a piggybacking program that gathers user information is tapping AIM buddy lists for new targets. [Steve Gillmor]

Posted by mikel at 11:05 AM | Comments (0)

February 11, 2004

Buddylinks spyware

Update: Brad sent along this link with more information.

I got infected with some spyware last night (despite running ad-aware and McAfee). It was called BuddyLinks. It came disguised in an Osama game. I downloaded it from www.wgutv.com. Since Ad-aware doesn't yet seem to be aware of this and there is quite a bit to removing it (Thanks for the help Brad), here are some basic instructions.

1. Go to Add or Remove programs in the control panel. I had a program called BuddyLinks. Remove it if it is there. Ed had it too but said it was named PSD tools and that there were 2 entries.

2. In explorer go to C:\Program Files\Common Files\PSD Tools. The exe should be gone if the remove worked OK, but if not delete it from there.

3.Search the registry using regedit for "BLMessagingIntegration". I found one key that caused it to be run at startup. Delete any keys you find.

4. Go to C:\WINDOWS\Downloaded Program Files (assuming you have everything installed in the default location) and delete ShellInstaller.

5. (optional). I also added two lines to my hosts file that I use to block ad servers
0.0.0.0 www.buddylinks.net
0.0.0.0 www.wgutv.com

I think that should be it. I'm really sorry if I infected you. As far as I can tell the spyware doesn't do anything more malicious than send out that link to random people on your AIM buddy list (thus causing havoc, grief, and other pandemonium).

Posted by mikel at 12:42 PM | Comments (0)

February 09, 2004

Windows error reports

You know that dialog that comes up when an app crashes and asks you if you'd like to send the error report to MS? You probably know that MS uses this information extensively to track down issues with their own software. You probably don't know that as an ISV, you can sign up to retrieve this data for your own apps, provide custom error messages and/or resolutions to your customers that report these errors and even write code to put customized information into these errors. And, to the best of my knowledge, it don't cost nuthin'. [sellsbrothers.com: Windows Developer News]

Posted by mikel at 10:54 AM | Comments (0)

February 06, 2004

Side projects are the key to success?

Here's something I've been wondering about. Why do some of the most successful companies or products succeed because of what could be called "side projects" or at least projects that weren't the original focus of the company? I'm listening to the Second Coming of Steve Jobs right now. Not really that exciting but the Pixar stuff is pretty neat.

Pixar is a great CG movie making company. They made movies because it was a good way of showing off their storage computer. (Not only were movies secondary at Pixar, but Pixar was a secondary company, first to NeXT and then when Steve returned to Apple.)

Microsoft has the dominant desktop OS. They have a dominant OS not necessarily because their OS is the best, but because they make some excellent developer tools and generally make it easy to develop for their OS.

Sun created Java and it is one of the most popular programming languages today. But their main goal wasn't to make a great development language, but to abstract away the OS so Windows wouldn't matter anymore. Then they could sell more hardware that ran their OS.

In much the same vein, Apple is hardware company that also makes an OS that runs on their hardware. But most of the people that buy a Mac don't buy it because of the processor but because it runs OS X.

So if I want to sell SWOOSH, should I focus on some other complimentary piece, make it really great, and not worry about the quality of SWOOSH. Then the sales of SWOOSH will come rolling in because everyone has to have my little side project?

Posted by mikel at 10:26 AM | Comments (0)

February 04, 2004

another unit testing article and a code review resource

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dncscol/html/csharp03202003.asp

http://dotnetjunkies.com/weblog/josephcooney/posts/6397.aspx

TEST-DRIVEN C#
Improve the Design and Flexibility of Your Project with Extreme Programming Techniques
http://msdn.microsoft.com/msdnmag/issues/04/04/ExtremeProgramming/

Posted by mikel at 10:58 PM | Comments (0)

February 03, 2004

Creating cab files is to hard

I just had to update the cab files for a .NET compact framework project. This process is really more difficult than it needs to be. It isn't that it is that complicated but it just doesn't "fit" with how the rest of Visual Studio works. It is one of those things that I do fairly frequently but not enough that it becomes second nature. I do like the fact that with the inf file and cabwiz.exe I have a lot of control, so I hope they don't take that power away if Microsoft does fix this in Whidbey and makes things simpler. Things I don't like:

No way from within VS to specify any parameters
Having to manually edit the inf file everytime I hit the Build Cab button
Company is always "My Company" (who would ever want this, wouldn't leaving it blank or something make more sense?)
The inf file contains absolute and not relative paths (I often want to rebuild the cabs on different boxes)

I usually teach the lecture on deployment for CPT 355, so I figured it all out for that. If I just wanted to quickly deploy my app with some simple configuration there's no way I'd want to have to go through all this hassle to figure everything out.

Posted by mikel at 11:55 AM | Comments (0)

February 02, 2004

How to upgrade the compact framework on the emulator

Someone asked on the DevelopMentor cf list how to upgrade the emulator. I'd done it before just to see if I could and didn't think much more about it. The process isn't difficult but it also isn't that intuitive. A quick google didn't turn up anywhere that explained it, so here it is for future reference.

Question: Can you upgrade the compact framework on the emulator?

Answer: Yep, you can upgrade the emulator. There is a cab file
(netcf.core.ppc3.x86.cab) that you need to copy to the emulator and run. If you installed the service pack to the default location, it should be located in C:\Program Files\Microsoft .NET Compact Framework 1.0 SP2\

The easiest way to copy a file to the emulator is to share the folder on your desktop and access it through the file explorer on the emulator (make sure you change the device id first, it can't be Pocket_PC).

I've never tried it but I suppose you could also connect the emulator to ActiveSync using the power toy and then just run the regular desktop installer. The only downside I can think of is that the power toy requires the Pocket PC 2003 emulator while manually copying the cab will also work on the 2002 emulator

Posted by mikel at 04:53 PM | Comments (0)

Nesting virtual machines

This is pretty cool and I'm impressed he didn't get hit but the Law of Leaky Abstractions

Mobile development tools are not well supported on the Mac platform. For instance, most device emulators are only available on the Windows platform (or RedHat Linux at most). Since I use a Mac TiBook as my primary laptop, I constantly find myself developing mobile applications upon layers of virtual machines. For example, to run a J2ME application on a Nokia device emulator, I have to build the following stack:

* Microsoft Virtual PC running Windows XP on top of Mac OS X
* Nokia device emulator on top of WinXP
* Nokia J2ME/MIDP virtual machine on top of Nokia device emulator
* J2ME applications running inside the MIDP VM

Amazingly it works! Here is a screen shot:

[Michael Yuan Java blog]

Posted by mikel at 10:56 AM | Comments (0)