Monday, 21 December 2009

Islands and lagoones - office open plan rant

Time to rant/moan/"throw my toys out of the pram" regarding another perhaps insignificant matter:

open plan

Open plan offices, I don't like them.

Unfortunetly it is now the norm in almost all the offices I work or visit. It is meant to enhance team work, increase communication, lowering barriers etc. And while the idea sounds good, I find it very tedious and believe it is counter productive.

But I know a solution; small open plan rooms laid out in a lagoon style. More detail further down.



For a knowledge worker, a developer, normal open plan offices are very intrusive and limits the ability to work effectively. For managers, sales and administration staff whom require a lot of communication and less concentration I can certainly believe it is a benefit, but not for people whom need to concentrate.


Placing people in rows of desks facing each other is much an extension to the American cubicle office spaces. It is like an office factory. The current trend of islands, whilst better, especially if two backs against a wall,
islands
but still leaves two or more in the wind swept corridor seats. But they still suffer from all the issues I detail below.

An even more amusing contradiction is when the knowledge staff are in an open plan office but the administration are in separate offices. It should really be the opposite, in terms of whom need to be isolated. True they may have confidential work, but that is what quiet rooms are for.


Main issues

  1. open-plan-bad-health
    An important issue should be that open plan office is bad for your health.

  2. The noise is however my main problem. Both audible and visual noise.

    • People talking about items which does not interests me but still disturbs me and breaks my concentration. Or worse talks about something interesting! Especially if you are as nosy as I am.

    • People walking by especially if you have a door / virtual corridor view point. Again being a bit nosy, my head pops up and down like a bobble head doll every time someone walks in, and since about 30 people sits in this section + meeting rooms, that is quite often.

  3. Low barrier to disturb.
    hi, just wondering...

    Nothing as annoying (ok a bit strong..) as when someone walks up to ask a question, when you are in the zone, in deep concentration, got a number of values, logic flows and algorithms in your head. Especially if it just a status update (not very agile), or a lazy question.

    Emails and IMs you can schedule a time to reply to when you are not in the middle of something. Phone calls, whilst annoying, can be rejected, But people standing over you can not be ignored. (Well you can try but that is not very nice)

  4. Paranoia.
    Another discomfort I have with open plan is the paranoia of people seeing your screen. You have to look busy, especially when I work as a consultant/contractor. It is another side of facetime, perhaps Screentime.

    Windows / websites that does not look like you are hard into coding right that minute might reflect bad upon you. So whether you are looking for solutions via google groups or downloading updates to applications but the vendor's website is too colourfull, it might reflect bad upon you even if it is important work. You hope most people realise this is normal work and even when you stray and look at bbc news, they would see it as normal.

    Unfortunetly many people do not perceive it this way, at least not subcontiously, so often you feel the need to cover your actual work with pretend work, especially for people higher up whom do not know your day-to-day work.

    Okay, after a while, (almost immidetely with me), I no longer care too much what others think I am doing, and run whatever applications and/or look at whatever websites I feel I need to. But it does still make me feel a bit paranoid, and still make me look over my shoulder, thus disturbing myself...


When disturbed, audible, visually or physically, it breaks your concentration and refering to the Peopleware book (wiki) it can take up to 20 mins to get back to that point. If this happens enough times during a day, that day is practically wasted.



Minor counter actions

  1. Head phones / headset

    • Music if loud enough kills audible noise.

      Which I use alot. Not sure what doctor would think about the damage to my ears. And wonder what Health & Safety would think about this near requirement for developers?

      It also scares the living daylights out of me when someone creeps up and taps me on the shoulder...

    • Headphones on but not on.

      A great trick to discourage unimportant interuptions is wearing head phones but without any music.

  2. Big, tall monitors, or just plain seperation screens to hide visible noise

    Again, a bit cubicle, but effective.

  3. Physical barriers

    Such as boxes, plants, narrow gaps to cupboards etc. Making it more difficult for people to actually come up to your desk, also discourages pointless interuptions.


All a bit anti-social, but with various effectivness they may help.

Bit these counter actions only paint over the main problems. The main issues are too many people in the room and no privacy.


The real solution


So my solution using the island nameing standard is: Lagoons.

Simple take a group of desks in an island and move their desks backwards to each corner or wall. Combine this with reducing the people in the room to 3-6 people whom work together.

What does this solve?:
  1. Audible noise:
    Only from the others in room can now be heard. No bable from people in other departments or teams which you could not care less about.
  2. Visual noise:
    Depends a bit on the layout of corridors etc, but mainly only the people in your little room will create visible noise.
  3. Physical disturbance:
    It would take more for people to walk into separate office rooms for minor issues that they could just as well emailed.
  4. Paranoia:
    You can work away, no one is looking over your should and virtually micro managing your every click.



Conditions of the room:

  1. They are all similar people and roles:
    So they will get on better, act similarly etc.

  2. Know how each other work and respect it.

  3. Reduce mobile phone use:
    Use quiet rooms when neccessary.

  4. One person is not frequently visited more than everyone else.

  5. Desks have space behind/ spare chairs for people to move around to encourage team work and pair programming.


defensive office

An amusing look at the defensive office space

Other office solutions:

  1. Separate individual offices.
    Would be nice, but might entice cabin fever and tangent development with little communication. And probably quite costly.

  2. Two per office.
    Can work, but people really have to get on very well. Also might feel need to socially interact more than normal, thus actually cause more interuptions.

  3. Home office.
    Really dependant on how the team communicates. Can work very well, if combined with excellent communications, and especially if time is split between a lagoon office and home.



Risks:

  1. Inter-room cooperation.
    The main issue this can cause is Us & Them situations between rooms.

    Possible solutions:
    1. Larger comfortable common coffee rooms. (with more than coffee available...)
      By combining this with actualy encouraging breaks this will stimulate interactions and break down barriers.
      rubber duck

      It can actually assist in problem solving by simulating rubber duck ([2], book) chat.
    2. The walls between does not need to be visually block each rooms.
      They can be glass at the top etc especially towards corridors etc. While still protecting against visual noise and paranoia this can hide the feeling of physical separations.





In the end for me personally, I need to be comfortable to get in the zone and be 10x more productive than in a busy noisy environment. And while everyone are different, I believe this applies to a large if not majority of developers and probably other knowledge workers.

Setting Spotify proxy settings when logging in

My problem:

* Installed Spotify for the first time on work machine.
* Work has very restrictive default proxy, which bans Spotify.

Thankfully being a developer in IT we know of a few more leniant alternative proxies....

Further problem:

