Steve Jobs – Gone but not Forgotten

I have never owned a Macintosh, iPod, iPhone or iPad. I have however used different products from Apple over the years. I have even used the NeXT. Back in 1983 (if I remember correctly), I spent a week in a German school (my mom had this idea about sending me to Germany to stay with relatives or friends for a few weeks every summer to improve my German), and in their computer room they had Apple IIe that I got to play around with a little. I was programming on a similar computer (the Swedish ABC 80) at my school, and I found them fairly similar. About the same time, I started hearing about Apple Lisa, and a year or so later I saw my first Macintosh at a computer trade show in Stockholm. But it was not until a few years later (I think in 1987) I got to actually use a Macintosh. My godmother's husband owned a printing business, and he -- like so many others in the graphics industry -- used Macintosh. As I "knew computers", I was called in to figure out a few things and teach him. I think it had to do with sending files through a modem or something, on his Macintosh II. At this time I was using another Swedish computer at school, the CP/M-86 based Compis, and the graphics environment on the Macintosh was very impressive. Then in 1988 I started working at Microsoft, and I was assigned a Macintosh SE (in addition to an IBM PS/2 Model 60). Now I got to use it a bit more extensive, but when I started looking at buying my own computer a year later, the higher price and fewer choices when it came to software made me choose the DOS/Windows platform. In 1992 I got to play with a NeXT at the place I worked, and it was way cool. I was not able to spend much time on it, but I could see that this was a totally different version of Unix compared with the mostly text-based systems I had used before. As we all know, NeXT was purchased by Apple and became the foundation of OS X. In 1993 I started my career as a journalist and technical writer. All the desk editors used Macintosh (and Quark Xpress), and a few times I got to actually edit my own articles on them. Once, I believe some time in 1995 or 1996 I even filled in as a desk editor for a day, creating a page or two. This was the last time I actually used a Macintosh. I have since played with iPhones (my son got one, while I am still on Blackberry), iPad and iPod. All great products, easyto use and powerful. But for me, as a technical person, I am willing to give up some usability and ease of use for a more open and flexible environment. That is why I have a Cowon A2 as my MP3 player. When I got it, it was technically…

0 Comments

Create and update Calendar reminders from Notes document

At work I was asked yesterday if I could give the users a button to set reminders for meetings/actions directly from a document in one of our Notes applications. So I created a simple solution where I added two action buttons and a field to the form from which the calendar entry (reminder) would be created. I wanted to share this code. It is nothing complicated, and the main functionality consists of some code Palmi Lord posted in LDD last year. The new field on the form is called 'CalendarUNID' and will contain the Universal ID of the calendar entry. If the field is blank, I will display the 'Add to Calendar' button, if it contains a value I will display the button 'Update Calendar Entry' instead. This field is also used by the update function to get to the original calendar entry. Note that the reminder is created in the current user's calendar, and can only be successfully updated by the same user. The date field used is named 'InspedtionDate', and I set the time to 8am. In the reminder I am also putting the address of the insured (the application is used by an insurance company) in the location field, and the insured/account name and policy number in the subject field.   'Add to Calendar' button Hide-when formula: CalendarUNID!="" | InspectionDate="" Lotusscript Code:Sub Click(Source As Button)   Dim ws As New NotesUIWorkspace   Dim uidoc As NotesUIDocument   Dim calentry As NotesDocument   Dim appdate As NotesDateTime   Dim location As String   Dim subject As String   Dim calunid As String    Set uidoc = ws.CurrentDocument   Set appdate = New NotesDateTime(uidoc.FieldGetText("InspectionDate") _ & " 08:00:00 AM")   ' Get physical location of insured   location = uidoc.FieldGetText("LocAddress") & ", "   location = location & uidoc.FieldGetText("LocCity") & ", "   location = location & uidoc.FieldGetText("LocState") & " " _ & uidoc.FieldGetText("LocZIP")   ' Build subject line for reminder   subject = "Inspection Due ("   subject = subject & uidoc.FieldGetText("AccountName") & " - "   subject = subject & uidoc.FieldGetText("PolicyNumber") & ")"   calunid = createReminder( appdate, location, subject)   Call uidoc.FieldSetText("CalendarUNID", calunid)   Call uidoc.Save()   Call uidoc.RefreshEnd SubFunction createReminder( dateTime As notesDateTime, _ location As String, subjectStr As String ) As String   Dim sess As New NotesSession   Dim userMailDb As New NotesDatabase( "", "" )   Call userMailDb.OpenMail   Dim reminderDoc As New NotesDocument( userMailDb )   Dim DTItem As NotesItem     With reminderDoc      .Form = "Appointment"      .ReplaceItemValue "$Alarm", 1      .ReplaceItemValue "$AlarmDescription", subjectStr      .ReplaceItemValue "$AlarmMemoOptions", ""      .ReplaceItemValue "$AlarmOffset", 0      .ReplaceItemValue "$AlarmUnit", "M"      .Subject = subjectStr      .Alarms = "1"      .CalendarDateTime = dateTime.lsLocalTime      .StartDate = dateTime.lsLocaltime      .StartTime = dateTime.lsLocaltime      .StartDateTime = dateTime.lsLocaltime        .EndDate = dateTime.lsLocaltime      .EndTime = dateTime.lsLocaltime      .EndDateTime = dateTime.lsLocaltime        .AppointmentType = "4"       .Location = location      .Category = "Service Plan Activity"      .Save True, False       .ComputeWithForm True, False      .Save True, False      .PutInFolder( "$Alarms" )   End With   createReminder = reminderDoc.UniversalIDEnd Function 'Update Calendar Entry' button: Hide-when formula: CalendarUNID="" Lotusscript Code:Sub Click(Source As Button)   Dim ws As New NotesUIWorkspace   Dim uidoc As NotesUIDocument   Dim session As New NotesSession   Dim calentry As NotesDocument   Dim appdate As NotesDateTime   Dim location As String   Dim subject As String   Dim calunid As String   Set uidoc = ws.CurrentDocument   Set appdate = New NotesDateTime(uidoc.FieldGetText("InspectionDate") _ & " 08:00:00 AM")   ' Get physical location of insured   location = uidoc.FieldGetText("LocAddress") & ", "   location = location & uidoc.FieldGetText("LocCity") & ", "   location = location & uidoc.FieldGetText("LocState") & " " _ & uidoc.FieldGetText("LocZIP")   ' Build subject line for reminder   subject = "Inspection Due ("   subject = subject & uidoc.FieldGetText("AccountName") & " - "   subject = subject & uidoc.FieldGetText("PolicyNumber")…

