Mar
26.
2006

A concrete advice regarding the use of your time, especially on the Internet - stop reading your RSS feeds daily. I have moved from the daily to the weekly model and the results are incredible - I spend about 3 times as much time when I read RSS feeds every day.

This if coupled with the spring cleanup of your feeds should increase your productivity by several hours (in my case, 5-6) per week. Not too bad, eh?

Bob Walsh, author of the (very good) book “Micro-ISV: From Vision to Realitywrote about the same thing few days ago. He calls the behavior when you go online and then drift away from link to link “attention leak”. That's a great way to describe this phenomenon. Hopefully by reading RSS feeds less often you too will be able to plug this leak...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Mar
21.
2006

About a year ago I had to go to Paris just for a day to renew my passport. I had a lot of time to spare, but not enough to go and visit some of the interesting cultural sites likes museums, monuments and other popular touristic places. So based on an advice from an acquaintance I went shopping for something for my lovely wife.

In the end I got her stylish (and quite expensive for that kind of product) cups for tea and coffee. She liked them very much so mission accomplished.

Imagine my surprise to find those same cups in the Director's Cut of Alien3 :) There's a scene when the doctor meets the guy who runs the prison at the beginning of the movie, just after Ripley is found. They drink tee out of the same kind of cups ;)

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Mar
21.
2006

I have been struggling recently to find a way to model a REST like (not quite RPC but close) service on the Web server using ASP.NET. I forgot why but I was mislead some time ago and spent quite some time researching remoting only to be reminded that .NET services probably support some form of REST like functionality - the first was Don Box post about Microsoft investments in REST and the other was an answer given to my inquiry several months ago in one of Microsoft forums.

Having anything but SOAP supported on the wire is actually very undocumented (but it is supported!) and hard to get right. After about one day of struggling with Visual Studio 2005 (therefore .NET 2.0) I have managed to get HTTP GET and HTTP POST support to work fine (and SOAP not to work at all) but after my dance with the server configuration I cannot get “Add Web Reference” to work any more and no code is generated for me on the client (this is not a big deal because I already built my own proxy mechanism). Here's a (hopefully) helpful hint - if you want HTTP GET/POST support, try adding it manually under system.web/webServices/protocols (clear all the protocols, then add what you need) in your web site's web.config.

