They say you learn something new every day.

Posts tagged ‘skills’

Races, Marathons, Practising and Preaching (18/02/2012)

I wrote once before that this site wasn’t turning out quite the way I was expecting.

My intention was for the things learned to be relatively factual – you know, how to tie your shoelace, how to do long division etc. However, other than the occasional blasts of knowledge, most of this so far has been morals or styles of thought. I put this down, really, to the fact that I’m at home for Christmas, and have switched my brain to sleep mode. I’m hoping this will change a little next year.

Well, that turns out not to be true – most of this is ideas or ways of looking at things, rather than “blasts of knowledge”.

The thing is, ideas come cheap. Realising things, or figuring out ways of doing things is quite easy. There are books and books full of ideas. The hard thing is converting those ideas into changes in behaviour.

This has struck me quite a lot recently. There are lots of best practice things that I know. You know, each piece of data should exist only once. Minimize your code by reusing the same data. Make code portable. Etc etc. All of these things I know as concepts are good things to do.

Yet, in reality, time and time again I break these rules. Not because I forget them, but because living your life is quite different to thinking about your life. It’s so easy to unlearn things; that is, un-fix a problem that you’ve already solved in one place.

I don’t think I necessarily have a solution for this, other than lots of calibration. This blog helps, since it forces me to think about what I’ve learnt. And by adding in lots of links to previous articles, in encourages me to remember things I’ve written before.

But I think there’s a missing piece still, and that’s forcing myself to “practise what I preach”. That’s going to be my aim for the next few days.

Not Knowing and Not No-ing (22/01/2012)

I’ve been quite stressed this week. Probably most stressed than I’ve ever been in my life before. I’ve realised that “not knowing” and having to wait is probably the most stressful thing in the world. There’s nothing you can do about it, so you just have to wait. It’s even harder when you don’t know how long you may have to wait.

There’s several times you’ll have this in your life: exam results, job interviews, medical tests, large negotiations etc. But no matter how many times you have it, if it’s something your emotionally engaged with, it never gets easier.

The thing is, your brain continues to play scenarios through in your head. Scenarios that you’re helpless to do anything about. I’m no psychologist, but I suspect your brain is planning what it can and hitting a brick wall. And so it keeps running through it over and over again in an attempt to see a way round it. But there is no way around it.

The only things I’ve managed to do so far are:

  • Try to distract myself through other activities
  • Decide on what action I’ll take if things don’t work out how I want
  • Set myself a deadline for taking action

I don’t think there’s much else I can do here, other that recognise that there is nothing I can do, put it out of my mind, and concentrate on things I can do something about.

Apples and Pears (21/01/2012)

I’m a Windows user. Yes, you can stop booing now. But I don’t get Macs. I don’t get why they’re all white. I don’t get why there’s only one mouse button. I don’t get why everyone gets so excited about them being “pretty”. My fridge isn’t pretty (it is white though), but I still like that. Unfortunately, I’ve been required to use a mac at work to run our internal iApp store using xCode.

The process of using it has been a bit of an eye opener as well as a much needed slap in the face. I tend to think I’m good at computers, but using a Mac I feel so left handed. Even the simplest of tasks, like navigating to a downloaded file, is incredibly difficult. This must be how my Mum feels when using a computer. Given this, there are probably some things to learn about teaching people how to use computers.

However, while I’ve been trying to be balanced, there are some elements of the mac user interface that I think are objectively wrong.

Don’t get me wrong. There are some bits that are great. This, for example, is brilliant:

This is brilliant

You can’t tell just how great it is here, because it’s a picture, but in the real one, the fingers move. This is a great way of  explaining a quite complex task.

Of course, like all great things, it looks like this has been shamelessly copied:

Shamless copy

It’s clearly been “inspired” by the Apple feature. But the CGI fingers aren’t nearly as nice as the real ones. Not to mention the fact that there are more tick boxes and closer together in the Windows version.

However, I’m not ready to switch to macs just because they have a nice animation.

One of the big problems with the Apple interface is that too much stuff is hidden and not obvious unless you know it. Take the iPhone. How was I supposed to know that double tapping the click button loads up the “task manager”? I didn’t even realise double clicking the click button was a valid action.

