Wednesday, September 14, 2005

Database Change Management

Originally posted on:

After a long time I'm back writing, mostly because I have something to write about - mostly time has passed by uneventfully...

At work, something has changed, actually two things. one is that we have moved to a new office building in a different area, this one is brand new, and has everything that was missing from the old one, especially the fact that I now share an office with a friend - opposed to sitting in an open-space environment, which in my opinion is unsuitable for developing anything but noise.

Another important change is that my boss for the last two years decided to manage no more, or at least until he thinks otherwise - and moved to a developer (senior) role in our team, and team leadership was taken by someone new. The team is now much larger (two different but close teams were merged into one). This is (I hope) the begining of some other changes as well, to do with the work environment and other issues.

As part of this starting change trend, we are looking at changing the teams work environment - programming development enviornment, and part of this mission is to see how to better handle the database change management. We have a pretty sophisticated product for managing the code-base (CM Synergy), but we have yet to understand how to control database developement using it. We are looking into ways to improve control and ease of distribution of the database scripts and changes.

Currently I'm researching DB-Ghost ( which seems ok for some of our needs - build script management and cm intgeration (using the automation kit), but I have yet to see how it will help us for the Dev environment (the upper uses are good for install creation and such), and patching control. unless we buy a license for each user (~$400) and still have some problems, I'm trying to think of more solutions, but two other vendors in this area, Quest ( and Red Gate ( can't seem to explain exactly what sort of change management tools they offer - I'm not much for slogans, I need to see the actuall feature to understand (or at least a video demonstration such as innovartis provides) to understand if it is good for me.

I would love to hear opinions and suggestions about how such things are implemented in other multi-developer environments... I know I can learn more... Oh I forgot to mention, this of course needs to support MS SQL server 2000 - thanks!

Tuesday, July 26, 2005

Interesting Bug/Feature of VB6


I haven't blogged for the longest time, me and my wife have been settling in into married life and our rented apartment. Much has been going on in my life in the last couple of months. for example I have married my beatifull wife, I have also gotten in to a new hobby - woodturning, which I really love (ranting - again it is proven that leaving in the USA is much more cost effective for me - imagine the cost of importing a wood working Lathe and tools - it is huge!).

Anyway, back to the main topic, VB6 and it's quirks. I have been programming with VB6 for the last 4 years at least, and this is the first time that I encountered this feature/bug (you decide, in my case it was a bug). I had a case where I test two boolean varaiables against each other (x=y) and both where True, but the comparison returned false!!! the result of the statement is that True<>True - you can agree that this is wierd....

After a lot of debugging work and a lot of help from friends here, we found the reason. when printing the Cint() value of the Booleans, one of them equalled 1 and the other equalled -1 (-1 is the VB value for True, however VB  considers anything not 0 to be true). Since VB apparently checks the Int value of the Boolean variables.

Why did this happen, well, it turns out that if you send a boolean to a function byref, and the function interface is declared as Variant. When assigning “1” to the boolean inside the function and exiting. the boolean value is set to True (as should be) but it's int is set to 1 instead of -1. Here is a code example

Function First()
     Dim a As Boolean
     Dim b As Boolean
     Dim c As Boolean
a = True
b = True
c = True

MsgBox (a=b) ' will print True
MsgBox (a=c) 'will print True

Call Second(c)

MsgBox (a=b) ' will print True
MsgBox (a=c) 'will print False
MsgBox(a) ' Will print True
MsgBox(c) ' Will print True

End Function

Function Second(ByRef par As Variant)
      par = “1“
End Function

Tuesday, June 28, 2005

Back to my old profession

 In the last few days I've been working at my old profession - HTML monkey, and let me tell you I realise why I stopped (even though I never really stopped).

My wife performes with this music group, they play Rebetiko (greek blues, I guess) and she sings. Like all music groups they are trying hard to gain recognition - and as part of that they decided they want a Website. So we're starting small as the budget is low, and for started I started by designing a simple web site (I'll do the administrative side later, as it is much less important).

Let me tell you HTML is boring, and desiging it is hard, especially designing “good” HTML - since the “client” is never happy - especially when you do it for free (where he should be happier). The worst part of it is that the site is in hebrew - which makes it even harder to design, none of my favorite editors really support hebrew very well - and working in right to left mode is also hard for me... The main problem is, I'm no designer - I'm just a simple old HTML monkey - I know the technique and how to achieve almost any design thrown at me - but here it's my job :-(

I'm not publishing the URL of the site for two reasons:
1. It is not yet on air (I just purchased hosting services today - and the DNS is not updated)
2. There is nothing I feel proud about - it just doesn't look to good in my opinion...

It was fun registering the domain, and discovering that my Registrar Handle (for Israrl still exists from 1995, using it instead of re-entering all the info - and even finding out that it works!!! Sitting until late at night with my wife deciding on color schemes - turning it into a CSS style sheet, and making a site layout... Cropping and working with images, without any coding at all (for now) - that is yet to come.

Monday, June 20, 2005

Excellent Resource - HTTP Inspection Tools of Note

 Thanks to Port80 for providing these links, may I add a small contribution TamperIE from Bayden Systems a small utility that doesn't actually look at HTTP but at your GET/POST data and allows you to see and modify this info.

Wednesday, June 15, 2005

Microsoft's XML Team is asking you:

I saw this in Signs in the sand blog I read from time to time, MS XSL team is doing a survey on their blog, first I want to thank Oleg for the pointer, second I want to say that this is a great idea in my opinion to ask the developer community on what features they need/want.

My own experience with XSLT is quite limited, I have worked with it a few years back, and did some things with it, but I feel a bit un-qualified to answer the questions - especially the size questions, since I haven't dealt with large size XML/XSL combinations. However, and this is something that I think was agreed in all the posted comments, when programming with XSL (and it is programming) there is often a need for more functions, string functions, math functions etc... but again, I'm not that knowledgable about the subject so I will let smarter people answer.

The great thing about this idea is that it is well trageted, as a software engineer working on our product I have three clients usually:
1. The end users - regualr people who get to use the applications
2. Integrators - 3rd party companies who want to use our product as a platform (API)
3. Internal - other products within the major product scope who need to work with the internal components.

The easiest of the three is the internal customers, I can always know exactly what they need and why, and usualy can offer solutions for them that fit exactly, since they are consulted and working with me.

The hardest are of course the end-users because there are so many of them and it is very hard to get a solid response. Need I say more?

The integrators are a mixed bunch, but also a solid one - they are technical people using your product, and using it for their own needs, if you do your job well they will have no complaints. it is easier with black-box components like the XSL component when there is a well defined spec that everyone understand - but still sometimes input on features is required - and the perfect thing to do is ask, and ask the ones using it - just like in this case. Up to this day, I've enjoyed working with the XML team's product, Keep up the transparency and interest in the developer community, and thank you!

Searching and Finding a new home

Originally posted on: 

Since our wedding (and before) my wife and I have been searching for a place to call home - for at least a year, maybe more. This made me think a lot about what kind of place I would like to live in, and I reached some conclusions - if I could I would like to live in the country - away from city life, not that I dislike the city, but that is what I prefer. I grew up in a small village and as a young boy, going to the city was a major hassle - in Israel nothing is far away, but the fact that there was close to no public transportation made it very hard to get there. So the city was always and still is facsinating for me. But I do prefer not to live there.

The trouble with moving out to the country-side is work, as sad as it may be, I still have to work, and my current line of work as a software engineer forces me to be close to the city, why? since the company I work in (and I believe most companies here) do not think so highly about Tele-Commuting. It is sad that the company I work for is that way - since our product is about Tele-Commuting (Remote-Collabortaion, Communication etc...) (check out - disclaimer: I work for this company). Now that would be logical if the product wasn't that good, but the fact is it is really good (again, I work here, but I really like it and this is my opinion). Truth is I haven't pushed for this - but I think I know the answer I will get. I would love to be able to work most of the week from home and commute to the office 1/2 days a week (or maybe even less). The software we develop makes it possible to work with a team from home, and even join into meetings and be very productive. Even the network infrastructure here in Israel can already support high traffic easily (assuming I manage to reduce my downloading habbits :-)).

So eventually, after a lot of searching in the center of Israel area, we have come to settle on my home village, where we found a nice small house for a reasonable rent. This wasn't expected, we were looking in other directions when the offer came - and we were happy. The house comes with a nice garden, and we have to work on it to make it cozy - the house was built almost 50 years ago - and not in a high standard, so you can imagine - there is work to be done. However, it is not as bad as it sounds, and I expect to have a good time living there with my new wife and renovating a little in the house, gardening outside etc... Maybe even setting a small Wi-Fi network to use in the garden :-)

So we just finished ordering our new refigirator and oven and bedroom (my wife allowed no geekiness traits of mine to surface, and budget is limited :-( so currently I don't even have a place for my computer to stand... but we'll find something...). The trouble with a small apartment is that there is never enough space for everything you want.

I'm looking forward to moving in (in about two weeks when we finish cleaning the place up).

Wednesday, June 8, 2005

Work Environments - and the web developer's problems

Originally posted on:

We all work in an environment, and I don't mean the office environment, but what we call the development environment. Meaning the work methods and project structure in which we develop our software.

I'm not very happy with my current work environment. And I would like to improve it, but I have two issues.

1. I have no idea how to make this one better
2. I don't work by myself, there are other people who use this environment and have to convert to it, and also some major release/build actions are dependant on this environment - and we can't just go ahead and change it. It would break other things.

Developers who develop stand-alone applications, have in my opinion, less trouble. basically they have one application to deal with and maybe integration with the OS. They might have to integrate with some server (this is not a standalone utility anymore - but still, the developer does not deal with the server on a DEV level but as a user).

We in the Web development area have a little more trouble. First this is a do it all team - we do not specialize in any specific area, we are expected to be many things at once - which can be a lot of fun, but can cause problems - since we are not experts in any of the areas. The problem is there is no single platform - we develop in paralel for IIS (Web Site) SQL Server (DataStore), Windows (Services, Filesystem and Utilities), Install (for all these componenets) - and all these interact with each other in a way that it is almost impossible to develop and test without the entire system set up. This is not even mentioning (but I am now), other systems in to which we integrate - our internal servers and clients which is a little easier since we have someone to ask and complain to... :-)

This poses several setup questions

1. Do we work on a shared/private environment (is all development done a single server or on the developer computer) - when more than one developer is concerned this question becomes more critical. (we work in private mode)
2. Web applications usualy support multiple/remote servers (Web server and SQL on same or seperate machines, multiple SQL (cluster), multiple web servers etc...) how do you build the corret environment for developing and testing. (unless specificaly tested we work in single machine mode - or seperate web from SQL)
3. Multiple Browser development - this is becoming less of a problem, but is still a serious one. (we mostly check for IE)
4. How do you synchronize your private (assuming each is working on his own) environment with the code base - since code is not just DLLs and files, but also database state and scripts which need to be applied to each DB in use. (we have a custom tool written for this - which is not as good as we want).
5. Moving between versions - when we fix bugs in older versions, how do you revert from and to a different version of the product (not to forget this requires a different database state beside the files).
6. Debugging - this is a real nightmare. These different work envs (DB, IIS, etc...) are not integrated, no single editor supports the full chain of events (this supposedly becomes better with the new VS - but I doubt that all problems are solved). We currently have to debug each component by it's own, with a lot of printing to file and generaly a lot of heart-ache.
7. Patches to production systems - there are a lot of scripts/files to apply on patches, currently we use a home built tool to apply patches (not to forget: patches need to support all environments) to existing installations. This is another overhead we have when developing a patch. The same problems apply to installations and major upgrades.

These are just some of the problems, and I'm contantly looking for solutions to them. maybe some day. One thing I realize by now, is that a lot depends on the original designer of the system. The build system, the directory structure - for example: in our system, due to some design decision, in order to have a full development environment we have to install the application (server application) on the machine, it is not enough to just download the lates code and start - since some actions and configurations are only done by the install program. This is a major problem when attempting to start a new developer or an old developer on a new computer - it can take hours or up to a couple of days. 

Tell me about your environments or if you have tool, process, or  ideas and suggestions I'll be more than glad to hear.

Sunday, June 5, 2005

My Wedding pictures

Originally posted on:

It has finally happened, I'm happily married to the loveliest girl on earth (I am biased - but that's how I feel)

