Regarding the Paris Attacks

Published at 08:45 on 14 November 2015

One simple sentence basically sums it all up:

The West is less morally superior than it pretends to be.

If you’re flying off the handle about that statement being a justification for what just happened, then you didn’t actually read what I just wrote. Go back and re-read the sentence. It’s actually very nuanced and sums up a lot in a few words.

For openers, it actually states that the West is in fact morally superior to ISIS. The wording is goes “…less morally superior than it pretends to be.” It does not go “…not morally superior,” “…morally equivalent to,” or “…morally inferior.”

It’s just that the actual level of moral superiority is significantly lower than the professed one.

For example, there is no rejection on either side over the principle of engaging in actions which cause civilian deaths. Drone strikes have been accomplishing the latter for decades. And doing so routinely; they’re remarkably imprecise. How can they be otherwise, given how they are conducted remotely? If all one is going on is a fleeting image from above of a fairly distant group of people, you’re going to be misjudging the nature of those people fairly often.

Sure, ISIS deliberately sets out to cause civilian deaths whereas in the drone strikes they happen incidentally as part of efforts targeted at combatants. But dead is dead, so rhetoric like “we value life and they don’t” is, well, B.S.

And the West, despite those somewhat higher standards, is the party that is far more heavily armed, and thus far more likely to inflict actual civilian death. Terrorism has killed far fewer civilians in recent decades than the war in Iraq did, for example.

Mind you, I’m very glad I live where I do and not someplace controlled by ISIS (or by the Kingdom of Saudi Arabia, which is just about as bad). But please, spare me the “we’re good, period and they’re evil, period” rhetoric.

Time for Another “Javascript Sucks” Post

Published at 15:36 on 12 November 2015

For no other reason than it’s been a while since my last one. Oh, I’ve just been bitten by some sucky Javascript today, but that’s hardly new: it happens most days.

That’s because there’s an awful lot of sucky Javascript code out there. Which is the case because Javascript is a difficult language to program well in. Which in turn is the case because both the core language and its object model basically suck.

I mean, how much more sucky a design decision can there be than making all variables by default global unless explicitly made local? This is precisely the opposite of what any sane design would do. Thanks to this misfeature, all the Javascript coder need to is absentmindedly leave off a var or two and presto, there’s a bug waiting to strike. And Javascript’s parallelized and callback-based nature means the bug probably won’t be immediately obvious, so it will make it through testing and into production where it can bite users.

And then there’s the Javascript object model. It’s not necessarily deficient, it’s just bizarre. Well, bizarre to anyone used to the classical inheritance model (which means virtually any other object-oriented language out there); Javascript uses prototypal inheritance. It’s a bit of gratuitous difference that just makes Javascript needlessly strange and thus more difficult to learn and understand for the vast majority of programmers. Why? Just why?

That Javascript makes failure easy and success difficult can be illustrated by how it’s not that hard to run into bad (i.e. flaky and unreliable) Javascript on Google pages. I mean, if one of the largest and wealthiest corporations on the planet, one famous for hiring the best and brightest, one that writes browsers as well as web pages, can’t successfully implement a toolkit to tame Javascript’s bias towards failure outcomes, that’s about as damning an indictment as one can make against Javascript.

Finally, it’s instructive that those who designed the Google Web Toolkit chose to (alas, ineffectively) fight Javascript’s brokenness by writing a tool to enable developers to avoid programming in Javascript entirely.

Javascript code would be bad enough if most of it only had all of the above factors working against it, but wait, there’s more.

First, client-side Javascript has to be cross-browser portable, and there’s lots of gratuitous little differences between the execution environments on different browsers (or even differing versions of the same browser).

Second, many kinds of client-side code, in particular AJAX code, are difficult to write well. Such code must cope well with all sorts of network conditions without adversely impacting human-machine interactivity.

The latter would be difficult to do even with a sanely-designed programming language and execution environment. In Javascript, it’s often close to impossible.

It’s one reason why the answer to the question of how best to do something in client-side Javascript is a simple don’t.

Don’t do it. Not if you can do it in static HTML somehow. It might in some theoretical sense be better to have more interactivity, but in practice a less theoretically-elegant solution that works and works reliability in a wide variety of situations will come out ahead.