There’s so much of this. To right click, you hold control and click. How is that obvious? I’m reminded a comment a friend of mine made once that good games, and applications, allow you to see the state of play and work out valid moves just by looking at the board or screen. Apple applications hide valid moves away. It creates a clique. Which, to be honest, is probably what they’re trying to do.

Also, I’m with Tog, the Apple dock is rubbish. It’s huge and takes up way too much of my screen estate. I had a Windows dock app once. And you know what, I turned it off. I like the quick start bar in Windows. It’s small. I like the start menu. It’s hidden.

I also find it strange how related items are physically distant from each other. Which is made more apparent in applications that load windows all over the screen. Of course, this is part of the maximizing button behaviour. Maybe I should just accept this as a tom-are-to/tom-ay-to thing (although, let’s be clear: the former is English, the later is American. It’s not a free choice which one to use, it’s an accent!).

But I like my windows maximized to my screen, so I can see what’s going on. Having floating windows encourages me to waste my time organising windows. And dragging and dropping windows is not work.

I think really, there are two things for me to learn here. Firstly, be humbled by my computer abilities. As I’ve said when I started this. I’m stupid. We’re all stupid. And I’m never be anything but stupid. However, if I learn something new every day, I might end up a bit less stupid than I started.

Secondly, UI design is tough. And teaching computers is tough as well. You can never make the design too simple, the text too easy to read or too short. It’s something I continue to work on with my software management application at work. For this to be successful it needs to be really easy to use and the text I send out needs to be so simple people grasp it almost immediately.

All is not lost (19/01/2012)

Support@tumblr.com were unable to retrieve the post I lost. It’s one of the first things I can think of that I’ve irrevocably lost on a computer. It’s somewhat ironic, because I’ve only just started my backup plans.

The “missing post” was about some free OCR software called tesseract. It’s not a massively important post, and I have a copy of the one key thing about it (the command line syntax) which is:

tesseract.exe FILE output -l eng

As well as, somewhat ironically, the pictures. Unlike Jeff I’ve kept the pictures but lost the text.

Here they are, showing the effect of the update. Accuracy of old version:

Old version

Accuracy of new version:

New version

However, I don’t want to talk about what’s missing.

Since I started my aim to learn something new each day, I’ve managed to write something every day. But losing this post was the first time that made me think, “oh damn, is it worth it”. It really annoyed me – perhaps more than it should.

There’s a section in Transformative Entrepreneurs where Jeffrey Harris talks about what makes people successful:

Successful entrepreneurs combine optimism, creativity, passion, courage and perseverance. They have an uncanny ability to keep going when times get tough. They have such excitement about what they are doing, and a need to prove to the rest of the world that their idea has merit and that they don’t quit.

Now, admittedly, losing one post isn’t the biggest set back in the world. It’s nothing compared to the set backs Mr Honda went through before his company became successful:

Like most other countries, Japan was hit badly by the Great Depression of the 1930s. In 1938, Soichiro Honda was still in school, when he started a little workshop, developing the concept of the piston ring.

His plan was to sell the idea to Toyota. He labored night and day, even slept in the workshop, always believing he could perfect his design and produce a worthy product. He was married by now, and pawned his wife’s jewelry for working capital.

Finally, came the day he completed his piston ring and was able to take a working sample to Toyota, only to be told that the rings did not meet their standards! Soichiro went back to school and suffered ridicule when the engineers laughed at his design.

He refused to give up. Rather than focus on his failure, he continued working towards his goal. Then, after two more years of struggle and redesign, he won a contract with Toyota.

By now, the Japanese government was gearing up for war! With the contract in hand, Soichiro Honda needed to build a factory to supply Toyota, but building materials were in short supply. Still he would not quit! He invented a new concrete-making process that enabled him to build the factory.

With the factory now built, he was ready for production, but the factory was bombed twice and steel became unavailable, too. Was this the end of the road for Honda? No!

He started collecting surplus gasoline cans discarded by US fighters – “Gifts from President Truman,” he called them, which became the new raw materials for his rebuilt manufacturing process. Finally, an earthquake destroyed the factory.

After the war, an extreme gasoline shortage forced people to walk or use bicycles. Honda built a tiny engine and attached it to his bicycle. His neighbors wanted one, and although he tried, materials could not be found and he was unable to supply the demand.

