Thank you. Finally.

Uncategorized No Comments

Read it from them. IE <= 7 dies.

Ugh, I’m getting spam from GitHub users

Uncategorized 2 Comments

So some creeps called “pagodabox” – who built a “scalable php platform” as if PHP wasn’t already that – just scanned my GitHub account, and used the email to send me spam to see if I wanted to buy their product.

If they’re still on GitHub tomorrow, then GitHub will be sending the message far and wide that its users are permitted to break the law and basic common sense.

The reaction to this will make or break my opinion of GitHub.

In the meantime, please do not do business with PagodaBox.  Not only is their offering pointless and silly, but they’re spammers when it suits them, and you know what that means they’ll do when their interests and yours collide.

A better approach to MySQL row generation

SQL, SQL 2 Comments

I love Markus Winand.  Use the Index, Luke taught me a lot about SQL.

Markus has produced a coping strategy for some of MySQL’s limitations in generating sequences.  I present an alternative form which produces arbitrary sized ranges, which he seems to believe is not possible.  Ah, Markus: it is.

So, this article is actually wrong.  There’s a call-time limitation I didn’t know about: apparently in MySQL you can’t call a stored procedure from a query.  That renders this seriously useless.  I’m leaving the article up just for the sake of permanence.

This advice is wrong.  Do not believe it.  I was in error.  It is kept only for posterity.

-- -------
--
--  in re: http://use-the-index-luke.com/blog/2011-07-30/mysql-row-generator
--
--  No, this way is not our only hope: there is another.

drop procedure if exists nseq;

delimiter //

-- -------
--
--  Use union all to generate a 2-row table.  
--  Use log 2 to find power expansion count to cap the desired size.
--  Use cross joins to expand our 2-row to the smallest superior table.
--  Select the diminished part to get our sequence.

create procedure nseq(in upto integer)
begin

    declare itLeft integer default -1;

    set itLeft = ceil(log2(upto));

    set @front := 'select rownum from (select @rownum := @rownum+1 as rownum
                   from (SELECT @rownum := 0) r, (select 1 as hidden union
                   all select 2) a0';
    set @upTo  := upto;

    set @interior := '';
    while (itLeft > 1) do
        set @interior := concat(@interior, ' cross join (select 1 as hidden
                         union all select 2) a', cast(itLeft as char));
        set itLeft    := itLeft - 1;
    end while;

    set @back  := ') sl where rownum <= ?;';
    set @query := concat(@front, @interior, @back);

    prepare stmt from @query;
    execute stmt using @upTo;  
    deallocate prepare stmt;  

end //

delimiter ;

Hopefully he will agree, or explain what I didn’t understand in his needs.  :)

Why the 3DS isn’t selling

Uncategorized No Comments

The media invariably seems to think that the problem with the 3DS is that it’s too expensive (after dollar value adjustment it’s not as expensive as almost any of Nintendo’s other portables have been,) or that somehow this is Apple’s doing.

This is all bullshit.

The problem is simple, and it’s the same thing that has crippled many, many platforms in the past. It’s what’s killing Win7 phone today.

There are no desirable software packages for the platform. I’ve had one since launch day, and I still haven’t bought any games other than the one I bought on launch day, because they’re all the same garbage that’s been being sold for ten years, and none of them do anything interesting with the new hardware.

Nintendo needs to wake the fuck up and change its software production availability to small producers, or *that* will sink the company. The platform has been out for six months and there are barely 40 games (for comparison, the DS launched with nearly double that, and people screamed at the sky for the limited game catalog.)

The iPhone gets about that many games released PER HOUR.

I hate playing games on my iPhone, but at least my iPhone has games I want to play.

Wake up, Redmond; Japan isn’t going to fix this.

My blog is about what again?

Uncategorized No Comments

I just noticed that I haven’t written about code in literally years.

For shame, fat man.

THIS SHALL NOT STAND.

Domain Squatters Who Don’t Understand Themselves Are Horrible People

Uncategorized 2 Comments

What follows is me venting about a domain squatter in semi-public.  I never say more than his first name, but he’s squatting an important domain in a very small community, and pretending to himself that he’s nobly holding the gate to protect the masses, while all he’s actually interested in is his wallet and his delusion about value.  In the future, when he attempts to infest my work a third time, I want to be able to just point to a post as a reason to explain to a third party why I refuse to do business with someone who appears, at first blush, to be such a powerful, influential, helpful, intelligent man, who puts so very much inexplicable effort into looking like his interest is something other than sale value.

Also I need to vent, because after three months of being dicked around, this clown still hasn’t named a price, while moaning about how he’s a serious seller and I’m obviously not a serious buyer, and his psychic prowess allows him to see that I’m not ready to pay whatever price he’s deluded himself into believing is appropriate.

Short version?

“Fuck you, Barry.”

Read the rest…

Ruby – what a pile of crap

Uncategorized 1 Comment

Six serious concrete defects in the configure script later, two of them more than three years old, and the answer to all six having been “just use these third party scripts that’ll massively change unrelated stuff on your machine,” I’ve come to realize that I have no idea how Ruby as a platform has come to be taken seriously.

This kind of garbengineering has never, ever gone well.  No wonder there’s a post every month or two about how they changed a one-liner and got a 30-40% speed boost: these idiots don’t know what they’re doing.

Hooray, PrinceXML does JavaScript!

Uncategorized No Comments

One of my favorite, unbelievably under-appreciated tools – PrinceXML – is in beta of version 8, and that beta includes JavaScript.

WHICH MEANS IT’S TIME FOR PDFS FULL OF FUCKING CHARTS, YO.

Time to dust off one of my old unused domains.  :D

Hooray, IE9 does protovis!

Uncategorized 2 Comments

At this time the Protovis example gallery’s HTML is not shipping a doctype, meaning that IE eats that page in quirksmode, so the graphs don’t show.

However, if you hit F12, pull Document Mode down and hit IE9 Standards, suddenly they nearly all work. :) To fix this permanently, all the Protovis team needs to do is add a doctype (preferably HTML 4.01 strict) to their pages.

Currently, streamgraph, bubble charts, force directed layout, dymaxion maps, conway’s life, belousov-zhabotinsky, n-body and automaton explorer are broken. Everything else works flawlessly, and the rotated tiny text is *gorgeous*.  The animated and live graphs are lightning fast, and sparklines are perfectly positioned.

Adobe’s installer engineers hit one out of the ballpark

Uncategorized No Comments

So, I go to install my Creative Suite 5 Web Premium upgrade, and I’m looking at version 4, and there’s a bubble in the disc.  Rageface.  Call the company preparing to have to spend $40 to have a DVD mailed to me two weeks from now.

Nope.  Put in the old serial, the new serial, put in Adobe’s version of a mouse Konami code, get a challenge code to give to the phone guy, give a magic number back, bang, CS5 installs.

A-fucking-plus, guys.  That was awesome.

« Previous Entries