TexasSwede
texasswede@gmail.com
  • About this blog
  • My Website
  • My Resume
  • XML Export Tool
  • Photos

Lotus Lessons Learned

Posted on December 10, 2010 by Karl-Henry Martinsson Posted in Old Blog Post

This is a guest blog entry by Tanya Delaney.

 

Recently, I had the honor of meeting and working with Karl-Henry Martinsson. I am a Lotus Notes ?ewbie,´ though I have a technical and web-based background. The last time I used Notes was as an end user (limited to checking email) while an employee of IBM in 1993. When Karl introduced himself as a Lotus Notes programmer and developer, I said to him, "People still use Lotus Notes?" The rest, as they say, is history; Karl has been on a mission to educate me ever since.

I am a web designer and developer, most fluent in ActionScript as well as the web standards HTML, CSS, some PHP, and I dabble in a bit of whatever is needed depending on my clients´ particular situations. As far as databases go, I always use MySQL. For this reason, Karl has been singing the praises of Lotus Notes and Domino ?though his accolades have fallen on my deaf ears. I was under the [incorrect] impression that Lotus Notes was only good for email, much in the way MS Outlook is, and I had no use for either.

 

Karl gave me a crash course in Lotus Notes as well as LotusScript to show me how efficient Lotus could be. As an example, he created a simple database in mere moments to hold ?ecipe´ data as well as titles, authors, and even country of origin information. He not only put it together (and made it look nice), but also challenged me to write a similar web ready database in as much time. “…”Right. I already knew matching both the power of Notes as well as his programming skill was impossible. So Karl amended his challenge: in ten times the amount of time, write a similar web page utilizing a database with all the same information. What took Karl 5 minutes, I now had 50 minutes to create?

 

I knew how to solve the problem. I could recreate Karl´s steps in my own native tools, but pulling it off without Lotus Notes was going to be a feat. Even without knowing much about Lotus Notes, I knew I was bested. However, I had a MySQL database at my disposal and a bet to try to win.

Since our challenge included a web ready version of the database to write to and read from, I started with a simple form:

//calling our PHP script and setting up the form
<form action="process.php" method="post">
//All the different labels required for this challenge
Country: <input type="text" name="country"><br>
Author: <input type="text" name = "author"><br>
Recipe Name: <input type="text" name = "recipename"><br>
Type of Recipe: <input type="text" name = "type"><br>
//Accolades to the low carb community
Is it Low Carb?: <input type="text" name = "lc"><br>
<input type="submit" value="Submit">
</form> 

Here is a screen shot of a basic, simple form created for this challenge.

TanyaScreen 

Since I decided to interact with a MySQL database, I decided to use PHP to interact with it. This form calls for a PHP file called process.php (in line 1), a file I had to create. The rest is pretty simple ?the form calls for different fields and once the user clicks on submit, all their values will be passed to the SQL database.

Process.PHP is the entire reason this form works. That being said, let´s take a look at what´s there:

<?
//calling our database categories
$country=$_POST[‘country’];
$author=$_POST[‘author’];
$recipename=$_POST[‘recipename’];
$type=$_POST[‘type’];
$lc=$_POST[‘lc’];
//database u/p information
mysql_connect("localhost", "some_user_name", "some_password") or die(mysql_error());
//database and table information
mysql_select_db("karls-challenge") or die(mysql_error());
mysql_query("INSERT INTO `karl` VALUES (‘$country’, ‘$author’, ‘$recipename’, ‘$type’, ‘$lc’)");
//letting us know that everything went well
Print "Your information has been successfully added to the database.";
?>

The above script is basically listing all the values that our database has for this particular challenge, as well as login information to the database. After authentication, all the values are passed to the database. However, part of the challenge was to also retrieve this information, so, yet another PHP file needed to be created.

<?php
// Connect to the database server
mysql_connect("localhost", "some_user_name", "some_password") or die(mysql_error());
// Open to the database
mysql_select_db("karls-challenge") or die(mysql_error());
// Select all records from the "karl" table
$result = mysql_query("SELECT * FROM karl")or die(mysql_error());
// Loop thru each record (using the PHP $row variable), then
//display the fields "country, author, recipename, type, lc" of each record.
while($row = mysql_fetch_array($result)){
echo $row[‘country’]. " – ". $row[‘author’]. " – ". $row[‘recipename’]. " – ". $row[‘type’]. " – ". $row[‘lc’];
echo "<br />";
}
?>

The script above queries the database and will keep looping until it receives all the data. It will be displayed on a website in plain text. This, however, is only 1 view of the information.

