Welcome to TechNet Blogs Sign in | Join | Help

Random musing

Someone once said "it is better to remain silent and be thought a fool, than to open your mouth and remove all doubt", if nothing else Web 2.0 will be remembered for proving that statement largely applicable.

Posted by wigunara | 0 Comments
Filed under:

Singularity Operating System

This is very cool, this my friends, is brand new built from the ground-up Operating System, it's a 21st Century Operating System based entirely on concepts from the .NET Framework and it's been published on CodePlex!

It's only a research project, but demonstrates some very powerful properties such as Software Isolated Processes (SIP), because all code in the operating system is in IL, it is effectively sandboxed by the underlying OS runtime, without the need for hardware enforcement. All code can safely run in ring 0 (e.g. Kernel mode) avoiding the need for kernel/user transitions, due to the lightweight nature of SIPs each device, OS component and application can run in its own SIP providing modular reliability guarantees not possible in a monolithic design.

Memory management becomes much easier too, thanks to managed code and the operating system's Garbage Collector.

They've also made some very good design choices that make a lot of sense: processes cannot share memory and cannot modify their own code. They've developed a fast and reliable contract-based messaging mechanism for inter-process communication.

Windows was designed at a time when we didn't have the luxury of managed code, when hardware resources were limited, when web services didn't exist, when computer performance was a fraction of what it is today. The Windows team has done its best to keep pace industry developments, the rise of the internet and the different numerous ways we want to use our computers today, in some areas it has risen to the challenge admirably, in others, it's take a lot of engineering and effort and there's still more to be done (think security).

Thankfully, singularity has had time to reflect on the last 25 years of computer operating systems and incorporates some neat ideas into this brand new (research) operating system.

I'd encourage you to take a look, it's a fascinating concept.

 http://research.microsoft.com/os/singularity/

http://www.codeplex.com/singularity

Also, check out the videos!

Singularity: A research OS written in C#, Channel 9 video and blog, Redmond, WA, August 23, 2005.

Singularity Revisited, Channel 9 video and blog, Redmond, WA, December 13, 2005.

Singularity III: Revenge of the SIP, Channel 9 video and blog, Redmond, WA, September 1, 2006.

Singularity IV: Return of the UI, Channel 9 video and blog, Redmond, WA, September 1, 2006.  

Posted by wigunara | 0 Comments
Filed under:

Windows Mobility Marvels - training for developers

The Windows Mobile and the .NET Compact Framework platforms are great for building mobile solution, and it's shockingly easy to get started - plug in your Windows Mobile device, fire up Visual Studio 2005 and create a new Smart Device project... hey presto it runs straight on your device.

Once you've got over just how easy it is to get started, you'll want to learn more about how you build robust, professional solutions. One of the least known Windows Mobile developer resources is probably one of the best!

Windows Mobility Marvels contains a fantastic amount of online training from ASP.NET mobile to SQL Mobile to Windows Mobile 6.0. There are step-by-step guides to creating LOB applications too!

http://www.microsoft.com/events/series/msdnmobility.mspx

Webcasts available (as of time of writing)

MSDN Webcast: Building Mobile Applications with Visual Studio 2005 (Level 200)

Original Air Date: March 7, 2006

Customer Rating:

MSDN Webcast: Moving from eVB to Visual Studio .NET (Level 200)

Original Air Date: March 9, 2005

Customer Rating:

MSDN Webcast: My First Mobile Application with Visual Studio 2005 (Level 200)

Original Air Date: March 8, 2005

Customer Rating:

MSDN Webcast: What's New in Visual Studio 2005 for Devices (Level 200)

Original Air Date: March 8, 2005

Customer Rating:

MSDN Webcast: Using Ink in Your Application (Level 200)

Original Air Date: July 6, 2006

Customer Rating:

MSDN Webcast: Extending Your Web Site for Internet Explorer Mobile (Level 200)

Original Air Date: August 9, 2006

Customer Rating:

MSDN Webcast: MSDN geekSpeak: Mobility with Jim Wilson (Level 200)

Original Air Date: September 6, 2006

Customer Rating:

.NET Compact Framework

On-Demand Webcasts

MSDN Webcast: .NET Compact Framework 2.0 (Level 100)

Original Air Date: January 19, 2005

Customer Rating:

MSDN Webcast: .NET Compact Framework Tips and Tricks (Level 200)

Original Air Date: January 12, 2005

Customer Rating:

MSDN Webcast: C# 2.0 Language Enhancements In-Depth (Level 300)

Original Air Date: May 11, 2005

Customer Rating:

Application Performance and Stability

Live Webcasts

MSDN Webcast: Testing the Most Critical Part of Your Application for Windows Mobile (Level 200)

Wednesday, June 13, 2007

11:00 A.M.–12:00 P.M. Pacific Time

On-Demand Webcasts

MSDN Webcast: Memory Management for Windows CE (Level 300)

Original Air Date: February 10, 2005

Customer Rating:

MSDN Webcast: Stabilizing Your Windows CE Platform (Level 200)

Original Air Date: September 7, 2005

Customer Rating:

ASP.NET Programming

On-Demand Webcasts

