Archive for August, 2006


Page 2 of 7«1234567»

Creating a Wet and Muddy Rocks Texture with Filter Forge Photoshop plugin

Filter Forge is an new, incredibly powerful, texture and filter creation Photoshop Plugin. This tutorial will teach you how to build an interesting wet and muddy rocks texture using Filter Forge.

Comments

Quotas and Thresholds

There is a new article on developerWorks, Understanding quotas for IBM Lotus Domino mail databases. ? While most of the article is for administrators, it does includes sections that I think you should read: User experience with quotas and User experience with router-enforced quotas

So what is a Quota? ? It is the maximum size a database (mail file) is allowed to grow. ?For example, your company may have rules in place stating that your mail file can grow no larger than 500 MB.

Databases can also have a warning "Threshold" which helps you know when you are approaching your quota. ? If your mail file quota is 500 MB, a threshold warning of 400 MB might make sense.

Image:Quotas and Thresholds

When your mail exceeds its warning threshold, you will receive an error when you open your mail database and you will receive an email that provides you details about the warning.

Image:Quotas and Thresholds

If you allow your mail file to grow past its quota, you will find that you can no longer save messages (outgoing emails, drafts), and depending on how your company has configured your system, you may not be able to receive any new emails until you reduce the size of your mail to below its quota.

Comments

Tool to generate WSDL from Java

Hi,

I have been using the java2wsdl tool included in Axis2, however it creates a non-valid wsdl file and I have to fix it

Comments

New Eclipse Magazine: Free Download

