Category Archives: articles

HP65 Program Codes

When you program a programmable calculator like the HP65 you press buttons and it remembers the steps you are telling it. Then when you run the program, it re-does those button presses again to calculate the result. Every time you run the program it does those steps. This happens even though you only entered them once. That’s the point.

Internally, the calculator stores a program code for each key press or combination of key presses. With the HP65 it is mostly “one key press, one stored code” but there are a few combinations it recognises and saves as one program code. These are called “merged program steps”.
Continue reading HP65 Program Codes

HP65 Default Program

This is what ends up in program memory at startup.

000: 63 =077
001: 61 =075
002: 43 =053
003: 30 =036
004: 8  =010
005: 20 =024
006: 42 =052
007: 43 =053
008: 28 =034
009: 14 =016
010: 50 =062
011: 42 =052
012: 43 =053
013: 27 =033
014: 8  =010
015: 19 =023
016: 42 =052
017: 43 =053
018: 26 =032
019: 13 =015
020: 42 =052
021: 43 =053
022: 24 =030
023: 17 =021
024: 42 =052
025: 0
026: 0

Continue reading HP65 Default Program

HP21 Emulator with 12 Digit Display

It’s updated! I’ve finally fitted the 12 digit display into the HP21 emulator.

hp21-12digits

It has also had a bit of a tidy up internally and it has some of the new features from the other emulators. You can copy and paste from and to the X register, and you can see what is in the stack (and memory) at any time.

The product page is here. I think you’ll like the improvements.

HP67 Emulator Released

A funny thing happened on the way to fixing a HP21 emulator.

I’d been updating the software to deal with a 12 digit display and started with the 15 digit display in my HP67 emulator. I haven’t fitted the original fix yet, but on the way I ended up with a HP29 emulator and now an updated HP67 emulator.

The ’29 doesn’t have a card reader so, in the real world, every time you want to load a new program you have to key it in by hand. Life was a bit better with the ’29 than most prior models because it remembered programs even when it was switched off. Hence you no longer had to key in the same program again; only different ones.

With the HP29 emulator, I wanted to make this task easier and I came up with a method that allows pasting a pre-written program in, or copying an entered one out. There were a number of other niceties added that should always have been present in my original HP67 calculator emulator. So, having figured them out for the HP29, I wanted to retro-fit similar things to my HP67 calculator emulator.

Very few got to see the original that the recent spate of emulators was based on because I wasn’t parting with it unless someone paid me to change my mind. The later ones have been released for free so the updated HP67 emulator is now being released for free too. Hopefully you’ll like it.

It looks like:
gss-hp67
and runs on any phone, tablet or browser (that supports HTML5).

I liked the copy and paste idea so much I added that to the HP67 emulator, even though it has a card reader. The twist is you can copy and paste program or data “cards”; not just program information. These include settings such as the angle mode and the value of the flags. They also include labels for the “magnetic” card for when you slide it into the slot above the A to E keys.

Copy and Paste also allows it to work on phones as access to the real filesystem, especially from a HTML5 page, is difficult and varies from device to device. That said, the card reader is functional and allows reading and writing cards from and to the HTML5 storage on the device. If you want to put a card into a regular file, load the card and then use copy and paste it wherever you like.

One of the other changes was inspired by Jacques Laporte (www.jacques-laporte.org). He has been updating his microcode simulator and added a tab to the right of the card slot. Clicking that loads a “mag” card just like on the real thing. I’d already been doing something similar (the entire area above the A-E keys is click sensitive) but seeing the ” Crd ” in Jacques’ simulator inspired me to make a few tweaks. The original just fired up a page to allow you to choose a card to load or to name one to save on (or reuse an existing one). This version puts the ” Crd ” message in the display just like the real thing, and then waits for you to tap/click the card slot. That sure brought back memories. I hope you like it.

The ” Crd ” message:
gss-hp67-crd

The product page is here.

HP29 Emulator Released

It has been available for a couple of days now and I’ve just tidied the website up enough to be able to talk about it.

