Sunday, 15 November 2015

crashplan backup to a remote drive (nas / unc)

Crashplan is a very nice backup solution. Lots of options, easy to use... all good stuff. However, what it lacks out of the box, is a way to backup to a local, network share. For example: a NAS device.

Turns out, it's remarkably simple to set this up


1: Create a symbolic link to your network drive. For example:

2: Change the account that crashplan runs under from LocalSystem (which will not have network access) to an account that has network access.



3: Select the local folder as a backup destination within crashplan



Job done.


Friday, 11 July 2014

windows updates could learn a lot from the ubuntu unattended-upgrades package

I was already pretty darn impressed with the ease, and simplicity of upgrading the entire operating system. Seriously, it's as simple as one single command:

sudo do-release-upgrade

But what I now wanted, was a simple way to keep a bunch of ubuntu servers patched up with the latest upgrades. Keeping things nicely up-to-date between major releases. I toyed with some fancy, centrally managed solutions, like the ubuntu landscape offering, even puppet or chef. But ultimately, if you've only got a handful of servers; why not just go for something dead simple...

sudo apt-get install unattended-upgrades

Done. The machines will email you if they need an occasional reboot. But otherwise, they will keep themselves up-to-date, without bothering you too much.

There's a bunch of other stuff you can tweak - nicely detailed on the ubuntu wiki. For bonus points: if you plop your /etc/apt/apt.conf.d/50unattended-upgrades file into dropbox, and symlink it on each server, you can ensure all machines are using the same upgrade settings. Easy peasy...

Actually: to be fair, windows update services is pretty cool too. But for only a handful of machines, it's a bit over the top (imho).

Tuesday, 8 July 2014

howto: send emails from ubuntu server, via gmail, with 2-step verification

I've done this about 10 times over the last few years, and every single time, no matter how hard I try, I always forget something...

Fortunately, there's some nice simple instructions here: http://www.havetheknowhow.com/Configure-the-server/Install-ssmtp.html

While this guide is great, there's two little extra things you will want to check:

  • Are the messages actually being sent? Take a look at /var/log/syslog -- any problems will show up there
  • If you are getting authorization errors, and you know it's the right password -- perhaps you have 2-step verification turned on. In which case, you'll need to create a new application-specific password, and use this in the ssmtp.conf file instead.
Maybe I'll remember next time...
(unlikely)

Friday, 31 May 2013

What is the best way to upgrade an existing BizTalk application?

I recommend a claw hammer, over the more traditional ball peen. It helps with uninstalls.

Thursday, 28 March 2013

.net reflector is free** again - why didn't anybody tell me?

Well "almost" free - the functionality that I loved about it most - the ability to rewrite IL - is available in two free products...

  1. Telerik's JustDecompile - takes the place of .NET Reflector; and doesn't cost a cent.
    This in itself is nothing earth shattering. There are a stack of other free de-compilers. However, when you add on...
  2. Reflexil - you regain the awesome ability to edit assemblies as you please. Make those locked down private method's public, adjust resources, or just rewrite chunks of code.
Neat...

Thursday, 28 February 2013

The compiler made me do it...

From the 3proxy FAQ...

Q: Why the code is so difficult and non-intuitive?
A: First, I'm not programmer. Second, . Third, . Fourth, the aim is to support different platforms. It's well known - the worse code is, the better it compiles.
This chap is way too harsh on himself. Sounds to me like he is a programmer - and of the highest order.

It's so good, I'm using in my next code review.

Friday, 22 February 2013

Asus Eee complains about 'Assuming drive cache: write through'

I had an old Asus Eee kicking around. Seemed like a perfect candidate for a headless Ubuntu 12.10 server.

That is, until it booted the first time, and played back the following message, over and over again:
[sdb] Asking for cache data failed
[sdb] Assuming drive cache: write through

Everything works fine. But the message is, err, annoying to say the least. Fortunately, the easy fix is to just turn off the buggy drivers. Which is a doddle. Just edit /etc/rc.local and add a line to turn it off.
rmmod ums_realtek

