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)

days of lessons -lesson 1- AWS instances

Since returning from LS11 I have been simply swamped with work, but it has been very trying work, and I have made quite a few mistakes, thankfully these have been turned into lessons, the first one is to do with Amazon Web Services.

Now AWS is a very good service, but they do assume that you are not a prat (in my case its not a valid assumption), do NOT make any assumptions with them, take everything they say at face value, so “Terminate” does not mean “force a shutdown” it means TERMINATE

The evil Ben Poole has been sending me links since I terminated LDC’s primary instance (but as he had bang up to date replicas of the Db’s we were working on, I can hardly complain), the most useful of them are this one and this one

but in summary:

1) YOU may treat an instance as mealy a virtual server, but amazon don’t, they treat it more like a temporary session on their system, and will delete it instantly on the bases of one button click (plus conformation)
3) Turn on instance protection (found under the instance management menu in the AWs web console)
4) The nice little “Volume” (or drive) that is automatically created when you make a instance, only lasts as long as the instances life, if you terminate the instance it will delete (while you watch and cry), assigned proper extra ones
5) As soon as you are happy with you instances set-ups, build AMI (templates) of it and take snap shots of your volumes (in addition to backups)

nuff said