Eclipse PHP tooling

The Eclipse Foundation releases PHP tooling.

Quote: “Eclipse has long been enriched by the wide number of programming languages supported” says Mike Milinkovich, general director of the Eclipse organization. “The release of PDT 1.0 is great news as it will allow the estimated 4.5 million PHP developers to begin using Eclipse-based tools and greatly expand the entire Eclipse community.”

Discovering Notes 8: More spill-over from Eclipse


What’s going on? Well that’s the question… Did you notice the animated gif in the lower-right corner of your Notes 8 client that looks like this:

It is the new progress tab and by clicking on the orange ball you can get the progress bar to display in full screen mode like shown below. The cool thing is that you can see all the different operations that may be occurring at any one time. In this example below I’m only replicating but you can see that I just finished copying a database as well. In previous releases you only had the one progress bar at the bottom which meant that you couldn’t see simultaneous operations.

If you click “Show” in the upper right corner of the tab, select Preference there’s even more fun to be had… 🙂

LocationDocument LotusScript class updated

I updated my LocationDocument LotusScript class again for Location type (Local Area Network, No connection etc.) and for mail server name. It makes it really easy to quickly get at location document information from script.

See the original post for usage.

'/**
' * LotusScript class for interacting with location documents
' * in the personal name and address book.
' */
Public Class LocationDocument
   'declarations
   Private pSession As NotesSession
   Private pDb As NotesDatabase
   Private pDoc As NotesDocument

   '/**
   ' * Constructor
   ' */
   Public Sub New(get_location As String)
      'declarations
      Dim viewNab As NotesView
      Dim nn As NotesName
      Dim ini_location As String
      Dim location As String
      Dim comma As Integer

      'get session
      Set Me.pSession = New NotesSession()

      If get_location = "" Then
         'get the location from notes.ini
         ini_location = Me.pSession.GetEnvironmentString("Location", True)

         'parse out the location name if none specifed in the constructor
         comma = Instr(1, ini_location, ",")
         location = Mid$(ini_location, 1, comma-1)
      Else
         'use supplied location name
         location = get_location
      End If

      'abbreviate the name
      Set nn = New NotesName(location)
      location = nn.Abbreviated

      'get database and view
      Set Me.pDb = Me.pSession.GetDatabase("", "names.nsf")
      Set viewNab = Me.pDb.GetView("Locations")

      'lookup location document
      Set Me.pDoc = viewNab.GetDocumentByKey(location, True)
      If Me.pDoc Is Nothing Then
         Error 9999, "Location document not found in names.nsf"
      End If
   End Sub

   '/**
   ' * Saves.
   ' */
   Public Sub Save()
      Call Me.pDoc.Save(False, False)
   End Sub

   '/**
   ' * Property to get the backend document.
   ' */
   Public Property Get Document As NotesDocument
      Set Document = Me.pDoc
   End Property

   '/**
   ' * Property to get the e-mail address.
   ' */
   Public Property Get EmailAddress As String
      EmailAddress = Me.pDoc.GetItemValue("ImailAddress")(0)
   End Property

   '/**
   ' * Returns the name of the directory server.
   ' */
   Public Property Get DirectoryServer As NotesName
      If Me.LocationType = "3" Then
         Set DirectoryServer = Nothing
      Else
         Dim nn As New NotesName(Me.pDoc.GetItemValue("DirectoryServer")(0))
         Set DirectoryServer = nn
      End If
   End Property

   '/**
   ' * Sets the name of the directory server.
   ' */
   Public Property Set DirectoryServer As NotesName
      Call Me.pDoc.ReplaceItemValue("DirectoryServer", DirectoryServer.Canonical)
   End Property

   '/**
   ' * Returns the name of the Sametime server.
   ' */
   Public Property Get SametimeServer As NotesName
      If Me.LocationType = "3" Then
         Set SametimeServer = Nothing
      Else
         Set SametimeServer = New NotesName(Me.pDoc.GetItemValue("SametimeServer")(0))
      End If
   End Property

   '/**
   ' * Sets the name of the Sametime server.
   ' */
   Public Property Set SametimeServer As NotesName
      Call Me.pDoc.ReplaceItemValue("SametimeServer", SametimeServer.Canonical)
   End Property

   '/**
   ' * Returns the name of the mail server.
   ' */
   Public Property Get MailServer As NotesName
      If Me.LocationType = "3" Then
         Set MailServer = Nothing
      Else
         Set MailServer = New NotesName(Me.pDoc.GetItemValue("MailServer")(0))
      End If
   End Property

   '/**
   ' * Sets the name of the mail server.
   ' */
   Public Property Set MailServer As NotesName
      Call Me.pDoc.ReplaceItemValue("MailServer", MailServer.Canonical)
   End Property

   '/**
   ' * Returns the location type.
   ' * 
' * Local Area Network = "0" ' * Notes Direct Dialup = "1" ' * Network Dialup = "4" ' * Custom = "2" ' * No connection = "3" ' */ Public Property Get LocationType As String LocationType = Me.pDoc.GetItemValue("LocationType")(0) End Property End Class

Print from Adobe Acrobat using OLE

Just to have it somewhere… The code is from Visual Basic 6 with reference to the Acrobat TLD.

Private Sub Command1_Click()
    Dim doc As New AcroAVDoc
    If doc.Open("c:test.pdf", "PDF Print") Then
        Dim numPages As Long
        numPages = doc.GetPDDoc().GetNumPages
        Debug.Print "Document has " & numPages & " page(s)..."
        If doc.PrintPagesSilent(0, numPages - 1, 0, True, True) Then
            Debug.Print "Printed document..."
        End If
    Else
        MsgBox "failed to open document"
    End If

    If Not (doc Is Nothing) Then
        Call doc.Close(True)
    End If
End Sub

Is the Notes/Domino platform getting too complex?

Ben Poole posted a link to a rant on developerWorks (notes.net). The post addressed some of the same points that Nathan addressed some time back in his “Hourglass Community” post.

I think it is interesting that a post like this was posted to LDD not too long after Nathan posted about the same thing. I find it curiously interesting that the Notes/Domino platform turns more and more complicated and that the questions posted on LDD turn more and more basic… It could be that (real) developers simply get their information from other sources such as blogs and that those left in the forum really are the newbies. It could also be an indication that the platform getting increasingly complex is revealing to real problem for IBM Lotus.

How do we fix it? How do we get Notes/Domino developers to get smarter? It is really our, non-IBM’ers, job? Something to ponder over the weekend…

Discovering Notes 8: Spill-over from Eclipse


How’s this for Eclipse spill-over and a “free” feature that, at least for me, is the feature of the week? Try pressing Ctrl-F8 in your Notes 8 client…

Pressing the key-combination will bring up a keyboard navigateable list of open tabs. Select the tab you need with the arrow keys (or press Ctrl-F8 successive times) and press Enter. It’s basically the same as in Eclipse except in Eclipse it shows a list of active perspectives. In fact the Notes 8 client still refers to “perspectives” in the keyboard shortcut list.

Nice ha?