Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

Friday, November 17, 2006

How to compile NotesAPI programs without buying visual studio on Windows XP

Download and install:
1. Microsoft Visual C++ Express (GUI not needed to compile)
http://msdn.microsoft.com/vstudio/express/visualc/
2. Run Windows Update if needed

3. Microsoft Platform SDK for Windows Server 2003
http://www.microsoft.com/downloads/details.aspx?FamilyID=0baf2b35-c656-4969-ace8-e4c0c0716adb&DisplayLang=en#filelist

4. Download and extract the Lotus C API Toolkit
http://www-128.ibm.com/developerworks/lotus/downloads/toolkits.html

5. Download the nmake program and copy this to your c++ bin directory
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q132084
(may already come with c++ express)

6. Create batch files that simplify your build (put these in a directory in your path)

FILE: mk.bat
CONTENTS:
nmake /f mswin32.mak /a

FILE: setenv.bat
CONTENTS:
"D:\Program Files\Microsoft Visual Studio 8\VC\vcvars32.bat"
"C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\SetEnv.bat"
set LIB=d:\notesapi\lib\mswin32;%LIB%
set INCLUDE=d:\notesapi\include;%INCLUDE%
set PATH=d:\lotus\domino;%PATH%

FILE: w32.bat
CONTENTS:
"D:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\SetEnv.Cmd" /RETAIL

7. To use the compiler
1. Start a Visual Studio 2005 Command Prompt
2. Run the commands:
a) setenv
b) w32
3. Change to the d:\notesapi\samples\basic\intro
4. run the batch file "mk"

...and you should then be able to compile NotesAPI programs.

Tuesday, October 24, 2006

Changing a database replica id on AIX

There has been a utility floating around to change a Lotus Notes database's replica id for some time. I recently migrated a company to AIX 5.3 from another platform to run Domino 7.0.2. Here is a simple HOWTO get up and running to compile with the Notes API on AIX 5.3.

Upload the NotesApi tool kit from the Lotus Developer Domain (under toolkits).

Uncompress and extract the tar file to /yourmount/notesapi

Make sure the notes user owns these files and any links
chown –r notes:notes /yourmount/notesapi

Create a link under /opt/ibm/lotus

cd /opt/ibm/lotus
ln -s /yourmount/notesapi notesapi
chown notes:notes notesapi

Change to the notes user with their profile
su - notes

Create a script to set all the environment variables

server:/home/notes$ cat setenv
#!/usr/bin/ksh

LOTUS=/opt/ibm/lotus; export LOTUS
NOTES_DATA_DIR=/yourmount/domino/data; export NOTES_DATA_DIR
Notes_ExecDirectory=$LOTUS/notes/latest/ibmpow; export Notes_ExecDirectory
PATH=$PATH:$NOTES_DATA_DIR:$Notes_ExecDirectory; export PATH

Source the file before running any compilations

server:/home/notes$ . setenv

compile the intro sample as a test
cd /yourmount/notesapi/sample/basic/intro
make -f aix.mak

You can now compile any notesapi program.

The chrepid.c example is available for download here:
chrepid.c
chrepid make
chrepid compiled program

Wednesday, February 08, 2006

Is Ruby beyond Java?

I just bought the Ruby and Beyond Java book from Foyles in London. I have played with Ruby on Rails but after reading blogs I think a bit of reading is in order.
I cannot help but think scripting is not the answer here but I really miss what Notes/Domino provides in the web world. I like the idea of just creating a field once and getting Create, Read, Update, and Delete without too much work. Struts, Hibernate, JSP and Tomcat involve a lot of typing and it does take time. Maybe my issue is getting Notes like flexibility from a relational back end but I do want to think on this issue for a while and I suspect there is no easy answer here.