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

The joy of programming

Posted on August 6, 2014 by Karl-Henry Martinsson Posted in Life, Personal, Programming Leave a comment

I have been programming since the beginning of 1983. I started over 30 years ago with Basic, then went to Pascal after about 3 years. I then in fairly quick succession went to C, Visual Basic, VBA and then a few years later (in 1996) to Lotusscript. Along the way I also picked up Javascript, as well as web design with HTML and CSS (even if it may be questionable to call the latter two “programming languages”).

During June and most of July this year, I did not do much/any programming, due to me recovering from surgery. At work I also do more administration work and research, leaving less time for actual programming and even less time to pick up new skills like XPages.  Coming back and starting writing code again made me realize how much I enjoy programming.

I miss writing code and solving problems by writing a program that help our users (or me) accomplish something faster and better than before. I enjoy posting code here on my blog, as well as on Stack Overflow and in the developerWorks forums. If I can help someone, like so many have been helping me in the past, at the same time as I get to write code and have fun, that is a double whammy.

But even writing code for myself, just for fun and to learn new things is enjoyable to me even after all these years. In a way it is me against the computer. I get to make the machine do what I want by taking a problem or process and breaking it down in smaller and smaller pieces until I have a working solution. Every time I come up with a smarter or more clever way to do something, I get excited and happy.

I love learning new things, and in the field of programming (as in the rest of IT), learning never ends. Hopefully I soon will have time to sit down and view some courses at Lynda.com as well as watch some of David Leedy’s excellent Notes-in-9 tutorials, to improve my skills and add more/new tools to my toolbox. And to have fun.

Happy coding!

Lotus Notes at my work threatened by Microsoft bug

Posted on August 5, 2014 by Karl-Henry Martinsson Posted in Administration, IBM/Lotus, Notes/Domino 7 Comments

 

The company I work for is owned by a large multinational corporation, and we are one of the few places not using Outlook/Exchange, but Lotus Notes. We have a substantial investment in custom applications written for the Notes platform, and with the deep integration between applications and email, we want to stay on the platform.

However, earlier this year, a threat against Lotus Notes reared it’s ugly head. Executives at my company were sent meeting invitations from Outlook by other executives in other companies in the group. Some executives received the invitatiosn fine, and could accept/decline, while other got just a plain text email or even blank email. I was tasked to research this, and it seems to be an issue on the sending side. If the sender have the recipients address in their Outlook contacts, the invitation is sent in one format (rich text), if the recipient is not found, it is sent as MIME. So the mail with the invitation is sent in different format by Exchange, with different MIME types (text/calendar vs. text/plain).

It is actually easy to replicate the issue. Send a meeting invitation from Outlook to a Notes user not/never listed in the Outllok contacts. It comes across perfectly:

MeetingInvitationSuccess

Then add that same address to the Outlook contacts and send another invitation. It comes across as a balnk mail, with only the message disclaimer from Exchange visible:

MeetingInvitationFailed

There is an IBM technote about this, but there is no solution listed. IBM simply suggest contacting Microsoft. There is a workaround, but that involves all Outlook users changing the default outgoing mail format from rich text to plain text, or to edit this on each single contact. I even had a couple of users here (who also had Outlook mail accounts) try that. It worked in some cases, but not always. And this is not going to work, thousands of users (or at least several dozen executives) will not make all those changes just to accomodate a small Lotus Notes shop like us…

I am continuing to look for a solution, but it has to be one that we can implement on the Domino mail server(s) here. I found a suggestion to add TNEFEnableConversion=1 to notes.ini, I am having my administrator implement that right now, so we will see if that helps. But if that does not fix it, or I can’t come up with some way to process the incoming meeting invitations and fix the MIME type, I can see a number of executives working really hard on getting rid of Notes (at least for mail) here. And that will happen soon…

So, anyone got any ideas?

 

Update 08/07/2014: I found out that TNEFEnableConversion=1 was already enabled on our mail server, and had been for several years. It seems to also be related to winmail.dat being attached to incoming Outlook mail. I have opened a support ticket with IBM as well.

Update 2 08/07/2014: Within a couple of hours I got the following response from IBM regarding my support ticket (PMR 91606,004,000):

