Category Archives for Programming/Development
I think I’ve posted before about the increase in the Dunning–Kruger effect and unconscious incompetence across the networked world, and how everyone thinks they’re an expert because they Googled it once. Especially so when it comes to web development, everyone thinks they’re an expert.
And so we have Virgin Mobile who for the last few years have allowed me to pay my phone bill online, until a few months ago when their support for Safari suddenly broke, meaning not only Macs, but iPhone users can no longer pay their bills. And it’s not that the support was intentially removed, otherwise they’d show a message saying Safari isn’t supported. It’s a bug, because you go through all the steps for payment and it barfs with a message about cookies not being turned on when it tries to push the payment through their payment gateway. Nice. And it’s not a cookie problem, because I double checked, and I’m a … umm, expert. The message actually seems to be coming from the payment gateway or phone account authentication gateway though, or some wrapper around it, because it’s styled completely differently to the rest of the site, which in itself is a stupid oversight.
I tried to report the problem, but their online form for contacting them has the same problem, it barfs with the same cookie error when you submit the form. So I called them and they said I must have cookies turned on to login. Well, I can login fine, and 15 minutes of stepping them through the process, and two different machines, a Mac with Safari and a Windows XP machine with Safari, finally satisfied them that they had a problem and they escalated it for me. I even offered them my help at the time, to come in look at their development processes, quality control and staffing, because it’s what I do, but they passed on that.
So guess what, a month later I haven’t heard anything, and I try to pay my bill and it’s still got the same problem. And I call again, and again they don’t believe me, and again I step them through the process and they agree to escalate it as a bug. And guess what happened today a month later? Yep, the same thing.
And it’s not like it’s because they’ve forgotten about Safari an the hundreds of millions of iPhones out there, because their home page also fires a JavaScript error in IE 8! I mean seriously, how good are their developers and their testers not to find that?
Virgin Mobile keeping SMSing me to say I haven’t paid my bill, and I keep SMSing them back that I can’t until they fix their site. I no longer recommend Virgin Mobile to people, and I now put them in the same camp as Vodafone when I left them several years ago. Customer service fail, customer satisfaction fail, software development fail, testing and release QA fail. Virgin Mobile, company fail.
http://c2reflexions.com/2011/11/18/useless-sprint-goals/
A sprint goal helps to enable the team to focus on for the next 2 weeks. What does everyone want the team to work on next?
There are many tools to accelerate front-end design, such as Blueprint or960.gs, but, until recently, the tools for responsive design—design and implementation that accounts for all these different devices and capabilities—were few and far between. There’s Andy Clarke and Keith Clarke’s 320 and Up, and Columnal, a responsive grid system. Recently, Twitter Bootstrap went responsive.
For the last decade or so this site has been running a custom built Perl blogging engine that I wrote in the late 1990s. It’s gone through a number of revisions over the years as technology advanced through permalinking, viewer comments, RSS feeds, enclosures, videoblogging and other bits and pieces. Oddly enough for the decade it’s been around, I’ve been mostly designing and building enterprise CMS’ of varying flavours, but never bit the bullet to convert this site to something a bit more substantial. That is, until now.
I’ve been wanting to do this for about a year now, and not had the chance, but recent improvements in WordPress have excited me, so here we are, my Richard BF site is now converted to WordPress.
If you’re an RSS subscriber, then your feed URL has been automatically redirected to the new URL http://www.kashum.com/feed, and I’d suggest changing the old URL to this new one before it goes away. Permalinks are unchanged, any blog post on the old site will have the same URL on the new site.
Some miscellaneous links and pages are currently broken and I need to fix those, but the basic blog and associated functionality should all be there. I’d appreciate it if you let me know of anything that’s broken.
If you are passionate about what you create, it is virtually impossible to completely disassociate yourself from your work. However, your ability to achieve artistic distancethat is, to achieve a place that allows you to contemplate the object (design) on its own meritswill enable you to improve your own work immeasurably and, ultimately, cast off the immature shackles of ego.
What is it with RSS readers these days that they only work with Google Reader? Particularly those for mobile devices such as the iPad. I get how syncing with it would be a good feature, but not at the expense of standalone feeds. It’s not like pulling feeds is technically difficult, there were hundreds probably thousands of RSS readers in the early 2000s, and they all did the heavy lifting themselves, without dependence on a third party service. And I should know, our company at the time developed a fairly popular RSS reader application for windows around 2004. It’s not rocket science, and it’s not like any of the standards have really changed at all.
I think it’s just lazy, lazy developers calling a simple API to get the data from Google Reader and then calling another couple of pretty basic platform APIs to display them in a list.
What if I don’t want to use Google Reader? What if I don’t trust Google? What if I don’t trust Google with the already incredible amount of personal data they have about me that they sell to advertisers? What if I simply don’t trust a company which makes all its money from selling me to advertisers?
I blame Google Reader for the decline in feeds and feed reading, as people not wanting to use Google are pretty much stuck without much of a choice in RSS readers.
It’s very tempting to write my own and be done with it, and one of its features will be “doesn’t support with Google Reader”.
Learning to improvise properly in Sydney is difficult. The training is mostly by rote drilling of sometimes inexplicably contradictory “rules”, which have been passed down over the last 30 years as gospel, with advancement usually based on how funny you are, not how well you can improvise. Since figuring that out, I’ve spent the last 3 years questioning everything I’d learned and knew about improv, and radically reinvented my approach and technique. It also led me away from Keith, to Del, but some of the answers came from neither, and were some odd non-improv sources.
I’ve been reading Jurgen Appelo’s book Management 3.0, a complex systems’ perspective on, and guide to agile management, which is basically about managing software development, but I’ve been surprised how much of his writing also applies to improv.
In Sydney we don’t normally embrace the idea of a troupe, we’re a Keith Johnstone Theatresports town, and most shows are very much the rock up and play type, where you play with different people in each show. There’s a lot wrong with this idea, but as a consequence there’s few if any regular troupes who rehearse and play together. I’ve been one of the lucky few, in that I’ve spent the last 3 years rehearsing with various troupes pretty much weekly, and had the opportunity to really explore with some likeminded people.
One of the things I questioned was the term group mind, the idea that a group of players as a whole can think likemindly as a single being. To overly simplify, some of the defnitions of group mind have included: you and your scene partner think the same way; you and your scene partner both know what should or does happen next; we all think the same way at the same time; we can count to 20 without surprising ourselves; and, knowing what your scene partner is about to do. To me these all seem like bad things, and the antithesis of what it means to improvise.
And then there’s the mystical definition, that something inexplicably magical happens to the group. I’d put this more down to coincidence and wishful thinking, a side effect of having worked with the same players for a while, which has good and bad facets to it. To come at it from a different perspective, how often does your troupe not have something magical happen? Coincidence is like that, it’s an exception masquerading as a rule.
Management 3.0 on the other hand has some good insights into what I think is really happening when we have those group mind moments.
The idea that a system can be better than a some of the parts, is born out of systems theory. Complex adaptive systems are called such because they are diverse and made up of multiple interconnected elements, and have the capacity to change and learn from experience. An improv troupe is a complex adaptive system, especially if there’s no clear directorial leader, and is at least a sum of its parts, the players.
Emergence is the idea that complex systems produce emergent resultants, results and effects caused by the sum of the parts and not attributable to any clearly traceable part. Emergence, or strong emergence when applied to a creative team like an improv troupe, causes the troupe to be greater than the sum of its parts.
The amount of emergence is commonly based upon the number of components and their interactions, which in the case of improv will increase over time. Many of the interactions may be negligible, not useful or may create noise that prevents emergence, however rehearsal and performance allow the troupe to refine and better their group play, the amount of emergence.
You can optimise emergence in several ways. Firstly, the system must be self regulating and self organising, not merely directed via hierarchy or by a single component of the system. This is also my experience in working with troupes. Creativity, capability and skill all improve when the group builds together, so long as the players are experienced and at a similar level of ability.
The diversity of a complex system is also important, as it increases flexibility by making it resilient to environmental changes, and feeds innovation due to the varying combinations and interactions between the component parts. This is particularly true of an improv troupe, including Theatresports teams with the old 1st, 2nd, 3rd and 4th player categorisations.
So what is group mind? I think it’s emergence, a team of creative people building something greater than the players themselves, but tempered with the coincidence that comes from working with the same people for a while.
Management 3.0 has many more great insights into improving creative teams, and while it would probably be a hard slog for an improviser not involved in software development, I’d certainly recommend a skim through it on Amazon or in a technical library if you can find one.
A little over six months ago I wrote a post titled MYOB – WTF is interaction design again?, in response to the frustration I was feeling over my ongoing battle with MYOB for Windows.
While that battle has continued, with neither of us giving way, I was very impressed that the MYOB team took the time, within 3 days, to find my post and respond. OK, it was just “call us”, but still. And I never called anyway, so I only have myself to blame for the ongoing problems right? No, because as I said in that post, these are really obvious problems that any developer or tester worth their pay would discover. Which makes me wonder if MYOB are so under staffed technically that they’ve had to live with a really high level of acknowledged defects, but I don’t buy that, because they’d have to be rolling in cash, seriously.
I don’t want to call MYOB and have them show me workarounds for my problems, or promise that they’re going to fix them. Just fix them!
Which brings me to my latest bunch of MYOB issues.
- The built in forms are crap. I don’t know any other technical way to describe them other than just plain old crap. If one of my developers delivered these to me, I’d be questioning them whether they have any problems at home at the moment, or whether they have a medical condition at all. Here’s a tip for MYOB: hire a contract form designer for two weeks, and have them provide some usable forms.
- The form designer is crap. For form design, its worse than Windows Paint is for graphic design. Here’s just a few of its problems:
- There’s no way to pin an axis when moving an object. One of the key things with form layout, is lining up of objects on an axis, but in MYOB, you click to select and drag the mouse, and you’ve just got to hope it looks alright when you let go. You can then double click the object to see its left axis offset, close it, then double click the other object and type in the same left axis offset, but try doing that with a whole bunch of fields. Tip: add a simple shift key lock to the axis that isn’t moved first by the mouse. This is how all layout programs work.
- When you double click on an object, you can’t select a position or size value and copy it to the clipboard. Likewise, you can’t paste from the clipboard. Considering all the values are of the form xy.abc, its a pain in the arse to have to remember 4 or 5 digits, close a dialog and then double click open another one and then have to type them value in manually from memory. If you want to copy the left axis and the width, then good luck remembering both. Tip: make the clipboard work in EVERY text field in MYOB. And I do mean EVERY field, because it doesn’t work in about half of them.
- If you add a jpeg with the picture object, don’t add any white, because white prints as cream. Which means that any logo with a white background will end up printing a cream coloured box around the image, instead of blending with the page. Also, nowhere in the documentation does it say which graphic objects are supported. From my testing, jpeg is OK, but has the lossy cream background issue, tif is OK for black and white but it completely mangles colours.
- The print preview doesn’t. i.e. what you see in the print previous is completely different line up wise to what’s in the form designer!
- The printing of a form with real data also bears no resemblence to either the form designer’s view or it’s print preview.
- The customise forms window is modal, which means if you want to change a form, probably because you’re tweaking the form and printing with real data is the only way to be sure, then you have to close and leave the form designer in order to get back into MYOB. This makes small tweaks to form painfully slow.
- There’s no way to line up objects other than by entering the position of the top left corner of an object, which means if your text field is right aligned, then you can’t line up your objects without doing a mental calculation of xy.abc + de.fgh, where xy.abc is the left axis offset, and de.fgh is the object width. You then have to calulate the other object as well, and compare them, then subtract the difference from the object you wish to move, and enter that into the dialog. That’s seriously insane! The workaround is to make both fields exactly the same width, and then put them at the same left offset, manually typing each. The problem with both of these methods is that you then can’t line up the position of the first character in a right aligned text field, with the start of a left aligned field, which you definitely want to do if you’re pinning fields to the left margin. Well, when I say left margin, I mean your manually chosen left indent, because the form designer doesn’t show or support print margins, it doesn’t even suggest that you leave margins.
- The process payroll screen shows an initial Select Pay Period panel, and none of the five vertically displayed fields are horizontally aligned, except for the two radio buttons which are on top of each other. The text field next to one of the checkboxes isn’t vertically aligned either. But that’s not the most annoying thing, its more the fact that: the pay leave in advance checkbox has a colon after it, which gives the impression that the pay start and end period is to do with paying leave in advance; and again the pay leave in advance checkbox only being enabled when you select to pay all employees and not just one. I should be able to leave in advance for an individual.
Here’s one more tip: hire a contractor who knows how build user interfaces, and give them a month to just go over the line up and layout of all the various screens, and do mock ups for the refactoring of some of the more braindead wizard dialogs. The next build will just pick up the new layours, and the developers can then recode the wizards at a later date, based on the mock ups.
Having said that, here’s a couple of the changes in the most recent version of MYOB:
- You can now record leave information when you process the payroll. Well, they don’t say that you can only do that if you’re paying by the hour, not a salary.
- New tax table validity tests. In other words, when MYOB supply you with new tax tables, they now validate that data to make sure its valid. Umm… I’d probably want it fixed at the source, but maybe that’s just me.
I’m still seeking an adequate replacement for MYOB, preferably for the Mac, but I’ll survive with a Windows application if the developers are professionals. If you know of such a replacement, then please let me know.