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

Upgrading my workstation with SSD drive

Posted on January 14, 2013 by Karl-Henry Martinsson Posted in Computers, Technology Leave a comment

This weekend I picked up a 120 GB Samsung SSD drive at my local TigerDirect. It was on sale, $89.99 plus sales tax, so the final cost ended up being just below $100. I also had to get an adapter for 2.5″ form factor to 3.5″ drive bay. My hope is that this will give me enough of a performance boost to avoid having to spend many hundreds of dollar on a new, faster processor, a new motherboard and new memory.

Yesterday afternoon I installed it in my disktop, and started reinstalling Windows 7. I decided to perform a clean install, as it has been almost 2 years since I installed the operating system, and I noticed some slowness (especially during boot time) compared with when the system was new.

The important thing to remember about SSD drives is that they have a limited number of writes. I will only install the operating system and any major pieces of software (Lotus Notes, LibraOffice, Photoshop, Sony Vegas and a few more that I constantly use) on that drive. All data, including the Notes Data data directory and the Windows user data (My Documents, My Pictures, etc) will be located on my D-drive, which is a traditional harddisk. I also put the Windows swap file on that drive.

Mike Brown posted the other day about his frustrations installing Windows 7, also on a SSD drive. I always disconnect all other drives anyway when reinstalling an operating system, but I suspect his issues had to do with previous installs leaving things in the boot records on drives. However, he is completely right that Microsoft ignores the possibility that someone wants to have other operating systems installed in a dual boot environment. Very annoying.
One big advantage with installing on a new drive is that I still have the old drive, with existing data (files, bookmarks, etc) so they can easily be moved over to the new installation. I also have a reference of installed software, I just have to look in the Program Files directory to find out what software I had previously installed.

I can tell a substantial decrease in startup time after the reinstall on the SSD drive, but I expected nothing less from a clean install. Now I just have to install all my other programs and see what the end result will be.

120 GB Samsung SSD drive

120 GB Samsung SSD drive

 

No Connect/Lotusphere for me this year…

Posted on January 11, 2013 by Karl-Henry Martinsson Posted in Lotusphere Leave a comment

I just got word from my boss that I will not be able to go to Connect 2013 in Orlando. This is due to financial reasons, the company is trying to save money anywhere they can. Even as the conference would only cost them $3,200 (I found a really good airfare and got offers to share a room), it was not approved (not even after I offered to pay part of the cost myself).

This will be the first time since I started going in 1998 that I won’t be in Orlando to learn new things, network and meet all my friends in the Yellowverse. This would actually have been my 17th Lotusphere (I also attended Lotusphere Europe in 1996). I am of course very disappointed, but it happens. I hope to be able to go next year, and possibly attend IamLUG or some other conference later this year.

I will be following the event through twitter and Facebook, and hopefully there will be some videos uploaded during/after the conference. Have a beer for me, and enjoy the conference. And keep the blog posts and twitter messages coming!

Code: Expanded Class for File Functions

Posted on December 21, 2012 by Karl-Henry Martinsson Posted in Lotusscript, Notes/Domino, Programming Leave a comment

Yesterday I blogged about a simple class to parse file names, and that inspired me to improve it and add some functionality, which will actually come in handy for a project at work shortly.

The class is pretty self-explanatory, there is really nothing complicated in the code.
When the class is initialized, if a path to a directory (i.e. ending with \) is passed to the constructor the directory is created if it does not exist. If the directory exist, there are functions to copy or move both single files or all files in the directory. Directories can also be deleted using the RemoveDir method.
In addition, there are properties to get the path, file name, extension and file size (in bytes) of the file (if the class was initialized with a file name).

Here is an agent with some examples of how to call the class:

Option Public
Option Declare
Use "Class.FileFunctions"

