Category: Computer technology

15kHz on LCD monitors

15kHz monitors

Most PC monitors made for VGA and later graphics adapters have a horizontal sync of 31.5kHz or higher, but most home computers including the Commodore Amiga line, as well as CGA and EGA for PC, have a hsync of about 15kHz as standard (PAL or NTSC). Many ‘recent’ monitors therefore do not properly show an image from those computers.

The Amiga has different video modes, and for example my A1200 can also output 29.29kHz hsync @ 58Hz vsync (Multiscan:Productivity) over a VGA cable (with a fairly common “DB-23” to DE-15 D-SUB converter).

Here’s my experience with monitors and the signals they take. Note that even within the same model numbers, the electronics can be different so there’s no guarantee that you’ll have the same experience with another monitor of the same brand and model.

Dell P2416D

A very nice WQHD (2560×1440) monitor with Displayport, HDMI and VGA. No ‘tv-like’ inputs, so I was surprised that mine does work with 15kHz signals. Not perfect (upscaling artefacts, interlacing looks wrong) but very usable. I suppose a real ‘flicker-fixer’ would be better, but glad it works.

On A1200:

Multiscan:Productivity (656×480, 58Hz, 29.29kHz) works fine, looks a bit ‘anti-aliased’ probably due to the upscaling.

PAL:High Res (640×256, 50Hz, 15.60kHz) and Low Res (320×256) works great, obvious sharpening artefacts (adjustable).

PAL:Super-High Res (1280×256, 50Hz, 15.60kHz) same as the other PAL resolutions, except that the aspect ratio is a bit weird. Workable on 16:9 setting.

Interlace (‘laced’) modes flicker, and are almost unreadable. Not recommended for use.

Visual Studio notes

Shortcuts

 

.NET notes

Just random notes regarding .NET

Windows: Assembly type Class Library produces .dll files / .exe is another type of Assembly. DLLs do not have an entry point (No Main()) so can’t be run on their own.

 

 

Becoming a developer

From business to IT

In my job, I’m making the transition from a business information manager (in Dutch: functioneel beheerder) to a developer. Our company uses C#, Javascript, HTML and CSS and various (Microsoft) .NET technologies. It’s an exciting change and I will try to keep this blog updated with my progress.

Prior experience

I’ve programmed before, but not in C# and not with .NET framework(s). As you can read in an earlier post, I have started to program in Javascript with NodeJS in my spare time related to the Homey home automation device. My OOP (Object Oriented Programming) experience is limited, and while I’ve been involved with the Agile Scrum method from the business side, it will be interesting to learn how it actually works on the IT side.

Learning resources

Besides on-the-job training with help from existing developer colleagues and possibly custom training from IT partners, there is a lot of information available on websites and in books. I plan on listing and discussing them here.

Microsoft certifications

Working in an environment where most of the IT is Microsoft based, it’s probably a good idea to get some official Microsoft certifications.

An example would be the MCSD: App Builder certification which itself consists of several smaller certifications/exams. One current way to get MCSD: App Builder would be to pass

  1. 70-480 Programming in HTML5 with JavaScript and CSS3
  2. 70-486 Developing ASP.NET MVC 4 Web Applications
  3. 70-532 Developing Microsoft Azure Solutions

However, these courses/exams expect multiple years of experience so it may not be realistic to get the certification within one or two years.

External link: https://www.microsoft.com/nl-nl/learning/default.aspx

Online training

These days, there are websites specialized in providing online training, using videos, examples, tutorials, etc. Some are paid, some are free.

Udemy

Paid training in many categories, usually involving pre-recorded video episodes and text-based training materials. From time to time, they have massive sales so you can pick up a course for about 15 euros.

Codecademy

Offering both free and paid online courses, mostly web development oriented.

Pluralsight

IT and Creative online courses

External link: http://www.pluralsight.com

Books

Still a good way to get information, these so-called books are pieces of paper, usually of the same size and thickness, bundled together. IT books usually have lots of letters and only a few nice drawings or photos.

You can also get most books in a digital form, like PDF. Common publishers include Microsoft Press, O’Reilly, SAMS and Prentice Hall. O’Reilly also has a website featuring many technology and business related books (not only their own books), called Safari (not to be confused with the web browser). It also includes video and online training. I have not used it yet, but I have read a few books by O’Reilly and really like them.

Tools

Obviously, a developer uses a lot of IT tools besides learning material. So here I will log what I’ve found and how I’m using them (or why I decided not to).

IDE (Integrated Development Environment)

Most programming happens in text editors. Often, those editors are enhanced for programmers. You can also add useful tools that help with versioning, checking the code, debugging the code and even compiling and deployment. If you have all (or a lot) of that, it’s no longer called an editor, but an IDE.

Microsoft Visual Studio, Community Edition

Visual Studio is Microsoft’s IDE, useful for several different languages including C# and ready to work with frameworks like “.NET”. The Community Edition is free to use for individual developers. Once I will actually contribute to our company’s code, I will have to move to a paid version that can also work with TFS (Team Foundation Server, basically a central repository for all code, the backlog and related documents)

External link: https://www.visualstudio.com/vs/community/

Microsoft Visual Studio Code for macOS

Visual Studio Code is a different product from the other versions of Visual Studio. Still, it’s an editor specifically made for programmers and supports many programming languages. I have installed it in order to develop NodeJS projects in Javascript on my Mac.

