Category Archives: Uncategorized

ChronoPay and/or AllOfMP3 Suck

Note: This entry has been restored from old archives.

Beware of ChronoPay or maybe AllOfMP3! One of them is either a seller of email addresses or a leaker of email addresses; the latter is almost as bad as the former in my books.

When I sign up for a service online they always get their own unique email address, all of a sudden I have been getting vast amounts of porn-spam to the the very unique mail address given to them: allofmp3·chronopay·com@malignity·net. This is a pretty huge finger pointing in their general direction, but which one is the ultimate culprit? I have given other email addresses to AllOfMP3.com and so far never had any spam from them… There’s some online fuss about this I notice now and ChronoPay are apparently blaming AllOfMP3, which wouldn’t be a terrible surprise.

So, unless you’re actually interested in gems like “Shockingg Fa_rrm p00rn baanned in 51 states!” or “Illlegal and weiird familyy gangbangg <$rword#>” I suggest you remember to be wary of where you stick your favourite email address, one of these companies begets the evil of spam and we’ll probably never find out exactly which one was responsible. Intuition would point the finger at “dodgey Russians”, as it stands however I doubt that either company was consciously responsible. I expect this is a data leak, be it a security breach or an employee after an extra buck, either company could easily be the source.

One further reason why owning your own domain names and thus having “disposable email addresses” is very useful. One email address for people you know and trust and infinite others for the rest of world, which you do not trust unless you’re rather foolish.

Stats: In a 45 hour period (length of my current mail.log) the allofmp3.chronopay address has been hit with 132 spam emails – needless to say this email address is now rejected at SMTP level.

[Related: I’m at risk]

Pythious Syntactum

Note: This entry has been restored from old archives.

Time for a little Python “spot the difference” game! I’ve been working primarily with Python lately and a few weeks ago I found this hideous performance bug lurking in my code.

This:

setHash = {}
for featureSet in featureSets:
    for feature in featureSet:
        if feature not in setHash.keys():
            setHash[feature] = []
        setHash[feature].append(featureSet)

Versus this:

setHash = {}
for featureSet in featureSets:
    for feature in featureSet:
        if not setHash.has_key(feature):
            setHash[feature] = []
        setHash[feature].append(featureSet)

Now, consider that I have huge data sets. Guess what happens? Yes, that’s right Tommy! The first example is much slower, in fact it goes 1000 times slower. Beware the Indictkeys, my script! The its that rate, the keys that come! Beware the Hashhash loop, and crypt the pythious Syntactum.

The lesson here is: remember has_key

On reflection the wrongness of what I originally wrote seems obvious; I don’t know exactly what happens “under the hood” but I can probably make a fairly accurate guess. It just goes to show that even in a language as pleasant to work with as Python it isn’t too difficult to trip yourself up with simple, everyday foolishness.

[Of course, there’s always going to be other ways to do it!
It does look neater without the has_key]

Bug Challenged

Note: This entry has been restored from old archives.

You know you’ve truly left the land of the living when you’ve got no bugs left in the bug tracking system – even finally disposed of bug 578; ah, those were the days. Greetings from Hades.

Bug 578 was filed back in the old ‘level 4’ era I believe, when we even had the CEO doing some QA work and possibly even before the great Applications Schism. What do we do with ourselves now as our cells divide and multiply, reaching across the globe with our newly grown appendages.

It seems like an awfully long time, I’ve been working now for almost as long as I was hanging around Uni. Time, as they say, can really fly – such a hurry to what end?

You run and you run to catch up with the sun, but it’s sinking – racing around to come up behind you again. -PF

Y Mynyddoedd Duon

Note: This entry has been restored from old archives.

As mentioned in the previous posting I made a trip out to Wales on Monday to go for a bike ride, my destination was The Black Mountains (Y Mynyddoedd Duon in Welsh). I had done a bit of reading about riding in Wales and chosen a few published routes that interested me, in the end I picked route from MTB-Wales.com for The Black Mountains as by this time this was the only OS Landranger map that had arrived from Amazon (it’s cheaper to get the maps from Amazon). The route is amusingly called Mynydd How You Go ! (ho ho!), in case you haven’t picked it the word mynydd is Welsh for mountain. The exact spot I parked the car at and the trail starts is marked on this map, note the nearby town of Bwlch it’s name basically just means pass in English (as in mountain pass).

The ride was good fun and after looking at the map closely and realising that the stretch around Mynydd Troed was fairly flat I regret cutting it short. After getting to the bottom the “Very Technical” descent and wading through mud I’d decided that it was time to loop back. Now I know what “Very Technical” means, I can’t believe people would ride down that (I can really, but it was quite a nasty path). I went down a little way but a combination of expecting I was going to fall off and roll down the hill and the horrible noise my brakes were making convinced me that walking down was a better option.

The disc brakes on my bike are great for stopping really quickly, but they’re painful for checking your speed on a descent. When I hold them on while going downhill they make a terrible moaning noise, I was ashamed to be upsetting the peace of the hillsides. I must find out if there is something I can do about the noise, it really is pretty awful.

I was hoping to also have another ride on a section of the Taff Trail that runs along the east side of the Talybont Reservior but didn’t have the heart for it after cleaning all the mud off myself and my bike so we could get back in the car. I’ll reserve that ride for next time. I’m looking forward to the arrival of my Brecon Beacons, Elan Valley & Builth Wells and Weston-super-Mare, Bridgwater & Wells (not in Wales) maps.

Things I’ve learnt about my bike:

    The moaning the disc brakes make on downhills is really, really terrible.
    I can’t use the second gear ratio, it just doesn’t position properly (I call the cogs at the front ratios and the cogs at the back gears, I have no idea if this is correct when referring to bikes). Whenever I try to go to the second (middle) one it click-clacks and tries to jump onto the smallest one, I think that something probably needs adjusting.
    Fine grit particles from mud get into the tube that holds the fork/handlebars assembly. This seems to be a bit of a worry as I imagine there could be some abrasion problems. I’ll have to see about cleaning it out somehow.
    I think that clipped boots/pedals would be better than hiking boots.

I think I should read up a bit on bike maintenance.

Photo-by-photo details of the ride starting here.

Enlightenment Tracks Me Down

Note: This entry has been restored from old archives.

Looks like the enlightenment I was going to seek sought me out courtesy of Sam.

So not a strange feature at all, an expected behaviour.

Oh, and the half a million character regex… it is not my fault! Really. I’m just working with what I’ve been given, same goes for XML – it just isn’t part of the picture. I have crazy huge regexes and textfiles with no trailing newline, this defines the bounds of my reality. However, I must say that it really is in the best interests of my employer (and thus myself) that people feel they need to do such things with regexes 😉


Regex, regex everywhere and
all the bytes did slow
Regex, regex everywhere but many more to grow

See what I have to say about my current mouse for a clue to my thoughts on the matter of switching to something more rodent based at this time.