Connecting to Sonicwall VPN from Linux (Ubuntu 12.10)

  1. Go to https://sslvpn.demo.sonicwall.com/cgi-bin/welcome
  2. Login using demo:password
  3. To download tar.gz with client click on NetExtender icon
  4. Create symbolic links, on 32 bit linux:
sudo ln -s /lib/i386-linux-gnu/libssl.so.1.0.0 /usr/lib/libssl.so.6
sudo ln -s /lib/i386-linux-gnu/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.6

on 64 bit linux:

sudo ln -s /lib/x86_64-linux-gnu/libssl.so.1.0.0 /usr/lib/libssl.so.6
sudo ln -s /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 /usr/lib/libcrypto.so.6

5. Extract the client, make install script executable and run it as root
Now you can use one of these commands:

sudo netExtenderGui
sudo netExtender

In a bash script you could use:

sudo netExtender -u user -p password -d domain server

But it should be evident that this is not a very secure method as it needs to be run as root (or pppd run as root – see prompt during installation), and the password as well as the user are stored in plain text in the shell history and who knows where else.
Maybe using the GUI or the interactive CLI tool is better?

Common issues with circular coordinates

For a tube simulation I am doing I am working with circular coordinates. I.e. a point on the wall of the tube could be defined by two parameters: the point along the centerline (spline) of the tube, and the angular coordinate given in the range [0,1].

Because the angular coordinate 1 describes a full rotation, 1 = 0; (because 360 degrees will give the same result as 0 degrees rotation)

This leads to a couple of issues if we want to calculate the difference between two angular coordinates, or the mean between two angular coordinates.

Continue reading

Moving the root partition from one physical drive to another in Ubuntu Server 12.04 LTS

I decided to generally upgrade some of the hardware in my home-server, which consisted mostly of salvaged parts. This required me to move the root partition to another harddrive. Sounds like a daunting task, but it actually isn’t such a hassle.

Here is how I moved my Linux root from one drive to another in Ubuntu Server 12.04 LTS, and was able to (finally) throw out my old IDE drive.

Continue reading

Adding SSL Certificates to Google Chrome Linux (Ubuntu)

Needed this to access my home server without getting a warning every. damn. time. in Chromium

Peter van der Does:

Google Chrome in Linux doesn’t have a SSL certificate manager, it relies on the NSS Shared DB. In order to add SSL certificates to the database you will have to use the command line. I will explain how you can add the CAcert certificates and a very easy way to add self-signed certificates.

http://blog.avirtualhome.com/adding-ssl-certificates-to-google-chrome-linux-ubuntu/

Selecting GameObjects with a generic ComboBox in Unity3d

objectComboBox

Unity’s GUI System does not offer a Combo Box at the time of writing and I needed a ComboBox to select different objects of a certain MonoBehaviour type in my simulation. Based on the ComboBox from here (there are a number of variations) I came up with my quick’n’dirty ObjectComboBox.cs script. It is a generic class that takes any kind of UnityEngine.Object (or an extension of Object) as a type parameter. That means any MonoBehaviour, Transform, GameObject, Vector3, you name it.

Continue reading

Linux Screen Tutorial

When doing administrative stuff on my headless Linux server I sometimes need to keep a command running, even if I lose my shell connection. The screen command works very well for this, but it also has a lot of other helpful features – ones that I keep forgetting how to use since I don’t play around on the console enough anymore. So I created this concise list of often used and forgotten commands :).

Continue reading

Screenshot Coroutine Demo

Waiting for Simulation Results using Coroutines in Unity3d

In an algorithm that I am implementing for my thesis, I need to wait for information from the simulation before I can continue the algorithm. In a multi-threaded application you could just create multiple threads with chunks of work that have to wait until other work is finished. But without multithreading there is a problem: How do you wait for something without blocking the entire Application while still tracking the state of an algorithm? Continue reading

a blog about programming and other stuff I feel like documenting