Archive for the ‘Software’ Category

h1

Get on the Bus with Microsoft

October 29, 2009

This post has now been migrated to ThoughtAsylum.com.

Follow this link to go directly to the article.

h1

DokuWiki Sync

August 15, 2009

This post has now been migrated to ThoughtAsylum.com.

Follow this link to go directly to the article.

h1

Sharing Ideas and Good ICT

April 5, 2009

A few weeks ago I gave a presentation I’d been trying to put together for the best part of six months and this evening I’ve sent it on to the users who attended and who were unable to attend but showed an interest.  I realised at this point I hadn’t actually blogged about it so I thought I might put together a little post about it.

The aim was simply to share some ideas and some bits of ICT that could help people do their jobs quicker/better/cheaper/economically/more easily.  Many of these were based upon queries from users and solutions  found or in some cases pre-emptively finding options for issues that have yet to be raised.

A note was put into the staff briefing and some posters put up around the office to try and get people along to the presentation.  The attendance was surprisingly low and it’s unfortunate in terms of what people missed out on but I thought I’d highlight the areas that were discussed and some high level points on what was demonstrated and discussed.

The presentation was split into four main sections – software, hardware, web sites and engaging with the ICT team.

Software

  • Skype
  • Working with PDFs
    • Microsoft Office plug ins
    • PDF printers
    • PDF Bulder Toolkit
    • Drawloop.com
  • Public Folders in Outlook

Hardware

  • Photocopiers
    • Printing
    • Scanning
    • Secure printing & scanning
  • Data Capture
    • Dictaphones
    • Digital cameras
    • DigiMemo
    • MIMIO
  • Communication
    • Teleconferencing units
    • Audio/telephony cabling

Web Sites

Engaging with ICT

  • Service Desk
    • Queries
    • Training
  • Invitation
    • Project meetings
    • Team meetings
  • Communications
    • Presentations
    • Briefings
    • Mailings
    • Bulletins
    • Newsletters

I don’t plan on publishing the presentation widely as much of it is only directly relevant to Academy ICT users in the way it is presented, but the outline above gives an indication of the content and areas in which the user community is developing.

Hopefully some imminent developments might help create a greater sharing of such ideas and information within a community and build a better culture of knowledge sharing and management.

h1

Processing a Folder of Files

March 29, 2009

A few days ago I was speaking to one of my users about creating some PDF files from Microsoft Word and securing them so that they can’t be copied or printed.  Rather than using expensive software from Adobe or a generic creator like CutePDF I recommended using the add-in for Word 2007 that Microsoft provide as it provides some useful accessibility options (thanks to JISC TechDis for highlighting that one to me).

Unfortunately the add-in doesn’t have an option to secure a PDF so that’s where using a tool like PDFTK can help.  Being a command line tool though and the user having to produce more than 100 PDFs meant that a little help could come in handy.   Making use of the select folder VBScript I refined a little while ago, I created a generic VBScript to take a folder selection from a user and a command line operation via a simply single line input box to then process every file in the folder using the command line.

A percentage symbol is used as a place holder for the file path to be substituted into and any file paths for the command line (with the exception of the substitution – %) should include double quotes where there are spaces in the path.

Option Explicit

Dim strFolder, strRootFolder, strBaseCommand

'Get the information and process it
strRootFolder = SelectFolder("Select folder containing files to be processed:")
strBaseCommand = InputBox("Enter the command line to run against all files." & vbCrLf & "Place a percentage symbol (%) where the filename will be substituted")
ProcessFolder strRootFolder

'------------
'SUB ROUTINES
'------------

