I've been looking around at various open source IM clients such as GAIM and Miranda since I want to learn how IM clients are implemented. I downloaded the source for both and tried to compile both. GAIM is supported on multiple platform while Miranda is an Windows-only IM client. Compiling GAIM on Linux was basically running "make" and everything compiles. Compiling it on Windows was more complicated but GAIM has updated their site to include a script that will download all the various components that are needed in addition to the GAIM source. This made it a lot simpler to get a working compile, but even without the script the site had decent instructions on what was needed. For most UNIX/Linux open source projects except the most advanced and complicated, compiling the source code is pretty straight forward and it allows newbies to dive into the code.
Windows open-source projects, on the other hand, are different. The last few projects I've tried to compile were filled with problems. One problem is that there is no standard development environment for Windows. UNIX has the GCC suite which is open source and easily obtainable (if not already on the system) while Windows' primary development environment is the commercial Visual Studio tools. The developers themselves seem to not have standardize on a single platform. Miranda, for example, is developed on MingW by some and Visual C++ by others. Microsoft also doesn't make it any easier despite releasing the free Visual Studio express editions (which they admits isn't meant for windows development anyway).
Thus, my attempt to compile Miranda wasn't too successful (I don't normally do much development on Windows so I'm not as familar with it to begin with.). I installed Visual C++ Express only to find out that I also needed the Platform SDK. Once that installed, I still needed other things, but it wasn't clear to me where I get them. In the end, I wasn't able to compile my own working executable. I'm sure I'll be able to with a little more research, but it definitely takes a lot more work then on Linux.
While Microsoft talks about the importance of the developers, they really mean commercial developers. While they are doing many things to try to fend off open source competitors, they should really go back and do something OS vendors used to do (and UNIX vendors still do): include development tools as part of the OS.
Saturday, August 19, 2006
Monday, August 14, 2006
Getting Linux to work in Portrait mode...
This weekend I swapped out my 17" LCD (Dell 1705FP) with a 19" (Dell 1905FP) version that can be used in portrait mode. There is not particular reason why I used the portrait mode other then desktop space. I first tested it in Windows and it was just a matter of plugging it in and then using the Nvidia control panel to set the rotation to portrait.
I then switched over to Linux (Fedora Core 5) and ran into a few snags. There was a dependency conflict between the latest nvidia driver and the kernel I had installed and so the system was starting up with just the native nv drivers. Once that was resolved, I realized that the Linux version of the control panel didn't have the options that the Windows version had including the ability to rotate. It took awhile, but with the help of a friend and Linux guru, i was able to get Linux to go into portrait mode.
First, to get the Rotation option to appear in the Nvidia control panel, I had to add to the Device section:
Option "RandRRotation" "on"
This gave me the option to change the location once I log in, but the problem is that until I do everything appeared in landscape mode so I would have to tilt my head 90 degrees in order to log in and get to the contral panel.
Digging around the Nvidia drivers appendix, I found the option to have X rotate automatically on startup:
Option "Rotate" "left"
This did the trick and I now have less strain on my neck, but then I noticed that things were a bit off on the screen. I realized that Linux was running the driver at 75hz refresh rate which is supported by the monitor but LCDs run optimally at 60hz. I had selected the right monitor, but checking the /etc/X11/xorg.conf file, the monitor section have a range for the VertRefresh rate up to 76hz. This is ok, but Linux only used 75hz and didn't let me select anything different. Even when I modified the VertRefresh to just 60, it still used 75.
Again, my friend came to the rescue and suggested I added the following to the Device section:
Option "UseEdidFreq" "false"
Restarting X and all was well. ^^b
I'm still getting used to having my monitor taller then it is wide, but the only troublesome thing is finding wallpapers for it!
I then switched over to Linux (Fedora Core 5) and ran into a few snags. There was a dependency conflict between the latest nvidia driver and the kernel I had installed and so the system was starting up with just the native nv drivers. Once that was resolved, I realized that the Linux version of the control panel didn't have the options that the Windows version had including the ability to rotate. It took awhile, but with the help of a friend and Linux guru, i was able to get Linux to go into portrait mode.
First, to get the Rotation option to appear in the Nvidia control panel, I had to add to the Device section:
Option "RandRRotation" "on"
This gave me the option to change the location once I log in, but the problem is that until I do everything appeared in landscape mode so I would have to tilt my head 90 degrees in order to log in and get to the contral panel.
Digging around the Nvidia drivers appendix, I found the option to have X rotate automatically on startup:
Option "Rotate" "left"
This did the trick and I now have less strain on my neck, but then I noticed that things were a bit off on the screen. I realized that Linux was running the driver at 75hz refresh rate which is supported by the monitor but LCDs run optimally at 60hz. I had selected the right monitor, but checking the /etc/X11/xorg.conf file, the monitor section have a range for the VertRefresh rate up to 76hz. This is ok, but Linux only used 75hz and didn't let me select anything different. Even when I modified the VertRefresh to just 60, it still used 75.
Again, my friend came to the rescue and suggested I added the following to the Device section:
Option "UseEdidFreq" "false"
Restarting X and all was well. ^^b
I'm still getting used to having my monitor taller then it is wide, but the only troublesome thing is finding wallpapers for it!
Tuesday, August 8, 2006
MS doesn't want you to code for Windows?
I like the idea that Microsoft decided to release the express editions of their development tools for free to encourage people to program on Windows (although this doesn't mean I like Windows). I thought it was a smart move for them to lower the barrier to build for the platform since the other alternatives are gcc and mingw which are both very nice but not the easiest to use for newbies. Then I discovered that if you install the express edition, you can't actually write any native windows application.... Huh???
Instead, one has to download the Microsoft Windows Platform SDK seperately before you can use VC++ Express Edition to write Windows program.
Instead, one has to download the Microsoft Windows Platform SDK seperately before you can use VC++ Express Edition to write Windows program.
Tuesday, August 1, 2006
Web 2.0?!?
The Web has gone through many cycles but there seems to have always been two main groups that influenced it's direction: engineers and publishers. The web started out as static content but it was originally a realm of the engineers who learned HTML and coded everything by hand. To publish something, you need to understand computers and possibly had to set up your own web server.
As it grew it fell into the publishers' hands as they started investing into online business. A lot of early commercial sites were simply online publications where the layout reflected that of magazines and newspapers. I wonder how much real growth in the industry happened during this time other then that the web go prettier?
The next cycle shifted back towards engineers as they transformed web sites into web applications. This is when the web really became "useful" and began to be part of our daily lives. Now the web isn't just for looking at information, it allowed us to find information. We didn't just read financial news on the web, but now we can trade stocks on the web.
I think now we might at another transition point. The web as an "application" is more the norm then a new idea. It's a proven commodity and that means the publishers are now wanting to get back on board and take over. The result is that they've coined the term "Web 2.0". Web 2.0 seems to me that it's just publishers saying that they want to be the ones putting stuff on the Web. I'm not necessarily opposed to it, but Web 2.0 has nothing to do with technology.
As it grew it fell into the publishers' hands as they started investing into online business. A lot of early commercial sites were simply online publications where the layout reflected that of magazines and newspapers. I wonder how much real growth in the industry happened during this time other then that the web go prettier?
The next cycle shifted back towards engineers as they transformed web sites into web applications. This is when the web really became "useful" and began to be part of our daily lives. Now the web isn't just for looking at information, it allowed us to find information. We didn't just read financial news on the web, but now we can trade stocks on the web.
I think now we might at another transition point. The web as an "application" is more the norm then a new idea. It's a proven commodity and that means the publishers are now wanting to get back on board and take over. The result is that they've coined the term "Web 2.0". Web 2.0 seems to me that it's just publishers saying that they want to be the ones putting stuff on the Web. I'm not necessarily opposed to it, but Web 2.0 has nothing to do with technology.
As Yahoo! rolls out their new homepage design, I've been asking various friends what their thoughts are on the new look-and-feel. The reactions has been mixed although none have been outright negative. Initially, I thought that those who didn't like the new look was because it was such a big change and change is not always welcomed. Some things aren't necessarily the best, but they work and people can get what they need out of them without much thinking.
After awhile, I started to ask myself why is it that I liked the new Yahoo homepage and while there are many different reasons, I thought that maybe one of the reason is that Yahoo homepage is beginning to be more of an "application" then an online publication.
As a software engineer, I like building applications and I'm not so inclined to build online content. One is a problem that challenges me while the other is equivalent of data entry (remember that this is from the perspective of engineers who aren't being paid to be creative writers so they are usually handed the content from "writers" and are told by non-engineers to "implement" the articles).
I guess I'm saying that I liked the web initially because it was more about programming (software engineer). Then it became more about content layout and it got boring (web developers). As the balance went back towards programming and application, it became challenging again (frontend engineers).
After awhile, I started to ask myself why is it that I liked the new Yahoo homepage and while there are many different reasons, I thought that maybe one of the reason is that Yahoo homepage is beginning to be more of an "application" then an online publication.
As a software engineer, I like building applications and I'm not so inclined to build online content. One is a problem that challenges me while the other is equivalent of data entry (remember that this is from the perspective of engineers who aren't being paid to be creative writers so they are usually handed the content from "writers" and are told by non-engineers to "implement" the articles).
I guess I'm saying that I liked the web initially because it was more about programming (software engineer). Then it became more about content layout and it got boring (web developers). As the balance went back towards programming and application, it became challenging again (frontend engineers).
Sunday, July 30, 2006
Yahoo Messenger 8.0
The new Yahoo! Messenger is out. The biggest change is its ability to load user created plug-ins. Everything besides the base functionality is a plug-in and users can create their own. I can see this really expanding the power of Y!M, but can it overcome established IM clients which offers many of the same things? Sometimes, I feel that the feature war is one the Cold War where eventually people forget the purpose and just ends up doing stuff for the sake of keeping busy and the status quo.
That's why I like Google Talk. It's not jumping into the feature war, but going after the simple but effective philosophy that has worked for UNIX for so long. I also like Trillian which allows me to talk to multiple IM providers (Yahoo, AIM, MSN), has a nicer interface then most "official" clients, and just has the features I want to use. In the long run, I feel that this is the winning strategy.
I think we can learn from the success of Trillian and to an extent Google Talk (not enough mass adoption to be called a success yet). An interesting case study might be GAIM. Here was a open-source application that was really ready to take off and become a leader in my opinion. Although the UI could've been better (I prefer Trillian's look), it was one of those "it just works" programs that could've hooked users. However, it's been stagnant in its development. 6 months goes by without any updates on its official site and each beta release takes ages. If I didn't know better, I would have thought that the project was dead and why would I use a dying application?
Update: I just want to clarify that I do realize that there is development going on with GAIM. I can check the source control and see that changes are taking place. However, even though I am a developer, this isn't my area of focus so I don't usually go looking at the change logs. I go to the web site every so often and see if there are any important changes or news. After many months of no updates, I start feeling like the project is dying which happens to most software projects since not one important change has happened that is worthy of being put on the web site. To me, none of this is a big deal. GAIM is pretty cool and if it works, I'll use it. If it doesn't, I'll look for something else.
That's why I like Google Talk. It's not jumping into the feature war, but going after the simple but effective philosophy that has worked for UNIX for so long. I also like Trillian which allows me to talk to multiple IM providers (Yahoo, AIM, MSN), has a nicer interface then most "official" clients, and just has the features I want to use. In the long run, I feel that this is the winning strategy.
I think we can learn from the success of Trillian and to an extent Google Talk (not enough mass adoption to be called a success yet). An interesting case study might be GAIM. Here was a open-source application that was really ready to take off and become a leader in my opinion. Although the UI could've been better (I prefer Trillian's look), it was one of those "it just works" programs that could've hooked users. However, it's been stagnant in its development. 6 months goes by without any updates on its official site and each beta release takes ages. If I didn't know better, I would have thought that the project was dead and why would I use a dying application?
Update: I just want to clarify that I do realize that there is development going on with GAIM. I can check the source control and see that changes are taking place. However, even though I am a developer, this isn't my area of focus so I don't usually go looking at the change logs. I go to the web site every so often and see if there are any important changes or news. After many months of no updates, I start feeling like the project is dying which happens to most software projects since not one important change has happened that is worthy of being put on the web site. To me, none of this is a big deal. GAIM is pretty cool and if it works, I'll use it. If it doesn't, I'll look for something else.
Saturday, July 1, 2006
Microsoft iPod Design
This video is hilarious but oh so true... While it uses Microsoft as the target, it's a great example of just how designers sometime simply over-designs.
Sunday, June 18, 2006
Need to try QEMU
Many of my friends who have recently gotten the new Intel-based Macs and they've been going ga-ga over Parallel's virtualization software that lets them run WinXP inside of OSX. I don't have a Mac-Intel, but I would like to be able to do this on Linux. It looks like there are a few choices, but I ran into this article about installing QEMU which is a emulation software that the review claims runs pretty fast. Another option that seems to be Xen which is a virtualization software for x86.
A few things still bothers me about my current linux desktop is that the video drivers/software still aren't as good as their windows counterpart. It seems that I can still do more with the windows set of drivers from Nvidia then the linux drivers. I'm sure there are some manual tweaks that I can do directly to the configuration but I haven't had as much time. This basically means that I can run WinXP on Linux, but the visual look isn't as nice as it looks on being on Windows natively.
A few things still bothers me about my current linux desktop is that the video drivers/software still aren't as good as their windows counterpart. It seems that I can still do more with the windows set of drivers from Nvidia then the linux drivers. I'm sure there are some manual tweaks that I can do directly to the configuration but I haven't had as much time. This basically means that I can run WinXP on Linux, but the visual look isn't as nice as it looks on being on Windows natively.
Wednesday, May 31, 2006
Video @ Yahoo!
Haven't had any time to really write recently because of work and other things going on, but check out the latest change to Yahoo! Video. It's pretty neat and reposition to take on youtube.
Tuesday, May 16, 2006
The world's information.
Google's traditional mission statement is to "organize the world's information." Yahoo has never been as much about organizing information as much as it is about finding information (original Yahoo portal), centralizing personal information (My Yahoo), and generating information.
Google has recently launched some pretty cool things. Even though I work for Yahoo, I don't hesitate to say it when Google launches good stuff. Good stuff is good stuff!
The world need both companies. Yahoo can generate the content and let Google organize it. ^^
Check out Google's latest toys and the new Yahoo! Homepage.
Google has recently launched some pretty cool things. Even though I work for Yahoo, I don't hesitate to say it when Google launches good stuff. Good stuff is good stuff!
The world need both companies. Yahoo can generate the content and let Google organize it. ^^
Check out Google's latest toys and the new Yahoo! Homepage.
Subscribe to:
Posts (Atom)