Pages

Monday, December 29, 2008

OpenProj - Open Source Project Management Tool

OpenProj | Serena Open Source and Hosted Project Management Software

I was looking for a free project management tool today. Something that has the basic features of Microsoft Project but is not as expensive. This should be a tool that I could use anywhere and everywhere.
After looking at some programs, I settled with OpenProj. It has the best feel while working with it. The other alternatives that made it in the finals were Open Workbench and GanttProject.
Authors say OpenProj reads MS Project files. I see Microsoft Project 2003 xml file type available but have not tried to exchange the project file with MS Project.

OpenProj has Work Breakdown Structure, Resources, and Gantt Chart. It contains some statistics, schemes, etc. that I do not need at the moment. Calendar feature is a bit buggy and incomplete. I managed to add another base calendar but can not use it anywhere outside the calendar screen. Can't assign it to resources or tasks.
Still, for what I need, this is quite a decent tool.

Friday, December 26, 2008

Disable starting Server Manager on startup in Windows 2008 Server

I'm getting annoyed by constant display of Initial Configuration Tasks and Server Manager upon every reboot of the system. While the initial configuration tasks panel contains the checkbox that allows for not displaying it on startup in the future, the Server Manager is not that simple.

To solve that issue, open registry at HKLM\Software\Microsoft\ServerManager and change the value of DoNotOpenServerManagerAtLogon key from 0 to 1.

Thursday, December 25, 2008

Disable UAC on Windows Server 2008

Today my Windows Server 2008 box is acting really weird. Mesh can not download and overwrite some files because it needs administrator permissions. Total Commander can not write to its own ini file.
When I ran Mesh with administrator privileges it refused to run. Running it again with user privileges messes up the links between folders on Mesh and local machine.
So, I'm going to disable UAC and see what happens.

To disable User Access Control (UAC) on Windows Server, use Start -> Run, type MSCONFIG. Go to Tools tab and scroll down. Close to bottom there are options to Enable and Disable UAC. Reboot is required.

Wednesday, December 24, 2008

Use Windows Server 2008 as the desktop OS

Windows Server 2008, the ultimate desktop OS

Here's a full tutorial on how to customize Windows Server 2008 to be used as a desktop operating system.
One part of the tutorial is how to run Windows Sidebar on the Server.

Run as Administrator - Win 2008 Server

I keep running into weird issues on Windows 2008 Server. UAC prompt is not triggered by all applications and they fail silently and then provide strange looking errors. Firefox can not open security database, KeePass 2.0 can not save the key file, etc.

The quick and dirty solution is to run these programs as Administrator:

The best option is to go to file's properties, tab Compatibility, and check the "Run this program as an administrator" check box.

Another way to do this is to create a shortcut to the .exe file, then go to Properties - Shortcut - Advanced, and select Run as Administrator checkbox. This will trigger UAC prompt when the program is run.

Another version of this is to press Windows button, then type the name of the program in the search box and, instead of Enter, press Ctrl+Shift+Enter. This will run the program as Administrator automatically.

Second kind of solution would be to run "runas /user:Administrator <program>". This leaves command prompt open while the program is running and also asks for the Administrator password.

Wednesday, December 17, 2008

Windows Script Files (WSF) & Objects in Windows Scripting Host

Using Windows Script Files (.wsf)

While using JavaScript and VBScript and their respective files (.js and .vbs), a need arises for a more structured approach and broader functionality. I would like to encapsulate certain behavior into classes in order to avoid copying and pasting code into new script files. For example, I want to completely stop, and later start, certain functionality in the operating system. Let's say there are VMWare Server services running, there may be tray icon and other programs loaded into memory and we want to get rid of them to free resources to play a game or do something else. The way to stop all the services and close open programs is to use Windows Scripting Host and run a script that does it.
Stopping services involves a bit of work in querying the system for the list, enumerating the list and stopping the service, etc. Too much code in every file. The functionality of searching for the service and doing whatever is necessary to stop it could be encapsulated into one function call - a method - called stopService(). There could be a stopProgram() as well. These, then, could be a part of a class that encapsulate the behavior. This class could be used from all the scripts - one that starts/stops the antivirus, another that operates virtual environments, yet another that sets up internet session, etc. These separate scripts need to include the behavior of the class that starts and stops the programs and services.

This is where Windows Script Files come into play. Files with extension .wsf are executed by the Windows Scripting Host (WSH) just like .js and .vbs files. More than one scripting language can be used in a file as opposed to .js and .vbs, which contain only one language. An example of a WSF would be:

<job id="IncludeExample">
<script language="JScript" src="FSO.JS"/>
<script language="VBScript">
' Get the free space for drive C.
s = GetFreeSpace("c:")
WScript.Echo s
</script>
</job>

You can see it is using VBScript to call a function in an external file fso.js. This solves the "include" issue. The good thing is that WSH supports classes so a class can be declared as







Class SomeClass

public sub hi
WScript.Echo "hi"
end sub

End Class






and saved in SomeClass.vbs. Then, the run.wsf file could look like the following:





<job id="IncludeExample">


   <script language="VBScript" src="someClass.vbs" />


  
   <script language="VBScript">


      dim a


      set a = New SomeClass


     
      a.hi


   </script>


</job>








Tuesday, December 16, 2008

TaskKill and the Mystery of the Morning Voyages

Yesterday I have finally solved the mystery of the morning voyages. Every morning I had to step to the lower floor, walk to the computer and manually turn the Azureus off.

To the rescue came all the functionality that is built in Windows. Task Scheduler, Command Prompt, and TaskKill command do the job well. Task Scheduler runs Command Prompt, that executes TaskKill /IM Azureus.exe.

NTFSRatio

JAM Software - Windows Freeware

NTFSRatio is a program that displays the ration of NTFS compression for files. Compression and decompression can be performed from within the program for files that do not compress well. In that case you can avoid the overhead of performing decompression every time the file is read by uncompressing it.
Compressed files are decompressed every time the operating system reads them from disk and compressed when they are saved back to disk. Compressing system files, hence, creates a lot of overhead and can slow down the system. How significantly? I need to investigate. :)

Real Alternative and Multimedia Codecs

Free-Codecs.com :: Download Real Alternative 1.90 : Real Alternative will allow you to play RealMedia files without having to install RealPlayer/RealOne Player

I prefer using free substitutes for major media formats because these free players come without ads, annoying pop-ups, updates, and services running in the background and in the windows startup.
The link above leads to the Real Alternative. As the name implies, it is a substitute for Real Player. The pages is hosted at Free-Codecs, where many other multimedia codecs can be found.
The latest one I downloaded was Xvid, which plays all the movie files I've seen so far. The only thing missing was a3 audio codec, but which can be downloaded at the above site separately.

Sunday, December 14, 2008

Differences between WSS 3.0 and MOSS 2007

Differences between WSS 3.0 and MOSS 2007 - SharePoint for End Users

The article above explains the differences between Windows Sharepoint Services 3.0 and Microsoft Office Sharepoint Server 2007.
MOSS is an application built on WSS.

Which OS for development?

I'm thinking about creating a separate virtual machine that will be used for software development only. The isolation should work very well in order to reduce clutter and separate development software from personal programs, games, and other things. Also, this should reduce the risk in case of virus infection, OS reinstallation, etc.

Now, what would be the best operating system for software development? This assumes development using Microsoft tools and technologies - Visual Studio, SQL Server, SharePoint, web, etc. Lately I've noticed that people use Server operating systems to set up development environments. In a way this makes sense because all the services could be run locally.

Since it appears to offer an interesting experience and Windows Server 2008 is the latest OS published, I will go for it. It does make more sense to do web development on Server OS rather than Workstation OS like Vista or XP.

As for the Sharepoint, I still have not decided whether to have a separate virtual machine for Sharepoint Server or to install the Sharepoint services on the development machine. The case for keeping these two environments separate is already listed above but the issue is that it takes two virtual machines running to do Sharepoint development. So, there has to be a compromise between functionality, performance, and similarity to the real-world environments. What is the best relationship among these?

AppJet - Server-Side JavaScript

AppJet Dev Guide: Introduction

Here is the server-side JavaScript hosting environment. There are more and more of these online web frameworks. These times remind me of the first wave of free hosting providers - Geocities, Crooswinds, etc. Then came webmail and the history was made.
I wonder why Microsoft has not come up with a similar scheme. Probably they are not looking for homemade developers anymore and are focusing on the corporate environment.

