Free Software

In modern computing, you are likely to be using GPL or MIT licensed programs, especially as a developer. While huge companies are propagating digital rights management, software patents, and are inforcing copyrights, free software represents the spirit of the early days in computing: sharing information free of charge and royalties.
Free Software gives everyone the right to look at program source code, to use and modify it, for as long as the “rights” are retained. It is an extremely intimidating concept, especially for developers wanting to add content to already available programs, without the need to request features and go through a long line of support lines. This enables hundreds of developers to work together, share and modify each others ideas, and create applications for all major operating systems.

Sounds like a coders’ dream come true. There is just one major drawback: ease of use. Not the ease of use for the end user, but of the development tools.

On Windows, Microsoft’s own Visual Studio is one of the major development platforms, or integrated development environments (IDE). Nowadays, C# or Visual Basic are available for rapid application development (RAD) with the .NET Framework. This is where Visual Studio truly lives up to the marketing fuzz: hardly any development environment is so comfortable to use and yet powerful in features. Dead easy visual designers for data sets and dialogs along with templates. Comfortable text editing, indenting and formatting inclusive. Even Stop-Edit-Run debugging in the case of Visual Basic, without the need to recompile the whole project. A invaluable time saver for the average developer.

The popular development environment for software created with “free” tools which are portable mostly consists of a whole bunch of tools: vi/vim/emacs for editing, gcc for compiling, gdb for debugging. This so called toolchain is then complemented by a host of libraries, such as zlib, and a toolkit such as GTK+, wxWidgets, etc. Each one of them is highly configurable and highly flexible, cross-compiling and other features not even mentioned. But they are incredibly difficult to get started with! vi probably has more keyboard commands and shortcuts than the average human brain can store, gcc compilers ship without any infrastructure to actually create a program (libraries, headers, examples), and gdb is very difficult to set up and use.
This is not to speak of the wealth of libraries and dependencies one needs to create something meaningful, all of which have to be gathered seperately. Different versions of libraries may not work with different versions of executables, patching headers to make specific versions work with new compilers or recent code bases is common practice.

In my humble opinion, a lot of users would love to support the Free Software movement. Everyone involved with this very project here at vware would love to give back to the community. If it was not for all the time you lose getting into it, where you could do something meaningful (like actually developing an application).

100>>2=25

One of the features I always missed in VisualBasic was bitwise shifting. One of my most used features in earlier years, because it was especially useful for evaluating registers and masking out values. Since it was always rather easy to develop GUI applications with VB, I often hit the limits of it (as of version 6.0 and earlier).
The only way around it was to write a DLL in C and import it in VB to shift bits left and right. A lot of time has passed since then, and I did not need shifting as much anymore.
Yesterday, however, when working on ClanTools, I forgot the “” in MsgBox(“100>>25”). When the program hit this line, the message box showed “25”, which puzzled me at first, but then I realized that VB 2005 now actually supports bit-shifting! I wonder if I just overlooked it or Microsoft never actually announced it in a big way. They should have done so, it really adds to VisualBasic as a language.

We got obfuscated

When releasing freeware, you do not pay a lot of attention to protecting your program of hackers, or spend a lot of time implementing an overly complicated registration/activation system. However, with the dawn of the .NET Framework and the inability to compile your code to native executables, your compiled program can be decompiled pretty easily.

Freeware does not mean open source in this matter, so coders at least try to keep people from stealing their code. What you get packaged with Visual Studio is Dotfuscator CE, which is said to be one of the better obfuscation tools. With delay signing your assemblies, obfuscating them, and then signing, you make sure that these assemblies stay intact. However, if you have a setup project in the same solution as your source code, building the setup will also re-build all your assemblies, thus destroying all the obfuscation-signing, and simple create new, unsigned, and not obfuscated assemblies.

Just a nice little thing considering the new “coder friendliness” and RAD strategies. Right now, I am working around that by adding all assemblies directly to the setup, instead of adding the project output files, which would have been simpler and easier to maintain. Oh well.

Preparing for the future

Currently, several projects which be available on vware.at are currently under development. All programs which will be released or re-released will require the .NET Framework 2.0 to run. Additionally, operating systems other than Windows 2000 and up will not be tested or supported.

In the meantime, the changelog section has been integrated into the new site, so you can keep yourself up to date with recent evolvements of the software.

Scroll to Top