Posts Tagged ‘fromLJ’
LiveJournal is down back
Our data center is currently performing maintenance on one of our two power feeds this evening. LiveJournal is currently unavailable at this time. We are working on restoring access as quickly as possible.
I don’t know how long LiveJournal has been down but right now (8:45am) it’s down and there’s no estimate of when it’ll be back.
I’m off to be all emo somewhere else then
Update: D’oh – it says that entry was posted @ 10:07 am GMT (6:07 EST) so that’s about 2½ hours ago.
Update #2: Looks like it’s back (10:30am)
Update #3: I spoke too soon – it’s down again
Software Porting Is Evil?
Tom Yager wrote a piece in the September 19th issue of InfoWorld that was titled “Software Porting Is Evil” – just the heading was enough to wind me up! [The article isn't on the InfoWorld site yet, as far as I can see.]
I was responsible for a porting team back in 1992-94; the objective was to have Hewlett-Packard‘s X.400 email server “OpenMail” running on 20+ UNIX platforms concurrently. Yes, it was like spinning plates at times – take your eye off one plate/platform for a minute and it could come crashing down – but after a short while we had a pretty stable basis that meant the addition of a new platform was achievable quite quickly.
So when someone says that something I spent two years doing (and it would have been more if the company hadn’t been bought out and almost everyone laid off) is “evil”, obviously it causes me to sit up. Fortunately I read more than just the first few lines of his article, because some of the points he made I actually agree with:
- commercial software vendors are “lazy about re-targeting their code”
- “there are far too many fat client applications”
- “developers … become addicted to methods that exist only with the OS and tools they used to write their code”
Taking these points in order: it’s obvious that many vendors are lazy about porting their code – unless you’re running the latest version of Windows, there’s a good chance you’ve said “if only it ran on [your platform]“. Equally, if you’re on an old version of Windows there are lots of applications that only run on the “latest and greatest”. There are many neat Mac-only applications too that I, as a primarily Linux user, would like to see ported.
Of course this is a catch-22 situation: vendors will only port their products if there is enough demand, which means only the popular platforms stand any chance, but how can a platform become popular if there isn’t the breadth and depth of applications available to attract users? I can see how Open Source developers will migrate their code because of interest, the technical challenge, the chance to play with something new, etc. but Yager’s point was about commercial vendors; unless there’s a good business case to do so, they will not (and should not) spend time & money porting their applications.
Often the only solution is for a customer to pay the vendor to port their application to their favourite platform; the customer should make sure they get some sort of profit-sharing element written into the contract though, so they can share in the benefits reaped from producing something other people want.
To a user there is little noticeable difference between a fat client and a thin client – in fact I suspect most don’t even know what those terms mean, nor do they care, so the requirement for greater emphasis on thin client design must come from the technical community. Unfortunately many developers follow Microsoft’s lead, and that is not going to take us down the right path; as hardware continues to advance, many developers fail to see the need for their applications to perform well – if it’s a bit slow, just throw more memory at it.
Universities and schools also have to shoulder some of the blame – if you teach our future-programmers that it’s OK to hack everything out in Visual BASIC then that’s how they will see all software development. Even though there was no technical need for it, one of the courses I took at university insisted that we write our programs on coding sheets, submit them, pick up the punch cards, submit the job, and then wait a day or two to collect the output. The painfully slow turnaround made everyone think about how they designed their code, how they handle non-critical errors, and how to extract the most information for debugging. I’m sure that everyone came away from that course a better developer because we had to think, to plan, to design and to code carefully. Nowadays it’s simply a matter of sitting in front of a screen, banging away at the keyboard until it appears to work.
If the tools that they are provided with focus on the GUI, then that’s where people will concentrate their efforts – does it matter if the back end is inefficient if it looks pretty? Instead of making it work better, just throw up a progress bar.
How many applications on your Windows PC are truly client-server? Very few, I bet. Even those few probably began life as a fat client and evolved. The same is true for the PC – it was a personal computer long before it was networked with its peers and eventually to servers, so it’s no surprise many applications still run in that manner. UNIX started life as the server end with users connected via dumb terminals – everything was focused on the back end with rudimentary user interfaces. There needs to be a hybrid – fast, efficient, robust server software with a user-friendly GUI; it can (and has) been done successfully.
Unless software designers and developers adopt the client-server approach, we are doomed to forever update our PCs while the servers gather dust.
The third point was that developers become addicted to OS-specific tools; unless they are made to think of the bigger picture, developers naturally think about solving the problem they’re given, ideally with the minimum of effort, and then they move on – little (if any) thought is given to maintenance, let alone portability.
Of course it’s not fair to blame just the developers for this problem – almost everyone involved in the development project shares the responsibility. The managers and designers should be thinking beyond just churning out a solution; they should be considering the long-term future of the product: How can it provide future revenue? (Enhancements; wider platform support…) How can we minimise ongoing support costs? (Make it simpler to fix!) How can we re-use elements of this project elsewhere? The answer to many of the questions that should be asked relies on modular, well-designed, portable, well-documented code. Just because you can’t see another use for a particular module now, if you design & develop it correctly then, when you do discover a need in a few years, it will be there, ready to use, even if the programmers are long gone.
By having the entire development team think about the future, the coders will have to use tools that don’t tie the product to a particular operating system or to other products. They will have to code to open standards (e.g. the X/Open Common Applications Environment Portability Guide), to corporate standards (e.g. naming conventions), and against well-documented Application Programming Interfaces. The product’s internal APIs will provide a level of plug-and-play if a module needs to be added or modified, and of course will make testing more efficient.
Initially the accountants will see that developing in this way is more expensive than the current method, but they should also see the savings in the maintenance phase and future projects which benefit from these good practices.
Yager ends his piece by saying “If a vendor makes application porting and validation painful, it won’t lock developers in. It’ll get the vendor locked out.” I think he’s right on the mark … assuming customers see the benefits. Unfortunately, while Microsoft continue with their monopolistic and anti-competitive practices, and other companies see how successful MS are, there will be the temptation to continue the “lock them in” mentality.
Of course, if we all toe the Microsoft-only line that so many companies have, then we’re just feeding the monster – why do we need to port applications if there’s only one platform?
Brazilian Grand Prix – Race
Trulli was given a 10-spot penalty for an engine change; Sato was penalised 10-spots for running into MS at the previous race, and Doornbos aborted his qualifying lap after a spin.
If Alonso finishes on the podium, he’s World Champion, at the youngest champion to boot, with two races (Japan + China) still to go.
Raikkonen’s chances of taking the title are very, very slim now, but Renault boss Flavio Briatore has said there’s to be no planning for a party, so as not to tempt fate.
TSN showed golf yesterday instead of qualifying; today they’re showing NASCAR instead of the race. What?! So we’re stuck with SpeedTV again, so we may have to turn the sound off just to prevent us shouting at the commentators!
Apparently overnight KR changed the front-right tyre that he locked up in qualifying – won’t that mean a penalty? No, the FIA have given him the OK to do it.
JV is starting from the pit lane instead of P11 – apparently the team changed a part that they’re allowed to change but didn’t get approval from officials before they did it.
Track temperature 23°C; air temp 24°C; wind 1m/s; humidity 64%; pressure 925.7mBar.
FA leads them away on the formation lap.
TM enters the pit lane instead of taking his place on the grid.
01/71: FA stays ahead of JM into Turn 1.
KR passes GF and then MS almost side-swipes GF.
AP is out of his Williams, and the Safety Car is out.
Replay: looks like DC tried to squeeze through and clipped AP.
02: SC deployed.
MW pits … and the team put out a fire! That’s both Williams out.
SC lights out – in at the end of this lap.
JM is very close to FA as they approach the line.
03: JM pushing hard and passes FA for P1.
GF passes MS too.
04: JM, FA, KR, GF, MS, JB, CK, RB. Retirements: DC, AP, MW.
TS already up to P11 having started right at the back of the grid.
05: JM fastest lap 1:13.959
06: JM f/lap 1:13.867
07: FA f/lap 1:13.746
08: JM f/lap 1:13.160
Is JM light fueled? Most drivers are expected to 2-stop (~laps 24+48) but there may be some 1-stoppers (~lap 35)
09: JM f/lap 1:13.002
10/71: Track temperature has dropped a degree to 22°C
11: TS is just 0.3s behind FM who’s in P10
13: Interesting fact from the offiicial F1 feed: if Monteiro finishes this race he’ll equal Michael Schumacher’s record for the number of successive finishes!
14: JT passes NK for P12
16: MS posts a personal fastest lap 1:13.505
17: FA has put in successive fastest Sector 1 times but hasn’t yet posted a … hang on…
18: FA f/lap 1:12.827
FM pits from P10 – a very early 2-stop or is he 3-stopping?
19: NK pits from P13 – a long stop – rejoins in P17/last
20/71: JM, FA, KR, GF, MS, JB, CK, RB
21: CA pits from P12
22: JM f/lap 1:12.824
FA f/lap 1:12.653
JV finally passes RD for P12
23: FA pits from P2 – that’s earlier than expected – 8.1s stop – rejoins in P6 ahead of CK
24: GF pits from P3 – 8.5s
RB pits from P8 – 8.6s – smoke from the left side-pod
25: CK pits from P6 – 10.1s
26: MS personal f/lap 1:12.800
JV personal f/lap 1:14.054
27: MS pits from P3 – 8.8s – rejoins alongside GF … and MS takes the spot
JB pits from P5
RS pits from P7
28: JM f/lap 1:12.650
McLaren pit team getting ready
29: JM pits from P1 – 8.2s – easily takes P2 well ahead of FA
KR personal f/lap 1:12.674 and inherits P1
30: KR f/lap 1:12.268
KR yet to pit; he’s got a 32.8s lead over FA
31: Looks like MW has rejoined, about 25 laps down.
JM locks up and could have flat-spotted his front right
32: KR pits from P1 with a 34.5s lead – 10.0s stop – rejoins behind teammate JM
Still to pit: TS (P6), JT (P8), JV (P12)
33: JT pits; rejoins in P12
35/71: FA is 9.8s behind KR, who is 2.0s behind JM. MS is 14.8s behind FA in P4.
JV pits from P11
36: RD brings a sick-looking Minardi into the pits, spewing smoke. Enters his box and is told to kill the engine.
MW will pass RD in ~24 laps time!
39: TS is the last man to pit, in from P6; rejoins in P10 ahead of JT.
40/71: JM, KR, FA, MS, GF, JB, RB, CK. Retirements: DC, AP, (MW) RD.
RB is just 0.2s behind JB
41: So when will JM let KR take P1? Surely JM should be backing FA back into MS?
44: RB locks up in Turn 1 as decides not to try to pass future BAR teammate JB
45: RB elbows his way past JB in T1 this time
47: NK in for pit stop #3!
RB posts persnonal f/lap 1:14.535
48: RB personal f/lap 1:13.373
49: FA pits from P3 – 7.6s – rejoins behind teammate GF (P4)
50/71: GF pits from P4 – 6.8s – rejoins ahead of RB
51: Ferrari team ready for RB – locks up his right front as he enters the box – 6.8s
53: JM, KR, MS, FA, GF, JB, CK, RS
JM has lapped everyone up to + including RS in P8
54: JM pits from P1 – rejoins in P2
55: MS pits from P3 – rejoins in P4, between FA and GF
56: JV pits, even after a late 1st stop (lap 35)
58: KR posts 1:12.601
CK looks to be struggling
59: TM is coasting – will he finish and equal MS’s record? Looks like the engine’s blown
60/71: KR pits from P1, just 18.5s ahead of JM and 44.0s ahead of FA – 5.8s stop – rejoins just behind JM
61: MW is just 1 lap away from passing RD, who retired way back on lap 36
MS is ~17s behind FA in P4, so it looks likely he’ll win the Drivers’ Championship … unless that counts as “doing a Murray Walker”!
With a McLaren 1+2, they’ll take a 2 point lead over Renault in the Constructors’ Championship though.
62: Now that MW has passed RD, he might as well park the car – he’s 17 laps behind TM and there’s only 9 laps left.
67/71: JM, KR, FA, MS, GF, RB, JB, RS; JM has lapped JB in P7
MS has dropped back to 17.5s behind FA
69: The front-runners’ tyres are all looking pretty tired – will any of them be found to be illegal?
70/71: JM, KR, FA, MS, GF, RB, JB, RS
71/71: McLaren 1+2 (JM, KR)
FA finishes 3rd and therefore (unless anything happens in scruteneering) he’s World Champion.
MS, GF, RB, JB + RS take the rest of the points-paying positions.
- J.Montoya (McLaren)
- K.Raikkonen (McLaren)
- F.Alonso (Renault)
- M.Schumacher (Ferrari)
- G.Fisichella (Renault)
- R.Barrichello (Ferrari)
- J.Button (BAR)
- R.Schumacher (Toyota)
9=CK; 10=TS; 11=FM; 12=JV; 13=JT; 14=CA; 15=NK
Unclassified: TM, MW, RD, AP, DC.
Raikkonen looks a bit dejected on the podium, but it was a real outside chance that he’d beat FA.
Alonso’s wearing silver boots! Mmmkay.
T-shirt of one of the Renault team: “World Champion! Schumacher who?” ![]()
Youngest F1 race winner and now youngest World Champion.
Interviews:
JM: “Finally we got a 1,2 that we’ve deserved since the beginning of the year”
KR: looks like he’s had a quick cry! “A good finish for the team”
FA: When asked who he’d thank for helping him become World Champion: “thanks to three or four people, no more than that”!!
Note: 7th & 8th places not awarded at US GP
F.Alonso
117 == World Champion
K.Raikkonen
94
M.Schumacher
60
J.Montoya
60
G.Fisichella
45
J.Trulli
43
R.Schumacher
38
R.Barrichello
38
J.Button
32
M.Webber
29
N.Heidfeld
28
D.Coulthard
21
J.Villeneuve
9
F.Massa
8
T.Monteiro
7
A.Wurz
6
N.Karthikeyan
5
C.Klien
5
P.de la Rosa
4
C.Albers
4
P.Friesacher
3
A.Pizzonia
2
V.Liuzzi
1
T.Sato
1
A.Donaldson
0
R.Doornbos
0
McLaren Mercedes
164
Renault
162
Ferrari
98
Toyota
81
BMW Williams
59
BAR
33
Red Bull
27
Sauber
17
Jordan
12
Minardi
7
Next race: Japan, the penultimate race of the season, in two weeks. [F1 calendar, 2005]
Brazilian Grand Prix – Qualifying
Ugh. TSN’s showing golf (YOU SUCK!) so we’re stuck with the clueless commentators of SpeedTV.
Track temperature 38°C; air temp 28°C; wind 0.8m/s; humidity 48%; pressure 926.6mBar.
Batch 1: GF, TS, MS, DC, JT
G.Fisichella (Renault) – Sector 1=18.4; S2=37.1; S3=17.0; 1:12.558 = provisional Position 1 (of course)
T.Sato (BAR) has a 10-grid-spot penalty after running into MS at Spa, so he’s opted not to put in a qualifying time. Has he also changed engine?
M.Schumacher (Ferrari) – S1=18.3; S2=37.3; 1:12.976 = pP2
D.Coulthard (Red Bull) – S1=18.6; S2=37.7; 1:13.844 = pP3
J.Trulli (Toyota) – S1=18.5; S2=37.1; 1:13.041 = pP3 … except he’s got a 10-spot penalty coming for an engine change earlier
Batch 2: AP, JM, RD, CA, NK
A.Pizzonia (Williams) – S1=18.5; S2=37.8; 1:13.581 = pP4
J.Montoya (McLaren) – S1=18.3; S2=36.7; 1:12.145 = pP1
R.Doornbos (Minardi) – S1=19.1; S2=40.7; spins it and aborts his lap.
C.Albers (Minardi) – S1=18.9; S2=38.3 – very twitchy though; 1:14.763 = pP7
N.Karthikeyan (Jordan) – S1=18.9; S2=38.0; 1:42.520 = pP7
Batch 3: FM, CK, TM, RS, JV
F.Massa (Sauber) – S1=18.5; S2=37.2; 1:13.151 = pP5
C.Klien (Red Bull) – S1=18.4; S2=37.1; 1:12.889 = pP3
T.Montiero (Jordan) – S1=18.8; S2=37.2; 1:13.387 = pP7
R.Schumacher (Toyota) – S1=18.6; S2=37.3; 1:13.285 = pP7
J.Villeneuve (Sauber) – S1=18.6; S2=37.3; 1:13.372 = pP8 … 2 places behind his teammate
Batch 4: RB, MW, JB, FA, KR
R.Barrichello (Ferrari) – 10km/h slower than MS through the speed trap! S1=18.4; S2=37.4; 1:13.183 = pP7 – that’s not good for the home-town boy
M.Webber (Williams) – S1=18.7; S2=37.4; 1:13.538 = pP11! Wow, that’s bad.
J.Button (BAR) – S1=18.4; S2=36.9; 1:12.696 = pP3
F.Alonso (Renault) – S1=18.2; S2=36.7; 1:11.988 = pP1
K.Raikkonen (McLaren) – locks up badly into Turn 1! S1=18.9; S2=36.7; 1:12.781 = P5
- F.Alonso (Renault) 1:11.988
- J.Montoya (Williams) 1:12.145
- G.Fisichella (Renault) 1:12.558
- J.Button (BAR) 1:12.696
- K.Raikkonen (McLaren) 1:12.781
- C.Klien (Red Bull) 1:12.889
- M.Schumacher (Ferrari) 1:12.976
- J.Trulli (Toyota) 1:13.041 ** 10-spot penalty coming for an engine change
- F.Massa (Sauber) 1:13.151
- R.Barrichello (Ferrari) 1:13.183
- R.Schumacher (Toyota) 1:13.285
- J.Villeneuve (Sauber) 1:13.372
- T.Montiero (Jordan) 1:13.387
- M.Webber (Williams) 1:13.538
- A.Pizzonia (Williams) 1:13.581
- D.Coulthard (Red Bull) 1:13.844
- N.Karthikeyan (Jordan) 1:42.520
- C.Albers (Minardi) 1:14.763
- R.Doornbos (Minardi) – no time.
- T.Sato (BAR) – no time + 10-spot penalty
FA: “tomorrow everything will be OK” (talking about the new aero package)
JM: “Kimi’s going to have a tough race tomorrow”; 8-year old girl who designed his helmet (which is auctioned after the race) is at the race.
Brazilian Grand Prix – Practice
Brazil’s not my favourite circuit by any means – it’s too short, the infield’s too tight (=very slow) and there’s almost no chance of overtaking. As well as being really bumpy, the drainage is faily poor … and the forecast for the weekend is wet! (Spring has just begun in Brazil.)
Alex Wurz was fastest in this morning’s session (1:11.701), followed by Sato, Alonso, Button and Raikkonen.
New engines this weekend for quite a few cars: FA, KR, AP, MW, RB, CK, JT, DC, TM, FM.
Liuzzi sets fastest lap (1:15.385), which is quickly beaten by Wurz.
M.Schumachers takes fastest lap (1:14.643) but then spins in the wiggly infield.
Raikkonen puts in 1:13.950
Montoya sets 1:13.896 … still a couple of seconds off this morning’s best time
Alonso sets fastest sector 1 and S2 … but then backs off as he’s catching up on another car.
M.Schumacher puts in 1:13.205 and looked to have the Ferrari on the ragged edge.
At the other end of the timing table, Doornbos is over 4.5 seconds slower (1:17.901)
30 minutes gone.
Massa puts up 1:12.710 to beat MS by almost half a second (0.495s)
Montoya clocks in at 1:12.694 – within a second of Wurz’s top time from this morning.
The onboard camera shots show just how bumpy the track is, even the newly resurfaced section. Ugh.
Button posts a personal best (for this session) of 1:14.189 but he’s still down in P14
Yellow flags are out after Klien spun off backwards into the wall.
15 mins left.
It’s taken the Brazilian marshals almost five minutes to move CK’s wrecked Red Bull car. ![]()
Notably at the tail of the scoreboard: P21=R.Schumacher (1:14.832) & P22=Coulthard (1:15.171), with only Karthikeyan & Kiesa slower.
Zonta sticks in a good time (1:12.802) to drag himself from P20 to P3 … and next lap he’s P2 with 1:12.706, just 0.012s off JPM.
Webber spins and teammate Pizzonia has to almost stop to avoid him as MW spins back onto the track
SpeedTV’s commentators prove (yet again) that they’re clueless; we may have to watch the race with the sound turned off.
5 mins left.
Zonta squeezes past Fisichella into Turn 1 – that was a little close for comfort for a practice session!
Almost everyone is on track now, so don’t expect to see anyone beat Montoya’s top lap time.
OK, ignore what I just said – Wurz posts 1:12.083, fastest by 0.611s
Albers is off track but I didn’t see how that happened; looked like a lock up but CA picked up a piece of bodywork.
Top times:
- A.Wurz (McLaren) 1:12.083
- J.Montoya (McLaren) 1:12.694
- R.Zonta
- F.Massa
- R.Barrichello
The South American drivers are doing well on home soil.
p.s. TSN sucks – there’s Formula One live but you choose to show golf. Duh!












