Private VPNs

As a contractor and part of LDC I have multiple clients on the go at once, one of the problems with that is sometimes their needs overlap or one has a crisis when your on site with another, mostly you can just explain to the client your on site with, not bill for 30mins and go stand in a stairwell to talk them thought it, however often it is far quicker to just log in to a remote server and fix the problem directly.

Quite reasonably clients firewalls don’t normally allow this kind of behaviour and block most of the ports you need to fix such things (SSH, RDP and NOTES), the first response would be to just use a 3G card (and indeed I have one that works rather well and has let me fix client issues in the strangest locations ) but at large clients I always seem to be stuck in a basement or some other no-signal zone.

This preamble is by way of introduction/justification to a private VPN service I am now using, I had a good look round before picking one, needing it to both support on Linux AND not be one designed for anonymous P2P (I DO NOT want a client thinking I am using P2P on there network), the one I picked is http://www.witopia.net/ who provide a very quick professional service with good support (I waited 15 mins for a support responses) and have a great wiki http://wiki.witopia.net/wiki/Main_Page

If you want it for the same usage as me then you want a certain configuration else your not going to get out of the firewalls

1) You will need the “personalVPN – SSL (openVPN) ” product http://www.witopia.net/index.php/products/
2) You will need to swap to alternative ports (443) http://wiki.witopia.net/wiki/Alternate_Ports
3) If your on Linux (ubuntu 10.04 + ) and have followed the wiki instructions, you will also need to alter the advanced setting on the VPN configuration as below (this is not on the wiki)

solves a lot of problems for me.

The BBC model B computer and lesson in life

When I was but a nipper my parents bought me a BBC computer, which became unpopular in the market place within hours of me receiving it (every one else had Amiga, or Atari or what ever), since then I was a mite paranoid of being on a loosing side, and felt like jumping ship as soon as some twit says that something is ‘dead’ , thankfully I have since met good and sane(ish) people, who have taught me otherwise, I am not a domino developer, a flex developer, a Java developer, a web developer, a domino admin, an exchange admin, a 3rd line server support, a storage specialist, these are just roles, I am just a tech, I do the job my clients want in the way I think will bring them the most long term gain and waste the least money

I have few strong opinions (except when it comes to happy hardcore, energy drinks and dark perversion), but peoples big dramatic gestures are one of them, they make no sense in a career path such as IT where you cycle your skill set every 2 years or less, there is no need to say anything is dead, or beat the old chest or unleash attack kittens, just be good at what you do, enjoy it and keep as up to date at time allows

I love domino (the fact I’m paying to go to Lotusphere out of my own pocket I feel is proof enough), and it has paid the bills in a lot of ways for a lot of my working life, but I’m not going to pass up a job just because it does not have domino in it, and you know what, that attitude has helped me bring more life to domino that you could imagine, as each none domino project gives me extra skills I can glue back on the strange Swiss army nice we call Lotus Notes. 🙂

Prepping for Lotusphere 2011 ten things – Part 1

This is my third lotusphere and the first one where im paying for every last bit myself, no freebe ticket for both babeing this year, im also there as part of LDC, so I am going to squeese every drops worth of value from the trip, but just like the rest of the comunity stuff we do, you have to put in the effort yourself to get value out, to this end i compiled a list of tasks to do before, before during and after lotusphere, anyone going to join me?

10 things to learn/do before you go there.

1) Ensure you have a LotusLive account and have had a good look around.

2) Ensure you have the latest version of Notes installed, and have played with its new features.

3) Subscribe to the podcasts, and keep up-to-date. (DONE)

4) Make a list of questions you want answered, get your pet peeves in a row, so you can voice them to Lotus in person.

5) Sign up to a cloud service and TRULY understand what “cloud” is rather than just the hype. (DONE)

6a) If you’re an admin, have the latest version of Domino installed on the most up-to-date OS it supports.

6d) If you’re a developer, ensure that you have the latest version of Eclipse installed and set up correctly. (DONE)

7) Learn about the competitors: get accounts with at least two direct Notes competitors (salesforce.com, Google apps, a free Sharepoint account) and explore their features.

