Galin Iliev's blog

Software Architecture & Development

Microsoft shares your pain!!!

When user see message that says somethings was broken the user feels real pain....
It is good to know that MS developers shares this pain. For your goodness you should be good if you work in such invironment ;):)

What this funny video :)

 

MS TechEd Iron Architect Contest

A few months ago Microsoft annonced first contest for Architects - TechEd Iron Architect. As I am member of local IASA chapter and participate in developing and review IASA Foundation Reference Model I am interesited in this event. Actually I am most developer and solution architect.

Profesion IT architect is to be developed at world level. More about this later when we prepare course about this for IASA.

Back on  TechEd Iron Architect. I pasted the problem here as there was message at http://blogs.msdn.com/ironarchitect/ that winners would be listed from June 20, 2006 to July 20, 2006.

"The final winner will be voted on by the distinguished panel of judges and awarded a free Architect certification(valued at $10,000). (Winners must go through application process for the certification program and be accepted in order to receive the paid certification)."

So the task was:


Problem Statement:

Have you ever been to a conference where you find it takes so long to walk between rooms for sessions – even though they are on the same subject?  Have you then rushed to the room only to find that it was over capacity?  Do you wish for a more dynamic way of allocating rooms for sessions based on popularity and location?

Now you have an opportunity to change it!  The Iron Architect competition this year is about creating a new experience for TechEd session management.  Here’s how it works…

 

The Requirements:

You have been asked to create an architecture that dynamically allocates sessions for presentations at TechEd 2007.  Aware of the people’s presence throughout the conference, the new system must dynamically allocate the rooms for a session 30 minutes before it’s due to start  based on:

·         Location and number of attendees in the area

·         Attendees that have registered their schedule

·         Location of speaker

·         Availability of suitable room for session

For example, if 55 of the 70 attendees that pre-registered for DEV101 are on the 2nd floor on the convention center, and the speaker is somewhere close by, the most appropriate course of action would be to allocate a room on the 2nd floor.  You have to work out how to perform this allocation, and how to notify both the attendees and the speaker of the room allocation.

 

Assumptions:

·         The system must be technically feasible using today’s technology. 

·         Next year’s conference is also at the Boston Conference Center

·         There are a 100 sessions across 5 days.  Total 500 sessions. 

·         The timetable follows a similar format to this years.


Proposed Solution can be found here. (They are donwloaded from http://blogs.msdn.com/ironarchitect/  and the only reason for this is to preserve them in case http://blogs.msdn.com/ironarchitect/ decide to remove them)

And of course.... THE WINNER - The Iron Architect prize goes to Steve Land, Pricipal Architect, Codesic Consulting. (download his solution)

 

Guy Kawasaki's The Art of the Start

Do you guys know Guy Kawasaki? I've just came across with his presentation about his book The Art of the Start. I do not know about the book but I watched presentation and I am very impressed. This guy is very good at his field.

I give presentations in university in front of about 200 studens and I am interested in improving my presentation skills. His video was full of jokes, self criticism but first of all very usefull information. Although this isn't technical presentation  I recommend it because there is very valuable information and a ton of practical information


Of course there are some things I personally disagree but there are some interesting thoughs and advises.
I think I am going to read his book. You can watch the presentation if you are short of time.

MS Access upsizing

Have you heard this term: "MS Access upsizing"? This means transfer all tables (with data) from MS Access to central database server as front-end forms keeps working. this action is applied when application from old days become too big, but it is too expensive to rewrite and as solution database back-end is changed but UI is kept.

I heard about this two weeks ago when I got a Access solution to upsize. so far so good :)  I learned it is typical to have two Access files - one for database and one with UI. UI file use linked tables to database file to access data. This sounds good as it separates layers.

All I had to do is transfer data from database file to SQL Server (the company has brand new server with SQL 2005 installed). Sound easy, doesn't it? From my experience I could tell you Nothing is easy! Especially when you want to make it bug free! To convince you in that I was told that author of this Access solution could not upsize it's own solution for a year. Scary huh!

My first step was to use MS Access Upsizing wizard to transfer data. Beleive or not but it transferred only half tables (I had 116 tables and about 55 was transfered). Why? I simply do not know... I suppose because very few tables have PK.

Second step: After fighting a bit with Upsizing wizard I decided to use newer products. I jumped directly to SQL Server 2005 tools (SQL Server Management Studio), I created new database and used SQL Server Import and Export Data Wizard. Guess what! I wasn't able to transfer all tables at once. Luckily it was Ok when I did it in two steps. Looks like I made half of the task :)

Today I found new newsgroups microsoft.public.access.sqlupsizing that contained link to Migrate to SQL Server page. Microsoft decided that MS Access Upsizing wizard is not good enough and started working on SQL Server Migration Assistants (there are assistants for Oracle ;), Access, and SyBase). they are still on CTP2 but it worked much better than SQL Server Import and Export Data Wizard. I was able to do same much easier and wihtout a single error (with a bunch of warrnings because missing default values). It will be much easier to explain whole procedure to our office

Milestone 1 Reached.

The second one is easy. Especially if you have experice with developing for MS Office. I executed the script below to relink linked tables to SQL server location (in UI access file)

Const TABLE_CONNECT As String = "ODBC;DRIVER=SQL Server;SERVER=.\SQLEXPRESS;APP=Microsoft Office 2003;WSID=GILIEVNEW;DATABASE=AlliantDataSQL;UID=hehe;PWD=XXXXX;"

Sub ModifyLinkedTables()
Dim tdf As TableDef, db As Database, tbfSource As TableDef
Set db = CurrentDb
db.TableDefs.Refresh

On Error Resume Next

For Each tdf In db.TableDefs
'*** check if this is not system table
If InStr(1, tdf.name, "MSys", vbTextCompare) = 0 Then

'*** check if table exists in AlliantData.mdb
tdf.Connect = TABLE_CONNECT
tdf.RefreshLink

'*** print error if any
If Err.Number <> 0 Then
Debug.Print "Error Arrised at table: " & tdf.name & " . Error is: "; Err.Description
Err.Clear
End If

Set tbfSource = Nothing
End If
Next

db.TableDefs.Refresh
Debug.Print "Done!"
End Sub

I this is it. I will write again when I talk with clients and we change their files  :):). Whish me good luck

I tried some more solutions I come across article How to create a DSN-less connection to SQL Server for linked tables in Access 2003 and in Access 2002. It helps when you want to create linked tables in MS Access by script.

MCPD Achieved!!!

Wow! I just got back from testing center and I am excited about my results. I passed the exam

070-553: UPGRADE: MCSD Microsoft® .NET Skills to MCPD Enterprise Application Developer by Using the Microsoft .NET Framework: Part 1

This exam along with my MCSD.NET credentials and Exam 70-548 PRO: Designing and Developing Windows-Based Applications by Using the Microsoft .NET Framework made me Microsoft Certified Professional Developer (MCPD): Windows Developer

I described this because with MS new certification generation it is difficult to track all possible ways to achieve certain credentials

Ayrton Senna quote

I just read a quote from one the best F1 pilots of all times - Ayrton Senna

"Racing, competing, is in my blood, is part of me, is part of my life" 
                                                                           Ayrton Senna da Silva