0 Comments

Dynamic tables in classic Notes

Using Xpages, you can do many neat things in Notes. But I am still doing all my development in classic Notes, despite being on Notes/Domino 8.5.2. The reason is simple. Memory. There is just not enough memory to run the standard client in our Citrix environment, so all users are using the basic client. And Xpages is not working in the basic client. So how do I solve issues like multiple documents tied to a main document, being displayed inline in the main document? Well, I solved this a long time ago by using a rich text field and building the document list on the fly. I am sure many other Notes developers use this technique. I know it was discussed in a session at Lotusphere several years ago, perhaps as long ago as 7-8 years ago. So this is of course not anything I came up with myself. In this post I just want to share how I am using this, and perhaps this can help someone. The database (download it here) is very simple. It contains three (3) forms and two (2) views. In addition I have some icon as image resources, but that is just to make things pretty.   Forms The 'MainDoc' form is the main document, being displayed in the view 'By Last Change'. It contains a few fields: 'Title' - a text field where the user can enter a title/description 'Data' - a rich text field where the rendered table rows will be displayed 'ParentUNID' - a hidden computed-when-composed field where the UniversalID of the document is stored 'EntryCount' - a hidden text field used to count the number of entries (to display in the views) 'LastEntry' and 'LastEntryDate' - Hidden text fields to keep track of the last person who edded an entry The form also contains some regular action buttons ('Save', 'Edit', 'Close'), as well as 'Add entry...', an action button with two lines of Formula language: @Command([FileSave]); @Command([Compose];"Entry") The QueryOpen event, which executes before the form is opened in the front-end and displayed to the user, contains some Lotusscript code. This event let us modify the document in the backend, which is where rich text fields can be updated. The code - which I will post at the end of this article - is very simple, it is just over 50 lines of code.   The 'Entry' form is where the entries are created. It is set to let fields inherit values from the document it is created from, and contains a couple of fields, some action buttons and some Lotusscript code as follows: 'ParentUNID' - editable, default value is "ParentUNID", to inherit the value from MainDoc 'Created' and 'Creator' - computed-when-composed to store date/time and user name of creator 'ItemDate', 'Issue' and 'Action' - user data fields. The 'Entry' form contains the following Lotusscript code: (Declarations) Dim callinguidoc As NotesUIDocument Dim callingdoc As NotesDocument Sub Initialize Dim ws As New NotesUIWorkspace Set callinguidoc = ws.CurrentDocument If Not callinguidoc Is Nothing Then Set callingdoc = callinguidoc.Document End If End Sub Sub Terminate Dim ws As New NotesUIWorkspace…

