Archive for the “Uncategorized” Category

A few days ago I came upon an article by James Turner about processes killing developers passion and which when you read you get like “whoa, he’s right!”.
It can be easy to fall for this kind of trap and which is why I try to counter it.
Developer passion is indeed one of the great assets a software company needs, but in the end, we – software developers – need to deliver what our client needs. In the 21 century this means large scale enterprise applications, large multiplayer games and the likes, essentially software that require more than 2 people locked in a basement to develop. This is where the need for processes arises, because no two developers are the same. Each favors a certain technique or way of doing things and this leads to … problems. Processes, if implemented right will make sure all developers have the knowledge they need, will allow for estimates and plans, such that the client knows when he receives his product. Even more, processes make sure that the product has the quality required by the customer, not the quality perceived by the developers. We all know this picture. In order to counter something similar to happen we put grooming in place, we get planning sessions and make sure the customer is always close by to check that we do what he thinks he wants.
I can understand that processes might be poorly designed and make the developer’s life harder instead of making it easier, but this is like saying that in Europe is most of the time raining because it is so in UK. I do PQA (process quality assurance) and I always have to ask myself: “do we need to apply this process as it is or change it in such a way as to get the same results and not to burden the developers?”.

Let us suppose you are a bank and need a new backend system. Your bank will move billions each day. What do you do? Will you choose a small very “passionate” company, or go for one that has processes in place and are transparent in their work and give you measurements about productivity and quality?
Of course, your company might not be a bank, and you do not expect something great, only something that it works and fast. Jump on the passionate wagon, they will certainly deliver.

Maybe the real problem resides in “when” should you apply all the TDD, reviews, processes, measurements and the like. I can only say: do what is needed to achieve your goals. If the goal is “zero defects” (I don’t agree with that but that’s another story) then go for the full-blown processes approach. If you need something fast, get a senior and a few devs and juniors, give them free hand and you are done.

Today I was chatting with someone from the company about the same article and he said: “if someone thinks that putting 5 guru’s in a team and letting them just do the product will work, I am willing to bet ALOT against it happening”; and I tend to agree, unless they devise their processes and plan the project to a certain degree, which if they are passionate enough – will not happen.

Cheers

Comments 1 Comment »

I think a picture says more than a thousand words. Meet Emilia, my 2 months old daughter

mygirl

Comments 3 Comments »

The past two days I tried to make a file server out of an older pc I had lying around. It had an MSI KT6V-LSR with an Athlon processor on it. Toghether with one 400Gb and one 500Gb harddrive I thought I could crop a machine for storing files. My primary OS of choice was Windows 7. I had also an XP around but I consider it too outdated to use and the Vista would be too slughish on this old hardware.

The problem I encountered was that Win7 was not booting on this pc. This is because on the Win7, Microsoft changed the boot sector (don’t ask me why) and older systems do not recognize this as a valid bootable disk and the only message I was getting was a “cannot boot from cd code 5” error. After scouring the net I finally found a sollution which I want to post here.

1. Get a Windows Vista boot disk. It does not matter it’s from a “friend” or yours. You won’t actually intall Vista, just piggy-back on it’s boot capabilities.

2. Boot from the Vista disk.

3. After selecting the language select repair. Afterwards, depending on the state of your harddrive and other stuff you should be getting the choice of running a command prompt. Do it.

4. Change the disks such that your drive now contains the Windows7 disk.

5. In the command prompt navigate to the drive with the Windows7 disk, go to the sources directory and type setup.exe and press enter.

6. Now the Windows7 will start installing and everything will go on normally.

 

Happy installing!

Comments 2 Comments »

I just finished modding my computer with the goal of making it more silent. It all started with an Antec Sonata III 500 which was supposed to hold my new Core2Duo. I like this case. Sturdy build and quite heavy. It has springs for the harddrive mounts to dampen the shocks and sound, a good 500Watt source and gorgeos looks and also it is very easy to work with, especially with me poking my head inside it to check and modify stuff.

 At that time I stuck with the Intel stock cooler which of course proved too loud. From the perfomance it was ok. I am not an overclocker so it was enough for the job. Still I needed to change it because it was loud as hell. I chose A Scythe Ninja 2 which can normally be used also in a fanless mode but I did not risk and installed also the provided fan, which is a 120×120 – 800rpm one (very quiet also).