Hi, my friend at work pointed me to this excellent resource called Eclipse Magazine (

Comments

Easily find a string in a Lotus Domino server log

Finding specific error messages or monitoring for a particular event in a Lotus Domino server log can be almost impossible, given the size of most Lotus Domino server log files. But it just got a lot easier, thanks to this script from SearchDomino.com member Felipe Cardoso.

Comments

How to configure DB2 on a single Lotus Domino server

Here are 10 simple steps to configure DB2 on a single standalone Lotus Domino server, courtesy of SearchDomino.com member Ashutosh Chandra.

Comments

Thanks for all the fish!

One of my favourite things about working for this company is the interaction I get to have with all of you, the end users, the developers, the IT professionals, the knowledge workers and so forth. In fact, over the least two or three years, I've been working hard to make that more part of my daily life here as a tester on Visual Web Developer. But, being a tester, I have a primary task, and interacting with the community wasn't it. And trust me, I tried as hard as I could to make it my primary task. But, a few weeks ago, Brian Goldfarb, a Lead Product Manager for Developer Marketing sent me a link to a job he had open, the Product Manager for Internet Explorer. After reading through the job description, I knew it was something that I wanted...(read more)

Comments

How to create a forgiving Notes/Domino date parser with Formula language

SearchDomino.com member Mick Crowder provides a Notes/Domino date parser written in Formula language that will graciously accept differently formatted date entries.

Comments

Changing a Lotus Notes database mail file from ‘archive’ to ‘mail’

If a Lotus Notes database mail file spuriously shows "Archive" instead of "Mail," this LotusScript code will remedy the problem.

Comments

Stubby - Now With Authentication! (Tuesday, Aug 29)

I just posted a slightly updated version of Stubby: the Axis Stub File Generator Database to the OpenNTF site. It's version 1.1. There were no bug fixes, but I did add the following features:

  • You can now pass a user name and password to authenticate (for basic authentication) or pass a session cookie (for session-based authentication) when you're calling a web service method. I also provided information on how this works in the example agent code that is generated.

  • The Java source files are now zipped up with their directory structure intact, and the zip file stored on the Stubby document. This is convenient if you want to recompile the source files yourself (from scratch).

If you want to do the authentication thing, you'll need to recreate the stub files in the new database first (which should take all of about 5 seconds). I had to hack the service interface class a tiny bit to give you easy access to a method that's available in the stub class that gets generated. Don't ask... just enjoy.

For a little more information on the Stubby database and what it does, please see my previous blog entry about it.


[ permalink ] [ e-mail me ] [ read/add comments ]

Comments

Anchor Links - Authoring Lengthy Documents Part 2

In the blog entry "Sections - Authoring Lengthy Documents Part 1" I explained one of the techniques that you can use to make lengthy electronic documents easier to read on screen. ? Today I'll cover another that helps users navigate a lengthy document on screen, Anchor Links.

Anchor links allow you to define specific points in a document that people can "jump to" by clicking on a link icon. ? As an example, say you are creating a document that has many pages, or chapters. ? You could create a Table Of Contents at the top of the document with links to each chapter below. ?This would enable the reader to quickly and easily jump to specific places in the document without having to scroll down.

With the document in edit mode, place your cursor where you want the "anchor" to go.
Image:Anchor Links - Authoring Lengthy Documents Part 2

From the menus choose Edit - Copy as Link - Anchor Link
Image:Anchor Links - Authoring Lengthy Documents Part 2

Lotus Notes will insert an icon representing the anchor as shown below. ? This link is only visible when you are in edit mode, users reading the document will not see these icons.
Image:Anchor Links - Authoring Lengthy Documents Part 2

Now place your cursor in the spot where you want the link to be created and Paste. (CTRL+V, or Edit - Paste, or right click - Paste)
It is here that the reader will click to be taken to the anchor spot you created above. ?Lotus Notes will insert the link icon as shown below.

Image:Anchor Links - Authoring Lengthy Documents Part 2

Repeat this process for all the anchor links you wish to create in the document. ? I also like to create links back to the top of the document as shown below. ?By doing this you end up with links from the top of the document down to specific areas (red, blue, and green lines) as well as links back to the top of the document (orange line)

Image:Anchor Links - Authoring Lengthy Documents Part 2

In my experience Anchor Links seem to be very under-used, or often not known at all. ? I hope this tip helps explain them to you, and that you can start using them effectively. ?

Comments

How to retrieve the template name for a Lotus Notes database

The Lotus Notes NotesDatabase class provides a method to determine a template name, but it only works for the template file itself -- template.ntf. While there's no prescribed method to grab the true template name for a Lotus Notes database, SearchDomino.com Hall of Famer Ulrich Krause has figured out a way to do it using LotusScript.

Comments

Using Script.aculo.us for Autocomplete on a Domino Web Page (Monday, Aug 28)

UPDATE: Looks like Phillipe Gauvin described this technique two months ago on his blog. I was scooped again! Nice job, Phillipe.

Yesterday I mentioned how easy it was to use script.aculo.us to create an auto-complete text box on a Domino web page. There's an example in my Weather Fetcher database (the "CityLookupAjax" Page), but if you want the step-by-step instructions, here they are:

1. Download the script.aculo.us library and extract the contents of the zip file to your hard drive.

2. Add the following files as JavaScript Script Libraries in a Lotus Notes database:

  • prototype.js (from the /lib folder, all the other files are in the /src folder)
  • scriptaculous.js
  • builder.js
  • controls.js
  • dragdrop.js
  • effects.js
  • slider.js
  • unittest.js

For each .js file, you need to create a new JavaScript Script Library, paste the contents of the .js file in, and name the Script Library exactly the same name as the .js file (like "prototype.js").

3. Create a new Page in the database and include the "prototype.js" and "scriptaculous.js" libraries. You can do this by going to the "JS Header" part of the page (a few items below where you set the Window Title), right-clicking in the script area, and choosing "Insert Resource". Here's a screenshot (click it to see the full-size image):

Adding JavaScript Resuorces to a Domino Web Page

4. Add the following style definitions to the "HTML Head Content" section of the page:

"

"

You can paste it in just like that, with quotation marks and everything (that way it's a valid Formula language string).

5. Add the following text on the Page, as Pass-Through HTML:

Lookup: 

So you have a text input field called "lookupField", with a div called "lookupDiv" that will display the auto-complete results, and you're creating an Ajax.Autocompleter that will listen on that field and call an agent called "LookupAgent" to get the values that will be displayed for the auto-completer.

You could do this with a regular field on a Form too, just set the HTML ID property on the field and paste the div and script parts afterwards. Please note that you have to put the "new Ajax.Autocompleter" line AFTER the lookup field on the page/form.

6. Save and close the Page, because you're done with that. Create a LotusScript agent called "LookupAgent" that looks something like this:

Sub Initialize
	Dim session As New NotesSession
	Dim doc As NotesDocument
	Dim q As String, qArray As Variant
	Dim decodeVal As Variant
	Dim fieldName As String
	Dim lookupVal As String
	
	'** get the request (HTTP POST request)
	Set doc = session.DocumentContext
	q = doc.Request_Content(0)
	qArray = Split(q, "&")
	fieldName = "lookupval"
	
	Forall stuff In qArray
		decodeVal = Evaluate(|@URLDecode("Domino";"| & _
		stuff & |")|)
		
		If (Instr(1, decodeVal(0), fieldName, 5) = 1) Then
			lookupVal = Strright(decodeVal(0), fieldName & "=")
		End If
	End Forall
	
	'** find the matches
	Dim db As NotesDatabase
	Dim view As NotesView
	Dim vc As NotesViewEntryCollection
	Dim ve As NotesViewEntry
	Dim returnString As String
	
	Set db = session.CurrentDatabase
	Set view = db.GetView("MyLookupView")  '** MODIFY THIS
	Set vc = view.GetAllEntriesByKey(lookupVal, False)
	Set ve = vc.GetFirstEntry
	
	Do Until (ve Is Nothing)
		returnString = returnString & "
  • " & _ ve.ColumnValues(0) & "
  • " Set ve = vc.GetNextEntry(ve) Loop '** return a
      list, which is what script.aculo.us wants returnString = "
        " & returnString & "
      " Print |Content-Type: text/plain| Print |Cache-Control: private| Print || Print returnString End Sub

    The agent is a little bit long, but not really complicated. It gets the value entered in our lookup field (passed as an HTTP POST parameter called "lookupval", as defined in the Ajax.Autocompleter params), looks the value up in a view, and returns the results as a

      list, which is what script.aculo.us is expecting.

      Ideally you would do lookups against a static list rather than hitting a view each time, but this should be okay for a small view.

      In any case, now you're done! Open your Page as a web page and watch the Ajax goodness. It should look something like this:

      script.aculo.us auto-complete test page

      UPDATE #2: Phillipe Gauvin just added a comment with another nice way to work with HTTP POST data:

      • Instead of calling an agent, make a URL call to create a document with ?CreateDocument
      • The "LookupVal" field on the form will contain the lookup value that is being passed
      • The other field on the form should have a computed value of something like this:
      • val := @DbLookup("":"nocache"; "";"myview"; lookupVal; 1);
        @If(@IsError(val); ""; "
          " + @Implode("
        • " + val + "
        • ") + "
        ")

      • You can also set a $SaveOptions field of "0" to not save the new document

      I haven't tried this before, but I'd guess you also have to hide everything but the computed field, have the form set to "Content Type: HTML" or "Content Type: Other", and allow anonymous users to create new documents. I won't know until I've played around with it. Pretty interesting technique.

      technorati tag: ,


      [ permalink ] [ e-mail me ] [ read/add comments ]

    Comments

    Weather Fetcher, Script.aculo.us, and a Sametime Bot (Sunday, Aug 27)

    So, I've been tinkering a little more with the Weather Fetcher database and I ended up with:

    • a few updates to the zip code list
    • a sample web page that uses script.aculo.us (and therefore prototype.js) to do cool things like auto-complete a city name lookup field and dynamically update a div using AJAX
    • code for an example Sametime bot to do weather lookups from Sametime (attached to the "About" page -- unfortunately, I had nothing to test it against, so I'm not sure that it actually works)

    I'm only just now starting to play around with script.aculo.us, and I couldn't believe how easy it was to add to a Domino web page. Just include the JavaScript libraries, add some CSS styles, and do a tiny amount of code and... whoomp, there it is! See the "CityLookupAjax" page in the Weather Fetcher database to see what I did.

    BTW, the download link for the Weather Fetcher database is the same -- WeatherFetcher.zip -- but the file has been updated (so if you downloaded before, you'll have to do it again).

    And yes, the download is still 19 MB. Sorry it's so big, but it has over 42,000 US zip codes in 5 indexed views, and all that ends up taking some space. It's worth it though, trust me...
    ;-)

    technorati tag: ,


    [ permalink ] [ e-mail me ] [ read/add comments ]

    Comments

    Slides + Samples Posted from my TechEd LINQ Talk

    One of the highlights for me of my recent trip to TechEd NZ and Australia was the opportunity I had to create and present a new "Building Data Driven ASP.NET Web Applications using LINQ" talk. LINQ is a super cool new technology, and is going to have an absolutely enormous impact on .NET developers and how they use data. I had a lot of fun doing the talk, and people seemed to really like it (someone told me just before I flew back that it was the most highly rated talk at TechEd this year). You can download the final slides + samples I presented here. The samples use a class library that I built during that talk that encapsulates my LINQ data model classesthat go against the Northwind database(please read this post to learn more about how to...(read more)

    Comments

    Building and using a LINQ for SQL Class Library with ASP.NET 2.0

    In my previous posts on doing data access using LINQ and ASP.NET, I used the built-in SQLMetal command-line utility to automatically generate the data model classes for my LINQ data classes. Recently I've been using the LINQ for SQL (aka DLINQ) designer to define my data models instead, and have been really impressed with how easily it enables me to build a re-usable class library that nicely encapsulates my data and business logic. The below walkthrough demonstrates how you can get started with it yourself. Simply install the LINQ May CTP download on top of VS 2005, and you can then follow along all of the steps below yourself. For the sample below I am using C#, but everything works equally well in VB as well. Step 1: Create a New LINQ Enabled...(read more)

    Comments

    Script Loading Tips

    A somewhat 'undocumented' Atlas technique for loading script sooner than window.onload and improving perceived page performance. Read More... Share this post: Email it! | bookmark it! | digg it! | reddit!...(read more)

    Comments

    Great New Atlas Videos Published (All Free)

    Joe Stagner has been busy at work publishing more Atlas videos on the www.asp.net website (click here for the full video listing). Here are a few pointers to some of the recent Atlas videos he has posted:- Add "Atlas" features to an existing ASP.NET web application: Learn how to easily add Atlas functionality to an existing ASP.NET application, and demonstrates how to add the Atlas assembly and configure it within a site (4 minutes, 33 seconds).- Implement Dynamic Partial-Page Updates using Atlas: Learn how to to use the Timer control in Atlas to dynamically refresh portions of an ASP.NET page (5 minutes, 31 seconds).- Using the Atlas Control Toolkit Cascading Dropdownlist Extender: Learn how to implement cascading drop-downlist UI...(read more)

    Comments

    Is Zero a Hero? | Blog

    Comments

    DHTML Editing Control for Windows Vista

    WebDevTools is the owner of the DHTML Editing Control; a COM control which can be used in applications or web pages for WYSIWYG HTML editing and which is shipped as part of the Windows operating system. After a long run (nine years, since IE 4.5) this controlwill not beshipped as part of Windows Vista. There are two flavors of the control; a safe-for-scripting version used on web pages and an ordinary control used in applications. While the safe-for-scripting control and Windows Vista will never cross paths, we've released an installer for a version of the DHTML Editing Control for Application for Windows Vista, which is now available here. Be sure to check out the white paper listed in the Related Resources section; it contains a lot of information....(read more)

    Comments

    Page 2 of 7«1234567»