Tuesday, 5 July 2011

Process

Not all processes are bad. It is process for process-sake that is painful and unhelpful.

Thursday, 26 May 2011

iPassed2


For all the Apple fanboys, who will love products of Jobs until they die and long after.

Created by Peter Walker of Imagineer.

Sunday, 22 May 2011

Go Dig A Ditch


People keep on telling me that I shouldn't get upset about others in my industry who simply couldn't care less what they produce.

Apparently, people have different priorities.

The thing with priorities is that you are choosing to order the importance of several things. That does not automatically imply that there is only one thing that is important to you. People with children who work a day as a software engineer and do a good job, do not implicitly hate or undervalue their children. Those of us without children don't just have lives full of work and nothing else.

In fact, people with diverse interests and hobbies are often very good at their jobs because their lives are more balanced.

You can have multiple things that are important. That is the whole point of context. When you switch contexts, the focus changes. There is nothing lost in other contexts. It is not as though you love the other less. You do not have to choose.

There is one guy in Darwin who sparked this rant. He goes to work. He goes home. He doesn't put in any extra effort. He always asks why he has to do something out of his usual routine. He doesn't see the point of collaboration, information sharing, reuse of anything, or exerting any more effort than it takes to not fire him.

Working with him was difficult because he would resist the whole way. It was passive resistance. I always came across as a French marine dragging a Green Peace supporter from a boat. It makes those of us who care look like zealots, when all we want is for people to make the effort they are paid for.

What we do is an important job. We are professionals. We get paid well .We have a responsibility to give a good service.

If you don't want to contribute then you should go dig ditches. Get the hell out of programming. You are lowering the standard.

Monday, 9 May 2011

ASP.NET Naming Containers


You have to understand that ASP.NET naming containers exist and what they change about a page. This affects client side and server side code and often kicks my a** when I forget that I am in one.

A naming container is a marker interface (INamingContainer), meaning that it does not implicitly enforce the hierarchy of controls under it but does create a naming scope for all contained controls.

Any controls that exist inside the naming container have their Ids altered at runtime with a prefix to ensure they are unique and belong to the context of the parent container. When you see a control with a name like TextBox1 change to ct100_xxxxxx then you know that it's in a naming container and has had a naming adjustment. This can make client side scripting a pain but there are many hints around on the web to help you cope with that.

The naming containers you will be most familiar with are master pages, content place holders and data bound controls like GridView.

My latest bottom kicking came when I was using fluent validators that wanted my validation specification to sit in the same naming comtainer as the controls it was validating. I chucked it at the top of the user control and the validation specification wasn't found. Not finding it as a sibling to the controls meant that validation just wouldn't happen. There was no error.

This makes sense when you are implementing server side code that looks up to a certain level in the hierachy to find an optional element on the page.

The thing is to know what your naming containers are and where you should place things.

Wednesday, 30 March 2011

Design for the Lowest Common Denominator


Everything is a balancing act between perfection and pragmatism.

What I do not believe is that you are supposed to drop standards to the point where you correct the mistakes of users. Yes, suggest improvements or give warnings or give options to clean up but do not just assume and make the change.

I'm using an ORM called llblgen. It is the standard where I work. I'm not a massive fan but I'm currently more for consistency than purity so it will do for now.

One thing that llblgen insists on doing is assuming a table name ending in with an 's' is a plural. It then removes the trailing 's' when generating the equivalent data model class.

For example, my 'SomethingStatus' table will be represented by an equivalent model named 'SomethingStatu'. The developer has responded to my tweets of disdain and said that from his point of view, he can't assume that people will model their databases in a way that obeys conventions for not using plurals.

This bothers me because it makes me question the point at which we will go to cater for developers or users that may be doing something "wrong". Microsoft development environments and technology stack restrictions often have this in mind. Stop bad developers being sloppy by locking down the environment and denying options because bad choices cause bad code.

I disagree. I think bad developers write bad code. You shouldn't have to correct them. You don't need to baby your users. If you are going to cater for anyone then cater for the average user.

If the assumption is that the average user has a low statu then I'm simply saddened.

Tuesday, 22 March 2011

Uninstall an Instance of SQL Server


If you are anything like me and you regularly forget the SA password for a SQL Server instance and then delete your own Windows user from the server then you will need to install a new instance.

Then you have two... or four instances, in my case. Don't ask.

Here is how you uninstall a specific instance since you are locked out and can't use it anymore. There are other good reasons that may bring this about but mine is far too common, so do this...

  1. Go to Control Panels > Programs > Uninstall a program. This is also known as Add or Remove Programs;
  2. Find the type of server you are uninstalling. In my case it is Microsoft SQL Server 2008 R2 (64-bit). Right-click and choose Uninstall/Change;
  3. At this point, you may be asked to locate your installer program. That is the program you used to install it in the first place. Locate that. You will be presented with several options. Choose Remove;
  4. Select the Instance you want to remove and follow the instructions to uninstall it.

You may want to write down that SA password for the new instance somewhere.

Sunday, 12 December 2010

Google Reading Level

A recent useful feature that I have seen added to Google search is part of the Advanced Search criteria. It filters by reading level. This level has been determined by Google in some magical way (yes, I will read more later) and at the moment only applies to English pages.



My main use for this is when searching for technical references, when I don't want to find the "did you forget to turn the power on?" solution or description.


When you search, you will see the break up of different pages, at their reading levels.

Acknowledge Me

Apple started a user experience trend many iOSes ago when it accepted Settings changes and did not ask for confirmation. Once the chang...