From: Andy Armstrong Date: 14:17 on 26 Feb 2007 Subject: =?WINDOWS-1252?Q?3_EASY_STEPS_TO_UPGRADE_ZEN_CART=99?= 3 EASY STEPS TO UPGRADE ZEN CART=99 http://tutorials.zen-cart.com/index.php?article=3D108 Easy steps? That sounds good. So all I have to do is download a virgin copy of the version I have =20 installed, apply any patches that are applied to the installed =20 version, download the new version, diff the installed version with =20 the virgin copy of same, manually apply and differences to the new =20 version, upgrade the database, etc etc etc, test, repeat, swear a =20 bit, sob. Actually they're trying to explain to not-particularly-technical =20 users how to use diff and patch to merge local changes into a new =20 version of some software including handling possible changes to a =20 database schema. I imagine that at some point quite early in the =20 instructions their idea of 'easy' diverges sharply from said user's =20 idea of 'easy'. As someone who's quite used to working with patches the process still =20= looks pretty fraught. --=20 Andy Armstrong, hexten.net
From: Andy Armstrong Date: 13:07 on 24 Jan 2007 Subject: Excessively grandiose product names Sensible operating systems have had powerful shells for decades. They have names like 'sh', 'bash', 'tcsh'. Modest names. So why, when Windows finally does a bit of catching up, does the shell have to be called 'PowerShell'? They were going to call it Monad. Not a bad name that. A bit enigmatic and interesting sounding. Obviously that wasn't sexy enough though so now it's <voice class="hollywood">PowerShell</voice>. Hear it roar! Of course if you can work out what the fuck the cygwin installer (which should probably be the topic of another post) is trying to do you can just install bash instead.
From: Andy Armstrong
Date: 15:52 on 11 Jan 2007
Subject: PHP sucks dick through a straw
Humph. I'm writing PHP (again) today. I'm just doing a bit of munging on
a data structure - basically turning a hash of objects some of which
have another object in the same hash as their parent into a tree
containing the same objects. It'd be trivial in Perl. In PHP it's not
quite so simple. PHP really likes every assignment to be a deep copy. In
mitigation it dangles the carrot of pretending to support references
using the =& assignment operator. Except that:
"Complex arrays are sometimes rather copied than referenced. Thus
following example will not work as expected." [1]
<?php
$top = array(
'A' => array(),
'B' => array(
'B_b' => array(),
),
);
$top['A']['parent'] = &$top;
$top['B']['parent'] = &$top;
$top['B']['B_b']['data'] = 'test';
print_r($top['A']['parent']['B']['B_b']); // array()
?>
There's plenty of madness elsewhere on the same page too. In PHP4
something as innocuous as
$obj = new Object();
actually makes a deep copy of the newly created object! So the idiom
is instead
$obj =& new Object();
Which is OK once you get used to the ugliness - but
"Since PHP 5, new return(sic) reference automatically so using =& in
this context is deprecated and produces E_STRICT level message."
So it's impossible to write code for something as simple as creating a
new object that works right in PHP4 and still works without warnings in
PHP5. Which of course means you give up on using E_STRICT, which means
you don't see all the other shite that's going on - some of which might
actually be informative.
Somebody remind me why do so many people use a language that can't even
get this completely basic stuff right.
[1] http://uk.php.net/manual/en/language.references.whatdo.php
(reposted from london.pm)
--
Andy Armstrong, hexten.net
Generated at 10:28 on 16 Apr 2008 by mariachi