Reboot to make sure it kicks in, and we're done.

Source: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/925760

Wednesday, 31 October 2012

Change your ubuntu computer name

This is an incredibly easy (trivial even) task - but it involves two steps. Which means I always forget one of them. So this might stop me from doing it in future...

Say you want to change your computer name to be: bender.example.org
  1. Edit the /etc/hostname file
        sudo nano /etc/hostname
    There's only one line in this file, change it to the desired computer name.
    In this case: "bender".
  2. Edit the /etc/hosts file
        sudo nano /etc/hosts
    Leave the first loopback (127.0.0.1) line alone, but change the second one to list both your computer name, and the fully qualified domain name (if it has one).
    In this case: "127.0.0.1    bender.example.org    bender"
Now you're changes will stick after a reboot, and you can still SSH into your machine. 'cause it's always embarrassing when you can't connect to the computer you just renamed...

Thursday, 12 July 2012

Microsoft, please wipe my phone. I don't need it anymore...

While trying out a ROM based on stock 4.0.1 (Ice Cream Sandwich); I noticed a scary warning when setting up Exchange ActiveSync to my work account:

So I'm thinking: would I really like someone else to be able to:
  • change the way passwords work on my phone?
  • change the lock screen settings on my phone?
  • change the encryption on my phone?
  • remotely wipe all data on my phone without warning?
I could easily imagine our daughter playing with the unlock screen, and triggering a remote wipe. Which would be fun for the first 1 to 2 seconds. Then pain for the subsequent 1 to 2 days.

How would one combat this (to me) potentially draconian IT policy?

Turns out (like most things with android); it's relatively easy - provided you invest a few minutes. The exchange sync provider,  like most things, is shipped independently as an APK file. The source code for the the provider is freely available, and if you don't like how it works -- well change it damnit...

Better yet - someone has already compiled it and packaged up the APK file. So all you really need to do is install it. xda-developers has all the goodies... To be clear:

  1. Download the APK from the link
  2. Delete the stock Email.apk file
  3. Copy the patched version in it's place
  4. Setup an exchange account as you normally would.
    Instead of the scary Exchange policy - you get a nice message that it will be ignored and a disclaimer that you are on your own.
Easy peasy. Kids can now draw pretty pictures with the lock screen without fear of triggering a remote wipe.


Wednesday, 22 February 2012

android 2.3.5 + htc sense 3.5 + facebook do not play nice...

I finally tracked down the incredibly annoying problem of incoming calls crashing com.android.phone (ie: the process that actually handles the incoming call!) Turns out something was attempting to draw absolutely nothing onto the canvas of the dialler (thanks android logs!). It was in fact a Facebook linked contact (with no image).

While there are a few documented work arounds. The simplest (albeit brutal), is to stop Facebook from synchronising contacts. More details are on the google group. In short:

Load Facebook app:

  • Settings -> Syncronize -> None
  • Logout
Android Settings:
  • Accounts and sync
  • Remove Facebook
  • Remove Facebook for HTC sense
Start answering incoming calls :-/

Monday, 20 February 2012

rip aopen red thingy

Circa 2004, AOpen EZ65, With the delightful opening engrish passage in the user manual: "fun your life".
A subtle shade of bright red too.

8+ years of 24/7 use. Firstly as a (at the time) pretty reasonable Windows desktop; then as a no-hdd, usb bootin' webbrowser/kiosk machine; then a general purpose linux/samba/ssh/lamp/dns/virtualbox/general-shit-kicker server. I think I paid about $400 for it. So that's pretty good mileage.

