Computer History Documentaries – part 2

It’s been a while since I posted this list of some of the computer history documentaries and dramas that I’ve found most interesting, so I have a few more to recommend and add to the list:

  • Silicon Cowboys – fascinating documentary about Compaq, the development of their luggable PC, and their impact on the development of the PC Compatible market. (4/27/17 – this is currently on Netflix)
  • Bedrooms to Billions – The Amiga Years : incredibly well put together indie documentary about the Amiga
  • Bedrooms to Billions: documentary about the development of the home computer games industry in the UK and Europe. Includes many interviews with the original developers and many involved in the industry at the time. If you had any interest in computer games around the mid to late 80s in the UK, this is a must watch
  • Beep – documentary about sound and music development for computer games
  • Get Lamp – documentary by Jason Scott, covering text based computer adventure games
Nicola Caulfield & Anthony Caulfield (who produced the Bedrooms to Billions documentaries) currently have a new documentary called ‘The Playstation Revolution’ that just reached it’s funding goal on Kickstarter, but if you’d like to back it you can back via MegaFounder (linked from the Late Backer link on the Kickstarter page)

Updating/installing node.js on the Raspberry Pi

The latest versions of Raspbian (e.g. Jessie) come with an older version of node.js preinstalled. If you search around for how to install node.js on the Pi you’ll find a number of different approaches, as it seems there’s not an official ARM compiled version of the latest releases in the Debian repos.

This approach provided by this project has later versions compiled for ARM. Follow the instructions on their site to download and install from the .deb file.

Before you start, if you already have an older version installed (check ‘node -v’), uninstall it first. The version I had on my fresh Jessie install was from nodejs-legacy, so ‘sudo apt-get remove nodejs-legacy’ did the trick.

Calling Twitter REST api from JavaScript with OAUTH

I’ve started on a project where I need to call Twitter’s REST apis from a Node.js JavaScript app. I’ve built a Java app before that integrated with Twitter, but used a library to help with the OAUTH authentication. Looking around for a JavaScript library, it looks like node-oauth does what I need to do, so gave it a go.

Twitter’s API docs are pretty good, but I ran into an issue with node-oauth with an error coming back from:

POST /statuses/update.json

which returned this message:

{ statusCode: 401,
 data: '{"errors":[{"code":32,"message":"Could not authenticate you."}]}' }

which is odd because using the node-oauth library to authenticate and then call any of the GET apis with node-oauth was working fine. If you Google this error there’s numerous posts about this error for all number of reasons, so I’m not sure it’s a particularly specific message.

Here’s a working example for a GET:

First, use node-oauth to authenticate with your Twitter key, secret, and app access token and secret (which you can set up here):

var oauth = new OAuth.OAuth(
    'https://api.twitter.com/oauth/request_token',
    'https://api.twitter.com/oauth/access_token',
    config.twitterConsumerKey,
    config.twitterSecretKey,
    '1.0A',
    null,
    'HMAC-SHA1'
);

Next, using the returned value from this call, make the GET request (it builds the request including the OAUTH headers for you):

//GET /search/tweets.json
oauth.get(
    'https://api.twitter.com/1.1/search/tweets.json?q=%40twitterapi',
    config.accessToken,
    config.accessTokenSecret,
    function (e, data, res){
        if (e) console.error(e);
        console.log(data);
    });

Attempting a POST to update the status for this account using the similar api:

var status = "{'status':'test 3 from nodejs'}";

oauth.post('https://api.twitter.com/1.1/statuses/update.json',
    config.accessToken,
    config.accessTokenSecret,
    status,
    function(error, data) {
        console.log('\nPOST status:\n');
        console.log(error || data);
});

And this is the call that returned the error about “could not authenticate”.

Looking through a few other tickets for the node-oauth project, this one gave a clue – this particular issue was about special chars in the body content to the POST, but it gave an example of the body formed like this:

var status = ({'status':'test from nodejs'});

I would have thought passing a String would have worked, but I guess the api is expecting an object? Anyway, this is working, and looks good so far.

Retro Battlestation (update 2): dialing up a local BBS with the 2002 Power Mac G4 Quicksilver

Since my first post after receiving my 2002 Power Mac G4 Quicksilver, I’ve learned a number of things about this machine.

Following the Retro Battlestations subreddit, there was a group activity a while back to dial into the group’s BBS using, yes, a real dial up modem, from your retro machine of choice. So I thought I’d give it a go.

The internal modem is on a board

Internal modem missing

about the size of a pack of cards, and it’s normally screwed to standoffs on motherboard in the top left of the motherboard in this photo. It was obviously removed in this machine, so that explains why an internal modem was not showing up as installed.

Not to be deterred, I noticed you can pick up an Apple USB modem for just $10 online so I ordered one. Wanting to give it a go truely old-style, I wanted to dial in from OS 9 – this is when I found out that this USB Modem is a ‘soft’ modem, in that it works mostly in software, and no, it’s not supported on OS 9.

In OS X 10.4 however, it gets recognized correctly as an External Modem in the System Preferences panel:

 

 

 

 

 

 

For a dial up terminal emulator for the Mac, I found most references pointing to ZTerm , so got it downloaded and installed, and it sees the USB modem. Got the BBS number configured, and off we go!

 

 

Success! Dialed in to the Level 29 BBS! I was expecting to see ANSI colors in the text display, so not sure if I need to change a setting in ZTerm, but so far pretty excited this works!