Valid XHTML 1.0!

Valid CSS!

Powered by PHP

Get FireFox

1&1 Internet

Archived News

X2Go Linux remote desktopTuesday 21st January 2014
One of the major areas that I feel that Linux lags on is decent remote desktop / terminal services functionality.

VNC is still the bundled and de-facto way of connecting to a Linux desktop remotely. I have fond memories of blocks of screens appearing from remote machines whilst on my 56K modem. Alas, the protocol hasn't advanced since those days and it's clunky today - especially when compared to Microsoft's Remote Desktop Protocol.

I was pleased to discover FreeNX a few years ago, which is far better, using X11 forwarding with a fairly good client and runs over SSH (making it very easy to use from just about anywhere, as you can run SSH over HTTP proxies). FreeNX is a fork of NoMachine's system, which is also provided commercially. This has recently gone to version 4, offering better this than and the other. I don't like it. You have to pay for the commercial version if you want to connect over SSH and not their propriety protocol - plus it doesn't seem to handle screen changes as well as the previous version.

So when a disk failure last week prompted me to rebuild my server I decided to take a look if there were any other offerings. Forums discussions seemed to unanimously point to X2Go - which seems to be another fork of NX technology.

Installing it on openSUSE 13.1 is very simple thanks to the Open Build Service. I just added the repository to YaST and installed the "x2goserver" package. I then got stumped on how I set it up and configure it (being used to the usual painful world of Linux and GNU programs). I was surprised to find that it "just worked". I downloaded the client for Windows and connected up.

The client grumbles a bit with the quirky proxy setup I'm connecting through, but dismissing blank pop-ups and having to connect twice seems to do the trick.

Visual Studio frustrations.Friday 10th January 2014
For a long time, I've been trying to find an elegant light-weight solution to rapidly build .NET applications. I want to be able to provision a database with a model and build a UI which can handle complex data-entry and workflow.

.NET seems to provide all this.

Entity Framework: Allows you to build complex data-models and generate a database for you, or import a database and build a model on it. Great way for rapidly getting the design of your system up and running - plus it's portable as standard .NET classes so easy to integrate with.

SQL Server Compact Edition: Is a portable runtime, a bit like SQLite, but for .NET. No need to install a permanently running SQL server (express or otherwise).

ASP Databinding: ASP.NET allows you to data-bind your objects to controls, and have fields that will give you the value when loaded for display, and when you change them on the UI, automatically update the object behind (e.g. your data model).

Lightswitch: Allows you to rapidly build user interfaces and application logic through a UI - potentially meaning laborious data-entry systems can be put together really quickly.

All sounds brilliant eh? The problem is, none of these really get there...
To do two-way (or "unbinding") in ASP.NET, you have to use simple flat objects. Which means, you cannot really use Entity Framework to have an extensive model. And you're especially screwed if you're doing one-to-many or many-to-many relationships. It just doesn't work, and as-far-as-I-can-tell, there is no reason why it couldn't.

So I've abandoned that for the time being, and tried the new version of Lightswitch. Looks promising, apart from it falls flat on it's face straight away as the Microsoft team responsible doesn't allow it to work with Entity Framework (despite all being .NET). You have to use a classic SQL system (express or otherwise) - something I can accept, but was then thwarted by a lack of a many-to-many relationship support. And the ability to have shared tables. e.g. you have a user information table that can be referenced by multiple different foreign keys (e.g. project creator, last updated by, interested parties). So if you have duplicate database objects, you have to duplicate up the tables and the data.

[b]What I want[/b]: There are some great ideas here, they just don't hit the mark. I want to be able to fire up visual studio, design a data-model (e.g. EntityFramework) and connect it to a data-source of my choice (e.g. Compact Edition, or full-blown SQL, depending on my mood). Then drag or generate fields that I want to be on my UI whilst maintaining cohesion for my object trees. I don't even mind doing a bit of programming to connect it all up. What I don't want to have to do is manually assigning fields to properties and moving things backwards and forwards when that data is already there in a nice usable form. Too much to ask? Apparently.

ejabberd & ipv6Friday 3rd January 2014
I've been playing around with ejabberd Jabber instant messaging server (community v13.12) recently. Pre-built binaries and an installer is provided for Linux, which is nice - although packman repositories would be preferred.

So it's easy to setup and works straight out of the box. I though want a little more than the default - primarily I want it to run on IPv6 and it only appeared to run on IPv4.

The scarce documentation on the Web says you need to add "inet6" to the "ejabberd_c2s" listen section of ejabberd.cfg file. Simple enough - just it didn't work for me.

The obvious thing to do was to try and force the server to bind to both IPv4 and IPv6 addresses. Alas, this always complained about the port being in use by the other binding. What appears to work is to just bind to the IPv6 address, which will also pick up incoming IPv4 connections.

To do this, change the same section to reflect the IPv6 any address in addition to the port, e.g.:

{{5222, "::"}, ejabberd_c2s, [
{certfile, "/usr/local/bin/ejabberd/conf/server.pem"},
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536}

Previous Next