A HP29 calculator is fairly unusual. There are quite a few emulators available for other HP Calculators, especially the HP35, HP45 and HP25. And of course for the more recent ones such as the HP41 and HP48. However, the HP29 hasn’t had the same degree of interest and that is surprising because it is a very good calculator.

The main one I found was MikeT’s emulator which is part of a wonderful collection here.

Mike’s is really nice and I love that it is part of a set. The only downside is it won’t run on my phone. So, as part of a project to change my HP67 emulator display software to work for other “woodstock” models which have a 12 digit display, I did a HP29 emulator. The woodstock series were the HP21, HP25, HP29 and HP67 (plus the financial models). The HP67 had a 15 digit display like the “classic” series (HP35, HP45, HP55, and HP65). HP changed to using a single digit to display both a number and a decimal point. Previously, the decimal point had it’s own position and showed as ” .” instead of “n.”. Enough of the background.

The emulator looks like:
gss-hp29

Tapping the display brings up a menu that will show you a lot of information, including a full listing of what is in program memory. It isn’t just a listing either. You can edit it right there in the page and when you exit that page the calculator program gets updated too. The other plus with this approach is you can copy and paste programs in and out of the calculator even though it didn’t have a card reader. That’s much better than keying it in by hand.

The software doesn’t care about the line numbers so you can paste two programs together and it will merge the two properly; even if it starts again with line one further down. Exiting and returning to the page will renumber them properly.

The product page for it is here.

Scribble Updated

I’ve just added “touch support” into Scribble. That allows it to sense your finger drawing on the screen on an iPad (and probably iPhone). As a result, you can now use Scribble on those devices.

Interestingly, adding touch support stopped MouseClicks so you got drag but lost click (the buttons). I’ve now added touch support to the bit that needs it – the canvas – and everything else stays the same.

There are still issues though. Resizing looks dreadful on an iPad and the font sizes are weird. There is more to do ….

The product page is Scribble.

HP21 Emulator Released

Well, actually, it has been released for some time now; but I’m planning on getting a few articles up and I want the order right. According to the server timestamps, it has been up since 13 March 2012.

The emulator looks like:
gss-hp21

You can click the display to call up some additional options. The most important of these is “Help”.

You can find out more about the calculator and the latest range of emulators on the HP-21 topic page.

Opera Mobile 11.50 on Nokia 5230 Series 60 and HTML5

This is a browser you can install on a Nokia Symbian phone. It has better HTML5 support than the default.

The HTML5 test site scores the browser as 286 (compared to 94 for the standard browser) out of 475.

The details are here.

Key things (in my opinion) are:

Canvas 20/20. 2D and Text drawing are supported.
User Interaction 0/36. Drag and Drop – No.
Web Apps 15/20. Application Cache – YES.
Communication 15/36. XMLHttpRequest (Level 2 No, but original is there).
Storage 15/20. Local Storage – YES.
Workers 15/15. Web Workers – YES. Shared Workers – YES.

Very promising (but still no drag and drop).

Nokia Browser 7.3.1 on a Nokia 5230 Series 60 Version 5.0 and HTML5

This is the standard Nokia Browser for Symbian phones with an Software version of 51.0.002.

The HTML5 test site scores the browser as 94 (as at the 31st of March 2012) out of 475. The HTML5 standard is still evolving so the score may change with time.

Okay so we have a score, which is good for comparisons, but what does it really mean for developers and users.

The details are here.

Some of the features I find important are:

Canvas 20/20.
It understands the canvas element and 2D and Text drawing.

User Interaction 0/36.
Drag and Drop – No.

Web Apps 4/20.
Application Cache – No.

Communication 9/36.
XMLHttpRequest – Partial.

Storage 0/20.
Local Storage – No.

Workers 0/15.
Web Workers – No.

All up it is a bit disappointing but one can work around some of the shortfalls.

Nokia has its own version of local storage that can be tested for and used (leaving us still doing browser specific checks in HTML5, for now).

Installing Apps on a Mobile Device

There are three basic ways to get an app on to your device.

App Store