* When launching spotify you need to log in with no option of defining the proxy to be used.
* And the error message just say unable to log in.


Solution:

* Unplug the the network cable

This prompts an error message with allow you to change the proxy settings.
Remember to plug in your cable again!

Tuesday, 8 December 2009

Deny mercurial, git, subverion folders in web sites

I maintain my websites mostly with a source control of some type (Subversion or Mercurial), but the folders with the SCM data should not be displayed on the actual web site.

Here is quick way to disable access to SCM folders in Apache by Ryan on Palaminum.net:

paluminum.net/blog/deny-scm-directories-with-apache

Saturday, 17 October 2009

Make or transfer ringtones to IPhone

I have a few ringtones Ive been using for years, across many phones. And I am now very tuned into them.

It was therefor quite annoying to find out that IPhone does not allow you to simply transfer them directly to it from my Nokia N95.

A bit of googling I found out that Apple deliberately bars this.
A bit more of googling I found out how to circumvent this restrictions.

Basically I followed this:

and this


And you do not have to jailbrake your phone, nor pay for software. The software used is simply a free well established audio sampling program.

Here is a breakdown:

  1. Transfer ringtone to PC (a windows box this time) from old phone. By bluetooth, email, Nokia's filebrowser etc (I located them via the phones file browser and emailed them as my desktop dont have the cable nor bluetooth)
  2. Install Audacity v 1.3+
  3. Install Lame for Audacity
  4. Install FFMPeg for Audacity
  5. Launch Audacity and locate audio file
  6. (You can copy into new file, edit etc if you want, but dont overwrite your original ringtone/song)
  7. Go to File/Export
  8. Enter details if desired, and choose m4a(ffmpeg)as export file type.
  9. Exit Audacity and locate new file in windows explorer
  10. Rename extension from m4a to m4r
  11. Open ITunes, and drag file from explorer into your library
  12. Sync and voila!

Friday, 9 October 2009

Twittering Blog

I used to write blog entries more often, whenever I had something on my mind that I wanted to rant about. Although prevously never a frequent blogger , lately I have blogged less and less.

Why? Twitter.

Before I would write pages and pages of mostly repeating rants. Now I restrict it to one twitter tweet (or two). And quite frequently...

But my long rants are now gone, or very rare. Maybe that is a good idea.



So what if any are the pros and cons of this "evolution":


Pros:
* My blog is not filled with rants.
* I twitter a lot.
* My rants are to the point, not filled with reiterated jibberish.
* My grievances are shared with more people.


Cons:
* I twitter too much?
* I rant more often.
* My blog is never updated.
* My twitter rants have no detail, or reflection.
* The threshold to rant is lower, and often rant needlessly, before I can rethink and research my issue.


And I presume this has happened for other people as well.

Funny, since the people behind [1] [2] blogger are some of the founders of twitter. Killing their own lovechild?

Wednesday, 2 September 2009

Wrong pub


Wrong pub
Originally uploaded by flurdy

Wednesday, 26 August 2009

Tuesday, 21 July 2009

New spam/scam

Got this in the mailbox:
-----------------------
from judith
sender-time Sent at 12:55 (GMT+08:00). Current time there: 3:26 AM. ✆
to info
date Tue, Jul 21, 2009 at 12:55
subject About " anyview" intellectual property rights ( TO CEO & Principal )


Dear CEO & Principal ,

We are a domain name registration and dispute organization in Asia, which mainly deal with the global companies' domain name registration and internet Intellectual property right protection. Currently, we have a pretty important issue needing to confirm with your company.

On July 20, 2009, we received an application formally. One company named " Odnny Holdings Ltd " wanted to applied for the Internet Keyword "anyview " and some domain names through our body.

Now we are handling with the registration of these domain names and find that the keyword of these names is identical with your company's. So we have to confirm with you at two points:
1. If your company consign Odnny company to register these names, we will send application form to them and help them finish the registration at once.
2. If your company have nothing to do with Odnny company, they maybe have other purposes to register these names.

We haven't finished the registration of Odnny company yet, and we have postponed this application of this company temporarily already. In order to deal with this issue better, please contact us by telephone or email as soon as possible.

Waiting for your reply ASAP.

Judith
Auditing Department
________________________________________________________________________________________________________________________

Tel: +852-2297-9279
Fax: +852-2297-9209
Email:judith@eworlddnr.hk
Email:judith@eworld.hk
Website: http://www.eworlddnr.hk
judith
2009-07-21

-----------------------


Though about it for a second, seemed a quite odd,
then a quick google to confirm it is a scam.

If you receive something similar, ignore it. Or more fun string them along, but be careful.

Wednesday, 17 June 2009

is this me

My 1st Simpson avatar:
Temporarily removed


OR this it?

Friday, 15 May 2009

My ideal work hours / location, scoring future employers

Building on my Coding Happy Place blog entry (a slight rant, but so is most of my blog), I been thinking of defining my prefered work location and hours.

The obvious answer by most people is on a beach, with half an hour's actual work each month (to pick up a pay cheque). :) However I am thinking of real work, where my output actually benefits the company. And I like my job. :) I do after all get paid to do my hobby.

Note this may only be relevant to me as a Software Engineer, working either as a developer or architect.


Coding Happy Place

I try to achieve, as mentioned in the above mention blog entry, a Coding Happy Place, where the location and environment are laid out in ways for me to concentrate on my tasks without interuption.

I achieve this in 3 locations:
* at home, when no-one else is at home.
* at work in the late afternoon/evening, when office is more empty.
* sometimes at work in normal hours, if left alone in a sheltered location. (But this is rare)


The business need you in the office

However you can not hide away from the company. They need you to join in with the others, share knowledge, ask questions about others work, proper rubberducking etc. And mostly to particiapte in meetings, let the flow of information go up and down in the organisation, and sideways between team mates and similar departments. Join in on preparing bids, customer relations etc.

With using Scrum and similar however the need for being asked for status and similar interuptions / communication is much less, and with proper use of communications channels, information shareing is not restricted to physical locations.




So what are my prefered work location and hours?

I think it will have to be balanced and flexible. Mutual respect between employer, employee and other employees. To achive a good and happy work culture while maintaing an efficient company and work progress.

In brief: I would like to work some mornings from home, most afternoons in the office. Mix in a at least 2 day full days in the office every week. And the option of taking a day working from home most weeks, or at any other time without it being an issue.


Mornings at home

I am not a morning person. In the office my efficiency in the morning is neglible compared to the sweat shop output that can happen in the late afternoon. So with my experience of this from a previous job where this worked well is every morning to log on from home to check my email, task statuses etc. (At the same time going through my morning ritual of digg.com and slashdot over breakfast is also nice ).

