Language of computing

I was reminded this Christmas Holiday season that computers do not ‘know‘ any human language, only binary, and that it takes humans to provide the translation from the machine to something human readable. And while most computer programing languages are ‘English’ like, they need not have to be in the English Language. It’s just what’s what happened first, and could be changed into another language at anytime.

This came to me in an inspired way, by listening to Carols, where non-native speakers were singing in latin, and other non-english speakers were singing in English, or German, or French. That you can sing in a language, and not know how to speak in it.

I suspect that is the same method that most non-english speakers program computers in ‘english like’ programing languages. By layering another translation over the programming, or like in singing, which uses another part of the brain, different from the part that provides language skills, another part of the brain is used to converse with computers. Thus making the point that people who program, do think with altered brains.

Prediction: Surface RT slab Fails

This one is the first prediction I’ll make for the new year. The Surface RT slab will fail in 2013. (as in period) Windows 8 on Surface Intel processors will be unstable, but the ARM RT will vanish entirely.

microsoft-surface-rt-014

UPDATE: Told You!!! Samsung to stop sale of Windows RT tablets

UPDATE 2: Somebody agrees? Microsoft’s Partners Refusing Windows RT OS

UPDATE 3: How many spikes must be driven into this Zombie before it dies Here: Windows RT not invited to Windows 10 upgrade party?

The end is near, for my Nokia N900

No, the USB connector is not loose, in fact everything is working fine. Well maybe the battery runs down and the tiny magnet on the prop went missing (fixed), It was the dissapearance of the Nokia catalog from the apt repository that has signaled the closing of the timeline of this product. Not of my choosing as the selections of Android, IOS, and others is just getting interesting. Some new and amazing mobile phone are on the verge of release there is almost no time to read about one then another announces something better.

In any case the Nokia N900, is very long in the tooth, being 3 years old this month. Still, I can sill do things with it that are not duplicated on any other phone, when was the last time you were controlling your (IR) Television, of opening an X-Term? Those days are long gone, and maybe not to be missed either, except by some of us geeks.

Now to choose…..

If it moves, it breaks!

Having been in IT for the better part of 30 years, I still sometimes forget, so when the New 500GB disk in my new laptop threw an error, I thought it was my fault. It wasn’t, it was, what is often refered to as ‘Infant Mortality’ a physical failure of the disk. The ‘Smart Disk’ technology on the drive controller built into the diskdrive identified the drive as ‘Failing’ and the Mint OS marked the drive read-only.

This allowed me to backup most of the the stuff I’d put on the drive to an external drive, but then it was useless. The drive has been sent back to PC Specialists for a replacement. The only good thing about this was the ease of repair of my new Clevo Laptop The disk removal took less than 5 minutes, two screws to open and remove the disk.

I am now using the laptop, booted from a new Mint installation on a 16GB SanDisk Cruser thumb drive. There isn’t much space left, and I get an occasional I/O pause with this setup, but try this with Windows, or a Mac and see how far you get.

But remember: ‘If it moves, it breaks!‘ backup often and more often!

My new Clevo W240EUQ Laptop from PC Specialists

This is the Laptop I have moved to. No longer a Mac user, never more than a PC user and never a Windows fan. I’m now entirely into my custom built Clevo W244EUQ laptop, built to my configuration by PC Specialist in the UK. Having done a lot of research and agonizing over prices and parts, my system was constructed and sent to me in, call it 10 days including shipping and weekends. And yes I’m writing this post from it. and I’m doing it from Mint 13 with the Cinnamon interface. Everything works, with the single exception that the SD card reader is not picked up. It also has one ‘hot’ pixel which only shows up during boot time, and I can live with that. I was amused and gratified that the laptop was NOT an exact match to the photos on the PC Specialist site, but I don’t think it was their fault as the Clevo site have many different configurations of this model laptop. On the positive, the laptop is better looking, and has a better keyboard than shown in the Clevo or PC Specialist photos. Mine photos are included below, though the first one isn’t perfect, because the top cover is so black that the auto focus couldn’t lock in.

The Specs are not stunning, about the same as a MacBook Pro. A Intel i5-3210M processor, 8 GB of ram, a 500GB 7200rpm disk with 16MB cache, 14″ screen 1366/768 HDMI, 1000 base ethernet, A/G/N Wifi, 2 USB 3 and 1 USB 2 port and a (currently) non-working SD Cardreader.