7 Comments

Lotusscript frustrations…

This morning I ran into a problem that frustrated me to no end, until I finally figured it out. The answer was of course in the online help... I had a class that processed people associated with a file. Each person is assigned (in creation order) a number, starting with 1. The class load the person documents when the class is initiated, and store the info in an array. What happend is that I got the "Subscript out of range" error on a particular file. What I found was that it had 10 person documents, numbered 2 through 11. This is of course 10 persons, so the array was dimmed as 1 to 10. When I hit the 10th person, it had the number 11 and my code blew up when I tried to put the info into the 11th (non-existing) array element. OK, this should be easy to fix. Just check the person number field and if the value is larger that the size of the array, redim the array using Redim Preserve. Nope, this line now gave me the same error, just in a different location, on the line where I do Redim Preserve person(1 to personcount) as NotesDocument. The solution was easy. You can not change the lower bound of the array, so the correct code would be Redim Preserve person(personcount) as NotesDocument instead. Then it worked. Just a small tip I wanted to share.   

0 Comments

Vacation Memories: Royal Castle in Stockholm

During my vacation I took a tour of the Royal Castle in Stockholm. Despite living in the Stockholm area for 28 years, and then going back top visit pretty much every year, I had still never taken a tour of the actual castle. This year I remedied this, and while I walked through the rooms I took some pictures. I am posting some of them below. Due to the dark interior, and in some cases the bright sunshine outside, I used High Dynamic Range (HDR) to bring out details and contrast. Enjoy!  

0 Comments

Vacation Memories: Denmark

I have been on vacation in my native home country Sweden, but now I am back in the USA and Texas, after two and a half weeks of meeting family and friends, eating some great food as well as experiencing and seeing a number of new things. One of the most emotional things on this trip was one of those new experiences. As I written about before, I am named after my uncle Karl-Heinz, who was killed in the last days of WWII. He is buried in Copenhagen, as he died while being treated for his wounds at a German military hospital there. I have never visited his grave, so when we decided to take a tour of Sk? to view places like Ale´s Stones, Kivik and then take the ?esunds Bridge over to Denmark, I wanted to take the opportunity to visit my namesake. Karl-Heinz Groeling was born on December 20, 1919, soon after my grandfather returned from WWI. My mother was born in 1926, and two more girls (Anneliese and Katja) in the next few years. My uncle was, like so many other boys, interested in airplanes, and he learned to fly gliders and sailplanes in the 1930´s. After the Treaty of Versailles after WWI, Germany was not allowed any armed aircrafts. The workaround was to train future pilots in gliders. In 1939 he joined the Luftwaffe (German Air Force) as a glider pilot. He took part in the invasion of Crete in 1941, and was later reassigned to a flak (anti-aircraft artillery) regiment. On February 23, 1945 he was wounded (shot through the left lung) and evacuated to a hospital ship. On March 10 he arrived at the hospital in Copenhagen, but during the night between March 15 and 16 his condition deteriorated and he died in the morning at 03:10.   Thanks to the internet, I quickly found Volksbund Deutsche Kriegsgr?rf??rge who has an online database of German war graves. I found his grave and located the cemetery. I was surprised and happy to find that it was within walking distance from my hotel, just about a mile and a half away. So the morning after arriving in Copenhagen I walked to Vestre Kirkeg?, a beautiful cemetery with nice landscaping and art decorations, and found the German section (picture right), where 4,636 German soldiers and 4,019 civilian refugees are buried. After a brief search, I located the grave. Due to limited space, most graves contained more than one person. Most contained two, but I found some containing up to five. As I mentioned earlier, it was strangely emotional to stand there, in front of that simple stone cross. He was only 25 years old when he died, and had just started his life. If he had managed to survive two more months, the war would have been over. While I was on the way back to Stockholm after the trip to Denmark, the massacre on Ut??/span> in Norway happened, and 77 more people, most of them…

0 Comments

Cheese Cake – Swedish style

