Sunday, April 17, 2005

Restraining your stress at work





If your job requires long hours in front of computer, whether you're a hi-tech veteran covered by scars of past industry bubble or a callow novice making your first overwork hours - you've either faced the consequences already or are aware of them (being honest to yourself).
Glasses, stress, wrist pains - those are just harmless door bells ringing in front of invited guests - heart attacks, rheumatism, social and family problems.
While I can't order you a recipe to working day of eight hours (being working for something like eleven last months) - here are two RSI-antidote tips.

  • The first one is my favorite stress-reliever for the few last years - Aire Freshner. It's small tray-icon application that can play sounds giving you an atmosphere of various nature environments.


  • The second one is Workrave - it's must-have organizer/reminder for your stress-recovery activity during the workday.

Both are free (Aire is donationware) and useful like a water in Sahara Dezert…


Wednesday, April 13, 2005

Random link - online workshop/tutorial on ASP.NET






Good online book covering work with ASP.NET:

ASPXtreme ASP.NET Web WorkShop



[Listening to: The Memory Of Trees (Instrumental - Enya - The Memory Of Trees (4:20)]



Monday, April 04, 2005


Regular expression to find potential SEDOL's





(?<Sedol>[B-Db-dF-Hf-hJ-Nj-nP-Tp-tV-Xv-xYyZz\d]{6}\d)



This regular expression accepts SEDOL (Stock Exchange Daily Official List number, a code used by the London Stock Exchange to identify foreign stocks).
To be more exact - it accepts potential SEDOL's, since the last, 7th digit of a sedol is a kind of check-sum digit and this reg-ex doesn't check's its correctness. Also, despite following to the formal SEDOL definition - its first character should be a consonant character - there are actual sedol's with the first character, which is a number (e.g. 0067340 for BAA) and they are accepted by this reg-ex.

[Listening to: Bongo Bong - Manu Chao - Clandestino (2:38)]

Sunday, April 03, 2005

Useful resource for international meetings planning

If you need to setup a meeting for participants in multiple timezones - there is a useful resource at
http://www.timeanddate.com/worldclock/meeting.html . It not only shows time differences between locations and converts local times to UTC but also visually represents daytime time-table, so that you can easily pick-up the most appropriate hour...

Tuesday, March 22, 2005

How to read a file that's in use by another process.


Recently I was needed to read context of some log file that's in use by another process when I trying to read from it.

It seems that there is no way to do it with System.IO.StreamReader. The stuff like:

using( System.IO.StreamReader logReader = new System.IO.StreamReader(logPath) )
{
System.String errorFileContext = updateErrorFileReader.ReadToEnd();
}


will cause System.IO.IOException with Message saying "The process cannot access the file ... because it is being used by another process."
My obvious guess was that System.IO.StreamReader doesn't have a constructor specifying the file sharing mode, so I switched to System.IO.FileStream:


using( System.IO.FileStream logReader = new System.IO.FileStream(
logFilePath, System.IO.FileMode.Open,
System.IO.FileAccess.Read, System.IO.FileShare.Read ) )
{
// In my case it always the case, o/w you can read file line-by-line
const int maxFileSize = 10*1024;
byte[] fileBytes = new byte[maxFileSize];

int amountOfBytes = updateErrorFileReader.Read(fileBytes, 0, maxFileSize);

System.Text.UTF7Encoding utf7 = new System.Text.UTF7Encoding();

System.String errorFileContext = utf7.GetString(fileBytes, 0, amountOfBytes);
}



MSDN documentation states that setting last parameter of System.IO.FileStream constructor to System.IO.FileShare.Read:



"Allows subsequent opening of the file for reading.
If this flag is not specified, any request to open the file
for reading (by this process or another process) will fail
until the file is closed. However, if this flag is specified
additional permissions might still be needed to access the file."




Well, that's was exactly what I was going to do and ... imagine my surprise when I got the same thing again:
System.IO.IOException with "The process cannot access the file ... because it is being used by another process.".

Solution came after playing a bit around. What you need to do - is to put last parameter to
System.IO.FileShare.ReadWrite

It was quite surprising and took me some time to found it, since MSDN says that it "Allows subsequent opening of the file for reading or writing." while I was need reading only. Any way it just works...

Wednesday, March 09, 2005

Notepad++ : cool replacement for windows Notepad

Some time ago I started to use Notepad++ - freeware multi-document WYSIWYG editor with a lot of cool features (reg-ex find & replace, syntax highlighting for recognized languages, etc).
The good thing is that it has built-in files associations manager (Setting->Files Associations Manager), so you don't need to deal with replacement of standard Windows Notepad and associated problems as with Notepad2.

Sunday, March 06, 2005

Agile Project Management tools

Few days ago I was looking for some Agile PM tool to try.
After considering few options I've stopped on
XP StoryStudio . It seems that few other popular choices are TargetProcess and VersionOne .

While installation came smooth and usage is easy - here are few things that could be useful:

  • I succeeded to run it only with SQL running in Mixed Mode rather than Windows Authentication Mode (I'm using Desktop SQL engine).
    To install your SQL in Mixed Mode - use the following command line: setup SAPWD="MyPassword" SECURITYMODE=SQL .
  • If you want to check or change current SQL mode - here is how:
    "How to Determine or Change Your Authentication Mode -
    http://support.microsoft.com/?kbid=322336 "
  • If something gone wrong during the installation (one of post-installation tests failed) or you just want to reinstall it - you'll need manually eliminate XPStoryStudio link from the Default Web Page in IIS and delete C:\Program Files\Microsoft SQL Server\MSSQL\Data\StoryStudio.* files.

Does anyone have any suggestions/using experience regarding a PM tool you use?