sunnuntaina, huhtikuuta 22, 2012
Getting rid of banking trojans
I believe so far the banks have compensated customers for their losses. Of course, sooner or later, the banks must stop doing that because it will become too time-consuming and expensive. What will happen then?
Are the customers left to fend on their own?
Will the anti-virus industry step up their protection efforts and the problem will go away as soon as everyone has an up-to-date AV software installed?
Will Microsoft manage to lock down Windows so well that only the people who run old versions of Windows are affected and at the same time find a really good reason for people to upgrade to a newer Windows version?
Both of the latter scenarios are just extrapolations of current events. Undoubtedly, Microsoft will continue to improve security of Windows in upcoming versions. Just as likely, anti-virus software will probably continue to evolve to meet the challenges of the new threats.
Is that all? Is this the best we can hope for?
I think there is another solution. A very simple one. Unfortunately I cannot think of any way to make money out of it, so it probably won't happen. I will describe it here anyway, just in case someone decides to implement it.
Here it is: Banks should create a bootable read-only USB stick and give one to each customer. The read-only memory would boot a small Linux and run a web browser. The customers would be told to insert the stick into the PC and restart the computer before banking over the Internet.
There are a lot of details that can be debated: Should it be a USB stick or CD? Which Linux should it use? Should the browser run full-screen or in a window? Should it be made easy to use the Linux for other purposes too? Should the Linux be able to save files on the hard disk? Should it support Macs?
Those are minor details. Interesting details, I'm sure. But the core idea appears above in bold. If the banks would do that, they could sleep easy. The customers would know their money is safe.
This is such a simple idea I'm sure it has a ton of problems I have not thought about and because of those it just isn't a viable solution.
Just in case any bank decides to be bold and implement the idea, go ahead. I'm not going to charge money or patent the idea. And the bank cannot patent it either because they cannot claim the idea is theirs.
maanantaina, syyskuuta 26, 2011
Between iPhones
- The automatic key lock only engages if the phone is on the home screen.
- The backlight turns off automatically, but the next key press doesn't just turn on the backlight, the key press also takes effect. E.g. if you are in the middle of composing an SMS and get distracted, you'd better not press the biggest key on the keyboard. Yes, it will wake up the phone but it will also immediately send the message.
sunnuntaina, kesäkuuta 13, 2010
Browser resource usage
The cause for swapping was Safari 5 taking up just under 1 GB. Eh!??!
I did a test. I opened Safari, Firefox and Opera and loaded each with 3 tabs: Twitter, Facebook and Gmail and let it simmer for 5 hours.
| Browser | Version | Initial RAM use | RAM use after 5h | CPU usage |
|---|---|---|---|---|
| Safari | 5.0 | 185 MB | 301 MB | 0.1% |
| Firefox | 3.6.3 | 160 MB | 157 MB | 3.3% |
| Opera | 10.53 | 205 MB | 249 MB | 7% |
I don't think I can afford to run Safari now that it uses so much memory. Incredibly, Firefox used less memory after 5 hours than right after loading the pages! I think if anyone these days says Firefox is a bloated browser, they are badly mistaken.
I also followed the CPU usage of the browsers. It seemed to stay constant, so I did not include initial and after-5-hours figure in the table. To Safari's credit, it runs fast and causes practically no CPU load even with these Javascript-intensive pages. Opera uses so much CPU, it would start to be noticeable if all the 3 users on this Mac would use Opera.
Based on the figures above, Firefox is my new default browser.
tiistaina, toukokuuta 04, 2010
Software Engineering Radio - the podcast for professional software developers
http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=120906714
torstaina, huhtikuuta 22, 2010
Software Engineering Radio - the podcast for professional software developers
http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=120906714
torstaina, huhtikuuta 15, 2010
The only sportscast I like
http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=78561049
keskiviikkona, huhtikuuta 14, 2010
sunnuntaina, huhtikuuta 04, 2010
Usability of modern computers
Printing photos
This is the most common use case. Digital cameras are cheap and lots of photos are taken in all the family occasions. The cameras are easy to use: Power on, point and shoot. It is the part that comes later that is problematic.
The user has shot the photos. The next step is to get them printed. The user has a color inkjet printer. The printer is connected to the computer. The computer also has a memory card reader.
The user needs to remove the memory card from the camera and insert it to the card reader. If the user is lucky, some software is automatically started that does something and takes the photos from the memory card and scurries them away somewhere in the bowels of the machine.
The user then removes the memory card from the reader and gets insulted by the machine that he has done something stupid.
Now the user has to find the correct icon to click, then find his photos somewhere in the windows on the screen and then find something to click to print the photos. Then the user also must remember to change the printer settings for printing on 10 x 15 photo paper, not A4 plain paper he printed yesterday's fish casserole recipe.
That was such a tiresome exercise! Why was it so difficult? What the user really wanted to do was to connect the camera to the printer and press a button titled "Print my photos"
When the photo is printed, the print is the end result. It can be enjoyed together with friends and family in the living room.
The user does not find any value in the digital versions of the photos stored somewhere in the computer. The user does not easily find his photos in the computer, they are difficult to view because they are so small and it is difficult to move from one picture to the next.
Luckily these days there are printers and cameras that can print photos without the troublesome computer making things difficult.
Watching camcorder videos
Camcorders are also cheap these days and what would be more fun than shooting moving video clips of grandchildren while they play and do many other nice things. These are also pretty easy to use: Power on, point and shoot normally works with these. Of course there are a lot of menus in strange languages but if one stubbornly ignores them, they will go away and stop bothering you.
Again, the trouble starts when these videos are to be presented on the big flat-screen TV in the living room.
The camcorder has a USB connector. The TV has a USB connecter in the back. How fortunate! The video is obviously going to be play on the screen as soon as a USB cable is connected between the camcorder and the TV.
Unfortunately it did not. It turns out the TV does not know how to play video. It can only show still photos from the camcorder's memory.
But it is possible to make a DVD disc from the videos. The downside is, it involves using the computer again and we already know from our past experience with printing photos how fun that was.
Sony has spotted a market in here and makes a product called DVDirect, a box you connect the camcorder to, insert a blank dvd and press a button. Simple and easy. Our user is going to get one of these so he does not have to deal with the troublesome computer.
Watching photos on the TV
From the previous exercise the user discovered it is possible to watch photos on the living room's big flat-screen TV if one can get the photos on a USB memory stick.
Obtaining USB sticks is easy. They are commonly sold at cash registers of convenience stores among candy, cigarettes and condoms.
Now the user needs to talk the computer into releasing some of the photos it is keeping hostage to the USB stick. The user has no idea how to go about it but the user knows how to call a young family member and get them to use remote screen sharing and export the photos on the USB stick.
Remove the USB stick from the computer. (Ignore the insulting message the operating system puts on the screen about doing something improper again.) Pull the power plug from the wall to quickly shut down the computer.
In the living room, the user inserts the USB stick into the slot on the TV. The TV complains about some pictures bring broken or unreadable. The user has to manually skip over broken photos with names like ".Trashes", ".Spotlight-V100" and a lot of them named "._IMGXXX.JPG"
After scrolling over dozens of broken photos there are finally some proper photos and the user can relax. But isn't modern technology difficult!
Photos on a digital picture frame
The user has a digital picture frame. It is a nice and modern way to enjoy the digital photos. Apparently it also requires photos on a USB stick. Lucky user, he already has a lot of photos on the USB stick from the previous day. (And there is always the "family IT guy" he can call.)
The user sticks the USB stick on the side of the frame and finally something works as it should! The frame begins showing the photos on a never-ending slideshow. And it was so easy to use.
After a while, however, the user begins to be irritated by the big blinking led at the top of the USB stick. It is kind of distracting.
A call to the "family IT guy." He tells the user he should manipulate some buttons on the frame and copy the photos from the stick to the frame's internal memory and then unplug the USB stick.
The user has no idea how to do that and because the family IT guy cannot connect remotely to the picture frame, he cannot help either. The user pulls the plug of the digital picture frame and throws it into the waste bin. He shoots some piccies on his digital camera, connects it to his printer, gets some nice color prints and hangs them on the wall.
tiistaina, maaliskuuta 09, 2010
Good discussion on sustainable living
http://ax.itunes.apple.com/fi/podcast/exploration-with-dr-michio/id353007502
tiistaina, maaliskuuta 02, 2010
Life, the universe and everything
http://ax.itunes.apple.com/fi/podcast/exploration-with-dr-michio/id353007502
torstaina, helmikuuta 11, 2010
torstaina, marraskuuta 19, 2009
Programmers of popular programming languages
If you program in the most popular programming language, your skill in that particular language is a commodity. If you program only in the most popular programming language, you have made yourself a commodity. A commodity can only compete on location and price, and location doesn't really get you much on the Internet. This means that only people with a poor understanding of economics program in PHP.Lifted from http://gilesbowkett.blogspot.com/2009/01/why-hacker-news-thinks-php-won.html
sunnuntaina, lokakuuta 25, 2009
How american health care works
http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=201671138
maanantaina, elokuuta 31, 2009
Come again?
Note: You must have administrative privileges on your Mac computer to install the software. Click System Preferences, Accounts, and check Allow user to administer this computer.Now let me get this straight: You should grant your account administrative access in order to install some software. But you need administrative access to grant administrative access, don't you, so why bother?
sunnuntaina, elokuuta 23, 2009
Learning XPath
diskutil info -plist /dev/disk0s2 | xpath "//string[preceding-sibling::key[1]='VolumeName']"
sunnuntaina, toukokuuta 03, 2009
The best programming language, part 3
Clojure is very much like Lisp. It runs on a Java VM. Java VMs are stable and either already installed on many platforms or easily available. All the objects you can import into Java are available for calling from Clojure. The Clojure programs can be deployed as .jar files and no-one needs to know you actually produced it with a high-level functional language.
Clojure also has good support for multi-threading and it does it with a new and interesting way by implementing software-transactional-memory, which apparently makes thread programming easier than using locks.
It is licensed under the Eclipse license. IANAL but it looks to me like it would be possible to use it for commercial software development without any major problems.
I'm still reading the documentation and I haven't written anything more complicated than a hello-world with it, but I'm liking what I see so far.
sunnuntaina, maaliskuuta 08, 2009
Parkkeeraus on taitolaji
maanantaina, helmikuuta 23, 2009
Simple = good
I have a digital TV receiver, Handan CV-3300 CNX. The picture and sound works. Subtitles also work most of the time. A few times a week the device turns on but there is just a black, blank screen on the TV and no sound. A power-cycle makes it ok again.
Like all digital TV receivers, it includes a feature called EPG or electronic program guide. This is supposed to be a display of past, current and future programming of all TV channels. When I press the EPG button on my remote, I get this information for some channels but the rows for other channels are empty. Sometimes it helps if the receiver is on for a while. Sometimes those rows stay empty for hours.
This is probably a bug in the receiver's software and will go away when the manufacturer makes a firmware upgrade available. I have had the box from 2005 and it has never found an upgrade. I have also navigated the device's menus and found the command to search for upgrades. Nothing there either. There are no upgrades on the Internet either. In fact, the manufacturer's web site has no record of this device.
My friend has a stereo set with a turntable. When we were listening to his LP records, we discovered the turntable was broken: when the arm reached the end of the record, it did not automatically lift up and return itself to the rest next to the revolving plate. The mechanism is broken. But one can push a lever to lift the arm and then push the arm to the resting position with a fingertip.
This got me thinking: The turntable is broken, yes, but not badly. It still plays the records and the small problem it has is easily amended with just a little flick of a finger. And even if the turntable develops more serious issues, it will probably still be able to play the records but with a loss in sound quality. The worse the problem, the greater the impact on sound quality. But the problem will have to be very serious indeed to completely prevent enjoying recorded music. To make it short: it fails gracefully.
Another example: Last week I got a coffee grinder. Not an electric monster but an old-fashioned one with a crank on the top. I have never used a coffee grinder. In fact, I have only seen them in films. The grinder came with a small sheet of paper on which were some hard-to-understand instructions. I could not figure them out. But the device was so simple and made from just a couple of pieces of wood and metal held together with screws, so it was easy to take it apart and figure out how it works, which way to turn the crank and how to adjust the coarseness of the grind.
It is a beautiful piece of equipment that is simple, does only one thing, does it well and is easy to understand, operate and repair. It also fails gracefully. (The device did not fail at all, the manual did.) And let me tell you: If you like coffee, you should grind it yourself. There is a remarkable difference in the taste. I did not believe it until I tried.
I am beginning to like simple things which I can understand and fix. Maybe I am getting old. Maybe it is because all day long at work I have to build and fix complex things that can and will fail in a lot of different ways. And all of those failures are bad, or very bad.
Is it even possible to build software that fails gracefully? I don't think I have ever seen such a thing...
Uusi ulkonäkö
sunnuntaina, helmikuuta 15, 2009
Best game in a while
At the price point of 15 euros it is starting to become questionable if it is even worth the time and trouble to pirate this game. For me it was easy to decide to buy it.
Get the demo, play it, then buy the full version. Support the couple of guys behind this piece of pure genius!