Apr 282017

Systems4you is a scam. They take your money and never deliver. I ordered some garage door radios. After a month I enquired about the delivery, they said they were sorry for the delay. After another month, I asked again and never got a reply.

I just sorry that I didn’t read this first.

Apr 262017

[mass noun] combination of computer hardware, software and telecommunications equipment that allow individuals to disseminate vacuous guff to a wide audience.

The ultimate DrivelWare©™ is Twitter. As it’s name and logo clearly indicate, it allows hundreds of millions to parrot sparrows by creating digital noise. It is a fact that sparrows’ tweets have important Darwinian functions: to congregate, warn of danger and attract mates for reproduction. In contrast, human tweets fulfill none of these functions; there is no congregation or dangers in cyberspace and reproduction requires a physical encounter. Twitter has become the de facto leader in DrivelWare©™ due to its limit to 140 characters, which curtails – wisely – the amount of information that can be transmitted. In practice this limit is not problematic as the average tweet length is 28 symbols, a good proxy for the authors’ IQ.

The most pervasive DrivelWare©™ is Facebook, where the gerbil-like publish self-important, whimsical information created by random synapse firings: location, bowel movements, olfactory sensations and so forth. The behaviour is rewarded with ‘likes’ from correspondents, sustaining a Pavlovian feedback mechanism that encourages cyclic eructations.

Finally, the epitomy of DrivelWare©™ is SnapChat, where the mindless content is automatically deleted a few seconds after it is created, thus reinforcing the correlation between the quality and the lifetime of the message.

Feb 232017

The Trump administration has rescinded transgender students’ bathroom protections.

LGBT rights groups on Wednesday assailed the administration.
“This is a mean-spirited attack on hundreds of thousands of students who simply want to be their true selves and be treated with dignity while attending school,” said Mara Keisling, executive director of the National Center for Transgender Equality. source

Notice that all Trump has done is to hand the matter back to the individual states, no protection has been abolished.

“Hundreds of thousands” seems like a lot. Let’s check that figure. In the 2015 census, the US population was 321 million, of which 22.9% were under 18, some 73 million children. According to DSM-5, the prevalence of gender dysphoria is 0.005-0.014% for adult natal males and 0.002-0.003% for adult natal females. As it is about 3 times more prevalent in males, that makes an average of 0.0078%, times 73 million = about 5’700 children who have gender dysphoria. “Hundreds of thousands” sounds distinctly like the fashionable “alternative truth”.

The LGBT community once again does itself a disservice by citing vastly inflated numbers. They would do well to remember that they are about 1.6% of the population, which makes them a small minority; the vast majority are tired of their endless bleating.

Jan 252017

Conditional formatting is a great tool, but after a spreadsheet has a lot of edits, the number of conditional rules spirals out of control.

To solve this I wrote a short VBA macro, which propagates conditional formatting (and only conditional formatting) from the top-most cell in each column. It’s a simplistic implementation, with the following restrictions:

  • It replicates the formatting column-by-column, copying the conditional formatting from the first (top-most) cell which has some. Make sure that the rules you want propagated are topmost in the list and include that topmost cell before running.
  • Corollary: It doesn’t handle multi-column formatting.

Paste the following code into a new module:

Option Explicit
Option Compare Text
Sub Test(xls As String)
    ' Open the workbook with conditional formatting.
    '   Test wookbookname
    ' in the immediate window
    ' this will merge the conditional formatting on the first worksheet of that book
    Dim wb As Workbook
    Set wb = Workbooks(xls)
    Dim ws As Worksheet
    Set ws = wb.Worksheets(1)
    MergeConditional ws
