Dennis van der Stelt

If you have one problem and use cache to solve it, you now have two problems.

Community

Email Notifications

News

  • Addicted to Refactor! Pro

I read...

I Use...

Tags

Recent Posts

Archives

Blog Subscription Form

  • Email Notifications
    Go

May 2004 - Posts

WindowsXP SP2 is coming... and bring some troubles along the way

Microsoft is about to release Service Pack 2 for WindowsXP in a few months, if I'm not mistaken en Microsoft doesn't delay again. There's an article for web developers in which you can read what the changes are. To sum a few...

  • Websites starting downloads without the user initiating the download himself, will be blocked. Well, not the site, but the download. A LOT of websites use this feature, where you have to wait a few seconds and your download will start. I have no idea why they do this, but from what I read here, that won't work anymore.
  • Popups will in most cases be blocked!!!
    Now this sucks big time. I believe users can see popups that are being blocked, to open them after all, if they please, but most users I know won't bother watching for those popups and just start calling me, their family IT specialist (yak!), why their favorite websites aren't working anymore.
    Windows will only popup, when created with the window.createPopup() method, but only one at a time. Now does this mean I can't open a popup from my popup as well?

There's more, maybe you ought to read it, as a lot of websites might be getting into problems.

MSDN Library July 2004

I quick one, this late.

The MSDN Library, version July 2004, has been released. Funny, as it isn't even June! :)
Go get it at MSDN Subscriber downloads.

SOA & Data integrity

Clemens Vasters made a post about sharing data stores across services. He says the temptation is just too big that some developer will go and make a database join across the "data domains" of services and cause a co-location dependency of data and schema dependencies between services.

You could say I have zero to none experience on SOA, but I'm very interested in the subject and read my share part of articles on it. It's kinda like when .NET was released and you found (kinda) a whole new way of developing applications, this is like a whole new way of designing applications with a bunch of new programming methods on the way down.

But the more I read about SOA and discuss the topic with collegues, the more questions I have. And the problem is, most of them stay unanswered. At work, I'm implementing a (small) application the SOA way for the first time.

The topic mentioned Clemens blogged about, is not that difficult. The first thing developers say when first hearing about SOA is that you will get performance issues when you can't lay really large joins over tables but have to get all the data through each individual service. Ofcourse this depends on how the services are defined, but that's another topic. I asked Clemens about deleting and his simple answer was: Don't delete, by more disks. Thanks for the answer. :(

Anyway, in the comments, Ray Jezek has some questions as well. One argument of SOA is that you can replace a service with another one. Clements has the example of a customer services replaced by Siebel. And although it had crossed my mind, Ray raises questions about the identifying key of the customer. What if we defined an int and Siebel uses GUIDs? It's kind of an extreme situation, but what about using an integer and a string, where the string also uses A-Z as possibilities. I ask you, what if we have both services running side-by-side and we want to take out our own service and use Siebel? Because Siebel already has our customers so we can't generate them with out own keys. Now we have to build a mapper service in which we map our previous key with the Siebel key. That's probably doable.

But there's more. All the time, I hear that I have to use a unique business entity as the key. For example, use CustomerID and not some internal id. With internal ids, we'd never be able to 'just' transfer our customers into Siebel and always need a mapper. But what if we come across the case we have cusomter id's of [00223] and Siebel uses [82A02PPQ]? Or even worse, uses {17e97ffa-d478-4c17-87de-a075d826fe1f} ? Then all of a sudden, our users are overflown with totally different patterns in their CustomerIDs.

This is getting quite a long blog, but the question Ray raises is, why aren't there any examples and/or implementations on these subjects? Has everybody only been thinking about SOA but never implemented it yet? Very hard to believe. Also hard to believe is nobody has been thinking about these problems. What also is hard to believe, but true in fact, that there's not much information on these topics. Maybe there's a really big gap here Microsoft might fill with some Patterns & Practices or Architecture site. Or maybe you know of good sites and/or implementations.

Messenger Plus! 3.0

Although I still like ICQ much better, with Messenger Plus! 3.0, Microsoft's Messenger is getting better and better.

New features are word filtering, quick icon panels (I really like this one!), auto messages that accept commands, enhanced plus! menus, select what contacts receive your personalized status message and set the time this message expires, contact list cleanup which shows how long it has been since you've spoken to someone, etc, etc, etc.

Windows 95 & 98 makes it to Pocket PC

Win95 on pocketpcThis is definitly something I would try to install on my PocketPC, if I had one! Some guys seem to have tried to get Win98 and Win95 running on PocketPCs.

If you want to install this, be sure to have a 256MB minimum on memory, but as it seems you might also be able to stream the image over a wireless network. Then you need Nyditot Virtual Display to increase your screen resolution. (This might be interesting to more people then those keen on installing Win98.) You'll also need an emulator to run DOS.

More information can be found here.

Have fun installing! ;)

The daily WTF

A now blog has been born, and it's called The Daily WTF.
First of, it's funny to see those americans can't say FUCK. Every time they want to use the word FUCK they turn it into a WTF, or a What The F---.

But the site itself is even more funny. It's about those things you come across as a developer and make you thing, WTF! Or, what the fuck, actually! ;) Anyway, the posts are great as well, and a must read for every developer.

Function Batman() is already one of my favorites! :)

WSE 2.0 Released

The WSE 2.0 has been released.

