Native Linux Client for Notes

The Native Linux Client for Notes has been giving me real grief since i moved to mint 11/ Ubuntu 11.04 and in a huff I decided i would swap to a wine version of the 8.5.3 windows client (thus giving me the admin and dev client to boot)

Thankfully this has not proved difficult and although there are still some bugs/hiccups all the core functionality works just peachy

**Please note this is just Part 1, as its not a perfect walk though, more like a hack to get things working, i will clean it up and do a proper part 2***

1) Make sure you are running wine 1.3, i had a bunch of problems with earlier versions, that mainly showed them selves as an extremely slow start up time, if you are getting this but dont want to update, you can get around it by running “wineboot -update” from a command line, this cured the problem for me (until the next reboot). if you get this problem even after updating to 1.3, then unfortunately your going to have to clear out wine (un-install it, and rename the hidden “.wine” directory in your home directory and restart) as there seems to be something wrong with an early windows Dll that causes this (i will investigate)

2) just install on notes on wine as normal ( make sure your install .exe is set to “allow executing as a program” and is set to open with the “wine windows program loader” ,

I tried this multiple times and often got one of 3 errors, a critical “setdiretory()” which thankfully seemed limited to the older vewrsion of wine and seemed related to a timeout on the setting of a property, an “an unexpected error occurred while processing the provision manifest” this happened just after it had put the icons on the desktop, thankfully this can be ignored. and most irritating of all it seemed to stop you from selecting the admin and dev clients for install. faced with such buggery, I decided to cheat and simply copied the notes program and data directory off my 8.5.3 windows install and bunged it straight in the “/.wine/drive_c/Program Files/IBM/Lotus” directory in my home directory, after which all the errors went away (i mean Completely away I was able to reinstall just fine, so i am presuming that future updates are going to go rather well as well)

Obviously the whole “just copy it over” presumes that you have got default locations for your data directory (or know how to butcher you notes.ini), if people want instructions on how to setup a separate D: on wine tell me in the comments

3) Launching is a little bit of fun, the default icons created only partially work, and have a slight habit of getting stuck in a loop (the progress bar just keeps looping) on the developer and client applications, and normal Linux shortcuts don’t launch properly, (yes yes i will find out why and fix) so I’m launching the exe directory from the notes folder as of this morning, but the prgrams work just find a load REALLY fast

I am still going though and looking for additional things that are broke, but so far my list is

  • Drag and drop file attach
  • Sometimes the right click menu appears a couple of inches away from when you clicked it
  • You cant launch dev and admin applications from the basic client, but can launch them directly no problemfinally as a bit of proof, here’s it running on my machine (this blog entry was done from that instance)Domino Loading on Linux via wine from mark myers on Vimeo.

     

Short domino web site urls

As Ben pointed out yesterday, my love of substitution rules picked up off Mark in order to give lovely short urls to my website, meant that the comments section of blogsphere broke (not blogspheres fault), but I still love them so here’s a lightning fast guide to using them, and how not to suck at it

So here we have a basic use of substitution rules, the first line means that when you go to the root of the site, it redirects to your nsf (so you don’t have to stipulate it in the site config), also the path and .nsf don’t appear in your urls, the next 2 lines are in there are in there so that the preview and insert quick images from blogsphere work as it seemed to need them or it would not display properly (shrug, I know its poor of me and I know I should fix any issues I might have and pass them straight back, if they prove to be genuine bugs rather than me being a twit).

So next we have a problem that the code REALLY wants to connect to the actual path of the server i.e. www.test.com/apps/blog.nsf, and the first line is redirecting everything to root, ah! you think, ill just put a substitution rule in so that when we just ignore that specific URL, see the extra line below.

but dang it!!!, it does not work and the server console says “/apps/blog.nsf/apps/blog.nsf/basic?openform cant find design note”, this is because i have forgotten to read the flippin manual!!, as the domino admin guide states

 

