Categories
How-To's

Windows Live Writer and Linux, How To Do It

I’ve seen lots of discussions floating around the internet, talking about people attempting to install Windows Live Writer. Some are using Mono, others the .NET Framework – all of them are using Wine. In this article I’ll explain How I Did It.

In this case the limits of Wine and Mono become visible. The .NET frameworks work partially in Wine so relying on them is useless (to be precise: all the external libraries needed in this case screw up this valiant attempt).

In the other corner we have Mono. Because WLW is in fact a Win32 executable, we have to use Mono in Wine (install the Windows version of Mono using Wine) but even the big anti-Microsoft framework fails here.

To be honest, Mono keeps failing every time for me. This is because Mono can run managed (byte-code only) executables fine, even the ones compiled for .NET (unless I’m mistaken). However, the windows in a GUI program are drawn using a native interface for .NET, one that Mono does not have as it uses a cross-platform windowing toolkit called GTK#. In short: any program that is used in a modern desktop environment and which is designed for .NET will not run on Mono. Thanks for the effort there guys…

So WLW on Linux is a no-go. And every other blogging tool out there for the Linux platform pretty much sucks or costs muchos dineros. I still have hopes for KBlogger but after 3 months its still at alpha 2 – so I stopped hoping that would be any help any time soon. I was using Bleezer before but it keeps screwing up source code which I am trying to post (I am hoping WLW will do this a LOT better). But how do we get out of this dark age, you might wonder? The solution? VirtualBox!

Categories
Programming

Matlab and C++

Wouldn’t it be cool to use native code in Matlab? You can ^-^.

I started out by writing a small hello world program to test C++ but every time I ran it against GCC I got funky errors. After a while I found out why: g++ is the C++ compiler, GCC only does old-skool C. D0h!

This is the crap you would see:

# gcc test.cpp
/tmp/ccrnZKfr.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cpp:(.text+0x23): undefined reference to `std::ios_base::Init::Init()'
/tmp/ccrnZKfr.o: In function `__tcf_0':
test.cpp:(.text+0x66): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccrnZKfr.o: In function `main': test.cpp:(.text+0x76):
undefined reference to `std::cout' test.cpp:(.text+0x7b):
undefined reference to `std::basic_ostream<char, char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccrnZKfr.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status

 

The guide I found even explains how to make a small Makefile to speed up the process of compiling (and testing). The (short) guide is here.

Right now I’m waiting for Matlab to finish installing and then I’ll try to test my Hello World from within Matlab. More info how that works can be found here.

Technorati: