Wednesday, October 25, 2006

How To Fix A Webcam On My Laptop For Oovoo

INFO - Example of a website integrating Lotus Domino and Smooth SlideShow LiteBox among other

After a long absence, I will start quietly through the presentation of a website hosted on Lotus Domino integrates several techniques described here.

The new site of a company spécialiée in instrumentation for measuring and monitoring integrates LiteBox is Smooth Slideshow featured on this blog: Website SolData

Thursday, September 14, 2006

Green Green Episode 13 Uncensored Mp4

GOOGLE API - Google Maps Some additional

I just discovered two new features offered by version 2 of the Google Maps API, geotagging from a postal address and boxes of information among multiple tabs.

Geolocation from a mailing address

I had already proposed a solution to find the location a place from its mailing address in one of the first posts of this blog. The two potential problems with the method described was:
  1. the obligation to separate each component of the address (street, city and country)
  2. using a free service provided continuity
These two problems are solved thanks to the Google Geocoder Maps.

One of the easiest ways to get the coordinates of an address is to send an HTTP request with the following format:
 http://maps.google.com/maps/geo?q=adresse+recherchee&output = csv & key = abcdefg 
Where:
  • q = : enter the desired address in URL format. Example: square + concord + paris + France
  • output = : response format. It may be mentioned xml, kml, json or csv if required. Csv format is the easiest to treat because it returns only four numbers separated by commas in income.
  • key =: key Google Maps
  • your
As indicated, the CSV returns a response in the form of four numbers corresponding to the response status (200 if all goes well), the zoom level, latitude and longitude.

Several tabs in the box details

I presented how quickly add information bubble on the map using GoogleMaps marker.openInfoWindowHtml (bubble); .
To add a dialog box with several tab just use marker.openInfoWindowTabsHtml (Infotab) having previously defined Infotab like this:
  Infotab var = [
new GInfoWindowTab ("Title Tab 1", "Content tab 1"), new
GInfoWindowTab ("Title Tab 2", "Content Tab 2")
]

Sunday, September 10, 2006

Prosti By Aubrey Miles

AJAX - My vacation photos with LightBox

As promised during the presentation of the "Smooth Slideshox " I'll have a second Javascript library for displaying photographs. Library LightBox is increasingly used on the Web. It has the great advantage of a photo enlarge nicely without having to worry about navigation. The library relies on the couple prototype.js / scriptaculous.


How to install LightBox
The installation and use of the library LightBox in a Lotus Domino is similar to other libraries already presented on this blog:
  1. Download the package on http://www.huddletogether.com/projects/lightbox2/
  2. Unzip the ZIP file on the hard disk
  3. Add the prototype.js file, scriptaculous.js, and effect.js lightbox.js lightbox.css and shared resources in the Notes database files
  4. Add close.gif , loading.gif, blank.gif resources in shared images. You can also add other images presented, but it will not be needed in the example described.
How to use the lightbox library
Since the structural element to display images LightBox (mask or page), enter it as "content as HTML"
  "\u0026lt;link rel = \\" stylesheet \\ " 
type = \\ "text / css \\" href = \\ "lightbox.css \\"
media = \\ "screen \\" title = \\ "Normal \\" />
\u0026lt;script src = \\ "script / prototype.js \\ "type = \\" text / javascript \\ ">
\u0026lt;/ script> \u0026lt;script
src=\\"script/scriptaculous.js\\" type=\\"text/javascript\\">
\u0026lt;/ script> ;
\u0026lt;script src=\\"script/lightbox.js\\" type=\\"text/javascript\\">
\u0026lt;/ script> "Add
also on the event" OnLoad ":
  initLightbox ( ) or mask  
Your page is ready.

To report an image or photo to use lightbox must use the following syntax:
  \u0026lt;a href="path_de_l_image_agrandie" rel="lightbox"> 
\u0026lt;img src = "path_de_l_imagette" />
\u0026lt;/ a>
A mini-photo gallery on Lotus Domino download
For the Occasion I created a mini photo gallery under Lotus Notes download. Do not expect a revolution. This application was that the sole purpose of presenting the integration LightBox in a Notes database. By cons, to please Julie, 3 photos are provided as an example ... in color.

Download photo gallery lightbox

Sunday, September 3, 2006

Hair Highlights 2010 Images

AJAX - Tag Clouds

Once is not custom, I benefited from the work of others! Indeed I was looking how to set up a cloud of tags in a Lotus Notes application. Before you start developing what I wanted and I was there surprised to quickly find three different approaches to implement this feature Web 2.0 with Lotus Domino. This is even more interesting that these three methods each use a different approach typical of the changing development of Domino applications for the Web, formulated with JavaScript, LotusScript and LotusScript with DXL.

What is a tag cloud?

A tag cloud is represented as a list of words represented in a size proportional to their importance. This importance is mainly influenced by the number of occurrences of the word. We find these
aujourd'hi tag clouds everywhere on applications known as 2.0 delicious, Flickr or Technorati .

These tag clouds are also used in the application Nébuloscope Jean Veronis I can only recommend reading the blog Language Technologies.


This form of representation allows the visualization replace categorized views and interfaces easily with the restriction options embedded views.


Three approaches to implementation of the solution

As mentioned in the introduction using the three methods presented each is an original showing very different approaches to application development Lotus Domino.

Formula Approach / Javascript
Ferdy Christante proposes to create a Javascript array from a view presented in HTML and a little formula. Javascript loads after representing the tag cloud on the client.
This approach is very similar to many examples I have presented here.

The advantage of this method is to save the load on the server side. Only a view is called.