I uploaded some of the wedding pictures to flickr, note that these are not from the official photographer that I had, but from my friends digital camera, also these photos went through no editing - I might do that later...

Leave your comments anywhere you like...

Monday, May 23, 2005

My Own Google Desktop Plugin

Originally posted on:

No it isn't available yet, read below to see why...I decided to write a small pet-project in C# just to not forget my meager skills on the .NET platform.

I decided to write a small application that will query the GDS index and allow me to work with the results. Why do I think such an application is needed, well, I like the web interface of the regular result set, but I think the options given to the user are limited, the main issue I have is the fact that I can't open a file with my application of choice.

When I locate a file - what I can do is:
a. Open the file using the default handler defined for the browser (often not what I want)
b. Open the folder containing that file, and doing what I want by right clicking in explorer on that file.

I decided to write an application that will allow me to do exactly that with one click. So since I'm not that much of a programmer I managed to do the following:
a. Invoke the GDS search through the internal URL
b. Send it a search query (currently filtered by search type - email,files,web,all)
c. Get the results in XML from the local server
d. make the XML legal - GDS returns XML with illegal characters for the Encoding. so this required doing some voodoo magic with the stream (save to file, delete bad chars, reload)
e. Load the results in a DataGrid (even an overridden one - subclassed?)
f. Manage to create some sort of custom right-click response...

