Tuesday, June 29, 2010

Another Browser Test Suite

FutureMarks is another browser test suite I’m adding to my collection.

See benchmarks (link).

Should really list these on one page sometimes.

Firefox 4.0 beta 1 is out!

Mozilla Firefox guys have redefined the release plan a bit. Firefox 3.7 is to be merged with 3.6 line as the features are almost complete and focus on out-of-process plugins. So, now we have Firefox 4.0 line with other changes. The focus is on speed.
I’m trying out the IE9 tests (link) with Direct2D enabled (link), Google V8 Benchmark Suite (link) and checking out the new features of HTML5, CSS3, and JavaScript at HTMLRocks presentation (link).
See Firefox presentation here or get the 4.0 beta 1 candidates from here.

Edit: Wow, the startup is faster than current Dev version of Chrome. Even without Firefox Preloader! This is definitely my new default web browser and HTML viewer.

Monday, June 28, 2010

Goodbye, Mesh

Windows Live Mesh is soon to be replaced with Windows Live Sync service. These two services are basically merging into a hybrid of both that does not look too good.
The product is still in beta. The most significant effect that I can see is that the 5GB (from what I remember) of storage/sync space is now becoming 2GB and it is taken from your SkyDrive account. Device view is being replaced with another service – Devices (see link below). This service will also replace the remote connection from Mesh. What is left is only the Sync functionality with less online storage space. While I admit I used way less than even 2GB, it is always nice to know there is this space if/when you happen to need it. Hopefully Microsoft will do something similar to Hotmail with “ever increasing storage space” once the usage stats are on for the new service.
I haven’t yet upgraded but will soon have to, I guess. If the features are as crippled as they sound now, Dropbox could become my new old friend (again). Actually, going through the FAQ, I see Windows XP is not supported so I can’t use it at work. This means that Dropbox is definitely my new old friend…
Check the following links:
  • Announcement on Inside Windows Live (link),
  • Live Mesh FAQ (link),
  • Windows Live Sync home page (link)
  • Devices (link
Edit: Oh, yeah, have to add that I've already replaced the remote access of Mesh with LogMeIn recently.

    WCF Extras

    " A collection of useful WCF extensions including Soap Header support, WSDL documentation and more.

    The WCF platform is very extensible and allows you to easily add features that are not part of the core product.
    This project contains some extensions I needed in a WCF based project:
    • SOAP Header support for WCF
    • Adding WSDL Documentation from Source Code XML Comments
    • Override SOAP Address Location URL
    • Single WSDL file for better compatibility with older SOAP tools."

    Saturday, June 26, 2010

    Android on HTC

    Android on HTC
    This site is dedicated to running Android on HTC devices. There are two flavors of Android on HTC - one that replaces WM on the device and one that runs inside Windows Mobile from the external memory card.
    Time to start looking for software, I reckon...

    Thursday, June 24, 2010

    Using ASP.NET MVC with Different Versions of IIS: The Official Microsoft ASP.NET Site

    Using ASP.NET MVC with Different Versions of IIS: The Official Microsoft ASP.NET Site
    The downside of (still) using Windows XP for debugging ASP.NET MVC 2 applications is that IIS 5 does not support this setup out of the box. At the link above are the instructions on how to set up IIS for supporting Routing, etc.

    Wednesday, June 23, 2010

    TANDBERG Content Server

    TANDBERG Content Server
    Great presentations from NDC 2010 on Scrum/Agile, Ruby, MVC, jQuery, and other cool stuff.

    Tuesday, June 22, 2010

    PuTTY Connection Manager

    Here is a great program that helps automate PuTTY logins to remote sites. Excellent helper if you're using SSH all the time.


    No OpenID endpoint found - Stack Overflow

    No OpenID endpoint found - Stack Overflow:
    Setting up an OpenID server and Relying Party site to use it. One of the key pieces of the puzzle is to allow the RP (in web.config) to authenticate users at certain site. In my example, I had to add the site's IP (since it is a test site) to the web.config:

               <add name="localhost"/>
               <add name="" />

    Sunday, June 20, 2010

    Multithreaded Programs

    Multithreaded Programs
    Nice overview of multithreaded programming, with Java.

    Dr Dobbs - OpenID Single Sign-On

    Dr Dobbs - OpenID Single Sign-On
    Good brief about principles behind implementing a Single Sign-On with OpenID.

    [New Ext] SessionSaver - Google Chrome Forums

    [New Ext] SessionSaver - Google Chrome Forums
    SessionSaver Chrome extension saves the session - open tabs - so that it can be resumed later. Chrome, sort of, does this on its own when browser closes or crashes. However, check the list of features:

    * Saves all tab urls for all chrome windows.
    * Saves multiple sessions with custom names.
    * Loads all urls from saved session to current window in new tabs.
    * Can view all urls to copy/paste from.
    * Can save tabs just for current window.
    * Can close saved tabs.
    * Export all saved sessions to bookmarks.

    Saturday, June 19, 2010

    The Unofficial Cookie FAQ

    The Unofficial Cookie FAQ
    All about (HTTP) cookies. :)

    W. Edwards Deming: Definition from

    W. Edwards Deming: Definition from
    Key Principles section in the article about W. Edwards Deming, American engineer and statistician, pioneer of quality control. There are some great quotes and ideas.

    Download @ Desktop Gadgets by Benjamin Schirmer

    Download @ Desktop Gadgets by Benjamin Schirmer
    A few interesting gadgets for Google Desktop, including Separator and Indexing Status.
    I'm trying out Google Desktop on Windows 7 and comparing to Windows Search.

    eclipse-cs: The Checkstyle Plug-in for Eclipse

    eclipse-cs: The Checkstyle Plug-in for Eclipse: "The eclipse-cs Checkstyle plug-in integrates the well-known source code analyzer Checkstyle into today's leading IDE - Eclipse.
    Checkstyle is a Open Source development tool written by Oliver Burn, Lars K�hne and others to help you ensure that your Java code adheres to a set of coding standards. Checkstyle does this by inspecting your Java source code and pointing out items that deviate from a defined set of coding rules.
    Apart from using the Eclipse Checkstyle plug-in you can also use Checkstyle from the command line or as part of an Ant build.
    For more information about using Checkstyle outside of Eclipse see the Checkstyle documentation.
    With the Checkstyle Eclipse plug-in your code is constantly inspected for problems. Within the Eclipse workbench you are notified of problems via the Eclipse Problems View and source code annotations just as you would see with compiler errors or warnings.
    Visit the screenshots page to get a clue."

    Java theory and practice: Where's your point?

    Java theory and practice: Where's your point?
    Great overview of the non-integral numeric values in Java.
    Explains the floating-point types (float and double) and arbitrary-precision decimal (java.math.BigDecimal).

    Wednesday, June 16, 2010

    Google C Style Guide

    A coding style guide (coding standards) from Google: Google C Style Guide.
    Some useful recommendations, no matter which language you code in.

    Thursday, June 10, 2010

    Redmine - RedmineUpgrade - Redmine

    Original Redmine Upgrade instructions: Redmine - RedmineUpgrade - Redmine
    These instructions explain how to perform a Redmine upgrade. The version I deployed today does not have subtask support so I might need to get the latest one from the source code repository directly.

    Edit: My tailored version of the instructions: Redmine Upgrade.

    RedMine Installation on Windows (issue tracker)


    The current version of the installation instructions are at my RedMine page.

    The instructions below are now obsolete!



    Official document (link).
    Install Ruby 1.8.7.
    Extract RubyGems, then run "ruby setup.rb" to install.
    Install Rails: "gem install rails" or, in the command line, run:
    gem install rails -v=2.3.5

    Install Rack: "gem install rack -v=1.0.1"
    (try to Install "gem install sqlite3-ruby".)

    Set configuration. Copy config/database.yml.example to config/database.yml. Set the following:
    #  adapter: mysql
    #  database: redmine
    #  host: localhost
    #  username: root
    #  password:
    #  encoding: utf8

    adapter: sqlite3
    dbfile: db/redmine.db

    Set the environment: "set RAILS_ENV=production"
    Initialize session store: "rake config/initializers/session_store.rb"
    Copy sqlite3.dll into ruby/bin directory.
    Initialize the database. Run "rake db:migrate RAILS_ENV="production" --trace"
    Install sqlite ruby. "gem install sqlite3-ruby"
    Populate the database. Run "rake redmine:load_default_data RAILS_ENV="production" " and press enter (or select another languge).
    Run Redmine. Go to Redmine installation directory and type
    "ruby script/server webrick -e production"

    Tuesday, June 08, 2010

    US Immigration – A Guide for Employees

    US Immigration – A Guide for Employees: "E-3 Visa for Australians

    In 2005, the US announced a new visa called the E-3, for Australians only. The E3 visa allows Australian nationals, along with their spouses and children, to come to the US to work in a specialty occupation.

    This should be welcome news for Australians interested in working in the US. Until now, Australians have had to battle it out with others around the world for the highly desired H1B Visa. Last year only 900 Australians obtained an H1B - now Australians have 10,500 E3 visas just for themselves. A specialty occupation is one that requires a body of knowledge in a professional field, and at least a bachelor's degree or its equivalent, as a minimum for entry into the occupation in the United States. For Australians interested in the E3 visa, the process is actually quite similar to the H1B visa. You must first find a job with a company who will then sponsor your visa. There are 10,500 E-3 visas available per year.

    Spouses of an E-3 visa holder are permitted to come to the US and work also. A spouse's employment may be in a position other than a specialty occupation."

    Running a web server (Cassini)

    My favorite way of starting the Cassini web server is by creating a batch file in SendTo directory. The content of the file is:
    "C:\Program Files\Common Files\Microsoft Shared\DevServer\10.0\WebDev.WebServer40.EXE" /path:"%1"
    You can name it "start web server here.cmd". Then, simply right-click a folder in Windows Explorer, select Send To and "start web server here.cmd".

    Monday, June 07, 2010

    Scott Hanselman - The Weekly Source Code 25 - OpenID Edition

    Scott Hanselman - The Weekly Source Code 25 - OpenID Edition
    Cool post about implementing OpenID. Adding the following two lines to your blog/site will make it your OpenID:

    <link rel="openid.server" href="" />
    <link rel="openid.delegate" href= />

    There is also a part discussing implementation of OpenID authentication in .Net.

    Tuesday, June 01, 2010

    Upgrading Persisted Workflows (WF 4.0)

    When changing workflows, Microsoft does not support direct data migration from the long-running and persisted workflows instances. This means that every change to the workflows necessitates recompilation of the project and redeployment of the code/site. This may pose a problem for workflows that are persisted to the data store. If the changes to the workflow do not result in changes to the serialization of the workflow instance to the persistance store (database), you may be ok with updating the workflows and survive the exercise.
    But, if those changes result in different serialization - meaning there are new states, activities, fields, etc. - then upgrading the workflow assembly and trying to resume persisted instances will not go all that well.
    One of the ways to mitigate this in a state machine activity is to short-circuit the states. Meaning, apart from the initial trigger, there would be an additional trigger for short-circuiting the flow. The Receive activity, the trigger, could accept just the case identifier if your case data is stored in a database anyway. Then the case would travel directly to the state it was left in, before it was persisted, rather than go through the state machine all over again.
    In the destination state activity itself a workaround is required in the Entry activity. There could be a simple If activity that does not perform any particular actions if we are short-circuiting *or* perform all the normal activities if the case came into the state the regular way.
    Hopefully things get easier in the future.