This is beneficial, as I would be up to date of any urgencies before commuting to work. If something needs fixing, or someone needs to be phoned urgently I can do it immidietly from home. If someone whom started earlier that day is waiting for information from me I can pass this on quicker.

If nothing of enough urgency is requiring for me to be in the office the option to get a couple of hours of Coding Happy Place at home after morning ritual would be very benefial and appreciated. To get a few hours of good work progression before the possible delays of office interuptions is good for self esteem, and project velocity.

Work need to recognise these morning hours at home as work hours, but some lieway can also be given by me when there were non work interuptions etc.


Afternoons in the office

As mention higher up, the company need you/me in the office. And I need to be in the office, for personal social needs, but also the benefit of finding information out about my tasks, and to assist other's tasks. Also general meetings, estimations, bids are needed by others in the company, often quickly. Proper rubberducking over tasks is essential to optimise development directions.

Not mention Scrum stand up meetings are meant to be in person. They do not however have to be in the morning! ALso web cam can assist distributed teams.

There is a barrier between casual physical chat, and sending email, IMs etc. Less the better people know each other but still a barrier. And I do not want to suffer from cabin fever, and do enjoy office banter.

Knowing me the afternoons, often turn into evenings as well. As once I am concentrated on a task, I do not like to go home before it is finished. (May be why I was so addicted to Championship Manager as a student, and still play Civilization today. Just one more turn/match....) I know if I leave it till the next day, getting into the facts and context of the tasks, not at least into concentration mode, will take a lot of time.

Being in the office, you can pick up busines gossip etc, and then be able to have input into this / affect business directions more than when isolated at home.


Full days in the office

To avoid being a hermit, I would still probably like to have full days in the office every week, to be a team player, show the insignificant face time to management that like that, and to be helpfull to others. To be available for monster day long meetings, specially at sprints starts etc.

But this is on a condition that the office space I have is actually of any use. Cubicle or desks in a public through corridor is dreadful. Also having people staring at your screen paranoia is less than ideal as well. Being the door opener / information booth for visitors is annoying. Being in the office so that you are accessible does not mean you should be interupted constantly, be embarresed by your headset, what is on your screen etc. I must be able to achieve some type of Coding Happy Place even in the office in normal office hours.


All day at the home office

I do like working from home. Naturally it is more comfortable. The availability of your own kitchen for snacks, and your own fridge of drinks, not to mention healthier lunches are nice. I can have the windows / patio doors open for fresh air. Also my home office space is usually much more comfortable than the restrictive cubicle of most offices.

But also my home machines are usually set up correctly (Not windows...), multiple machines are not a problem etc. And the most benefit of work at home, is that no-one else is there, so I can concentrate.

I do feel I am more likely to achieve my Coding Happy Place at home, and produce more efficient work.

Ps. The family must respect when family members work at home, chores can not be expected to be done, you are after all working. (However I have found the odd 10 minuttes restocking the dish washer or washing machine as a good break to reset your thinking if stuck on a problem)


Hours

I usually balance the hours I put in at home with how concentrated I was. Did I read too many news sites, or do chores that day, then I work a few extra hours. Simple as that. The happiness of working at home, more than makes up for working longer hours. In the office this compensation for non efficient work is less likely.

The option of going home early, starting late when needed, without it being an issue is quite essential. Taking 1 hour lunch should never be an issue. When required the freedom to pop out for 2 hours if needed is also beneficial, even if that should not happen too often. The trust that I will respect any work urgencies / priorities with flexible hours must be a given. That I will not take the piss, but will always balance out at more than the required 40hours in a week anyway.



Communication

For any company to work, people must communicate. To be able to work flexible locations and hours as I would like to, the company and its employees must have good agreed lines of communication. Employees must respect other employees communication preference's and they in turn must respect the other ones as well, especially business needs. (If you as a sales person / manager live by the phone, don't hassle the IT guys by phone all the time, most don't like it. But as an IT guy respect that other people prefer phones over email, IM, twitter, wiki comments etc....)

You must, therefor I am, always be contactable. Especially in office hours. If I work from home, people should not hessitate to call me. True, even in the office I prefer people to email/IM me. That way I am not inturupted if I am in deep concentration on something. But there must not be a physical barrier.

Using issue trackers, such as Jira, people should be able to at all time find out statues. Calendar's for locations and availability etc. But the employees, thus I, must keep these up to date, and the other's must know how to use them properly. This will cut down unneccessary interuptions or misunderstandings.

Being available all the time on IMs, webcam within the team, without hessitation, will make the physical distance smaller, increase knowledge share and banter. I believe in general that whether I am home or in the office should not be noticable to most people. I will always be online, respond immidietly to IMs etc.


Tools

For this to work, the tools available in the office or at home must not be distinguishable. I must be able to connect bia VPN and SSH, and have the same access and tools as if I am in the office. Too many times this has not been the case. Just email access is useless. Citrix is for sales people, not developers. Full SSH acccess is needed.

Limiting IM, is one the most stupid things some companies do. The ability to share code, ask quick questions efortlessly is golddust. Restrictive firewalls is also counter productive. True, some sites have no obvious benefits, but sometimes the information you need is on those sites. Very restrictive ones, where you can not even check email, or use google groups etc, is just staffing suicide.

In the office and at home, the network speed must be a bottleneck. Machine hardware not old dogs, but modern, able to use several virtual instances. Preferable ability to use racked server units for computing distribution etc.

Proper multiple screens in the office must also pay it self quickly in more productive hours than the cost of the hardware.



Flexible

In the end I am looking for flexibility and respect. That my work is recognised wherever I am physically. That if I need to take a few days at home or at the cabin it is not an issue. That they respect me that I will still contribute, if not even more, and that I will respect their needs as well.

Basically that the company have little to no issue with where and when I work. But that they can trust me and know I will most of the time be in the office, easily contactable at any time and will always aim to be an asset to everyone else in the company.


Future employers

How does this compare to me now and to future potential employers?

I am not looking to change my employer, so I think I will still be here for years to come. As I am currently a consultant, it is difficult to achieve this free location/hours, but some assignments are better than others.

However at some point statistically I will change job. And I will use this blog entry / idea to compare potential future employees, as I have previously, but perhaps with less emphasis. How close to this can they offer me. The more the better. None, then perhaps less likely.