The problem lies in f, I want to have the windows explorer right-click (context menu) for the items. I have two problem:
1. I have no idea, how to invoke the Explorer context menu (probably some Win32 API / .NET class I am not aware of)
2. How to load it for a specific cell in the data grid (I have part of the solution for this - by overriding the class I have better control of events - still this evades me - it seems that I need to subclass not only the datagrid, but the datarow, and datacell as well).

Once this is finished, I can polish it up, maybe even submit it to the Google Plugin page - although it still has a long way to go untill it gets there.

If anyone has any ideas of what other features this could have/need I would be glad to hear suggestions - the main idea is to improve the already superb google experience (Hard goal to reach - but one can always try).

BTW has anyone noticed that for certain searches Copernic performes much better than GDS - When I'm looking for a long lost email I always launch Copernic first to look for it. Does anyone know of a Copernic API?


Tuesday, May 17, 2005

I'm getting married!

 Originally posted on:

Hi to all, I haven't written in a long time since a few weeks ago my future wife and I decided to get married, and since I'm a fast moving person (at least in some aspects of my life), we decided to do it as soon as possible, meaning that the wedding will be in about 10 days - which of course meant at the time that we have to get everything ready in less than a month. Doing that required a lot of my time - so now you know...

Since this is a personal post I haven't pushed it to the main feed, we were requested not too, and I believe that is a good thing since, although the blog can have personal posts (otherwise, where is the interest?) - the site is still more about geekiness so why mix?

