Web Development: JavaScript Comes of Age

Back in the day, JavaScript was a tacky interpreted language you used as “glue” when putting together Web pages.  When I benchmarked it against C for a scientific computation application in 2005, it came in between 27.7 and 46.9 times slower than code compiled with C.

Well, that was then….  I’ve just completed a series of benchmark tests of JavaScript on platforms which include node.js, Chrome, Chromium, Brave, Firefox, and Apple’s Safari (on both the MacOS X desktop and iOS iPad), and on some of the desktops it runs faster than C and on none of them more than 50% slower.

For Web developers, this is Big Thing.  It used to be you’d code your little hacks within Web pages in JavaScript, but then basically re-do them on … Continue reading

Weekend Reading: Little Wars

In 1913, H. G. Wells essentially single-handedly invented the modern pastime of miniature wargaming, providing a (tin soldier) battle-tested set of rules which makes for exciting, well-balanced, and unpredictable games that can be played by two or more people in an afternoon and part of an evening. Interestingly, he avoids much of the baggage that burdens contemporary games such as icosahedral dice and indirect fire calculations, and strictly minimises the rôle of chance, using nothing fancier than a coin toss, and that only in rare circumstances.

I have just posted a new public domain Web edition of Little Wars which includes all of the photographs and marginal drawings from the 1913 first edition of the book. Some readers may find the marginal illustrations, which are mostly purely decorative, distracting, while … Continue reading

C-ship

C-ship: Exploring special relativity

C-ship: Exploring special relativityHere’s what I’ve been doing the last week.  I’m not going to call this a Saturday night science post lest I find myself on a treadmill like at the other place, and besides it’s Sunday morning and before long the silly clock changing thing will kick in.  I’d hoped to wrap this up hours ago, but little did I expect that a bizarre confluence of IPv6, Gmail anti-spam filters, and obscure sendmail.cf configuration parameters would devour my entire day.

In 1995, I posted C-ship, in which I used a notional ship able to accelerate at a constant rate of up to 100 metres per second per second and ray-traced images and animations to provide an … Continue reading

Fat tails and risk

I’ve read Nassim Taleb’s work on and off over the years. If you’re not familiar with Taleb, he is the author of The Black Swan, which got noticed after the economic crisis of 2008. I took a quick glance through his twitter feed today and found this video that might be of interest. I’ve gotten tired of the argument that there’s a greater risk of being struck by lightning than being a victim of terrorism. He explains why it is wrong to make comparisons of risks from terrorism to risks from more commonplace hazards.

In general, Taleb is quite sound. Taleb understands the president and why he has been so effective:

I was expecting that Trump would reset the tax code, foreign relations, etc. But I … Continue reading

Upgrading the MacBook Pro

I have a marvelous late 2008 “Unibody” MacBook Pro 15 which has fallen into disuse.  Problem is, it was the hub of my Apple Universe.  It only had a 256GB hard drive, so I offloaded its iTunes library to a network drive, which I never quite got running the way I wanted.  The goal was to be able to use any sort of media procuring activity to drop files into a folder that would be monitored by iTunes on the MBP (MacBook Pro) for automatic addition to iTunes.  Any device that I wanted to use to “consume” media would use the iTunes server built into the network hard drive.  This is such a great idea that there should be a patent in it somewhere.  Or maybe it’s not … Continue reading

Night Train

Not a bad way to travel!

20111120-184824.jpg

Okay, I’ll start studying in a minute. Just wanted to share my good fortune at catching a sweet train to Tokyo. Unlike those nationalized JR cattle cars, on Keikyu, a nice ride us no extra charge. Just catch the right train.
Hint: it will be red.

O Glorious Workaround!

This blog seems to be up and running again!  Links are working!  Everything is working.

One of the valuable things I am taking from ITIL training is the confidence to STOP tinkering with things.  I have developed a workaround for this issue: category links were not working, and now they are.  Now it has cost me my preferred URL style, but that;s fine.  That;s not my problem, although “problem” is the key word.

In ITIL, Incident Management is exclusively focused on restoring a service, whereas Problem Management is focused on understanding root causes and preventing repeated or similar occurrences through permanent changes (or deciding that the changes are not worth it).

I have done the Incident Management portion of this, and I figure that the problem management portion … Continue reading

Been Busy up in Heah!

Man, I’m tired.  I’ve been clipping along at work, back to wa-a-ay long days on a project I like a lot, and whacked a test on Tuesday.  Only missed one question on the ITIL V3 Foundation exam.  I resisted the urge to stomp and glower while muttering and swearing about having missed a question, as the other guy finished and failed, and the third guy was visibly agitated as he kept plugging away.  So I’m good for ITIL something or other.  Thanks Knikki!

I also took the ITIL Service Operations class offered by HP a few weeks ago, and have the test for that coming up soon.  The place I work is implementing improvements along the ITIL lines, and running us through these courses.  So it feels darned … Continue reading

SQL Tip of the Day

COLLATE DATABASE_DEFAULT

This is a work-around, and a dangerous one, but it works in a pinch. If you are getting collation errors such as “Cannot resolve collation conflict for equal to operation” bubbling up from SQL Server through your application, you are likely trying to JOIN two datasets of incompatible collations.

The quick and dirty workaround is to COLLATE on the fly just as you would CAST a variable for a read but not a write. So you’ll do it in a SELECT statement, which I am happy to report works just fine.

Sample problem:

SELECT Trusty.Age, Shifty.Height FROM MyGoodDataSource AS Trusty INNER JOIN SketchyDataSource AS Shifty ON Trusty.LastName = Shifty.LastName

ERROR! “Cannot resolve collation conflict for equal to operation”

So we’re going to CHOOSE TO INTERPRET THE … Continue reading