The TNEFEnableConversion=1 parameter was created to extract attachments from a winmail.dat file using the conversion process.  However, this is only used to extract attachments within emails.  This parameter is not intended to extract calendaring information.  The TNEF converter detaches the winmail.dat file, scans it looking for object types that indicate there is file attachment data present, and extracts the data as needed.

According to the RFC standards for SMTP calendaring (icalendar), messages must be formatted in MIME and not MS Rich Text.  As such, this issue is considered a third party bug by our development team because the
MS Rich Text format generates winmail.dat attachments which do not comply with the RFC standards for calendaring.

 At this time, there is no way to address this issue on the Domino side. However, the development is considering in creating an enhancement request not a fix because the issue relies on Exchange/Outlook. The functionality is expected to be in the next release of Domino version 9.0.2.

Meeting invites sent in an HTML or Plain text format work just fine with external applications such as Notes/Domino.

 This sounds promising, now it is just a question how long we have to wait, and if the executives are going to want to wait.

 

ConnectED 2015 – Smaller and shorter but more technical

Posted on July 24, 2014 by Karl-Henry Martinsson Posted in Connect, ConnectED, IBM/Lotus, Lotusphere, Technology 8 Comments

Connected

If you read the official IBM announcment for ConnectED 2015 posted by Mat Newman, you will notice a few interesting details.

First of all, the event is shorter than previous years. It starts on Sunday and ends on Wednesday instead of Thursday. On Sunday IBM has scheduled the Leadership Alliance meeting, which previously been held in the late fall in Boston. This is of course much more cost efficient for business partners, esxpecially international ones, who only have to pay one airfare and one hotel cost. But it also means that business partners who are invited to LA have to choose between presenting at the Sunday JumpStart sessions and attend the Leadership Appliance meetings. In the past, Sunday has also been the day for the Business Partner Day, hopefully IBM is not putting that on the same day as well.

Second, the conference will be held only at Walt Disney World Swan, not at both Swan and Dolphin as in previous years. This indicates a somewhat smaller conference. The Swan ballrooms combined can seat about 2700 people, with the other meeting rooms seating an additional almost 1000. So a qualified guess is that the number of participants will be limited to around 3000 or just above, assuming the keynote/OGS will still take place in the Dolphin. However this is not that much less than Lotusphere/Connect in the last few years. The labs and the sessions we all come to love (“Ask the Developers”, “Ask the Product Managers”, “Gurupaloza”) will be back, and I would be very surprised if there will not be a product showcase of some kind. There are also more interactive elements planned, like roundtables.

Third: ConnectED will be more of a technical conference, similar to the developer conferences IBM had back in the 1990’s. It will be bigger than a LUG (Lotus User Group) conference, but have a much more technical agenda than Lotusphere and Connect in the last few years. In my mind, this is a good thing. Perhaps less catering to press/analysts, “suits” (CEO/CFO type managers), project managers and similar non-technical crowds and more to the hard-core developers and admins who actually use the products.

Personally I think this is a good move by IBM. Separate out the non-technical attendees and focus on the technical side, instead of mixing technical and strategic sessions in a big messy conference. I am excited about ConnectED 2015, even if I am suspecting it will be the last conference in Orlando. Some years ago (2006? 2007?) IBM announced that they had renewed the contract for the conference (back then still called Lotusphere) until 2015.

With so many other IBM conferences merging together and taking place in Las Vegas, I would not be surprised if Lotusphere/ConnectED will suffer the same fate in 2016. I hope not, as Dolphin/Swan is a more intimate setting, where people can meet and socialize in the evening (as well as a day or two before the conference). With IBM pretty much taking over “Swolpin” (Swan and Dolphin) during that last week of January, there are very few non-conference people around. That would not be the case in Las Vegas.

No matter what, I will try to again be able to go to Orlando this coming January and see all my friends and learn more about Notes, Domino, Connections and the other products in the ICS stack.  Hope to see you there!

Recover lost SSL keyring password

Posted on July 24, 2014 by Karl-Henry Martinsson Posted in Administration, IBM/Lotus 3 Comments

About two years ago, our Network (as well as Domino) administrator left the company after 10 years. The other day our SSL certificate for one of our websites expired, and we wanted to use a newer wildcard certificate instead of a server specific certificate.
The problem was that we did not have the password for the keyring file (keyfile.kyr) used on the server, either the admin did not document it (which does not sound like him) or the document with the password was lost/we could not find it.