The most common is probably: going to an app store (eg Google Android store or Apple iPhone), picking one, downloading a file directly to your phone (or to a desktop device and through a USB cable to your phone). The file is in an appropriate “installer” format and includes everything needed to install the app on your phone. That means: the program and also any settings and other files needed. Typically these include the program name, the icon to display, the program id (often used as part of where to install the app), and the program version. It can also include a list of what permissions it needs from the user in order to run (access to: internet, location, sms, etc).

On an Android phone the file ends with “.apk” and the program is always a set of java classes. You can do HTML apps on Android but these seem to ship as a set of resources (files / pages) that the java app uses. Your java app simply calls the built-in web browser and turns on a bunch of normal settings such as javascript support.

A Nokia S60 phone is very similar. It’s file ends with “.wgz”. The same settings, files and permissions are present even though they are in a different format. The program is normally a native executable. That is, it runs directly on the device hardware. However, it can also be a set of HTML pages which the installer will automatically associate the built-in browser with.

On Apple the file ends with “.ipa” in the Apple AppStore (see wikipedia .ipa). This is really a “.app” file with some extra bits for the AppStore. (See wikipedia .app but ignore mention of Symbian and note that iPhone also uses an ARM processor).

The install file is really easy to use.

HTML5

The second way to get an app on your device is actually easier. It is SO easy you probably don’t even know you got it.

HTML5 apps on the web include the ability to be downloaded onto your device for speed / performance / bandwidth reasons. If you’ve used one of these, it is on your phone. Once you’ve got it, you no longer need access to the internet. You no longer have to pay for downloaded data (it’s already downloaded). From a developer’s perspective it is the ultimate in making life easy for the user. It is a zero-click download.

The drawbacks are: you don’t even realize you’ve got it, and – at present – none of the browsers contain an uninstall option for these apps.

Probably this will change with time. I really love the simplicity of the installation but we probably need browsers to: pop up a message saying “Application installed” after it downloads the files in the HTML5 manifest, and list installed apps and provide a “remove” option.

The worst fix, which we get sometimes, would be to ask a thousand questions during the install (Are you sure you want to download file 3 of 17? what about file 4? where would you like to save this? An application is trying to install …, Some files can be harmful …, The internet can be harmful …, Technology can be harmful … and so on).

I already have to tap about eight times to call someone on my phone. Let’s not mess apps up too.

ZIP file

The final way to install an app is the hard way. It is a ZIP file containing the program, icons and settings. You unzip the file and copy the contents to your device. You may still need to do some steps to register the app on the device. With a HTML app this can be: open your browser, point it at your installed index.html file, and click the “save favorite” option.

Phonelets and Tablets with Keyboards

As far as I know, these don’t exist – but they sound like good ideas to me.

A Phonelet is a mobile phone that is bigger than the current phones but smaller than a tablet. The idea here is to get a larger physical screen size.

Phones are great and they are getting to the point where they are almost the computer you have in your pocket (not yet, but getting there). Their biggest current drawback is screen size. Pixels have gotten smaller so we can view full webpages on phone browsers without having to pan around bits of it. We no longer use special webpages for mobiles with special formats for writing those pages. We use real HTML and real sites. We cram 640 or 800 pixels into phone browsers. BUT, they are very tiny pixels on a fairly small physical screen.

What if we made phones a bit bigger? Not so big that you can’t force them into a large shirt pocket nor too big to go into a handbag but big enough to make using them easier with big fingers. We wouldn’t need to zoom in to get something big enough to touch. We could just use it.

The tablet has finally become mainstream thanks, I believe, to the iPad. It is convenient. It is large enough to use at the office. It is much easier to touch something than to move the mouse into the right spot (where is the cursor at the moment?) and click. You no longer need to move a PC, monitor and keyboard around (which is why laptops got invented).

The tablet’s downside is it isn’t very ergonomic in an office environment. You stick it on the desk and you spend your time looking down at the desk. That can’t be good for the neck or back. It would be better if you could put it in front of you and prop it up somehow so that it doesn’t slide down. That’s where crossing a laptop and a tablet comes in.