External link: https://code.visualstudio.com/

 

SodaqOne version 2 LoRa kit

First try at LoRa

 

I am a backer for The Things Network, but at the moment (december 10, 2016) the hardware isn’t ready yet. So I bought a LoRa node from Sodaq to try and see if I can get it to succesfully send messages to a TTN gateway. Here’s a log so far:

Athom Homey

On the 10th of February, 2016 I received my Homey by Athom. It’s a home automation hub which listens to you and speaks back, and can control all kinds of devices. It has just been released, which means there’s still quite some bugs. So I will list here what has worked for me, and what hasn’t.

Currently on version 0.8.39 (started on 0.8.17)

Bugs I’ve encountered myself:

Works:

Doesn’t work (yet ;):

LED ring color meanings:

Yellow: Homey is starting, please wait

Red: Homey is dead, please disconnect power and restart

Blue: Homey is downloading something, you can still use me

Pink: Homey is updating, do not disconnect power

Orange: Homey is listening to your voice command

White: Homey is analysing your voice online

Rainbow: Homey is operational and waiting for an event

REST API:

Find the bearer token to use with the Authorization: Bearer HTTP header in the REST API:

go to my.athom.com, log in to your account, copy the link address of the homey picture, paste as text in a text editor, write down the bearer_token

tip: use https://www.getpostman.com/ to create the proper requests

Programming for Homey

I got my first Homey app working thanks to the documentation at https://developers.athom.com/library/introduction. I am creating an app to control my Marantz NR1604 receiver over the network (using the telnet-like interface over TCP).

The app (driver) is now online 🙂 https://apps.athom.com/app/nl.marcovandenhout.marantz

It should also work for similar Denon AVR’s which have the same network interface.

 

Controlling Philips Hue lamps with a Pebble smartwatch

As far as I know, at this moment there is no direct way to control Philips Hue lamps using a Pebble smartwatch. A workaround is possible though, with the help of a webserver that sends the right commands to the Hue bridge as you visit a specific webpage. Here’s how I did it.

Short demonstration on Youtube

What I used:

The steps as I recall them:

apt-get install curl
curl -s https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
{        
"require": { "sqmk/phue": "*" }
}

and then running

composer install
<html>
  <head>
    <title>Turn on lamp 1</title>
  </head>
  <body>
     <h1>Lamp 1</h1>

<?php

require_once 'vendor/autoload.php';

$client = new PhueClient('192.168.1.2', 'thisismyhueusername');

try {
    (new PhueCommandPing)->send($client);
} catch (PhueTransportExceptionConnectionException $e) {
    echo 'There was a problem accessing the bridge';
}

// Manually send command to get light by id
$light = $client->sendCommand(
    new PhueCommandGetLightById(1)
);
echo $light->getName(), "n";
$light->setOn(true);
// Setting brightness (0 for no light, 255 for max brightness)
$light->setBrightness(255);
// Set color temp (153 min, 500 max), changes color mode to 'ct'
$light->setColorTemp(400);

?>

  </body>
</html>

To see what you can do with Phue, check https://github.com/sqmk/Phue and the Hue developers information at http://developers.meethue.com/

 

Apple IIc from Scryption collection

I recently bought some of the ‘leftovers’ from the Scryption Museum which unfortunately had to close due to lack of funding. Here’s one of the systems I bought from them, an Apple IIc with matching monitor and power brick. It powers up, displaying “Apple //c” and “Check Disk Drive.” messages. Hitting Ctrl-Reset gives me a working BASIC prompt. print peek(64447) returns 255.

Actually, I have two IIc’s with matching monitors (green, composite). Both work fine as far as I can see, but both won’t work properly with the external Disk IIc (could be a faulty Disk IIc). Internal drives are fine, managed to receive and write disk images with ADT Pro and a cable from retrofloppy.com!
Apple IIc s/n are C5 05WK XX and C5 29S3 XX. Disk IIc serial is 139997 (model A2M4050Z).

SMC SMCWBR14S-N2 draft-N router

Picked up another home router (the kind of device people have at home between their internet connection and computers) at a flea market today. I had hoped to be able to install a Linux-based third party firmware (like Tomato, OpenWRT, dd-WRT, etc) but couldn’t find a lot about this router. It appears to work fine though so I could at least play with it or use it as a cheap LAN switch. I’m not experienced in hacking this kind of device (besides uploading firmware someone else already made) but if you have any questions feel free to comment on this post. I can open it and post pictures if needed, or even do some hacking if I have the time.

Some info I found:

brand: SMC
model: SMCWBR14S-N2 aka “Barricade N Draft 11n Wireless 4-port Broadband Router”
part number: 752.9256EU

silver colored plastic housing, WPS button, 4-port 10/100 switch, WAN port, recessed reset button, 9VDC/1A power connection, two fixed antennas.

to open: unscrew 3 philips (+) screws on the bottom (2 of which are hidden behind the rubber feet)

visible chips:        RT2880F (Ralink 266MHz? MIPS processor also used in the Linksys WRT160N V2)
IC+ IP175C (www.icplus.com.tw 5 port 10/100 ethernet integrated switch)
2x ISSI IS42S16400B-7TL    (2 times 8MB RAM = 16MB of RAM memory)

default IP address: 192.168.2.1
default admin password: smcadmin
management page is at http://192.168.2.1/ by default