End Sub
Public Sub MergeConditional(ws As Worksheet)
    On Error GoTo FAIL
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Dim lur As Long
    lur = LastUsedRow(ws)
    Dim luc As Long
    luc = LastUsedCol(ws)
    Dim col As Integer
    Dim row As Long
    For col = 1 To luc
        Dim found As Boolean
        found = False
        Dim source As Range
        For row = 1 To lur
            Set source = ws.Cells(row, col)
            If source.FormatConditions.Count > 0 Then
                found = True
                Exit For
            End If
        Next row
        If found And row < lur Then
            ws.Range(ws.Cells(row + 1, col), ws.Cells(1048576, col)).FormatConditions.Delete
            Dim target As Range
            Set target = ws.Range(ws.Cells(row, col), ws.Cells(lur, col))
            Dim i As Integer
            For i = 1 To source.FormatConditions.Count
                source.FormatConditions(i).ModifyAppliesToRange target
            Next i
        End If ' found
    Next col
    Application.EnableEvents = True
    Application.ScreenUpdating = True
End Sub
Private Function LastUsedCol(ws As Worksheet) As Long
    On Error Resume Next
    LastUsedCol = 1
    LastUsedCol = ws.Cells.Find("*", SearchOrder:=xlByColumns, LookIn:=xlValues, SearchDirection:=xlPrevious).Column
End Function
Private Function LastUsedRow(ws As Worksheet) As Long
    On Error Resume Next
    LastUsedRow = 1
    LastUsedRow = ws.Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).row
End Function
Aug 312016

According to Wikipedia, as of 2010, some 1’200’000 people died in traffic-related accidents. Here’s how that looks geographically:


The take-away is fairly simple: you’re better-off driving in (interesting how these same countries come back every time): Norway, Sweden, Denmark, Switzerland and, unexpectedly, Israel. The rest of Europe, if you don’t stray too far east, is relatively harmless, along with Canada and Australia, which are only twice as dangerous as the ‘model’ countries. In the USA, your chances of dying are quadrupled. From there, the multiplier is on a bender: Mexico 5, Bolivia 6, Kenya 7, Iran 8, Ecuador 9, Oman 10, Nigeria 11, Thailand 12 and the winner if Erithrea, where you are 16 times more likely to die on the road.

Why did I go to all this trouble for victims of car accidents, you may well ask? Because it represents about 1’200’000 who die every year for no good reason, yet we find it perfectly acceptable. In contrast we wallow in grief for one death:

A while back, Pakistan hung Shafqat Hussain, found guilty of having killed a 7-year-old child, and the whole twitosphere is in uproar because he was too young to be executed. This suits journalists, who can use said tweets to justify their perception of ‘public opinion’. A false premise that even a tapeworm could understand, because tweets are not votes, carefully counted in a ballot-box; they are tweets, and as their name implies, they are mindless drivel, most likely generated by a computer.

What’s interesting is that nobody questions that Shafqat did actually kill a 7-year-old, but nobody, especially journalists, gives a shit because the life of an innocent young boy is much less news-grabbing than the sob-story of a supposedly-persecuted adolescent. I’m not sure whose testicles I’d prefer to crush in a vice, Shafqat’s or the journalists. From a Darwinian perspective, all those testicles seems the most sensible approach.

You’re not reading/listening anymore because I questioned the reality of the twittosphere? Your single-digit IQ brings forth my greatest compassion.

May 292016

I was quite surprised how much the choice of anti-aliaser affects a render. Here I’ve rendered a scene with all the 3DS anti-aliasers, to compare how they fare. The scene is a ring (which you might wear on a finger), using Neil Blevins beautiful gold material. The subject is 5 intersecting toruses, scanline renderer, with an HDR skylight based on Desk_Sm_Blurry.hdr. I discovered that all the anti-aliasers are very susceptible to the radiosity quality, there is a huge difference in the artifacts between the 85% default and 99% radiosity that I used.

Area, nice at first glance, but a bit cartoony


Blend, not suitable for this kind of texture


Blackman, a little blurry but quite realistic


Catmull-Rom. Convincing, but a little too much


Cook Variable. Very crisp in the highlights, a bit blurred elsewhere


Cubic. Poor unlit areas


Mitchell-Natravali. Crisp compromise, my favourite


Quadratic. A little surrealist and over-smoothed


Sharp Quadratic. A little better than the basic quadratic, but still too smoothed


Apr 292016

Disclaimer: I have never flown a model aircraft in my life. I unboxed RF7.5 at 23:30 and crashed my first trainer at 23:50.

They were an instructive 20 minutes and I’ll detail them, hopefully you might find it useful.

