Monthly Archives: January 2016

The Dawn of the IBM PC

The IBM PC is Born I have been around long enough that I remember the world before the personal computer even existed. When it arrived, the IBM PC had 64 KB, that’s kilobytes, of memory, no hard drive, and a single sided 5.25 inch low capacity floppy drive. I know, my friend Bill had bought one with a printer for the astounding price of around $5,000 CDN. At the time you could by a hamburger, fries, and a drink at MacDonald’s and get back change Continue reading →

Which Site is the Best for Learning a New Language?

You can use sites like ProjectEuler, TopCoder, and others but I will just comment on those two since I use the sites to learn new languages or new features in a language I already know. ProjectEuler for Ease of Use, TopCoder for More Problem Variety ProjectEuler is where you go if you like problems that are math oriented and you do not want to spend a lot of time learning how to navigate the site. Topcode is where you go if you want to have more Continue reading →

What is Covariance?

Understanding how covariance works is necessary when dealing with collection frameworks. Java and Scala generates compiler errors that are difficult to decipher unless you are familiar with covariance, contravariance, and invariance. Covariance Here is my informal definition of a covariant datatype. A covariant datatype is one  that preserves the subtype relationship with another datatype. Unfortunately Java does not support covariance. Although the datatypes can be covariant, collections are invariant which means there is no relationship between collections with covariant datatypes. This means that that List<Integer> Continue reading →

Pencil and Paper Solution

I decided to go after the Project Euler As Easy As Pi Award so I decided to tackle Problem 79 Passcode Derivation with a pencil and paper solution. To get the award I need to solve the following problems: 3, 14, 15, 92, 65, 35, 89, 79, 32, 38, and 46 At this point, I have completed the following problems. 3, 14, 15, 92, 65, 35, 89, 79, 32, 38, and 46 The only problem left that is difficult to solve is Problem 65 – Continue reading →