Unfortunately this method also these drawbacks:
  • The client must support JavaScript. Although quasimeent all modern web browsers support the JavaScript can be disabled. Moreover, even if the javascript can run client side must still be careful with the volume of data to process.
  • While this may seem high, this method removes the main attraction of the tag cloud to the webmaster. Indeed, one of the side effects of tag cloud is indexing web pages from search engines. Links pointing to a cloud not only on sets of web pages but also has a consistent name, tag, link to it. Outside in the case of treatment Javascript, search engines do not see this cloud.
  • Finally, for those who still want to develop Web-enabled applications and Notes Client, it is not possible to use this method on the thick client.

Traditional Approach via LotusScript
Adrian Thomas uses a more traditional using a LotusScript agent . The tag cloud is calculated in real time by an agent based on a LotusScript NotesViewNavigator and returns the result via print. The server is asked to call each of the cloud. By cons, it generates a Web page that can be properly indexed with search engines. Writ cons of the first methods are the advantages of the latter and vice versa.

If forced to choose a solution between these two methods I favor the first for an Intranet, with a total hardware and software mastered, without indexing with search engines and especially where the key is the speed of response from the server. For cons, the second approach is preferable for an application-oriented service.


Approach LotusScript / DXL
Christian Mueller proposes a third approach can meet all the needs expressed by using LotusScript with DXL . The calculation of the tag cloud based on exactly the same method as that proposed via LotusScript agent by Adrian Thomas. The difference is that it does not directly send the result to the browser but created a new mask via DXL containing the cloud. The update of this mask can then be recalculated only when a document is created, changed or deleted, when the cloud is short changed.

So not only the server is not requested at the call of this page, the cloud is presented in HTML form for engines but more research is easily presentable to users of Lotus Notes clients.

Is it ideal? Compared to the constraints outlined above, is undoubtedly the best solution. There remains the problem of integration and application maintenance. The number of developers using Lotus Notes DXL and especially mastering is still rare (at least I do not yet belong even if I take regular courses on the blog Yogi ).

Acupuncturist Salary Statistics 2010

SITE - English Version

The few articles in recent days is not incurred due to lack of inspiration or worse by a lack of motivation. I took the end of August to upload a lite version of this blog in English and simultaneously test the beta version of the new version of Blogger.

Saturday, August 19, 2006

Born On The Same Birthday Compatibility

SITE - Change URL for the RSS

The RSS feed of this blog URL changes. The new address is: http://feeds.feedburner.com/DominoWeb20 . In fact I just signed on FeedBurner which not only ensure better compatibility with the aggregators (unlike the previous atom feed) but also to track the statistics of access to the site via this medium. As has just to remark on Julien domlike.net , the majority of access to a blog is through the aggregators and not from a web browser. Former

Atom feed will still be active a few weeks. Feel free to leave a comment if something goes wrong.

[update] I also took the opportunity to offer the ability to view RSS feeds of the site in PDF format and via Mobile xFruits . This site allows you to transform and to aggregate RSS feeds into different formats. In addition, the interface is simple, fluid and visually pleasing. In short, an essential tool that I recommend.

Thursday, August 17, 2006

Broken Capillariesalcohol

TIP - Keep an open session Domino

One issue that bothers me the most with web-based application is the end of session. Still this morning Users called me panicked because when saving her paper, patiently prepared for an internal company blog, the Domino server replied that the session had expired. In

travel the excellent blog by William Beh " Lotus Notes on Web 2.0 " I finally found a simple and quick to implement. It proposes simply to call Ajax file server periodically with the class PeriodicalExecuter prototype.js. This keeps the session open Domino.

This method is not perfect from a security standpoint. The user must close the browser to close the session. The coutournement this problem will be the opportunity to write a new article.

Wednesday, August 16, 2006

Simple Lease Agreement Printable

INFO - New

version of scriptaculous 1.6.2 has been released. It fixes a number (or a certain number) of various bugs. 1.5.0 RC0 version of prototype.js is also provided in the new installation package that you can download from the downloads page .

reminder, scriptaculous library is regularly presented in this blog. It is very convenient to manage the notament drag & drop and the autocompletion . Some examples are available online on the website schedule Domino & Web 2.0: Examples

prototype.js library is being used in many bilbiothèques as scriptaculous javascript but Rico or moo.fx which were also presented here (and LiveGrid accordion for Rico Smooth Slideshow for moo.fx).

Minute Maid Heartwise Where To Buy

version of scriptaculous AJAX - Pictures

Back from a long weekend of August 15, it is time to expose the souvenir photos. The goal is not to present a photo management application but rather to present two solutions that I find aesthetic AJAX and very easy to integrate with Lotus Domino. The first solution presented in this article presents the photos as a banner with fade transition effect and the possibility of adding a title, description and a link. The second solution will be presented in the next section. She can open the photos from thumbnails as a modal dialog box. This effect is particularly used on zoomr .


Smooth Slideshow by Jonathan Schemoul

The library's Smooth SlideShow JonDesign quickly create a banner with fade effect as found many already in Flash. This Library based on prototype.js and moo.fx. The whole weighs 21.6 kb which seems very reasonable especially if one uses these libraries for other uses on the site. For comparison, dewslider.swf an excellent equivalent in flash weighs 30.4 kb. However, knew nothing about Flash, I would not dare to advance arguments for or against any of these solutions. The choice of this library is primarily motivated by the primary goal of this blog, presenting solutions for Lotus Domino AJAX.


library installation

To use bilbiothèque must first download the package available on the introductory page of the library. Once the file is decompressed, add the javascript files and stylesheets in the shared resources of the Lotus Notes database. Files to add are:

  • moo.fx.js
  • moo.fx.pack.js
  • protoype.lite.js
  • showcase.slideshow.js
  • timed.slideshow.js
  • jd.slideshow. css

If you already use prototype.js, needless to add prototype.lite.js.


Using the driver DLL

As described in the documentation, you must declare

  1. and javascript libraries stylesheet
  2. report images to present
  3. customize the size of the display area
  4. define the display area on the page