8) Learn about the symbiotic Notes products, play with at least two of these (Sametime, Quickr, Connections, etc.). Can these be of value to you, do you need to find out more from a guru when you have them to hand?

9) Tell your clients and ask your boss whether there’s anything THEY want to know. Get them involved: what do your clients / boss want in the next 12 months?

10) Get your business card printed.

Old Comments

Mitch Cohen(10/12/2010 02:03:09 GMT)

Some good ideas….. See you in Orlando

Mark Myers(10/12/2010 09:21:56 GMT)

cool, yup see you there!

rsync backup

This was something I should have got round to doing ages ago but I finally set up my laptop to backup to my NAS using rsync, and I figured a proper step by step guide might help others, there are lots of rsync guides out there but few that don’t assume loads, so here’s a simple one

GOAL: I want to backup nearly everything in my home directory onto a windows (or samba) share, I want it to be one click, not to do certain places and files and on subsequent runs only back up new stuff, I also don’t want it to inherit any fancy permissions as if I have a disaster I might need to access it without out any rights on a new machine.

I am assuming you are using ubuntu or a common version of Linux, most of this will work on the mac I suspect (I know rsync does)

SO, first thing I need is a mount or drive mapping to backup too,

1) Run “gksudo nautilus” to get a all powerful file manager and create your folder that is going to be your mount point, I created “/media/backup”

2) Next ensure you have samba file sharing utilities installed (smbfs), you can do this on a terminal prompt with “sudo apt-get install smbfs”

3) See if you can now mount your share with “sudo mount -t smbfs //192.168.0.XXX/myshare/backup/ -o username=stickfight,password=password”
This assumes that I am backing up to the “myshare” share on the IP address 192.168.0.XXX and into the “backup” folder that already exists, also that you have to log-on to your share to be able to write to it, if you don’t, just miss out the “-o username=stickfight,password=password” bit

4) Next you want to figure out which files and folders you DONT want to backup, in my case, I don’t want any big media files or to backup the cache folder, so I create a text file called “backupexclude.txt” save it into my home directory and type the following into it (making sure that items are on separate lines)

*.mkv
*.avi
*.ogm
*.mp4
.cache

The paths are relative so instead if /home/stickfight/.cache , as I’m backing all of /home/stickfight/ I just put “.cache”

5) install rsync “apt-get install rsync ”

6) Now in the terminal window you want to enter “sudo rsync -r -u –exclude-from ‘/home/stickfight/backupexclude.txt’ –progress /home/stickfight /media/backup/home”

let me break it up first

“-r” = copies all the sub directories and file, normally you would use “-a” but that copies the file permissions as well which in this case I don’t want.
“-u” = Update, means it only copies only new or recently changed files.
“–exclude-from ‘/home/stickfight/backupexclude.txt’ ” = loads the exclude file we just made.
“–progress” = makes the terminal output far more readable and tells you how far it gets now.
“/home/stickfight /media/backup/home” = source and target directories.

7) run this and make sure it does what you expect, rsync has tons of options, so alter it as you see fit, once you have it working, copy both lines into a text file and save it as backup.sh (or whatever)

8) you can now run it form a icon with “sudo sh /home/stickfight/backup.sh”

there we go , job done

P.S. you might notice a lot of “sudo” going on, perhaps this is not correct from a security point of view, but I’m stripping out the security anyway and I just want it to work, without complaining

Java quick tip, the pipe delimiter

The ‘ (or pipe) symbol is a excellent delimiter, rarely used by users, and of particular use if your doing intra line delimitation, In Lotus script a normal usage example would be:

Dim CountryCode As String

CountryCode = “Britan’GB”

Dim vField As Variant

vField = Split(CountryCode, “‘”)

 

So in Java you would expect to write

String[] vField = CountryCode.split(“‘”);

This will appear to work but will do something odd (it normally delimits on every character), this is because split() is expecting a regular expression and the ‘ is the OR special character for regular expressions, normally you would just ‘escape’ it with a ie ”’ but for some unknown reason, with split() you have to double escape it, eg