Setting Up a Sharepoint Development Environment

How to Build a SharePoint Development Machine - Eli Robillard's World of Blog.

I started setting up my SharePoint development environment. Besides Windows Server and Sharepoint, other tools are required. DotNet Framework, at least 3.0, for Workflow Foundation and possibly other tools. The link above contains the list of some useful stuff like designers, SDKs, and other tools that help with SharePoint development.
I'm currently thinking how to organize the whole virtual environment and whether to create a separate development machine or to mix the development tools with the server(s). Multiple virtual machines running on the laptop quickly hog the whole RAM so having more than one virtual machine running becomes a tricky business.
I'm starting to dream of a proper desktop computer, with large LCD monitor, and a NAS rack with 1TB or more space. But, heck, what I have at hand will have to do for now.

Friday, December 12, 2008

320GB

Bought a WD pocket drive with 320GB for $129. This particular drive I've been looking for, was not available in the stores as it was sold out. Fortunately, I found it online. The same day delivery was free.

I've tried to copy some large files - hard drive files for virtual machines - but it failed with the message that hard drive was full! Only later, after I tried to split the large file first and assemble it on the target drive and failed again, I figured out the issue might be the file system. Funny, the drive was formatted originally. I just plugged it in and used it after it arrived. But the conclusion was right. It was formatted with FAT32 and could not accept large files. A quick convert to NTFS and everything is alright again.

Now I'm into creating some virtual machines. Rather than using the laptop for everything, I prefer to have a clean development workstation with only the developer software on it. Another one would be a toy machine that can install and run anything for testing. Other might be servers, etc. Will create additional ones as the need arises.

Tuesday, December 09, 2008

Microsoft Office SharePoint Server 2007 VHD

Download details: Office SharePoint Server 2007 VHD

The above is the download page for MOSS 2007 trial, which expires after 30 days. Should be good enough to get to know the product and try different ideas and scenarios.

Sunday, December 07, 2008

Downloadable content for Sharepoint 2007

Downloadable content for Office SharePoint Server 2007

Here is a list of downloadable content for Sharepoint 2007 available from Microsoft TechNet web site.
There is a whole part of the site dedicated to Sharepoint 2007. It includes a downloadable books and documents in .doc format.

The whole site section is available as a .chm file which includes all the texts as a compiled html collection.

Thursday, December 04, 2008

AndAlso & OrElse in C#

AndAlso & OrElse Operators in C#

I often mix Or and OrElse operators in c#, thanks to c++ heritage. Here is a reference to those logical operators.
In brief, single operator (|) is Or while double operator (||) is OrElse. The same goes for And and AndAlso.

Wednesday, December 03, 2008

SQL IN operator with Linq to SQL

Re: Would it be hard to add support for SQL IN (...,...) ? - MSDN Forums

There is a way to use IN parameter, or a workaround, for Linq to SQL queries. It is done in the following manner:

string[] cities = { "London", "Paris", "Seattle" };

var query = dataContext.Customers.Where (c => cities.Contains (c.City));

Thursday, November 27, 2008

Enterprise Library - Configuration

As I'm looking into creating a generic configuration solution it crossed my mind I might utilize the Application Configuration Block from the Enterprise Library.

Microsoft's Patterns & Practices - Enterprise Library

Enterprise Library - homepage on MSDN. Additional code and documentation available on the project page at Codeplex.

The latest release is 4.1, dated October 2008. According to the documentation there is no Configuration Block anymore. I find that with version 2.0 the Configuration Application Block was replaced with IConfigurationSource. Apparently this block only made things worse and was thrown out. Well, I remember the first time and I was hoping things have improved by then but I was wrong. They, actually, did the right thing and eliminated the whole block out of Enterprise Library.
So, back to creating my own configuration solution. :)

Wednesday, November 26, 2008

Syncplicity - another online sync/backup service

Syncplicity - Secure Backup, Synchronization, and Sharing

There is another online backup/synchronization service available to users. Still haven't tried it, though.
From what I can see in the tour, it has an option to share a file with people who don't have an account with Syncplicity. This is a fancy thing that will soon be one of those "can't-live-without-them" issues.
The service also plays nice with other Web 2.0 applications - Google Docs, Facebook, Zoho, Scribd, Picnik.
It has a way to prioritize files to be synchronized, stores previous versions of files that have changed (revisions) and allows one-way traffic (a feature used for backup as opposed to synchronization).
The free service offers 2GB of data space on the servers. Some additional space can be earned through referrals.

Files/folders not synchronized by Live Mesh

Are there types of files or folders that I cannot share or synchronize? : Live Mesh : Live Mesh : Microsoft Forums

Here is a link to a post on Live Mesh forum listing the types of folders and files that are not synchronized by Mesh client.

Quote:
You cannot synchronize or share the following with Live Mesh:
 

  • Files containing obscene or copyrighted material. Copying or
    sharing unauthorized materials, including materials that you did not
    create or you do not have the rights necessary for use, is a violation
    of the Windows Live terms of use. See the Microsoft Copyright Notice and FAQ.
  • Files whose names begin with a tilde (~)
  • desktop.ini
  • thumbs.db
  • Hidden files
  • Windows Systems folders
  • Your Desktop directory folder (for example,
    C:\users\[myusername]\Desktop on Windows Vista or C:\Documents and
    Settings\[myusername]\Desktop on Windows XP)
  • Files and folders stored on removable media (such as an external hard drive, flash drive, or USB drive)
  • Files and folders stored on mapped network drives


Live Mesh also blocks files that have the following file extensions:


  • .bak
  • .gfs
  • .lnk
  • .mbf
  • .mny
  • .mpc
  • .pst
  • .sav
  • .tmp
  • .wlx
  • .laccdb

Tuesday, November 25, 2008

Netbooks and Gaming

Netbooks Will Push Games to the Cloud - Seeking Alpha

Netbooks may become the most popular computer type in the near future. They would also be the least expensive one.
Offering good connectivity, they are perfectly poised to exploit the network. With rising popularity of network gaming (like Travian, for example) these could soon become the most widely distributed gaming platform.

Friday, November 21, 2008

Visual Studio 2008 Editions

Visual Studio 2008 Product Comparison

This page lists the differences between different Visual Studio 2008 editions.

Thursday, November 20, 2008

Visual Studio 2010 and .Net Framework 4.0 Preview

Visual Studio 2010 and .NET Framework 4.0 Overview

The first glimpse of the new Visual Studio and .Net Framework is available to the public. The focus seems to be on pushing the level of abstraction. Modeling and flexible architecture bring the most new features. Software development is maturing fast. Soon the new developers will not even know the difference between bit and byte. :)

VMWare Converter

VMware Converter for workstation to virtual pc and virtual machine migration - VMware

This free product converts Microsoft Virtual PC images to VMWare images.

What source machines does VMware Converter support for conversions?

VMware
Converter supports conversions from sources such as physical machines,
VMware and Microsoft virtual machine formats and certain 3rd party disk
image formats.

What virtual machine formats can VMware Converter import?

VMware Converter can import virtual machines created in:


Workstation 5.x and Workstation 4.x
VMware Player 1.x
VMware ESX 3.x
ESX Server 2.5.x (if the virtual machine is managed by VirtualCenter 2.x)
GSX Server 3.x
VMware Server 1.x
VirtualCenter 2.x
Microsoft Virtual PC version 7 and later
Any version of Microsoft Virtual Server

Sterod Procedures VS Parameterized Queries

TheServerSide Debates: Stored Procedures v Parameterized Queries

A very good debate on the eternal topic of 'Stored Procedures vs. Parameterized Queries'. Here we see different kind of scenarios, usage of sp_executeSQL, query string concatenation, parameterized queries, stored procedures, etc. The comments below the actual articles are more valuable than the article itself.

One of the conclusions that I am looking for at the moment is that for typical CRUD operations, parameterized queries are better and more effective.

Monday, November 17, 2008

Using Stored Procedures with Linq to SQL

Scoott Gu, in his endlessly useful series of articles on Linq to SQL, has an article on how to use Stored Procedures with Linq data model.

Apart from often quoted reasons like access speed and logic used in Stored Procedures, the positive side of using Linq with SPs is that the retrieved entities are strong typend and updatable through Linq. Having said that, it is also possible to use Stored Procedures on the insert/update/delete side.

