Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
User Journal

Journal Journal: Domains, cashflow and escrow

Some of you may have noticed (hah!) that I no longer have a link to http://hostip.info in my signature. This is because I've just sold the domain :-) BTW the purchaser tells me he'll be operating it pretty much the same as it was before...

Moving to the US (even to a well-paid job, and being used to a high-costs city like London) has proven to be relatively expensive. Houses in Silicon Valley start at about $600k and mortgages are bare-minimum 10% down - most are 20%, and then there's the car to buy (I wanted a convertible, so that's another $30k). It all adds up.

So, out of the blue, I get a request to purchase hostip.info - it looks like a typical spam email, but it mentioned escrow, so I reply from a never-before-used mail alias, and we start to talk. We strike a deal, everything happening via www.escrow.com, and all is sweetness and light. The purchaser puts the money in, I transfer the domain, and escrow.com are in the process of paying me the money.

All this is in stark contrast to selling on ebay, where (if you read my previous journal entry) sellers are completely vulnerable to being screwed over by A.Nybody.

There's not much more to this, except that maybe, just maybe, it means I can get a house with a pool, rather than without - a dream of mine for a long time :-)

Simon

User Journal

Journal Journal: Welcome to America

So, it's all done and dusted, I'm now officially a resident alien in California. I have to say that it has had its' ups and downs, and that's *with* a large company bending over backwards to help...

Question: Why doesn't my credit rating from the UK follow me to the US, when I'd happily sign anything appropriate... Trying to buy anything on credit (and I need a car and want a house) is pretty much impossible atm. I managed to get the car at exorbitant interest rates, and it's vaguely possible I *may* get a mortgage if hoops A-Z are jumped through. Did I mention the hoops were on fire ?

Question: Why is it totally impossible to get around CA without a car, yet I need to take & pass a driving test in CA within 10 days of arrival to legally drive here. Did I mention that you need a social-security number for a driving licence ? And that it takes between 12 and 60 days for an alien to get a SSN ? Er, shurely shome mishtake, ociffer ?

Question: Where are you all hiding the brown sauce (HP, Daddies, etc, not steak sauce), and real bacon (the stuff with meat in it). Ok, this one's tongue-in-cheek (looking for the sauce!) - different countries, different foods... But dammit I like brown sauce!

Question: How on earth do bars do business in CA ? You need a car to get anywhere, and you can't drink pretty much anything when you get there !

Question: Was it really necessary to keep all us visa applicants waiting outside in the pouring rain for 2 hours before sitting in the embassy for 5 hours (waiting for a 5-minute interview), dripping on the carpet ? Sure I know all this is in the name of security, but this was London for crying out loud - we're used to being bomb-targets, we just prefer to be dry at the time...

So despite my moaning, I'm happy to be here - I've landed a great job at a fantastic company that's going places, and I'm on a steady salary, which is nice when you've been a partner in a s/w consultancy. To quote a friend of mine - sometimes it's nice to come in out of the rain for a while. If you've never managed a company you probably won't understand, but if you've got your degree, think of that weight that lifted from your shoulders after your last exam, and you'll come close...

So, alls well in the land of the free, apart from the brown sauce, that is :-)

Simon

User Journal

Journal Journal: The rise and fall of regulated Ebay

So, I'm annoyed.

I'm moving to the USA, which amongst other things means selling various things I can't/don't want to take with me, and Ebay would seem to be an ideal way to get rid of reasonably expensive items (motorbike etc.)

First ever time as a seller (thought I've bought lots before), and it's been a disaster. There exist trolls who simply bid on things without any intention of paying, and Ebay (the organisation) tolerate this - there's little protection for sellers.

Ebay charge you a fraction of the "sold" price, even if the person doesn't pay up. So, the only person out of pocket is the seller - it's in Ebay's interest to continue the status quo, and there is no obvious attempt to track down the scumbags who have made false bids. The only action taken is to invalidate the bidding account, and what good is that ? The saying "shutting the stable door after the horse has bolted" comes to mind!

So, you can either re-offer the item to another bid (and if you do this, all trace of the previous unfulfilled auction seems to disappear! Hmmm.) or relist the item. You can't do the former then the latter. Neither consequence is spelt out (or if it is, it's sufficiently misleading that someone who's just been the subject of a scammer can easily miss it).

So, you decide to offer to the next lowest, and that doesn't work (the guy only gets 24 hours to respond, and emails you later saying he'd missed the chance, grrr).