However, this wedding project has many geeky features... Note taking for most things was done through  (a great site for this stuff), sketches for seating were done on a tablet PC we just bought my brother (cute little machine which was perfect for this - - one note is a very nice app). Since the wedding will be in my parents backyard - there was (and still is :-() a lot of work to do. Cleaning the weeds, sawing off trees and branches to make place for brunch tables (wedding is actually a big brunch), electricity lines have to be spread for 120 meters (from the house to the location). I'm also thinking about providing free Wi-Fi :-) but since most of the guests are not geeks - nobody will notice.

We're currently looking for an apartment to live in, and finalizing issues for the wedding (it is hot in Israel - so we have to find some sun protection and a cooling solution for the dance floor, we have to make sure no bugs and flies land in any ones food)... Once the wedding is over we will post some pictures for everyone.

I have recently started to be interested in a new hobby, wood-turning, I haven't actually done anything yet, but I have started research, and plan on going to a beginner workshop in the next month or so. My hands are already feeling busy... I have worked with wood since I was very young, My grandfather still uses a letter-opener knife I carved for him when I was 11 or so, and I feel now is the time to give this interest the “hobby“ title and invest more time in it. If I find I am good at it and like it, I might even consider changing my profession. You can't imagine the number of useful gadgets I can buy for wood-turning...

The future looks promising for me. (this reminds me, I went with my very near future wife to see “The hitchhikers guide to the galaxy“ - I really liked the books and so had to see it. and will maybe write about it later - but this sentence kinds of says it all “Life, don't talk to me about life“ done perfectly - and worth the ticket for me...)

Monday, April 11, 2005

There are some problems for us with Windows 2003 SP1 after all

Originally posted on:

I'm done checking SP1, if you think it was done too fast, you are right. But luckily I'm not the only one checking it and I have some good backup forces on this one. I knew I wouldn't be satisfied until I found some issues - and I wasn't disappointed.

These issues are sort of interesting, because I couldn't find any reference on these changes, so I am still in doubt on how to solve them.

1. A function we use for setting up IIS Virtual Directories fails to do what it should. It fails when we attempt to set a Parameter called IPSecurity of the virtual directory (affects if this directory is secured to be allowed access only from a specific list of IP's). This is a method/property that worked fine in previous versions of IIS (including IIS 6.0), and fails for SP1. A little searching in the documentation, provided no answer.
2. I Also tested Windows 2003 SP1 as a client platform to our application, and attempting a specific action on our website isn't working. The feature in question is using an IE embedded option called oClientCaps and specifically a function called getComponentVersion is returning an error of not being known. This part too used to work in previous versions.

These two issues appear to be reltively minor (not to us as a company - they are pretty disturbing), but as a whole compared with the huge amount of code written for the service pack. The quality of backwards compatibilty in Microsoft operating systems is quite amazing. Obviously they break it sometimes - but that is to be expected - I know, I do things like that all the time.

Monday, April 4, 2005

Technical Javascript question

Originally posted on:

Due to the success I had in the past asking technical questions in this blog, I will make another attempt, please note that I looked around before asking, but was unable to come up with an answer by myself. This question was asked by one of my colleags here.

In Javascript you can assign a number to a var in the normal way
var x;
var y;
y = 3;
alert(y); //(shows 3)
alert(y); //(shows 10)
//And so on, math seems to work pretty well.

//But something else that works is:
x = [3];
alert(x); //(shows 3)

alert(x); // (shows 10)

//But here is the interesting part:
alert(y+x); // (shows 1010)

I haven't found anything about this in documentation, it seems that though until that point it does treat them as numbers, the fact that x is enclosed in [] turns the result into a string. Can anyone give a complete explanation about this feature?

Sunday, April 3, 2005

Windows 2003 SP1 - Checking it out

 Originally posted on:

I've been assigned the task of checking how SP1 will affect our software.

SP1 is a major update for Windows 2003, which is supposed to enhance security to a much higher level than before (where Windows 2003 is already quite a jump ahead).

So, after some researching on Microsoft, I wrote small document, on where I think the issues will be, and I'm off to installing the service pack and seeing if anything else has gone amiss. This is a process that I already did with the introduction of Windows 2003, up until then we were runing on Win2000 machines, back then a lot of changes were made to the application to support the new defaults, and in fact I believe application security was enhanced because of these changes. forgive me for not providing details. We had some major changes in the code, actually quite small changes but a application wide change that required a lot of time to accomplish. We actually figured out before even installing the Application were the issues will be, and I have to give high praise to Miscorosft for doing such an excellent job of documenting the new features and changes. Of course it didn't go as smoothly as we hoped, it never does - but at least we knew what we needed to do.

This time around I hope there won't be any changes to our code, as far as I can see, some changes will need to be done to documentation of the product installation and maintaining, so that administartors will not have a hard time of doing the job.

Right now I'm downloading the SP from windows update, our connection is not the fastest, so it will take some time to download the 350 MB package. I hope it doesn't destroy my machine :-)

Labs Continued...

Originally posted on:

As I wrote here before I really love the labs concept, and recently I heard a recording on by some of people at each and everyone of the labs I had mentioned. It was extremely interesting, although a little outdated by recent events, it still shows some of the spirit in which these organizations work. I am envious.

Monday, March 21, 2005

Originally posted on:

After a short pause due to technical difficulties (I lost my disk on key) I now return with full strength to listen to audio content from the web. Those famed podcasts.

Actually instead of buying a disk on key, I bought one of those all-in-one MP3 players, so it plays MP3,WMA,ASF,WAV, FM Radio, and can also record (voice or FM radio), and store documents on it. I settled for a 256MB model, which seems quite enough for my needs. This is mostly for in-car listening, but for the past few days I have been sick in bead, and found out that it was also more comfortable than using the computer for it, since all controls are near - with no need to go to the computer every time the phone rrrings.

One of the main places I go for content to is, it has some excellent recordings. and I always look for ones that might inspire me, or teach me new things. out of this batch the one I liked the most was: Brewster Khale - Universal Access to All Knowledge this person is one of the founders of mostly known for the way-back machine (the internet archive) which is what I had known about, but it turns out that in recent years it has grown to include many other bits and scraps of information (if you can call full length movies bits :-)). The motto says it all “Universal Access to human knowledge” that is the goal of the site. Of course they do not claim to hold all of the human knowledge, but they are trying to collect as much as possible and doing a good job.

The talk is pretty inspiring, and it is evident that it was inspiring to the audience as well, who couldn't stop asking questions, I had a few myself - but I came a little to late ;-)

After this (or more accurately during) I went to visit the site, and it is full of data, the problem is, it is very hard to find anything interesting, if you don't already know what you are looking for. It is choke full of info, and also organized pretty good, but there is simply to much to sort through. I felt like I needed guidance.

Go visit there, I'm sure you will enjoy!

Tuesday, March 15, 2005

Me - Unfashionable - I guess

 Originally posted on:

I used to be all the rage about Open Source, and Anti-Microsoft - you know, Micro$oft is the source of all evil and such...

But I grew up I guess. Now I'm not so hip, I guess I like Microsoft, and Google and IBM etc. Why?
What I really like about them is the R in the R&D, the fact that the big companies have huge research facilities, that work all day at new ideas and new technologies, the edge beyond the cutting edge...

This is really what pulls at me - my dream to be at such a place. Obviously, there are real world goals behind this - these facilities need to show their worth by issuing usable ideas and technologies. But they are given the time to do so.

These companies spend huge amounts of cash on staying ahead, they really think forward even though it might appear otherwise at times. Sometimes these companies miss on great ideas that they developed there (the known case of XEROX and the windows concept, not to mention the mouse). Some really talented people work at these places, and those are places I would like to be at.

Sadly it seems that it would be hard without an appropriate diploma (which I don't have).

Out of these the most disappointing is the Google labs, they are the most focused on now - and providing the next beta for Google, but I guess Google is still a very young company that hasn't gotten far ahead (at least in the published stuff - you know maybe they are hiding the really advanced stuff :-() If anyone knows a way for me to get into this - I would be grateful! (ain't that lame? I should just send my CV? do I even stand a chance?)

Just a note: these sites are choke full of information, you can get smart just from reading....

Sunday, March 13, 2005

 Originally posted on:

I usually don't re-post like this, but this is important enough :-)

So Via Raymond Lewallen who got it via Peter Samwel

Here is where all your connection string needs will be answered (except for a connection string to your bank's database)

Have fun, I will

Monday, March 7, 2005

Why don't we talk about MSN?

 Originally posted on:

Mike Torres (MSN - Early adopters and "influencers") asks why? please answer him...

I just deleted a lot of blah-blah, let me just answer his question from my side. Let me just say that I am an early adopter as long as it doesn't cost me money (I would spend money on those stuff, just that I don't have it to spend :-) donations are welcomed....

First, I'd like to say to you Mike is that I did try out MSN, I actually did it because I read your blog. So look at 2 - more bloggers increase exposure especially with blog readers - if the blog has some worthwile content - we read it. So here is the list
1. Yes, do give us more developer APIs - make it easier for bored devs to develop interesting applications using your services - this requires documentation as well I guess.
2. Yes, More bloggers from the team (We like to hear the dirt :-) not mareketing blurbs)
3. Yes, More personalization
4. More customization would be even more appriciated than personalization - moving squares around is nice, but I want my own CSS if possible. Even my own scripts (how about those Google Ads, or maybe MSN ads that could generate me some income? - would help me buy gadgets maybe :-))