I briefly considered looking harder into the reason it failed, maybe reanimating it Frankenstein-style (since I can't buy any new parts that would actually fit). But I figured it deserved some peace and quite after all these years of service without hiccup (until now).

I guess it's time to see if it's old duties can be services by a virtual machine now...

Saturday, 18 February 2012

At 64KB/s, there's only one choice for search...

Sad days over the weekend, we where were capped at 64KB/s on the home ADSL connection.

I'd hardly call myself a fanboy, but Google still trumped Bing by a long margin.

Results for searching for a pretty popular term:
Google loaded the first and second results pages. I even had time to click on a search result and have the site load up before Bing even bothered to show me a home page and textbox to type anything! Good thing I wasn't in a hurry (64KB/s teaches patience if nothing else).

Regardless, 64KB/s is a pain I don't want to relive...

Thursday, 28 July 2011

The Scrum Guide 2011... snap!

During a 30 minute spike today on UI blocks, the discussion wound around to...
Couldn't the "developers" implement some of the BDD steps?
Well the "testers" do that.
Oh... Well we're accruing quite a bit of debt from the rough UI we have at the moment. Couldn't the "developers" work on the UI/UX?
Well the "business analysts" and "UI experts" do that. 
It seems very, very odd when you think about it. It also seems to run counter to some pretty basic scrum principals. I was going to let it slide, but then I saw there's been an update to The Scrum Guide (2011).There have been a few refinements made to the document, they are listed in the summary page. Have a read, it's very easy to follow. There's a few gem's on page 6 (some paragraphs removed)...


The Development Team
Development Teams are structured and empowered by the organization to organize and manage their own work. The resulting synergy optimizes the Development Team’s overall efficiency and effectiveness. Development Teams have the following characteristics:
  • They are self-organizing. No one (not even the Scrum Master) tells the Development Team how to turn Product Backlog into Increments of potentially releasable functionality
  • Development Teams are cross-functional, with all of the skills as a team necessary to create a product Increment; 
  • Scrum recognizes no titles for Development Team members other than Developer. Regardless of the work being performed by the person, there are no exceptions to this rule;
  • Individual Development Team members may have specialized skills and areas of focus, but accountability belongs to the Development Team as a whole; and,
  • Development Teams do not contain sub-teams dedicated to particular domains like testing or business analysis.
At the risk of getting all high and mighty, shouting "you're doing it all wrong!" or "the book says you're not allowed to do that!"; which obviously achieves nothing, and irritates a lot. I've been trying the gentler "as part of improvements for next sprint, what could we do to become a more cross functional team?" approach in our sprint retro.

We shall see...

Thursday, 14 July 2011

He said: "What do you think of my manifesto?"

Agile Manifesto

I said:
"I like your manifesto, I'll put it to the testo"

Alas, the room fell silent when I said that. There might have also been a tumble weed, I'm not sure.

Apparently agile project management frameworks are a little more popular than old Irish punk bands. Oh well...
Sultans of Ping FC

Wednesday, 13 July 2011

Samba server is easy... Samba domain login is, err, tedious...

Server = easy
To get a samba server up and running (as a PDC or just a file share), is easy peasy...

Four steps - two really, since you are really just:
  • editing /etc/smb.conf
  • restarting the daemons
Client = hard
Ahh, but getting another Ubuntu desktop to authenticate to the Samba PDC like a regular dumb Windows box -- now that's a pain in the ass. If you are using Active Directory, you can cheat and use Likewise Open. But I'm not, so I have to wade through http://www.clearfoundation.com/docs/howtos/add_linux_workstation_to_the_samba_domain

I mean it works and all, and I'm grateful for the help -- but really:
  • editing /etc/smb.conf
  • manually creating /home folders
  • editing /etc/nsswitch.conf
  • blowing away (yikes!) /etc/pam.d/common-account
  • blowing away /etc/pam.d/common-auth
  • editing /etc/pam.d/common-password
  • editing /etc/pam.d/common-session
  • reboots
  • editing /etc/sudoers
Come on, really, couldn't that be a little easier?

Even the pretty "Ubuntu Software Center" was less than helpful...

Which to the novice end users pretty much means:
Well we installed it like you asked -- but you're on your own from here. Go wade through man pages why don't you...

Oh well, on the plus side -- the (lengthy) steps outlined above do result in domain+single-sign-on goodness for my Ubuntu desktops. So I'll probably forget the installation experience sucked.

Wednesday, 1 June 2011

Linker? What's a linker?

For better or worse (mainly worse), I had to dip back into some "retro" development recently.

I'm talkin' 1998...

I'm talkin'...

I'm talkin'.... Visual Basic 6...

So wallowing in the fun that ensues from supporting 12 year old technology, a colleague asked about a particular build error spat out of the command line:
LINK : fatal error LNK1104: cannot open file xxxx.lib
and then, shortly after...
Linker? What's a linker?

Oh dear. I have been using the .Net CLR for way too long. It's been around for over 10 years now, and the idea of having to manually resolve external symbols, reallocate addresses and "bake" libraries into a single executable is now totally foreign.

Oh well, at least I can enjoy some sweet '98 tunes while I lament the loss of static linking...


FYI: a linker is like that and that's the way it is...


BDD?

Feature: Acceptance Testing
    In order to spend more time doing the things I enjoy
    As a developer
    I want to spend less time remembering to run a set of tedious manual tests


    Scenario: Feature Testing
        Given I have worked out how to test a new feature
        When I complete the new feature, passing the test
        Then I should be able to move on to something more interesting, safe in the knowledge the feature is tested, correct and complete



    Scenario: Regression Testing
        Given I have implemented a feature
        When I complete testing the first time
        Then I should never have to do it again, via dull tests for regressions


Friday, 20 May 2011

Ubuntu 11.04 install is, err, quick...

Kind of a follow up to my last post on using a VM to run Ubuntu for all my desktop stuff. I freshened it up to 11.04, and the installer required all of (and I did actually count them) 6 clicks. It's been a while since I've done a Windows install, but I'm pretty sure even Win7 (which is nice) -- needs 14 or more.

I wonder how long an OSX install takes? I guess I'll never know... :-)

Well I thought it was nice at least. 6 clicks, and I have a full install, sensible partitioning, admin accounts setup, all the post-release updates installed, and a minty fresh install -- ready for me to destroy! Plus, with all my account data synced across machines -- it's instantly got all the goodies I need to make use of it.

About the only improvement I could suggest is adding a Tetris game while you install -- ala DVDFlick...

Actually, maybe a tower defence clone would be better?

The install took 3 hours! -- 5 minutes for the file copy, and 2:55h for me to battle the hordes in stage 11 of tower defence!

Thursday, 18 November 2010

After a month living with a GNOME, I don't feel any taller

In an experiment to see what it would be like to take a full plunge into Windows-free-living on the desktop, I put myself on double secret probation to see if I could live without my Windows trinkets for 30 days, and 60 if I could stretch it. (At home though - at work would be a whole new challenge)

So in through the window comes the penguin...

The highlights so far are:

  • Ubuntu 10.10 installer (for the desktop) is a very neat bit of kit. While I haven't actually tried it - I think it stands an excellent chance of passing the "even my mother could install it" test. I wouldn't dare let her try a Windows install.
  • The baked in sync features of Chrome make it easy peasy to keep all your browsers at work and home in step. With the added benefit that I can expose all my personal details to Google to harvest for fun and profit (ho hum).
  • A VirtualBox install of Ubuntu Desktop is hands down, the fastest, snappiest desktop VM I've  used. Windows XP was usable, Windows 7 was better, but it's waaaaaay faster than that.
So far, so good...

Saturday, 25 September 2010

"p" is for "please don't sue me"

Duck! Duck!


...minutes pass...


Cat! Cat! (giggles)


...a little while later...


Bee! (squeals)

I thought I had picked up all the kids picture books lying around the floor. I double checked - yup - no picture books. Yet our daughter was making all the fun noises that usually following a reading of picture books.

A little further investigation reveals she has got hold of a Linux magazine I bought on a whim.

Turns out this is a Duck...

a fair mistake - any bird is classified as "duck" at the moment.

This is a Cat...

getting a little harder to see the association now.

And this is a Bee...


Turns out these mags are great for kids (and cheaper than most picture books). I was thinking of trying a Mac magazine next. So she can go for the traditional "a is for apple" - but I'm worried of copyright or trademark infringement.