November 21st, 2008 Scott
This is a handy technique to use when developing in virtual machines. To make development easier, I run a local Git server on my Linux host and install the Git client tools into each of my virtual machine environments. As I work, I push my Git change sets back up to the host Git server.
In the event I completely destroy a virtual machine, I merely clone a fresh virtual machine, and pull the latest code from the host Git server. In most cases I can be up and running again in minutes. Plus it helps me keep my code organized in a central location that is easy to backup. What is not to like?
Posted in Linux, Technology | Comments Off
November 19th, 2008 Scott
As I work on my XPath editor for KDE, I plan on chronicling my work here on the blog. I think it will be fun to keep a journal of my progress and look back on it once I am done. To begin with, I am putting down some initial thoughts I have had while starting to work on the implementation. Nothing here is particularly deep, but it is my blog, so I can be self-indulgent every once in a while.
- C++ – I think I have forgotten more than I remember about C++ programming. It is slowly coming back to me, but it will take some time before I am truly productive in the language again. The last time I did any serious programming in C++ was back in 2001.
- KDE/Qt – I like the whole slots and signals bit that Qt uses to handle events. However, there is a huge amount of information to digest in order to be productive. In many cases, there are conflicting choices between the widgets that ship with Qt and the widgets that ship with KDE. Hopefully I can track down some guidance on which widgets to use.
- CMake – All I can say is, “Wow!”. This is much better than screwing around with make, libtool and any of the auto* tools.
- libxml – This is just a matter of learning the XPath API, but when combined with the first point, I end up spending more time working with the nuances of the C language and less time actually learning the API. This will work itself out eventually.
So far, I have managed to build a simple test program and create a CMakeLists.txt to build it. Next I am going to work on learning how to use Qt Designer to layout the graphical elements of the user interface, and incorporate it into the build process.
Posted in KDE, Linux, Technology | Comments Off
November 17th, 2008 Scott
As a part of my continuing quest to become a better developer, I have decided to undertake a personal programming project. This project has three goals. The first is to build an XPath/XSLT editor. I have been unable to find a solid open source editor for Linux (or Windows for that matter) so I figured I would take a shot at building one. The second goal is to learn how to develop software for the KDE platform. KDE on Linux is my primary desktop environment and I am hoping to use what I learn to make future contributions to the project. My third and final goal is to expand my development knowledge by cross-training in an area that I normally do not work in. Since I normally work as an integration developer on Windows, working on a desktop application for Linux is about as different as it gets.
Cross-training is an excellent way to learn new skills and expand your horizons as a developer. Whether it is learning a new language or trying out a different style of programming, a cross-training exercise will not only expand your depth of knowledge as a developer, but in many cases will provide new insights for using the technologies you are already familiar with. In my case, I primarily develop solutions using a combination of BizTalk Server and the .NET Framework. Working with XML (a major component of BizTalk) lends itself to using recursion, a staple of functional programming. Spending some time learning functional programming languages like LISP and XSLT has added a whole new dimension to my development skills. Now I am looking into learning more about F# as a natural way of using functional programming techniques with .NET to extend BizTalk.
If you are a developer who has never ventured outside the realm of your primary skill area, I highly recommend trying something new. If you are truly interested in becoming a better developer, I guarantee you will not regret it.
Posted in KDE, Linux, Technology | Comments Off
November 5th, 2008 Scott
Last month I posted an entry stating that I was experimenting with various user interface toolkits for building Linux applications. This is just a quick follow-up to declare that I have made a choice. It looks like I will be building my XPath editor project using Qt and KDE. Since I posted my previous entry on the subject, I have managed to get KDE 4.1 working well enough for daily use. Since I use KDE as my primary desktop, it only makes sense to build my application for KDE.
Now I need to brush up on my C++ programming skills and learn more about working with the Qt and KDE libraries. I am (slowly) working my way through the KDE programming tutorials on KDE Techbase. Once I have familiarized myself better with KDE programming I will be ready to start work on my XPath editor. Now I just need to find the time to finish working through the tutorials.
Posted in KDE, Linux, Technology | Comments Off
November 3rd, 2008 Scott
This is just something I have been mulling over in my mind. Is there really a point to working on open source software for the Windows platform? Does it make sense to expend time and effort building software for a closed operating system? Would it not make more sense to develop open source software for an open source platform?
Part of me thinks open source development on Windows is a waste of time.The open source software being developed on Windows makes the platform more valuable. This increased value primarily benefits Microsoft, but does little to provide an incentive for Microsoft to open their platform. If users can get high-quality open source software that runs on Windows, what motivation do they have to switch to an open source operating system? In the end, does this ultimately inhibit the growth of open source software?
On the other hand, part of me thinks that open source development on Windows is very valuable. If it was not for the availability of open source software on Windows, how many users would never be exposed to the concept? There is also the idea that using open source applications on Windows makes it easier to switch to an open platform later. For example, somebody using Firefox and Thunderbird on Windows would find it easier to switch to something like Fedora Linux because they have access to familiar applications. Without access to these applications on Windows, the cost of changing to a fully open source system might be too costly for some.
I do not have a final answer to these questions. As any regular readers of this blog already know, while I make my living working with .NET and BizTalk on the Windows platform, I also have a passion for open source software and Linux. Some times I think it would be nice to combine the two and develop open source tools to help with my BizTalk work. On the other hand, I sometimes think my efforts would be better spent developing open source software for Linux instead. I guess this is going to require more time to figure out.
Posted in Personal, Technology, Windows | 1 Comment »