What if you had a tablet with a keyboard attached as a cover? You could fold down the keyboard and adjust the position of the tablet to be a good angle to use. Laptops are certainly better than tablets in that respect. But laptops aren’t great in this respect either.

What if you could separate the keyboard and the tablet by some distance so that the two aren’t hinged closely together but the screen bit could be moved further back and up?

The two bits would need to be connected by something solid but fold-up-able. It would need to be adjustable so you could put the screen in a good spot.

The biggest issue I see with todays light weight keyboards is having enough weight in the base to support the tablet without it tipping. I guess that’s why laptops have the electronics under the keyboard rather than in the screen. Perhaps a mod to the connection between a touch screen laptop screen and base is more practical…

Update 19 Feb 12

What about phones you could plug an external (touch) screen into, and maybe a keyboard?

What about doing it all with bluetooth so there are no wires involved and you wouldn’t even have to take your phone out of your pocket when you sit at your desk?

Sure, bluetooth won’t support the data rates required – yet.

Phones have browsers. You can surf, lookup information, run web based software like Google Docs or the latest cloud-based Microsoft Office. If your enterprise can get past the idea of secure connections from the net you could even login to your workplace and run corporate intranet web-based applications.

The notes you type into your phone, the appointments you save at your desk, what you said in an email; all travel with you. They are already in the phone in your pocket. You used the phone to create the lot. Work provides the desk and the touch screen. You provide the computer. It would be the ultimate in BYO computing.

HTML5 and Mobile Device Performance

I have been tinkering with the puzzle program.

One of the difficult bits with puzzle (that the user never has to deal with) is cutting the picture up into tiles. I am going to put something together to do the hard work; but I haven’t yet. However, in this modern era of HTML5 and with me being very impressed with how far Javascript has come, I thought I’d build it into “Puzzle”.

The new version of Puzzle is here – but don’t try it on a mobile device.

 
 
Things that are new with it are:
– you can change pictures, and
– you can change the difficulty level.

As suggested above, picking a picture results in the application slicing the image up into tiles. You could, in theory, point it at any picture on the web and have it use that. It’s theory because there isn’t a choice for “use own picture”; but it would be a simple change.

Also, given that I’m splitting the picture up as we go, it becomes possible to change how many tiles it get split into. This leads to the difficulty level setting. With this version you can choose the grid size. Instead of four rows by three columns, you can have five by four or six by five. Twelve tiles becomes up to thirty.

Performance unfortunately takes a turn for the worse.

The individual tiles all exist in browser memory as PNG files. They don’t exist on the web. They aren’t cached. Every time you move a tile the browser has to convert the PNG format to a set of pixels and redraw the tiles that move. It takes time.

On a very low end laptop the time required was noticeable. On a mobile device it would be agonizing.

I think the performance hit is coming from the internal conversion from PNG but I don’t know as yet. I shelved ideas for even larger grids.

The new “Puzzle” requires the HTML5 canvas feature. Some performance-related ideas to try are:
– display the canvas element and do the visible moves using it.
– don’t change what image is in what box – move the box coordinates instead.
– cut the images up beforehand and do a HTML4 version.

The canvas element is intended for this sort of thing so there is a good chance that image manipulation and display using it will be faster than loading images into other HTML elements.

If the browser has gone to the trouble of building a bitmap for an image there is a good chance that moving that image’s location on the screen will take less effort than rebuilding and redrawing the bitmap.

The HTML4 approach would establish a baseline – how slow/fast was this before HTML5? If it also proves practical, well that isn’t a bad thing. What we’d lose is the ability to use any picture and to cut it to any number of tiles.

Nokia and HTML5

Well, I am really quite disappointed; and a bit surprised.

About 10 years ago I lived on what was known as “the bleeding edge”. It is a term referring to that area past “the leading edge”, an area well and truly past what is possible and into the untried, untested, and often unfeasible. It is the stuff of science fiction before it becomes science fact. It was a good place to be, with many satisfying “wins” despite the also numerous dead-ends. It involved a small company with a very innovative view of the future and which did amazing things.