Multiple results returned by SPs can be handled, as well. User Defined Functions are supported directly in Linq queries.

Saturday, November 15, 2008

Shared Access Computing

Microsoft has a product that helps with shared access computing. The product is called Windows SteadyState.

Computers at schools, libraries, internet cafes and other places where multiple users use the same workstations usually have the same problems. Configuration, downloaded files, access rights, maintenance, etc. This product makes it easier to maintain these workstations.

Friday, November 14, 2008

25GB Free with SkyDrive

Microsoft Live newsletter announced that they will soon offer 25GB of free web space on their SkyDrive service. From what I can see, space is in abundance at the moment. :)

The problem I have with SkyDrive is not the total amount of space available but the size of individual files allowed to be uploaded. I have an e-book I want to make available for download but the size is 140MB and there are only a very few reliable free services that allow that file to be uploaded. Hopefully the space upgrade will allow larger files to be hosted on SkyDrive, as well.

App Arch Guide 2.0 – Business Layer Guidelines

As a part of Microsoft Patterns & Practices a guide to designing a business layer is available at Codeplex.

According to this guide, the business layer consists of

  • Application Facade, which is optional, and combines multiple business operations into single operation.
  • Business components, representing the business logic, data and workflows.
  • Business entity components, used for passing data between components and representing real-world business entities.
  • Business workflow components.

Ajax & ASP.Net MVC

The one question left after reading about the MVC pattern for ASP.Net was whether and how it coexists with Ajax.

Nikhil Kothari has an article on this. Since the MVC is still not in Retail status, the Ajax is not supported out-of-the-box. With some fiddling around it soon will be. It is already possible to implement Ajax features into the MVC pattern and a prototype sample application is available with the article.

Similar to previous development, Ajax will be adjusted to MVC or vice versa and then this will be a great combination. Albeit a more complex but powerful one compared to current ASP.Net.

Using Linq with MVC

At ASP.Net site, there is a video that shows how to use Linq as a model inside a MVC framework. It is useful to see it also as a very basic and simple introduction to using Linq generally.

It shows different types of queries – query syntax and method syntax. Query syntax is similar to SQL query language while method syntax uses Lambda expressions.

The recommended way of implementing a model is to use Repository pattern.

Also, demonstrated is the way to use Constructor Dependency Injection pattern to allow for easier testability of the controller classes.

More on Microsoft MVC for ASP.Net

Here’s an article from the MSDN Magazine, March 2008 issue, about ASP.Net MVC.

Model View Controller (MVC) pattern, as implemented by Microsoft for ASP.Net, is a new web application framework that sits side-by-side with the Web Forms but has a different set of design goals. A few of the main points are that it is extensible and testable. The description from Patterns & Practices site is here.

It will definitely change the way we (developers) interact with the web users and how we create the new generation of applications. It is, finally, a step away from the scripting playground that started with ASP, PHP, and similar languages. Now, the URL as a way of interacting with an application server is more dynamic, configurable, and alive, in a way. Now we have classes (controllers) and different ways to interact with them through URLs (calls). The data (model) is displayed through a web page (view), as usual.

Views now can be Master Pages and regular pages, so page nesting is possible, allowing for a more modular and flexible design. The model can be strongly typed. That way it is accessible to a View through object properties, which implies type checking during compilation time. The view, actually, is a scripted version of the presentation layer and very much more like ASP than ASP.Net.

For the moment, as the technology is still not in its Release stage, Web Forms still have some advantages. But soon after the MVC framework catches up with the UI controls concept it might become more appropriate for a large-scale web development.

To see an introductory video on MVC, click here.

Scaling and Performance of ASP.Net Applications

Looking how to generally improve scaling and performance of ASP.Net applications shows how complex the problem is. Every problem will have a different solution as it needs to be broken down and analyzed to find bottlenecks and ways to solve them.

Some informational texts on the topic include:

Performance: Scaling Strategies for ASP.NET Applications

One of the solutions can be to use the newly emerging distributed data layer. Similar to Scale-Out, NCache, and others, Microsoft has started the Velocity project.

To see MySpace architecture and how it solved the scalability issue, read here. It confirms that the right approach in building high-capacity scalable sites lies in correctly implementing the caching or distributed-storage technology.

Linq for SQL vs Entity Framework

Performance Considerations for Entity Framework Applications

There are lots of good articles, comparisons and tests of raw Ado.Net SQLDataReader, Linq for SQL, and Entity Framework.
From the performance comparison results, it appears that the Entity Framework was intended as a middle-layer business object repository. The performance sucks if the queries are created and executed ad-hoc, whereas it gets much better during repeated queries. The business object should be instantiated and kept memory in a separate layer/service.
For better performance and scaling applications, Linq for SQL or just plain old datasets and stored procedures are still a faster option. But, that comes at a loss of a proper business layer.

Wednesday, November 12, 2008

GridView & LinqDataSource

LINQ to SQL (Part 9 - Using a Custom LINQ Expression with the control) - ScottGu's Blog
I'm playing with finding the easiest way to display and manipulate the content of a data table at an ASP.Net page.
The UI control is Grid View. The data is in SQL Server. I'm using Linq for SQL to generate the entities/tables. Entity Framework can only generate entities from tables which contain the primary key.
LinqDataSource is used to provide data and insert/update/delete features to the GridView.

Tuesday, November 11, 2008

3D Kitchen Planner

marquardt.com.au

3D kitchen planning/modeling in Flash. For all of you kitchen lovers out there. Sooner or later everyone needs something like this.

Sunday, November 09, 2008

THM File

Today I copied some photos from my new Canon camera onto the PC and noticed that, besides the JPG photos, there was a .THM file, as well.
The .THM file can be renamed to .JPG and viewed. It turns out it was a preview of one of the first images I made and safe to delete.

Thursday, November 06, 2008

ASP.Net Distributed Caching

ScaleOut Software - Distributed Caching for Server Farms

To read about the current shortcomings of ASP.Net caching in a web farm environment, read the description - here.
Another product, besides NCache above, is ScaleOut. We are using it at work. It is one of the pioneers in the field and the performance is impressive.
 
To read a bit on Gigaspaces, its pros and cons, go here. It mentions a number of open source solutions, including Terracota.
 
In the newsgroups, people seem to praise NCache.

Designing Data Tier

Designing Data Tier Components and Passing Data Through Tiers

An article about how to design the Data Tier part. A thing I'm focused on at the moment.

Web Applications Patterns & Practices

patterns & practices Catalog by Application Type
Web Applications
Since I'm into doing some architecture work again, here is the link to Microsoft Patterns and Practices recommendations for application design. I'm focusing on Web Applications for the moment but that may be extended when other parts of the systems (libraries, services, etc.) come into play.
I am looking into current guidelines for the best practices application design.

Monday, November 03, 2008

Electric Vehicles and Batteries - I Want One!

Market for Electric Vehicle Batteries Is Heating Up - Seeking Alpha
The cars produced by Phoenix can go 130 to 250 miles on a charge, but can be recharged in as little as 10 minutes.
Excellent article on electrical batteries. With the development of the electric car market, the market for electrical batteries also develops. Good to hear there are already some great achievements, like the one quoted above. A battery that recharges in 10 minutes is definitely a breakthrough for normal use in electric vehicles.
I'd like to have some sort of electric car in the near future.

Thursday, October 30, 2008

Team Foundation Best Practices

An issue came up at work setting up the new Team Foundation structure. Now we are looking at best practices on how to set up the project structure.

An article on continuous integration has a couple of useful advice. There is the TFS Guide available on Codeplex. Martin Fowler's has an article on Continuous Integration available here.
 

The conclusion for Team Project structure is to use one Team Project for all the related projects. Otherwise, there are issues with build scripts, workspace mappings, etc.

JavaScript Menu

Simple JavaScript DropDown Menu with timeout effect v2.0 « Scripts and Tricks « JavaScript DHTML Tutorials

I implemented the JavaScript menu from this page on my Finance Pages. Since countries started piling up, I moved them under a separate menu.

The only drawback of this option is that the menu has to be left-aligned with float:left. That way the drop-down menu can appear at the right spot. Otherwise, if the menu is centered, the drop-down appears at the far left and looks ridiculous.