Will this deter employers? Hopefully not. Companies should see it only as a benefit and insight, that I work really well in certain contitions. Some companies however will insist on cloning employees into A4 routines, and I (and they) may not be suitable. However most IT companies/departments even within the most old fashioned enterprises see the benefits of a more flexible working environment and are to various degrees more relaxed than the standard company procedures.

In the end I work well within the office and normal hours. It is just I work REALLY well when allowed to achieve a Coding Happy Place by having flexible locations and hours.

Think I have been repeating my previous rant a bit. Again..

Thursday, 7 May 2009

Chelsea v Barcelona referee decisions fair? And English press normal referee hounding

Chelsea v barcelona match was funny last night. So hot tempered, so many critical referee decisions. And inevitably one loosing team in fury at the referee, and the following press backlash afterwards.

Had Barcelona not scored the 93rd minute goal, they and the spanish/catalan press would undoubtable been slaughtering the referee instead. With that many match changing events, the sending off, the 4-5 penalty claims, the referee was in a lose-lose situation. The loosing team would always cry foul.

Viewing each situation individually and in isolation on their own, I can pretty much understand why the referee made his decisions. None were clear cut, they were all grey zone of interpretation and human nature. So basically I could have understood a decision the other way as well in most of the events. It is just a shame there were so many of them. If only one of the events happened I don't think we would have this aftermath.

Chelsea are throwing their toys out of the pram, because most went against them. That they did, does not mean the referee was wrong, it may indicate he was strong enough not to be influenced by previous events in the match? He certainly did not flinch when Chelsea players went berserk, a weaker referee would have been terrified.



So what about the decisions?:

First of all the sending off of Abidal. A decision that should by the way kill all speculation of conspiracy theory from the Chelski fans. Did he touch Anelka so he fell? Yes. Did he mean to? Probably not. Was he the last man? Think so. So even if it was unintentional, even it was only a slight flick on Anelka's trailing leg, it was still a foul. And as it looked like he was the last man, and Anelka was about to go clean on through, technically he should get the red card. Most ref's here do chicken out and only give a yellow, which most people agree is the morally correct thing, however acording to the book red is correct. Chelsea would have cried foul if not, and UEFA would have not been pleased with Øvrebø if had not shown the red card, as referees are not allowed to use common sense.

For all the potential fouls on Chelsea players, I think they were all pretty clear and correct decision by the referee. Toure's tacle on Drogba in the box was clean, the wrestling match outside the box was 50-50 each way. The pull down of Malouda clearly started outside the box, even though the significant part of the foul was later inside, which is irrelevant. But even if it was 5cm inside, the referee does not have a ruler with him, so people can't expect a match killing decision like that. I think 90% of on the boxline fouls will be free-kicks.

Most other times was just the normal diving by Drogba, which makes it difficult to referee as you are never sure when Drogba cries wolf.


As for the two handball incidents, they are not so clearcut. Both times by Pique and Eto'o their hands was not in motion, they had no time to remove their arm, but neither was in a "natural" position. Was it accidental ball to hand? I certainly would have not disagreed had they been penalties, but I would thought it be very unfair. But perhaps technically they should have been? But again they are a toss up, greyzones either way, and as expected the loosing teams get upset.


But even if you had 3 penalty claims go against you, it does not mean the next dubious must go your way, they should all be assesed individually!



So I think the referee got it right. Had one of the handballs gone Chelsea's way I would have not disagreed, but like the sending off, I would have thought it was very harsh, but I could understand why. So perhaps Chelsea should have had at least one penalty.



BUT, what is a disgrace is Chelsea and their players and staff and the English Press.

How they let their players behave like enraged animals like Ballack and Drogba is a real disgrace, and for not condemming it afterwards. I must credit John Terry for restraining himself and trying to restrains his players on the pitch, which is unusual of him, however his undignified and bullying comments in the press afterwards highlights that he still has a lot to learn.

Guus Hiddink, a great manager, may still have his own adranaline pumping afterwards, but he even said himself that he is not biased, but think they should have had 3 penalties. Come on! Only the handballs were an actual contention, and then only in a biased way could you say they must have be given. And the unforgivable is his defense of his players behaviour. Shameful.

The Chelsea players' and manager's belittling and bullying of the referee afterwards shows why most people dislike Chelsea.


Chelsea did not deserve it

Really when in a Champions League semi-final you have a one man advantage for a significant part of the match, if you do not score a goal in normal play, nevermind penalties, and even let a goal in, you do are not good enough to be in the Final!

And they wanted to win by dodgy handball penalties instead? That is not football, they were not intentional, Chelsea should try to play and win by playing football!




Another disgrace is the English press.

How they hound all referee's in every big match they loose. Have they not forgotten they stoked the fire so much that Anders Frisk had to retire? How they bullyed and harrased every referee when England gets knocked out of every World Cup or Euros. Having lived in England for 15 years it is always amusing but also disturbing how the press put all blame on the referee and not their own teams inadequasies.


It is such a shame, as Øvrebø is actual a really good referee. (Which I must admit even if he wrongly sent of one my teams players last season.) He is experienced in CL with 20+ matches, World Cup experience, and unflinchingly strong, which is probably why UEFA picked him. Unfortunetly the English press, the bad loosers at Chelsea, and UEFA weakness will probably mean it will be awhile before he gets a big game again.


So in football, for big matches with a lot at stake, how you feel about the referee, FIFA/EUFA or organisers, depends entirely on which team you supported and whom won. but even full of adrenaline and emotions there are limits to acceptable behaviour.

Friday, 1 May 2009

Is firefox secure enough? Have you considered the add-ons?

Firstly: I am a Firefox user. I have been involved in the Mozilla community nearly since its early inception. (not greatly but slightly). So I am using Firefox nearly exclusively on each machine and OS.

Yes Opera, Google Chrome, Apple Safari are today very good as well, and even Internet Explorer have caught up. But I am happy to keep using Firefox.


But how secure is Firefox?


No, there is no need to lecture me the benefits of Open-Souce versus properietary. The huge number of users and developers involved with Firefox make the core browser very secure. Critical security bugs are frequently found, but with being open-source these are squashed swiftly. So the core browser is very secure in my mind.


But Firefox is shopped around as a very powerful browser due to its adaptability ability via extensions/add-ons [1]. They certainly make Firefox easy to use, and fit well with the varied usage that people require. The majority may not use add-ons, as they are happy with just a simple browser. However still a large number of people use one or two and many use several add-ons. Add-ons is the perhaps the main reason I am using Firefox over other browsers, as they make my day so much easier and pleasant.


But how secure are these add-ons?


The core browser is trusted due to its share number of peer reviewers and contributors, so trust it to be secure. But each tiny add-ons have few developers, and not too many reviews. Not sure how "open-source" their actual deployed code is either?