In Sweden we have a dish called ostkaka, which translates to "cheese cake". It should not be confused with the American cheese cake, A better name might be "curd cake". This dessert was for a long time one of the things from Sweden I missed living in Texas. However, a few years ago I remembered that we made it in school (in Sweden home economics/cooking is a mandatory subject in Junior High School), and I found a recipe that worked for me. Over the last year I have been making this dish a number of times, and I have experimented a little to see what worked out. Here is one variant of the recipe that should be easy to follow. Good luck!   Ingredients: 6-7 large eggs 1/2 cup granulated sugar (or Splenda for a low carb/sugarfree version) 1/2 cup flour 4 lbs cottage cheese (small curd) - should be the regular version, not low fat Just over 1 1/2 cup heavy whipping cream 2 oz chopped almonds (fine) 2 tsp almond essence Topping: Whipped cream Jam (Cloudberry, Blueberry or Queens Berry, can be found at IKEA) or frozen (defrosted) fruit like strawberries, blackberries or blueberries.   Instructions: Beat eggs and sugar/Splenda with a mixer. Add almond essence and flour. Mix down half the cottage cheese. Add the chopped almonds and mix. Add the rest of the cottage cheese. Whip the cream, should be nice and solid. Fold it into the mix. Do not beat it or stir too vigorously. Pour in a buttered and oven safe dish. Bake in 350 degrees for about an hour (will not hurt to go over the time, I sometimes had to bake it for 75-85 minutes). It should be all solid but soft. The top surface should be nice and dark brown. Serve warm (but not hot) with berries/jam and whipped cream.     Note: This is not my cheesecake, I will upload a picture when I get home tonight.     

0 Comments

The Lord of The Rings (Extended Edition) and Star Wars coming on Blu-ray

A couple of interesting Blu-ray are scheduled for this fall. The Lord of The Rings Extended Edition will be released on June 28. The three movies are probably my favourites. However, it seems like there are really not many extras compared to the DVD Extended Collectors Edition I already own on DVD, so the only reason to purchase this set would be for the picture quality. Star Wars: The Complete Saga is scheduled to be released on September 16. The box will include all six movies (Episode I-VI). There are a lot of complaints already, as the number of extras and bonus material is considered less than satisfactory by many fans. I have said for a long time that when The Lord of The Rings is released on Blu-ray, that's when I will update my system at home from DVD to Blu-ray. I might do it this fall anyway, but I am not as eager as before. Perhaps I should wait for The Hobbit to be released, I am sure we will see a new box released by then...   

0 Comments

Memorial Day

Today the United States is celebrating Memorial Day, a day when the fallen soldiers are remembered/honored. In November, Veterans Day is celebrated, honoring all men and women who served in the US military. I am originally from Sweden, a neutral country who have not been in a formal war since 1809. Despite this, Swedish soldiers have fought and died in several wars since then, though. In 1940, many Swedes volunteered to help Finland in the Winter War against the invading Soviet Union. In the early 1960’s, Sweden sent ground troops as well as jet fighters to Congo during the Katanga crisis. Sweden has also lost troops in Afghanistan, where about 500 Swedish soldiers currently are part of ISAF. Five Swedish soldiers and one dual-citizen Swedish-Norwegian who was serving with the Norwegian forces have been killed this far. They are pictured below. So my Memorial Day is not just to honor the men and women of the United States armed forces who died over the years, but all soldiers who served their countries to the best of their ability and paid the ultimate price. In my close family, I have my uncle Karl-Heinz, whom I am named after. He served in the German Air Force (Luftwaffe) during WWII, first as a glider pilot, later in an anti-aircraft artillery unit. Unteroffizier (NCO) Karl-Heinz Groeling 1919-1945    Note: I wrote this entry over the weekend, but due to the BleedYellow blogs having technical issues, I was not able to post it until this morning. 

0 Comments

Icon Collection for Notes Applications

As of Notes 8.5.2 the Notes client now support prettyapplication icons, using thePNGformat. A handful of icons have been released on OpenNTF.org by Mary Beth Raven, but I have been looking for more. I found a nice set of icons yesterday, and I thought they might look good as application icons.Imailed the page owner where I found them to find out moreThe icons were purchased from IconExperience, a full set of the X-Collection (XP look) is $289 and the V-Collection (Vista/Windows 7 look) is $379.I consider that a very good price. In the mean time,I decided to just try some of the iconson a couple of my existing databases. I think it really makes a huge difference. See below for a sample.I believe I am covered under Fair Use when publishing this screenshot since this only are 8 of the 2,400 icons in the collection. I think the important thing is to getthe look ofthe icons consistent, not mix different looks. I happen to know that The Lotusphere Widow plan to design some icons in the near future,that will match the icons posted on OpenNTF.So keep your eyes open...  To clarify, the upper row in each sectionare the applications, and the row below are the templates.In previous versions of Domino Designer I used a solid red background colorbehind the icons to indicate templates, that would be a nice enhancement in un upcoming version of Domino designer, to have the chicklets in a different color for templates.   

