False Positives , Ian Irving's Adventures in Tech, Toronto (and HK), Sci and SciFi

Saturday, April 03, 2004

Ka's evil twin : Astonishingly fucked-up car commercial: grab it while you can.

From Die Puny Humans
OH.... My..... God !!

Ka's evil twin, the Ford Sportka. I can't believe they did this!

I'll post it here because it's going to get pulled. KA2.mpg (~944 K)


Update : Looks like the site (http://www.mplayer74.com/movies/KA2.mpg) is down (due to trafic ?).

New : I've now upload the first KA commercial kas lesser evil twin
More : Ford does not approve (what do you expect them to say?)

See also :
Need directions?
Inside Jack and Totally Gridbag
Feed the Models or Late 4 work or Wok boarding
Kikkoman
or Jaws in 30 seconds or Alien in 30 seconds or The Shining, The Exorcist, The Titanic or
SpiderMan in LegoLand
or Just go hunting for more stuff on the Right using Previous or the Archives

Friday, April 02, 2004

Update on Gmail

Yes it's real, although a lot of people weren't sure.

Erik Thauvin has a screen shot. (Update : according to Kevin Fox Erik's are faked, but his are real via Boing Boing

Someone commented (can't remember who, sorry) that given Google impending IPO, the SEC might frown on such a joke.

and the real Goolge gag was the job posting for a position at Google's Copernicus Center. (I applied just in case) was because the subject of todays User Friendly (and now I know where all that 419 money is going).

Thursday, April 01, 2004

Top 100 April Fool's Day Hoaxes Of All Time

Top 100 April Fool's Day Hoaxes Of All Time. Enjoy

Found Words : little broadband; big broadband

little broadband : high speed internet connections above dial up modems, up to single digit megabits per second speed i.e. < 10 Mbps. This is current cable or dsl modem connections.

big broadband: high speed internet connections above 10 Megabits per second, up to a gigabit plus (a trillion bits per second).

both spoted in David Ticoll's Globe and Mail article (April 1, 2004) : Jumping on Alberta's bandwagon

RSS holds promise for on-line news delivery

Via Globe and Mail Jack Kapica reports. Mr Kapica compares RSS to 1995's heavily hyped PointCast push product / technology and shosw how RSS feeds and RSS Readers are different and address the potential benefits of the earlier hype.

To summarize story so far : RSS stands for Really Simple Syndication or Rich Site Summary or RDF Site Summary , depending on whom you talk to. Its based on XML RSS readers don't take over your computer like PointCast did. RSS reader are pull not push. Unlike PointCast, RSS feeds and Readers are based on open standards not proprietary technology. It's don't require a signed contracts to add a feed to a blog or news web site. this allow a much larger number of sources. And there is a large choice of RSS feed Readers available that work on different OS's , some of which integrate with outlook email or are standalone, or you can write your own (Like me).

Wednesday, March 31, 2004

Google Mail : gmail

Assuming this isn't a early start on tomorrow.

Google's offering email with 1GB E-mail Storage, plus searching, plus want else?

reported on Slashdot.org, Cnet News.com, and ZdNet

here's the official press release : Google Gets the Message, Launches Gmail and here the web site for the beta http://gmail.google.com/

I'm going to be watch this space to get my preferred email address. imagine all the spam I can store in 1 Gig!

Month End REFERRER Stats

This month: 780,

tomorrow is the one year anniversary of this site. No fooling.

Very simple LotusScript function to parse value on url line

Below Is a very simple LotusScript code function that assumes that there is only one paramenter such that the url is something like "pathtoMyAgent/MyAgent?OpenAgent&123", where 123 is the parameter value you are look for


Function ExtractPassedParameter As String
'========================================================
' This routine parses parameters sent to the agent in the
' command line. to the right of the &
'========================================================

Dim paramdoc As NotesDocument
Dim pathinfo, param As String
Dim eq As Integer

Set paramdoc = ses.documentcontext

pathinfo = paramdoc.PATH_INFO(0)

eq = Instr(pathinfo,"&")
If eq = 0 Then
ExtractPassedParameter = ""
Exit Function
End If

' discard every before the first &
param = Right(pathinfo,Len(pathinfo)-eq)

ExtractPassedParameter = Ucase$(param)


End Function



This is old code, I've used for a looong time (maybe back in the EVI days?) . I don't know If I wrote it or stole it from someone smarter than me.

Getting around Lotus Notes Domino (Web) Error 4354: Cannot remove NotesDocument when it is the Document Context

Deleting Domino Doc's

In the process of doing some work I came across this problem, and after searching / googling the usual suspects did not find a resolution, until I remembered how I done this in the past. I'm going to document my solution as a aid to other and for the next time I have a brain freeze.

This works for Lotus Notes Domino R5.x.

When does this error occur : When doing Domino Web work, the easy, standard, way of executing a agent from a Web Form is to create a formula hotspot or button with the formula : @Command([ToolsRunMacro]; "myAgent") Which will execute the "myAgent" Agent, and the other half of this is have LotusScript code along the lines of :


Sub Initialize

Dim session As New NotesSession
Dim sessiondb As NotesDatabase
Set sessiondb = session.CurrentDatabase

Dim sessionDoc As notesDocument
Set sessionDoc = session.DocumentContext
........' the rest of the code



Now after doing what ever other stuff you what / need to do, you what to delete the Document from which you called the agent so you :

Call sessionDoc.remove(True)


Which would do ordinarily do exactly that, but this time blows up and doesn't remove the document. ACK!

After trying a few things and then RTFM'ing, I discover that at the end of the help page for DocumentContext property it says :

You cannot use the encrypt and remove methods on the Document object returned by DocumentContext...


So, I'm SOL, right? Not so fast....

I've got 2 ways around this:

1) rather that do a remove in the first agent, mark it with a status indicating it needs to be deleted...

Set sessionDoc.Status = "DeleteMe"
Call sessionDoc.Save ( True, False )

The Documents can either be manually deleted (from a Lotus client and special view, by the appropriate user) or you can create a scheduled agent to do a search for document marked for deletion and zap them. Like this....

......
Dim tmpDoc as NotesDocument
Dim Doc As NotesDocument
Dim Dc As NotesDocumentCollection
Dim searchFormula As String
searchFormula = |SELECT Status="DeleteMe"|
Set DC = db.Search( searchFormula, Nothing, 0 )
Set Doc = DC.GetFirstDocument
Do While Not(Doc Is Nothing )
Set tmpDoc = Doc
Set Doc = DC.GetNextDocument( Doc )
Call tmpDoc.remove(True)
Loop
.......

Two additional things 2 keep in mind. Make sure any user views or lookups wouldn't find the document marked with the sessionDoc.Status = "DeleteMe". Run the actual delete agent as often as needed or a server resources allow.


I don't like the above solution because I need to worry about the showing up where it shouldn't or going though any views might show the document. For a existing application, there is a risk that a deleted document will be visible. The other reason I don't like it is because It requires an higher level user to remember to open a view to manually delete (and I'm busy enough as it is) or the server resources to run yet another scheduled agent (and the servers are the only thing busier than me).

2) The workaround is to invoke the agent another way, to modify the agent to make it to work by NOt using the @Command([ToolsRunMacro]; "myAgent") Command and the DocumentContext property.