So do these add-ons basically make the Firefox browser brittle?

I think so, and other people are trying to warn us about the risks.


How big are these risks? What may have spared the add-ons is that they are so many and the install base is so varied, that targeting a specific add-on may not be worth it. (Similar to why Firefox itself was not targeted until more recently.) However this is a bit naïve, and some add-ons are now installed by hundreds of thousands, if not more.


So what can we or Mozilla do?


Simple solution is to not install any add-ons. Certainly safe. However that is being paranoid, and does not progress the world.

What I think is needed are ways to harden the code and increase trust in specific add-ons. Closed source extensions such as Flash, Silverlight and Java is out of scope (but Gnash, Moonlight and Open-JDK may not be?)

How we achieve this I don't know the answer to, but I hope there will be more and open discussions about it. Ways of increasing peer-reviews, ways of making it clearer to the add-ons website users how many and whom trust the relevant add-on, by some voting mechanism perhaps (and the opposite). Sharing code bases to minimise risk and increase peer reviews must be advantageous. Ways of Mozilla to scan code for common risks is perhaps already done? If not should definetly be implemented.


As it stand I will still use add-ons and a loads of them really. However I wish there was an easy status on the add-ons website that indicated how risky the add-on is? A simple chrome style change, may be completelt different risk than a powerfull GreaseMonkey script with a variety of code elements.

Wednesday, 22 April 2009

I can recommend the HP W2448hc24" screen

Got the HP w2448hc 24" lcd screen a few months ago. And I am very happy with it. It has a built in webcam, speakers, usb ports and microphone.

I was warned by reviews of the glossy screen. But I have not noticed it at all! The screen is very clear and colourful, with no reflection. Then again I am not using it by a window or in a bright office, just in my home office.

The webcam works well in Skype. Clear and bright. The microphone is a bit quiet, but useable. Since the webcam is hidden in screen frame it does not stick out so lookwise it is really good.

The speakers are fine, but I think I'll eventually re-plugin the old speakers, as the screen speakers is not that loud and no bass. And also when the screen goes into power save the speakers go off as well, which is not handy if listening to radio or expecting Skype calls. But 3 months have passed and still using the screen speakers so they must be fine.

The screen is supplied with VGA and HDMI cables, but no DVI cable although it does have a DVI port. I am using the VGA for now, as my card does not have HDMI. But if I come across a spare DVI at work I might use it, as they are too expensive to buy outright.

Even with minor faults I can highly recommend it. Basically as a screen it is very good. And it looks good too, which was important as it is in a desk corner in our lounge.

Tuesday, 21 April 2009

Coding Happy Place

Quite an interesting article on where a developer/programmer is most productive. (And the relevant slashdot discussion)

It is something I think is very relevant for the productivity and happiness of a development team, but is very difficult for companies and managers to control and allow. People need to communicate, share ideas, ask questions, freely and easily, but at the same time be isolated and respected to actually concentrate on their work.

Companies generally prefer and mostly demand people to be at their office desk during the same work hours as everyone else. And that they do their work effectively there, while being able to monitor and contact them at any time in person. Developers (or perhaps rather me) prefer the opposite. We would like to be left alone, unmonitored, trusted to deliver quality work by concentrating on the tasks in hand and at different times.

One issue is of course that everyone is different, some people are most effective and happy in noisy, open environments with frequent dynamic exchanges with numerous people, other are useless in such places and brilliant when left on their own. Most people are somewhere in between and at different times.



My experience, with different hours and locations

I have worked in a team once where one member worked from 6:00 till 14:00, while another worked from 14:00 till 22:00 and this was in the same office not different time zones. That only worked as they did not have much overlapping work and thus no direct interaction was needed very often. If that was needed, clear lines and rules of communication must be agreed and accept calls and work outside your normal hours.

My benefits

In that company I worked from about 10:00 til 18:00, of which the first few hours was from home, then the afternoon in the office (just round the corner). That worked very well for me. I could concentrate and produce code in the morning, be available in the office for meetings and discussions (gossip), and when people was leaving the office for the day I could concentrate on work again for a few hours. It was very gratefying to always be able to deliver something every day as I had those few hours in the morning, before getting caught up in the possible interuptions of the office later on.

Being able to work from home is difficult for companies as they must trust you to deliver and to be an asset for others while not being in the office. I think my own contribution was good. I could concentrate and deliver at home, while being always online with IMs, and usually had 2-3 windows open all the time for continous discussions with other developers, while not letting it interupt whatever I was concentrating on, which a verbal discussion in the office would have interupted.

Problems

However other colleagues it may not have worked so well for. One delivered excellent code, however was very hard to get hold of, so it delayed mine and other people's work all the time. (So much that the company implemented in office core hours between 12:00-17:00, probably mostly so managers could get status updates.). However that could have been avoided if good practices and respect for each others meant that people were nearly always available and quick to respond to email, IMs, video chat and telephone calls. Another colleague felt managers did not appreciate or trust that he concentrated on his work, so he made a point of working in the office and placed his desk right in front a manager with his screen in full view, so they could see he was working at all times! :)



Scrum, agile enough?

So if you have or need this flexibility how do you then integrate Scrum and agile process in to this free multi-location, any-time setup? Scrum implies that teams physically sit very close together, share and discuss verbally, have in person stand up meetings, use non electronic task boards.

Simple answer is you don't.

But actually you can. But probably not at the start. Once people are familiar with the process and each other and trust has established, you can start to use electronic tools such as JIRA-GreenHopper for the task board, develop processes for IM/webcam communications, agree regular but flexible times when everyone is in the office, etc.

Even if not working from home you can achieve Coding Happy Place with headphones, offices with doors, just some separation from other people and developers without the humiliation of cubicles (basically just being really left alone) etc. One of Scrum's ideas is to shield developers from interuptions. And that benefits concentration.



My Coding Happy Place

So where I am most productive, and also happy?

As a consultant on contracts I now have to show facetime at clients, and as a 3rd party, are perhaps not trusted to work from home (ie bill unseen). So I basically can never work from home, and I think my productivity suffers. Being professional I still produce well and accept these limitations, but at a cost.