I removed most of the (unnecessary) formatting from the related style sheets because I had the styling taken care of already. All I needed was the JavaScript and the mechanism of displaying the drop-down sub menu.

Wednesday, October 29, 2008

Mesh Bug/Feature - Web Folders

Alright, I'm on the track to figure out what is going on when a folder is converted to web site using Microsoft Expression Web and the option "Manage the web site using hidden metadata files" in site settings is turned on.
Apart from creating _wti subfolders and desktop.ini within the web site, the folder / web site also gets attribute S (system) and attribute A (archive) is removed.
I used to think that _wti or desktop.ini have some role in the same folder disappearing from mesh shared folder. Now I'm more likely to think it is the attribute of the folder that is the key. I have manually removed the S attribute and restored A attribute (not that the last one should matter). The folder remains visible in Mesh. The desktop.ini and _wti subfolders are not replicated, which is good because I don't need them replicated anyway. The _wti folders are hidden and I believe this is the reason they do not appear on Mesh.
The files get synchronized alright.

So, removing S attribute from a folder, after setting it as a web folder in Expression Web, makes it visible in Mesh again!
Now I finally can share all the web folders under one mesh folder.

Appspot.com Hosting - Finance Site

I've created another application at appspot.com. Actually, it is not a typical application but a web site. The only thing that needs to be set up are app.yaml and the main .py file for the site.
In the app.yaml I use the following handlers:

- url: /(.*\.(html|htm|css|jgp|gif|png))
  static_files: static/\1
  upload: static/(.*\.(html|htm|css|jgp|gif|png))
 
- url: /.*
  script: alensfinance.py

This allows all the static files to be stored in the /static sub folder but appear as if they are in the root to the visitor. For example, the following link - http://alensfinance.appspot.com/aus_stockmarket.htm - appears to be in the root of the alensfinance.appspot.com site but it is actually placed in the /static folder. So the static folder contains everything an ordinary root for the site would.
The physical root folder contains alensfinance.py file which simply handles the http://alensfinance.appspot.com URL and redirects it to the index.html in the static folder. Simple and effective.

The problem now is that Mesh has a bug which prevents the web sites stored in subfolders of a Mesh folder to be replicated. :S

Tuesday, October 28, 2008

110MB Sites down

This morning I was checking the charts online and my sites at 110mb simply disappeared. Later I checked and nothing changed. Could not even log in to the control panel for the sites.
This was something new after years of getting used to 100% uptime with Google hosting. I did expect some downtime but, still, this was a bit of a shock. Makes me wonder if it is worth it to switch hosting providers.

Thursday, October 23, 2008

Debug Stored Procedures with Visual Studio

How to debug stored procedures in Visual Studio .NET

Stored procedures on SQL Server can be debugged with Visual Studio. Simply find a stored procedure in Server Explorer and select either Run Stored Procedure or Step Into Stored Procedure option on right-click.

Tuesday, October 21, 2008

Submit your site to web search engines

If you want your web site to be indexed by main search engines, submit it at the following URLs:

Google search

Yahoo search

Redirect from old to a new web site

There are several ways to handle this issue, generally.

First is permanent redirect. It is achieved by adding the line

Redirect 301 http://<newwebsiteurl>.com

to .htaccess file in the root folder of the web site. The web server will automatically redirect all requests to the new location properly. If one requests a certain page from the old site the web server will redirect to the same location in the new web site. This works great if you are simply moving the whole site and keeping the structure in place. But, this will not work with Googlepages.

Second approach is client-side redirect, using Meta tag. Using this tag you can redirect to a new location and specify the time after which redirection occurs. Example:
<meta http-equiv="refresh" content="5;url=http://newwebsite.com"> 

This will redirect client browser to the new web site after 5 seconds. Placing 0 instead of 5 will redirect immediately. One of the drawbacks of this method is that search engines will still keep the links to the old web site.  This tag has to be placed into <head> tag of the page, which is not accessible with Googlepages templates.


This issue can be worked around by adding the new URL to search engines.


Redirect pages at the old site can also contain a hard-coded link to the new site/pages so that the new links get indexed by search engines and that the users can reach the link manually in case their browser does not support meta redirect (refresh) tag.




Another way is to use JavaScript to redirect to another page. Placing the following code will work with browsers that support JavaScript. This option would probably have no effect on search engines but is the only one that works with pages on Googlepages.


Moving Site from Googlepages to a New Hosting Provider

I'm doing an experiment in moving a web site from Googlepages to another hosting provider. There are different issues coming up during process. Here I will write down the problems encountered and provide some solutions I come up with.
 
One of the first issues to appear is how to redirect old links and search engines to index that new site instead of the old one.
The approaches and solutions are covered in a separate post.
 
Another issue is how to deploy the new web site. FTP protocol gets blocked at certain locations which makes it difficult to deploy the changes to the web site. Googlepages offers (only) web access to files. That means the access is always available through a web browser. This is its drawback at the same time if you have FTP protocol enabled.
Fortunately, most providers nowadays offer some sort of HTTP access to files on the server. That means no automatic synchronization of files but you have to deploy each changed file manually.
Host “110mb” allows a nice feature where all the changed files can be uploaded as a zip file and then this zip file can be uncompressed on the server, effectively deploying all the changed files at once. This option also overwrites existing files as opposed to manually uploading single files, having to delete previous version before upload. Neat!
 
 

Monday, October 20, 2008

XML Tools for Visual Studio 2008

Some XML tools have been added with the SP1 for Visual Studio 2008 and dotNet Framework 3.5. Visual designer took a step back, though.

So, here are some free XML tools available as a Community Edition of Liquid XML Studio 2008: download here.

Liquid XML Studio is a fully featured graphical development environment for XML Schema (XSD) and XML documents.

Graphical XML Schema (XSD) Editor
Plug-In for Microsoft Visual Studio 2005 & 2008

XML Editor, XML Validation, XML Formatting
Infer XSD From XML

Generate HTML Docs From XSD
Generate Sample XML From XSD

XPath Expression Builder
Web Service Browser & Method Invocation

To see the differences between the Community and the paid edition click here.

XML Validator

XML Schema Validator

Here is a practical online XML schema/document validator. It contains two text boxes. One accepts the XML document content and the other XSD schema content. Clicking a button will validate the XML against XSD schema and tell you if the validation is successful. If not, it will display the error stating what is wrong with the document.
Very useful tool.

Saturday, October 18, 2008

110mb Web Hosting

Alen Siljak's Homepage

I have just copied my web site to 110MB web hosting provider. This is a free hosting provider with good reviews. Offers 5GB of web space, 300GB of monthly traffic. They do not place ads on your web site and do not prevent you from placing your own.
Your site gets a subdomain of 110.com domain. Available access is via FTP (the easiest option for site upload) and web. Web access is even easier than the one offered on Googlepages.

In order to test this hosting provider, I have posted a request for publishing to Project Wonderful. Some free hosting providers are not allowed as publishers there. To find out what those are is a bit of a pain at the moment.

Friday, October 17, 2008

Use Single Keyboard and Mouse for Multiple Computers

Business Spectator - WEEKEND READ: PC essentials
Synergy

This app has one narrow purpose: It lets you control multiple computers with a single keyboard and mouse. Say you occasionally run your laptop next to your desktop—move your mouse to the edge of your desktop screen, and suddenly the pointer shows up on your laptop screen. It's like magic—especially since it works between platforms (you can move your mouse from your Mac to your PC).

Here's a software I'd like to have linked here so I can find it in that awkward moment a need arises for such a thing. This is one of those life savers that one doesn't care about until one needs them. Use the same keyboard and mouse for multiple computers. Very neat if you use them. Totally useless if not. But, sooner or later, such situations occur.

Thursday, October 16, 2008

BlogThis for Firefox 3.0

Blog This for Firefox 3.0 « whateverblog.

Windows Live Writer has a plugin that adds a context menu option to create a blog post using Writer and pass the current page title and selected text (usually) from Firefox. Nice feature if you need to post a link to the page you are viewing.

At the link above are the instructions on how to make BlogThis plugin to work with (latest) Firefox 3.0 beta. As usual, it is just necessary to update the max. supported version in the install.rdf file.

PortableApps - Application Virtualisation

PortableApps.com - Portable software for USB drives

Another interesting project in the world of virtualisation. These apps were compiled so that they run from a single folder and therefore can be moved around on a flash drive, for example. The application list is limited but includes a few necessary applications.

