Categories
Uncategorized

Sound Like a Player with These iPhone Ringtones

Whoo-hoo! I got an iPhone! See?

Photo: Hand-drawn iPhone held in front of a monitor showing a real iPhone.
I can dream, can’t I?

Okay, I didn’t. I’m holding off for a while:

But that doesn’t mean that I’m missing out on all the iPhone niceties. A kind soul just sent me a .zip file containing all the default iPhone ringtones [2.1 MB], and I now share them with you. Enjoy!

Categories
Uncategorized

23 Programming Languages Compared

Possibly inspired by articles like Tim O’Reilly’s State of the Computer Book Market (here are parts one, two, three and four of the Q1 2007 edition of this series) posts on the O’Reilly Radar blog, Antonio Cangiano decided to do a little research of his own:

Technical books are a topic that interest me a lot. From book sale figures and trends we can attempt to better understand where developers are putting their money, not only their mouths. For this article I decided to perform a small experiment, by collecting some interesting data. I considered 23 fairly well known programming languages, and searched for the top selling book (according to Amazon) for each of them. The Amazon sales rank allows us to compare the success of books representative of each language, and indirectly compare the popularity of the languages themselves.

The Top Ranking Languages

According to Antonio’s research, here are the best-selling programming language books are for these languages, listed starting with the best seller:

Top 4 programming language books at Amazon: JavaScript, Java, Ruby and SQL

  1. JavaScript (JavaScript: The Definitive Guide, Amazon rank 1,227)
  2. Java (Head First Java, Amazon rank 1,799)
  3. Ruby (Programming Ruby: The Pragmatic Programmers’ Guide, Amazon rank 1,881)
  4. SQL (Sams Teach Yourself SQL in 10 Minutes, Amazon rank 1,929)

To see the top 23 programming languages based on Amazon ranking, go visit Antonio’s blog entry.

A commenter on the article wrote:

Actionscript would rank even higher than JavaScript, since the book Essential ActionScript 3.0 by Colin Moock currently is at sales rank #346.

Interesting Languages

There are some interesting languages on this list. Although they get mentioned on Reddit and a number of developer blogs, they’re not quite mainstream yet. In spite of that, they’ve placed quite well based on Amazon’s ranking system:

An interesting set of language books: Erlang, F#, Lua and Haskell

[Cross-posted to the Tucows Developer Blog]

Categories
Uncategorized

Big in Japan: Nintendo’s Game Consoles are Outselling Sony’s and Microsoft’s

Chart comparing Wii, PS3 and XBox 360 sales in Japan — Wii: 270,974 units; PlayStation 3: 41,628 units; XBox 360: 17,616 units.

The Japanese publishing company Enterbrain reports that the Nintendo Wii is outselling other consoles by a wide margin in Japan. Here are the June 2007 sales figures:

Console Units sold in Japan, June 2007
Nintendo Wii 270,974
Sony PlayStation 3 41,628
Microsoft XBox 360 17,616

And if you think the Wii is cleaning up, wait until you see the figures for the DS Lite, which in Japan outsold all the other game console systems combined in the last week of June:

Console Units sold in Japan, week ending June 24, 2007
Nintendo DS Lite 163,888
Nintendo Wii 65,582
Sony PSP 32,984
Sony PS2 11,962
Sony PS3 9,581
Microsoft XBox 360 3,369
Nintendo Game Boy Micro 284
Nintendo Game Boy Advance SP 130

That’s right, the PS2, which was first released in Japan on March 4, 2000, is outselling the PS3. This notable fact, in combination with the sales of the DS Lite and Wii lead me to these (admittedly obvious) conclusions:

  • Price matters.
  • Game selection matters (they’re still cranking out new games for the PS2).
  • User interface matters.
  • Microsoft doesn’t matter (not in the Japanese console market, anyway).

I expect that someone from Sony will release a statement that says something like “the Japanese market is quite unlike the American one” that points to things like the lower PC penetration in Japan, the fact that the XBox 360 is a non-entity there while it’s hot stuff over here, and that the Japanese idea of fun is different from ours, if their game shows are any indication.

Categories
Uncategorized

Bjarne Stroustrup: Coming to Town July 20th

Bjarne Stroustrup: Bjarne to be wild!

Not too long after Richard M. Stallman’s non-technical presentation at the University of Toronto’s Mississauga campus, C++ creator Bjarne Stroustrup will make an extremely technical presentation at University of Toronto’s Downtown campus. He’ll be talking about C++0x Support for Generic Programming.

The presentation will take place on Friday, July 20, 2007 from 6:30pm – 9:30pm at the Bahen Centre for Information Technology, 40 St. George Street, University of Toronto. Admission is free and everyone is welcome (although you probably should have at least a passing familiarity with C++).

After the presentation, we’ll all mosey down to Bar Mercurio restaurant (270 Bloor West) where Bjarne will talk operator overloading and I will discuss alcohol overloading.

Categories
Uncategorized

Richard M. Stallman: Coming to Town July 5th

Richard M. Stallman as St. iGNUtius: Free as in “Freaky”

On Thursday, July 5th, Free Software Foundation founder Richard M. Stallman will be speaking at the University of Toronto’s Mississauga Campus. His topic will be Copyright vs. Community in the Age of Computer Networks.