Sub Initialize
  Dim file As FileObject
  Dim cnt As Integer
  Dim success As Boolean 

  '*** Create new file object
  Set file = New FileObject("D:\Downloads\Downloads\MERP\Assassins of Dol Amroth.pdf")

  '*** Copy the file to another (new) directory
  Call file.CopyTo("D:\Downloads\MERP1\", file.FileName)

  '*** Move the file to a new location and replace space with + in file name
  Call file.MoveTo("D:\Downloads\MERP2\", Replace(file.FileName," ","+"))

  '*** Create a new directory if it does not exist
  Set file = New FileObject("D:\Downloads\MERP3\Test\")

  '*** Copy all files in specified directory to another directory
  Set file = New FileObject("D:\Downloads\Downloads\MERP\")
  cnt = file.CopyAllTo("D:\Downloads\MERP\Backup\")
  MsgBox "Copied " & cnt & " files."

  '*** Move all files in the previously specified directory to another location
  cnt = file.MoveAllTo("D:\Downloads\Middle-Earth Role Playing Game\")
  MsgBox "Moved " & cnt & " files."

  '*** Remove D:\Downloads\Downloads\MERP\
  Call file.RemoveDir("")

  '*** Remove D:\Downloads\MERP3\ and Test directory that we created earlier
  success = file.RemoveDir("D:\Downloads\MERP3\Test\")
  If success = True Then
    success = file.RemoveDir("D:\Downloads\MERP3\")
    If success = False Then
      MsgBox "Failed to delete D:\Downloads\MERP3\"
    End If
  Else
    MsgBox "Failed to delete D:\Downloads\MERP3\Test\"
  End If
End Sub

 

Below is the class itself, I put it in a script library called Class.FileFunctions.

%REM
  Copyright (c) Karl-Henry Martinsson 2012.
  Some code copyright Andre Guirard (see below).
  You are free to use and modify my code, as long as you keep
  all copyright info intact. If you improve the code, please
  consider sharing it back to the community.
%END REM

Option Public
Option Declare

Type FileDetails
  path As String
  filename As String  
  extension As String
  filesize As Long
End Type

Class FileObject
  Private file As FileDetails
  Public silent As Boolean
  
  Public Sub New(filepathname As String)
    silent = False
    FullPathName = filepathname
    If file.FileName = "" Then
      If file.Path <> "" Then
        On Error 76 GoTo parentDoesNotExist 
        'No filename but path, then we create that directory (if missing)
        If Dir$(file.Path,16)="" Then
createDirectory:  
          Call MakeDir(file.Path)
        End If
      End If
      file.FileSize = 0 
    Else
      file.FileSize = FileLen(filepathname)
    End If
    Exit Sub
parentDoesNotExist:          
    Resume createDirectory  
  End Sub
  
  
  Public Property Set FileName As String
    file.FileName = FileName
    file.Extension = StrRightBack(FileName,".")
  End Property
  
  Public Property Get FileName As String
    FileName = file.FileName  
  End Property
  
  
  Public Property Get Extension As String
    Extension = file.Extension  
  End Property
  
  Public Property Set Extension As String
    file.Extension = Extension   
  End Property
  
  
  Public Property Set FilePath As String
    file.Path = FilePath  
    If Right(file.Path,1)<>"\" Then
      file.Path = file.Path & "\"
    End If
  End Property
  
  Public Property Get FilePath As String
    FilePath = file.Path  
  End Property
  
  
  Public Property Set FullPathName As String
    Me.FilePath = StrLeftBack(FullPathName,"\")
    Me.FileName = StrRightBack(FullPathName,"\")
  End Property
  
  Public Property Get FullPathName As String
    FullPathName = file.Path & file.FileName  
  End Property
  
  
  Public Function CopyTo(ByVal newpath As String, ByVal newname As String) As Boolean
    '*** Check if both arguments are blank, then exit
    If FullTrim(newpath) = "" Then
      If FullTrim(newpath) = "" Then
        CopyTo = False
        Exit Function
      End If   
    End If
    If FullTrim(newpath) = "" Then
      newpath = file.Path
    End If  
    If FullTrim(newname) = "" Then
      newname = file.FileName 
    End If  
    Call MakeDir(newpath)
    On Error GoTo errHandlerCopyTo
    FileCopy me.FullPathName, newpath + newname
    If silent = False Then
      Print "Copied " & filename & " from " & file.Path & " to " & newpath
    End If
    CopyTo = True
exitFunctionCopyTo:
    Exit Function
errHandlerCopyTo:
    CopyTo = False
    Resume exitFunctionCopyTo
  End Function
  
  
  Public Function MoveTo(ByVal newpath As String, ByVal newname As String) As Boolean
    '*** Check if both arguments are blank, then exit
    If FullTrim(newpath) = "" Then
      If FullTrim(newpath) = "" Then
        MoveTo = False
        Exit Function
      End If   
    End If
    If FullTrim(newpath) = "" Then
      newpath = file.Path
    End If  
    If FullTrim(newname) = "" Then
      newname = file.FileName 
    End If
    Call MakeDir(newpath)
    On Error GoTo errHandlerMoveTo
    FileCopy me.FullPathName, newpath + newname
    Kill me.FullPathName
    If silent = False Then
      Print "Moved " & filename & " from " & file.Path & " to " & newpath
    End If
    
    MoveTo = True
exitFunctionMoveTo:
    Exit Function
errHandlerMoveTo:
    MoveTo = False
    Resume exitFunctionMoveTo
  End Function


  Public Function CopyAllTo(ByVal newpath As String) As Integer
    Dim filename As String
    Dim filecount As Integer
    '*** Check if both arguments are blank, then exit
    If FullTrim(newpath) = "" Then
      If FullTrim(newpath) = "" Then
        CopyAllTo = 0
        Exit Function
      End If   
    End If
    If FullTrim(newpath) = "" Then
      newpath = file.Path
    End If  
    Call MakeDir(newpath)
    On Error GoTo errHandlerCopyAllTo
    filename = Dir$(file.Path,2)  ' Include hidden files
    Do until filename=""
      FileCopy file.Path + filename, newpath + filename
      If silent = False Then
        Print "Copying " & filename & " from " & file.Path & " to " & newpath
      End If
      filecount = filecount + 1
      filename = Dir$()
    Loop
    CopyAllTo = filecount
exitFunctionCopyAllTo:
    Print "Copied " & filecount & " files"
    Exit Function
errHandlerCopyAllTo:
    CopyAllTo = filecount
    Resume exitFunctionCopyAllTo
  End Function

  Public Function MoveAllTo(ByVal newpath As String) As Integer
    Dim filename As String
    Dim filecount As Integer
    Dim deletelist List As String
    '*** Check if both arguments are blank, then exit
    If FullTrim(newpath) = "" Then
      If FullTrim(newpath) = "" Then
        MoveAllTo = 0
        Exit Function
      End If   
    End If
    If FullTrim(newpath) = "" Then
      newpath = file.Path
    End If  
    Call MakeDir(newpath)
    On Error GoTo errHandlerMoveAllTo
    filename = Dir$(file.Path,2)  ' Include hidden files
    Do Until filename=""
      FileCopy file.Path + filename, newpath + filename
      If silent = False Then
        Print "Moving " & filename & " from " & file.Path & " to " & newpath
      End If
      deletelist(filename) = file.Path + filename
      filecount = filecount + 1
      filename = Dir$()
    Loop
    Print "Cleaning up..."
    ForAll f In deletelist
      Kill f  
    End ForAll
    MoveAllTo = filecount
exitFunctionMoveAllTo:
    Print "Moved " & filecount & " files"
    Exit Function
errHandlerMoveAllTo:
    MoveAllTo = filecount
    Resume exitFunctionMoveAllTo
  End Function

  Public Function RemoveDir(ByVal dirpath As String) As Boolean
    '*** If blank, use the path in object
    If FullTrim(dirpath) = "" Then
      dirpath = file.path
    End If
    On Error GoTo errHandlerRemoveDir
    RmDir dirpath
    RemoveDir = True
exitRemoveDir:        
    Exit Function
errHandlerRemoveDir:
    RemoveDir = False
    Resume exitRemoveDir
  End Function
  

  ' ===== Private Supporting Functions =====  
  
  Private Sub MakeDir(Byval strWhere As String)
    ' *** This code by Andre Guirard @ IBM
    ' *** http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/recursive-mkdir-vs.-iteration
    ' *** Using an iterative method instead of recursive due to stack issues (see link above)
    On Error 76 Goto parentDoesNotExist 
    Dim stack$ 
    Const NL = { 
} 
    Do 
      Mkdir strWhere 
      On Error Goto 0 ' first success, stop trapping errors; avoid infinite loop. 
      strWhere = Strleft(stack, NL) ' "pop" a path for next iteration 
      stack = Mid$(stack, Len(strWhere)+2) 
failed: 
    Loop Until strWhere = "" 
    Exit Sub 
parentDoesNotExist: 
       ' This error code can indicate other problems, but assume missing parent. 
       ' If not, we get a different error (75) later when trying to create the parent. 
    Dim fpath$, fname$ 
    SplitFilepath strWhere, fpath, fname 
    If fpath = "" Then Error 76, "Invalid path: '" & strWhere & "'" 
    stack = strWhere & NL & stack ' "push" onto stack to retry later. 
    strWhere = fpath ' try a path one step shorter. 
    Resume failed 
  End Sub 

  
  Private Sub SplitFilePath(Byval fullpath$, dirpath$, filename$) 
    ' *** This subroutine by Andre Guirard @ IBM
    ' *** http://www-10.lotus.com/ldd/bpmpblog.nsf/dx/recursive-mkdir-vs.-iteration
    ' *** Called from MakeDir()    
    Const DELIMS = {/\:} 
    While Instr(DELIMS, Right$(fullPath, 1)) ' discard final delimiter character... 
      fullpath = Left$(fullpath, Len(fullpath)-1) 
    Wend 
    Dim candidate$, i% 
    filename = Strtoken(fullpath, Left$(DELIMS, 1), -1) 
    For i = 2 To Len(DELIMS) 
      candidate = Strtoken(fullpath, Mid$(DELIMS, i, 1), -1) 
      If Len(candidate) < Len(filename) Then 
        filename = candidate 
      End If 
    Next 
    Dim fplen% 
    fplen = Len(fullpath)-Len(filename) 
    If fplen > 0 Then fplen = fplen - 1 
    dirpath = Left$(fullpath, fplen) 
  End Sub
  
End Class

 
Enjoy!
 

Code: Simple class for parsing file names

Posted on December 20, 2012 by Karl-Henry Martinsson Posted in Uncategorized 1 Comment

In the developerWorks forum for Notes 8, a user asked about how to check if a file (in this particular instance attached to a Rich Text Lite field) is an Adobe PDF file. The easiest (but of course not fool proof) way is to simply check the extension of the file name.

That reminded me that I have a simple Lotusscript class with some file functions that would simplify the parsing of a filename, if you want to get the path, the file name or just the extension. I thought that perhaps more people could use this, so I am posting it below. Thanks to Andre Guirard for the code to create directories. That is a function I sometimes need when working with files, so I added that to the class for my convenience.

Option Public
Option Declare

Class FileObject
  Private p_FileName As String
  Private p_FilePath As String
  Private p_Extension As String

  Public Sub New()

  End Sub

  Public Property Set FileName As String
    p_FileName = FileName
    p_Extension = StrRightBack(FileName,".")
  End Property

  Public Property Get FileName As String
    FileName = p_FileName	
  End Property

  Public Function Extension() As String
    Extension = p_Extension	
  End Function

  Public Property Set FilePath As String
    p_FilePath = FilePath	
    If Right(p_FilePath,1)<>"\" Then
      p_FilePath = p_FilePath & "\"
    End If
  End Property

  Public Property Get FilePath As String
    FilePath = p_FilePath	
  End Property

  Public Property Set FullPathName As String
    Me.FilePath = StrLeftBack(FullPathName,"\")
    Me.FileName = StrRightBack(FullPathName,"\")
  End Property

  Public Property Get FullPathName As String
    FullPathName = p_FilePath & p_FileName	
  End Property

  Public Sub MakeDir(Byval strWhere As String)     
    ' *** This code by Andre Guirard @ IBM
    ' *** http://planetlotus.org/profiles/andre-guirard_22584
    ' *** Using an iterative method instead of recursive due to stack issues (see link above)
    On Error 76 Goto parentDoesNotExist 
    Dim stack$ 
    Const NL = { 
} 
    Do 
      Mkdir strWhere 
      On Error Goto 0 ' first success, stop trapping errors; avoid infinite loop. 
      strWhere = Strleft(stack, NL) ' "pop" a path for next iteration 
      stack = Mid$(stack, Len(strWhere)+2) 
failed: 
    Loop Until strWhere = "" 
    Exit Sub 
parentDoesNotExist: 
    ' This error code can indicate other problems, but assume missing parent. 
    ' If not, we get a different error (75) later when trying to create the parent. 
    Dim fpath$, fname$ 
    SplitFilepath strWhere, fpath, fname 
    If fpath = "" Then Error 76, "Invalid path: '" & strWhere & "'" 
    stack = strWhere & NL & stack ' "push" onto stack to retry later. 
    strWhere = fpath ' try a path one step shorter. 
    Resume failed 
  End Sub 

  ' ===== Private Supporting Functions =====

  Private Sub SplitFilePath(Byval fullpath$, dirpath$, filename$) 
    ' *** This subroutine by Andre Guirard @ IBM
    ' *** http://planetlotus.org/profiles/andre-guirard_22584
    ' *** Called from MakeDir()		
    Const DELIMS = {/\:} 
    While Instr(DELIMS, Right$(fullPath, 1)) ' discard final delimiter character... 
      fullpath = Left$(fullpath, Len(fullpath)-1) 
    Wend 
    Dim candidate$, i% 
    filename = Strtoken(fullpath, Left$(DELIMS, 1), -1) 
    For i = 2 To Len(DELIMS) 
      candidate = Strtoken(fullpath, Mid$(DELIMS, i, 1), -1) 
      If Len(candidate) < Len(filename) Then  				
        filename = candidate
      End If
    Next
    Dim fplen%
    fplen = Len(fullpath)-Len(filename)
    If fplen > 0 Then fplen = fplen - 1 
    dirpath = Left$(fullpath, fplen) 
  End Sub
End Class
 

IBM Notes & Domino 9.0 Social Edition – Public beta now available!

Posted on December 13, 2012 by Karl-Henry Martinsson Posted in IBM/Lotus, Notes/Domino Leave a comment

Today, one day before the day previously mentioned, IBM have made the public beta of IBM Notes and Domino 9.0 Social Edition available for download. This is perhaps because of the fact that tomorrow is the opening day here in the US for The Hobbit, and IBM figured that all us geeks will go watch that instead of playing with the latest version of Notes.

This is what IBM says about the new version:

IBM Notes and Domino 9.0 Social Edition Public Beta isa preview of the next release of Notes, iNotes, Domino Designer, Domino and Notes Traveler. IBM Notes and Domino software puts you on a solid path to becoming a social business. IBM Notes and Domino 9.0 Social Edition Public Beta provides significant new social capabilities including :

  • Activity streams: allow you to view and take action quickly on content and events
  • Embedded Experiences: allow you to access business critical actions from other applications without leaving your email. This brings collaboration in-context and results in tighter integration across iNotes, Connections, Notes, app dev (XPages), and 3rd-party products and services
  • Contemporary user interface, simpler navigation, easier to locate information both in Notes and iNotes
  • IBM Notes Browser Plug-in: allows rapid delivery of IBM Notes Social Edition applications to the web
  • Incorporation of a social application container, based on the OpenSocial standard, which provides for development of a reusable set of “gadgets” from both IBM and third parties
  • Inclusion of the XPages Extension Library which greatly improves developer productivity when building collaborative workflow driven applications for web, mobile web and Notes
  • Domino Designer provides a new home page, editor enhancements and a server-side JavaScript debugger for use with XPages
  • Enhancements to Domino REST services and new Calendaring and Scheduling APIs
  • Domino integration: SAML, OAuth
  • Notes Traveler: Windows Phone 7.5/8; BlackBerry 10 BES support; IBM i Server

There are already some screenshots available online, and I plan to look closer at the product over the weekend and next week. I am currently downloading the 2GB of files I need…

Downloading Notes & Domino 9.0

Swedish Christmas buffet at IKEA

Posted on December 7, 2012 by Karl-Henry Martinsson Posted in Food Leave a comment

For us Swedes living abroad, the Christmas food is probably what we miss the most. IKEA, the Swedish furniture company, organize “julbord” at their stores, which is very popular with us ex-patriates. I just finished my yearly pilgrimage to Frisco, TX to have herring, salmon, meatballs and other traditional dishes.

image

I think most people don’t realize all the little special things they will miss when living in another country.
I like living in the US, but still miss Swedish food.

New LEGO sets: The Hobbit

Posted on December 7, 2012 by Karl-Henry Martinsson Posted in LEGO Leave a comment

LEGO have now released their building sets based on the upcoming movie The Hobbit: An Unexpected Journey, which will premiere shortly.

There are six different sets:

79000 – Riddles for the Ring, 105 pieces, $9.99
79001 – Escape from Mirkwood Spiders, 298 pieces, $29.99
79002 – Attack of the Wargs, 400 pieces, $49.99
79003 – An Unexpected Gathering, 652 pieces, $69.99
79004 – Barrel Escape, 334 pieces, $39.99
79010 – The Goblin King Battle, 841 pieces, $99.99

79003 – An Unexpected Gathering

There are also talks about more sets in the Lord of The Rings series coming in 2013, as are surely additional sets in the Hobbit series when the next movie in the Hobbit trilogy is released in December 2013.

 

Update:

When I visited Toys”R”Us today, I found a small set not listed on the Lego website. It does not have a name, but the 31 piece set has the number 30213 and contains Gandalf with a map, a sword and a small part of a ruin with a skull, a torch and a spear. It comes in a small plastic bag, just like the Bilbo with fireplace set that was available for a while this fall.

30213 – Gandalf with map (click for larger version)

HP Calculators on Android, iPhone and Windows

Posted on December 4, 2012 by Karl-Henry Martinsson Posted in Technology 3 Comments

I think most would agree that Hewlett-Packard made the best handheld calculators ever, epecially in the scientific market. The financial HP-12C, introduced in 1981, is still being manufactured today. Some financial companies still issue those calculators to their staff.

Emu48 for Windows

My personal history with HP goes back to my early childhood. Back in 1974-75, my cousin moved from Blekinge in southern Sweden to Stockholm after getting a job at Hewlett-Packard. For the first few months he lived with me and my family, until he was able to find an apartment. Through him, I got to see some early computers, once he brought home a computer, a plotter and a very early aucoustic modem. He connected it to a server back at HP and downloaded pictures to print on the plotter.
He also got my family our first calculator, an HP-21. It was the non-programmable version of the HP-25, with red LED display and rechargable battery pack.

In 8th grade we were allowed to start using calculators in math. So I got the then brand new HP-15C, a scientific programmable calculator that still is one of the best calculators ever made. I used it for a couple of years, and then switched to HP-28C and then (the next year) I upgraded to the HP-28S, with more memory. I also got the battery-operated infrared printer, HP82240A.

Finally, in 1990, I bought my last HP calculator, the HP-48SX. It was the replacement to HP-28S, and was later upgraded to become HP-48GX.

There was always a fairly large community dedicated to HP calculators. There were disks with programs (Joe Horn’s Goodies Disks) and all kind of information, including how you could open your calculator and solder on more memory… I also had several friends who used HP calculators, but the big majority of the students in my school did not understand the Reverse Polish Notation (RPN) used by HP on all their calculators except the financial models. That could be a good thing, as nobody ever asked to borrow my calculator when they forgot their own…

HP-48SX Emulator for Android

There are several emulators for HP calculators available, both for computers and for smartphones.

In Windows I use the wonderful Emu48 by Christoph Giesselink . It requires a copy of the ROM from a HP48SX or GX (depending on which calculator you want to emulate). The good news is that since 2000, Hewlett-Packard are generous enough to allow the use of ROM files even if you don’t own a calculator.

On my Android phone, until recently I used the Droid48 emulator . It is a HP48GX emulator, but it also has a HP-48SX mode with a simplified look. However, the other day I found a modified version of it called Droid48sx that looks just like the real thing.

There is also an emulator for HP48GX for the iPhone, called i48. Just like the other emulators it is based on the open source x48 project.

If you want a user/programming manual for the HP-48, the users guide for the 48G/GX is here and the advanced users reference manual is here.

There are also emulators for many other HP calculators, including HP-12C and HP-15C versions for Android which you have to pay for. There are free emulators for HP-18B/28C and HP-28S/42S, and many more.

Finally I want to share a picture of my HP-48SX, manufactured in the second week of 1990 (according to the serial number) and my 82240A printer (manufactured week 31 of 1987).

My HP-48SX calculator and 82240A printer

Useful Android Apps

Posted on December 3, 2012 by Karl-Henry Martinsson Posted in Mobile Phones Leave a comment

Recently several of my friends have been getting the Samsung Galaxy S3, the same phone that I got back in June. One of the first questions is if I have any advice on good apps to get. So I wanted to share a few of my favourite apps.

 

Battery Doctor

This app helps improving the battery life on the S3, and also modify how the charging is done. I have noticed a longer battery life since I installed this app.

 

Waze

A social driving and navigation app. Users report traffic issues, police checkpoints, objects on road and other hazards, and you get up-to-date information that can help you avoid traffic jams, accidents, etc. A must for anyone driving.

 

Glympse

Vowe wrote about this last summer. It is a great way to share your location on a temporary basis. Perhaps you want to let someone know where you are, but just for a short time, not allow the person to track you forever.

 

Google Earth

I think everyone knows about this app, so I don’t think I need to tell more about it.

 

Kingsoft Office

This free app let you view and edit Office documents on your phone. It can access files stored on the phone as well as on cloud storage like Dropbox and Sugarsync.

 

ES File Explorer

Explore and open files on your local device, on your network and even in your cloud storage. It also includes an ftp client. I often use this app to copy files (movies, music) from my network shares to my phone.

 

Cloud Storage

This brings us to different cloud storage services. I use several, they all work pretty much the same. Most of them not only allows you to upload/download files from your phone, but can also be connected to the camera app, so all photos you take automatically get uloaded to teh cloud storage, which is a great way to automatically backup your photos.

You need to setup accounts with each service, and it is a good idea to also download a desktop client for your regular computer(s). These services are great to let you get to certainfiles, no matter where you are.

 

Dropbox

Website: www.dropbox.com
Client download: www.dropbox.com/downloading

You get 2GB for free, and can purchase more space if you like. You also get more space if you refer someone to Dropbox, and that person also get 500MB extra. So if you are not already a Dropbox user, click here and you will get 2.5GB instead of just 2GB with your free sign up. And I will get some extra storage. :-)

 

SugarSync

Website: www.sugarsync.com
Client download: www.sugarsync.com/beta

You get 5GB for free, and the Android app can be set to automatically upload your photos to the cloud for instant backup. You can also, like on the other services, share files with friends or family directly from the phone. If you sign up here it will also give me a little bit extra storage.

 

Google Drive

Website: drive.google.com
Client download: tools.google.com/dlpage/drive

Google also give you 5GB of free storage. Use your regular Google account for this service.

 

SkyDrive

Website: skydrive.live.com
Client download: Windows Mac

Microsoft’s cloud storage is called SkyDrive, and you get 7GB for free (the most of any of the services). If you signed up early (before April, 2012), you got 25GB for free.

 

Reference and Travel

A smartphone is a great tool to find information while on the go, so I always install the apps for Wikipedia and IMDb (Internet Movie Database). I use Kayak.com to find inexpensive airfares, and they also have a nice  app. While we are on the subject of travel, SeatGuru is a website where you can find out what the good and bad seats are on different airplanes. The app let you not only look at the seating maps for hundreds of airplanes from different airlines, you can also track flights and see if there are any delays.

 

Geeky Apps

Ever since I started using calculators, I have been a fan of HP and their RPN calculators. I still have my old trusty HP-48SX at home, but I now mostly use the Droid48sx app on my phone. It is a modified version of Droid48 (an HP-48GX emulator, which also has a 48SX mode). If you want a powerful technical/scientific calculator on your phone, look no further.
Another app I like is Wifi Analyer. It let you check what hotspots are around, what channels they use, and help you get better connectivity by chnaging your channel to a less crowded one.
Atooma is a very cool app, it let you program different triggers that will automate functions on your phone. For example, I created a rule that says “if charger is connected and time is between 9pm and 6am, set ringer to silent”. Another rule says “if leaving home (as defined by GPS location), turn on bluetooth and torn off wifi”.

 

The last two apps I want to mention are Skype, so I can use my phone to talk to friends and relatives all over the world for free (if they have Skype) or very inexpensive if I have to call a regular phone number, and Spotify, which let me listen to music everywhere. For Spotify, you need a Premium account in order to use the otherwise free app. The app lets you download the songs on your playlists to the phone while connected to wifi, so you don’t waste your data plan to stream music.  Interesting enough, both services are originally created in my native Sweden.

 

I use more apps than the ones I listed above, like the WordPress app to update/maintain my blog, but I wanted to list the more generic ones. I am also not listing any IBM/Lotus specific ones, like the Connections or Sametime apps. But if you have use Lotus Notes at work for email, make sure you talk to your network administrator about getting access to Traveler.

 

Update: Blog comments working again!

Posted on November 30, 2012 by Karl-Henry Martinsson Posted in Blogging, WordPress Leave a comment

I got the comments working again, all existing comments are being displayed properly.

So feel free to comment again. And just as a reminder, my policy for comments are copied below.

My policy on comments

I require a real name (or well-known handle) and a real email address. If the address sounds bogus or made up, I reserve the right to delete the comment. Same thing for trolls. You can be critical of what I write about, but then you must come with some valid arguments. Just saying “Notes sucks”, “Android sucks”, or anything similar is not constructive. If you think a product I write about is not good, explain why.

 

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
  • …
  • 23
  • 24
  • 25
  • 26
  • 27
  • …
  • 54
  • Next

Administration

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

Tracking

Creeper
MediaCreeper
  • Family Pictures
© TexasSwede 2008-2014