statement to present images is done through an array declared javascript form:

  mySlideData [countArticle + +] = new Array (
'image1.jpg',
'article1.html'
'Item 1 Title',
'Item 1 Description'
)

Integration with Lotus Notes

To facilitate the updating of files, I would pass by a mask for managing photos display. This mask is defined with the following fields:

  • Title: free text field
  • Link: Free text field
  • Description: Free text field
  • Photo: rich text field

Once the mask created, it remains to define a view "Photos". To facilitate my task, to present the JavaScript code directly to integrate into my page. The column formula is:

  "mySlideData [countArticle + +] = new Array (" 
+ "0 /" + @ Text (@ DocumentUniqueID) + "/ $ file /"
+ @ Subset (@ AttachmentNames; 1) + "', "
+ Link +" ', "
+ Title +"' "+ description +
"');"

Do not forget to sort the first column in order to be able to extract data with @ DbColumn.

To create my web page, I'll go through a Notes page, but can also integrate it into a mask.

As content as HTML must integrate javascript libraries, add an event onload to launch the band to open the page and then set to display images from the views previously created and then set the options to define style headband size, either:

  Photos: Photos ("":"";"";" DbColumn = @ "1); 
@ If (@ IsError (val);";
"\u0026lt;script src = \\ "prototype.lite.js \\" type = \\ "text / javascript \\"> \u0026lt;/ script>
\u0026lt;script src = \\ "moo.fx.js \\" type = \\ "text / javascript \\" > \u0026lt;/ script> \u0026lt;script
src=\\"moo.fx.pack.js\\" type=\\"text/javascript\\"> \u0026lt;/ script>
\u0026lt;script src = \\ "timed. slideshow.js \\ "type = \\" text / javascript \\ "> \u0026lt;/ script>
\u0026lt;link rel = \\ "stylesheet \\" href = \\ "jd.slideshow.css \\"
type = 'text / css \\ "media = \\" screenshot \\ "/>

\u0026lt;script type =' text / javascript \\ ">
function addLoadEvent (func) {
was oldonload = window.onload;
if (typeof window.onload! = 'function') {window.onload = func
;} else {

window.onload = function () {
oldonload ();
func ();
}
}
}
function start slideshow () {
initSlideShow ($ ('MySlideShow'), mySlideData);
}

countArticle = 0;
was mySlideData = new Array (); "
+ @ Implode (Photos) +
"addLoadEvent (startSlideshow) \u0026lt;/ script>
\u0026lt;style>
# mySlideshow
{width: 400px! Important;
height: 200px! Important;}

\u0026lt;/ style>" )

It only remains to indicate where on the page displaying the banner by adding HTML as text relay:

  \u0026lt;div id="mySlideshow"> \u0026lt;/ div>  

It's over, here is a sample output with some photos Gulf of Morbihan.

Tuesday, August 8, 2006

How Did My Nose Get Crooked?

TIP - TIP

I discovered recently that one could apply the CSS on the client Lotus Notes 6. Yet it was written to help, but I did not even dare to imagine that this was possible. Please note, however, there are very strong limitations. For the moment we can not apply a CSS style that some elements, more classes and style seem not to be managed on the client.

An application that can possibly be interesting is the customization of tables created in a rich text field.

To apply a style to a mask, you must first create a style sheet in a file text in notepad or another text editor (I use PSPad ). The style sheet may for example look like:
  
TD {border: 1px solid # ddd;
background: # eee;
color: # 333;
font-family: tahoma;
font-size: 12px;
}

Once the file is saved, it must be integrated into a Notes database as a resource "stylesheet".


To apply the style sheet in a mask:
  • Open mask
  • Select the menu "Create \\ Resource \\ Insert Resource"
  • Select "Style Sheet" as resource type
  • Select the file and then click OK
A (e) icon symbolizing the resource should appear in the Notes form.

It remains only to save the mask is finished. When a user creates a new table in a rich text field of this mask, this table will appear with the options defined style.


can also apply a style to the IMG tag to automatically add a border around images iportées or glued. The stylesheet may be:
  
IMG {padding: 5px;
border: 4px solid # 373;}

The possibilities seem too limited to be really interresting to exploit. We should see if the support for CSS changes with future versions of Notes.

Monday, August 7, 2006

Denisse Milani Look Alike

CSS Notes - Forcing properties formatting text in a rich text field on the Web

Nothing worse than a website where the cast of characters differ from one page to another. If it is possible to control a graphic for a site-oriented public, it is much more difficult or impossible to impose it for the important internal document databases. In defense of users, Lotus Notes preserves text properties in the copy / paste from the Office applications or from web pages.

Fortunately, the Domino Web engine conversion is not always clean. It still uses the "old" HTML tags, especially the \u0026lt;font> to define the font and size. To control the rendering of rich text field on the Web, there is enough to redefine the style of this tag. Thus we can for example add in the header of the web page:
  \u0026lt;style> 

font {font-family: tahoma, arial, helvetica, sans-serif;
font-size: 1em;}

\u0026lt; / style>

Whatever the font used and whatever its size defined in Notes, the field content will always appear in tahoma font size 1em. The user can cons by bold or underline the characters to add some effects to the content.

course we can also surround the rich text box of a div with a class defined to limit the scope of the effect in this field. We will then have the mask:
  \u0026lt;div class="mybody"> 

rich text field \u0026lt;/ div>
and for the definition of style:
  \u0026lt;style> 
# mybody are
{font-family: georgia, "Times New Roman ", Times Roman, serif;
font-size: 12px;}

\u0026lt;/ style>

Face Turns Red After Eating

GRAPHICS - Improved graphics Excel

It's summer, it's nice and warm. I'll take the month of August, not to pause, but to address topics that some may find it futile. I start with the graphics related to Web 2.0. Each decades come new graphics mode: square corners, rounded corners , drop shadows, etc ... With the Web 2.0 (and Apple) came the reflection effect.

month of August is the month the least loaded of the year, I still enjoying this time to review my documentation and presentations that I made to diffuse. I therefore take this opportunity to see how to improve the rendering of graphics generated by Excel. Even if the most important is the content, the listener is always aware if the display is nice.

STEP 1: Preparation of the chart in Microsoft Excel (or OpenOffice Calc with)
I'm not going to give courses of Excel is very limited in this area. The only recommendations I give is to not worry about colors because they can be modified in Adobe Photoshop, but be very careful to remove the borders of graphs.
Once the chart ready, remove the caption and enlarge the chart as closely as possible the memory you have on your computer. The expansion of the graph will remove the effect of "stairs". Copy and paste the chart as new image in your graphics editor. I would use Adobe Photoshop but it must also be able to work with Paint Shop Pro or Gimp.

STEP 2: Preparation of the graphic as the graphics editor
I start by changing the colors of my chart. Photoshop gives me much more possibilities than the limited palette of Excel. I cancel apply gradients on the charts which burdened a bit too much for my taste.
To colorize my chart, I use the "magic wand" to select the area to be colorized and pot peiture to apply the new color.

STEP 3: Prepare the work area
Before resizing the image, I delete the extra white area around the chart using the crop tool. It is now possible to resize the image to the desired size. To resize the image in photoshop you should select the menu option "Image \\ Image Size" and specify the width and / or height. I use the magic wand again to select background bland and I delete. It does more than keep the chart and eventually scale in the case of bar charts.

The effect of reflection should be displayed in the chart so you must increase the work area. With Photoshop you have to select the menu option "Image \\ Size of the work area. In the configuration box I specify a height twice as large as that proposed and clicks on the top box to tell it to enlarge the area down.

STEP 4: Application of the reflection effect
Since the zone layer, right click on the layer of the chart and then select "duplicate layer".
Select create a new layer then select the menu "Edit \\ Transform \\ Flip Vertical". Move the graph then returned in the other graph.

Select the "Mask" layer on the back of the chart in the display box layers.

Select the Gradient tool by specifying type as black to transparent gradient.

Apply gradient on the graph reversed from the middle of the graph up the chart.

You should get a result like this:

It remains only to adjust the opacity of the reflection layer by lowering it to 15% for example and then applying a new layer on the bottom if necessary.


This method can of course be applied to any type of image and text, not just Excel charts.

Wednesday, July 26, 2006

Can I Give Penicillin To My Dog?

AJAX - Rico Accordion: The views categorized

The accordion class of RICO provides a very simple solution representing the views categorized as an accordion.


The data structure must be represented in the following format:
  \u0026lt;div id="un_identifiant_de_bloc_pour_rico"> 
\u0026lt;div>
\u0026lt;div> Title class \u0026lt;/ div>
\u0026lt;div> Content panel \u0026lt;/ div>
\u0026lt;/ div>
...
\u0026lt;/ div>
Preparation Notes view

The Notes view can be defined as:
  • 1st column: categorized with the formula
      "\u0026lt;/ div> \u0026lt;/ div> \u0026lt;div> ; \u0026lt;div> "champ_categorie + +" \u0026lt;/ div> ";  
  • columns:
     " \u0026lt;span> " Valeur_affichée + + "\u0026lt;/ span>"  
The \u0026lt;span> just allows to separate the values shown in this example. We can replace any other tag.
must also check "Treat contents as HTML" fifth tab from the Properties view.

Preparing mask for
The mask associated with the previous view must be called $ $ For ViewTemplate nom_de_la_vue. Even if we can encode the mask entirely in HTML by checking Content-type: HTML "from the second tab of the properties of the mask I'll porfiter the opportunity to not in this example.

First we must include the Javascript libraries. This is normally done between the bales HEAD of the HTML page. The equivalent Lotus Notes is the reference "content as HTML" present from the panel submitted under the mask. Fautindiquer it as a formula: {
  src="prototype-1.4.0.js" \u0026lt;script type="text/javascript"> \u0026lt;/ script> 
\u0026lt;script src = "rico.js" type = " text / javascript "> \u0026lt;/ script>}
Beware path Booksellers Javascript.

Then you instantiate the accordion in case it specifies the ID transformed to the element. This is usually done at the OnLoad event of the page. Also since the panel of reference present in the mask, you must click on "OnLoad" and enter the Javascript code:
  new Rico.Accordion ($ ('identifiant_bloc'));  

Finally, in the mask, it remains to incorporate the view by adding the statement block accordion like this:
  \u0026lt;div id="identifiant_code"> 
\u0026lt;div>
inserting the embedded view
here \u0026lt;/ div> \u0026lt;/ div>
\u0026lt;/ div>
Do not forget to declare the HTML code to insert as HTML relay by selecting it and clicking the menu item text \\ HTML Relay. An example

online can view the result by presenting the articles of this blog by topic. Furthermore you can find other examples of using this class on the Malaysian blog (but in English) Lotus Notes on Web 2.0 .

Saturday, July 22, 2006

Price List Jcpenney Hair Salon

AJAX - Rico LiveGrid: Customizing Lotus Notes

Using Firebug, we can see that Rico sends an Ajax request in the format: data.xml? Openview & id = data_grid & page_size = 70 & offset = 149 & title1 = & sort_col sort_dir = ASC & _ =. It is necessary to change the format of this query to take into account the parameters of standard URL Appeal Notes views.

reminder these parameters are:
  • Start: to set the starting line. It is equivalent to offset. Beware, the offset starts at 0 while the start begins at 1.
  • Count: number of rows to display. It's the equivalent of page_size.
  • ResortDescending = xx or ResortAscending = xx: to force a descending or ascending sort on the column xx. This is equivalent to & & title1 = sort_col sort_dir = CSA. Warning, Rico takes into account the title of the column while Notes expects the number of the column.
For more information about the format of URL for Domino, refer to "Domino URL cheat sheet " of IBM Lotus.

Function prototype object.extend

The URL parameters are encoded in the function of class fetchBuffer RICO.LiveGrid in file rico.js. Not wishing to change the file rico.js I preferred using the function prototype Object.extend. Object.extend
to redefine the function fetchBuffer without having to touch the file rico.js.
To use this function with Rico at the moment must be applied on an instance of the class. This should be corrected in the next version of prototype.

in practice this will give:
  PobreLiveGrid var = new Rico.LiveGrid ("data_grid", 18, 445, 
"data.xml? Openview", opts);
Object.extend (PobreLiveGrid, {
. ..
});
Customizing Notes for RICO.LiveGrid

I copy the function code is defined in RICO only modifies the definition of QueryString in the case of a standard call and in the case a call with a sort column.

The final code is:
  Object.extend (PobreLiveGrid, 
{/ ** *
PobreLiveGrid: * fetchBuffer
LiveGrid for IBM Lotus Notes / Domino
* -------------------------------------------
---------------- * Change the setting of the URL call update
* Data from the table to suit the control URL
* Lotus Notes views. * *

page_size \u0026lt;=> count
* offset \u0026lt;=> start
sortcol * = x & sort_dir AUC = \u0026lt;=> x = ResortAscending
sortcol * = x = DESC & sort_dir \u0026lt;=> x = ResortDescending * * ----------------------------------------------

-------------
* Special thanks to Ross Lawley we Rico Forum

* ** /

fetchBuffer: function (offset) {
if (this.buffer.isInRange (offset) & &
! This.buffer.isNearingLimit (offset)) {
return;}

if (this . processing request) {
this.unprocessedRequest = new Rico.LiveGridRequest (offset);
return;}


was bufferStartPos = this.buffer.getFetchOffset (offset);
this.processingRequest = new Rico.LiveGridRequest (offset);
this.processingRequest.bufferOffset = bufferStartPos;
was fetchsize = this.buffer.getFetchSize (offset);
was partialLoaded = False;

was QueryString;
if (this.options.requestParameters)
QueryString = this._createQueryString (this.options.requestParameters, 0);

QueryString = (QueryString == null)? '': QueryString +'&';

QueryString = QueryString + 'id =' + this.tableId + '& Count =' +
fetchsize + '& start =' + (bufferStartPos +1) + '& offset =' + bufferStartPos;

if (this.sortCol) {
was kind notes =
(this.sortDir == "ASC"? "ResortAscending": "ResortDescending");
QueryString = QueryString +'&'+ varietal notes +'='+ escape (this.sortCol) ;
}

this.ajaxOptions.parameters = queryString;

$ (ajax_call). InnerHTML = queryString;
ajaxEngine.sendRequest (this.tableId + '_request' this.ajaxOptions)

this.timeoutHandler = setTimeout (this . handleTimedOut.bind (this),
this.options.bufferTimeout)

}})
I kept the standard references Rico offset used in the code. This poses no problem to Lotus Notes that ignores this setting.
still remains a problem. We want to retrieve the column number to sort and not its name. Heaureusement LiveGrid offers an option paraméttrage class of very interresting that will not only help address the latter concerns but also allows to restrict the number of columns you want sortable.

must modify the definition opts like this:
 var opts = { 
PrefetchBuffer: false,
onscroll: updateHeader,
sortAscendImg 'sort_asc.gif'
sortDescendImg 'sort_desc.gif'
columns: [ ["1", true], ["3", true], ["5", true], ["7", true], ["9", true]]}
;
parameter columns: [ ["column value ', sortable (true / false)]] should contain all references displayed in columns. He reference "column value" as an identifier for the column instead of its name.

Be very careful because the number of columns displayed on the webpage do not necessarily correspond to the column number of the Lotus Notes view. Thus in the example presented in the previous article ( AJAX - LiveGrid Rico to represent the views Lotus Notes), a two-column was used to define HTML tags which are then interpreted.
The columns contain the values are the odd columns in this case (1, 3, 5, 7, 9). That remains to be returned to Lotus Notes.

To see the code complete, I invite you to read the source code for the example online LiveGrid Rico.

Saran Wrap Weight Loss Preparation H

AJAX - LiveGrid Rico to represent the views of Lotus Notes

There are a number of increasingly important AJAX Javascript libraries. After much talk about Scriptaculous, it is time to introduce new ones. RICO, based on prototype.js as scriptaculous. It offers class LiveGrid I was particularly interrested after discovering the new Microsoft search engine, live.com . On this site, the navigation bar to access the pages disappeared. Farewell "next page" or "previous page". The search results are displayed in a long list that loads depending on the position of the elevator. Outside, what bothers me most about the views management notes on the web is just managing the navigation between pages. RICO would provide the answer?

Rico LiveGrid
LiveGrid The class is certainly not perfect, however the result seems interresting to follow. All views are not representative notes on this type of interface, like categorized views. It should be noted that the views are categorized in any case not really usable on the Web either natively.

Installing library RICO RICO

The library has only one javascript file. There will, for cons,
must also install the prototype.js library.
  1. 1.1.2 download library on the RICO download page Site
  2. Download 1.4.0 prototype library on site conio (select the link "Just the. Js, please").
  3. Integrating the two files into the resources of the Lotus Notes database.

class Rico.LiveGrid

LiveGrid To use, you will have to define a Web page calling bookstores and initializing a table for representing the view. This table will consist of two parts: a
  • header: for definition of column headings
  • data: to properly receive, the first lines of data must be initialized in the page. Subsequently these data will be extracted directly from an XML file.
Compared to other classes already presented Javascript, using LiveGrid is particularly restrictive. I hope this will be improved in version 2 of the library.
To represent a Lotus Notes view with LiveGrid, so I use an HTML page and a picture with a mask associated with the XML format. We could also use an agent to generate the XML stream, but as already explained, the use of a view saves server resources.

Defining the XML view

Data transmitted to the class LiveGrid should have the following XML format:
  \u0026lt;ajax-response> 
\u0026lt;RESPONSE type="object" id="data_grid_updater">
\u0026lt;ROW update_ui="true">
\u0026lt;td> Value 1 \u0026lt;/ td> \u0026lt;td> Value 2 ...\u0026lt;/ td> \u0026lt;/ tr>
...
\u0026lt;tr> ...\u0026lt;/ tr>
\u0026lt;/ rows>
\u0026lt;/ response>
\u0026lt;/ ajax-response>
To achieve such a representation I set my sight with the following parameters;
View Name: data.xml
Treat contents as HTML from the penultimate options tab view.
  • Column 1: "\u0026lt;td>"
  • Column 2: Field or formula to represent the grid
  • Column 3: "\u0026lt;/ td> \u0026lt;td>"
  • Column 4: Scope or formula to represent the grid
  • ...
  • Column n: "\u0026lt;/ td> \u0026lt;/ tr>"
Moreover, in order to use the sorting options to be ticked the "Click on column heading to sort" with value "The Couple for each column representing values to display.

must now declare a mask associated view
name mask: $ $ For ViewTemplate data.xml
Since the second tab of the properties of the mask, check "Content Type: Other" and give the value: application / xml
The content of the mask is:
  \u0026lt;ajax-response> 
\u0026lt;response type = "object" id = "data_grid_updater">
\u0026lt;ROW update_ui="true">
Added integrated view
data.xml \u0026lt;/ rows>
\u0026lt;/ response>
\u0026lt;/ ajax- response>
The number of rows displayed in the embedded view is irrelevant. To test your new XML file, open the data.xml view from a web browser. The XML format is very contraigant it is possible that you have an error message as the text displayed. It is not allowed, for example, display the character '&'. You can delete it or replace it automatically if necessary, through the formula of the column.

Web page

I declare the contents of my page as HTML in the page options. Furthermore, I voluntarily removed all references to the style in the code provided so you do not burdened. The content of the page should look like this:
  \u0026lt;body onload="javascript:bodyOnLoad();"> 

\u0026lt;table id = "data_grid_header" class = "fixedTable"
cellspacing = "0" cellpadding = "0" style = "width: 560px">
\u0026lt;tr>
\u0026lt;th class="first tableCellHeader"> Title Column 1 \u0026lt;/ th> \u0026lt;th
class="tableCellHeader"> Column 2 Title \u0026lt;/ th> \u0026lt;th
class="tableCellHeader"> Column 3 Title \u0026lt;/ th>
\u0026lt;/ tr>
\u0026lt; ; / table> \u0026lt;div

id="viewPort" style="float:left">
\u0026lt;table id = "data_grid" class = "fixedTable"
cellspacing = "0" cellpadding = "0" style = float: left; width: 560px ">
is added here to view the integrated
data.xml \u0026lt;/ table>
\u0026lt;/ div>
\u0026lt;/ body>
\u0026lt;/ html>
note, the number of rows displayed in the embedded view is very important here. We need this number is slightly higher than the number of lines displayed.

It remains only to declare the header of the HTML file to initialize the LiveGrid.
  \u0026lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
\u0026lt;head>
\u0026lt;title> Domino & Web 2.0 : LiveGrid Rico \u0026lt;/ title>
src="prototype.js" \u0026lt;script type="text/javascript"> \u0026lt;/ script>
src="rico.js" \u0026lt;script type="text/javascript"> \u0026lt;/ script> \u0026lt;script language="javascript">



bodyOnLoad function () {var opts = {

PrefetchBuffer: false,
onscroll: updateHeader
}
new Rico.LiveGrid ("data_grid", 18, 445, "data.xml? openview", opts);}


function updateHeader (LiveGrid, offset) {}


\u0026lt;/ script>
\u0026lt;/ head>
options LiveGrid statements are
  • "datagrid" ID picture which will represent the values
  • 18: number of rows to display on the screen
  • 445: number of lines of sight. This value should be calculated
  • "data.xml? Openview": URL of the XML stream
  • opts: options further. For the moment it does not serve

page so defined does not sort the view by clicking on a column or manage data download in the background. The call parameters of the XML view are coded in the library rico.js. Outside these parameters are obviously not call syntax views Lotus Notes. This will be fixed in the next section.

In the meantime, here is a complete example online. Having been unable to test the application on all platforms, thank you to leave a comment if you find an incompatibility.

Tuesday, July 18, 2006

Non Warrantable Condo Financing

SITE - The PDF Blog

As an experiment, I uploaded a PDF file containing all the articles related to the integration of Google Maps and Google Earth in Lotus Notes / Domino.


For the moment the file is accessed by clicking on the heading GOOGLE API from the right panel. If I continue to see the experience I place the links more visible.

Update:
The PDF is now truly accessible.

Sunday, July 16, 2006

L-arginine, What Does It Do?

AJAX - Read a file Outside the field

As previously indicated, AJAX applications can not access files outside the internet domain of the calling page (it should be noted however that this limitation does not seem to affect Microsoft Internet Explorer). The preferred method to exceed this limit, whatever the browser used, is through a "Cross-Domain Proxy".

Cross-Domain Proxy

A "cross-domain proxy" is nothing more than an application hosted in the area, which will download the file outside desired and return to the AJAX application. This technique is used by NetVibes . By opening NetVibes with Firefox extension Firebug , we see that the son's RSS page is called through a URL like: http://www.netvibes.com/xmlProxy.php?url=http% 3A / / swww.acme.com / rss.xml

PHP Application xmlProxy.php simply retrieve the XML file and transmit to the Web browser. It does not include information prior to shipment. This helps avoid overloading the server, leaving that task to the client.

Lotus Domino Cross-Domain Proxy

To do the same thing with Lotus Notes I started by using the method "ALAXA" presented in the article " Seeking information on the Internet from a Lotus Notes client . Unfortunately it appears the responseText property mismanaging, if at all, charset other than UTF-8. The main sources of information are encoded in French ISO-8859-1 I could use this method.

So I decided to take the opportunity to develop an agent in Lotus Notes Java.
The agent must retrieve the target URL as an argument and return the contents of that URL.
cross domain proxy
The source code of the agent is :
   import lotus.domino.*; 
import java.io.*;
import java.net.*;

public class JavaAgent extends AgentBase {

public void NotesMain() {
try {
Session session = getSession();
AgentContext agentContext = session.getAgentContext();

// Récupération de l'URL passé en argument de l'agent
Document doc = agentContext.getDocumentContext();
String newurl = doc.getItemValueString("Path_Info_Decoded");
newurl = newurl.substring(newurl.indexOf("url=") + 4);
URL url = new URL (newurl);

/ / Initialize the result to return
String result = "";

/ / The information will be sent to the browser as XML
PrintWriter pw = getAgentOutput ();
pw.println ("Content-type: text / xml" )

/ / Get the contents of the target page
BufferedReader in = new BufferedReader (new InputStreamReader (url.openStream ())); String
inputLine;
while ((inputLine = in.readLine ())! = null ) {result + =
inputLine.toString ();}


/ / Send the result to the Web browser
pw.println (result);
doc.recycle ();

} catch (Exception e) {e.printStackTrace
();}


}}
To call the agent must use a URL Type: http://serverlocal/path/base.nsf/agent?openagent&url=http% 3A / / sitecible / path / file

Integration into the RSS aggregator

can easily integrate this feature in the RSS aggregator previously presented.

ajax rss
  • Step 1: Integration of the agent on a base of the web domain. The agent may be declared in the database itself or from any other basis for the domain.
  • Step 2: Submitting URLs to open thread. Instead of directly indicating the URL of the target, it is preceded by the URL of the agent according to the format presented. We can also provide development to automatically this syntax to simplify the task of the user.
Attention javascript interpretation of RSS son presented does not support the ATOM format yet.

[Update] Added doc.recycle () following the remark Yogi Administrator dark Blog DarkBlog accessible without hesitation.

Wednesday, July 12, 2006

Neutrogena Face Cleanser Brush

AJAX - A customizable web page (4 / 4): A bit of interactivity

It is time to add some interactivity to this RSS aggregator. The user can add an RSS feed, delete, modify or update the contents of the thread.


All actions must be managed without refresh the window to preserve the fluid aspect of the application. The shares will be transmitted via AJAX (removing a thread or update) but also through a modal dialog box if a value is entered (adding and editing a feed).

Modal Dialog
For entry information I based on the library's Javascript subimages which can be found on this page . This library has the advantage of working on Internet Explorer, Firefox and Opera (I have not tested other browsers). In addition to being easy to integrate into the code I found from visual aesthetic result.
To use this library you should download the package , unzip it and then add in the structure of the Notes database files commons.js , maskBG.png , subModal.js and loading.html The stylesheet subModal.css and finally image close.gif . It should be noted that I considered maskPG.png as a file and not an image because Lotus Notes does not yet support the integration of PNG files in the library image.

To use this library, you must first insert in the header of HTML files and javascript syle sheet:
  \u0026lt;head> 
\u0026lt;link rel = "stylesheet" type = "text / css "href =" subModal.css "/> \u0026lt;script type="text/javascript"
src="common.js"> \u0026lt;/ script>
\u0026lt;script type="text/javascript" src="subModal.js"> \u0026lt;/ script>
\u0026lt;/ head>

Then call the function showPopWin ('URL', width, height, fonction_javascript ). For example to open the dialog from a link:
  \u0026lt;a href="javascript:showPopWin('RSSFeed?openform&action=add', 600, 400, null); "> 
Add an RSS feed \u0026lt; ; / a>

To close the dialog box use the window.top.hidePopWin ();
Normally, if one uses this latter function with argurment true, a javascript function defined in the call for the dialog runs.

Remove RSS
To remove a feed, you must delete the document in the database and then delete the element on the page to avoid having to refresh the window.

To delete the item displayed in the page we'll use the DOM functions. The function will be:
  deleteDiv function (fieldname) {var obj 
;
var old;
if (obj = document.getElementById ('NewOrder')) {
if (old = document.getElementById (fieldname)) {
obj.removeChild (old);

}}}

where 'NewOrder' is the ID of the div containing all the RSS and son fieldname is the id of the block to delete 'NewOrder' passed as parameter.

To remove the Notes document can use the URL for http://serveur/path/base.nsf/vue/clé?deletedocument
Still do not have to refresh the window I run this url via AJAX. The delete function will be:
  DeleteEntry function (fieldname) {var 
myAjax = new Ajax.Request ('RSSByFieldname /' + fieldname + '? DeleteDocument');
deleteDiv (fieldname)}

where RSSByFieldname is a view sorted by 'fieldname'.

link to request removal of a wire is inserted into each block to display RSS feeds in the public loadRSS presented in Chapter 3 the form:
\u0026lt;a href = " javascript: DeleteEntry (\\''+ fieldName + '\\') "> Delete \u0026lt;/ a>

update an RSS feed
To update an RSS feed just recall the function specifying loadRSS the fieldname to reload. The link will also be integrated within each block to display RSS feeds from within function LoadRSS:
\u0026lt;a href="javascript:loadRSS(\\'' + url + + fieldname +'\\',\\'''\\',\\''+ nbentrees +'\\'); "> Refresh \u0026lt;/ a>

Creating and editing an RSS feed
For reasons of simplification of the code function of adding and editing of RSS feeds will be the same. To do this we will have:
  1. remove the faceplate of the RSS feed if it exists (in the case of a change)
  2. create a new block to display RSS feeds without displaying
  3. load RSS feed content in this block to appear
  4. Block
  5. destroy the object management & drag drop that does not support this new block
  6. rebuild a new object management & drag drop
Let the function: function addEntry
  (url, fieldname, nbentrees) {
deleteDiv (fieldname);

var newDiv Builder.node = ('div', {id
: fieldname, className: 'rss', style: 'display: none;'});
$ ('NewOrder'). appendChild (newDiv)
loadRSS (url, fieldname, nbentrees)
Effect.Appear (newDiv.id)
Sortable.destroy ('NewOrder');
Sortable.create ('NewOrder ', {tag:' div ', onUpdate: UpdateOrder});
}

Builder.node feature allows to quickly build a new DOM object. This function is provided in the bookstore scriptaculous.
Effect.Appear can bring up the new block with an effect of 'gradual emergence'. This function is also provided in the scriptaculous library.

It remains only to call this function from a Notes form displayed in a modal dialog box.

Mask creation / modification
The mask should contain the URL field (url of the RSS feed) and inputs (the name maximum lines to add web). In addition, it will also have to be able to access the value of field fieldname to pass a parameter to the function.

The problem is that the field fieldname is based on the UniqueID of the Notes document. Off, if it does not pose a problem for the modification of existing documents, it is much more annoying when creating a document to add a new RSS feed. The UniqueID of the document will be defined after saving the document. There must be many ways to handle this problem.
The solution is not to call the function to create new RSS feeds that the unload event and if the URL and a field whose value fielldname_tmp fieldname were indicated. I own it a bit far fetched ...
The mask is defined as:
  • a $ PublicAccess field: text calculated for formula creation with "1" (this helps to allow public access)
  • a URL field:
  • editable text field entries : number changed
  • a statement field_tmp with HTML field value for field fieldname type text calculated with the formula @ If (@ IsNewDoc; "" "taglist" + @ Text (@ DocumentUniqueID))
HTML is the statement: [\u0026lt;input type = "hidden" value = "field> fieldname>" name = "fieldname_tmp">]
can either declare the contents as brackets above the line or report in HTML relay.


It adds three buttons to mask
  • Close (hide if: @ IsNewDoc) with the formula web / javascript:
    window.top.hidePopWin ();
  • Save with formula :
    @ Command ([FileSave]);
    FIELD fieldname: = "taglist" + @ Text (@ DocumentUniqueID)
    @ Command ([FileSave])
  • Cancel with formula for Web / javascript:
    document.forms [0]. fieldname_tmp.value = "";
    window.top.hidePopWin ();
And finally, the unload event of the mask:
  if (document.forms [0]. URL.value! & Document ='' . forms [0]. fieldname_tmp.value !=''){ 
window.top.hidePopWin ();
window.top.addEntry (document.forms [0]. URL.value,
document.forms [0]. fieldname_tmp.value, document.forms [0]. entrees.value);}

can see that the Cancel button field empty fieldname_tmp thereby not to execute the function call to add / modification.

Download and demo Online

You can download a Notes database to test all the features of this AJAX RSS aggregator. The base also contains a module for creating RSS feeds in order to test the application. Remember to sign the structure and define the ACL.

You can also test online version of this module clamped, the shares are visible but not recorded in the database. If you reload the window you return to the base environment. Moreover, the addition of new RSS is idle son.

Sunday, July 9, 2006

Poems To Mom In Russian Or Ukrainian

WEBSITE - New design for the Blog

I tried customizing Blogger templates. Even if it is fashion and it's very convenient for the management of screen resolutions, I do not waste unnecessary space in blocks of fixed width. This is particularly important when the content is presented voluminous as this blog.


compatibility tests should not be any major compatibility problems for browsers, I tested the new interface in Microsoft Internet Explorer 6 and 7 Beta 2, as evidently as in Firefox 1.5.0.4 and Opera 9.0. Browsershots no longer appears to meet, I also quickly checked the compatibility with Safari on iCapture and Safaritest and under Konqueror Dillo and Lynx site Scapture . This result shows a somewhat truncated.
If you have a problem, please post a comment stating your environment.

New Features
lacks two features are essential to me on Blogger:
  • Research
  • The message categorization
Simply sorting by date may be sufficient to make news but it shows very fast its limits when the contents have no temporal relationship.

Research
A search is now being available at the top of this blog. This is the Google Ajax Search API . It's very simple to implement and customize. In addition, the update of the index is almost immediate. I think the API should be based on results from Google Blog Search .



The message categorization
Without going to implement a tag cloud, I find interresting can categorize messages by subject. To overcome this shortcoming, I developed what some might call a "gas factory". However, the result seems to work well and for minimum effort.
A LotusScript agent
will grab the blog feed and extract the title and first paragraph. It records the data on the Notes database examples. The category is automatically extracted from the title. Indeed, the current sytax tracks on this blog is CATEGORY - Title . It only remains to list the categories on the blog by inserting text via javascript. These categories link to a view of the Notes database that shows the titles and the first pargraphe items from a category.


surely I'll be back on the extractant which is a simple example of retrieving RSS feeds in Lotus Notes.

Friday, July 7, 2006

3 Dpo White Discharge

SITE - Creative Common and W3C

As you may have noticed in the right column, the information provided on this blog and based demonstrations are now under a Creative Common . This means that you can make any official information on the blog and in the demo database to the single condition to quote the author. This is not to flatter my ego but it seems that the French contract imposes this requirement.

Creative Commons License
Also I totally redevelop the demo database. It is not very visible but the homepage has successfully passed the tests XHTML 1.0 and CSS. Who said that Domino servers do not generate clean code?