I don't know if doing this would help at all, you do realise being where you want MSN to be is also connected with luck (lots of it) and corporate image (in your case being part of Microsoft) - this has nothing to do with the butterfly - which is nice in my opinion...  Being underdog helps - but Google or Amazon (which generate a healthy part of this rave you want) are not even close to being underdogs.

Sunday, March 6, 2005

FireFox Only applications? I think not! (actually I hope not)

 Originally posted on:

I like this blog thingy :-) I read something somewhere, write something about it (this system apparently does auto trackback) He notices my trackback, has something to say about it... That in fact fits to post I've been thinking of writing. I love this!

Anyway, Firefox only, this is actually what scared me originally. You see Microsoft is developing is developing XAML which to my understanding is pretty much the same thing... And these will take time to converge as DHTML did. If anyone thiniks a few years back and why the whole IE only thing started, it was in part a Microsoft marketing plan that gave free stuff to all those small devs who put that logo on their page. And due to uncompatible DHTML capabilities, notice I'm not saying tags or language, it was simply not as easy to accomplish the feats possible with IE in Netscape (there was no Mozilla yet). You could do it... but even the best cross-platform scripting libraries I saw were not giving the same functionality for both browsers (in the end Netscape still behaved differently, and usualy worse than IE).

The compatibility reached today, is mostly, finally better standards compliancy from both browsers, and also the fact the Mozilla/Firefox designers understood, that in order to beat/fight IE they at least have to join them a little, so they implemented many of the IE additions, just so that people could browse most sites with their new browser. This is the biggest success of Firefox in my opinion - it is a great browser, but in fact it wouldn't be such a huge hit if not for this single fact...