Web Services Enhancements 2.0 for Microsoft® .NET (WSE) is a supported add-on to Microsoft Visual Studio® .NET and the Microsoft .NET Framework that enables developers to build secure Web services based on the latest Web services protocol specifications.

You can download it here.

Email tracker

I just read my CodeProject newsletter and found an article in it about tracking your email. What is does, is include an image in the email that loads an .aspx page. This page is on your own server and when Outlook requests the image, the .aspx page is loaded, you know the email is openend en thus probably being read and you redirect the request to a transparent image, so the reader will not even know what happened.

Thing is, as the author notes, spammers might also use this. I'm using Outlook 2003. This version of Outlook has a standard setup to not download images on the fly, but requires an action by you, the user, to download these images. Most of the time I found this annoying, so I turned automatic downloading on. After reading this article, I turned it back off!

I get lots and LOTS of spam email at work. More then 50 a day! You might imagine how hard it is to find real emails between this spam! If anyone has any idea how to solve this problem within Outlook 2003 connected to Exchange, please reply. I've tried some solutions, but or they didn't work, or they kept on crashing Outlook.

Ntime performance testing

Adam Slosarski has build a NUnit like application, to performance test parts of your application, just like NUnit does unit tests on part of your application. As you can see in the screenshot below, it has practically the same look and feel.

From what I can see at CodeProject, where the application is located, you can test what the performance is of your app as well as some other things, like how it performance with minimum CPU usage. Anyway, before I can say anything else, I want to test the application myself.

Meanwhile, you can find it here...

 

VB6 mousewheel fix

Lorenzo Barbieri questions himself why he hasn't found this sooner; the VB6 mousewheel fix! He got it from dredge, by the way.

The problem is, I've been doing a VB6 application for a few weeks, adding some functionality, and you have no idea how I missed using my mouse, using it to scroll the sourcecode!

I'm done with the project and only now I now how to fix it! Maybe I should've search for it in the KB sooner! :(

Anyway, I hope I never have to use it! ;)

Improving .NET Application Performance and Scalability

First, my 100th post! ;)

I've been waiting for this and now it's final and downloadable in PDF, the  Improving .NET Application Performance and Scalability. You should probably wait for printing the entire document until it's 21:00 hours or something, as it's a nice 1120 printed pages!!!

Go visit here.

PAG
Summary: This guide provides end-to-end guidance for managing performance and scalability throughout your application life cycle to reduce risk and lower total cost of ownership. It provides a framework that organizes performance into a handful of prioritized categories where your choices heavily impact performance and scalability success. The logical units of the framework help integrate performance throughout your application life cycle. Information is segmented by roles, including architects, developers, testers, and administrators, to make it more relevant and actionable. This guide provides processes and actionable steps for modeling performance, measuring, testing, and tuning your applications. Expert guidance is also provided for improving the performance of managed code, ASP.NET, Enterprise Services, Web services, remoting, ADO.NET, XML, and SQL Server.

Real programmers don't use comments

This is nice. Jay Kimble talked to some senior DBA'r who claimed that comments are useless. If you can't read his code and understand it, you shouldn't be in it.

Jay asked us how we feel about this and should post our feelings on our blogs. I've gotten the link from Steve Eichert and already have given my opinion there, but I'll repost some here.

About the "I prefer no comments over bad comments". I come across comments like the next one all the time!

// Begin loop
while ( ...

There's another thing to the "no comments over bad comments", because the type of comments I just mentioned irritate the @)#$*#^& out of me and I start throwing with keyboards, books and sometimes even monitors when I see something like that.
As if I don't understand we're going into a loop of some kind. You (#&$(# moron!

Please people, describe what the loop is for!!! Or any other code, for that matter.

I really do think comments can add a lot to your code. If written in what it does functionally. I can see we're going into a loop, do some if's or a switch or that we're loading a document or something. But why, why are we doing this? Explain!

Offtopic : Usas on your mobile

A long time ago, in a home far, far away...

I was sitting behind my MSX homecomputer playing a really great game called Usas. It was really, really cool with some sweet music! While browsing the web, I first came across a midi file from a level in Usas. I converted it to something my Nokia 6100 can play well and uploaded it. Until today, when I came across a really good screen on Usas. I converted it to a 128x128 image, overlayed some cool stuff I always use on my Nokia for showing the two meters (battery & connection) and a header and footer. The result can be found below.

For you to download:

- Midi file for your nokia

- The picture:

The most ugliest code yet

In your carreer as professional developer you come across some ugly code, many would not believe if you told them. Once on a project (hi Ernst) I saw some pretty ugly code in one line. It was C# and was something like this:

public void DoSomething()
{
  Order order = new Order();
}

This code can be your thing, but I really dislike this kind of coding and always name my objects in a more readable style. For example, take myOrder or completeOrder or anything else thats more appropriate for the object. But I never use the name of the class and change some capital and use it as a name for my object.

Until yesterday, when I give class with another collegue to some other collegues who weren't that familiar with .NET. Then I saw the most ugliest code in my life, crammed togehter in one line.

Public Function DoSomething()
  Dim Order as Order = new Order
End Function

Here we have something even worse, the name of the class and the name of its instantiated object have exactly the same name! I didn't even know this was possible.

Maybe we shall have us a little contest. If you can provide me with code in one line that's even more ugly then this, I'll give you a free copy of... of... Oh, I don't have anything to give away. Nevermind, we'll have a contest with the prize : everlasting fame, or something...

Anyway, just had to let you know this... :)

International .NET ass
I just have to point you to this blogpost! :)
More Posts Next page »