This is one of the approaches to the problem of having too many computers around. :)

Wednesday, October 15, 2008

Windows Live Writer

Alright, I've downloaded and installed Windows Live Writer. It seems a nice application. The first con I'm noticing is that I can't find a way to edit previous posts.

The other functionality is very attractive. Web preview and blog styles allow you to see how the post will look like when posted to the blog. Blog's visual style is downloaded to your computer so blog posts can be previewed while being written.

It allows to add/set categories and publishing time. I wonder what time this post will get. Usually, when posting from ScribeFire, the post times are received from the server and those are from some U.S. time zone. This often means that I'm having troubles finding earlier posts because, for example, this morning posts (Australian time) are posted with yesterday night's date and time.
Writer has a handy option to set the post time to current time at the computer used for posting. But, this still gets translated into server time. Well, at least its consistent. :)

There appear to be many plugins. Some come installed with the application. These are basic ones, like Insert Picture, Insert Table, etc. Very practical. There are many more at the plugins site.

Anyway, I installed this application for offline editing and posting. Editing, so far, seems hard if not impossible. I have to go through the options once again.
And, to test the offline functionality, I will publish this post and see how the offline functionality works for the posts published through Writer itself.

***

Post published through Writer show up in the list of Recently Posted items. Still, this is only a list with titles. When selected, the post will be retrieved from the web, not from an offline cache.
There are also drafts, so that posts do not have to be published immediately but saved for publishing later.

And, yes, editing older posts works well. Now, I'd like to see how I can edit all the posts in the blog. Also, working with comments would be nice but that might be something more appropriate for a blog reader.

Well, after going through the options, I'm very pleased with the capabilities of the software. Older posts are available through standard File->Open operation. The posts are retrieved from the blog and the number of last post titles to retrieve can be set up to 500. Opening "Recent Posts" allows retrieving any item (All). This means if Writer is used for posting, all the posts should be retrievable for editing. Too bad an individual post can not be open by providing a URL or in some other way.
Nonetheless, the ability to edit older posts works well for simulating web pages because edits replace number of new posts. I actually prefer this option.

Well, so far, I very much prefer Writer to other posting solutions. The drawback might be only if I'm posting while away from my computer. But that should not be a problem. Still need to see where the settings are kept and if they can be synchronized. Not that it is important, though.

Tuesday, October 14, 2008

Offline Blog Content

Searching for a tool that can store blog content offline results in some interesting findings.

Microsoft has Windows Live Writer, a free tool for post generation offline. Web page here, and additional plugins here.

Writer zone page, link to beta version.
 
Here is a Blog This add-on for Firefox. The add-on opens Writer for publishing a blog post with the URL and other details from the page being viewed in the browser. The template is fully customizable. The plugin does not work with Firefox 3 yet.
 
Codeplex hosts a project that contains the plugins for Writer.

Moving Site to Blog 2

Playing with moving site content to a blog format. Some useful finding and insights come up during the process. These were hard to imagine until one actually faces their results.

I also just tried Google Sites. It is an interesting project. The solution could work for many small web sites. It provides a framework for many standardized web items. Similar to blog functionality. I assume the online content will soon become something in between blogs, wikis, file storage, collaboration, etc. Just like the Sites is doing. What I'm missing there is some more customization.
So, the following are the issues I met so far, after only 15 minutes of trying to migrate content from a web page to a blog format.

No Offline Storage

One of the reasons I created certain web sites was to keep the content on my computer and have it searchable. That way the posted content was available offline as well as online. Most of the initial stuff posted on the web was there for my own need. First, I created some text content for what I needed at the time or to keep for reference. Then I posted that online so that it is available for others or for me when away from my computer.
With blog format all the content becomes online-only. I'm yet to find a way to store those posts offline. ScribeFire or some other tool may help in that regard. ScribeFire does not appear to offer similar functionality so I may look for other blog posting software that would automatically keep a copy of all the posts offline, as well.

Navigation