“The incoming and replacement patterns in substitution rules must each specify at least one wildcard. If you do not explicitly include a wildcard somewhere in a pattern, the HTTP task automatically appends “/*” to the pattern when it stores the rule in its internal table. “

 

Soooo, just bung the “/*” on the end of you “/” rule, and hey presto it works

 

those quicker than me on the uptake will have realised that we can use substitution rules to move things like images and other resources out of a database with out having to go thought all that boring recoding e.g.

 

 

oh, after each change to make your substitution rules take effect straight away do “tell http refresh” on the server console

 

hope that helps

 

Oh, yes i know i put this up on a Wednesday but i will at the London Lotus Beer tomorrow night, so doubt i will be in a fit state to blog later

Old Comments

Randal Oulton(27/02/2011 01:10:59 GMT)

Okay I did a fudge on the home page for now with a meta refresh (ugh); and got google site search working again.

Well worth the effort, lovely short beautiful URLs that search engines will love.

Have a look, { Link }

Mark Myers(05/03/2011 19:02:57 GMT)

hi hi Randal,

thanks for the feedback, could you tell me what else it breaks

personally i don’t use default website document in websites i write (feels like hard coding) that’s why i have the rule pointing to “/” and deal with it at a design level

I have not used goggle search on website as I happily have domino FT, but agree that the urls should cater too it

Randal Oulton(26/02/2011 15:57:59 GMT)

Hey Mark,

this breaks a lot of things, like default home page in the web site document, google site search, etc.

I’m currently trying to figure out workarounds; if / when I come up with any, I’ll report back to save other people going “ack!!!”

The Server Names of Evil

Cruety to users should be part of all administrators sworn duty, the heaving multitude must realise this, that their plight is hopeless, to accept their fate and simply e-mail you their souls (or upload it to the collaboration server if its large, but NOT under any circumstances to fill up the file servers with multiple copies of it!!)

To reinforce this, the names of the servers they use on a daily basis should not only remind them of the dark gods (according to the prophet H.P. Lovecraft), but be bloody hard to spell,

Therefore I present suitably names servers who’s function is an aspect of their unholy names sake, may their naming bring insanity unto all who use them

Azathoth.Vhoorl.net
-“whose name no lips dare speak aloud” (File/Print Server 1)

Cxaxukluth.Vhoorl.net
-“A vast, swirling monstrosity of impossible size” (File/Print Server 2)

Yog-Sothoth.Vhoorl.net
-“The All-in-One and the One-in-All,The Lurker at the Threshold” (Collaboration Server 1)

Juk-Shabb.Vhoorl.net
-“a great shining ball of energy” (Collaboration Server 2)

Shub-Niggurath.Vhoorl.net
-“The Black Goat of the Woods with a Thousand Young” (Db server 1)

Chaugnar-Faugn.Vhoorl.net
-“The Feeder, Horror from the Hills” (Db server 2)

Nyarlathotep.Vhoorl.net
-“The Crawling Chaos, Messenger to Azathoth” (Mail server 1)

Baoht-Z-uqqa-Mogg.Vhoorl.net
-“The Bringer of Pestilence” (Mail server 2)

Rhogog.Vhoorl.net
-“The Bearer of the Cup of the Blood of the Ancients” (web server 1)

Nyogtha.Vhoorl.net
-“The Thing which Should Not Be” (web server 2)

Cthulhu.Vhoorl.net
-“The Great Priest” (VPN/Reverse Proxy Server)

Shudde-M-ell.Vhoorl.net
-“The Burrower Beneath” (Proxy Server)

Zstylzhemghi.Vhoorl.net
-“Matriarch of Swarms” (Chat Server)

Atlach-Nacha.Vhoorl.net
-“The Spider God, Spinner in Darkness” (DNS/DHCP 1)

Zushakon.Vhoorl.net
-“Dark Silent One” (DNS/DHCP 2)

Ithaqua.Vhoorl.net
-“God of the Cold White Silence” (Application Server 1)

Y-golonac.Vhoorl.net
-“The Defiler” (Application Server 2)

Tsathoggua.Vhoorl.net
-“The Toad-God” (Application Server 3)

bwahaha!!!

Old Comments

Devin Olson(22/02/2011 15:16:01 GMT)

LOL – Funny you should post this now. I just watched
{ Link }
over the weekend. Laughed myself silly.

Mark Myers(22/02/2011 15:58:01 GMT)

@Devin Cool

Days of lessons -lesson 2- Adobe Air and AV

Lesson 2 in my fortnight of not much fun, is to do with adobe AIR and file copying:

Problem: a download manager written for a client is hanging/erroring on making a duplicate of a recently downloaded file.

Now I did not get this problem on my dev machine, nor on my Linux box, or other Virtual machines, the error was our old fav #3128 found at runtime error messages and as the error suggest was caused by a combination of greedy AV process and churning HDD (actually the client machine was swapping due to low mem)

Sadly my initial hope to do it as Asynchronous action so as to not do nasty pauses by using a 1 off timer

SecondTimer = new Timer(500, 1);
SecondTimer.addEventListener(TimerEvent.TIMER, doSecondCopy );
SecondTimer.start();

this did not work because if there was a tiny file in the download sequence, the you could end up trying to copy the second file before the first one had been finished with by the AV, and due to the flow of the application a move to full Asynchronous behaviour was not practical.

so I ended up doing the old horror of inserting a pause in the app in flex/flash/air this is done like this

import flash.utils.getTimer;

var now:int = 0;
var start:int = getTimer();
while (start+500>now) {
now = getTimer();
}

for a 0.5 second pause

yes I know its bad, but it works, and I think its less ugly than multiple retrying after multiple tests for I/O errors. (ick)