0 Comments

Product Review: Gillette Thermal Face Scrub

This is a non-technology related post, but I wanted to share my experiences with this particular product. I have always been shaving with a razor and gel, that is how my dad did it and I followed his lead. For the last 20 years, I have been using Gillette products. They simply worked the best for me. YMMV As a true geek, I have always been using their latest model of razors, and I am currently using the Fusion Proglide Power. A couple of weeks ago, I had to buy new blades (they are getting pretty outrageously expensive, though!), and in the packet I got s small travel size sample of their Thermal Face Scrub. I have always been very skeptical to that kind of products. Soap and water have worked for me the last 40 years"..." A year or two ago I got a face scrub to use once a twice per week, and even if I have to admit it felt nice, I dis not see a need to get another one when I ran out. So I tried this sample from Gillette, and it was very interesting. I rinsed my face as usual, then applied a small amount of the product. The skin got nice and warm. I then rinsed it off, according to the instructions, applied the shaving gel I use and shaved. The result? Well, I almost hate it when the commercials or advertising is correct. But it was a noticeable difference. I shaved at 6.30am, and by 6pm, my face was still as smooth as in the morning. I had used brand new blades, which might have made a slight difference, so I tested it a few days later by using brand new blades on one side of the face, and some well used (about 1 month) blades on the other side. The difference was hardly noticeable, with of course the side where I used the old blades felt slightly rougher. Still an improvement compared to not using the product. I do not know if long-term use of this product will have any effect on the skin, but I usually don´t shave during the weekend, allowing the skin to rest. I really like the product and purchased a full size tube a few days later, saving the travel size one for travel. Disclaimer: Sample received free, purchased full-size product.  

0 Comments

CrashPlan online backup

I have been thinking about using one of the many online/cloud services for backup. I have plenty of photos (200+ GB) and also other important documents I don't want to lose. Today I have them mirrored on an external USB drive, but in case something happens to my place, like fire or burglary, that drive will most probably also be gone. So an online service would make sense. There are a number of contenders out there. Carbonite and Mozy are perhaps the most high profile ones, because of their advertising. Mozy just switched from unlimited storage to plans where you pay more if you store more. Carbonite still offers online storage for $59/year, but they don't support backups of large files (4GB+), don't include video files by default, and don't support external drives. There are also bandwidth restrictions. Up to 35 GB you get full speed, then it drops to 512kbit/s up to 200 GB. After that the bandwidth is throttled down to 100 kbit/s. An online calculator showed that 250 GB would take me 83 days to upload.And I actually have closer to 400 GB that I want to backup. Both services also lack a Linux client, the clients are only available for Windows and MacOS. However, I stumbled on a new service yesterday, called CrashPlan.Not only does it cost about the same as Carbonite, at $5/month or $49.99/year, they also claim not to have bandwidth restrictions (throttling). In addition they have clients for Linux and Solaris, as well as apps for Android and iOS. But the really cool features are some that Carbonite and Mozy does not have, and that to me are very useful. You can backup not only to the online storage on the CrashPlan servers, but also to external USB drives, network drives or even a friend across town or in another country. You can create different backup sets, and have them being backed up to different places. I installed the client at home, and created a few backup sets. My photos are backed up to my external 1.5 TB Seagate drive, as well as to the CrashPlan servers. My documents and images (like icons and graphics I use for my Notes/Domino applications) are backed up to the online storage only. My MP3 files are backed up only to the external drive. I also plan to setup CrashPlan on my sister's computer in Sweden and backup my photos there. The files are encrypted on the external drive and at the friend/family member, so they can not see the filenames or the content. I think this combination of backups in multiple places is brilliant. I am currently using the 15 days free trial, but I intend to purchase theservice in the next day or two, if it lives up to the promises. Update: CrashPlan is now $59.99/year or $5.99/month for the cheapest unlimited plan. Details here. Also, something both me and other noticed is that the upload does take time, about the same as Carbonite. So they have some kind of…

0 Comments

Ubuntu 11.04 available for download