My shock was of course that my system was as loud as before so I turned my head to the cooler on the VGA. This was a Saphire 4850 with a Zalman cooler; Noisy as hell as I saw, and thus I had to go for yet another upgrade which turned to be an Arctic Accelero S1 Rev.2. Also this is designed as a fanless sollution but again I wanted to play safe and added the turbo module which consists of 2 low rev fans barely audible.

All in all the system is now quiet and yet powerfull to play anything I throw at it. I could not make it dead silent but its miles from where it started. Below are some pictures I took along the process.
Read the rest of this entry »

Comments No Comments »

It’s been again a long time since my last post.
Today I wanted to explore a little bit the realms of paralel processing. As I already stated in some previous posts, the current trend of going multicore is somewhat out of phase of the current programming techniques, meaning we have multicore but we rarely use it. Most applications available on the market are single core and some have just some modules optimized for multicore.
Suprisingly the most parallel applications nowadays are graphics processing. Latest generation GPU’s are actually multicore processors, but specialized for simple operations (thus very fast). For the general purpose software developer this processing powerhouse is out of reach due to the different programming model. What this means is that first of all there is a lack of higher level abstractions of the GPU and also there are limitations because of this specializations.
There are some API’s available from NVIDIA and AMD (read ATI) in the form of CUDA and STREAM, but for me, as a C# developer they are not attractive since they offer a C++ API.

Fortunately there is Microsoft Accelerator which you can get from here. This is a .Net abstraction over the GPU and allows for some basic computations to be forwarded to the GPU instead of the CPU. Naturally I wanted to explore a little bit and especially to do some tests. Below is my test example, some results and remarks.
Read the rest of this entry »

Comments 5 Comments »

Hi,

Some days ago I read an interesting article about SSD performance degradation on Anandtech, and I kinda felt that this was happening to me also. I don’t own an SSD yet but I encountered flash performance degradation on my 8Gb Flash Voyager stick. Now I won’t go into the details about why flash performance degradation because the article above is more explanatory than I could make it. Suffice to say that I wanted to see if I can bring my stick back to life.

What was wrong with my voyager is that in the last weeks the write performance was poor. Whereas normally I could write at around 9MB/sec now I could only do it only at around 2-3MB/sec. From the article I understood that this was because even if the OS was reporting enough free space on the drive, all the space was already holding data and in order to write over it the flash needed to get the invalid data, write it to cache, delete the old location and then overwrite it with the new data. If one could delete everything from the location, subsequent writes would be just writes with no additional steps to execute, thus faster write speeds. This meant that I would need to do a format of the stick. But before that I had to do some tests to see performance before and after.
Read the rest of this entry »

Comments No Comments »

Today I was looking on MSDN and came upon a blog entry of J.D. Meier about 8 new big trends. I must say that I agree and I want to share them also here:

  • Analytics is Hot.  “The 21st century is all about math: some of the most unique, innovative ideas are emerging with these types of analytic projects. This is where the next billion dollar industries are being born.”
  • Small is the new R&D.  “Today, the global R&D process has changed, and small is big. The global, infinite idea loop allows topic experts to share their latest research and insight with their global peers on a continuous basis. It’s a fundamental transformation in which most new scientific discoveries now percolate from the bottom up.”
  • Attitude and Amusement. “The fact is, you’ll need them. That’s why workforce engagement is the big issue — you’ll only be able to get the staff you need if you can keep them active, engaged, interested and amused. A entirely different workplace concept that is radical, yet necessary.”
  • Time Disappears.  “The major trend going forward is the collapse of time. There’s no time to plan anymore – there is just a need for action. While we still need budgets to manage and control, they’ll have to be constantly adjusted to deal with new realities. In this context, volatility is the new normal : the concept of risk management, for example, is transitioning quickly to one of risk containment.”
  • Resistance to Change Retires.  “The coming generation of senior management aggressively pursues and implements new ideas. While the first is reluctant to embrace new business models, the next steamrollers them. Expect velocity!
  • Careers End. “Your paycheck will come from: the global, itinerant, part-time, skills-for-hire economy.”
  • Knowledge & Skills Banks.  “The capital of the 21st century isn’t financial : it’s experiential knowledge that is extremely scarce and specialized.”
  • Interactivity Redefines.  “Every industry will soon be transformed by the forthcoming era of “pervasive connectivity.”  Essentially, every device and thing around us is about to become plugged in — leading us to an era of interactivity and connectivity that is mind-boggling in scope.”