MSDN Webcast: Building Mobile Web Sites with ASP.NET 2.0 (Level 300)

Original Air Date: November 16, 2005

Customer Rating:

Data, Networking, and Communications

On-Demand Webcasts

MSDN Webcast: A Practical Guide to Working with ActiveSync 4.0 (Level 200)

Original Air Date: June 22, 2005

Customer Rating:

MSDN Webcast: SQL Mobile Comes of Age (Level 200)

Original Air Date: May 18, 2005

Customer Rating:

MSDN Webcast: Using MSMQ to Build Reliable Mobile Applications (Level 200)

Original Air Date: August 10, 2005

Customer Rating:

User Interface, Graphics, Media, and Gaming

On-Demand Webcasts

MSDN Webcast: User Interface Techniques for Windows Mobile Devices (Level 200)

Original Air Date: November 2, 2005

Customer Rating:

MSDN Webcast: Windows Mobile as a Gaming Platform (Level 200)

Original Air Date: May 3, 2006

Customer Rating:

Windows CE Programming

On-Demand Webcasts

MSDN Webcast: Migrating Windows CE 4.2 Platform Projects to CE 5.0 (Level 200)

Original Air Date: February 23, 2005

Customer Rating:

MSDN Webcast: Symbol Technologies: Moving from DOS to Windows CE (Level 200)

Original Air Date: January 26, 2005

Customer Rating:

Windows Mobile Programming

On-Demand Webcasts

MSDN Webcast: Introduction to the New Native APIs in Windows Mobile 5.0 (Level 200)

Original Air Date: November 16, 2005

Customer Rating:

MSDN Webcast: Multi-Device Development Is Here (Level 200)

Original Air Date: January 5, 2005

Customer Rating:

MSDN Webcast: Using Managed APIs for Windows Mobile 5.0 Devices (Level 300)

Original Air Date: September 14, 2005

Customer Rating:

MSDN Webcast: Windows Mobile 5.0 (Level 200)

Original Air Date: June 8, 2005

Customer Rating:

MSDN Webcast: Windows Mobile and GPS/Location Based Services—Level 100

Original Air Date: December 8, 2004

Customer Rating:

Posted by wigunara | 0 Comments

Quote of the day (May)

"No, Peter, it's perfectly normal to siphon jet fuel from an active runway with the intention of flying a pickup truck."

Pure genius!

Posted by wigunara | 0 Comments

MEDC 2007 Europe

MEDC 2007 Europe is THE place to provide a platform for DEEP DIVE sessions on collaborative learning, shared knowledge and practical hands-on development featuring more than 40 technical sessions and labs.

This annual event is tailored for developers and IT professionals who are looking to innovate and scale their mobile and/or embedded development investments, applications and solutions.

MEDC 2007 Europe offers a unique opportunity for your mobile and embedded developer audience to share and enhance knowledge through customized training sessions and experienced presenters.

You can find out more about the event, content and Speakers on the following Web site: www.medc2007.com/europe


 

Posted by wigunara | 0 Comments

Ex Astris, Scientia

When I was young I had a small treehouse in my parent's garden - from atop this tree house I used to spend many an evening laying on its flat roof and star-gazing. For me it was awe-inspiring, humbling and frustrating in equal measures. The incomprehensible enormity of it, a universe of galaxies, star systems, planets and life we know nothing of and cannot even begin to imagine, the discoveries waiting to be made, the adventures waiting to be had and yet, we will have to leave that to another generation many hundreds if not thousands of years from now. Mankind is still very immature in the grand scheme of things, we are akin to a newborn baby in this universe. We are not yet capable of reaching beyond our own petty problems let alone reaching out to the stars.

But we are cursed, cursed with a little knowledge of something we know is so much more significant than anything in our history or existence so far. No longer are we protected from the truth by the belief of an all-powerful being, we now know enough to know we don't know anything about our universe, we are trapped on this planet, constrained by our limited technology to simply "looking" at the universe. It makes me feel so inadequate and claustrophobic to be a human now, when we haven't even begun to emerge from our cocoon, this planet. To me, that is the most frustrating feeling imaginable.

You can't help but feel totally humbled at the sheer inadequacy of mankind to face the challenge that space presents. And yet...the universe is helping us - just by being there - by showing us that our struggles on this planet are petty and insignificant and constantly reminding us how much we have yet to grow.

We are so consumed by materialism, stress, self-promotion and conflict, few of us really see the big picture, especially in this business and in this age.

If you ever feel you need perspective or inspiration, drive out of the city on a clear night, find a quiet spot, lay down and look up at the universe...it's awe-inspiring beyond belief when you consider the possibilities, the beauty and mystery.

Awe-inspiring

Posted by wigunara | 1 Comments

Quote of the day

"Call me pretentious if you like. But for me a truly great wine should not leave you with a foam moustache which you can only remove with 'turps."

Brownie points for anyone who knows the source of that quote :)

Posted by wigunara | 1 Comments
Filed under:

Size isn't everything...

I was reading a discussion on a portable entertainment device and the protagonists were tooing-and-froing over the size of the hard disk on the device and it occurred to me that the hard disk capacity of a device does not tell you much about the capacity or capability of the device.