As of today, the latest version of Ubuntu is available for download. If you alreadyhave Ubuntu runing, the update manager will give youthe option to upgrade your existing installation.If you want to perform a clean install, simply download and burn the ISO file for Ubuntu 11.04 (with the code name Natty Narwhal) from www.ubuntu.com. As always, you can install the new operating system next to Windows, keeping your existing operating system working.  When I tried the update from within Ubuntu 10.10, I was told it would take about 7 hours for it to finish. To download the ISO will take about one hour on the same internet connection... This is of course unusual slow, and can most probably be contributed to everyone downloading the new version today. One of the biggest changes in this release is the new desktop enviromnet called Unity, replacing the traditional Gnome shell. As soon as I have been playing around some more with it, I will report back on what I think about it. The main difference is that commonly used programs can be docked on the left side of the screen. It seems like Ubuntu users either love it or hate it... Michael Brown blogged about how to install Lotus Notes in the (as yet) unsupported Ubuntu 11.04 this morning,so I will not repeat that here. Go read his instructions. 

0 Comments

IBM Get Social Roadshow in Dallas

Below is a summary of the event I attended yesterday. It will mainly be quotes from the different speakers. Ed Brill, IBM (@edbrill)People want to do business with people. They like to know something about the person they do business with. When I started my blog, I had to decide what my online presence should be. Am I Ed Brill the IBM executive? Or Ed Brill the father, traveler and photographer? The answer is all of them.Historically, many companies (including IBM) had a policy that only the highest executive, or certain people, talked to customers. That policy, one face to the customer, does not work today, in the age of social business. Companies must decrease the distance between themselves and the customer.It is important that you get a social media policy. When IBM developed one five years ago, we encouraged people to blog, be on social networks, etc. We said "do this" instead of "don't do this".According to the IBM CIO study, 95% of standout organisations will focus more on "getting closer to the customer" over the next five years, connecting people - customers, partners and employees - ast networks to drive innovation.People don't use the restaurant reviews in the Sunday newspaper anymore. Instead they use crowdsourcing. People go to Yelp and similar sites and read reviews by other people.Who here in the audience would go to Best Buy and get a new big screen TV or a blue-ray player and trust the sales guy? How many of you would pull out your smartphone, go to Amazon.com and check the star rating and perhaps a couple of reviews right there in the store? (Most in the audience raised their hands at this point)Marcia Conner, author and analyst (@marciamarcia)96% of people under 30 are on a social network.Companies with highly engaged employees have 26% higher revenue per employee.9 in 10 adults trust recommendations from online friends and total strangers.Many companies are afraid of social media and block it. People will work the way they need, using the tools they need, with our without you. They will figure out ways to get around limitations. They might just all use their smart phones and bypass any proxies/firewalls, and use the social tools they need.What are the companies afraid of?*"People will say the wrong things" - Help them say the right things. Have a social media policy. If someone says something wrong on the phone, you don't take their phone away.*"People will do other things" - And they will remain engaged. It is good to decompress, that actually makes them more productive. And giving them access to the tools makes it possible for them to get back faster to the task they are working on.Link the network of networks together. Link what you know, who you know and who you are.Give people permission, a path clear of obstacles, and they will participate. Jon Raslawski, IBMRetaining customers is linked to increased profitability.2% increase in customer retention has the same effect as cutting costs by 10%. It is…

0 Comments

Domino Designer for Eclipse

