codeBrane Blog

Software development and philosophical musings

Entries Comments


Comments off!

10 January, 2012 (12:55) | Opinion | No comments

This blog is mostly for my own education and reflection and the comments reflect that, i.e. not a lot. Plus for every comment I get, I have to clean out around 1000 spams and even of those few legit comments, most are just ‘drop-ins’, lauding me for a wonderful article and by the way, here’s a link to my website, as if readers of this poky blog are interested in the website of commenters who add nothing to the post content. So I’ve joined lots of other bloggers, especially Matt Gemmell, who has gone into blog comments in detail and has reached the same conclusions as I reached. They’re not worth it. If someone feels an overwhelming urge to offer their opinion of one of my opinions, they can do it on their own blog where their opinion can be taken in context, rather than a quick drop-in on my blog, leaving a link to their own website.

How to instantiate a happy Santa in Objective-C!

19 December, 2011 (11:35) | iOS, Software Engineering | No comments

It’s that time of year again when The Big Man gets on his sleigh and distributes prezzies to the kids. Unfortunately there’s a global recession in full swing and Santa’s bank manager wants some accountability from The Man In Red this time. In previous years Santa has tended to get quick loans or maxed out on his credit card to pay the Elves as although Santa is the front man, it’s the wee folk that do all the work of compiling lists and making presents to distribute. To make this as smooth as possible they’ve designed the Present Distribution Process (PDP):

The Present Distribution Process Read more »

Distributed SCRUM podcast

10 December, 2011 (12:37) | Software Engineering | No comments

Time for a coffee and a listen

Fascinating look into the world of software development

10 December, 2011 (11:49) | Software Engineering | No comments

I thought this article was rather enlightening. Some quotes that resonated strongly that I started ringing like a bell!

“…software skills are the most portable high-end skills on the planet”

“The really talented ones retain an evergreen ability to reinvent themselves around the latest, youngest technology layer, seemingly at will”

“The natural reaction that forms once a good developer recognizes his/her own value is to turn to either an individualist-mercenary mindset or a collectivist guild-like mindset”

Getting a new iPhone ready for development

25 November, 2011 (15:18) | iOS | No comments

It’s not quite enough to just plug in your new iPhone, open XCode’s Organizer and bung your updated provisioning profile into it. You’ll see this error instead when you try to deploy to the device:

XCode cannot run using the selected device

No provisioned iOS devices are available with a compatible iOS version.
Connect an iOS device with a recent enough version of iOS to run your
application or choose an iOS simulator as the destination.

You need to go into Organizer and select your new iPhone from the list of devices on the left and click the big Use for development button and it’ll download info from the phone. You’ll prolly then get the error:

No iOS Distribution Certificate found

Let XCode submit a request on your behalf and then login to your iOS developer account at Apple and you’ll see the iOS Team Provisioning Profile which is managed by XCode. Once that’s down you don’t need to download anything else. Just choose your phone’s name from the build targets and off you go.

Student feedback

25 November, 2011 (08:37) | eLearning | No comments

It’s a time of year I look forward to, when my student feedback for M887 comes in. Being a postgraduate course, it’s quite intensive but the students get a lot out of it and I always anticipate what they say in their feedback. Almost 50% responded this time and I’m very pleased with the results and there are some comments that are very constructive and I always use the feedback to improve on next year’s intake. It’s a side of software that surprised me really, teaching integration techniques with the OU and I’ve thoroughly enjoyed it so far. I always look forward to the next presentation as I always learn something new from the students. Some are frighteningly clever and it’s a pleasure to see them advance in this field with my tutoring.

Planning Invalid Message Channel in Matrix

25 November, 2011 (08:30) | integration, SOA | No comments

20111125-082741.jpg

Error handling in Matrix provisioning using the Invalid Message Channel pattern

Blackboard SIS framework : initial impressions

18 November, 2011 (10:25) | Blackboard | No comments

I’ve been playing around with the Blackboard 9 SIS framework which basically consists of a simple REST service that accepts IMS 1.1 XML records and punts them to the internal gubbins that does the actual processing. I was advised that it’s a separate system from Blackboard itself, in that, if you create users using the normal Blackboard User tool, then SIS won’t know about them and cannot update/delete them. My initial testing has disproved this but there is a subtle gotcha. If you create a user using the User tool, you cannot use the SIS to enrol them on courses. To do so, you must first ‘reconcile’ them by updating them using the SIS. The SIS will then known about them and will be able to enrol them accordingly.

Setting up your SIS is a two step process and is fairly simple:

  • System Admin -> Data Integration -> Data Sources -> Create Data Source. Give it a Key and a Description. I called mine MATRIX as I’ll be using the Matrix provisioning system to drive it.
  • System Admin -> Data Integration -> Student Information System Integrations -> Create Integration. I created an IMS Enterprise 1.1. This lets you send IMS 1.1 XML to it. Fill in the fields and point it to the MATRIX data source created earlier. All account messages sent to its URL will be associated with the MATRIX data source from then on. Once it’s created, you can click on the chevron next to it to get its HTTP Information. Use this info to send it stuff. Read more »

Guanxi Guard release

26 October, 2011 (09:29) | Guanxi | 10 comments

Just a quickie Guard release to make it more flexible when embedded in applications. You can now pull the config from an explicit path or environment variable. You can download from GitHub or Sourceforge.

Guard

  • 3.0.3
  • Updated src/main/java/org/guanxi/sp/guard/GuardBase.java. Can now specify config file location using environment variable or explicit path. Defaults to /WEB-INF/guanxi_sp_guard/config/guanxi-sp-guard.properties
  • Updated src/main/webapp/WEB-INF/web.xml. Added optional configFile init-param to Guanxi Resource Guard

On the philosophy of logging

17 October, 2011 (11:02) | Software Engineering | No comments

When your system is out in the wild, more often than not logging is the only way you can tell what’s going on if things go a bit wonky. Logging is your app’s way of saying something went wrong and why. Although I use the word “why”, the semantics aren’t that simple but the logs are the first stop in tracing the lineage of a fault. So it’s important to get it right and after seeing many logging patterns, both good and bad, my thoughts on the subject might be of some help to folk new to application logging.

The first question to ask yourself is, who’s doing the logging? Is it the caller or the callee? A common problem I see is what I’ll call Dispersed Logging. This is where the caller and the callee each have their own log files and tracking down a problem involves analysing both files and trying to sync dates and times, especially if the calling is done over JMS.

Dispersed logging Read more »

« Older entries