Rather, Launch the agent via it url (either building a HREF or using @URLOpen("pathtoMyAgent/MyAgent?OpenAgent&ID=123"), pass on the url line a ID to the document, then within Agent, parse the url to get the Id and do a look to get the NotesDocument which is then removable.


I'll post some code to parse the url line paramters shortly. A quick google failed to find anything useful. Hopeful this will save the life of some newbie.

Update : here that promised code: Very simple LotusScript function to parse value on url line. enjoy.

Found Words : Gerry; Red Guard generation, Spim

Gerry or Gerries : A old person or geriatric. spotted in The New York Times, March 28th, "Geezers, Gerries and Golden Agers" by Geoffrey Numberg.

Red Guard generation: China's equivalent to the West's baby-boomers. Those born after 1966 (the Cultural Revolution) but before China's one child policy (and leading to the rise of the so-called "little emperors") in 1979. spotted in The Economist, Marcth 27th edition, A Survey of Retirement.

Spim : Instant Messenger Spam.

Sunday, March 28, 2004

Cecilia Zhang, Missing Girl, found dead. Heaven gains an Angel.

As just reported by The Globe and Mail, In a tragic end to the mysterious disappearance of nine-year-old Cecilia Zhang, the little girl's remains were identified Sunday. Very few details have been reported so far.

Cecilia was discovered missing the morning of Oct. 20. She would have turned 10 on March 30.

Such a sad story. I hope they find the horrible person or people who did this.