Sleazy Recruiter Earns a Poison-Pen Response

Published at 19:44 on 10 November 2015

Normally I don’t send harshly-worded responses to recruiter spam, but this guy just begged for it. He’s been spamming me over and over again. He’s from an insurance agency, of course.

Holy hell, are you ever one clueless sleazy dirtbag of a recruiter.

Can’t you understand plain English?? To wit, the disclaimer that appears with my online résumé:

This résumé is being posted strictly for the purpose of soliciting responses related to employment opportunities in the field of software development. In particular, neither insurance sales [emhasis added] nor systems administration are software development.

I would not work for your company even if it were the last employer on Earth.

Moreover, I am going to tell all of my friends to avoid purchasing insurance from your firm.


Hello David ,
My name is Ron Ellwanger with Colonial and I have tried reaching out to you in the past but we have not been able to connect. I am still interested in speaking with you about the benefit consultant and account manager positions in your area. (we may be able to talk about management as well depending on openings)
We are rapidly growing with the business 2 business market especially with the recent changes in health care reform. We are helping more people than ever before.
If you are still looking for a position, I would like for us to set up a time to chat over the phone.
If interested, please send me an email and we will set up a time to chat.
Thanks,
Ron Ellwanger
Colonial Benefits
425-336-0256

 

Re-Thinking Software-Defined Radio

Published at 10:04 on 14 October 2015

After blowing two evenings trying to get SDR working, I’m beginning to think I was correct in basically writing the technology off as not worth the trouble some years ago. I fight with computers in my day job. I don’t want to do it as a hobby.

First, I use Macs. If you use a Mac, you’re really left out. The vast majority of SDR software supports Windows and Windows only. The few exceptions tend to run on Linux and not Macs.

Sure, I could boot Linux on my Mac, but it’s Linux. That means it was written by hard-core geeks for hard-core geeks, so documentation is incomplete (if available at all). To prove my point, I tried to create a bootable Linux flash drive last night, following all the instructions meticulously. It didn’t work; it failed to even appear as a boot device when the system came up. That means there’s probably some missing step in the by-geeks, for-geeks instructions that was left out because it’s transparently obvious… obvious to a hard-core Linux geek that is. Figuring out the answer to that puzzle could easily involve me blowing my free time on it for the next several weeks. No thanks. I want to geek around with radio, not Linux systems administrivia.

The few exceptions, i.e. SDR programs that run on the Mac natively, tend to involve Mac Ports. Which is (link) currently broken. Sigh.

That leaves running Windows, which probably means buying and setting up a whole new computer. If it comes to that, there goes any cost advantage of SDR; even a sub-$10 dongle like the one working its way to me from Singapore will have a total cost about twice that of the Alinco receiver I just purchased. It actually might come to ruunning Windows… eventually. Right now, there’s higher priorities for spending that sort of cash.

Alinco DJ-X11 First Impressions

Published at 21:02 on 9 October 2015

Why buy yet another radio? Two reasons:

  1. I’m currently trying to do noise mitigation in the HF bands, and that means walking around the neighborhood with a radio. While I can use one of my existing sets for this purpose, they tend to be very awkward, as they are all desktop models.
  2. I’m also interested in helping friends whose homes might be bugged (seriously; they’re known as activists, and the government has a nasty record of surveillance on such individuals) do some searching for bugs. It’s yet another something for which a small, battery-powered radio is a useful tool.

So I wanted a small, battery-powered wideband receiver that could tune as many frequencies as possible in as many modulation modes as possible. The latter is an important point; most of the wideband receivers out there (such as the Icom R6) can’t receive SSB or CW at all, which is a major limitation on the shortwave bands.

