Wednesday, February 09, 2005

An old friend, the ZX81

A friend of mine read my bio on the Developmentor web site and reminded me that I forgot to mention the ZX81 in my history of technologies I worked with. If you remember this machine, it was popular in the early 80s. It had 1K RAM , expandable to 16K (which I had bought). It seems so amazing that we could even do anything with it but we did. Saving the programs on an audio tape was really a pain but cheap. The internet was not even there but I managed to transfer a program through the air! A friend of mine was doing some radio show on a local FM station. We decided to tell our audience to start recording on tape the ZX81’s super cool program I had written. As he broadcasted 5 minutes of awful sounds, I recorded it and could reload my own program on my ZX81. Thinking of it, I was probably the only one listening to this anyway! The ultimate geeky evening but it was a lot of fun. Here is a link for the ZX81 http://www.zx81.nl/

Monday, December 20, 2004

FireFox is cool



I am using FireFox more and more. I have seen it crash but that’s expected from something that new.

The thing I really like is that is allows me to check my email through a web enabled Outlook access much better.

Using the web interface for Outlook through IE is just plain painful and almost useable.

Switching to FireFox makes it more than usable and it is very close to having the feel of a real mail client.

Try it!


Keith Brown .Net Security Book

I am currently ready it (http://www.amazon.com/exec/obidos/ASIN/0321228359/ccomput-20/103-4748007-2595816?creative=327641&camp=14573&link_code=as1)

Now, if you want to get scared about the safety of your data/machine then read it too. I always wanted to get into security since it is an obscure science (at least for me). This book is giving a taste of what's going on inside Windows. Some of it makes sense. Some of it is really mind boggling. If I am learning one lesson from this is that I am running all my stuff as Admin which is really, really a bad idea.

I made myself a "MeWithNoPrivileges" account under my machine that I now try to use as much as possible especially when surfing the web.

Saturday, October 09, 2004

Tic Tac Toe as a composite control

I just posted a composite control on the serverside.net. Click here to get to it.
Most developers prefer using UserControls to aggregate other controls easily. The Visual Studio IDE allows you to drag and drop elements on the design surface. It is certainly a very productive way to work. One of the disavantages of UserControls is that they cannot be put in the global assembly cache. This is most of the time not a problem when developing real applications. However, if you are a control developer and you sell your controls to the public, you usually want to be able to put your assembly in the cache.

This code sample is quite simple but illustrates what needs to be done to programmatically assemble the pieces. Fritz Onion has a client side Tic Tac Toe example in his book "Essential ASP.Net". I thought it would be a good addition to show how to do this server side.

Tuesday, September 21, 2004

ClientID is not reliable in CreateChildControls in ASP.Net

Here is a tip that will save you a few hours of digging. I made a composite control and instanciated my inner controls in

createChildControls. Something like this:

createChildControls()

{

t = new TextBox();

img = new Image();

Controls.Add(t);

Controls.Add(img);

// Make some javascript using ClientId like this…

….. t.ClientId …..

}

If you do it this way, your control may work fine in some pages and not in some others. This depends on how nested your

control is. Of course, you would think that the INamingContainer interface would take care of all this and give you a reliable way of getting

the client ID regardless how deep you are in the control hierarchy. After all, my textbox and Image are part of the hierarchy already since

I use ClientID after these inner controls have been added to the Control collection…

Well, this is not true to my uttermost surprise and disappointment. To cut the story short, here is the fix. The control hierarchy is

settled just before the rendering so you should always use ClientID in the prerender. So you do it like this

protected override void OnPreRender(EventArgs e)

{

// use ClientId here

}

This works fine. My googling did not reveal a real source of explanation on why this is but people have had the same problem.

I would be interested to find out a true M$ explanation for this.

Friday, September 10, 2004

Tuesday, August 31, 2004

CitiBank has your internet password.

I had to call CitiBank to get some info about my credit card. The representative asked me for my password!!
I answered I did not want to give it to her. She then told me it was ok to give it to her for checking my identity and that she was looking at it on her screen.

Needless to say I was stunned to find out that any CitiBank employee dealing with customers has
access to my internet password! So any employees can access my account from any machine in
the world! This is reassuring.

And then they ask you not to write your password anywhere and protect it. They also claim to take all the precaution to protect your information... This is all BS.

Obviously, they have not heard of one way encryption.... They probably have password in ClearText in their DataBase. Cool!

I am writing a letter to the CEO to make some fuss.

Also, I am cancelling my CitiBank credit cards and I encourage you to do the same!