Anyway, if Firefox only applications start (and are starting) this in my opinion is bad for me, as developer, and not so good for the unknowing end user, since what works for them so good at their home computer where their grandson installed Firefox for them and put in some nice links for them to use. Will not work as well when they go on vacation to florida and use the Internet kiosk to browse for their email...

So I do not like the thought of seeing that much dreaded FireFox only icon anywhere, some people will think it a way to get back the Microsoft, I just see it as a bad idea for a browser that is based on openess and supporting industry agreed upon standards... XUL is not an industry standard - when you make it so, and get more than just one engine to support it (think about how many XML parsers are out there, that's what should be for XUL as well before it is a standard) it should (it already is basically) be able to work on any platform, and provide the required capabilities, I'm not sure it fully does that now (saving files to disk etc...). It should of course support and be secured! I don't no spyware being installed as easy as an ActiveX script.

Why will MS initially win this game? You think the wide install base? well yes, that is one good point for them.. But the reason that they can win this is the mass of developers that will develop in XAML. Not because it is better or marekted more, but because Microsoft is sure to come up with such a great IDE for developing XAML that it will just be easier to do it for the average developer - which means most! whoever has more and better utilities will win.

So Mozilla foundation, if you really want to push XUL.
1. Get it adopted by the industry (W3C/ITEF)
2. Develop some GUI for developing XUL!!!! and do it before Microsoft releases Longhorn!

This is Open Source so anyone can actually take up the lead (maybe IBM or HP?)...

Also check out:
MyXAML  here: and here: (a blog of the developer) another effort in the same direction

Thursday, March 3, 2005

Some Cool and Redundant XUL

 Originally posted on:

Reading today some long ques of blogs, I have been on vacation for a few days, without any computer close by (I got to points where my hands were itching to type, but it is better without computers sometimes).

Vacation was great, Israel has some beautiful sites and things to see, if you like nature, now is one of the best times to come and see awesome sights. I'll be glad to provide tour help...

Anyway reading James Governor mentioning a XUL application that does Amazon,  I rememberd that a few years ago, I was raving about this at work, I downloaded a few tutorials and started building some application, just to see what would come out... I also remember sidebars, and back then I developed a small side bar for the company I was working for (never shipped anyway). But since then, I didn't much hear anything about it, and didn't know if it was even supported by the newer Mozilla/Firefox (Gecko engine if you want to be specific).

So reading that post, I fired up my firefox to that URL, and saw an excellent example of a usefull application. Smart Client anyone? XAML? They left out some functionality to Amazon (that does support these through their API) i.e. a link to amazon instead of putting a button in the application.

I was so happy, and immidately started looking for other XUL applications (google was very helpful providing filetype filtering)

Here we go:
1. Google XUL search - simplistic but oooh! it has colors. Notice that this is hosted ON
2. This - which looks like a XUL Blog reading UI (aggregator beginings???)
3. Mail application - doesn't seem to work for me, but I guess more than just trying is needed.
4. XUL Example viewer - a cool use for the technology to actually teach that technology!
5. Edit Your XUL in XUL - a XUL editor written in XUL
6. Bugzilla Interface - probably needs some parameters inputted to make this show something.
7. Just another Website interface - compare with this

Sadly, there aren't that many. I assume as the market share of Firefox/Mozilla continues (we hope) to grow, we will see more and more of these, they are simply very easy to make, and provide a much better GUI experience than a web page. Such an application can also aggregate many web services/APIs and allow building a robust application that gets all the cross platform and functionality already offered by Mozilla.

To learn more about XUL you are welocomed to go to XULPlanet which has some resources for you to go with... Here is a nice writeup of XAML Vs. XUL old but apparently still true.

Wednesday, February 23, 2005

Programmer Vs Developer Vs Engineer etc...

 Originally posted on:

A few days ago I read the post by Eric Sinc You need Developers, not Programmers and I was rminded of a few past moments. Let me just say I agree with what he writes, but I personaly don't mind being called programmer, even though I am a developer - programming is my main job after all.

I have had a few encounters that convinced me to say that I am either Developer/Engineer (I try to avoid engineer as it actually is based on a diploma which I don't have).

I was once in the Palo Alto area, for a short work visit, and went out with someone who worked there, he asked what I did, I said I was a programmer who does this and that and likes integrating applications... He said, "Well, for your own benefit, never introduce yourself as a programmer. Always Engineer, in your case it's best you say I'm an Integration Engineer". I thought he was right, first it does sound better, and secondly he seemed like a smart person, but I couldn't bring myself to do it. Eventually my company solved this dillema for me, and printed on my business card “Senior Software Engineer“ - don't ask me why, I didn't ask for it, and I don't complain. When people ask me what I do, it depends who asks. If a non-techie type asks me, I say I'm a programmer - it's easy for them to understand and relate to that, If I say I'm a developer, they sometimes ask me if I'm a real estate developer :-) If the person is a techie-type, or works at a tech company I ususally say I'm a developer...

A year or so ago, I met this girl who works in Amdocs in HR, she asked me what I did, and I gave her the standard answer, I'm a programmer... She gave me a disapproving face - I thought she meant that programmer=geek (a standard observation here in Israel), but she was cute :-) so I asked her what she meant - not wanting to lose face I guess. She said “Well at Amdocs programmers aren't really regarded as important”, The I made a face, and she continued “Developers are the real deal” - So I said “Oh! in that case I'm a Developer!”...

The Google Toolbar Auto-Link controversy

 Originally posted on:

A variaty of people (tons of them actually) have published some comment on this feature... You can finc them on any search engine by now, and among them...

A few threads on Google pulling Smart Tags Caper with Toolbar

Dan Gilmore: Google Emulates Microsoft, Uh Oh

And DG:  Brand Loyalty and Google

Anyway, I think the feature is great - well almost...

I had a slightly different experience with it than most people seem to have have, AND I have a feeling that if this was how Google implemented it, most of the controversy would have been avoided.

Let me say just this before, I don't like smart tags. And I agree with the people who think this is the correct way for Google to go, IF they want to lose me as a customer.

The way I tested AutoLink is by going to a web site with an address (I first tested on my company website and then instead of looking at what it did with the address on the bottom (I didn't even notice that it re-wrote the HTML) I looked at the options opened up when I clicked the down arrow in the toolbar itself. That gave me an option to lookup a map to the address (I already wrote about that here)... Now that in my eyes is a very usefull feature and also not too invasive or problematic... The toolbar informs you that it found something that might be of use for you (or not) and allows you a quick link to it - from the toolbar menu itself. That's what I liked about it - User controll. Google, disable the autolinking on the page.... That sucks!

Tuesday, February 22, 2005

Great Post by Scot Hanselman - Interview Questions for .NET Developers

 Originally posted on:

Go Here to read the questions:

It's interesting, as I've mentioned my team is slowly gearing up to the move to .NET - currently in more outer channels - a little hiring and some consulting to be able to establish time lines... I'm very eager for this move, and am always on the lookout for more .NET knowledge.

Its hard to learn new technology without the hands-n experience, I've got no shortage of tools, only shortage of time - no time to experiment, last time I've built a .NET project was two years ago (some web services in C#), I loved it, although it gave me a hard time (interoping with an old Java SOAP engine) - plumbing and formatting, but the programming itself was such a good experience, and because of the problems encountered which were to do with how .NET was receiving/generating the XML I got to understand some internal stuff, and to deal with the serializer a bit, from which I learned a lot. Nowadays I am swamped with work on work hours, and try to spend as much time as possible with my girlfriend and friends - who aren't really into computers at all, so we don't do pet projects for fun. besides whenever I think of something I need, someone already did it before me... So why do it again.

Anyway, the reasons I'm printing Scott's list right now, are:
a. I want to know the answers, so I can see here were I need to focus my learning
b. We are hiring and looking in particular for ASP.NET developers (preferably with some experience in VB and classic ASP) - since we don't know .NET that good, we can ask pointed questions based on the list (which means my manager is getting a copy :-) so that he can get us good people...). Oh, if you are a good .NET developer, Live Israel and looking for a job, you can send your resume to me...

Sunday, February 20, 2005

Continuing With UDTs...

 Originally posted on:

Back to my work woes...

Thanks to very helpfull people here (My friend from afar - Thanks!) and in SQLServerCentral (milzs) and some SQL Profiling... I found out the solution to this issue.

It all depends on how you actually call the stored procedure. Up until now we used to do first create the full command object (with the append method), and only then connect to the db for executing. In this method you have to specify data about your parameters including type (which was the problem). However, if you connect to the DB (assign connection string value to the ActiveConnection property) with the name of the SP already set. The Command object performs the following SP on the DB

exec [dbo]..sp_procedure_params_rowset N'isp_TestUpdateUserZip', 1, NULL, NULL

Which returns back a rowset detailing the exact parameters and data type of them, from theat point on - there is no need to specify explicitly any additional info besides the Parameter name and value. This behavior can be explicitly invoked by using the cmd.Parameters.refresh

Another interesting point is where you get the error (in case parameters don't fit the spec), In the first scenario - only when you execute the command, in the second - when you try to set the bad value.

After knowing what to look for MSDN offers this helpful article which also explains about the round trip, and the additional issues that this approach helps resolve. So now I have a complete answer and possible solution to a nagging issue. The only problem remaining with this solution, which is not that serious is that in order to modify a type you need to drop it first, and you can't drop it before droping all dependant objects........ Actually this is a serious issue, meaning that complex (but possible) scripts need to be built for each such occasion - maybe this is a good point why not to use this solution in the first place...

This restriction is very sensible, for example think of what would happen if you change a UDT  iudt_xxx nvarchar(4000)  to int? this can't be done, without rebulding any table using that User-Defined Type (not to mention indexes and functions relying on the type). Probably should have thought about this before... ;-(

Thursday, February 17, 2005

My 2 cents about SOAP Vs. REST (Cont.)

 Originally posted on:

After reading a comment here on my blog, (thank you stephen o'grady for actually commenting here, I really appriciate people that read). I though a little more on the subject. I remain basically at my previously stated opinion but would like to add a small exception, which of course for most of you is actually the main issue - so you would think I agree with you.

I think it is a vendors obligation to support the tools he provides. For a small vendor that would be supplying documentation amd bug fixes, for larger vendors, supply some code snippets and tools to use. This to a large extent is whats happening in this case. MS (and IBM, though I'm not really famailiar with what they provide) supply the REST developer with many tools.

You can use VS (also .NET) to develop any rest application you want, You can use WinHTTP (or XMLHTTPRequest) to test it in various ways (not to mention IE). Actually I believe that today more main stream automated QA tools support REST only, and do not even know how to deal with SOAP.

Code examples? Just take a look at older MSDN and other related stuff. It is practically full of it. How do you think I learned how to do it. See this for example.

The problem is, MS is not doing this anymore, hardly (if any) code examples of the old methods, certainly no articles in any magazine. No demos of exciting options, no Best practices or design patterns.

As a programmet who still uses these on a day to day basis, or as a system architect thinking of using such method, I would have liked to have this info from the source - i.e. Microsoft. Someone who is cerified to tell me what is better POST or GET, Key+Value, CSV? XML? I don't expect a framework because the whole beauty of REST is that you can do it anyway you want - IMHO that's the most powerfull feature, but some more info would be welcomed. I suspect that during the .NET development and through years of supporting these methods, Microsoft has more info than we can swallow - so please share with us. We would really appriciate it.

On the other hand, I understand MS has vested interest, so, to conclude, I don't want (I do but I can give up on) fancy dev events, and free CD's and toys. But a few Webcasts [* I work for Interwise we have some stake in webcasting - but I really think that it's a good tool for learning] or even better documentation on MSDN would be most welcomed.