Conclusion?

Lotus Notes definitely wins here ?I ran out of time before I could even begin to attempt different views. Even if I had more time, it would take a bit of scripting to change the order of data ?something Lotus Notes does very well.

More and more throughout this process, I was really starting to appreciate the power of Notes compared to the tools I currently use. Karl was truly teaching me a lesson I will soon not forget (nor will I ever utter a comment like ?otes? People still use that?´)

Thank you, Karl, for giving me such an eye opener about the power of Lotus Notes and Domino. You´ve definitely made a believer out of me. It was truly an eye-opener to sit down with a Lotus master and observe the simplicity and power of a stellar product that Lotus Notes is.

Bleed Yellow!

 

 

Comments by Karl-Henry:

Now I will describe what I did in Notes.

First I created a form called ?ecipe´ with a few fields:

KarlDesign 

The only code are the formulas behind the three action buttons:

?lose´ button: @Command([FileCloseWindow])

?dit´ button: @Command([EditDocument])

?ave´ button: @Command([FileSave])

The recipe types (appetizer, main course, desert and other) are hard-coded, but could of course be pulled from a profile document or be built some other way.

I also added field hints, so the user can tell what to enter in the different fields.

I then created a view, with the view selection SELECT Form="Recipe".

I added a ?ew´ button, with the following code: @Command([Compose];"Recipe")

There are four columns in the view:

1 : Categorized, displaying the value of the field ?ype´.

2 : Name

3 : Origin

4 : Computed, display value as icons: @If(LowCarb="";"bullet_red.gif";"bullet_green.gif")

That´s all. A total of five lines of code, put together in about 5-6 minutes.

And here is the result:

KarlRecipeView 

KarlRecipe 

 

Note: I used my generic Notes Application template for this, so that saved me a minute or two and gave me a nice look, but the total design time when I showed Tanya this the first time, without that template, was about 5-6 minutes, including actually explaining everything I did. In the original challenge I alsecreated two copies of the view, categorized/sorted on different fields (‘by Origin’ and ‘by Author’) to show the power of views.

 

« Domino should be free for the web
Lotus Notes: 21 years old this week »

Leave a comment Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

HCL Ambassador 2020

HCL Ambassador 2020

IBM Champion 2014-2020

Stack Exchange

profile for Karl-Henry Martinsson on Stack Exchange, a network of free, community-driven Q&A sites

Notes/Domino Links

  • Planet Lotus Planet Lotus
  • IBM dW Forums IBM dW Forums
  • StackOverflow StackOverflow

Recent Posts

  • Notes and Domino v12 is here!
  • NTF Needs Your Help
  • Helpful Tools – Ytria EZ Suite (part 2)
  • Busy, busy – But wait: There is help!
  • Semantic UI – An alternative to Bootstrap?

Recent Comments

  • Lotus Script Multi-thread Message Box [SOLVED] – Wanted Solution on ProgressBar class for Lotusscript
  • Viet Nguyen on Keep up with COVID-19 though Domino!
  • Viet Nguyen on Keep up with COVID-19 though Domino!
  • Mark Sullivan on Looking for a HP calculator? Look no further!
  • Lynn He on About This Blog

My Pages

  • How to write better code in Notes

