Software Development with Linux

Try something different

A lot of new products or tools are made available to all software developers every months. Notice that I did not say new technologies, but I will come back to that later. It is possible to stay in touch with the latests tools to know what uses can be made of them. In fact, there are many that are doing so. In our industry, it is good to keep learning continuously.

But what happens when you do not know the past? You think that everything happening today is a brand new thing. You do not realize that the same technologies already existed, in different packaging but still, they existed. So you get people thinking that "NoSQL" is new, that cloud computing is new, that agile software development is new, or that mobile software development is new.

Do you want to be able to tell the difference between the old and the new? Do you want to be able to know which part is new and what already existed before? If so, try something different next time you want to learn something new. Instead of picking a new product, a new tool, or a new programming language, look at something older instead. Do a little bit of research on the topic that currently interest you, try to find what products, tools, or programming language first introduced that concept, and learn that instead.


Fixing SSL issues using stunnel

There is always many ways to fix a problem. Actually, there is always many ways to try to fix a problem. I recently ran across an issue with Subversion's SSL handling. For whatever reason, it was always aborting the SSL handshake with the server. I started to worry about being able to use Linux to interact with the Subversion repository.

Fortunately, I was able to access it using Firefox so it was not a networking problem. After many hours of searching on the Internet, most reports of a similar failure were on Debian/Ubuntu and were fixed by using a different version of libneon. But my Fedora 16 installation was already using the latest version, so that was not really helpful. The only other thing I found explaining this issue was when the server was misconfigured. Well, I am not the one managing the server so I can not do anything on that side. Then, I remembered a comment I saw earlier, that said to use HTTP instead of HTTPS, if possible, to actually remove the SSL issue from the loop.

Now, HTTPS was required for me. That said, was it possible to use some other tool to handle the SSL part? So I started to look for HTTP to HTTPS proxy solutions. Most HTTP proxy seems to be able to do that, but configuring those to achieve this is not well explained. I then found the simple stunnel tool. This is simply a generic SSL tunnelling application. So, I simply started it listening on port 8888 and forwarding everything to my Subversion server IP address on port 443 (the standard HTTPS port), and configured my Subversion client to use 127.0.0.1:8888 for the HTTP proxy. That took me 2 minutes and I can now access my Subversion repository without issue!

What can be remembered from this? There is always a solution, as long as you can think of alternative ways to approach an issue.


The key to a successful open source (personal) project

People who had to look for a new job recently probably know this : showing something you have done is a great way to increase your chances of being hired. That actually resonate well with how consultants or contract workers get new gigs. The more they can show, the more chances they have to get the contract. But now many people realize that the same is true for full-time employees as well. The issue is, full-time employees are often not allowed to share the code they have been working on for their employer. This is where open source projects come into play.

If you have done some works for an open source project, you can easily show it. This can be contributions to an already existing open source project, or your own personal open source application. While some prefer to contribute to existing projects, a (or many) personal project can be as rewarding or even more. But, you need to keep interest in your personal project if you want to pursue it. What is the best way to stay motivated about your project?

You have to work on something that really interested you. That is the most important criteria. Don't try to find something unique, that could be commercialized, or necessarily cleaver. If you have to choose between something you really like but has 0% chance of bringing you money, or something less interesting with a 10% chance to make you some, you have a lot more chance to stay motivated on the first project than the second. So if you drop the project because it does not interest you anymore, who care if it could have made you money? You will never know anyway.

So even if you think that your dream project has already been done a hundred times by others, even if you think that is a silly idea that has not much uses, or even if you think that other similars projects exist, it is still probably the best project that will keep you motivated to work on it. If it is able to achieve this, you will definitely gets something out of it. And isn't it all that matter?


Backup your contributions

We all have been told (and/or learned it the hard way) that backups are important. But, did you ever thought that you should backup project that you contribute to? Probably not. Well, maybe you did, but not me.

So there was that open source project backed by a new startup. The source code was available from the company's website and even licensed under GPL (do not remember which version). That was about 2 years or so ago. At that time, I did some work on that project as I thought it was interesting and a good learning opportunity. Don't ask me why, but I didn't kept a copy of that project on my computer.

Time goes by and I forget about that project. Last week, I went searching for it, but all I could find on Google was some old press releases. The company's website is gone, removing the source code from the public. This means I can't show that to anyone but more importantly, I can no longer thinker with it!

But now, I have learned my lesson. I will keep a local copy of all open source project I contribute too, and I even think that the availability of GitHub and the likes, there is no reason why I don't keep a copy there as well.


Browse older posts.