So what to do? We thought about creating a new keyfile and start over, but these days the certificate authorities (like Verisign, Thawte and Go Daddy) use 4096 bit SHA2 certificates as root certificate, which IBM Domino does not support (and don’t plan to support). The recommended solution is to use the IBM HTTP server as a proxy in front of the Domino HTTP server, since that one supports SSH2. So we could not go this way right away (we probably will do it eventually, though), as we just need the SSL certificate up and running on the server right away.

Our administrator came up with a way to get the password for the keyfile, assuming that you have the corresponding .sth file (which we fortunately had). The instructions are below, in case anyone need them in the future.

To recover a Lotus Domino keyring password you need a Lotus Domino server where you have admin access to and the *.sth file which fits the *.kyr file. If you have both you can perform the following steps:
Bring down the HTTP task via:

tell http quit

Open the domino console and enter:

set config DEBUG_SSL_ALL=3
set config SSL_TRACE_KEYFILEREAD=1

If you now bring back your http task via:

load http

you should see a line similar to:

ReadKeyfile> Recovering password from stash file
ReadKeyfile> Password is xxxxxxxxxxx

You now have the password. You can now simply restart the server to remove the temporary notes.ini settings.

IBM Connect becomes IBM ConnectED in 2015

Posted on July 23, 2014 by Karl-Henry Martinsson Posted in Connect, IBM/Lotus, Lotusphere, Technology 5 Comments

IBM has announced the new name for the yearly conference in Orlando, the one most of us know (and still call) Lotusphere. For the last two years it was named Connect, and for 2015 IBM again changes the name, this time to ConnectED. The conference will be more technical than the last few years, according to IBM:

In 2015, IBM Connect will transform into an even more in-depth technical event,
“IBM ConnectED” that provides the deep “nuts and bolts” technical experience that is so important to our long-standing technical community.

Specifically designed for technologists of all levels, including CIOs, IT managers and practitioners, this new event will offer deep-dive technical sessions, demos, labs and roundtables, access to IBM technical experts, and more.

The IBM ConnectED 2015 website.

The IBM ConnectED 2015 website.

I also want to share what John Head wrote about his thoughts from the IBM Digital Experience conference.

About 700 people here, and 85% of the sessions are technical. (…) The best conference keynote I have seen in years. I hope that IBM reviews the feedback for the session and applies it to future ones. I know, the Connect OGS’s have had to speak to the press and analysts that are there – and there is no press or analysts here. But what a stark difference. And in the best of ways.

I hope IBM take a good look at the ConnectED Opening General Session and make some changes, now when the conference will cater more to the technical crowd. And if the ConnectED planners read this, please have the party at the new Harry Potter Diagon Alley park this year. :-)

 

 

Code snippet – DateClass

Posted on July 21, 2014 by Karl-Henry Martinsson Posted in Lotusscript, Notes/Domino Leave a comment

Here is a small Lotusscript class I wrote some years ago. I use it in a number of other classes where I need to use date functionality of different kind. For example, I have a class that communicates with a FoxPro database, using a COM object. Some of the methods in that class uses XML while other just pass a few arguments to the COM object. The COM object expects the date values to be in ISO 8601 format (yyyy-mm-dd). In addition, sometimes the date comes from a field in a Notes document where they usually are stored in US format (mm/dd/yyyy), sometimes it is the current date.

So I decided to create a this class to just make the code cleaner and to avoid having to do the same conversions over and over again. This class can of course be extended with more functionality if you like.

I simply put the class in a script library called “Class.Date” and then use that script library in my other classes or agents.

Class DateClass 
  Private dt As NotesDateTime	
  Public ErrorMsg As String

  Public Sub New(value As Variant)
    Dim datestring As String
    ' *** Check what data type was passed and take actions.
    ' *** If value is blank or Nothing, use today's date.
    Select Case Typename(value)		
      Case "EMPTY" : datestring = Format$(Today(),"Short Date")
      Case "STRING" : 
        If Fulltrim(value) = "" Then
          datestring = Format$(Today(),"Short Date")
        Else
          datestring = value
        End If
      Case "DATE" : datestring = Cstr(value)
    End Select
    ' *** Also check that the value is a valid date
    If Isdate(datestring) = False Then
      ErrorMsg = "Class.Date:New() - '" & datestring & "' received is not a valid date."
      Set dt = Nothing
      Exit Sub
    End If
    ErrorMsg = ""
    Set dt = New NotesDateTime(datestring)	
  End Sub
	
  Public Function DateOnly As String
    ' *** Return date-part only, in format selected by the system
    DateOnly = dt.DateOnly		
  End Function

  Public Function DateOnlyISO As String
    ' *** Return date-part only, in ISO 8601 (big endian) standard format
    DateOnlyISO = Format$(dt.dateOnly,"yyyy-mm-dd")
  End Function
	
  Public Function DateOnlyUS As String
    ' *** Return date-part only, in US (middle-endian) format
    DateOnlyUS = Format$(dt.dateOnly,"mm/dd/yyyy")
  End Function