The talk is co-sponsored by U of T’s Department of Mathematical and Computational Sciences and Knowledge Media Design Institute. It will be a non-technical talk, and everyone from hard-nerds to laypeople are encouraged to attend.

Here’s the abstract for the talk, taken from Greg Wilson’s blog

Copyright developed in the age of the printing press, and was designed to fit with the system of centralized copying imposed by the printing press. But the copyright system does not fit well with computer networks, and only draconian punishments can enforce it.

The global corporations that profit from copyright are lobbying for draconian punishments, and to increase their copyright powers, while suppressing public access to technology. But if we seriously hope to serve the only legitimate purpose of copyright—to promote progress, for the benefit of the public—then we must make changes in the other direction.

The presentation will take place on Thursday, July 5th at 5:00 p.m. at Matthews Auditorium, Room 137, Kaneff Center, University of Toronto, 3359 Mississauga Road North, Missisauga. The topic will be free as in speech, and admission will be free as in beer.

Categories
Uncategorized

That “Lightswitch” Entry Reminds Me of an Old Story…

The complex lightswitch from the earlier entry

The article The Lightswitch That Might Explain a Lot About Java (which has received way more comments and stimulated more debate that I would’ve ever predicted) reminded me of a story that used to get forwarded back and forth among techie types. I thought I’d post it here…

The Engineer, the Computer Scientist and the Toaster

Toaster

Once upon a time, in a kingdom not far from here, a king summoned two of his advisors for a test. He showed them both a shiny metal box with two slots in the top, a control knob, and a lever. “What do you think this is?”

Scotty from “Star Trek”

One advisor, an engineer, answered first. “It is a toaster,” he said.

The king asked, “How would you design an embedded computer for it?”

The engineer replied, “Using a four-bit microcontroller, I would write a simple program that reads the darkness knob and quantizes its position to one of 16 shades of darkness, from snow white to coal black. The program would use that darkness level as the index to a 16-element table of initial timer values. Then it would turn on the heating elements and start the timer with the initial value selected from the table. At the end of the time delay, it would turn off the heat and pop up the toast. Come back next week, and I’ll show you a working prototype.”

Nerd at an old-school IBM PC and dot matrix printer

The second advisor, a computer scientist, immediately recognized the danger of such short-sighted thinking. He said, “Toasters don’t just turn bread into toast, they are also used to warm frozen waffles. What you see before you is really a breakfast food cooker. As the subjects of your kingdom become more sophisticated, they will demand more capabilities. They will need a breakfast food cooker that can also cook sausage, fry bacon, and make scrambled eggs. A toaster that only makes toast will soon be obsolete. If we don’t look to the future, we will have to completely redesign the toaster in just a few years.”

UML diagram

“With this in mind, we can formulate a more intelligent solution to the problem. First, create a class of breakfast foods. Specialize this class into subclasses: grains, pork, and poultry. The specialization process should be repeated with grains divided into toast, muffins, pancakes, and waffles; pork divided into sausage, links, and bacon; and poultry divided into scrambled eggs, hard- boiled eggs, poached eggs, fried eggs, and various omelet classes.”

Country ham and eggs

“The ham and cheese omelet class is worth special attention because it must inherit characteristics from the pork, dairy, and poultry classes. Thus, we see that the problem cannot be properly solved without multiple inheritance. At run time, the program must create the proper object and send a message to the object that says, ‘Cook yourself.’ The semantics of this message depend, of course, on the kind of object, so they have a different meaning to a piece of toast than to scrambled eggs.”

C++ and Erlang

“Reviewing the process so far, we see that the analysis phase has revealed that the primary requirement is to cook any kind of breakfast food. In the design phase, we have discovered some derived requirements. Specifically, we need an object-oriented language with multiple inheritance. Of course, users don’t want the eggs to get cold while the bacon is frying, so concurrent processing is required, too.”

GUI

“We must not forget the user interface. The lever that lowers the food lacks versatility, and the darkness knob is confusing. Users won’t buy the product unless it has a user-friendly, graphical interface. When the breakfast cooker is plugged in, users should see a cowboy boot on the screen. Users click on it, and the message ‘Booting UNIX v.8.3’ appears on the screen. (UNIX 8.3 should be out by the time the product gets to the market.) Users can pull down a menu and click on the foods they want to cook.”

Parts of a Wintel desktop computer

“Having made the wise decision of specifying the software first in the design phase, all that remains is to pick an adequate hardware platform for the implementation phase. An Intel 80386 with 8MB of memory, a 30MB hard disk, and a VGA monitor should be sufficient. If you select a multitasking, object oriented language that supports multiple inheritance and has a built-in GUI, writing the program will be a snap. (Imagine the difficulty we would have had if we had foolishly allowed a hardware-first design strategy to lock us into a four-bit microcontroller!).”

Crowd gathering around a guillotine execution

The king wisely had the computer scientist beheaded, and they all lived happily ever after.

Categories
Uncategorized

Podcast: Tucows Goes to the TRAFFIC Conference

Photo: Traffic in Taiwan

Over at the Tucows Blog, I’ve got a podcast in which I interview Adam Eisner, Product Manager for Domains, about his experiences at the recent TRAFFIC conference (“the premier conference for the domain industry”).