I can achieve coding efficency at work, usually after 16:00 when the offices is emptying and I can relax and concentrate. (And usually get engrossed/stuck on some task, and don't get home til 21:00). Also when I have had a nice desk in corner (facing outwards), quite inaccessible for others and not overlooked (not feeling paranoid about searching newsgroups for answers), I have managed a Coding Happy Place and churned out lots of work, as Im comfortable and people do not interupt me directly or indirectly so easily either. (With the right tools: Tiny screens, forced to use Windows, restrictive network, etc over time costs much more in lost productive hours than initially supplying better hardware).

I did like the arrangement I had at that previous job (however as mentioned it did not work for everyone). So somewhere you are trusted to work from home when required, and it is not an issue would be great for me and really for my productivity.

Recently when I was left to myself at the cabin, I did more work on a pet project in two days than I had for 6 months. Simple because I was left alone. So that is my Coding Happy Place, being left alone. Whether it is at home (mornings only, not evenings when other people is there) or in a corner desk at the office. I would still spend most time in the office, for project discussion and velocity but also for the social banter and gossip!


Can companies compromise?

I hope they can, but big companies can afford to and unfortunetly often let go of creative developers in favour for A4 ones, but also big companies can afford to adapt to more flexible arrangements as well. Can small to medium as well? I think so.

Basically I think with trust comes respect for others. So they accomodate your flexibile location and hours, while you must respect other's needs as well. With good lines of communication this can so easily be overcome. Not just phones, but email, IM, webcam, good use of task managers etc.

They should not think they are pandering to developers, nor should they accept missuse. But see benefits with flexibility and privacy comes concentration and very good productivity. Catering for Coding Happy Place is good for everyone concerned.

Wednesday, 1 April 2009

What I would like to do, if others are up for it...

(Not to be confused in a context of romantical entaglement, although...)

Been meaning to for awhile to write a little social networking application, UpTo (in want for a better name so far). But have had no spare time so far, but hope to at some point in the future.

The main idea is to arrange things to do. You do this by listing things you might want to do, perhaps by restricting time and date. This are general things over days, weeks, or always. E.g. I am always up for a beer on fridays, I don't mind playing football any day of the week after work. This is week I am keen for a concert, etc.

Then one of your friends thinks: "I think I want to play football on Sunday, who is up for it?". A quick check on upto.flurdy.com lists whom might be want to play. Integrate this with email, IM or SMS and hey pronto: you have a game of footy! Similar things can be done with nights out, trips etc.

Interface must be intuitive so that people easily can add what they would like to do, and also so that they do not need to often change this. Complicated or repetative tasks will kill any usage.

Also as with any social networking site, spreading/extending the friends circle is a key feature. No point telling only yourself what you would like to do.

The normal friends, friends of friends, and everyone networks will probably be used. But also the ability to choose a select subset of friends for certain events would be nice. E.g. Only Non work colleagues may know I am up for a beer during the workweek, or non of your female friends should know you really want to go to a Star Trek convention, or something similar.

Including an event scheduler would be handy, with the ability to organise and invite people to specific things you will be up to, E.g. that Oasis concert next week.

Time will tell if I get round to this project. Or, as usual find someone else has done the exact thing, but better. :)

License a plenty , here are my usuals

I try and make it clear that my work is usually under some form of license. This is to clarify for other people who might wonder what license they may use my work with, and to evangielise license to the unaware. And to make sure people don't abuse my work, claim it as their own etc.

As an open source believer, my licenses are mostly OS. This is also so most people can benefit from my work. Over time the prefered license(s) have changed, but right now my choice is clearer:

For 90% my development work, as in source code, binary etc, the license of choice is AGPL, as in Affero Gnu Public License version 3. Previously similar work was often licensed under plain GPL.

As AGPL is very open souce and quite restrictive for business use, I do offer alternative licenses as default for some utility work, or as an option if people contact me for AGPL work. The alternative is then either LGPL or even Apache License. Some previous work has been under MIT license.

My none code work, as in flickr photos, blogs etc are often under some type of Creative Commons license. Always with attribution(by), most of the time with share-alike(sa) and sometimes non-commercial(nc). But rarely with no-derivatives(nd), as my view is to share and modify is good.


In addition I often append an optional ethical license. This tend to reflect my expectations on how people recognise and reward my work in regards to how much it is important to the people using it and how much resources they have. I usually use my own respect license.


Ps. This is work I do as a private person, often via flurdy.com. Work I do in my real job, is (unfortunetly) mostly closed proprietary source code.

Friday, 6 March 2009

Don't like Scrum. But will not use anything else! Part 4

This is "Don't like Scrum. But will not use anything else! Part 4". But really it should be: Love "Scrum", but it is not perfect. Yet.

Right, I am now a Certified Scrum Master, so I should know more about the pros and cons of Scrum, and how to reduce some of the cons/risks.


Shorter sprints. Definitely something I have learned, so 2 or 3 weeks seems ideal. I have been involved in 4-5 weeks sprints, and they work, but not so well. Longer sprints have more scope, more risk, and can end up with several developers idle for many days at the end. Shorter sprints cuts this to perhaps max one to two days if any. It is also makes you pick only a few stories so they have more focus, instead of 5 stories which end up spanning many sprints due to impediments etc.

Each developer should pick only one task, and try to share tasks. Avoid bottlenecks and teams overdependent on one person.

Use electronic tools for task board, but have it showing clearly in stand up room, ie on projector or large screen.

Dont be a jobsworth police, but try and get the group interested to be on time for standups. And for people to say nearly only 3 sentences, no need to explain in detail what they did, so less pressure to have a "plan" ready and also much quicker.

Arrange discussions for later/afterwards, if anything pops up, do not solve them there.

Encourage another voluntary standup/chat in the afternoon if standup is in the morning or inverse. This to further encourage rubberduck chat and share knowledge and problems.


As for the Scrum Master certification, I did a two day Mike Cohn course here in Oslo. He is very good teacher/lecturer, as he knows the subject, have a well prepared agenda/curriculum, can answer all questions clearly and with authority. So I can recommended the course very much.

Friday, 27 February 2009

My band's next album


someone else is driving
Originally uploaded by flurdy




This could be my band's next album.

Except I don't sing nor can I play an instrument, therefore I do not play in a band...


But the "My band's next album" gimmick is cool. I got it from Henrik Tandberg on Facebook.

For this I used a photo by daliborlev: www.flickr.com/photos/mr_gonzales and a quote by David Letterman.


For your own album follow these guidelines:

---

1 - Go to "wikipedia." Hit “random”
or click en.wikipedia.org/wiki/Special:Random
The first random wikipedia article you get is the name of your band.

2 - Go to "Random quotations"
or click www.quotationspage.com/random.php3
The last four or five words of the very last quote of the page is the title of your first album.

3 - Go to flickr and click on “explore the last seven days”
or click www.flickr.com/explore/interesting/7days
Third picture, no matter what it is, will be your album cover.