String[] vField = CountryCode.split(“\'”);

daft little tip, but it might help someone

Old Comments
————

##### Mark Myers(30/11/2010 11:15:12 GMT)
true enough, but a pain for though that don’t know (hence the post)

##### Andrew Magerman(30/11/2010 10:16:43 GMT)
Mark,

I use RegexBuddy { Link } for calculating my regexes. It’s awesome, and it automatically does the annoying Java escaping for you. It’s written by the guys who wrote the O’reilly book on regexes. It’s worth every penny of 30 – I would not do any regexes without it.

Alas, it is windows-only, but I guess you could have a little virtual machine for your regexes. Even if it hurts your Linux soul.

Andrew

##### Mark Myers(29/11/2010 11:34:22 GMT)
cool, thanks for the tip, on the reason for the double escape the reason that i say unknown is that it allows single escapes on a number of other special characters, i will looking to auto escaping of characters in eclipse as i use reg ex quite a lot , ta

##### Kerr Rainey(30/11/2010 11:04:56 GMT)
Well, the main problem is not so much how java handles regex, but that there is no regex literal in java. There is no way to simply write a regex pattern into java source without escaping it. If you pass the regex pattern in from some other input then you don’t have the escaping to deal with.

##### Mark Myers(30/11/2010 10:29:21 GMT)
Andrew, it is a fine bit of code indeed, i use edit pad pro from the same place and would go insane without it, alas you are also right about windows, it tend to only use Linux a good solid host os + media player, and do most of my actual working in windows VM’s

 

##### Mark Myers(29/11/2010 20:17:17 GMT)
an example would be b , if you go to an expression builder such as { Link } both b and ‘ work just fine, but in split() only b would work, also ‘ works fine in things like Thunar file manager.

##### Kerr Rainey(29/11/2010 10:19:14 GMT)
I think the reason for having to put two backslash chars is that the java string literal for a backslash is “\”. So to pass a regex patern ‘backslash followed by pipe’ to the regex engine from a java string literal you need to put “\'”

You can set up eclipse to automatically escape strings pasted into string literals. Normally I find this a pain, but if you have a long regex pattern that you need to escape it can be handy to turn it on, paste and then turn it off again.

##### Mark Myers(30/11/2010 09:52:08 GMT)
that’s the problem from my point for view, there is the way reg ex is handled by java and the way it is handled by everything else, if you have a valid regex expression that works else where it has to be modified to work in split()

 

it would seem im not the only person that finds this irritating see “backslash mess” near the bottom of { Link }

##### Kerr Rainey(29/11/2010 17:15:03 GMT)
Do you have a specific example?

All I can think of off the top of my head is if I wanted to pass something like a double quote to the the regex engine. Since I don’t need it escaped in the regex, but I do need to escape it the the java string literal, that would be “””. If I wanted the regex to look for a backslash, I’d need to escape it in the regex and in the java string literal, ending up with: “\\”

I’d be really curious to find something that didn’t work like that.

##### Kerr Rainey(30/11/2010 09:16:31 GMT)
Are you sure you are getting the result you expect in the b case? I’ve just done a little test and although it runs, does not give me the answer I would want.

‘b’ is the char literal in java for a backspace. Putting that into a string literal however can give you odd looking results. Just printing it to System.out will not show it, but the length of the string will include it.

If it is the regex pattern to your split then it will split on any backspace in your input. But it won’t match anything if there is not backspace char in the input.

If the regex pattern you want to use is to match only the beginning of the word then you will have to escape the backslash in your java string literal.

“Look out Mr. Toad.”.split(“bo”)
gives
[“Look out Mr. Toad.”]

“Look out Mr. Toad.”.split(“\bo”)
gives
[“Look “, “ut Mr. Toad.”]

“Look out Mr. Tboad.”.split(“bo”)
gives
[“Look out Mr. T”, “ad.”]

##### Wormwood(24/11/2011 15:38:50 GMT)
I just had this problem and found your tip using Google. Thank you very much! 🙂