Was he ready to give up now? No! Soichiro Honda wrote to 18,000 bicycles shop owners and, in an inspiring letter, asked them to help him revitalize Japan. 5,000 responded and advanced him what little money they could to build his tiny bicycle engines. Unfortunately, the first models were too bulky to work well, so he continued to develop and adapt, until finally, the small engine ‘The Super Cub’ became a reality and was a success. With success in Japan, Honda began exporting his bicycle engines to Europe and America.

His plans were stopped by the whole world going to war and his factory was destroyed by a blooming earthquake. But he didn’t give up. I’m not sure I’m there yet. I think if an earthquake destroyed one of my projects I’d probably call that one a day, but I think this is an incredible lesson to us all.

The thing I’ve learnt today is to be successful you need to carry on even when you fail. Even if you fail ten times and then succeed, you’ve succeeded. Succeeding isn’t not failing, it’s working through all the failures to get to the success at the end.

It’s like that old joke:

“Why do I always find my keys in the last place I look?”

“Because you give up looking when you find them.”

The only way to not fail is to keep trying.

The other thing, of course, is to review your failures. They may be painful, but failure is the only thing you can learn from.

Consequently, I’ve reviewed Jeff’s list of “how to backup” again and looked at my process:

  • Don’t rely on your host or anyone else to back up your important data. Do it yourself. If you aren’t personally responsible for your own backups, they are effectively not happening.
    [I assumed queued posts were backed up. They weren’t]
  • If something really bad happens to your data, how would you recover? What’s the process? What are the hard parts of recovery? I think in the back of my mind I had false confidence about Coding Horror recovery scenarios because I kept thinking of it as mostly text. Of course, the text turned out to be the easiest part. The images, which I had thought of as a “nice to have”, were more essential than I realized and far more difficult to recover. Some argue that we shouldn’t be talking about “backups”, but recovery.
  • It’s worth revisiting your recovery process periodically to make sure it’s still alive, kicking, and fully functional. 

And I’ve got a plan to stop this happening again.

The only knife in the spoon drawer (14/01/2012)

I’m getting to the stage now, where I don’t know how you can be good at any modern job without being able to code. Almost any computer based task can be done more efficiently or intelligently, if you’re able to write scripts.

Going back to work, I need to remember not to let my head get big. I know a bit about coding, and so I’m able to fix problems that no one else can fix. However, this doesn’t mean I’m awesome at coding. It just means I have a different skill than everyone else in my office.

It’s like being the only knife in the spoon drawer. Everyone marvels at you because you’re able to cut small things, even if you’re just a butter knife. But you’d still lose in a sword fight.

I’ve had this before in other jobs. I don’t actually think it’s a bad thing, having a different skill set to everyone else. Sometimes setting someone with a different skill a task has interesting results. I’m sure it would be beneficial to get some chess players to manage a football team. They’d probably come up with some new ways of playing the game.

However, there’s a real problem here, in that it makes you feel better at things than you are, and stops you getting better. I’m reminded of a section in The 7 Habits of Highly Effective People:

There’s a guy who stumbled into a lumberjack in the mountains. The man stops to observe the lumberjack, watching him feverishly sawing at this very large tree. He noticed that the lumberjack was working up a sweat, sawing and sawing, yet going nowhere. The bystander noticed that the saw the lumberjack was using was about as sharp as a butter knife. So, he says to the lumberjack, “Excuse me Mr. Lumberjack, but I couldn’t help noticing how hard you are working on that tree, but going nowhere.” The lumberjack replies with sweat dripping off of his brow, “Yes… I know. This tree seems to be giving me some trouble.” The bystander replies and says, “But Mr. Lumberjack, your saw is so dull that it couldn’t possibly cut through anything.” “I know”, says the lumberjack, “but I am too busy sawing to take time to sharpen my saw.”

I think this is really key. It’s one of the reasons I started this project; to review each day and record what it is I learnt. Admittedly, there’s been a number of days, like today, where it’s a bit meta, but I don’t think that’s a bad thing.

A while back I flicked through a presentation about expertise by James Back. It’s an interesting undermining of expertise, which I think is very important. Fundamentally I concluded that if you think you’re good at something, you stop improving. And if you’re not getting better, you’re getting worse.