For the last few weeks, I have been working full-time in Domino Designer 8.5.2, the version based on Eclipse. I had previusly just been playing around some, but as we are upgrading to the latest version of Notes and Domino at work, I am now able to use this version almost exclusively.I am currently still doing only Classic Notes development, as we still have some users on Notes 7.0.2. Also, from what I understand, the performance of Xpages in the client is not fully where one wouold expect it. So I am holding off on putting Xpages into production for a little bit longer.So what is my impression of Domino Designer for Eclipsethis far?Both good and bad, but the good is far outweighing the bad.Let's look at a fewkey points. PerformanceI went from a3 year old Core2 Duo @2.0 GHz and 1 GB of RAM running Windows XP to a Core2 Duo @3.06 GHz and 8 MB of RAMrunning Windows 7 (64-bit). Performance is obviously better, partially due to more memory and partially from the new computer being a clean install, but honestly it is not a huge difference. StabilityI recently switched from 7.0.2 to 7.0.3 on my old system. I am not sure if it was because of that,because the computer needed to be rebuilt (I saw a lot of other issues) or because of the code I wrote,butDesigner kept crashing fairly frequently. I still manage to crash Designer 8.5.2, but not as frequently (unless I do really weird things with lists). FunctionalityThere are a few things I love about DDE, and a few things that really irritates me.Let's start with the negative ones.You have to double click on design element groups in order to see themin the right pane. For example, if you want to see all agents, in earlier versions of Designer you simply clicked on "Agents" and they were displayed in the right pane. In DDE you have to double click. Very annoying, and slowing me down.  I love the working sets. Using them makes it much easier for me to organize databases applications I work on, for example for different departments. If you are not using this gem, take a look at it right away!There are several other little gems, like the asterisk (star) in the tab when adesign element is dirty (has been modified) and need to besaved. I like the tabsin the bottom pane, with properties, events and problems. And one of the features i like the most is the real-time compilation and that errors are being displayed at once. I like the popup help in the Lotusscript editor when I hover over a function, but I am not happy with how F1 works, it usually just opens a generic help page about the editor.Also frequently the code completion tooltip is not showing up. I am not sure if this has to do with the fact that I (like probably most developers these days) use two monitors side-by-side. ConclusionMaureen and her team has done a good job, and…

0 Comments

Import CSV from Excel into Notes documents

The other day there was a post on LinkedIn regarding importing Excel data into Notes documents. Someone suggested to save into Access format, and then export from there intosome 1-2-3formatthat Notes can read. I suggested to save the Excel spreadsheet as a CSV file, and then import it. So I decided to write a small generic importer. I built a class called "csvFile", which I put in a script library called "Class.ImportCSV". Below is the code for the actual import agent. It creates a new csvFile object, which load all the CSV data into an array in memory. Each array element is in turn a class, containing a list of entries. This is because you can not create arrays of arrays or lists, they have to be in another object/class. If you know the row number and column label (the first row in the CSV file will be considered the column labels), you can address the value like this: csvfile.row(r).entry("ColumnLabel"). Option Public Option Declare Use "Class.ImportCSV" Sub Initialize ' *** Import CSV file and create matching documents in Notes ' *** By Karl-Henry Martinsson, April 8, 2010 Dim session As New NotesSession Dim db As NotesDatabase Dim doc As NotesDocument Dim csvfile As csvFile Dim rowcnt As Long Dim r As Long Set db = session.CurrentDatabase Set csvfile = New csvFile("c:\Book1.csv") rowcnt = Ubound(csvfile.row) + 1 ' *** Loop through the rows and create a new document for each For r = Lbound(csvfile.row) To Ubound(csvfile.row) If (r+1 Mod 10) = 0 Then ' Update status bar every 10 documents Print "Importing " & r+1 & " of " & rowcnt End If Set doc = New NotesDocument(db) Call doc.ReplaceItemValue("Form", "MyFormName") ' *** Loop though entries for the row and populate corresponding fields in doc Forall e In csvfile.row(r).entry Call doc.ReplaceItemValue(Listtag(e), e) End Forall Call doc.Save(True,False) Next End Sub Here is the script library. Simply create a new script library, call it "Class.ImportCSV" and paste the code into it's Declaration section: ' *** Created by Karl-Henry Martinsson on 2010-04-08 ' *** Email: TexasSwede@gmail.com ' *** Blog: http://blog.texasswede.com ' *** ---------------------------------------------------------- ' *** You are free to modify and edit this code, but please keep ' *** all comments intact, and publish any changes you make so ' *** the Lotus community can benefit. You are allowed to use ' *** this code in commercial/closed source products, but are ' *** encouraged to share your modifications. ' *** Disclaimer: Use this code at your own risk. No warranties ' *** what so ever. Don't run code you don't know what it does. ' *** ---------------------------------------------------------- Class RowData Public entry List As String End Class Class csvFile Public row() As RowData ' Storing the rows in the imported CSV file Public column List As String ' List containing column labels Private fileno As Integer ' File number Public Sub new(filename As String) Dim temprow As String Dim temparr As Variant Dim fixedarr() As String Dim i As Integer Dim flagQuoted As Integer fileno…

5 Comments

Domino Designer Frustrations