'Identify each file in a folder and run the specified command against it.
Sub ProcessFolder(pstrFolder)
	Dim objCurrentFolder, objFile
	Dim colFilesInFolder
	Dim strCommand
	Dim objWSHShell, objFSO

	'Initialise
	Set objWshShell = Wscript.CreateObject("Wscript.Shell")
	Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")
	Set objCurrentFolder = objFSO.GetFolder(pstrFolder)
	Set colFilesInFolder = objCurrentFolder.Files

	For Each objFile in colFilesInFolder
		strCommand = Replace(strBaseCommand,"%","""" & objFile.Path & """")
		objWSHShell.Run strCommand
	Next
End Sub

'---------
'FUNCTIONS
'---------

Function SelectFolder(pstrDialogLabel)
	'Select a folder
	Const BIF_returnonlyfsdirs   = &H0001
	Const BIF_editbox            = &H0010

	Dim objBrowseFolderDialog, objFolder, objFSO, objSelection
	Dim bBrowseForFolder

	Set objBrowseFolderDialog = WScript.CreateObject("Shell.Application")

	bBrowseForFolder = true

	While bBrowseForFolder
		Set objFolder = objBrowseFolderDialog.BrowseForFolder (&H0, pstrDialogLabel, BIF_editbox + BIF_returnonlyfsdirs)

		'Check that something has been returned
		If IsValidFolder(objFolder) Then
			Set objFSO = CreateObject("Scripting.FileSystemObject")

			Set objSelection = objFolder.Self
			If objFSO.FolderExists(objSelection.Path) Then
				'A valid folder has been selected
				SelectFolder = objSelection.Path
				bBrowseForFolder = false
			Else
				'The selection is not a valid folder, try again...
				MsgBox objFolder.Title & " is not a valid folder, please select another folder" _
					, vbOKOnly & vbExclamation, "Invalid Selection"
			End If
		Else
			'Nothing was selected, so return a null string
			SelectFolder = ""
			bBrowseForFolder = false
		End If
	Wend
End Function

Function IsValidFolder(pobjFolder)
	'Check that we have a valid value
	'i.e. you can concatenate it to a string
	Dim strTest

	On Error Resume Next

	strTest = " " & pobjFolder

	If Err <> 0 Then
		IsValidFolder = false
	Else
		IsValidFolder = true
	End If

	On Error GoTo 0
End Function

As it stands the folder just processes a single folder for all files (which was what I wanted), but simple amendments could allow this script to cater for specific file types (or patterns) and sub folders (a recursive call in the ProcessFolder() routine would allow this).

h1

Exchange Mailbox Limits Update Lag

March 19, 2009

Microsoft Exchange is a fairly ubiquitous system for handling e-mails and I made a surprising discovery today whilst amending a user’s mailbox storage limits … they don’t get updated straight away.

So lets take a little step back and look at storage limits.  First of all Exchange allows three size limits (in KB not number of mails) to be placed on user mailboxes. The first level triggers a warning to the user that they are approaching a limit … ironically the warning is an e-mail but it is a small one so this can be forgiven.  The second restricts the user’s permission to send mail (but they can still receive it).  The third limit actually stops any mail entering the inbox, but the mail server will keep mails queued up for a little while to give the user chance to make some space so all is not immediately lost if the user reaches this third and final limit – which can happen if someone bombards you with lots of e-mails with large attachments.

We impose limits on mailboxes for a number of reasons.  Ones that immediately come to mind for example are (in no particular order):

  1. It ensures that we have enough storage capacity on the mail server to handle all of the mailboxes.
  2. It ensures that users can’t monopolise the available storage space.
  3. It ensures that a user’s mail software remains responsive (though PST files can *really* trash this performance I also noted today).
  4. It ensures that mailboxes can be backed up and restored efficiently.

Occasionally however people have a need to have an increased mailbox size to get them through a busy period where they may be out of the office and unable to spend time housekeeping or if they are receiving a number of large attachments (e.g. during a funding bidding process or event registration).  On these occasions a temporary increase in mailbox size is authorised for an agreed period.

This isn’t a common occurrence and I’ve probably only amended mail storage limits some half a dozen times or so.  This change has always been picked up within a few minutes and until today I hadn’t realised how ‘lucky’ I’d been.

Today I discovered that Exchange actually works from a cached set of mailbox limits and that the default turn around time on this is up to a whopping two hours.  So this is something we’ll need to keep in mind in future though it may be that we might consider applying a registry change at some point to remedy this (though I think this is one to test on our development environment before making the change to the live system) or at least identify roughly at what time the cache refresh runs so that we can give our users a better idea of when the limits will take effect.

Whilst the #326252 Microsoft Knowledge Base article applies to Exchange 2000, some background reading suggests that this is applicable to later versions of Exchange too.

h1

Windows Mobile Keyboard

March 8, 2009

A little while ago I spent some time outside of work struggling with a particular application on my Samsung Omnia i900 mobile phone.  It seemed like it just didn’t work properly and I almost reported it to the developers as a bug.  Just before I did I came across another piece of mobile software and noted a very similar problem and this time something clicked and I realised what the issue really was.

The problem I was experiencing was that I could navigate within the applications using my physical pointer on the touch screen of the phone, but within some parts of the application there was just no response when tapping (or double tapping).  Using the inbuilt optical mouse button had an identical non-response.  Eventually I realised that the software had been written for Windows mobile devices that had a physical D-pad.

A D-pad (or directional pad) is typically found below the screen on a Windows mobile device and has five physical buttons.  One for return (usually in the centre) and four directional buttons (up, down, left and right).  Since the Omnia has no D-pad my next thought was to have a look through the inbuilt keyboard options for an on screen keyboard with directional buttons.

By default I use the “Samsung Keyboard” which does not have any directional buttons.  A quick search through the options showed that the “MS Keyboard” was the only one to have arrow keys.  I tried using this keyboard and it did indeed resolve the navigation issue in the applications.  the only problem is that whilst I could navigate using the physical pointer and the optical mouse with this keyboard it is slow and fiddly as the keys are simply so small.  I use my fingers to do most of my interaction with my phone so I decided to continue looking for another finger friendly solution.

My first investigation was in trying to find a “virtual” or “on screen” D-pad.  Unfortunately everyone’s favourite font of all knowledge (Google) didn’t yield any usable results and so I took a step back to see if there were any keyboards for Windows mobile that could be configured to have large directional keys.

This time my search was a little more fruitful.  PCM Keyboard is an incredibly flexible keyboard for Windows Mobile devices.  Using the Microsoft emulator for WM6, a base theme package for PCM Keyboard called “dream2“, some rough documentation and several hours of confusion and frustration later and I have managed to configure more than just a simple on screen D-pad.

My solution is “DPress” a theme for PCM Keyboard.  Copy the DPress.zip file to your Windows mobile device and place it into the same directory as your PCM Keyboard installation (check under Program Files on whichever storage area you installed PCM Keyboard to).  Select the options for installed keyboards and the options for the PCM Keyboard.  Select DPress and ensure that you select a keyboard type (qwerty and azerty are included).  Save the changes and then the likelihood is you’ll need to restart your device and reselect the PCM Keyboard as the input option to get the DPress keyboard.

Below are some screen shots on how to access the different displays of the keyboard.  Click on the thumbnail images for larger views.

The Default - lowercaseuppercaselower case keyboard left is the default keyboard view as one might expect. From here the keyboard layout can be changed through a number of key presses. The most obvious one is pressing the shift key. This will change the layout to upper case(shown on the right). Pressing and holding the shift button will enable what is in effect caps lock and the upper case layout will remain until the layout is again changed – e.g. by pressing shift once more.

A number of keys provide quick access to in-situ additional keys.  Pressing and holding vowel keys will give access to extended character sets, similarly pressing and holding space will give access to numbers, the comma button will allow access to emoticons and the return button will give access to some function buttons (options, cut, copy, paste).  Some of these are illustrated in the following screen shots.

quick-numbers quick-extended-characters quick-emoticons

Clicking the “.,123” button swaps to a numeric keypad (left image below).  Clicking and holding the period (“.”) button swaps to a symbolic keypad (middle image below).  Finally (and the one you’ve probably been waiting for) by clicking and holding the “.,123” button a D-pad is displayed (right image below).

numeric-keypad symbolic-keypad d-pad

Quite versatile for one keyboard theme on a mobile device? I think so.

I’ll be blogging about the pieces of software I had the issues with in the not too distant future, but in the meantime enjoy the DPress keyboard. It is provided as is with no guarantees and I’m sure it probably won’t display well on every Windows Mobile device, but if it doesn’t work why not modify it yourself and modify it to suit your purposes. That’s exactly what I did with the “Dream2” theme so ultimately my thanks go to the author of that theme and PCM Keyboard.

h1

Microsoft Tags vs. QR Codes

January 25, 2009

Microsoft have relatively recently launched their new “mobile tagging” beta programme.  It’s quite similar to the existing QR codes that have been around for some time and it was for this reason that it caught my attention and I decided to give Microsoft Tag an evaluation in comparison to QR codes.

For anyone unfamiliar with QR codes, they use a simple matrix of monochromatic pixels to encode a string of text.  Microsoft Tag on the other hand is a “High Capacity Colour Barcode” (HCCB) that uses five lines of a series of triangular markers coloured cyan, yellow or magenta (CYM) to encode a string of text.  The text strings contain meta data as well as data effectively identifying what the data should is and how it should be used.

So the first thing to examine are the types of ‘things’ that the two technologies could encode.  For these comparisons I’ve used the QuickMark QR Code Generator and the Microsoft Tag Beta.

Data Object QR Code Microsoft Tag
URL Yes Yes
Bookmark Yes No
Phone No. Yes Yes
SMS Yes No
E-mail Yes No
vCard Yes Yes
meCard Yes No
Generic address Yes No
Simple Text Yes Yes
Encrypted Text Yes Yes
Geographic Coordinates Yes No

Microsoft Tag has a couple of features that can be applied to each of its available options. First of all a password can be applied to apply an additional level of security.  Validation dates can also be added to any option allowing things to expire or be valid during a certain event or marketing campaign for example.

So at this first stage QR codes seem to have a greater range of ‘things’ that can be coded than Microsoft Tag, but Microsoft Tag has a few additional features that if you’re just encoding URLs may make it a better option.  One thing I would like to see that isn’t covered by these (but I guess could be if you created a URL to an appropriate file) is something relating to a an event definition – e.g. iCalendar.

The next element I examined was the generation options for the final image.

QR Codes

PNG |JPG |GIF |SVG |TXT

Microsoft Tags

PDF | WMF | XPS

The QR code generation has a range of code generation sizes (30 levels) with UTF character set options and a couple of four level (L/M/H/U) error correction options.  The Microsoft Tag generator on the other hand only offers a size changing option but rather than being level based the user can choose a code size between 0.75″ and 120″.

Whilst the Microsoft Tag file formats for code generation are based around vector graphics formats ideal for printing I personally find it useful to be able to put the codes on a web page.  I’ve frequently used QR codes on web pages to get software links or other information onto my Windows mobile phone so I think having the codes available directly as images to be published in-line on a web page to be a distinct advantage.  So for me on this one I think that QR codes definitely have the edge as I would think that SVG and WMF could be used equally well by publishers (though if there are any publishers reading this who know differently then please add a comment to this post).

At this point it’s time to look at the software used to capture the code.  I’ve used my Samsung Omnia i900 as the capture device and two separate pieces of software for the capture of the codes.  For QR codes I’ve used the QuickMark Reader and for the Microsoft Tags the Microsoft Tag Reader.  In terms of user interface the two are very similar providing a framed viewer on the phone’s camera view and both automatically capture a code when they recognise it.  On the i900 however the QR code reader is definitely the easier to use to focus over the tag as the Microsoft Tag Reader inexplicably seems to rotate the image 90° anti-clockwise making it quite disorienting just to centre the code.  However the Microsoft Tag Reader seems capable of picking out and actioning much smaller tags than a the QuickMark Reader (which was the most accurate QR code reader I’ve found).

In my tests on an reading from an X-black LCD display an 88 x 88 pixel QR code for a URL was successfully read.  A Microsoft Tag for the same information was successfully captured for just a 52 x 52 pixel tag.  Less space for successful pick-up of codes is obviously an advantage as they take up less screen or page estate and so would cost less to put on a media advert for example and scaling up is not going to be an issue.

//rebootit.wordpress.com

QR Code

rebootit-tagcolour

Microsoft Tag

rebootit-tag-greyscale

Greyscale Tag

It was at this point that I wondered about the colour aspect of the Microsoft tag system so I thought I’d have a bit of an experiment and try a simple conversion of the colour tag to a greyscale tag – after all monochromatic printing is cheaper than colour printing.  It turned out that the Microsoft Tag Reader could still capture and interpret it so it looks like the encoding may be more to do with contrasts than the actual CYM colours.  However in greyscale the same basic tag used earlier could not be recognised at 52 x 52 pixels, but it was recognised at 73 x 73 pixels which is still significantly smaller than the equivalent QR code.

The greyscale tag is 97% larger in area that the colour tag and the QR code is 186% larger than the colour tag.  It may actually be that a vCard code can now fit on the back of a business card or be displayed on a phone screen such that a code reader enabled phone can now read the vCard straight in.

So assuming that the Microsoft Tag Reader rotation issue gets resolved for the Omnia then the size benefit of Microsoft’s HCCB system gives it quite a competitive edge, and being Microsoft there’s a little more to this competitive edge….

The Microsoft Tag system relies on the reader having an internet connection as all of the encoded links actually link to information held on Microsoft servers.  QR code decoding however requires no such connection.  The benefit of the Microsoft route is that the number of uses of a particular tag can be measured and reported on – which is great.  However if you want to use it to exchange a vCard on a midlands cross country train in the UK then you won’t have an Internet connection and it just won’t work.

So which is best QR codes of Microsoft Tags?  Well I personally think that the QR code system might have reached the end of its functionality pretty much.  The future is probably in some higher capacity data format.  However QR code readers are far more prevalent on today’s phones and so I think they still have some life left in them, particularly if you consider how embedded they are in Japanese society who are undoubtedly the leaders on mobile technology.

Microsoft Tag may however be the future – after all it is a beta.  So what do I think needs further development to move forward?

  • I’d like to se the niggly camera rotation problem on my Omnia resolved (and I’ll mail it in once I’ve posted this).
  • Add more encoded formats such as e-mail, geographic co-ordinates and calendar entries.
  • The option to decode non Internet related items (such as vCards) without an Internet connection.
  • Some additional guidelines on how to use the Microsoft Tags in greyscale to optimise the recognition on the reader (for reduced publishing costs).