Euler 26 to 30
I just finished uploading my solutions to the Project Euler problems 26 to 30. They are all in Ruby since it is the language I am currently learning during my free time. I decided this time not to write the answers at the end. This way you have to execute the code yourself if you just want the answer. I also included comments to explain the parts that are harder to understand. If you have any question regarding any of the solutions, just post it as a comment.
Open Phones?
Thursday the FOSSLC organised a conference named Free/Open Source Mobile Development in Waterloo. They invited three speakers, each working on a different platform, to talk about their projects and the advantages their platform have to offer for open source developers.
The first speaker was Jay Freeman, also known as Saurik, who is an important member of the free software community around the iPhone. He is the main developer of Cydia, a package manager for the iPhone, and Winterboard, an application that let you modify the appearance of your phone. Both run on jailbreaked phone. He mainly talked about Cydia and his effort to create an iPhone marketplace managed by the users as an alternative to Apple’s expensive marketplace. Saurik is a really intelligent person and an amazing programmer and his talk was really interesting. He used Veency, a VNC server he ported to the iPhone for his presentation so he could show us in real time on an iPhone what he was doing. He also gave a tutorial on Objective-C for the iPhone with an emphase on memory management that was interesting even if sometimes really complicated.
The next speaker was Jean-Michel Bouffard, a researcher at the Communications Research Center of Canada. His current project is called OpenMokast and is a really interesting one. The objective of the project is to build a cellphone that could take advantage of all the free data that flows over the air. With a lot of multimedia content being broadcasted over the air, this is an amazing idea. No need to go through your cellphone service provider to get video or audio. He integrated a usb antenna to the OpenMoko Freerunner and modified the Linux stack that runs the phone to capture de L-Band data. He can thus listen to the radio without having to pay any extra fees. OpenMoko is an amazing platform for this kind of project since not only is the software completly open source, but the hardware is also totally open with the design CAD files available. However, the platform is still not stable and he showed in his tutorial that it takes a lot of willpower to compile everything that is needed to write the most simple application.
The last speaker was Dilpreet Singh, one of the winner of the first Android Developer Challenge. He and his team designed the Life360 application, an Android application that allows you to track your family members and interact with them in different ways. He talked about the advantage of Android, the biggest being the fact that the platform is open, meaning that you have access to more features than with other platform like the iPhone’s platform. He also talked about the “Apache License catch” of the platform. This is, the software being under the Apache License, phone makers can decide to modify it, adding or deleting features, and add closed code. His tutorial was probably the more complete of the three speakers with a full walkthrough of how to write an Android application.
A pretty interesting panel discussion then followed. I won’t talk about it in details since a lot of different subjects have been discussed. For a video of the full discussion just follow this link.
A Free Speech by Richard Stallman
Yesterday was a busy day. Infusion Angels was on campus with a big conference in which it showed the features of the Microsoft XNA 3.0 platform, but more importantly, Richard Stallman gave a talk on the GNU Operating System and Free Software. Some of you may ask: who is this Richard Stallman? Well, to make a long story short, Richard Stallman is the founder of the GNU movement and the Free Software Foundation. He is probably the most important person behind the GPL license and the ideas it represents. He is also a fierce adversary of proprietary software and the software patents.So like I said, he was at the University yesterday. I had been waiting for this talk for while and it was totally worth it. Not necessarily in a good way though, but more on that later. The first part of his talk was about the Free Software Philosophy. For a program to be Free Software, you need four things.
You have the freedom to run the program, for any purpose.
You have the freedom to modify the program to suit your needs. (To make this freedom effective in practice, you must have access to the source code, since making changes in a program without having the source code is exceedingly difficult.)
You have the freedom to redistribute copies, either gratis or for a fee.
You have the freedom to distribute modified versions of the program, so that the community can benefit from your improvements.
And, following Stallman philosophy, this is the only ethical way of developing software. By not following these principles, proprietary software goes against the freedom of the user and is thus unethical. As such, every piece of software should be released using copyleft, so that nobody in particular owns the code and the four principles can be followed. There is a lot more about Free Software than that, but it can be summarized to that. For more information, you can visit the GNU website.
He then talked a bit about the history of the GNU Operating System. He started with the how and why of the creation of the movement which led him to the need for a kernel and Linus Torvald unwanted contribution to the movement. His main point for this section really was: the GNU Operating System is not Linux. It than changed to Open Source software is not Free Software and why Open Source is also bad. And this is were I disagree. Stallman is particularly stubborn in his beliefs and insist that software has to be free for freedom reasons and so Open Source is good only if it is open to respect the freedom of the user. The way I see Open Source software is in a pragmatic way, I see it as a better alternative. By opening the code, more people can have a look at it and improve it. It is also a way to share knowledge between developers. This way nobody has to redo something somebody already did. This is more Linus view on Open Source and Stallman is totally opposed to it. However, it is still interesting to hear about different ideas and I can’t say that Stallman talk was bad.
He finished his talk with two subtopics, Free Software and the software industry and Free Software and education. For the software industry, his theory is that there should be no software product. Every software being Free Software, developers would be hired by companies to adapt already existing software to their needs. The problem with this, is that it kills the software entertainment industry right away. How can developing a game be profitable when the code has to be released once finish? Also, companies, in order to reduce their costs, would probably use already existing software even if it is not totally adapted for them. And what about concurrent companies? On the other side, I agree with his position on software in education. Most schools use proprietary software and don’t talk about the alternatives. For example, in College, I followed a (compulsory) course that teaches how to use the Microsoft Office Suite. The problem with that is that it target Microsoft Office directly meaning that if I want to do my homework or put this knowledge to use at home or at work, I have to buy (or pirate) a Microsoft Office License. Children are raised with closed source software that they then have to buy which is ridiculous. Schools should at least teach something people something they can get without paying. And this is especially true for people following Computer Science classes. Studying Free Software code is one of the best way to learn how to program. However, most schools teach the use of closed source program and framework like .NET.
Overall, it was a pretty interesting talk. I learned a lot, especially on the GNU philosophy and the differences between Free Software and Open Source.
CES 2009
The 2009 Consumer Electronics Show has been over for more than a week now and I think I now have a solid top 3 to present you. First, I have to say that this year’s show was really visual oriented in terms of innovations. By that I mean that most new things were related in some way to televisions. 3D television were a big thing this year as well as mini projectors, OLED televisions and blu-ray devices. Since I am not a huge fan of cinema or television in general, that didn’t really appeal to me. However, I really like the potential of OLED screen as really thin and sometime flexible screens for electronic devices.
On the other hand, I am a hardcore audio fan and I have to say that a lot of really interesting products have been launched during this CES for the audiophiles all around the world. Computer high-end audio is growing bigger each year with more DAC and music server coming out. The Montreal company Tenor Audio is back with the beautiful 350M Reference monoblock at $90,000 a piece. A plethora of loudspeakers, cables and amplifiers were launched by as many companies. There are just too many to talk about them all here, but if you want more information, the Stereophile.com CES section is the place.
Other highlights would be the USB 3.0 demontrations or the LiquidHD Technology that supposedly allows the perfect streaming of HD content over a network. But now, back to my top 3 of CES 2009.
3. VAIO P Series Lifestyle PCI have to say that I am not usually a fan of Sony when it comes to anything else than their gaming console. I am also not a big fan of netbooks. So why the P Series? Well, because I don’t see it as a laptop, but more as a big smartphone. The thing I hate about netbooks is that they are not suited for extensive work. They don’t have a lot of processing power, have limited memory and no place to put yours wrists when you type. However, they have something other laptops don’t have and this is a reduced size. This makes them easy to carry anywhere and use everywhere. But what is the point if you can’t work effectively on them? Well, this is where the P Series is superior. It is literally a communication device. With integrated GPS, 802.11N and 3G, this device is the perfect one for travelers. This is the device I would have killed to have last summer when I was in France. It doesn’t take a lot of place in a backpack, gives you your position and possible directions as well as giving you an access to Internet to write mail, check for hotels or anything else (since it is the Internet). It also as better hardware and a wider keyboard making it even more attractive.
However, it also has some negative point. First, the absence of a touchpad. They put a kind of trackball instead which just feels less natural than a touchpad to me. It also comes with Windows Vista. No comments.