I have a database template (I am still on Notes 7.0.3, so I will keep using "database" for now), containing a number of forms, views, script libraries and agents. A whole lot of them, actually. Over the years I found out that occasionally I have to use the recompile all function to get changes in script libraries to be recognized. This is the result:   Well, I open the forms (these are all forms) and save them again. No error/warning. I make some small changes to the code. No error/warning. I change the order the script libraries are loaded. No error/warning. I open the script libraries, make a small change and save them again. No error/warning. Finally I open the database using Domino Designer 8.5.2, perform yet another recompile all, and I now see five (5) warnings/errors at the bottom. I still am not able to locate the actual error, Domino Designer 8.5.2 is not giving me enough to work on. So either I am very stupid, or there is something buggy with the recompile all function in Domino Designer... Anyone can shed any light on what might be going on? I am sure it is related to the script libraries, some of them contain references to other script libraries in turn. 

0 Comments

Coolest Calculator Ever – and now you can have it!

I have been using HP calculators since the mid-70's, when my cousin (who worked for Hewlett-Packard in Sweden) brought an HP-21 to us. When I was in 8th grade and we finally were allowed to use calculators during math class, I purchased the HP-15C, a programmable scientific calculator. In 1987, when I was in high school, the HP-28C was released, and I got it as soon as it came out. The next year I upgraded to the improved HP-28S (32kB instead of 2kB and a 1 MHz processor instead of 640 kHz). Both were clamshell designs. I also got a HP 82240B infrared printer, which used thermal paper.In April 1990 I was getting the HP-48SX as soon as it came out. I could use the same infrared printer I already had, and I also got an expansion memory card (128 kB, I believe). I used this calculator for many years, and still have it, even if it is not working fully, due to a faulty on/off switch (which seems to be a known issue on these old units). My next project will be to open my calculator and fix this problem...The HP-48SX had a serial port, built-in Kermit file transfer and infrared communications. There was a large set of programs and utilities available on several bulletin board systems (BBS) and later on the Internet. Most notable were Joe Horn's Goodies disks. Many programs can be found at hpcalc.org.Back in the late 1990's I found some emulators that let me run a HP-48 on my Windows computer. It required a ROM image from the original calculator, which I of course still had. Then in 2000, HP released the ROM images for free downloads. Very cool!The emulators have evolved, and now everyone can get a HP48SX, or it's successors 48G and 48GX, on their desktop. It is actually very simple. You just need three small downloads to do this:* The free Emu48 emulator by Christoph Gie?link* AHP-48SX ROM image* A photo realistic skin, for example this one by Arno Kuhl or the one to the right by GrowikSimply unpack the Emu48 installer and run it. Put the ROM image in the Emu48 directory and use the convert.exe program to convert the ROM image. Then copy the files for the skin into the same directory. Launch the program, and you have a really cool calculator. Everything works, including programming! More skins, as well as other programs, can be found at hpcalc.org.HP calculators, with the exception of the business models (designated by a B in the model name) use Reverse Polish Notation (RPN). It is a faster and better way to calculate, especially more complex computations, but can be confusing to non-engineers/technical users. I highly recommend to learn this, though.So go get this calculator for your computer and start playing! 

0 Comments

Creating pre-existing affinity by home usage

From Google Apps: A Love Story:Blame the consumerization of IT. BI-LOs users learned how to use Google Apps and similar Web applications in their personal lives. According to an internal company survey, 30% of employees already used Gmail at home and another 25% used a different Web-based e-mail service, like Windows Live Hotmail or Yahoo Mail. That familiarity translated into prior training -- training the company didn't have to pay for -- and pre-existing affinity for the cloud.In my eyes this is another good example of why there is a need for some kind of scaled down home version of Lotus Notes, with POP/IMAP support and possible connections to the most popular webmail providers, like Gmail, Hotmail and Yahoo. It must also be possible to combine all mail into one inbox, no matter the origin, and reply to mail making it look like it is sent from the correct service. So if I respond to a mail sent to my Gmail address, my reply will have my Gmail address as sender as default. Of course, I want to be able to change that before sending. 

0 Comments

Today my mom would have turned 85

Today would have been the 85th birthday of my mom, Marie-Luise Martinsson (born Groeling). I recently posted a blog entry about her on the anniversary of her death.I am as old now as she was when I was born. Amazing how the time just keep passing, she has been gone longer than the times she was a part of my life. But I still remember her birthdays, how dad got her flowers and some nice gift. One year it was a nice stereo, my mom loved music and used to sing in the church choir. She also had a nice collection of music, mostly classical music. She usually made the birthday cakes herself, she was very good at baking and cooking. Happy Birthday, mom! 

0 Comments

End of content

No more pages to load