Unfortunately the bleeding edge is aptly named and being too far ahead of the present led to the death of that company.

I joined a large, safe, traditional company and managed a range of teams who did traditional things. They did them well and they included a few small and safe innovations. The company stayed well away from anything involving risk and the easiest way to cancel anything was to discuss the risks.

My time outside of work has also focused on the “tried and tested” and well-established; though with some regret more recently.

HTML5 came out a little while back and seems to be the current technology. It is established. It is in use. It isn’t new and untried. It isn’t “bleeding edge” and, whilst it is nearby, I wouldn’t even call it leading edge. It is in use. We are past the early adopters and at the start of the masses – where “everyone” is getting on-board.

So I am indeed surprised to find I have taken my readers and customers beyond the realm of the possible.

I have a Nokia 5230 phone at present. It is a bit old these days, having come out in December 2009 or early 2010, but it does still get software updates. It got updated using Nokia/Ovi Suite last year to something like version 40.0.003 and the browser speed improved considerably. Javascript (software that runs in the browser) became practical and Java’s claim to fame, “write once, run anywhere”, came true with HTML applications and Javascript (no relation to Java).

The latest “standard” for HTML is HTML5. Internet standards start as discussion papers, get introduced, become widespread, and are formalized as a standard long after everyone is using it. So make no mistake – this is the current standard. Browser manufacturers are releasing browsers that work with it and are bragging about how much better theirs is at HTML5. It is not just the latest releases of the browsers either. HTML5 has been supported by Internet Explorer from IE8 (see quirksmode.org). According to Wikipedia, IE8 “was released on March 19, 2009”. At my time of writing that is almost three years ago. The current release is IE9 with IE10 due out real soon. A similar situation exists with Firefox, Chrome, and the other browsers. HTML5 is mainstream.

In the phone world: Android has HTML5 support, as does Apple, but Nokia is sadly lacking. There is a HTML5 compatibility site which ranks browsers. At the time of writing, Nokia doesn’t appear – not even at the bottom of the list.

Nokia has a number of new releases imminent.

The first (Ver 50) has been out for a while but, as I bought my phone through a reseller and the reseller hasn’t packaged their customizations up into their version of the new release yet, it wasn’t out for me. That got solved by converting the phone to the normal Nokia release and then downloading the update. To my dismay, whilst having lots of nice things in it, it still doesn’t support key HTML5 features. By “key” I mean LocalStorage and Canvas which are the two enhancements I have been using. It does have some HTML5 support and scored 123/450 at the HTML5 test site (see the nokia 5230 blog)

Symbian Anna is the next release. It has the same browser as Ver 50 for the 5230.

Symbian Belle is the one after that. unleashthephones.com did a review which put Anna on a Nokia Symbian v3 phone at 96/450 and Belle at 152/450. (The Nokia 5230 runs Symbian v5).

The best solution seems to be to install a different browser. Opera has been recommended on other sites for the 5230.

Update 16 Feb 12

Nokia Browser 7.3 and 7.4 that come with the Anna and Belle releases do not support HTML5 to any great extent.

Nokia Browser 8.5 that comes with the MeeGo 1.2 Harmattan OS on the Nokia N9 does a reportedly full implementation of HTML5 (www.developer.nokia.com/Develop/Web/Documentation/).

You can save information from the browser on S60 devices but only with proprietary Nokia function calls (Nokia’s Javascript WRT object) and these are only available if you create a Widget (locally installed Web App).

Countdown Timer

I am terrible with time.

I promise the kids I’ll be back inside in 10 minutes and 30 minutes goes by. Time just passes at a different speed when you are engrossed in something.

There are apps to solve this problem. They go on your phone and I even installed one. My phone went flat. It just chewed up the battery at a great rate of knots finding out if the time was up yet.

Okay, I’m in a phase of doing apps myself and I haven’t had one up for a few days so here is a possible solution (see picture).

You can run it here.

I don’t know if it is any better on phone batteries as yet.