Level 0: I overcame obliviousness
I now realize there is something here to learn.

Level 1: I overcame intimidation
I feel I can learn this subject or skill. I know enough about it so that I am not intimidated by people who know more than me.

Level 2: I overcame incoherence
I no longer feel that I’m pretending or hand-waving. I feel reasonably competent to discuss or practice. What I say sounds like what I think I know.

Level 3: I overcame competence.
Now I feel productively self-critical, rather than complacently good enough. I want to take risks, invent, teach, and push myself. I want to be with other enthusiastic students.

Pimp my Tumblr Some More (08/01/2012)

I’ve quoted Steve Makofsky’s description of his blog as “a backup of my brain – a permanent online record so I wouldn’t have to write everything down” before, but I really like it. I’ve realised it’s exactly what I’m trying to do here.

It’s surprising how often parts of my brain become corrupted and need to be restored from the backup!

When I went home at Christmas I found this book:

My Favourite Childhood Book

As a child this was one of my favourite books about cartooning (I wanted to be an illustrator, you see). I pored over it for ages. And in particular one picture:

My favourite childhood desk

I loved the look of this desk and wanted to have one like it day.

I’ve had this picture half in my mind for a long time (when I first left home I bought two massive pieces of wood from Ikea and put together a corner desk a bit like this). However, it was really nice to see the original again since it had meant so much to me when I was little.

It was also really good to recalibrate my interests. Sometimes, we’re so busy going through life that we forget what it is we actually want. It was useful to put myself back into my childhood state of mind to remind myself what I like doing, and what I want from life.

This leads me back to the purpose of this blog. One of the reasons I’m keeping it is so that I don’t forget things. And I don’t mean things like buying some milk or writing a thank you note to Aunt Mavis for the knitted gloves. I mean useful things. The interesting, useful things you learn and read but then forget.

This Guardian article about “waiting-for-lists” sums up the sort of problem I’m trying to solve:

[…] multiple times a day, at work or outside it, most of us make requests of people – underlings, superiors, friends, service providers – and simply assume they’ll follow through. Even non-managers like me, whose work involves no formal delegation, “delegate” like this all the time: that’s what’s happening when you order a book from Amazon, ask a colleague for a piece of information or email a friend about your weekend plans. Yet based on an unscientific survey of my acquaintances, what proportion of people have a systematic way to keep track of who they’re waiting to hear back from? Zero per cent, approximately. (I suspect the same problem infects entire organisations, too.) And though aficionados of David Allen’s book Getting Things Done will be familiar with this issue, the vast majority of “productivity systems” are no help at all: they’re fixated on helping you remember and prioritise your own tasks – even though, in truth, you’re far less likely to forget about those.

It turns out that keeping a “waiting-for” list is like being handed a pair of x-ray spectacles for peering inside your colleagues’ lives. Based on what does or doesn’t get crossed off the list, as people do or don’t get back to me, I’m pretty sure I now know who’s on top of things, and who’s inefficient or just lazy, their email inboxes backed up like clogged drains. (It’s possible, I realise, that it’s just me they’re not responding to, out of icy contempt. I hope not.) The only downside is wondering how many loose ends I must have let slip before keeping the list: how many mail-order items ordered and never received, how many plans suggested to friends then abandoned, just because it slipped my mind that I’d ever asked?

I’m shocked to think of all the interesting ideas I’ve read or thought, insightful quotes, fascinating websites, things I’ve learnt and then just forgotten.

I learn things and then I forget them again. Trying to get less stupid is like filling a bath with the plug out. You’re filling it, but at the same time, information is running away.

There’s a bit at the beginning of each of the Head First Labs books explaining why this happens:

[…] what does your brain do with all the routine, ordinary, normal things you encounter? Everything it can to stop them from interfering with the brain’s real job—recording things that matter. It doesn’t bother saving the boring things; they never make it past the “this is obviously not important” filter.

How does your brain know what’s important? Suppose you’re out for a day hike and a tiger jumps in front of you, what happens inside your head and body?

Neurons fire. Emotions crank up. Chemicals surge.

And that’s how your brain knows…
This must be important! Don’t forget it!