4 - Use photoshop or similar to put it all together.

5 - Post it to Facebook with this text in the "caption" and TAG the friends you want to join in. (you can untag yourself if you don't want this photo up)


---

My, flurdy, changes to these rules are:

---

3 - Follow the 3rd step, but make sure the photo has a license which allow reproduction. I would suggest looking at flickr.com/creativecommons.

4 - Instead of photoshop, I se picnik.com. Its free and online, and with the firefox extension links directly from flickr.

5 - I posted mine back to flickr and now to my blog.

---

The picture by daliborlev was licensed under CC-by-sa-nc, while my normal flickr work is CC-by-sa, so I had to add nc to this album photo.

Wednesday, 18 February 2009

Don't like Scrum. But will not use anything else! Part 3

I like ranting I do.... :)

Now to my third instalment(1,2) on this subject, which will regurgitate a lot that has been said before.

As mentioned before I have major issues with the Scrum methodology. BUT it is also the only methodology I would use! (At the moment).

Scrum and XP, which are being advocated by developers as the new messiah. But I think developers fail to see it will have a derogatory affect on themselves.



First of all: Stress: The constant status demands every morning, all the time on notes or JIRA tasks etc. The constant planning of your day and defending every minute used. Mostly due to the stand-ups.

By iterative development, you minimise the stress at the end of a major release, but introduce others.

True, for business, this means more effective developers in the short run. For managers, it is a good way of keeping oversight of how things are proceeding, and a good whip to keep people in line.

But for developers, yes you are more effective, but eventually you are also getting very stressed. The need to perform at your maximum all day every day will wear and grind your psyche. If you had a bad day, where not much was actually done on a specific task, you have to defend that the next morning, or simply lie. You can not cover the slack by concentrating a bit more for the next few days.

For the perfect A4 cubical worker, ala German, Norwegian, Japanese (anyone else I can offend by stereotyping?), then this rigid life will work well, but for more creative, individualistic, "agile" worker this can cause friction.

(Not sure I've mentioned I don't like the standing up in "standups"...)

But again, I can not see how you can not have morning stand up meetings, as the benefits outweighs the eventual stressed programmers....



Second: Pair programming.

Unless you are the A4 type programmer without a personality, I can not think any self respecting programmer would welcome pair programming? It is intrusive, violates your personal space, stops any creativity, lack of trust and is just smelly.

The benefits of sharing of code knowledge, the idea bouncing while creating classes and methods are great. The banter if personalities match can be good. And also distracting?

The smirks as girlfriend/wife sends embarrasing emails/IMs that pop up in the previews...

The concentration of working on only one specific sub task can be good for velocity. But also sometimes you are stuck and switching context, briefly or for longer periods can also help enormously. But can you with someone sitting next to you? Or just drag that awful day further by staring at the screen?


But again, the benefits outweighs the violation of the individual. But I'd much prefer a more limited pairing, shorter periods, perhaps not always sharing desks, etc.


Also forgetting/ditching all knowledge learning from previous methodologies seems quite frivolous. RUP may be tedious and over extended, but many bits can assist and enhance your project. Don't just ditch everything , because you have converted religiously to something else, something "new" and "exciting".


But again. Scrum works well, brings a lot of benefits, and I recommend it!

Friday, 6 February 2009

Snow? Oh my god!

So England was and is again shut down due to snow. I don't get it.

I do however get people looking for an excuse to have the day off to go sledging!

The reason/excuse for the chaos, with people not going to work, buses not running, schools shut, etc, is that they are not used to snow. Bollox. Really, having lived 15 years in England, I know they get snow every year, and many times a year. Not meters of it, but a few inches. And every few years they sometimes get nearly a foot of snow.

Off course the amount depends on where you live. I lived in Manchester and we had snow frequently. Not loads and usually melted quickly, but the hills around was always snow capped winter time.

They should follow BBC's 10 ways to cope with snow.

With the amounts lost business hours, they could afford a few more snow plows and snow socks for the tires. It seems some places are less affected as they are prepared, parts of Scotland, hills in North England etc.


I did live a few years in the Peak District, an area with snow every year, and people are more used to snow than others. But even there people make basic mistakes.

I remember one time my dad and I was going to Manchester I think, and it had snowed. And people were sliding all over the place. When we came to the hill at Winnats Pass, police was out trying to slow people going uphill down! Insane. So we simple overtook everyone that was stuck and strewn across the hill and got up in no time. Wonder how many of the others actually made it up the hill... I do remember the angry looks and hand gestures from the other cars. :) Not our problem they can't drive.

Then again, not to be a hypacrite, there is snow chaos here in Norway on the day of the first significant snow fall usually in November. But the result is only people being delayed getting to work. The next day everything is back to normal as people have quickly swapped to winter tyres and snow plow and gritting people are on active duty.


Oh well, at least it is ammusing.

Monday, 5 January 2009

Love this T-Shirt!

I got one of my own t-shirts for christmas, and I love it!



Also got this hooded top which I now wear all the time.




You can find them at shirts.flurdy.com

Ubuntuing Dell work PCs and 3G

Now I have had two Dell laptop PCs from work recently, D610 and D820. Both worked flawlessly with Ubuntu and both work with my 3G USB key from Telenor, an Option iCon 255.


On my Dell D610, I installed Ubuntu 8.04 Hardy Heron. To get 3G working I installed all HSO script from PHARscape.


On my more recent Dell D820, I installed Ubuntu 8.10 Intrepid Ibex, which now comes with great 3G support. It does include the HSO driver in the kernel. And by installing the new zerocd and udev script from PHARscape, basically following his howto you can get it up and running.

However the HSO driver with Ubuntu 8.10 is an older version, and caused my PC to crash after awhile, so I installed the newer version from PHARscape, which works flawlessly.

The new Network Manager works great with the 3G USB dongle, however it needs to be plugged in on boot to pick it up. If you sometimes plug it in afterwards, it is wise to also install PHARscape's HSO Connect GUI as a backup.

Don't like Scrum. But will not use anything else! Part 2

Following on from my general rant about Scrum, Part 1, here is Part 2.


The main beef I have about Scrum, are
* the constant status updates at stand up meetings
* the use of non electronic tools
* inflexibility on tasks

These are elements that are easily changed and is probably mostly interpretation. My dislike for these can also reflect perhaps badly on me, if taken from a superficial view.