Then, with impatience and anger rising, you re-list (at your own expense again) the item on Ebay, and EXACTLY THE SAME THING HAPPENS.

This time, I was alert, and did a 'By Buyer' search - the offending character (ladd_eugene) had bids outstanding totalling over £20,000. I cancelled her bid, and the system told me she had bid £2000 on my auction (when the bike eventually sold for £561...)

So, if I was ebay, and I wanted to deflect criticism of not caring (due to it ultimately benefiting ebay) about sellers, I would do some of:

  • Require that bids are not more than 1.5 times the current bid or bid + {$£}500, whichever is smaller.
  • Offer a deposit of {£$}100 which users could voluntarily subscribe to, which removes the above limit. They have to pay the deposit in advance, and it counts towards the item. They lose it if they screw around of course
  • Only allow bids on (user's feedback) + 1 auctions at a time
  • Limit total bid exposure by username.
  • Send the seller an email whenever a categorised item has a bid outside 2 std deviations from the normal for that category. Should be possible to use browser keyword searches to define the categories.
  • Allow sellers to see the maximum bid price from buyers.
  • As a consequence, prevent bids from the same IP as the sellers as well.

The current situation just stinks, if you're a seller. Some lowlife can ruin your sale with impunity, and there's no comeback. This is a pain under normal circumstances, but it's a *royal* pain when you're about to leave the country, and time is of the essence. Failed auctions I could have done without...

Still annoyed, but at least I sold the item this time, even if it cost me about £35 more than it ought to have, and hey, in a week's time I'll be in California [grin]

Simon

User Journal

Journal Journal: The beautiful game 2

(Interestingly enough, there isn't a 'sport' topic in this geek forum. Ho hum :-)

England have just won against Croatia to set themselves up for a quarter-final showdown against the host nation Portugal. Now Croatia number some 4 million people, which is about 1/8 the number of people living in greater London... Just as well we beat them really....

Except that football doesn't work that way - it's described as 'the beautiful game' not just for the enormous levels of skill and athleticism it demands at these levels, but for the egalitarian nature of the game. It's all about skill, team play, perseverance and strength, in that order. You see midget striker (5') players arranged against giant (7') defender players, and the size isn't that important, it's the skill that matters. When size is brought to bear, it's usually adjudged foul play and a penalty/free kick is awarded, but strength on the ball plays a part too, and of course size helps on set-plays such as corners and free kicks...

Out of those 4 million people, I would say that Croatia have about 5 good players, and yet we beat them 4-2. This is the distribution effect, imagine a bell-curve of football excellence - when you increase the number of potential players, the vast majority are within a few standard deviations from 'average'. Getting more than 10 truly-world-class players is pretty well unheard of (perhaps Brazil). Getting 1-5 is fairly common. Odd, but true. England have some 60 million population, yet we fielded maybe 7 excellent players, with maybe 5 world-class ones. The difference in the sides is that our 'less-than-world-class' players were better than theirs... Perhaps it's not so cut-and-dried as intuition might expect.

It's the same in the English Premiership. In any given game, the chances of the favourite team winning are never more than 70:30. You see truly world-beating teams (eg: Arsenal, Chelsea, Manchester United, Liverpool) who have genuine hopes of being crowned the best team in Europe in the Champions League being beaten by teams who are relegated to the next-lower division at the end of the season. What makes winning the league such an event is that the time-averaged 70% chance will beat the time-averaged 65% over 38 games. Probably. It's the 'probably', (ie: the chance of *losing*) that makes the game such a joy to behold. And I think that's odd.

Simon

User Journal

Journal Journal: Voting day

Well, it's voting day in the UK for 3 different elections today if you're in London. There's the European Parliament (MEP) vote, the Mayor of London vote, and the London council (who oversee the mayor) vote.

European Parliament:

So I looked up the list of London MEPs who were available and decided that Jean Lambert (Green party) was the best option, and that was that. As far as I am concerned this is by far the most important issue - as an independent software developer I stand to lose a lot if this goes through...

Mayor of London:

Apparently the government think Ken might have a bit more of a problem this time around - last time he stood as an independent and got ~3/5 of the vote, trouncing the 'official' labour candidate. The huge unpopularity of the war in Iraq is apparently a problem for him...

The london assembly:

The only reason this will be important is if Labour lose control - at that point Ken gets his wings clipped. At the moment the mayor can pretty do as (s)he pleases, but an assembly arrained against the mayor can cause problems for the mayor. I don't expect it to be a huge shock though, again unless the anti-war lobby make big gains.

It'll be interesting, possibly scary, to see how the BNP (the rabid, get all non-whites out the country mob) do in these elections - there's been a number of anti-immigrant stories in the news recently, with the media blowing things out of proportion to sell the dailies again. Sigh. Perhaps Michael Moore has a point about the media.

Anyway, here's hoping the anti-software-patents lobby get elected in spades :-)

Simon

User Journal

Journal Journal: Gay martians

Well, I'm pretty sparing with 'friend'ships, but after reading Fulcrum Of Evil's tagline, I sprayed coke all over my monitors :-) Now that's funny :-)


"It's the queers. They're in it with the aliens. They're building landing strips for gay Martians, I swear to God"

User Journal

Journal Journal: Birthday boy 4

Well, I've just clocked-on another year in my life. Joy. [grin] Actually it's been a pretty good day - lots of people remembered, and it's always nice to be appreciated :-) No presents though - I guess that sort of thing is a young-person thing ... well, at least, younger than me :-)

Writing this very drunk - you wouldn't believe how many times I've previewed it :-) ...