But imagine you’re at home, or in a library. It’s a safe, warm, tiger-free zone. You’re studying. Getting ready for an exam. Or trying to learn some tough technical topic your boss thinks will take a week, ten days at the most.

Just one problem. Your brain’s trying to do you a big favor. It’s trying to make sure that this obviously non-important content doesn’t clutter up scarce resources. Resources that are better spent storing the really big things. Like tigers. Like the danger of fire. Like how you should never have posted those “party” photos on your Facebook page.

I’m not convinced that’s fully how your brain works, but it’s close enough. And the end result is the same.

Writing things down is all very well, but as Samuel Johnson says, there’s two parts to learning:

Knowledge is of two kinds. We know a subject ourselves, or we know where we can find information upon it.

So today I reviewed my tagging of my posts. More importantly I added the “categories” bar to the side of this page.

At first, I was a little annoyed that Tumblr didn’t add a list of tags to the side of the blog automatically, like, say, Blogspot or WordPress. However, this has given me an opportunity to organise my tags a little better.

I want to keep this up to date, and regularly check that I haven’t inadvertently mistyped or created any new ones, and that’s where today’s script comes in.

set xmlhttp = CreateObject(“MSXML2.ServerXMLHTTP”) 
xmlhttp.open “GET”, Page, false
xmlhttp.send “”
Fetch = xmlhttp.responseText
set xmlhttp = nothing

I’ve written this vbscript function that downloads the contents of webpages into a string.

Luckily, on Tumblr, the complete post of each article is displayed in the summary page, so I can just work my way backwards through the pages until I get to the first article:

http://lessstupidthanyesterday.tumblr.com/page/1

http://lessstupidthanyesterday.tumblr.com/page/2

http://lessstupidthanyesterday.tumblr.com/page/3

etc…

All we need to do is hold some unique text from the first article I wrote. Something like the unique Disqus key (of course, I can’t post it in this article, or I’ll break my script!).

We end up with a script that looks a little like this:

DO UNTIL Done = “Done”

NewPage = Fetch(PageUrl & PageNumber)
PageContents = PageContents & NewPage
PageNumber = PageNumber + 1

IF INSTR(NewPage,EndContent) > 0 THEN
   Done = “Done”
END IF

LOOP

Now that I’ve got all the contents of my Tumblr articles in a string I can do some interesting things with them.

It’s actually a backup (although not the backup, as the proper one has to be automatic, and I’ve already solved that problem), but I can do stuff with it.

The first thing I did was this, so that I could pull out all the links:

Links  = Split(PageContents,”href=”“http”)

Then I looped over the array and removed all the junk data:

ThisLink = “http” & Left(link,INSTR(link,”“”“)-1)

To leave me with just the link name. Splitting the text string into an array may seem strange, but I think it’s the neatest way.

Now that I’ve got all the links I can pull out all the tags, check them against the current list on the website and just display new ones:

IF

// This checks if it’s a tag 

 INSTR(ThisLink,”tumblr.com/tagged/”) > 0

// This checks if it’s a duplicate 

 AND INSTR(TagList,Mid(ThisLink,50)) = 0

// This checks if it’s already on the site 

 AND INSTR(ExisitingLinks,ThisLink) = 0

THEN

TagList = TagList & “
” & Mid(ThisLink,50)

END IF

But what I can also do is run each proper link against this function:

set xmlhttp = CreateObject(“MSXML2.ServerXMLHTTP”)
xmlhttp.open “GET”, Page, false
xmlhttp.send “”
PageStatus = xmlhttp.status
set xmlhttp = nothing

And check that they work!

I know there are some link checking services out there:

Are the two that jump to mind. However, I find they tend to get a bit confused.

I ran my website through Xenu recently, and it spent the rest of the day trying links. Hundreds of thousands of them. Now I know I’m generous with my links, but not that generous. I think it must have got into a loop and was trying the same page multiple times.

I mean, even running the W3C Link Checker on this Tumblr site now, it seems to check the standard pages and then click into each article and check them as well.

I don’t blame them. There’s no way that they can know that the text of this article will be duplicated on the summary page and on it’s own individual page  – but since I’m getting the data anyway, I can run my own check, and it can do it customised to my exact requirements.

Tag Cloud