Redneck Antenna Design

The problem: Really crappy cell modem signal strength at a site in rural Virginia.
The solution (for now): About 1m2 of aluminum foil, made into a rough parabolic shape.
It ain’t pretty, until you look at the signal strength meter. -115dBm to -100dBm, which means the difference between being online or not. I’ll take it.

(Click for larger)

Redneck Cell Antenna
Redneck Cell Antenna - Closeup

Posted in Analog, Internet, RF, System Administration | 3 Comments

Malware blamed for plane crash

A recent article notes that apparently the crash of Spanair flight 5022 had as a major contributing factor a compromised warning system computer, which resulted in no audible alarm when the pilots attempted to take off with the flaps and slats retracted. (This is a Bad Thing.)

Here’s the scary part: The computer had apparently been compromised due to malware that had somehow been installed (suggesting to me that it was likely running Windows or another popular consumer operating system.)

I’m all for the use of modern technology in aircraft; engine management computers and other systems can make aircraft safer, more reliable, and much more efficient. Of course, as with all aviation systems, they ought to be thoroughly checked out before being allowed to control critical aircraft functions. One corollary to this is that large, complex, unverified operating systems should *not* be used to run systems in charge of essential functions. I sincerely hope that there has been a misunderstanding in this case. We don’t yet know all there is to know about aviation safety, of course — but not using consumer-grade software in critical systems should be as big a no-brainer as making sure that the wings are bolted on securely.

Posted in Coding, Current Events, Digital, Digital Citizenship | Leave a comment

Old-school BASIC

We need more programming languages like BASIC. Not the thoroughly modernized, object-oriented, jazzed-up descendants of the language — I mean the original BASIC. Specifically, a language which can be readily understood by anyone reading it who has a background in algebra — and one which can be easily learned in a few minutes’ time.

I recently came across (okay, went looking for and found) the original paper describing 1964 Dartmouth BASIC. It’s amazing how clear the example code is — and how well-thought-out the stated goals of the language are.
Compare the following “Hello, World!” programs in BASIC and JAVA…


BASIC:
10 print "Hello, World!"
20 end

 


Java (Android code):
package com.paad.HelloWorld;

 

import android.app.Activity;
import android.os.Bundle;

public class HelloWorld extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}//onCreate
}

Java (required XML for Android):
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Hello, World!"
/>
<LinearLayout>


That’s a LOT of crap, just to put “Hello, World” on the screen! Not only that, but how would a beginning Java programmer know all of the names of the required functions, and which parameters they take? Java is supposed to, among other things, shield programmers from the “complexity” of languages like C. I think I’ll stick with the “complexity,” thanks.

 

Not only that, but an additional point of failure has been introduced: the code now depends on a schema that resides on a webserver at schemas.android.com. Should this webserver go offline (for instance, the Android platform goes out of fashion, the organization running the site goes bankrupt or just doesn’t have a good backup policy in place, or whatever), the code is now broken — dependent on an external reference that is no longer there.

Posted in Android, BASIC, Coding, Digital, Java, Nostalgia | Leave a comment

Party (or program) like it’s 1981!

Probably every computer geek has fond memories of his or her first computer. I know I do. I’ve had many computers over the years, including many which I’ve built — but your first computer is always special; it opens the door to the magical world of programming.

My first encounter (as far as I can remember) with a computer was through a teletype terminal that my uncle (a Ph.D student at the time) had set up in his apartment. After dialing in to the school mainframe, it played a mean game of Tic-Tac-Toe.

A few years later, my parents bought me a Timex-Sinclair 1000 for my birthday. I might have been dimly aware of the TS1000’s existence, but was surprised to actually have one. After hooking it up to the TV and reading a few pages of the manual, I had written my first BASIC program. I don’t remember the exact listing, but it was essentially a version of the ubiquitous “Hello, World!” program — writing text to the screen in an endless loop.

Flash forward to 2010; my homebuilt Core i7 is far faster and more capable — not to mention connected to the Internet — but sometimes I still miss the Sinclair.

Apparently, though, I’m not the only one. I recently came across “EightyOne” — an amazing freeware Sinclair emulator from chuntey.com. It was done right, too. All of the Sinclair quirkiness is there — the oooold-school BASIC, complete with line numbers and LET statements; the multipurpose keys on the keyboard (what you get depends on which mode you’re in); the “Fast” and “Slow” video modes (more like “slow” and “slower,” but hey.) There’s even a whole set of NTSC TV signal options so it *really* looks like the real deal — video degradation and all — even on a modern LCD monitor. (Non-purists fear not; these effects can be disabled — but they really do add to the ambiance.)

The EightyOne Sinclair emulator

The EightyOne Sinclair emulator (click for larger). (The background is my Win7 desktop: Parc Jacques-Cartier, QC)

If you, like me, discovered programming (and all of the really bad-but-fun programming habits that old-school BASIC fosters) on a Sinclair, go download yourself a copy. It’s like stepping thirty years back in time. (…and yes, it *does* have the capability to save and load programs to a .wav-based “tape drive.” I’m sure someone out there has a collection of Sinclair tape programs…)

Here, too, is a great example of geek humor: it has a “RAM pack wobble” option! Many Sinclair programs required a memory expansion pack that would increase the default 2K memory to 16K. The problem was that this (relatively heavy) memory pack was attached to the computer via a flimsy card-edge connector in the back. It had an absolutely uncanny habit of wobbling (causing the system to freeze) at the worst possible times, like thirty minutes into a great Chess game. I swear that connector was designed by Murphy himself.

This isn’t just an emulator; it’s a work of art. Add a Sinclair mock-up keyboard and put the LCD into an old TV set, and it could easily pass for the real deal.

Posted in Coding, Digital, Nostalgia, Toys | 1 Comment