First impressions:

  1. It doesn’t feel super solid and professional, like I’d imagine the Icom R20 (discontinued) or the AOR 8200 (no raw I/Q output) to feel. It doesn’t feel super-fragile either; its plastic case does feel quite rugged and right. But there’s very little metal in the thing; it’s surprisingly lightweight.
  2. It’s very complex, and the manual isn’t the best in explaining the complexity. It can take some searching and experimentation to figure out how to do something.
  3. It won’t put my desktop HF receivers out of work; it’s significantly less sensitive than them, not so easy to use, and tuning SSB signals is somewhat painful.
  4. Notwithstanding the above, it does actually work acceptably on MF (aka AM broadcast) HF, VHF, and UHF signals. Given its small size and wide coverage range, its performance is quite remarkable.
  5. Forget about using the rubber duck antenna it was shipped with for HF; get an SMA-mount whip (thankfully I already have one).
  6. It comes with a rechargable lithium-ion battery and a drop-in charger. The latter was a pleasant surprise; I much prefer drop-in chargers to plug-in ones, and I was expecting the latter, given the price.

This is the USA, so mine is the crippled DX-X11T model with the stupid government-mandated gaps in the 800 MHz band (fuck you very much, Congress). I seriously entertained the idea of taking a trip to Canada and smuggling a non-crippled one across the border, but:

  1. That involves blowing most of a weekend.
  2. There’s always the (slight) risk of my purchase getting confiscated on the way back.
  3. I already have a desktop receiver capable of tuning such frequencies (completely legally; I bought it before the law became effective so it’s grandfathered).
  4. I also have an RTL2832 dongle on order which, together with a free software program, will be a software-defined radio that goes from about 24 to 1700 MHz with no such gaps.
  5. If I do find a bug, I’d rather do so with a 100% legal receiving device, to minimize the very real risk of governmental retribution should I be open to it by possessing contraband.

 

The Smart Phone Era Will End… Eventually

Published at 08:14 on 7 October 2015

Why? Several reasons.

Just because something can be done does not mean it should be done. This reason is currently lying dormant, as ours is a technology-fetishizing society and we’re still in the stage of being wowed and dazzled by how smart phones are even possible.

Just because something can be done does not mean it is therefore fashionable and popular. Another one that is currently lying dormant due to technology fetishism, and probably a much more relevant one than the above. Eventually, the fashionable will decide not to carry smart phones. People like movie stars and politicians in high office don’t need them; they have assistants to handle such duties. Jettisoning the phone will be a fashion statement that they are powerful and affluent enough to have such assistants.

This will be much like having a suntan went from being a sign of a common farmer to being a sign of someone privileged enough to have lots of leisure time outside of factories and offices. Even if those without personal assistants still have to carry a phone with them, they will opt for phones that are as small and inobtrusive as possible.

When will this happen? Who knows. It could take another ten or twenty years. I don’t think it will take significantly longer than twenty. That’s a generation, which is long enough for a new generation to see smart phones and obsession over them as yet another dorky adult thing. At that point, the way will be paved for the newest, most fashionable entertainment figures to establish not carrying much personal technology as a fashion statement.

Does my personal bias play any part in my forecasting this? Almost certainly. Yet while I personally want the smart phone era to end, that doesn’t change how the above factors all exist and lie waiting ready to manifest themselves. And personally, I’d want the new trend to happen faster than ten or twenty years, yet I’m not forecasting it will begin soon. So it can’t be written off as purely personal bias.

Icom R75 Tuner Repair

Published at 19:30 on 30 September 2015

It’s apparently a common failure mode for the rotary encoder which processes the tuning knob input to fail in the Icom R75 (and many other Icom receivers and transceivers). Mind did recently.

A bit of background: most radios these days are completely computer-controlled. There is no variable capacitor connected to the tuner; the radio synthesizes its intermediate frequency under computer control, and if there is a tuning knob, it merely is a device for sending input to the computer. It may appear to be more traditional than a set of up/down buttons or a keypad, but it’s merely a show. A useful “show,” as tuning with a knob is often more convenient than using buttons.

The symptom of a dead rotary encoder is pretty much what logic would tell you it is: the radio still operates, and you can change frequencies by entering them with the keypad, but the knob simply does nothing.

There’s several fixes detailed in the initial link above. Initially, I was debating what to do and procrastinating the job, because none of them are cheap (replacing the chip in the controller requires de-soldering and re-soldering a surface-mount device, since I don’t have any equipment to do that, I’d have to buy it, since I couldn’t locate anyone who had it to lend, and there goes the clear price advantage of that option).