HTML5 Puzzle

My youngest daughter got a tile puzzle a few days ago. You know, the ones where there is one blank square and you slide the tiles around to make a picture.

Anyway, I liked it so I thought I’d do one for your phone. It looks like:

You can click “Show” to see what the picture looks like and click “Start” to jumble it up.

You then click on a tile to move it, and any others in between, towards the black (empty) square. Keep moving the tiles until it looks like:

It can be found here

HTML5 Scribble App

There is a very nice Scribble application that allows you to draw on any modern phone / tablet / iPad or PC.

It looks like this:

You can try it at www.wintellect.com.

Here is the same application rewritten to suit any size phone, with a button for “Clear”, and with changes because my daughter wanted a finer sized pen. Unfortunately it loses the nice chalkboard for simpler sizing.

It has been trialed on an iPad and it doesn’t work. The iPad doesn’t support “drag and drop” which means you can’t draw by moving your finger (or a stylus) around. I’m guessing it’ll get fixed in an update at some point. There are things other than Scribble which need you to be able to drag.

The latest version looks like:

You can get it here

How to Connect a Nokia Phone to the Internet using the USB Cable

IP Passthrough (Nokia Network Bridge) is a tool that allows you to connect your nokia mobile phone to the internet via the USB cable and your PC.

This is good because you don’t need a data plan and the associated costs for your mobile.

It has a couple of “gotcha”s:
– the PC (or laptop) MUST be connected to the internet via wire. It doesn’t work with WiFi.
– the PC (or laptop) MUST be running Windows 2000 or Windows XP.

It hasn’t worked for me, as yet, because:
– my laptop has XP but uses a WiFi connection to the net, and
– the desktop has Vista on it.

Installing on Vista with Admin rights doesn’t solve the problem. It uses a legacy Control Panel Application that may rely on underlying OS details that have changed.

If you have a recent model mobile phone, you can probably connect using WiFi to your home, office, or other WiFi network for internet access.

If your phone is an older model without WiFi, the options are:
– get the above (or a similar product) working with vista or 7,
– plug the laptop into the router/modem with a cable, or
– get a mobile data plan.

The last option is the long term solution. In this era of cloud-based computing, it no longer makes sense to have a device that doesn’t connect to the cloud.

4G

Well, it looks like it is all starting to happen.

We had GSM phones (2G) for quite a while and then, when everyone was comfortable with that (market saturation), we moved to 3G phones. Despite my comment about the market state at the time, there were also very good technical reasons to move to 3G and so we find ourselves in a mainly 3G world today.

With most new things there is a “catch 22”. Manufacturers need a big enough market for it to be worth their while, yet the public needs to see enough manufacturers for the public to become a market. You can come up with the technology; but – no matter how good it is – if no-one buys it, you go broke.

What I am finding interesting is that the 4G technical war seems to have settled and we have reached the standardisation stage. This lowers the risk for manufacturers and the consumer market is beginning.

4G is technically very nice. It is a more consistent solution for an internet age. We lose legacy “connection-based” communication paths and move to Internet Protocol for the whole system. Yes, these are phones and no, you can’t talk or listen any faster. However, most people use their phones for much more than voice these days. Modern phones do a lot of web surfing. This can be looking stuff up, calling up a map or a street view, updating your facebook status, or tweeting your thoughts. 4G looks at all communication, even voice, as data and transfers that data the same way. The wikipedia article is 4G

4G offers better data speeds and this means streaming movies, video conferencing, and office work from your phone. Okay, phones are small and tablets are the rage, but tablets connect to phone networks too. And doing office work on a tablet whilst enjoying the sunshine on at the lake shore will appeal to many.

So is anyone making 4G phones? Does anyone have a 4G network? The answer is, “yes” to both. They are starting to appear:

An Android 4G phone from Verizon
Samsung 4G phone for Sprint
Microsoft 4G phones coming
4G Tablets for T-Mobile

Sure, this is in the US and they are often different to the rest of us, but 4G is starting to pop up elsewhere too:
Australian Telstra 4G network