Archives

  • June 2021 (1)
  • April 2021 (2)
  • March 2021 (1)
  • August 2020 (3)
  • July 2020 (2)
  • April 2020 (2)
  • March 2020 (1)
  • December 2019 (2)
  • September 2019 (1)
  • August 2019 (2)
  • July 2019 (2)
  • June 2019 (3)
  • April 2019 (2)
  • December 2018 (1)
  • November 2018 (1)
  • October 2018 (5)
  • August 2018 (2)
  • July 2018 (3)
  • June 2018 (2)
  • May 2018 (1)
  • April 2018 (2)
  • March 2018 (1)
  • February 2018 (2)
  • January 2018 (4)
  • December 2017 (3)
  • November 2017 (2)
  • October 2017 (2)
  • September 2017 (1)
  • August 2017 (2)
  • July 2017 (6)
  • May 2017 (4)
  • February 2017 (1)
  • January 2017 (2)
  • December 2016 (2)
  • October 2016 (3)
  • September 2016 (4)
  • August 2016 (1)
  • July 2016 (2)
  • June 2016 (2)
  • May 2016 (3)
  • April 2016 (1)
  • March 2016 (4)
  • February 2016 (2)
  • January 2016 (4)
  • December 2015 (3)
  • November 2015 (2)
  • October 2015 (1)
  • September 2015 (2)
  • August 2015 (1)
  • July 2015 (5)
  • June 2015 (2)
  • April 2015 (2)
  • March 2015 (3)
  • February 2015 (2)
  • January 2015 (10)
  • December 2014 (1)
  • November 2014 (3)
  • October 2014 (3)
  • September 2014 (13)
  • August 2014 (6)
  • July 2014 (5)
  • May 2014 (3)
  • March 2014 (2)
  • January 2014 (10)
  • December 2013 (5)
  • November 2013 (2)
  • October 2013 (5)
  • September 2013 (4)
  • August 2013 (7)
  • July 2013 (3)
  • June 2013 (1)
  • May 2013 (4)
  • April 2013 (7)
  • March 2013 (8)
  • February 2013 (9)
  • January 2013 (5)
  • December 2012 (7)
  • November 2012 (13)
  • October 2012 (10)
  • September 2012 (2)
  • August 2012 (1)
  • July 2012 (1)
  • June 2012 (3)
  • May 2012 (11)
  • April 2012 (3)
  • March 2012 (2)
  • February 2012 (5)
  • January 2012 (14)
  • December 2011 (4)
  • November 2011 (7)
  • October 2011 (8)
  • August 2011 (4)
  • July 2011 (1)
  • June 2011 (2)
  • May 2011 (4)
  • April 2011 (4)
  • March 2011 (7)
  • February 2011 (5)
  • January 2011 (17)
  • December 2010 (9)
  • November 2010 (21)
  • October 2010 (4)
  • September 2010 (2)
  • July 2010 (3)
  • June 2010 (2)
  • May 2010 (3)
  • April 2010 (8)
  • March 2010 (3)
  • January 2010 (5)
  • November 2009 (4)
  • October 2009 (7)
  • September 2009 (1)
  • August 2009 (7)
  • July 2009 (1)
  • June 2009 (4)
  • May 2009 (1)
  • April 2009 (1)
  • February 2009 (1)
  • January 2009 (3)
  • December 2008 (1)
  • November 2008 (1)
  • October 2008 (7)
  • September 2008 (7)
  • August 2008 (6)
  • July 2008 (5)
  • June 2008 (2)
  • May 2008 (5)
  • April 2008 (4)
  • March 2008 (11)
  • February 2008 (10)
  • January 2008 (8)

Categories

  • AppDev (9)
  • Blogging (11)
    • WordPress (5)
  • Design (5)
    • Graphics (1)
    • UI/UX (2)
  • Featured (5)
  • Financial (2)
  • Food (5)
    • Baking (3)
    • Cooking (3)
  • Generic (11)
  • History (5)
  • Hobbies (10)
    • LEGO (4)
    • Photography (4)
  • Humor (1)
  • IBM/Lotus (175)
    • #Domino2025 (14)
    • #DominoForever (8)
    • #IBMChampion (46)
    • Administration (7)
    • Cloud (7)
    • CollabSphere (8)
    • Community (47)
    • Connect (33)
    • ConnectED (12)
    • Connections (3)
    • HCL (12)
    • HCL Master (1)
    • IBM Think (1)
    • Lotusphere (46)
    • MWLUG (25)
    • Notes/Domino (97)
      • Domino 11 (7)
    • Sametime (8)
    • Verse (14)
    • Volt (2)
    • Watson (6)
  • Life (8)
  • Microsoft (7)
    • .NET (2)
    • C# (1)
    • Visual Studio (1)
  • Movies (3)
  • Old Blog Post (259)
  • Personal (23)
  • Programming (83)
    • App Modernization (11)
    • Formula (4)
    • Lotusscript (46)
    • NetSuite (4)
      • SuiteScript (3)
    • node.js (4)
    • XPages (4)
  • Reviews (9)
  • Sci-Fi (4)
  • Software (24)
    • Flight Simulator (2)
    • Games (4)
    • Open Source (2)
    • Utilities (6)
  • Technology (37)
    • Aviation (3)
    • Calculators (2)
    • Computers (6)
    • Gadgets (7)
    • Mobile Phones (7)
    • Science (3)
    • Tablets (2)
  • Travel (6)
    • Texas (2)
    • United States (1)
  • Uncategorized (15)
  • Web Development (50)
    • Frameworks (23)
      • Bootstrap (14)
    • HTML/CSS (12)
    • Javascript (32)
      • jQuery (23)

Administration

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

Tracking

Creeper
MediaCreeper
  • Family Pictures
© TexasSwede 2008-2014