It really depends on what is stored on that device for example: comparing the 20GB hard disk of the original Xbox to a 60GB iPod is meaningless. The Xbox uses the hard disk for storing saved games, and the ipod for music - they have different file sizes and uses. So can you compare two music devices based purely on the size of the hard disk? Maybe, but consider the different formats used to store music - WMA is more efficient that MP3, so you'll get more music on the same hard disk if your device uses WMA. What about hand held gaming consoles? Well they store save games or game content, so again, totally different from a music player.

It seems sensible to differentiate products in the same range based on their hard disk capacity but between ranges and product types is fairly pointless.

It really is what you do with it that counts :)

 

Posted by wigunara | 0 Comments

Windows Mobile Development Forums

 

MSDN logo

Do you need help with your Windows Mobile project? MSDN have two forums for SmartDevices, one for managed development and one for native, check them out below for help with issues or to see what problems other people are facing.

Native development

Managed development

Posted by wigunara | 0 Comments
Filed under:

Windows Live Search client for Windows Mobile

If you have a Windows Mobile device you need this! It's neat, it has road and arial maps, driving directions (with GPS support) and "find my nearest" functionality.

From your Windows Mobile device or J2ME enabled device go to

http://wls.live.com

and download the Windows Live Search application for mobile devices.

Posted by wigunara | 0 Comments
Filed under:

psuedo deferred base constructor call from a derived class (C# .NET)

 

I was building an exception class derived from the Exception class when I stumbled upon a problem - I wanted to perform some processing on the constructor parameters of my derived class before passing the results onto the base constructor for the exception - in the case of Exception, a string parameter for a message.

It appears the base constructor must be called before any derived constructor, which precludes performing any complex work before passing any parameters to the base class constructor.

public class DerivedClass : Exception

{
 public DerivedClass(string rawData) : base(rawData)  {

// this is executed after the base constructor

  }

}

 

However, you can work around this by performing any processing work in a static method which you can call within the call to the base constructor

public class DerivedClass : Exception

{ 

public DerivedClass(string rawData) : base(DerivedClass.ProcessData(rawData))  {

// this is executed after the base constructor

          }

 

private static string ProcessData(string rawData)

{

  

// this will be executed before the base constructor is called

// do stuff with the rawData and return processed data 

return(processedData); 

}

}

 Obviously you're working with a static method rather than an instance method so you cannot access instance data, but if you can live with this limitation then it's quite a useful technique.

 

Posted by wigunara | 3 Comments
Filed under:

Turn off Windows Vista startup sounds...

If for some inconceiveable reason you'd rather not announce your disinterest in the meeting your attending by booting up your laptop and getting busted by that "lovely" Windows Vista startup sound then this tip is for you...

Start -> Control Panel -> Sound

Then select the "Sounds" Tab, and then uncheck "Play Windows Startup sound" :)

 

Posted by wigunara | 0 Comments

TechEd Follow up, further reading on device security...

Marcus Perryman's blog has a great article on Windows Mobile 5.0 Role security

http://blogs.msdn.com/marcpe/archive/2006/10/24/windows-mobile-5-0-role-security.aspx

Security for Windows Mobile devices

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

and of course you can find my session on the postshow DVD.

Thanks

Posted by wigunara | 0 Comments
Filed under: ,

TechEd follow up...

Thanks to all those who attended my sessions at TechEd. As promised in my SQL Mobile session here is the source for a very simpler timer class to help you monitor performance.

 

using System;

using System.Collections.Generic;

using System.Windows.Forms;

using System.Runtime.InteropServices;

 

namespace Timer

{

public class TestTimer

{

[DllImport("CoreDll.dll")]

public static extern int QueryPerformanceFrequency

(

ref Int64 lpFrequency

);

[DllImport("CoreDll.dll")]

public static extern int QueryPerformanceCounter

(

ref Int64 lpPerformanceCount

);

System.Int64 freq = 0;

public TestTimer()

{

QueryPerformanceFrequency(ref freq);

 

}

public delegate void timerResult(string msg,System.Int64 time);

public event timerResult OnTimerResult;

private System.Int64 _startTime = 0 ;

private System.Int64 _lastReading = 0;

public bool TimerSupported

{

get

{

bool result = true;

if (QueryPerformanceFrequency(ref freq) == 0)

result = false;

System.Int64 testCounter = 0;

if (QueryPerformanceCounter(ref testCounter) == 0)

result = false;

return (result);

}

}

public void Start()

{

QueryPerformanceCounter(ref _startTime);

_lastReading = _startTime;

 

}

public void TakeReading(string msg)

{

System.Int64 _takeReading = 0;

QueryPerformanceCounter(ref _takeReading);

System.Int64 time_ms = (_takeReading - _lastReading) * 1000 / freq;

_lastReading = _takeReading;

if (OnTimerResult!=null)

OnTimerResult(msg,time_ms);

}

public void TotalTime(string msg)

{

_lastReading = _startTime;

TakeReading(msg);

}

}

}

 

Posted by wigunara | 0 Comments
Filed under: ,
More Posts Next page »
 
Page view tracker