This is a bit painful if the site is to have any kind of hierarchy or structure. Also, the look and feel of navigation buttons, or other forms of links, is very limited. Lack of CSS linking can't be made up by inline CSS. I'd love to have standardized links just like there is on my Finance Site (http://alensfinance.googlepages.com/).


Moving Content from Site to Blog?

I'm starting to wonder if moving all, or most, of my content from web site(s) to a blog would work. The step is not as easy as it seems.
The question requires analysis and direct comparison between positive and negative sides of either type of content hosting and presentation. I'll try to list, ad hoc, the advantages and disadvantages of both and compare them.
I'm interested in your comments, too.

One of the main reasons I would use blog over a typical web site is search. Blogs tend to be searched much more frequently than a typical web site. Also, moving web site around does not help in that regard. An important thing to note is that the web site is hosted at a free host. Some of the drawbacks come from that fact alone. There is no active content. In fact, with Google offering Appspot active hosting with Python, that element does not weigh so much today but I haven't had the time to use Python on the web site yet.

Another important point is that I love Project Wonderful. I love the idea behind it and find it fair for both advertisers and publishers. It is similar to Entrecard, another very nice concept. But, PW does not work well with free-hosted sites. That may change in the future but right now it doesn't.

So, against these two main reasons I'm trying to list advantages of a web site built with HTML, JavaScript, and CSS. Here are some of the initial thoughts:
- navigational links
- formatting
- standardized links, templates
- ?
Hm, I can't really add much more to it. And, all of the "advantages" are not really holding true.

Navigational Links

Navigational links, meaning that every page has its URL and is easily converted to bookmarks and saved on desktops or linked from other web sites and/or locations, works well for blogs, too. It is exactly the same or even better with blog posts. Plus, they get sorted by different elements - by posting date/time and tags.
In addition to that, blog posts allow comments as a direct way of communicating with the audience. Something I always missed on my html pages until recently, when I built a contact form using Python. That solution is not transparent in a way that the comments from readers are not visible to others. These can be extremely useful sometimes. I receive some very good comments on the topics I write about and people come with interesting ideas, views, solutions, links... Hm... I'm on the blog for this one.

Formatting

Formatting using CSS and having the whole page as a canvas is attractive. HTML pages can be customized with CSS, JavaScript, Java applets, Flash, embedded objects like music or video, etc. This can work well sometimes but also can be disastruous. Most of these can be embedded or adder to a blog post, anyway. So, unless there is some form of artistic expression, I'd say blog offers enough freedom for mixing different type of content.
There is CSS involved anyway in the creation of the blog but that links to the next point.

Standardized Links and Templates

By "standardized links" I mean links to pages, that appear on groups of pages. It can be achieved using templates and adding certain link elements to the template. Then it appears on all the pages built on this template. This can not easily be achieved with a blog.
I worked with so many different topics and my web site contains lots of different pages. I used different CSS styles for them to make them distinct from others. Also, the content was assembled over the years and styles changed, got updated, new ones were used for new things, etc. Just as it happens in real life.
So, templates would work with blog in case another blog site is started for each different topic. That's one solution.
Common links among different pages work in a bit different way. Each blog has a template that is used to set the look and feel of the blog site. All those template nowadays include different main sections displayed on the page. These sections can include link section as a pure HTML block and then this block can be set to contain links to some standardized posts/pages that lead further. This approach works well with setting a new blog site for each topic. In that way every site could have standardized links.

Updates

Another, quite important, issue is updating the content. Until recently, I was not even aware that blog post edits were so useful. I was aware of the feature but it was not readily available with the tools I was using to post and so I used it only rarely. Then I had to go to the blog site, find the post, select editing, fix the post and update it. But now, with an add-on for Firefox - ScribeFire, editing of previous posts gets incredibly easier. This tool shows the posts on the blog and allows easy editing of the posts. This puts blog posts at the same level to standard web sites. I'd say that updating content was the major advantage for HTML web sites. Obviously, not any more. It is such an insignificant issue now that both approacehes have this option. I got so used to editing posts that I even forgot to list the issue previously.

Active Content

Here I mean an engine behind the pages. Server processing, dynamically generated content, etc. Example would be ASP.Net, Python, PHP, and other server-side scripting/programming languages. Google offers free Python hosting and there are other providers offering other types of "active" hosting. This is something that is not readily available on a blog site. But, there might be workarounds. The workarounds depend on what is required for the dynamically generated content. The only real need I had before was the contact form and that is already handled by blog sites very well. Other content can be linked into posts, as stated previously, so the question remains on what the real usage would be for dynamic content. I assume, if there is a need for a dynamically generated content, these pages can be linked from the blog and kept at a separate, active hosted site. This question remains open while I find some real usage for active content. I mean, of course Facebook applications would not be built as blog sites. But it is hard for me to find other usage for active content. This is a consequence of using free hosting over years and getting burned whenever some site-specific features were used. I've changed so many different hosting environments, offering different abilities, different versions of PHP, different sets of options available that I gave up on most of those and kept it simple and clean with only the client-side scripting, if needed, and keeping even that to a minimum. HTML and CSS are still the core of my web pages. And these are beautifully handled by blog engines in a very simple and effective manner, eliminating the whole hosting and posting mess with ordinary web sites. With blogs, author can focus on content only.
Come to think of it, most of my content would be more appropriate to blog format that to web pages as I have them now. Especially the whole development section. That stuff gets outdated so quickly. There are new things emerging all the time. The whole content part gets rearranged over time that its cumbersome to maintain it as a web site. This is the very reason I very rarely update that portion of the web site these days. I prefer to post stuff to my IT blog and have it there, easily searchable, than to update my IT section of the web site.
What I could do is, maybe, to link different blog posts to a summary web page, that can be used as kind of Table of Contents or Index.

So, let me try to summarize these in a table, next to each other...



 Web SiteBlog
Project WonderfulDoesn't work
Works
EntrecardDoesn't workWorks

Search
custom providersWorks
Active
Content
availablen/a, maybe

Navigational Links (URL)
WorksWorks

Formatting (CSS)
Works part of template;
inline?
Common Links (site index)Works
workaround
Site TemplatesWorksWorks, predefined by provider
Content Update
Works
Works


Conclusion?

I don't see too many reasons to continue to use web site as opposed to blogs. Especially since Google discontinued the Pages project and is pushing with the Sites project. I still haven't migrated but, when the time comes, that might be a reason to move some web sites to a blog format instead of keeping them as web sites.
Another issue that prevents me from migrating right away is the shear amount of work required to move all the content to a new format. But, after listing the arguments pro and contra, I might pick one of the sites and start migrating the content slowly. I'm in no hurry. It could be an interesting project.

Saturday, October 11, 2008

YouTube in Stereo

YouTube - Dean Shredders Search Contest - Muris Varajic

A friend sent me the link to his guitar piece on YouTube.

http://au.youtube.com/watch?v=-3PqhuiGIZo
or http://au.youtube.com/watch?v=-DNfG5QBmm0

and, by adding &fmt=18 at the end, it calls the better quality version. The sound is stereo and the difference for the above pieces is astonishing.

Try

http://au.youtube.com/watch?v=-3PqhuiGIZo&fmt=18

or http://au.youtube.com/watch?v=-DNfG5QBmm0&fmt=18


Wednesday, October 08, 2008

Change Default Sound Card

A friend asked how to enable the new sound card in bios?! That sounded weird at first. Today, modern BIOSes have enough IRQs to accommodate all devices and, besides, most of the devices are integrated and there's no need to even go into BIOS.
It turns out that Windows did recognize the card. So, clearly no need to go into BIOS. It should be enough to change the default sound card that Windows uses. This is done in Windows XP by going to Control Panel -> Sound and Audio Options and selecting the sound card one wishes to be the default.
Besides this, at the link below there are a couple of programs that make this whole process easier. I haven't tried them but they appear pretty straightforward.

Easily Change or Switch the Default Audio Sound Output in Windows Vista and XP: Humsurfer - PaisaSurfer

Firefox Ultimate Optimizer

felipEx Weblog — Firefox Ultimate Optimizer v1.1

One of those things that makes you wonder how could you live without it. This program reduces Firefox's memory consumption to minimum. We all know how Firefox often can hog hundreds of Megabytes of RAM during usage. The Optimizer slashes that to less than 1MB.

The downside I've found of using it is that it keeps CPU activity at 2-3%. So, it is possible to start the program occasionally to lower Firefox RAM usage and then quit.

Sunday, October 05, 2008

The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression.

I get the following error in Firefox 3.0.3 when trying to access Bloomberg.com

"The page you are trying to view cannot be shown because it uses an invalid or unsupported form of compression."

Clearing cache and cookies solves the problem! (Tools -> Clear Private Data; it is enough to select only cache and cookies)

Saturday, October 04, 2008

Serialize/Deserialize into a Session

C# & ASP.Net: Serialize/Deserialize objects

Here is a link to a page providing a sample code on how to serialize and deserialize an object into a string. I'm running into a situation where I need to store an object in a session and then continue using it at a later stage. The above code is clean and simple example on how to do most of it.

Model-View-Controller in ASP.Net

Implementing Model-View-Controller in ASP.NET

When I played with Python and Google App server it was apparent that the web and software development is moving in a direction where the software system are built on Model-View-Controller (MVC) pattern.
Recently after that I received a newsletter from Microsoft with a link to the MVC software development kit that makes it easier to use this pattern with ASP.Net.
My conclusion is that this pattern might become standard pretty soon and that probably in the next version of the .Net Framework and/or Visual Studio this would be the preferred way of building web applications.

Friday, October 03, 2008

Vista ReadyBoost & SuperFetch

Another one of those funny-sounding technologies that use a quite new concept and promise this and that. Well, to find out if they really work sometimes is enough just to browse the net and read the reviews.
From what I could find it seems that ReadyBoost is not really an option since the system already has 3GB of RAM.
This exercise went well and just saved me $40 on a new flash drive that I might have used to test ReadyBoost (and find it didn't have any visible effects on the system).

There is also another technology - SuperFetch. There is an interesting review on Tom's Hardware, explaining some background technologies, like caching, memory usage, etc. SuperFetch apparently works better than in pre-caching in WindowsXP. ReadyBoost is actually used as a cache storage for SuperFetch. This draws a conclusion that the improvements in performance are to be felt with commonly used programs. All the tests that just run common speed/throughput tests on a system would not see any performance improvement as SuperFetch had not had the time to analyze application usage during the test runs.
The real difference comes from separating the system drive, containing the swap file, and data files. These data files get cached in the flash drive, using ReadyBoost.
Test results mimicking standard computer usage, and not running any standardized performance tests, show there is significant improvement. But, on older systems, that were under stress by just installing Vista, anyway. On systems with 1GB of RAM or more, the results are not that dramatic. In practical terms, almost non-existent.

So, the conclusion? All these technologies are nice to have, of course. Stick to the specifications and use new operating systems on new hardware. Give them the recommended configuration or more and don't expect miracles. :)

Thursday, October 02, 2008

Free Streaming/Virtualization Product

Application Jukebox Lite Edition - Application Jukebox Lite Edition

Here's one free solution for application streaming or virtualization. I'm starting to look for such a solution that I could use to access not only data but applications from another computer.
Together with some tunneling solution, such as Hamachi, this would be a nice thing to have. Then it all comes down to infrastructure. All such applications would necessarily require more capacity from existing networks.

Wednesday, October 01, 2008

Free Home Design Software

Sweet Home 3D
Artifice DesignWorkshop Lite

Here's some free 3D home design software.

List  of free software and online home design tools.

Search for Song by Singing or Humming It

Search for Music Using Your Voice by Singing or Humming, View Music Videos, Join Fan Clubs, Share with Friends, Be Discovered and Much More For Free! - midomi.com

Here is a search engine that searches for songs based on the tune you hum or sing to it. I've been wondering about such a thing for a long time.
The negative side is that I already found the songs I wanted to find. :)

Tuesday, September 30, 2008

Schools of Aikido

elitemadzone.org - Tradicionalni i Realni Aikido?
"Stare Å¡kole" - Aiki-Budo, Yoseikan, Yoshinkan
"Moderne Å¡kole" - Realni aikido
"Tradicionalne Å¡kole" - Aikikai, Iwama-ryu
"Ki Å¡kole" - Shin-shin Toitsu Aikido
"Sportske Å¡kole" - Tomiki-ryu

The list of schools of Aikido.

Toll

Index of /TollToday

Here are Toll newsletters shedding some light on the company activities.

Sunday, September 28, 2008

Bailout

Along with the bailout of Wall Street companies, there is another issue that went along with it but has not received as much publicity.
$25 Billion has been awarded to auto makers in the USA to reconstruct the factories and focus on more fuel-efficient cars. There's rumor that GE would get involved in creating the new EV (Electric Vehicle) of some sort.
The future is here. Only, the news of it are not as interesting as the unraveling of the End of the World scenario at Wall Street. :)