Comments 1 Comment »

Hilarious …

Check this out : http://www.thewebsiteisdown.com/salesguy.html

Comments No Comments »

I never thought to live this day. I have Vista for over an year now and I have never seen the dreaded blue screen on it. I thought it was a thing of the past, an pre-Vista feature :) . Still it happened. I tried running the Windows version of the TCPDump and the moment packets started flying through the network pipeline I was presented with the blue screen. Still this happened once in 1.3 years so I can say it’s a pretty good record so far.

Vista is the most stable Windows version I worked with and even though it’s a resource hog, on a high end machine it moves like it should.

Cheers.

Comments No Comments »

Hi there,

I just read a small article on slashdot.org about Intel being on the verge to release 80 and 120Gb Flash drives (solid state drives). Beside this being a quite astonishing news, because we use to think Intel is making only processors and chipsets, one gas got me thinkinh of the current state of computing within the PC area.

I got now a rig with 4Gb Ram, and a SATA2 WD400Gb hardrive and still I don’t feel like my computer is flying or running extremly fast, although there are improvements. But this has a very solid reason – the harddrive. This is the slowest component in a system. The ram supports nowadays around 6400Mb/sec when using 800Mhz memory or 4267Mb/sec when using 533Mhz memory and the internal bus of a modern chipset can handle that easily; and dual core / quad core processor can process most available data on the bus. But all this hit a wall when communicating with the harddrive. Although the SATA2 interface can handle a theoretical 3000Mb/sec, and the best deliver around 2000Mb/sec, because of the physical constraints and how the drives are build, a typical read/write operation is around 1000Mb/sec and that is in ideal conditions.

So what can be done to improve this state of matters. You really have few options and all of them are expensive.

  • Buy a 10.000 rpm drive. This is a simple sollution, but an expensive one as a 32Gb drive has the same price tag as a 500Gb 7.200Rpm drive.
  • Get 2 smaller drives, let’s say 2x120Gb 7200rpm drives and put them in Raid 1 if your motherboard supports that. This can theoretically deliver around twice the bandwidth of a single drive both in writing and reading. This I think is the cheapest sollution at the moment because they can deliver more than a 10.000rpm drive in terms of bandwidth at a price twice as low.
  • Get a SCSI harddrive. Well I am no expert in this but I know you get more performance when using it right but yes, it’s expensive. You have to have SCSI harddrives and also a SCSI controller which are not over the top in pricing but it will set you back quite some.
  • Use solid state drives. Ugh, this is still a dream for the average user. SSD can deliver 0.1ms seek time and top models can sustain continuous 1000Mb/sec read operations while a normal mechanical drive has fluctuations of this value. Reading small files scattered around the disk is also faster that mechanical drives. Also there is small power consumption, better resistance to physical shocks, etc. Still there are downsides at the moment:
    • write operations are below the rate of a mechanical drive
    • price tag is simply prohibitive; a good SSD with 64Gb will set you back with 800-1000USD.
    • technology is still in it’s infancy. Many things can change and if manufacturers keep their promise, in two months you may realize your top of the line product is now rated middle segment.
  • In very specific scenario the HDD replacement may be an overkill because there are better suited sollutions. In my case, a web developer, I saw cases where I could increase productivity a lot even if I could manage to move 1Gb of data from HDD to a more faster storage device. For example in RAM. Yes, why not? A good development machine has 4Gb of Ram. Windows, even Vista stays below the 1.5Gb mark so you have 2.5Gb of Ram that can be put to good use. So you can emulate a partition in Ram. There are tools for that and Microsoft even delivers a free one. Just move your projects there and set the database tempdb to be stored on that partition and voila, you have them on a 300 times faster drive.

So, there is a problem and there are sollutions. The choice depends really on the person, scenario and budget. At this point I would recoment 2 drives in Raid1 if you need extra performance but that’s just my pick, you have to find yours.

If you have better ideas, let us know …

Update

I just found a news on TomsHardware (here) about OCZ anouncing a SSD with SATA2 capable of sustained 120Mbps reads and 100Mbps writes which is almost twice as fast as the old SSD generation and it’s available already in the UK with prices starting around 700USD for the 32Gb model and 1300USD for the 64Gb model.

Comments No Comments »