Unfortunately I still have two big obstacles to overcome - parameter validation takes place “somewhere” and if you send a wrong type you get an exception trace back (I'd like to catch that exception and return something more meaningful) but even more important - I can't seem to find a way to return something other than POX back. Before someone mentions it, I don't want to bother with WSE 3.0 and MTOM (but I will if that is the only solution).

There is always an alternative - just like I built my client proxy stack myself (and it's not much of code and is very clean) I might opt to build the server one too. But it feels so wrong - the problem is well defined, everyone is having it and it would literally be inventing hot water.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Mar
15.
2006

A friend of mine went for a looong holiday back to South Africa and left me his Xbox 360 to have fun with. So far I really like the machine - it's small, quiet, stylish and wireless controllers are great.

Unfortunately, I don't have an HDTV (yet ;)). Based on many, many comments from gaming sites and various individuals on the Internet I decided not to buy Xbox 360 until I'm able to enjoy it in its full potential.

I think those recommending against purchase unless you have HD video/audio capabilities were right. The only new (Xbox 360) game I have to play is (so far the best rated Xbox 360 game) Call of Duty 2. I had the chance to try this game on a nice HD LCD in Carrefour (big French supermarket chain, something like Walmart, except not that cheap) and it looked stunning. It still looks great on my “low” definition 28“ widescreen TV (smoke looks amazing) but not as nearly as good as on an HDTV.

That said, this game totally rocks. It's the most frantic gaming experience I've ever had, period. The action is non-stop and chaos is everywhere. I played for 3 hours straight last night and today my fingers hurt ;)

 

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Mar
15.
2006

If all you want is stock ASP.NET 2.0 membership you can stop reading now. But for those that want to (even if ever so slightly) customize the provided experience, here are a few tips...

Decide on exact options of the membership provider as soon as possible. The experience in Visual Studio and in Web site administration tool will adapt automatically to your settings. It's really cool once you realize it, but might cause you some pain if you don't. Example: if you remove the options of security question and answer present on CreateUserWizard and PasswordRecovery controls and then drag and drop one of these two controls on a form the controls for the question and answer will not be created.

One other very important thing is password format to use - if you start your project by not configuring this, you'll get the default which is Hash. Nothing wrong with this, except that now the users of the site cannot retrieve their passwords, they can only reset them to a new one. If this does not fit your need, but you already have users in the database, you won't be able just to change the settings in the web.config and hope for things to work - I had to trigger the re-creation of the database from scratch to get normal behavior.

Finally, I have either found a bug or there is an irritating inconsistency in the way events are fired for the CreateUserWizardStep control. This control is part of the CreateUserWizard control and is the main step of this wizard. Normally you'd not play with it at all, but my wife's project is for Serbian public and needs to be in Cyrillic so we have to customize everything. But I digress - we found out that Activate event does not fire for this control, either because it is the first “page” of the wizard, or because it is somewhat special. Not a biggie, but does cost you a few minutes of your time to discover.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Mar
13.
2006

Tracepoints rule

Posted by: Drazen Dotlic in Categories: .NET (C#).
Tags:

If you are using Visual Studio 2005 you might or might not be aware of the new debugger feature called Tracepoints. These are like Breakpoints, except that they do not stop the debugger at a given line in the source but trace something out.

This does not seem great on a first look but is actually very useful. Consider the alternative - if you did not have Tracepoints, what would you use? I guess you'd just put trace statements to your code and be done with it. But the statements are code, debug or not and once you're done with the debugging if you want to get rid of them you have to chase them all over the code.

Tracepoints are transient, just like Breakpoints and can be deleted at any point in time trivially from the Breakpoints panel where you can also see them listed. Tracepoints support tracing of several useful macro like constructs, including a stack trace, local variable values and much more.

But do not mistake Tracepoints for regular trace statements. The two are meant for a different purpose - trace statements can be rerouted to trace listeners and are used for things you want to be traced all the time (assuming other criteria like level of tracing has been met).

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Mar
3.
2006

Most of the usability practitioners agree that every application (or device) should do its best not to present the user with a dialog, message box or any other kind of useless information unless the app (or device) needs information that:

  • it cannot continue working without
  • only user can provide

I have recently upgraded to the full digital connectivity at home - my TV, phone and Internet all go through the ADSL2+ line. The speeds are as expected and generally things work very smoothly. I have a “modem” I got from the ISP called Freebox and a Netgear WGR614 router/wireless AP that all my devices are attached to.

Yesterday evening all of the sudden we lost Internet connectivity. The phone was still working so I thought the problem was with the computer. But when I turned the Freebox on and switched to its TV channel, I was greeted with the classic case of redundant useless message (I paraphrase, the original message was in French ;)):

There is a required upgraded for your Freebox that you must install to use the network properly. Please upgrade by restarting your Freebox.

The message is redundant because prior to reboot nothing worked, the device was aware of it and it is possible to reboot via software only - that's exactly what I did using a remote control a few moments later. As a matter of fact, the Freebox does not have a physical reset button that is easily accessible, so there was no need to ask me to reboot the device - it could have done it all by itself.

Oh well, maybe in one of the following updates...

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments
Mar
3.
2006

ASP.NET is great technology. My wife has been recently studying programming (at home) and of all .NET technologies, she liked ASP.NET the most. When I asked her why, she said “almost everything works automatically - I don't have to write any code”. She is right, but the high level nature of ASP.NET can also be a real headache.

While helping my wife with her first real project I stumbled upon the following issue: if you have a sitemap as an XML file (web.sitemap) pay close attention to the nodes that are just used for grouping(in other words, these nodes are not clickable and don't link to any page). For example, the structure might look like this:

Home page
Normal pages
  Page 1
  ...
Admin pages
  Page 42
  ...

If your site map provider has securityTrimmingEnabled on then all of the grouping nodes will be filtered out along with their child nodes. This means that in the above case the nodes and all child nodes of both Normal pages node and Admin pages node will be missing.

The fix is to set roles attribute manually on these nodes to match the roles that are supposed to be allowed to access these nodes (the reason why you originally set the trimming on). It is somewhat duplicate of what you already set in the web.config for the authorization, but needs to be done.

Be the first to rate this post

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
0 Comments