End Class

And this is how I use the class, this is the first few lines of a function in another script library:

Public Function GetPolicyData(Byval policynumber As String, Byval lossdate As Variant) As Integer
  Dim DoL As DateClass
  Dim result As Integer
  Set DoL = New DateClass(lossdate)
  If DoL Is Nothing Then
   '*** Display message, including error message from DateTime class
    MsgBox = |Failed to initialize New DateTimeClass with LossDate "| & _
    lossdate & |". | & DoL.ErrorMsg  
    Exit Function
  End If
  '*** Call COM object with policy number and date of loss in ISO 8601 format
  result = object.GetPolicyData(policynumber, DOL.DateOnlyISO())
  ...

There you have it. Easy, isn’t it?

I am back.

Posted on July 21, 2014 by Karl-Henry Martinsson Posted in Generic, Life, Personal 9 Comments

On June 11 I had some major surgery at Medical City in Dallas. It was a planned surgery to remove part of my intestines to prevent future outbreaks of diverticulitis. I been having about 2-3 outbreaks a year for the last 12 years or so. Normally they perform surgery after just 2 severe cases. I was not looking forward to the surgery and recovery, knowing that I would not be able to work for at least 3-4 weeks, and after that just half days for a little while. But the benefits of the surgery outweighted the negative sides.

Scar 10 days after surgery. YOu can also wee where the drainage tubes were located.

My scar 10 days after surgery. You can also see where the drainage tubes were located.

I was a bit nervous before surgery, but everything went well. Í am now the owner of a scar about 14 inches long across my abdomen, and lacking about a foot of my colon as well as a tennis ball sized clump of scar tissue from years of infections. If anyone is interested, the procedure is called sigmoid colon resection.

I had to stay at the hospital for a week (I was released in the evening on June 17) and then stayed 3 days at a local hotel to avoid having to go up the stairs at home. On June 20 I was finally home. I started working half-time last week, but after two days at the office, I was in severe pain/discomfort and had to rest for a day before I started working from home instead. Thankfully I have a great boss who let me do that.

For the first 5 days after surgery I was not allowed any solid food, then I went to a low fiber diet.  Two weeks after surgery all dietary restrictions were lifted and I could eat anything I wanted.

For obvious reasons I have not been blogging during this time, I have mainly been resting. But now I hope to be able to do some blogging again. I have already returned to the developerWorks forums and StackOverflow.

If you, or anyone you know, is suffering from diverticulitus, look into this surgery. I have already been able to eat things I had to exclude from my diet for years, like sesame seeds, chopped garlic and raspberries. Despite still not being fully back to normal, and having some pain every day from the healing process, I would highly recommend this surgery.

If you live in the DFW area, I can highly recommend Medical City. Great facility with wonderful staff. I also want to recommend dr Robert Cloud, my surgeon. He was great at explaining the procedure in detail and answered all my questions. His office was also very quick to respond to email.

 

Things we don’t want to think about

Posted on May 15, 2014 by Karl-Henry Martinsson Posted in Financial, Life, Personal 11 Comments

Two separate incidents are leading me to write this blog entry. First, the way too early passing of Tim Tripcony just a few days ago, as well as as the loss of Rob Wunderlich, Jens Augustiny and Kenneth Kjærbye in just a little over a year. All of those members of the Lotus Community left us way too early. The second one is a more personal one, as I am going in for surgery in a few weeks. All surgeries carry a small risk of complications (this particular one supposedly has less than 2% mortality rate).

But what this leads me is to the subject of this blog entry. Life insurance.

