April 2007 - Posts

Marc Jacobs has an interesting post titled The Most Revolutionary Microsoft Technology You’ve Never Heard Of
He talks about the new application model based on the DSS/CSS  DSS/CCR components shipped with the Microsoft Robotics Studio.
  • Do you want to easily create, host and discover lightweight services?
  • Do you want to be able to create massive distributed solution easily as you create an ordinary sequential Winforms application?
  • Do you want to be able to easily and effectively utilize multi core/multi cpu systems without even care about the standard thread primitives?
  • Then you definitely have to check out the Decentralized Software Services(DSS) and Concurrency and Coordination Runtime(CCR), which are currently part of the Microsoft Robotics Studio
    It is even more interesting: The DSS/CCR based services in a Windows Mobile box. You may use .NET Compact Framework to create these services and run them on the mobile side.

    NOTE:
    Are you going to attend at the Microsoft Days 2007 in Sofia on 11 and 12 10 and 11 May 2007? Than you may check out my session about Microsoft Robotic Studio, where we'll talk about these impressive technologies.

    Links:
    Marc Jacobs's Blog
    Microsoft Robotics Studio
    The Most Revolutionary Microsoft Technology You’ve Never Heard Of

    I just came from the local round of Imagine Cup Bulgaria 07
    I was part of the jury and spent almost the whole day listening and watching the presenting teams.
    Despite of my expectations it was fun for me. I'm happy that I had the chance to watch these young motivated and smart people talking about their solutions.

    There were great and not so great presentations and we(the jury) had to pick up the best one - the one to present Bulgaria on the finals in Seoul,Korea.

    I've experienced a WOW! feeling, when BrainStorm(the winning team) presented their solution and as it turned out I wasn't alone - they won :)
    So guys, good luck in Seoul!

    NOTE:
    Actually, some of the other teams demonstrated interesting ideas and even remarkable technological solutions. Unfortunately, they missed to meet some of the basic requirements of the contest. Some of the teams even failed to provide a live demo during their sessions - we had to guess if they could eventually implement their ideas. Following some pictures:

     

    Posted by xman892 | with no comments
    Filed under:
    Simone Chiaretta published his CC.NET Monitor for Vista Sidebar.
    It allows you to monitor the CruiseControl.NET projects from the Vista Sidebar without using CCTray.
    He took a better approach than mine and definitely his gadget has a far better appearance.

    Congratulations for the good job!

    Links:
    Simone Chiaretta's Blog
    CC.NET Monitor for Vista Sidebar 0.7
    Posted by xman892 | with no comments
    Filed under:

    We had our regular monthly meeting again as announced before.
    Rosen Zhivkov told us the whole story about InfoPath2007, SharePoint Services and Forms Server.
    We used the food and drinks supplied by Microsoft for a while and then moved to get some beers and pizza in a local pub.
    Check out the photos:

    Posted by xman892 | with no comments
    Filed under:
    Imagine a world where technology enables a better education for all...

    The local round from Imagine Cup 07 will be held tomorrow.
    A several teams (students) will participate in a contest presenting their software solutions in front of a jury.
    The event will take place in the Education Center Elieff on 26.Apr.2007 at 9:30h and may be viewed on-line.
    The winner will present Bulgaria in Korea at the Imagine Cup finals.

    Meet you there!

    Posted by xman892 | 1 comment(s)
    Filed under:

    We will have our regular monthly meeting on 25.Apr.2007 at the local Microsoft office
    Check out the official announcement here.
    Rosen Zhivkov will present "InfoPath 2007 and Forms Server".
    He will talk about using InfoPath 2007 and Forms Server with SharePoint,SharePoint 2007 Workflow , BizTalk , WinForms and more...


    This will be an interesting talk, so be there!

     

    If you'd like to attend to our meetings go and regitster on the Sofia.NET User group web site

    Posted by xman892 | with no comments
    Filed under:
    Microsoft Bulgaria announced Microsoft Days 2007. It will be held in Sofia between 10 and 11th May 2007. There will be a lot of technical content, so be there.This time the event is payed.You may register at the Microsoft Days 2007's offical web site

    I will have 2 sessions during the two days:
    - Compact Framework For Desktop Developers
    - Microsoft Robotic Studio
    Hope to see you there. The capacity is limited, so be quick :)

    Note:
    All tracks are in Bulgarian language only.

    Links:
    Microsoft Days 2007's offical web site
    Posted by xman892 | with no comments
    Filed under:

    Are you using SQLite?

    SQLite is a small C library that implements a self-contained, embeddable, zero-configuration SQL database engine.


    A good .NET and Compact Framework Providers may be obtained from here

    It is very fast! However the speed comes to a price - no foreign keys, no stored procedures, etc.

    One of the major challenges with SqLite for me was related to a problem with the ciryllic supopport. In general, if one tries to execute an sql query containing the expression "upper(MyField) = @MyField " may get unexpected result. The SqLite UPPER function has a problem, when dealing with Cyrillic characters.
    So is there a solution?
    I came with 2 solutions(Both have issues):
    1. Store only upper characters in the database and do not use the UPPER function
    2. Implement custom managed "Upper" function for SQL:

    [SQLiteFunction(Name="CYR_UPPER",Arguments=1,FuncTyp=FunctionType.Scalar)]
    public class SqLiteCyrHelper:SQLiteFunction
    {
    public override object Invoke(object[] args)
    {
    return args[0]!=null?((string)args[0]).ToUpper():null;
    }
    }



    Then you may use it in the following way:

    SELECT * FROM my_cyr_table WHERE cyr_upper(cyr_column) = @cyr_string

    This all comes with a performance cost, however it is a very powerful way to enhance the database experience.

    SQLite supports custom aggregates , collate and scalar function and the sqlite.phxsoftware.com implementation allows these function to be written in managed code.

    UPDATE:
    Do not forget to register the function on application startup:

    SqLiteCyrHelper.RegisterFunction(typeof(SqLiteCyrHelper));

    Links:

    Managed SQLite Provider (.NET & compact Framework)

    SQLite.org - the offical SQLite web site


    Enjoy!

    Posted by xman892 | with no comments

    What do you use for thread synchronization - mutex or critical section?
    Check out this blog post from Jeremy Cooke at the Windows CE Base Team Blog

    In short:
    Using a mutex is more expensive in terms of CPU utilization, but mutexes may be shared outside the processes boundaries.

    In .NET CompactFramework terms
    Critical section means using System.Threading.Monitor. For mutexes there is a class called System.Threading.Mutex.
    The problem here is that there's no easy way to assign a name of the Mutex instance - the constructor with the name argument exists only in the Full .NET version.
    Using the System.Threading.Mutex class from .NET Compact Framework will prevent you from creating system mutexes - e.g. you can't use the default managed mutex behind the process boundaries.
    However there is an implementation from OpenNETCF.org called OpenNETCF.Threading.Mutex2 which may be used to create system-wide named mutex.

    You may see other CF.NET inter-process-communication techniques here as well.

    Links:
    Jeremy Cooke about Mutex vs Critical Section
    System.Threading.Monitor on MSDN
    System.Threading.Mutex on MSDN
    OpenNETCF.Threading.Mutex2 from OpenNETCF.org
    Interprocess Communication with the .NET Compact Framework 1.0

    Posted by xman892 | with no comments
    Windows vs iPhone or What did Apple invented?
    A lot of noise is going around the new tech. miracle called iPhone, announced by Apple.

    Some commercial bla bla from their site:
    Phone combines three amazing products — a revolutionary mobile phone, a widescreen iPod with touch controls, and a breakthrough Internet communications device with desktop-class email, web browsing, maps, and searching — into one small and lightweight handheld device.

    Hey, I had all these features from my first Windows Mobile 2003!
    May be the multi-touch display deserves credits (I hate the stylus stuff) , but let's wait the users to tell their words...

    Check out the differences between Windows Mobile and this outstanding tech.toy :) iPhone vs Windows Mobile

    Something strange about the Apple media presence:
    - Apple released iPod
    everybody says it was an outstanding innovation. as far as I know the PJB-100 is the first commercially sold portable player developed by Compac and marketed by HanGo Electronics Co., Ltd.

    - Apple released
    iPhone again a miracle , again an innovation as far as I know "some" of these features were on the market for quite some time :) Remember?The first idea for multi-touch display is not of Apple.. may be

    - Microsoft released Vista
    a lot of people claimed that MS stole this and that(search bar, gadgets, etc.). In other words Vista is not an innovation.

    I'm starting to think that the only one innovation developed by Apple is a method to manipulate the media and public opinion .. may be Apple (not Edward Bernays) invented PR.

    Anyway, the innovation in this business is not only about putting a single never-seen piece in the users' hands. It is more about getting a lot of new small precious pieces together and place it in the hands of the right user...

    Posted by xman892 | 2 comment(s)
    Filed under: ,
    The leading UI suite for ASP.NET - Telerik radControls
    Outstanding performance. Full ASP.NET AJAX support. Nearly codeless development.