Blog

TorrentApp

I have a small app on my computer that I wrote myself. Itā€™s
small and simple, and itā€™s the default application for opening BitTorrent files on our computers. When I
download one of these files the app takes the file and moves it to a folder on
the server. This folder is watched by my torrent
client of choice
which runs on the server and immediately starts the
download when it sees the file.

The app then pops up a notification to the user to ask if
they want to be directed to the deluge web interface to see the download
progress.

I rewrote the app about a year ago. The original version was
written in RealStudio but the
location of the watched folder and the URL for Delugeā€™s web interface were
hard-coded in: a reasonable design decision given it was just a small app for
only my use one, but still a poor one ā€“ when a change I made to my network
configuration required me to adjust these variables I no longer had a copy of
RealStudio available.

I wrote a new version in Visual
Basic 2010 Express
, and this time I did a little extra work to take the
configuration variables out of the source code and put them into an .ini file.

Why am I telling you all this?

Well, not that I think youā€™d need the app, but I have today
made the source code
(and the compiled executable, for good measure) publicly available on my brand
new GitLab account!

Iā€™ve been using Git for a while (and Iā€™ve written about it once
or twice
before), but I really havenā€™t been taking advantage of its featureset.

Iā€™m working on something right now thatā€™s big and complex
and I value having version control and branches to work with. I already have
Git installed on my server (both my home server and my public webserver), but
Iā€™ve downloaded a windows Git client
to compliment that setup and opened a GitLab account to use as an external
repository and a means to eventually make a finished product public.

Why have I chosen GitLab over the more ubiquitous GitHub? GitHub makes you pay to host a private
repository, and I want somewhere where I can both host code thatā€™s a work in
progress (and not ready for public distribution) and distribute completed code
thatā€™s ready for download, public review and maybe even improvement by the
wider community. GitLab gives me free private repositories for
partially-completed things that I can later make public once Iā€™m ready to.

Iā€™ve already created a couple of public repositories, mostly
to test the platform out, and TorrentApp is one of them.

So use it if itā€™s a tool that might be useful to you,
improve upon it if you have the expertise, and send me a merge request so I
can incorporate your changes into the code!

Blog

How to Recover From an Unproductive Day Like It Never Happened

There was one day last week where I accomplished more in the last hour of my day than I did in the previous 6ish. This happens to everyone from time to time: despite our best intentions, there are all sorts of things that can cause a workday to go sideways on us.

We all have unproductive days. Maybe an unexpected event throws your schedule for a loop. Maybe youā€™re not feeling well. Whatever the reason, it can be tough to get back on track. Hereā€™s how to get past the dip in productivity and back into gear.

For me, key to recovering when a day turns unproductive is to find a way to reset and tackle the remainder of the day with a renewed focus. I spend 15 or 20 minutes at the start of every day composing a to-do list and defining my action plan for the day, and when I find myself unable to execute on that plan for whatever reason I repeat that exercise and re-define my action plan based on my new reality. I also find it helps a lot to have a change of scenery: if Iā€™m in the office and my day isnā€™t going the way I wanted it to then Iā€™ll go home and work the rest of the day from there. If Iā€™m already home then I might head to my favourite coffee place and spend an hour or two working in that environment.

I also find that as part of redefining my to-do list itā€™s important to be fully inclusive. My day consists of both big and small tasks, and itā€™s tempting when putting a list together to omit the small ones and just do them immediately, but of course this only leaves the big tasks where Iā€™m more reliant on others and unforeseen things are more likely to occur. When things donā€™t go to plan itā€™s entirely possible to end up with a to-do list that has nothing checked off at the end of the day, and itā€™s important to me not to finish my day that way ā€“ Iā€™d much rather spend my evening relaxing with at least a small sense of accomplishment than worrying about a perceived lack of achievement. If Iā€™m only able to achieve smaller things that day then so be it, but thatā€™s better than nothing and cause for correspondingly small celebration, but celebration nonetheless.

If youā€™re not able to recover your productivity within the working day? Well, that happens to the best of us and isnā€™t cause for panic. The article Iā€™ve linked to above has some tips and tricks to help us get back on the metaphorical horse the following day.

How to Recover From an Unproductive Day Like It Never Happened

Blog

SharePoint on a Domain Controller Revisited

On Tuesday I wrote about installing SharePoint Foundation
2010
on my home windows server, which also acts as a domain controller, and I
concluded by saying that Iā€™d encountered performance issues as a result of that
(non-recommended) setup.