I don't like the morning stand ups. For several selfish reasons.
* I don't like mornings.
* I am not in early. (Especially now living in Norway where developers start work 4 hours earlier than in the UK even with only 1 hour time zone difference. My last job in Manchester, developers where not in till 11am. Here they start at 7am... )
* I don't like standing up.
* My memory is terrible.
* My plan for the day have not yet been thought of.
* I don't like standing up.
* I prefer to work from home in the morning, thus actually getting something done, instead of being a zombie at a meeting.
* I don't like mornings.
* I don't like the micro-management of it.
* It is a forced meeting.
* I don't like standing up.


It is not that I don't agree with status meetings and I can see standing up keeps meeting briefer.

Many of my work places, many of the companies' main issues have been solved in frequent 5min fag breaks (the English sigarette meaning of the word) even when no-ones smokes at the place. As a non-smoker I would always attend them, and discuss a bit rubberducking about things Im working on and stuck on. So informal meetings are very usefull.

Regarding standing versus sitting, I just hate standing. And not able to fully listen to anyone else's issues.

That it is just a quick run around of what you did yesterday, what you are going to do today and if any impediements, I just don't see the value for the developer. This should be clear in JIRA or any similar tool. Sure, it is a face-to-face status update for the management, so they can micro-manage everyone's day, but really mature developers should be trusted to deliver. That you can not discuss issues, devalues any development benefit from the meeting.

There are also some cultural issues to consider. Standing is meant to make it quicker, but Norwegians once a meeting is finished its timeslot will stand up and leave the room even if nothing has been resolved, or even when senior management or customers are present.


As a technologist and computer geek, the use in Scrum of non-technology such as post-it notes, sticking notes on boards, face-to-face meetings, is a sore point. Again I see the value, but it just goes against the grain of a technologiest.


Also the focussing on only the tasks on the board, post-its on your desks, and status updates on these every dawn is quite blinkered. True, it will keep people in check and some is usefull to make people consentrate on the tasks delegated.
But also have negative effects. Such as me, whom may help too many people, which is discouraged in Scrum as you should only focus on your own task.


And don't get me started on pair programming! That I should share my days with some other smelly developers odour is quite repugant. But again I see the value of writing code, solving problems together, sharing application knowledge. I just prefer frequent fag breaks and my private space! :)


BUT let me reiterate, I would only use Scrum!

Don't like Scrum. But will not use anything else! Part 1

As the title says, I don't like the Scrum (the project methadology). But I don't think I would use anything else!

It is like Churchill or Rooseveldt said something along the lines of: "Democracy is flawed, but nothing else works!". Which is also true. Democracy is the rule of the mob and pop culture, but all other governing styles leads to chaos, elitism or despotism.


I do like a lot of the ideas behind Scrum, the agile thinking is great, the XP ways do work. Everyone seems to jump on the Scrum bandwagon taking every element as gospel, and defending it religiously. But Scrum, has introduced many elements I don't like. I can see why, and what they can achive, but some I really detest.

Unfortunetly, all other project managent styles have more flaws, so I think "Scrum matured", or some better Agile methodalogies in the future is a better solution.


For Scrum and agile there are 3 sides to view from the pros and cons to its benefits.

* Management
* Developers
* Customers

It is mainly been developers who having been pushing Scrum as it will be better for customers, hence in the end for management as they are more profitable. However the bits I don't like is mostly where the benefits are purely for the management.


For management the pros are:
* Constants status updates
* Up to date status
* Future cost projectability
* Focused costs
* Low risk of wasted development


For customers the pros are:
* Ability to direct and change requirements
* Cost transparency
* Feature and status transparency
* Final release is as required


For developers the pros are:
* Low up front documentation
* Task sharing
* Modern and new, therefor interesting
* Management and customers are open to ideas
* Iterative development, of which one benefit is you dont have to solve everything immidietly


There are other pros, but they are not specific to Scrum, more that Scrum project are Agile and open to new technologies, and other methoods etc. Such as Continuous Integration, Wiki, JIRAesque.



But the cons are for developers
* Stress, due to constant pressure to perform every day
* Loosing individuality
* Turning into factory lines
* Constant status updates
* Perfect planning every day
* Orvelian supervising
* Loss of trust
* Low priority of refactoring
* Stand ups
* Back to low technology


Cons for management
* Stress and morale of staff
* Projects fix specific problems, but leave all else untouched, increasing rot and risk of general purpose tasks
* Distributed development is tricky


Cons for customers
* Probably not that much!
* Must trust supplier
* Difficulty in estimating accurate final cost


So you can see the pros does outway the cons. For Customers there really are no cons. It is just pros. For the management, once informed and convinced, they are also mostly pros.


It is just for the developers there are real cons, and they are the most noisy Scrum advocates! I am afraid as the idea behind Scrum gets older, developers will wain of it when they realise some of the consequences. But perhaps by then "agile" people will have forseen this and adapted a more mature and compatible "Agile 2.0" methodology and processes.




Saturday, 3 January 2009

Civilization IV Beyond the Sword in Ubuntu with CrossOver Games

I recently tried to install and run Civilization IV Beyond the Sword in Ubuntu. And it worked flawlessly!

* Civilization IV by Firaxis and its range of games has always in been a favorite of mine.
* Beyond the Sword is a recent extention to this game.
* Ubuntu is a linux distrobution that I use.
* For this to work I used CodeWeaver's CrossOver Games. CrossOver is based on Wine, with some not-yet-in-Wine code and some proprietary code.
* And I installed this on Dell D820 laptop PC.

There was nothing complicated in installing it either. And from CDs.

* I simple installed Ubuntu 8.10 Intrepid Ibex.
* then installed CrossOver Games 7.1.0
* then inside CrossOver installed Civilization IV.
* then installed Beyond the sword. It automatically updated my Civ4 and installed DirectX which I presume CrossOver intercepted.
* then I downloaded the most recent patch of BTS. 3.17. Installed it inside CrossOver.
* Then ran the game.
* Sound did not work 1st time, but specifying ALSA as sound in CrossOver fixed it.

Video introduction, etc everything seems to work. In fullscreen and as a windowed version.

The only think I noticied was that city production bar did not change colour, but changing that to a number in the options solved that. There may be other missing graphics, but I have not seen any. May need to run in side by side of a windows version to notice these things. Certainly nothing game playwise is missing. However I did notice one MOD did not work.

Civilization IV is only marked with a Bronse on CodeWeavers site, however I would say Gold, as 99.5% work.

If you do have problems, many of the forums recommend in Civ's ini files to disable intro videos etc. I have not needed to touch those files.

* Ubuntu thread on Civ4 BTS
* Ubuntu howto on Civ4 BTS
* CodeWeavers page on Civ IV compatability
* WineHQ page on Civ IV