UPDATE:

      Benchmarks
-------------------------------------
CPU Blowfish	    4.070
-------------------------------------
CPU CryptoHash   343.235
------------------------------------
CPU Fibonacci	   1.819
------------------------------------
CPU N-Queens	   5.411
------------------------------------
FPU FFT		   0.972
------------------------------------
FPU Raytracing	  3.688
-----------------------------------

The trouble with Microsoft Windows

While reading some postings about old CPU’s the subject on implementing calculations came up, and someone mentioned an issue with windows calculator. I assumed that this was an artifact from Windows 3.11 or something, but it still exists in Windows 7, and I assume will exist in Windows 8.

> 1. Start the Calculator accessory.
> 2. Write 4 on calculator.
> 3. Take its square root. It will show 2 (the right answer).
> 4. subtract 2 from the 2 result.
> 5. It will show -8.1648465955514287168521180122928e-39 instead of 0 (zero; the correct answer).

This is just unacceptable especially knowing that the same bad calculation is carried forward into other areas like Excel Spreadsheets and what not. How can this stand up to any kind of quality control within Microsoft … because it does! And THAT IS the Problem with Microsoft!

Skype security, and privacy

Communications and privacy will always be a concern, any protocol a computer can generate can be broken, the question is how long, and how important.

If your ego about your importance in the world is justified by others, then expect them to be listening. You can only slow them down.

For the rest of us, who are meaningless, no one will take the time to break through tissue paper to listen in on us. And we are safe enough.

If you seek real security, don’t use a computer to encrypt your message, find a better way.

The real problem with a ‘Silicon Republic’ for Ireland

If Cork, and probably Ireland in general, ever wants to get a leg up on Silicon Valley, or ANY tech center, they will have to get the local booksellers to start carrying books on the subject. YES! I do know the subject is a moving target, and that good books are hard to find, but keeping NOTHING on the shelves doesn’t help at all!.

At Eason’s Books it looks like this, while having 5 full cases of food books, and two full ones on ‘spirituality’ :

Computer books in Eason's

Waterstones Looks like this, not any better:

Computer books at Waterstones

It would almost be better not to have ANY computer selection than to have these pathetic examples for selection.

Benchmarking the Raspberry-Pi

This is a crude and simple PI test against the Raspberry-Pi and a Dell Pentuim-4 (3.0Ghz)

The Raspberry-Pi
Starting PI…
x= 0.38631 y= 0.89070 low= 939239 j=1200001
Pi = 3.130797 ztot= 801773.75 itot= 1200000

real 0m1.900s
user 0m1.720s
sys 0m0.000s

Pentium-4
Starting PI…
x= 0.38631 y= 0.89070 low= 939239 j=1200001
Pi = 3.130797 ztot= 801773.75 itot= 1200000

real 0m0.099s
user 0m0.096s
sys 0m0.000s

This somewhere between 17x and 19x speed difference, but compairing a ARM RISC ALU with a Pentium’s CISC FPU is not a fair comparison either. In other testing I was doing, I only got a 5x difference in performance, roughtly the difference between the Raspberry-Pi’s 700Mhz and the Pentium’s 3.0Ghz clock frequency.

As I got this benchmark from an old site, I was amused to note that this benchmark only makes the Raspberry-Pi about 56x times FASTER than a MicroVAX-II, a system I cut my teeth on in my programming life.

Life’s relative, maybe I should write that down.

Note; the GPU was NOT part of the testing.

UPDATE: I managed to get this bencmark to run on a Arduino Uno (16Mhz) and the Pi is 126 times faster, So much for using an 8 bit processor as a number cruncher 🙂

UPDATE 2:

The new Raspbian Distribution, (after a recompile) produced this benchmark.

Starting PI…
x= 0.38631 y= 0.89070 low= 939239 j=1200001
Pi = 3.130797 ztot= 801773.75 itot= 1200000

real 0m0.539s
user 0m0.520s

sys 0m0.010s

or between 3.52 and 3.30 TIMES faster that the original Debian Squeeze distro. That makes it only about 5.44 times slower than the Pentium 4 at 3.0Ghz which I was detecting before with non numeric benchmarking. An interesting side note, due to the ‘Hard Float’ the timings incured 1/100 second of SYS time on the benchmark.

Learning Computers and Computing