Simon.

User Journal

Journal Journal: Java and C++ optimisation, and GCJ

I've been trying to compile gcj on my Mac (having had to use my home linux box at work recently, I'm using the Mac as my home 'PC'. Actually I kind of like it :-)... anyway while waiting for gcj to compile, I was browsing looking for articles on it. I found 2 of interest:

  • An IBM article on how gcj didn't really compare to the IBM VM...
  • A slashdot discussion on the above IBM article

Now what surprised me was just how badly gcj was doing on the benchmarks he'd written - even *if* (and I make no accusations, just note that IBM's VM won...) it was a PR piece dressed up as an article. I decided to check out the performance on a linux box I could ssh to...

Here's the java code: (slightly edited to look better in slashcode)

import java.io.*;
class prime
  {
  private static boolean isPrime(int i)
      {
      for(long test = 2; test < i; test++)
        if (i % test == 0)
            return false;
      return true;
      }
 
  public static void main(String[] args) throws IOException
      {
      long start = System.currentTimeMillis();
      long n_loops = 50000;
      long n_primes = 0;
 
      for(int i = 0; i < n_loops; i++)
        if(isPrime(i))
            n_primes++;
 
      long end = System.currentTimeMillis();
      System.out.println(n_primes + " primes found");
      System.out.println("Time taken = " + (end - start));
      }
  }

First off, this is a truly awful algorithm for finding primes, but it's the code he provided... In any event it certainly tests loops a lot [grin]. The author didn't provide a comparable C/C++ program so here's one I prepared earlier:

#include <stdio.h>
#include <sys/time.h>
 