Turns out, the performance issues were a complete coincidence,
and everything is now running just fine.

The problem I was experiencing was that two of my three forward
DNS servers werenā€™t working correctly. Now that my
service provider
has corrected their issue, everything is great.

image

For a small setup like mine, Iā€™d say go ahead
and install SQL Server Express and SharePoint on the domain controller. It
works great!

Blog

Installing SharePoint Foundation on a Domain Controller

Itā€™s been a long time since I blogged about SharePoint, and thatā€™s
largely because I havenā€™t had a need to develop anything custom on top of the
platform for quite some time.

If youā€™ve been following along for a long time, you may
recall that back at the start of last year I installed
SharePoint foundation on a Windows 7 Virtual Machine
at home for testing
purposes and, while I didnā€™t blog about it explicitly, when I upgraded
my home server
last August I replaced that Windows 7 virtual machine (which
ran on my laptop) with an always-on Windows 2008 R2 VM, again running
SharePoint foundation.

As my home network continued to evolve I turned that Windows
Server VM into a domain controller, and this broke my SharePoint installation ā€“
but by then it wasnā€™t all that important and I didnā€™t need it for work anymore,
so I simply uninstalled it.

Recently, Iā€™ve been missing having SharePointā€™s
functionality at home. In particular, I wanted a shared calendar for Flo and I,
and a place for shared documents. We can achieve much of this with Google
calendar and our existing shared folders (and I already have a tool deployed that makes our network shares
available from outside our home network), but it all feels a little kludged together
and itā€™s lacking features like NTLM based SSO and an easy way to edit files
from the web-interface that SharePoint provides out of the box. I looked at a
couple of alternative
solutions and wasnā€™t satisfied.

Previously Iā€™d deployed SharePoint foundation in standalone
mode. This installs and runs all the required components on a single machine.
Itā€™s not recommended for a full-scale deployment, but itā€™s perfect for our home
network. The problem is that this simply isnā€™t an option if you install it on a
domain controller, and instead you have to install a server farm. In googling
around, the consensus online seemed to be that it wasnā€™t possible to install
SharePoint on a single server if that server was also acting as the domain
controller.

Not so.

It is possible, and in fact itā€™s pretty easy. I made a
couple of missteps by attempting to follow along with what some other people
had done, but the solution was actually extremely simple: first you need to
install SQL
Server 2008 R2 SP2 express
(and it has to be at least this version), then
you install SharePoint
Foundation 2010
. For all the discussion online, I actually didnā€™t have to do anything other than accept the default options to install SQL server. When I installed
SharePoint it doesnā€™t give me the option to install in Standalone mode, but I
simply pointed it to the SQL Server instance I had installed and that was all
there was to it.

That being said, things are not all that rosy. Just because
this setup is possible, doesnā€™t mean itā€™s recommended ā€“ and this is certainly
not Microsoftā€™s recommended way of doing things.

Microsoft advocate for a separation of server duties, and
having different, unrelated services running on different machines. Now that Iā€™ve
entirely eschewed that philosophy I can see why itā€™s important: SharePoint is
running well and performance is snappy, but general internet performance on our
home network has suffered, and I believe the fact my single Windows server is
also the DNS server for the network is the problem ā€“ DNS lookups are slow.

I may try and solve this by trying to install a slave DNS
server on the Linux server we have, but if not then I think SharePoint will
have to go away in the interests of DNS performance.

Or, maybe I just add a second physical server and move a few
of the VMs to that? Weā€™ll see.

Blog

Hanlon’s Razor

In yesterdayā€™s link roundup post I linked to an article about communication strategies within a geographically disparate team that made mention of Hanlonā€™s Razor.

Iā€™ve known my bossā€™ bossā€™ boss to express this in different words:

ā€œNobody gets out of bed and comes into work in the morning just to screw you over.ā€

Itā€™s good to know that thereā€™s a name for this concept I can reference, and also an alternative wording I can use to make it appropriate for all audiences:

ā€œNever attribute to malice that which is adequately explained by ignorance.ā€

Wikipedia also teaches me that Sir Bernard Ingham coined an even more succinct version:

ā€œCock-Up Before Conspiracy.ā€

Hanlon’s Razor

Blog

Link Roundup – Thursday April 9th, 2015

I read a lot.

I have a reading list of blogs and other websites in Feedly that I read throughout the day, every day.It includes everything from traditional news through to cartoons.

