Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Sunday, 16 January 2011

Out of breath!


Wow, what a week.

In the last week I’ve barely had time to breath – let alone do anything else.  So apologies for anything that I have missed…

We are ready to release a new product at work – really it should have been released last week, but with constant changes in specification, and with no lack of business knowledge at the start of the project (for those specifying) we were busy until Friday.  It’s been hectic to say the least.

Friday was going to be my wind down day for the week – I normally try to do as little overtime as possible (I’ve had burnout in the past, and really do not want it a second time), but this week it has had to be done.  I think that we are there now – there are a few last bugs to solve, but unless there are more changes in specs we are finished.  With everything going on I was busy all day – with my thoughts going ten to the dozen; s much for the wind down.

Now for the merge and release…  There is a usability test at the start of next month, and we need to be live before then. 

Breath…

This week I have also had an issue with the after effects of last week’s laser.  I was expecting the pain; I was expecting the rash like after effects of having your hair and follicles burnt.  What I wasn’t expecting of still having the ‘rash’ now, and only having been able to shave properly for the first time yesterday.  That was really annoying!  I was supposed to be going to some friends, as Stace, on Wednesday.

They are really great people, and even though they have never seen ‘her’ they always treat me as Stacy.  Always – and it means the world to me that they do.  I was really looking forward to actually going as Stace, and having their support.  I give some coaching to him for his work, and we normally do this in one of the local cafes – it would have been nice to have been out as Stace with him.  But on Wednesday there is no way my skin was going to let me do that.  I shaved, in order to get ready but the results were not great.  (In case you had not read it in the sentence that was some English understatement there).  It’s shallow I know, but it would not have been good for my confidence to have been out looking like that for one of my first times in public.  So ‘male’ me went again…  That was such a disappointment and anti-climax from the build-up I had during the day.  Oh well next time (and not in the week after laser!).

Breath…

And I have some personal projects to start at home as well…  There are three that have priority with me.  The first is to do a small website, using HTML 5 and jQuery.  It’s the way that we have to move at work, and whilst I am not a frontline developer anymore, and whilst I have never enjoyed the HTML end of development, I think it’s important to know these things when I supposed to a working foreman to my team.

Second, we are thinking of moving towards using Scrum more in the office.  We were supposed to be doing that a while ago, but it never really materialised.  I want to get up to speed with project management using Scrum and see which of our future projects I can apply it too.  I think that the developers would really like it, though I am not sure that the business would be able to cope with the initial hit that it is going to take to move from what we have to where we need to be.  And without the support of the business it’s just not going to happen…

Finally…  I want to do some problem solving with my team.  I have a number of very good, intelligent developers in my team but I think there is an issue of some of them thinking using the keyboard – and that is something I want to change.  When in university we spent the first half of the first development course not actually in front of a computer.  We did problem after problem, with increasing complexity and spent the time developing the skills that you need for solving issues – something that has left me in good stead ever since.  I really want to spend time here as I think that this more than anything else is going to help lift the level of the department – the ability to see what the problem is, and figure out how to solve it is more important in creating quality solutions that having x design patterns (also important!) in your head.

I think.

(Incidentally if anyone knows of some nice online resources for any of those things please let me know!)

Breath.

Hopefully this week is going to go a little simpler.  Though I somehow doubt it ;p

Stace

Sunday, 18 October 2009

T(ech)-Time - simple ways to optimize general code

I was reading Lynn Jones blog about old technology today and it got me thinking about the changes over the years. Hohum - here is a good first tech post I think...

Since I started to do serious things with computers - about 1992 - I have used Turbo Pascal, Ansi C, assembly (which I hated :) ), VB 5 and 6 (and classic ASP), Magic (v5, v6 and v7) and now program in C#.

When I started machines were not overly powerful (we thought they were at the time of course) and you had to think about what you were doing in order to make the program run as quick as possible.

When I was in University we had basic coding optimisation practices drummed into us in our Micro-architecture classes (they didn't teach me to spell it though :) ) - how to make your app work that little bit better by using some simple techniques.

In the modern world when writing desktop apps it's not going to make the world of difference. And that is the problem. By and large you can throw hardware at most performance issues and let's face it even a netbook runs at 1.6GHz and with a decent OS does most home user tasks adequately.

But... The trouble comes when you want to do something with many concurrent users. Say... A web application. Or a mainframe app (OK you don't see this too often these days). If you have got lazy with your desktop development you have a higher chance of running into problems.

You see, when you have a decent development rig (where I work we use quad core machines with raptor 10K HDD's and 4GB ram. They rock :) )you still don't see the problems when you are debuging.

No... The problem shows itself when you have 6000 users trying to use your site at once. And what do the developers say? Throw another server at the problem. If you think about the bottle necks and possible issues that you have though you may not need that server. We rely on a couple of purchased apps for data delivery in the office and we have always complained about one in particular. We can't throw it out as they are the only supplier of this particular data in the country. They made a change recently and as a result we can get rid of 50% of the servers we use *for that one app* and still have more capcity. And all because someone actually started to look at performance seriously.

My first suggestion would be to think about all of the logic of your apps before and during coding. If you have an 'if' statement think which of the logic branches is most likely to happen and ensure that this is in the true branch of the 'if'. The reason? When an if instruction comes through to the processor the pipeline is full of the 'true' login branch. When you need the false branch the pipeline first has to be emptied, and then refilled with the new code branch.

I'll be honest with modern operating systems I don't know how valid this point is anymore. But, the process of thinking about what you need in your app is still a valid point and should lead to improvements. just a thought I've been having recently...