# define timersub(a, b, result) \
  do { \
    (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
    (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
    if ((result)->tv_usec < 0) { \
      --(result)->tv_sec; \
      (result)->tv_usec += 1000000; \
    } \
  } while (0)
 
static int isPrime(long i)
    {
    for (long test=2; test<i; test++)
        if (i%test == 0)
            return false;
 
    return true;
    }
 
int main(int argc, char **argv)
    {
    struct timeval stt,end, dt;
 
    gettimeofday(&stt, NULL);
    long n_loops = 50000;
    long n_primes = 0;
 
    for (long i=0; i<n_loops; i++)
        if (isPrime(i))
            n_primes ++;
 
    gettimeofday(&end, NULL);
    timersub(&end, &stt, &dt);
    printf("Time taken: %d.%06d secs\n", dt.tv_sec, dt.tv_usec);
    printf("Primes : %d\n",n_primes);
    }

... which is pretty much as direct a copy of the java version as I can make. The programs were both compiled using -O3 and run, vis:

[simon@cyclops /tmp]% gcj --main=prime -O3 prime.java -o prime_j
[simon@cyclops /tmp]% ./prime_j
5135 primes found
Time taken = 15095
 
[simon@cyclops /tmp]% g++ -O3 prime.cc -o prime_cc
[simon@cyclops /tmp]% ./prime_cc
Time taken: 7.060192 secs
Primes : 5135

Which would appear to indicate that the java code is approximately 50% of the speed of the C++ code. BUT (you knew there was a 'but', right ?) gcj is notoriously bad at optimising long integers. I suspect it actually does the top 32 bits, then the bottom 32 bits, then combines the results... If we change all occurrences of 'long' to 'int' in the arithmetic (not the time variables), we get very different results:

[simon@cyclops /tmp]% cp prime_int.java prime.java
[simon@cyclops /tmp]% gcj --main=prime -O3 prime.java -o prime_j
[simon@cyclops /tmp]% ./prime_j
5135 primes found
Time taken = 7061
 
[simon@cyclops /tmp]% cp prime_int.cc prime.cc
[simon@cyclops /tmp]% g++ -O3 prime.cc -o prime_cc
[simon@cyclops /tmp]% ./prime_cc
Time taken: 7.061838 secs
Primes : 5135

So, when you use 'int' variables, gcj is pretty much as good as g++ for this benchmark. What does this prove ? Not very much, apart from you should always take published figures with a pinch of salt when someone has a vested interest, and that the IBM's VM 64-bit maths is better than GCJ's...

It just irked me that an entire article could be based on something so simple. I've always been reasonably impressed with the speed of GCJ, but perhaps that's because I tend to use 'int's in my loop variables rather than 'long's. I can't quite rid myself of the suspicion that the IBM author was making cheap capital out of a small thing, as well...

I'm a great fan of Java (and compiled java). I find it a lot easier to write programs in, and far and away easier to maintain. I've got a fighting chance of opening up a colleagues JBuilder project and understanding what they've done (even though my colleagues tend to regard comments as optional, [sigh]). In C++ I have to worry a lot more about memory allocation - mainly in terms of the policy for release of objects and their private/protected data. This can truly be a nightmare :-(

IMHO one of the real 'wins' of GCJ is how easy it is to extend it with native bindings. I ported the JSDL SDL bindings for Java to gcjsdl in a matter of days because CNI is *much* nicer to work with than JNI.

I think it's fair to say that my compiled language of choice is now Java, with C++ as needed to bind external libraries. I think that says it all...

Simon

User Journal

Journal Journal: Anti organised-religion rant 2

[Well this started off as part of a comment on that Ashcroft nutter, but on reflection I decided to remove it from the mainstream post; it wasn't really relevant.]

It's interesting how western religion (an artifical social-control hierarchy) _almost_ always teaches that sex is taboo, to be limited and used to manipulate social behaviour in ways that further that social-control, sorry religion.

These religions tend to promise wonderful results (once you're dead!) or terrible suffering (again, once you're dead!) if you do/don't do what that 'authority' says as well... No easy way to argue against that without dying for the cause, which is a bit extreme when you're agnostic or atheist :-)

Think about it: if some book claimed that some bloke in Israel had risen from the dead 200 years ago, would you believe it ? Oh yeah, he was born from a virgin (riiiight!) and can walk on water too, not to mention he has a built-in replicator, though it's stuck on prawn sandwiches. Yes ? No ? If yes, well, all the more power to your elbow my fine delusional friend. Get out of your beliefs everything you can. If no, you either ascribe too much validity to the fact that the bible is *old*, or you'll agree with me that 'religious' people are just nutters.

There's nothing wrong per-se about being a nutter. A lot of successful people were completely nuts. The saying that there's a fine line between genius and insanity is quite a deep reflection on what being nuts is all about, IMHO, though I doubt it was meant that way when first coined.

What can be scary is when nutters try to change you, try to coerce you into their belief system (and I don't just mean religious beliefs here). When such a nutter holds high office, it gets serious - there's not much worse than a motivated nutter with power.

Overall, despite my aversion to it, I think religion does more good than harm. I think it gives people with little else to live for, a reason to live: to be good, honest, kind, the standard virtues. Western religious values have also been the foundation for most of the human rights we now take for granted. Perhaps it's just a phase that a society has to go through - a bit like all the spots that teenage males get at puberty...

Religion is also a bit like heroin (or, opium in a different century, I guess :-) Society wouldn't recover easily from the sudden removal of its dependence on religion as a crutch in life. Excising any cancer takes time, it needs to be gradual, and for religion the process is underway. I can live with that.

You're born. You live. You die. That's it. You should be perfectly happy with that. I am. Consider the alternative.

Simon.

User Journal

Journal Journal: Journals as links and hostip.info

So, my first /. journal entry. Momentous occasion, perhaps. Perhaps not. What prompted it was the large number of people visiting hostip.info from my (allegedly non-existant) journal page... So I thought I'd put something in here :-)

Hostip itself started off as a "wouldn't this be cool" idea, and a first version was born. The 'individual privacy' minded will have a field-day with this, but the inspiration actually came from watching 'Enemy of the State' on a '747 flight :-) I wanted to do (in a very limited way, of course) something similar using the web. As always in projects like this, it's the data that's the hard part of the equation, not the coding...

This first version allowed people to type in new cities, and it would auto-associate with their IP address. This was (as I should have forseen) a complete disaster. The number of Martians living here on Earth is truly amazing. We apparently even play host to a couple of Alpha Centaurites; to these fine beings I say 'Welcome to Earth' in "Will Smith" fashion. (Yes, I'm a fan...)

Once it was clear that if bad data was trivial to enter, it would indeed be entered, I raised the bar a little. Now you can only choose cities that already exist (and which I have latitude and longitude for), or email me with the details of a previously-unknown city, and I'll check it out before entering it into the DB. This has made the database more useful... Needless to say, cleansing all the bad data from the DB was a monumental task. It literally took weeks, and if I'd known at the start how long it would take, I'd not have started it!

It's still possible to lie to the machine of course (and I dare say lots do, on purpose, simply because it's their principle to do so). I have in my own way tried to get around that - the DB keeps a track history of assignments to a /24 netblock (that's the smallest unit it tracks), and since you can only reassign your own IP address, as soon as 2 others on your netblock tell the truth about where you are, it will switch to the real location... It's certainly not foolproof (hell I can think of a half-dozen ways around it!) but it raises the bar...

Up until this point, hostip was a purely text-based system. Next came the map data. I got in touch with the US National Geophysical Data Center in Boulder, and asked them for the highest-resolution data they had. That turned out to be 30 arc-second elevation data for the entire planet. Wow! So I spent some time writing tools to efficiently extract the correct data and colour it nicely/correctly for the small maps I needed - this took a week or so... Just loading the data into RAM took a lot of time (eventually I remembered mmap() and things went a *lot* smoother!).

The dataset consists of a 43000x21500 image, at approximately 1km/pixel, taking ~2.6Gbytes to store. Even things like ppmtogif can't handle that much data :-( The current database size (from du -sk on the mysql db directory) is 623Mbytes. All this needed to be correlated together before the applet started to look even vaguely reasonable. It still has lots of errors (mostly where I have the decimal point wrong in latitude or longitude figures :-( but it's useful now, and I tend to get told [grin] when something is wrong...

One of the reasons I wanted to do this (apart from the obvious coolness of the idea :-) is to give something back to the people who've given me so much 'free' software over the years. Those from this nameless multitude, I salute you - I hope you get as much out of hostip as I got from your various projects/programs.

I happen to think the applet is (even though I wrote it myself, [grin]) one of the coolest ones I've seen so far, although that may be down to knowing just how much hard work went into making it [big grin].

I have more plans for hostip, but perhaps I'll leave them for another journal entry...

Simon.

Slashdot Top Deals

"Look! There! Evil!.. pure and simple, total evil from the Eighth Dimension!" -- Buckaroo Banzai

Working...