RF is a trivial install; pop in the DVD and run setup.exe. The only thing you might like to change is the install directory; the RF install is 6.5GB, if you’re tight on space on your C: drive you might like to put it on another disk. Otherwise, just be patient, it takes several minutes but couldn’t be easier.

If you’re in America, skip this paragraph. We Europeans will launch RF and get “Invalid or corrupt version of WMVCORE.DLL”. This is par for the course, ‘N’ versions of Windows don’t have the correct components of Windows Media Player. With a little sleight of hand you’ll find the reason for your OS and from there (for me Windows 7 N or KN editions) get the Media Feature Pack. Once you’ve installed that, re-booted your PC and uttered a spray of profanities, you’re ready to start flying. Double-click RF on the desktop and you should see something like this:


This might not seem very impressive. Well, take off and you’ll see this:


I played with my first flight simulator on an IBM PC with 2 5.5″ disks back in 1988 and I’ve seen many in-between. Here I was gob-stopped by the simulation; the specular lighting and level of detail is truly astonishing and the aircraft behaviour is incredibly realistic.

Now, a purist 3D-modeller might argue that the perspective of the fence-posts doesn’t change with the viewing angle, nonetheless when you drive the plane gently into the fence, you hear the propeller tapping the wires:


The simulation could hardly be more perfect.

I’ll be back with more when I’ve got a bit more experience with what appears to be a very polished piece of software.

Mar 232016

Another few dozen dead in Brussels, apparently the work of islamic suicide bombers. Almost customary news-of-the-day, followed by the customary heart-rending of politicians, eager to gain media-time for their own self-glorification. After ‘nous sommes Charlie’, we have ‘nous sommes Paris’ and now, predictably, ‘nous sommes Bruxelles’. Trite, self-serving and an utter waste of media bandwidth.

The drivel served up to us, ad nauseum, wallows between indignation and glib sound-bites about tolerance and the necessity of doing something for the down-trodden poor. These poor souls apparently are (almost) justified in resorting to violence because they can’t find employment, whilst clamouring for equal treatment despite the djellabas, thick beards and a thick misogynistic streak that doesn’t quite jig with our society.

Whether it was Voltaire or Rousseau who said “I disapprove of what you say, but I will defend to the death your right to say it” makes no difference; you have the absolute right to worship who/whatsoever you choose. However, your rights end where my rights start, and vice-versa. Having respected your right to worship, you have the logical obligation to respect my right to do something else.

The moderate, respectable muslim will object that the suicide bombers don’t represent his views. The problem is that the suicide bomber claims to represent islam. If the moderate muslim doesn’t take steps to stop the suicide bombers, he shouldn’t be surprised to find himself bundled with them.

A muslim, you have decided to come and live in Europe. You’re more than welcome, many of us came from elsewhere and we thrive on diversity. However, it’s not a one-way street; when we visit a mosque, I take off my shoes and my wife wears a veil; quaint to our culture, but I respect yours. When you come to Europe, your daughter at school has the obligation to learn how to swim. We don’t do this to look at her breasts, we do it because in Europe there are many lakes and rivers and we don’t want our children to drown.

Is all this really so hard to understand? Or, as I suspect, are you doing it deliberately?

Jun 242015

So Tsarnaev apologises for his crime. Predictable, as in the USA, showing remorse seems to infer some kind of leniency, on the American model “You’ll always be forgiven your fuckups and given a second chance”.

In business, you create a venture, it goes tits-up, you go bankrupt, you get a second chance. This is eminently fair, after all, your backers were venture capitalists who were fully aware that they might lose their shirt.

Tsarnaev’s case is very different, he maimed and killed. Purportedly in the name of a religion. Said religion does not, in its majority, condone maiming and killing, although it’s a fine line, given the lack of condemnation by the muslim community.

Let us be perfectly clear, the death penalty has little dissuasive effect (on psychotics, who by definition aren’t in ‘our’ world). The death penalty serves a simple purpose: the culprit cannot do it again and he cannot propagate his genes. There is no credible argument which would allow the remote possibility that Tsarnaev could reproduce; his crime is so ignominious that he must be eliminated.