Back in March I updated you all on how my on-going quest for the perfect desk was coming along. Here now is another update.
Question: Can you ever have too many monitors or enough "real estate" desktop size?
Here's how my desk looks now:
From left to right, there's a (newly-added) Dell U2713H (showing OS X), a Dell U2711 and a Samsung SyncMaster 245B (both showing the same Windows 7 PC). All in there are 9,676,800 pixels glaring back at me!!
Aside from adding a brand new monitor (which, by the way is amazing and I can't recommend it enough) the main difference is that there is only one keyboard and mouse, which shared between Win and Mac using Synergy KM.
Synergy is brilliant and, again, I can't recommend it enough. It's been recommended to me on here previously, several times. Why oh why I didn't try it out before I don't know. Well, I do. It's because I don't like the idea of having to run daemons on my PCs. Which is a stupid reason and I'm so glad I saw sense.
It's like a kind of magic seeing your mouse move from Windows to Mac without even the slightest hint of a lag. For the first day or so I'd just keep needlessly moving between the two just to watch it happen. After a while it's almost possible to start thinking of them both as the same PC!
The mouse itself has to move about 3" to travel between the extremities of all three screens!
I use the Mac Mini for video editing, the occasional PHP coding (Coda 2) and for running various versions of Windows inside Parallels virtual machines for testing sites in different versions of IE. Until now, using the Mac wasn't great. The monitor was small and attached square to the wall. To use for any length of time meant moving one keyboard out the way, moving over the other and re-positioning my chair. The old monitor was also too small to do OS X justice or for any kind of effective video editing. All those issues have now been resolved.
is it my perfect desk though? No! But it's, way, way, way better than before. Not perfect though. The quest continues...
My sis-in-law loves a bargain (she's from Yorkshire!) and recently rang to ask me (via her sister, my wife) if I'd be able to recover a laptop she'd been offered, before she went ahead and bought it.
Apparently the owner of the laptop had forgotten the Windows password and had written the laptop off as worthless, so was willing to sell for next-to-nothing. I said yes, I'd able to do something with it.
What I didn't realise was that it might have a BIOS password, which it did!
Initially I'd thought it would be as simple as sticking in a Windows install CD and building from scratch. However, without the BIOS password I couldn't change the boot order of the disks to get it to boot from CD.
I tried Google and there's lots of complicated hacks out there, as well as BIOS removal tools for sale. None of the hacks worked for me. Nor did stripping the laptop down to hot-wire jumpers or remove the CMOS battery (which was un-removable).
Then I had a brainwave.
The Simple, Fool-Proof Solution
If you find yourself wanting to boot from CD on a laptop (or PC for that matter) where you can't modify the BIOS try this:
- Remove the hard drive
- Insert the Windows install CD
- Start the laptop
- Hope that BIOS fails-over to the CD after not finding a hard drive
- If it boots from the CD, while that's happening, quickly re-insert the hard drive.
- By the time Windows is ready to install the hard drive will be there
- Remove the old disk partitions and start afresh
Hey presto. Worked for me. Hope it helps somebody else.
Rockall Design ltd (the little company I run from the office-slash-garage in my garden) was 10 years old yesterday. It's customary on this day each year that I plot a chart of turnover growth over the years. So, here it is:
As you can see it's been a bumper year.
Last year I put down what, at the time, I thought was a good year to:
Long hours and 'hard' work. But mainly luck!
This year is much the same. Although, if I thought I was doing long hours back then I had no idea what was in store this past year.
I was reluctant to show the chart as it may seem like I'm showing off and nobody likes a show off (note however that I leave the actual number involved a mystery). Suffice to say, I would have posted the chart no matter which direction the line would have gone this year.
At What Cost Success?
I hear people talk about this thing called a work/life balance, whatever that might be. It's gotten to the point for me now where all I seem to do is work. Not only that but, when I'm not working, it's work that I'm thinking about and I find it hard to switch off. Luckily I love what I do. But there are other things I love. My family being top of that list.
I used to have a self-imposed rule of not working at the weekend. Lately even that golden rule has gone out the window.
People sometimes say to me "I'd love to work from home" or "It must be great being your own boss". At which point I normally snap up the chance to poor my heart out about the loneliness and how you're never your own boss. You will always have a boss and answer to somebody.
Once upon a time I had a group of friends I saw regularly and had a few hobbies I enjoyed.
Then there's this website! What happened there?! Well, if you turn my company growth chart upside down, it could just as well be a plot of the number of readers this site has had over the years. As my takings have shot up over the last couple of years the readers of this site have plummeted.
I'm overdoing it on the moaning though. In reality I'm happy with how things are. I'm earning more money than I ever dreamt possible. I know it won't/can't continue and I'm making sure I make as much hay as I can while the sun's shining. Being self-employed means I have to provide for my own retirement. I'm not greedy or obsessed by money, but it would be crazy for me not to take the opportunity to capitalise on any chances I'm given to earn.
I'm sure the question on everybody's lips (well, at least on those of the people who've not stopped reading the site) is "what technology is earning your crust just lately?".
This time last year I said it was Lotus Domino that was responsible for most of Rockall's turnover. This year however the picture has changed and, whilst Domino is still in the equation, it's now Microsoft Dynamics CRM and ASP.Net MVC that I'm working with.
Whether Dynamics CRM remains in the picture long term or not I don't know. It certainly feels like it's got a brighter (more lucrative) future for it than Domino does. It's an interesting product and hopefully I'll find time to write about it here soon.
Right, back to work. So much to do....
The font-based web icons from Font Awesome is brilliant. Especially when used in conjunction with Bootstrap. You can quickly and easily add any one of the icons to your HTML buttons (or many other elements for that matter). Like so:
Sometimes though, you can't use web fonts. Either you can't rely on them being supported or, for some other reason, you just want to use an image file.
That was the case for me recently and I wanted an image file of an exclamation mark. Here's how easy it was using Font Awesome and Adobe Fireworks to create images based on font icons.
First step is to download and install the Font Awesome font to your PC. Then open the Character Map program and select the Font Awesome font, as below:
In there you can view, select and copy any one of the icons. With it copied to the clipboard, you can then switch to Fireworks, start a new canvas, select the Text tool (or press "T"), click on the canvas somewhere and paste in the icon. You can then resize and re-colour as you wish, as below:
Note that Fireworks is a vector-based drawing app and you can break apart (Ctrl+Shift+P) the icons so that you can re-define their shape by dragging corners and points around, like below, where, for no particular reason, I've made the point wider:
The only limit is your creativity (or lack thereof, as shown here). Hey, look, I made a download button with a picture of a cloud in it:
If you get stuck trying to find the icon you want from within Character Map then here's a tip that may help. Find the icon on the website and on there they show you the Unicode code, which you can type in to Character Map to find the icon, as below.
Future of Fireworks
Fireworks is brilliant. Why of why Adobe have decided to scrap it I don't know. I only hope it either goes open source or the version I currently own keeps working for as long as I have need of a graphics tool.
Action Logs are something I'm sure we've all added to the bottom of a Domino web form. Here's an example of one I added to a recent Domino-based app I created and then wrapped with Bootstrap.
The log is shown to the user as a three column table(when, who, what) with the latest action first.
My approach to storing this data has always been to use a single multi-value text field. The value stored might look something like this:
24/09/2013 17:08:12^^24 Sep '13^^17:08^^Joe Bloggs/ROCKALL^^Document Created
24/09/2013 17:08:12^^24 Sep '13^^17:08^^System Admin/ROCKALL^^'New Document' email sent to related users
24/09/2013 17:21:57^^24 Sep '13^^17:21^^Jake Howlett/ROCKALL^^Status changed to Published
24/09/2013 17:21:57^^24 Sep '13^^17:21^^System Admin/ROCKALL^^'Document Published' email sent to related users
This field is built up by recurring calls to a LotusScript method called LogAction() in the WQS agent of the document.
The HTML table the user sees is generated in a Computed Value section that uses an @For() loop to create a <tr> for each entry in the log.
There are inherent limitations to this approach:
- Limit of the amount of data the backend field can store.
- Limit of HTML the Computed Value that displays the table on the web can store.
These limitations can be worked round, but for the majority of cases the above solution will suffice.
The limitations became an issue recently when I was tasked with including user's comments in the Action Log. So that the log would look something like this:
Notice the comment on the 2nd row down!?
By adding comments, the chance of reaching the data limitations has greatly increased, becoming almost inevitable.
To avoid the limitation I chose to add each individual comment in a field of its own.
Each time an action is performed and logged with an accompanying comment a field called ActionComment_X is added, where X is the number stored in a field called ActionCommentCount incremented by 1.
The backend documents start to look like this:
Then, in the ActionLog field we add a reference to this comment field as an extra delimited field on each line. Notice in the values below that the 3rd line down ends in ^^ActionComment_1
24/09/2013 17:08:12^^24 Sep '13^^17:08^^Joe Bloggs/ROCKALL^^Document Created^^
24/09/2013 17:08:12^^24 Sep '13^^17:08^^System Admin/ROCKALL^^'New Document' email sent to related users^^
24/09/2013 17:21:57^^24 Sep '13^^17:21^^Jake Howlett/ROCKALL^^Status changed to Published^^ActionComment_1
24/09/2013 17:21:57^^24 Sep '13^^17:21^^System Admin/ROCKALL^^'Document Published' email sent to related users^^
When the HTML table is generated and each line in the ActionLog field is exploded on the delimiter ("^^") we can simply add the value stored in the comment field, like so:
@If(@Word(log[n];6)=""; ""; @GetField(@Word(log[n];6))
All that remains is to markup the comment in a <blockquote> tag and add a sprinkle of CSS to make it look like a quote.
The only remaining issue is that, if people type in huge great long comments, the amount of HTML generated by the Computed Value quickly reaches its limit.
To get round this I added an ellipsis (copying off Gmail a little) to the end of a truncated comment like so:
Clicking on this ellipsis "button" uses Ajax to go fetch the rest of the comment.
It's a solution I'm happy with and I've been sitting on for a while, thinking of sharing. Just don't know what interest there is? If there is some I can build a demo/download.
More blog entries are available in the archive »