2. Sennheiser HD 800
As I said before, I am an audio freak and when it comes to headphones, Sennheiser is usually my choice. I currently own two pairs of Sennheiser headphones, the best of the two being my HD 555. Well last week, Sennheiser announced their new pair of headphones which makes my HD 555 looks like iPod earbuds. Their name: HD 800. They have the largest transducer ever included in headphones with 56mm which allows for deeper low frequencies. However, with a transducer that large, you have the danger of high frequencies resounding inside the cup distorting the sound. That is why Sennheiser engineers came with a special ring design for the transducer that reduces the distortion. The result is a 6 – 51,000 Hz frequency range which is more than excellent for a pair of headphones. Everybody that used them agreed with the exceptional quality of the sound they produce. Perfection: this is what you would expect from $1,400 headphones and this is what they give.

1. Palm Pré
And the winner is… The Palm Pré! I know, I know, not original at all. However, more than the actual phone, it is the operating system that I find brilliant. After watching the Palm keynote I read a bit on this piece of software and it is just amazing. But first thing first, lets talk about the hardware.
It has the usual connectivity components: GPS, Wifi and 3G. It also has a beautiful multi-touch screen, like most new phones. However, and this is were the hardware conquered me, it still has a full qwerty keyboard. I tried different smartphone and I have to say that the multi-touch of the iPhone is amazing for navigation but just awful to write text. The absence of feedback when I press the keys on the screen makes it really difficult to use. The blackberry, on the other side, have a nice full qwerty keyboard but navigation is limited by the trackball. The Pré combines both the keyboard and the multi-touch screen which is a big plus for me. Furthermore, the fact that the keyboard slides doesn’t cut away screen space. It is also a bit smaller than other smartphones.
Now the software. The first interesting thing about webOS is its ability to multitask. You can run multiple applications at the same time and switch easily from one to the others. It also has a notification system that uses small pop-ups on the bottom of the screen to notify you when other applications changes or when you receives a message. This ability to run multiple applications at the same time is a huge improvement over other smartphones like the iPhone. Another amazing side of this phone is its ability to sync contacts and calendars from different networks easily without the need of a computer. This makes it more business friendly than phones like the iPhone or the G1 which lack business features. Finally, and that is one of the major advantages, the operating system is totally web based. That means that applications are developed using XHTML, CSS and Javascript which makes development way easier since these are known, documented programming languages. Also, some new functions have been added to Javascript to allow the language to access the hardware leaving more possibilities to developers.
Overall, the Pré is a good phone powered by a pretty solid piece of software. Now I just have to wait for a GSM version to come out to get my hand on it.

Joel on Software… at the University of Waterloo
Today I assisted to a talk by Joel Spolsky, know for his blog Joel on Software. I have read a bit on him before while reading Founders at Work, but it is the first time that I see one of his talks and I have to say that he is a pretty good speaker. Not only is he interesting but he is also very entertaining. The talk was hosted by the University’s Computer Science Club and was entitled Computer Science and the Software Industry.
He talked about his experience as a student and as a software designer. I like his pragmatic way of thinking in which the code, or in other words, the actual product, is central to the software development process. He insisted on the fact that most big companies only care about the product being shipped and not the product being good. He also talked a bit about the QA process and the adoption, for the worst, of automatic processes to manage this part of the software development cycle citing Windows Vista as an example. He underlined some of the the dualities between the UNIX and the Windows way of programming as well as the West Coast and the East Coast way of managing and their effects on software quality. Finally, he talked about the importance of having good writing and communication skills to be able to share and be recognized for the work that you do. Something I can only agree with.
Overall it was a really interesting talk and if you have the chance to see him, don’t miss it, because it is totally worth it.
Posts