Most of us who are employed have some kind of life insurance through our work, and perhaps like me also have an additional life insurance policy. I am sure that most of self-employed also have purchased some life insurance themselves. So we all know we need life insurance, to provide for our children and/or spouses.

wpid-20130615_145921.jpgBut what should happen with the money, in case the worst happens? In my case, I am divorced, and have a 13 year old son. Should a 13 year old inherit half a million dollar or more just like that? Or even if the child has to wait until age 18 to get the money, and it is managed by the other parent for some years, what would that lead to? I have heard stories about young adults that inherited a large sum of money after the death of a parent, bought a fast motor cycle or sports car and killed themselves within a year. Or who started using drugs/alcohol and either wasted the money on those things, or were killed by the substance abuse. I also know about women who lost their husbands, and within a few years used up all the life insurance money on houses, new cars, cosmetic surgery, all while not working.

wpid-2830.jpgSo how do you make a real impact on the life of your loved ones left behind? In my case, I am in the process of setting up a trust that will handle the investment of the money, as well as spend it in a way consistent with my wishes.
The trust will handle the payouts of the child support until my son turns 18, and it will cover his college education (tuition, books, living expenses) for up to 5 years, etc. It also have all kinds of other provisions, like a cash payment to help with his wedding (only one, and after the age of 27!), matching payments to him for what he puts into a Roth IRA  every year, financial help to buy a car and a house, etc. Even little things like extra money for birthday and christmas gifts are listed there. In addition, the trustee will have some personal discretion to help out when needed, and of course any medical and educational expenses will be covered as needed.

There are so many little details that one has to think about. Until my girlfriend Chrissy brought this up a while ago, I had not really been reflecting much on all those things. So I recommend that everyone sit down and think through how you want your life insurance to be handled if the worst happens. Just having life insurance isn’t enough to ensure they’ll be ok.

Too much of a windfall could be a problem for someone who is not ready to handle it.  Knowing an inheritance is coming could even discourage a child from going to college because they may think they won’t need the education. Most parents do not consider the negative impact it could have on a young person to receive a large amount of money at one time, but we should.

Erik PortraitWhile we may not always be able to be there for our kids if the worst does happen to any of us before they are grown this is a way to make our wishes known about their choices.  This trust is important to me because I can continue to parent him at the same time as I provide financially for him. Setting up a trust lets my son know in writing what my wishes for his life would have been if I had been here.  A college degree, saving for retirement, marriage if he wants it but not until he’s mature enough to handle it, buy a house and I’ll match your down payment and even limiting access if he ever gets into legal or substance abuse trouble. These would be things I will do as long as I am here physically for him too.

As I plan for this surgery it allows me to feel like I’d get a say in raising him through the stipulations of a trust, even if I wasn’t here anymore.  That knowledge calms me enough to face surgery without worry about my son.  Not just in financial terms but also in respect to all the other things a parent provides.

Tough to think about, but so very important.

 

In memory of Tim Tripcony

Posted on May 12, 2014 by Karl-Henry Martinsson Posted in IBM/Lotus, Lotusphere, Personal, XPages 2 Comments

A couple of hours ago, I was reached by the terrible news that Tim Tripcony is no longer with us.

Tip Tripcony at Lotusphere 2009

Tip Tripcony at Lotusphere 2009

I have known Tim for several years, and meeting him at Lotusphere (later Connect) was always a treat. He is one of the most brilliant programmers I have met, and he always had time to talk to me about some question I had or just discuss some technical concept. Every time I met Tim, it felt like a little of his intelligence rubbed off on me.

A couple of years ago, I started looking at XPages, and when I ran into a problem, I asked Tim for some help on Skype or Sametime (don’t remember now which one it was). As the helpful and generous person he was, he took the time out of his busy day to help me with my problem.

Tim was one of the early adopters and champions of XPages, and I have been reading his excellent blog and been to his sessions at Lotusphere. He is one of the developers I admired the most, and that is no easy feat, with all the brilliant individuals we have in the ICS (“Yellowsphere”) community.

Tim, thanks for all your help and ideas over the years. My thoughts goes out to your family, your friends and co-workers, and to everyone else who were fortunate to know you. You will be missed.

Code snippet – Disable agent using external file

Posted on May 1, 2014 by Karl-Henry Martinsson Posted in Lotusscript, Notes/Domino, Programming Leave a comment