Saturday, September 27, 2008

IE Cache to the Rescue

IE cache is dearer than Firefox's. I had some CSS classes linking to a couple of images on the web. These disappeared yesterday and the pages containing those CSS classes started to look ugly. I did not bother previously to save those images locally or on the web site and now I could not find them online.
One way to find them was to search local browser cache. These are the pages I have browsed almost every day and these images just had to be there somewhere on my local hard drive. I knew that Firefox cache gets artificial names and it is very hard to find something. Maybe there is an easier way that I am not aware of? Anyway, knowing the names of two image files I simply could not find them in the cache.
Later, I remembered that I also used Internet Explorer to browse these pages and I decided to look into IE cache, as well. Well, this was much better. Simple search through the cache folders found the two image files I needed. Had I remembered to search the IE cache this morning I would have saved hours of searching the internet for the same two files and browsing through Firefox browser cache.
I have to admit I prefer IE browser cache to Firefox for pure usability outside it's main purpose.

Friday, September 26, 2008

Fake Progress Bar

Digital Volcano - Fake Progress Bar

Hahaha, this is a great thing. Goes along with the "Wally attitude" (the best character from Dilbert).

Windows PE 2.0

Windows PE 2.0: a tiny version of Windows for system maintenance

A new "boot floppy disk". This is something every system administrator should have. Well, everyone who could ever even try a recovery off a failed system. One of those things one doesn't need until it's too late. Just like backups.
Treat your computer as if its going to die tomorrow. :)

Ultimate Virtualization (for now)

VMware planning to make your OS irrelevant

This would be the ultimate virtualization of the desktop. A desktop independent of the hardware it is used to run on or the very operating system that runs it. This would be great as users need more and more of virtualization. Our desktops are becoming ever more important parts of our lives. My Documents is probably the most important folder ever, containing ever increasing part of our existence - sound files, pictures, documents, resumes, mail history, licence keys, what not... This is the folder that gets backed up and that has to survive whatever might happen to the operating system or the computer it is used on.
I'm using Microsoft's Mesh to backup and synchronize parts of My Documents folder but the service is not ready yet for the real thing. Subfolders are still creating problems and there are other glitches around. But eventually it will get there.
Now, the question is whether it will be there on time. :) Probably will as VMWare strategy is to develop in that direction in the coming years. Besides, the description of the vision goes along Microsoft's efforts to establish Mesh as exactly the same thing, more or less.
Obviously, Microsoft is too big to focus on one thing only. There is the new Windows (7) being announced and presented in its pre-beta form next month.

Looking forward to initiatives like this as I really need my personal things to be accessible anywhere and backed up.

Thursday, September 25, 2008

Midwest, damn it - Travian?!

midwest: Do you write it or not?!

Ha, what a development. Yesterday I asked Midwest to write a few lines on his blog and so he did. The interesting part goes a little deeper. I've had some time after I came from holidays. I decided to slow down a bit and make more room for relaxation and recreation. So, I was more on the lookout rather than actively looking for a video game I would play. I haven't done that for a really long time so now I'm kind of missing it. The last thing I played was the Elder Scrolls IV - Oblivion and that was at least a year ago.
So, Midwest goes ahead and writes the post mentioning Travian. The initial description is just what I was looking for. With high internet availability it makes more sense to play a simple game online. So, the dice has rolled.
Here is the description on Wikipedia. I see there are domains in different parts of the world, so here is the Australian one.
OK, let's see what it's like... :)

Wednesday, September 24, 2008

Tracing SQL Queries

Tracing SQL queries using Profiler displays the queries that get actually sent to the SQL Server.
To see the SQL queries sent by a dataset or a data adapter turn on
- Stored Procedures, RPC:Starting
- TSQL, SQL:BatchStarting

Useful columns are
  • TextData, displays the SQL query
  • SPID
  • StartTime
  • HostName, the name of the computer which sent the query

Tuesday, September 23, 2008

Clustered and Non-Clustered Index

An Introduction to Clustered and Non-Clustered Index Data Structures

I've found a good description and samples demonstrating clustered and non-clustered indices in SQL Server.
Generally, clustered index combines index and data into a single record while non-clustered index creates index separately, which links to the data page.
Practically, clustered indices are preferred if many rows are to be retrieved and if a range of data is to be retrieved (i.e. using BETWEEN).

As usual, one of the best theoretical sources is Wikipedia. See the page on index here.

Monday, September 22, 2008

Code Access Security (CAS)

CodeProject: Code Access Security (CAS) and Design Patterns. Free source code and programming help
Code Access Security (CAS)
Code Access Security is a (relatively) new buzzword. The issue is that .Net framework offers code security, authentication and authorization of the executable code. A good article. This is something I need to look more into.

Saturday, September 20, 2008

O/R Mappers

I can't believe I'm working at a company that does not use ANY type of O/R mapping tool. Everything has to be done manually, through stored procedures. Makes me wanna cry. I feel like being back in the stone age...

.Net XML Best Practices

.NET XML Best Practices - Choosing an XML API

A good overview of XML processing support in .Net.

An Intro to XPath, XQuery, and XSLT

Comparing XSLT and XQuery

XSLT and XQuery are two parallel technologies that use XPath as an underlying language. Their functionality overlaps and they are targeted to different needs of developers.

XML Query - W3C page on XQuery. Good general overview.

Thursday, September 18, 2008

Unit Testing ASP.Net with Visual Studio 2008

Joe Chung: Unit Testing ASP.NET with Visual Studio 2008

Here's something I'm looking into. There are testing frameworks included in .Net platform (unit testing, database testing, web testing). While I've used unit testing, the other two should be pretty interesting to investigate into.
I'll be looking into ASP.Net unit testing first.
From a short glance at the page the link above points to, I see that the testing framework is pretty simple and, seemingly, effective. I enjoy writing unit tests but also tests that represent real user behavior. This framework looks interesting.
I guess the database testing framework has its aces in the sleeve as well. Some database scripting capabilities would be useful, for example.
These three together should offer some amazing opportunities to test complete products, their data, and web presentation.

Monday, September 15, 2008

COM+

Here is a link to a brief overview of COM+. I have worked with Microsoft technologies, hence COM and COM+, but I never formally knew what the definition of COM+ was. There was Microsoft Transaction Server, DCOM, COM, ActiveX, .Net (as COM 2.0), the products exchanged names, were created, closed, resurrected, and so on. It's been confusing, to say the least.
Apart from the article on Wikipedia, I've found a nice and brief description of COM+ so I decided to post a link here. Also, here is Microsoft's COM page.

Probably the best short description would be the following:

"COM+ brought together the technology of COM components and the
application host of Microsoft Transaction Server (MTS). COM+
automatically handles difficult programming tasks such as resource
pooling, disconnected applications, event publication and subscription
and distributed transactions." (from Microsoft COM Page)


Friday, September 12, 2008

Codecs

Codecs can create a nightmare if you want to watch movies. Before going on a holiday, I installed a codec pack so that I could watch any video without trouble. While this was the case, it also created different problems with Windows sound system and programs would crash at random. Uninstalling the codec pack helped and all the programs produce sound without problems and are not crashing anymore.
But, coming across a new video file encoded, Media Player does not play video but only sound. GSpot says codecs are there but still cannot render video. Partial render failure results.
Hence, here is the link to a site that contains links to different codecs and codec packs. In case someone needs something similar...

Free-Codecs.com :: Download latest audio codecs, video codecs, codec packs and tools, FREE!

Now I'm going to look for a free XVID codec and see if the video will render.

update:
I installed the free XVid codec from xvid.org and everything was OK.

Thursday, September 11, 2008

Ado.Net Data Services, Entity Framework, etc.

Using Microsoft ADO.NET Data Services
Playing around with the Entity Framework... Trying to expose the data model through a web service. Turns out that scenario is supported out-of-the-box. Using Ado.Net Data Services, the whole model is exposed as a web service in about a few minutes.
.AttachTo is the method should one wish to implement a custom interface. This is what we were trying to do until we found what we were missing the previous years.
This is quite amazing stuff and requires a bit of thinking of the best way to utilize the technology. At the moment I don't see too much use for it right now, unless one is building Ajax/JavaScript clients. I mean, all those features are available through proper set up of the database server, creation of tables, views, etc. Building a data model is one more step towards abstraction and the creation of business layer.
Spending some more time on research will be fun, I reckon.