I have been doing research into the nature of computers and I’ve been participating with with the phenomena know as Coderdojo. As part of my research I’ve been relearning Assembly language on several different architectures, and I’ve been experimenting with such things a the ELF Membership Card which I soldered myself and is currently running in front of me, along with a Arduino Uno. These both represent small microprocessor, very like the ones I personally started out on.

My first computer was an Apple II+ with a Motorola 6502 processor. But in any case, this act of relearning what a computer really is has made me aware of the lack of any real education ‘tools’ like I had. The sensation that is the Raspberry-Pi is fast becoming the CPU-du-jour of the developers, and as such may develop into a great educational tool. But, and there is always a but, it doesn’t stand on it’s own.

The group who developed the Pi have themselves noted that this is a developmental prototype, and that it needs to be distilled into a real educational product. It first need a keyboard, mouse, display a SD-Memory card and a power supply, to even turn it on. To make it useful as a net-workable it also needs a connection to hardwired Ethernet. It needs to have software preloaded onto the SD-Memory to boot properly. These are Geek requirements, anyone who can make this work, ALREADY has working knowledge and equipment, call it infrastructure, to make this work. What is missing in this is a standalone environment that is self contained and independent of both other systems, and other foreknowledge of computing.

My Apple II came with a keyboard, memory, built-in BASIC programing language, and displayed it’s output into a common Television, and recorded and loaded programs from a simple cassette player. All these elements were basic, everyday items in my household, and it would plug into the mains power directly, and display on a TV. It started up using Applesoft BASIC language and displayed on the screen everything I typed.

The Rasberry-Pi now needs this type of infrastructure. And while on this subject, and not to stir a pot, comes a language issue. The apple I learned on came with BASIC and in fact I still have a fondness for BASIC. The current arguments in the ‘Programming Education’ discussions are that a language like BASIC teaches BAD programming practice. Be in old, I had to remember the motivations of BASIC and was more enlightened to connect this with my reeducation about Assembly language. That was the first reason for BASIC! BASIC is and was engineered to, more or less, follow the structure of the instruction set of the CPU itself. Where language snobs see bad ‘GOTO’s in BASIC, I see machine language Conditional and unconditional ‘Branch’ instructions. Where I see a BASIC with line numbers (not all BASICs have them) I see ‘Linear’ machine instructions.

One element of the Raspberry-Pi that also misses the mark, is the nature of ‘abstraction’ while I admire the Python of the Pi, and the ‘C’ like language of the Arduino, what is missing is the distance between the learner programmer and the actual machine. It may even be a serious problem as the machine begins to look like magic, and that it can be made to do anything.

The programming of the RCA 1802 chip contained in the ELF Membership Card demonstrated what the creator of the card referred to as ‘Bare metal programing’. A simple program that I used to test the ELF with consisted of 12, 8 Bit instructions, writing (essentially) the same program for the Arduino required downloading of 998 8 Bit instructions (not including the 512 Bytes of the boot loader). To be sure there were probably a lot of libraries included in that download. Helpful, but masking the actual operations of the CPU from any real educational product. Just like that Arduino, the Raspberry-Pi will mask the CPU, and the associated hardware by a boot loader (BIOS), followed by a full, though striped to minimum, Linux kernel, and a GUI in the form of LXDE X-Windows, followed by Python language. That’s a lot of abstraction!

All these things may be irrelevant in the long term, one thing may lead to stimulation to explore the ‘Bare Metal’ hardware of the Raspberry-Pi while allowing a positive feedback with easy ‘wins’ on top of the abstraction provided. Still I believe we are missing an opportunity to produce the next generation of computer wizards. I also believe that someone needs to integrate the Rasberry-Pi into a OLPC type of device.

They both blink

This is my ELF Membership card (in the black box) running a 12 byte program that adds up to 255 then turns off the light, normally this would be about 1 per second, but I’ve been tweeking the speed dial as it has no ‘realtime’ clock. Using this in comparsion to the new Arduino Uno running it’s ‘Blink’ program. It is blinking to a realtime clock timed to the 1000 of a second and matches the ajacent clock. The Arduino (aside from the 1024 byte boot loader) required 998 Bytes to perfom it’s feat.



Both the RCA 1802 CPU in the ELF and the Arduino Uno CPU (ATmega328) are both 8bit processors with 32Kbytes of memory, the 1802 is (mostly) clocked to 2Mhz, and the Uno is running at 16Mhz.