Yesterday I was asked to create a way to let us disable agents running on a Domino server in an easy way before the Domino server comes back from a crash.

The reason for this request is that for a while we have been having one particular agent crash, taking the whole Domino server down with it. It only happens occasionally, and seems to be related to the document being processed. When the server comes up after a crash like that, a consistence check is done, then the agent manager launches the agent again, causing the server to go down again. I added code to the offending agent, so it would flag the document before processing and un-flag after processing is done. This way, when the agent encounters an already flagged document, it will be skipped as it was processed during a previous crash.

For some reason this did not work yesterday morning, when one of those rare corrupted(?) documents was encountered. The logic in the code was faulty, because the document was of a new type, so it was never flagged as being processed. The same document was processed over and over again, taking the server down every time.

So I simply created two functions, put them in a global script library where I keep utility functions used in many places, and added 3 lines of code to each agent where I wanted this functionality.

The first function is simply to check if a specified file exists. I am using en error handler to catch any error (for example missing directory).

Function FileExists(filename As String) As Boolean
    On Error GoTo errHandler
    If Dir$(filename)<>"" Then
        FileExists = True
    Else
        FileExists = False
    End If
exitFunction:
    Exit Function
errhandler:
    FileExists = False
    Resume exitFunction
End Function

The second function is the one where I check for the existance of a file named the same as the agent, with an extension of .disabled. If that file does not exist, I check for a file with the extension .enabled. If that file is missing, I simply create a blank file with that name. This way, the first time any agent is executed, the file will be created for us, and I don’t have to sit and manually create them all.

Function DisableAgent() As Boolean
    Dim session As New NotesSession
    Dim agentname As String
    Dim filename As String 

    agentname = session.CurrentAgent.Name
    filename = "D:\NotesAgentControlFiles\" + agentname + ".disabled"
    If FileExists(filename) Then
        DisableAgent= True
    Else
        filename = "D:\NotesAgentControlFiles\" + agentname + ".enabled"
        If Not FileExists(filename) Then	
            Open filename For Output As #1
            Print #1, ""
            Close #1
            Print "Created control file " & filename
        End If
        DisableAgent= False
    End If
End Function

Finally, in each agent I want to be able to disable like this, I add this code in the beginning:

'*** Check if disable-file exists, exit in that case
If DisableAgent() Then
    Exit Sub
End If

Just a few lines of code, but hopefully it will save someone a few minutes of work. Of course, you ca use this technique for many other things, your imagination is the limit.

Stack Exchange

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

Recent Posts

  • Domino 14 is now available
  • Domino 14 Early Access Program
  • Announced: Engage 2024
  • Integrate Node-RED with Notes and Domino
  • Notes and Domino v12 is here!

Recent Comments

  • Theo Heselmans on Announced: Engage 2024
  • 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!

My Pages

  • How to write better code in Notes

Archives

  • December 2023 (1)
  • October 2023 (2)
  • September 2023 (1)
  • 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 (10)
  • 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 (178)
    • #Domino2025 (14)
    • #DominoForever (8)
    • #IBMChampion (46)
    • Administration (7)
    • Cloud (7)
    • CollabSphere (9)
    • Community (49)
    • Connect (33)
    • ConnectED (12)
    • Connections (3)
    • HCL (15)
    • HCL Master (1)
    • IBM Think (1)
    • Lotusphere (46)
    • MWLUG (25)
    • Notes/Domino (99)
      • Domino 11 (7)
    • Sametime (8)
    • Verse (14)
    • Volt (3)
    • Watson (6)
  • Life (8)
  • Microsoft (7)
    • .NET (2)
    • C# (1)
    • Visual Studio (1)
  • Movies (3)
  • Old Blog Post (259)
  • Personal (23)
  • Programming (84)
    • App Modernization (11)
    • Formula (4)
    • Lotusscript (47)
    • 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 (7)
    • Europe (1)
    • Texas (2)
    • United States (1)
  • Uncategorized (16)
  • Web Development (50)
    • Frameworks (23)
      • Bootstrap (14)
    • HTML/CSS (12)
    • Javascript (32)
      • jQuery (23)
  • Prev
  • 1
  • …
  • 15
  • 16
  • 17
  • 18
  • 19
  • …
  • 54
  • Next

Administration

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

Tracking

Creeper
MediaCreeper
  • Family Pictures
© TexasSwede 2008-2014