Compile Windows programs on Linux

Windows?? *GASP!* Sometimes you just have to compile Windows programs from the comfort of your Linux install. This is a relatively simple process that basically requires you to only install the following (Ubuntu) packages: To compile 32-bit programs mingw32 (swap out for gcc-mingw32 if you need 64-bit support) mingw32-binutils mingw32-runtime Additionally for 64-bit programs (*PLEASE SEE NOTE) mingw-w64 gcc-mingw32 Once you have those packages you just need to swap out “gcc” in your normal compile commands with either “i586-mingw32msvc-gcc” (for 32-bit) or “amd64-mingw32msvc-gcc” (for 64-bit).
Make Java GUIs less ugly (…or how I learned to love SWT)

Make Java GUIs less ugly (…or how I learned to love SWT)

It’s no secret that while Java possess probably the most widely distributed, cross-platform, and common user interface libraries, graphical Java applications on the whole simply stand out for the wrong reasons. Whether the GUI comes in the form of the Abstract Window Toolkit (AWT) or Swing, each can be far from pretty and often do not mesh well with the platform they are being run on. For instance, running an AWT or Swing application can be an almost alien experience, no matter what operating system you are using, because neither uses the native control widgets.

Some quick tips to speed up Java and lower it’s memory usage

Java is an excellent programming language but too often the JVM seems to slow it down. Yes I know that there have been tremendous speed improvements in recent versions but the fact remains that it can still feel slow. It also tends to use an insane amount of memory to do just about anything (the heap is cheap is the name of the game!). Well thankfully there are ways you can tighten the JVM’s belt and even fine tune its garbage collection process.

The Case for Objective-C

For my iPhone Application Programming course I have become quite accustomed to using Objective-C; mostly because Apple strongly recommends requires that you write all of your code in it. Let me just begin by saying that Objective-C can be one of the most confusing and, at least at first glance, poorly designed programming languages that I have come across. Rather than using the standard C-like syntax of instance.method Objective-C uses a message passing syntax which looks a little something like [instance method].

XMLVM makes all programming languages portable

I honestly don’t remember how I came across this awesome project but I am certainly glad I did! XMLVM is a software toolchain which is designed to take cross-compilation to a whole new level. Rather than just offer OS portability, XMLVM is able to actually offer OS, hardware and programming language portability. Here’s how it works: you write a program in a programming language of your choice, say .NET. Once compiled you send it through the first step of XMLVM which analyzes the produced CIL and creates an XML document out of it.

Hash Verifier Released!

That’s right an update to your favourite hash verification program! 😛 This update includes a few new features that some of you might find useful. It also includes help documentation which walks you through how to use it! New Features Menu strip for even easier use Export features allows you to automatically write all of the hashes to a single file About dialog that provides information about the program Help documentation Requirements:

Resource Tests: Java vs Mono/.NET

As someone who has recently begun to experiment with the Linux operating system I have also been introduced to .NET’s Linux’s cousin Mono. This has made me question what the best cross-platform program language to use is. I am familiar with both Java and various .NET languages (Visual Basic & C#) so I decided to run a few tests to see what the resource usage on my Linux laptop is like between these two competing platforms.

The return of the Hash Verifier

Some of you may remember an old Windows program of mine called Hash Verifier. It was a graphical utility that allowed people to generate hashes of their files, and then compare those to known hashes, ensuring that their files had not been corrupted. Well in recent months my foray into the world of Linux has finally taken me into the realm of programming on that platform. Being primarily a .NET developer on Windows I have found the Mono project on Linux to be an absolute breath of fresh air.

One algorithm to rule them all?

In the world of computers interoperability is key. If I send you an e-mail from my machine I should hope that you’re e-mail client would be able to read it. This is why we have standards. Standards are a good thing. They allow people to focus on improving performance and driving down costs instead of splintering user base and polluting the world with… less than elegant designs. But what if relying on a single standard is not the correct way to do things either?