Wednesday, September 10, 2008

SyncToy 2.0

There is the final version of SyncToy 2.0 available for download. It includes the Sync Framework installations. At the first glance it runs smoothly and behaves much better compared to the Beta version. Hm... I will run it in parallel to Unison in the following period and see if it returns as my sync tool of choice.

Tuesday, September 09, 2008

SQL Statements or Stored Procedures

The eternal question. Here are a couple of recommended articles, though...

http://articles.techrepublic.com.com/5100-10878_11-5766837.html
http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1214541,00.html

and a useful discussion
http://forums.asp.net/p/1309149/2573570.aspx
stating that in the case I'm interested in, having parametrized queries produced by a generator (like Entity Framework), SQL statements work as well as stored procedures.

Sunday, September 07, 2008

SyncToy Replaced with Unison (again)

After coming back from holidays I found something has happened to the sync in my Mesh account. My files and folders were being deleted in the synchronization. There was also an updated version downloaded but the mess continued. That lasted for a few days. I had my backup copy on a spare drive so I was trying to get through the sync mess and get to a point where all the locations were in sync with the correct files from the backup.
Then the update came out, stating there was a bug in the previous version. Installed that and started handling conflicts. Some folders kept being deleted after I copy files back from backup. I found that it is easier to go to an online desktop and then rename one of the folders with the same name (which is what happens if there is a conflict) and then delete one of them on a PC, since they can not be deleted on the online desktop.

Along with all that mess I, then, wanted to get my PC and the external drive back in sync for backups. That was even messier. Both platforms use Microsoft Sync Framework so the mess continued. The initial settings were Echo but the problem is that, it appears, all the changes get propagated. Meaning, if I replaced some files with a backup copy I'd get a delete action for the backup copy. :S That would delete my only valid copy of the files. So I tried to set the action to Sync but then there was even more weird choices and half the files would get overwritten for no reason. I wonder why is there no binary comparison done and then only the date can get updated rather than to copy all the files over. I liked none of the options.
Also, some of the files were copied to the target directory with .1 being added to the name, adding to the confusion.

I, then used Total Commander, to sync the folders where dates did not matter as the files were not updated for some time now. This was quick and easy. But the sync solution was not working anymore. Fixing things with other software just made SyncToy useless now.

So I went back to using Unison. It was so comforting to go back to a tested and proven solution that I can't describe my joy. Simple config files providing total control over what gets or does not get copied. Control over what happens to each individual change. These are all life savers.
Maybe, when I get the files back in sync, I can continue with SyncToy's Echo option as I'd like to copy changes from my PC to the backup drive and not do an actual synchronization. That's one option missing in Unison. Actually, this can be achieved with forcing changes from the left to the right. And I would not even have to preview the changes. This could all be set up in a batch file. Hmmm. That seems even better than SyncToy. Well, the case is up for the Unison (again) and SyncToy is out once again. Maybe some next version will be more usable than the current 2.0 is.
Unison, wellcome back. Unison is not being actively developed but it works and there is no need to develop it further as it already contains a nice feature set expected from a sync program. Hope I can get my files back in order now.

Thursday, September 04, 2008

EDMS

EDMS - Electronic Document Management System
Looking for some information on EDMS with SharePoint. Some related links to be contained here.

There are enough resources available on SharePoint online while now I'd like to see some solutions for EDMS.
Interwoven is a publisher of an EDMS product called WorkSite.

Wireless Future

Evolution to turbocharge wireless broadband

Just as I was reading the news on new wireless standards, my colleagues turned my attention to a recent news on wireless power transfer.

IDF's Coolest Demos: Robotics, Wireless Power, and More - Forward Thinking by Michael J. Miller

While I was on holidays I did not read or watch any news. That was the most refreshing aspect of holiday, right? Well, that's why I missed on this Intel's announcement. It appears this is a continuation of the work announced last year by MIT scientist with a Balkans origin. This time the power, transferred by using magnetic resonance, was used to power a 60-Watt light bulb. This looks more useful than what last year demonstration showed.

To anyone who is so excited by these news of wireless power transfer I'd recommend to research on Tesla's work and findings as people have been talking for a long time that Tesla has managed to transfer the power without wires long time ago but there are no known written traces to show that was done. There goes the whole conspiracy theory after that but I'd be inclined to believe he did it since it appears he was a natural-born genius in the field of electro-magnetic waves.

As for wireless networks and data transfer, I'm quite amazed to hear a forecast that the wireless technologies will advance faster than fiber technologies. This goes against the current Australian government's tender to create a fiber-optics network across Australia. Obviously, it would be better, in light of current announcements, to invest in wireless technologies to achieve Internet coverage in Australia.

Thursday, July 31, 2008

URL Rewriter for ASP.Net

Open Source URL Rewriter for .NET / IIS / ASP.NET » Home

Here is an open-source ASP.Net component for URL rewriting. The component provides features similar to Apache with mod_rewrite and .htaccess. No need for ISAPI Rewrite filter in IIS.

"Hidden" Code Gen Tool in VS2008

Did you know there was a "hidden" code-generation feature in VS2008? Text Templating Transformation Toolkit (aka T4) actually debuted in VS2005 Guidance Automation Toolkit, but shipped baked into VS2008. This gives you CodeSmith-style code-generation templates that can be used in your projects to generate code from any source. Simply add a text file with the extension ".tt", and VS will add a "Transform Templates" button to the solution explorer window.

http://msdn2.microsoft.com/en-us/vs2008/cc308634.aspx
http://msdn.microsoft.com/en-us/library/bb126445(VS.80).aspx

Monday, July 28, 2008

Remote Debugging

Remote debugging with Visual Studio 2008 - Program - .Net - Builder AU

Having problems with a WCF service deployed under IIS 6.0. After an application is tested on a development workstation it is deployed to the Test environment. If there are differences between the two environments then errors might occur that were not encountered during development runs. Therefore, a debugging session might be needed to check what happens with the service once it is deployed into a new environment.

To set up remote debugging with Visual Studio 2008
  • Install Remote Debugging tools from VS 2008 installation media to the server hosting the service;
  • Configure Remote Debugging tools on the server;
  • Connect to the remote application from the client Visual Studio 2008;

Anonymous Surfing

Tor: anonymity online

Installing latest FoxyProxy plugin for Firefox there was a question whether to configure the proxy for use with Tor network. I had completely forgotten about this network. And, only recently, I was looking for lists of anonymous proxies available on the internet. I keep the links on this page - here.
There are proxies which you access through a browser, then type in the address on their page and surf through a frame. Very practical, does not require any configuration on client side. See here.
Another type of proxies are the standard ones. You can configure your browser to use one of them and/or use a plugin, like FoxyProxy for Firefox, to cycle through them. See the lists here.
The third option is Tor network. It is a sort of P2P proxy network, if that makes sense. It is a P2P network where your traffic flows through other people's computers and contacts the desired URL from the nearest (I guess) network node. See the concept here.

Let me know if you are aware of other similar projects and options.

Sunday, July 27, 2008

Think Python: An Introduction to Software Design

Think Python: An Introduction to Software Design

Here is a free e-book with an interesting title. Intended for a semester course on programming with Python, it is ideal for what I need right now - to learn the broader picture of Python software development. If you are looking for the same thing, download the book from the link above.

Saturday, July 26, 2008

CSS

Texts about web design. There are lots of samples on how to work with lists and CSS. Something I'm trying to do right now - rearrange old table layout into CSS. But, some things don't work the way I expect, or want, them.

A list apart

Python Blog

life is short - you need Python!

Here is an interesting blog related to Python programming. I found about it through Entrecard community. The owner actually advertised on my blog through Entrecard. :)
Nevertheless, I'm keeping the link to the Python blog because I'd like to explore it more when I have the time so that I could dive more into the world of Python and play with Google App Engine. I am still fascinated by it but don't really have the time to play more and spark some ideas about what interesting feature I could implement using it. Ah, plus I'm in the holiday mode. Hardly waiting to go for a vacation next week. Haven't had real rest in about six months now. More about these things in my Australia blog.