Often I find something that I want to share on this blog. I
quite often share links here to other articles, but I always try do it in the
context of providing my own commentary and thoughts on the content. What Iā€™m
getting at is that sharing links on here is not a quick, one-click process,
because I donā€™t want this blog to be merely a long list of links to other
peopleā€™s content. Iā€™m much too egotistical for that.

Anyway, the result of all this is that over time I build up
a handful of flagged articles that Iā€™ve been intending to share but never got
around to doing so.

This is the first of what may become a semi-regular feature,
where I spew those forth with (in the interests of time) only a sentence or two of comment instead of the full-blown article I was originally planning. Enjoy!

  • Three Communication
    Strategies for Building Strong Relationships from Far Away

    Working in a ROWE is great, but is not without its
    challenges. Communication is by no means impossible, but can certainly suffer
    when the face-to-face aspect it lost: particularly with a team thatā€™s become
    subconsciously reliant on bumping into people in the hallways. This article
    lays out some strategies for addressing that.
    Ā 
  • Why
    Resource Management is Better from a Dedicated PM

    Another post from the excellent Brad
    Egeland
    , this one talks about why a dedicated project manager is better
    than using somebody with another role (like a lead designer) to occasionally
    manage projects as the need arises.
    Ā 
  • Fluency
    with Excel and Word are Key to Getting a Higher-Paying Job

    I wanted to link to this article because it surprised me. Higher-paying
    compared to what? Isnā€™t fluency with office applications a prerequisite for getting any
    job? Maybe ā€œfluencyā€ is the key word here, and a basic understanding is a prerequisite
    and those with more advanced skills will find more opportunities to progress up
    the corporate ladder, but the article doesnā€™t really say that. This is the
    knowledge economy here, people! We donā€™t make things anymore, unless of course
    you count spreadsheets. Get on board!
    Ā 
  • How to Put an End
    to Workload Paralysis

    I absolutely suffer with this. As the author notes about herself, ā€œthere seems
    to be a tipping point for me when I go from being really busy to so-busy-Iā€™m-paralyzed-and-canā€™t-do-anything.ā€
    The four steps to fighting this paralysis are not rocket science, but of course
    nor should they be, and itā€™s well worth a read if, like me, youā€™re an
    occasional sufferer. At least you now know youā€™re not the only one.
Blog

Meeting Pre-Work (and Why Iā€™m Bad at It)

Last week I linked to and wrote about an article
that gave some tips on running effective meetings.

In addition to posting it here I also posted it, in advance,
to my workplaceā€™s internal social media platform to share it with my team and
get their thoughts on meeting best practices.

My boss Matt
commented that one of his tips was to highlight any meeting pre-work that may
exist: information that participants need to bring with them to the meeting, or
documents they should review in advance, for example. Matt suggested that it
may sometimes even be worthwhile to go so far as to include these expectations
in big bold text within the invite so they jump out.

image

This was an interesting topic to me, because I am certainly
an occasional offender in this regard.

Basically, if you send me an email that includes a call to
action
then I will notice it and deal with it appropriately. I may not take
the requested action immediately, of course, but Iā€™ll flag the email for
follow-up when I know Iā€™ll have time to get it done, or maybe even schedule
some time in my calendar if the situation warrants it.

A calendar invite is different, though. No matter how hard
you try and how good your writing skills are, the instruction in the body of
the invite is not the primary call to action when I receive it: instead, thatā€™s
something thatā€™s defined for me by Outlook (or your client of choice) which is
demanding that I choose to accept, tentatively accept or decline the invite
itself. Once Iā€™ve done one of those things the invite is forever gone from my
inbox, and the meeting (along with whatever instruction you provided) is now on
my calendar.

Iā€™ll get to your email on whatever schedule my workload
allows for, but my calendar by its very nature is a schedule, and it tells me when I should get to something. The
next time Iā€™ll look at your meeting invite is probably going to be two minutes
before it starts, when Iā€™m looking for conference line details or checking
which room itā€™s in. By then of course itā€™s too late.

Recently Iā€™ve started employing a new trick to deal with
this kind of thing for meetings that I host. First I send an email to the group
explaining what needs to be done (pre-work), suggesting that we collectively
discuss to share our thoughts, and mentioning that I will set up some time to
achieve this. Then I immediately follow-up with a meeting invite, into which I
embed that first email.

I havenā€™t heard any comments, good or bad, but it seems to
be working.

What does everyone think, though? Am I spamming people and
over-contributing to their already burgeoning inboxes? Am I solving a problem
that people donā€™t actually have and unfairly assuming that everyone shares the
same lack of organizational skills that I possess?

Let me know in the comments below, or contact me!