Then my (un)employment situation resolved itself, so I did the easy out and simply ordered a replacement from Icom, which costs just under $90 (not the $130 it is rumored). From the repair manual (which you should definitely download, as it shows how to take the set apart so you can get at the encoder), the part number is 6910012480. That part number may differ for products other than the R75, so please obtain a service manual and check it to be sure in that case.

OK, I suppose the real “easy out” would have been to send the thing in for repair. That would have doubtless cost at least twice as much as fixing it myself did, I was reasonably sure what the culprit was (the symptoms made that pretty obvious), I’ve taken apart reassembled electronic devices many times, I know the precautions to take to avoid damaging things, and this particular repair didn’t even require me to warm up a soldering iron.

So it was pretty much a no-brainer to do it myself. That said, the way the Icom parts person was taken aback at a mere customer troubleshooting his radio then having the audacity to order a part with which to repair it did make me have a little bit of doubt. Which was unfounded: when put back together and powered on, I was rewarded with a fully-working receiver.

Different than I Imagined, but Nice

Published at 18:36 on 30 September 2015

P9291828wThe main difference between how I imagined the North Fork Skokomish Valley (a.k.a. the Staircase area of Olympic National Park) and how it actually was is that I had imagined it as being much more broad. In fact, there really wasn’t much of a flat valley bottom at all once one got above the campground.

It was, however, full of mile after mile of intact lowland forest, pretty much as I had imagined. It wasn’t all huge old trees (natural calamities do “reset the clock” in forests), but there still were an awful lot of them.

I also did manage to successfully make a couple of PSK31 contacts operating portable, so chalk up another goal for the summer season as accomplished.

The campground was surprisingly well-patronized, given that it was a weekday in late September and the water had been shut off. It’s probably just as well I didn’t even try to get a spot there last summer.

Sleazy Recruiter: Darshan Patel of Sumeru Inc.

Published at 15:14 on 28 September 2015

Let’s see now: How many ways does this say “pure sleaze”?

Ignores clearly-stated grographic preferences? Check.

Cut-rate Indian outsourcing? Check.

Sloppy mail merge that doesn’t even use or produce correct English grammar? Check.

Date: Sun, 27 Sep 2015 09:24:57 -0400 (EDT)
From: Darshan Patel <darshan.patel@sumerusolutions.com>
To: xxxxx@xxx.com
Subject: Urgent Requirement :: Release Manager :: St. Petersburg,
 FL : Direct Client Sent

Greetings,
 
We are sourcing for Release Manager with one of our
Direct Client in St. Petersburg, FL.  Please go through
to the job description below and of you feel comfortable
with the required skills and responsibilities, please
reply me back with your updated word doc resume and Table
with your details to darshan.patel@sumerusolutions.com or
contact me for more details at 202-370-6920.

Back from Camping / Heading out Camping

Published at 10:00 on 28 September 2015

Got back from the Mount Rainier faerie Gatherette yesterday afternoon, and didn’t quite finish putting everything away from that outing. Doing so was on today’s agenda, as was planning the rest of the week.

My new job starts with the new month on Thursday, so I have three more days of freedom. The idea of going to the Staircase area of Olympic National Park struck me. I’ve always wanted to go there, yet never have. And the more I’ve thought about it, the better the idea sounds:

  • One of the things on the list for this summer was doing some ham radio stuff on the HF bands while camping. I’ve finally got my portable HF transmitting antenna working properly, after spending all summer on it as mostly a “back burner” item,
  • As mentioned before, I’ve long wanted to see that area of the park. As in, for decades,
  • The weather forecast for the next few days is warm and dry,
  • I over-prepared for the past weekend’s camping, so I have leftover supplies begging to be used this season.
  • I’m really only in the mood for a quick, overnight trip, having just gotten back from a multi-night trip, and
  • One night is all I really have, since I need today to tend to various things around the house, meaning tomorrow is the earliest I can leave, and I need to spend Wednesday night at home so I can show up at the office on Thursday.

I call the above process, when I get an idea and the more it seems to dovetail nicely the more I think of it, “convergence.” It’s generally a sign I really should pursue it. So unless I think of unforeseen complications or such things unexpectedly come up, that is exactly what I plan to do.