Archive | communications RSS feed for this section

Part I: Is There a Such Thing as Real World Haskell?

8 Sep

Part II:   How not to Start Your Haskell Program >

Here’s a bit of sardonic code, that I’d like to propose to any Haskell advocate out there.

data Works = Works | Does_not
computerApp a ::  Maybe a -> Works
computerApp a
     | isJust a = Works
     | otherwise = Does_not

I have been playing around with functional programming in Haskell.    I have to say that it has more than certainly improved my ability to code in other languages, and probably has reduced the number of bugs I have to fix after the fact.    On the other hand, it has driven me absolutely batty.

To be fair, I need to say that I am not a computer engineer.    I have a BA in English.    My Masters are in Public Administration and Information Management.      I engaged in Haskell code simply as a curiosity and a challenge.    I love math, and became curious about Monads and Lambda calculus.    I am probably not smart enough to be a great Haskell programmer.   However, I do understand two things.    1)  Not-smart-enough people can and want to participate in application development   2)  Coders, while making apps that do what they expect them to do, do not always understand (or care) about the sustainability and/or scalability of their code.

Web Development is an important test case.      Just about anyone, with a reasonable amount of time and effort, can learn to develop a website in PHP, probably supported by some content management system as Drupal or ModX.    Somewhere, their development goes overboard, the system does an upgrade to support some security risk or vulnerability, and ‘pop’ –>  all that likely un-documented and messy code goes nowhere and wheels need to be reinvented.

That’s why learning Haskell is probably a good idea.    Without getting into the code itself, it insists that a function always causes the same result to happen with any given input(s).    Once developed, the documentation pretty much always exists in a minimal form (via Type declarations).    So many bad habits would disappear if only people were forced into developing this way.

The problem, unfortunately, is that Haskell coding is confusing.     There is no popular development framework to use it.     Once you try to apply the examples provided in text books to real world development, things go wonky.    I won’t go into the many reasons why, but I do have an observation based on what I’ve seen in responses from various gurus to newbies like me.

It’s this ->   Users think computers do things.    Computer engineers think computers solve problems.     In Haskell terms, any interaction between users and engineers results in a type error.    Somewhere along the line, an IO() monad needs to be created to turn what engineers like about Haskell into something that users will like about it.

I would like to propose a management framework, similar to extreme programming, to manage the development of functional code for regular people.   While Programming it in Haskell is not a bad start, it uses a problem solving model, rather than a ‘how do you make the software do x’ model.    It focuses on mathematical abstractions rather than simple actions.     For instance, I would like to see a book that uses the development of a rogue-like rpg game in Haskell as an example.    Instead of worrying about efficient computation, abstractions about ‘laziness’ and recursive factorial examples, the writer would have to focus on managing complex (a tuple of a lists of tuples) types, worrying about random numbers and IO issues that are inherent to Haskell.   In approaching such a game, should I worry about creating newtypes first, or work from what I want main to do and fill in the gaps?

But while I make this suggestion, I really have no idea of what kind of advice I can offer your typical new-to-haskell coder.     But I have some hypotheses:

  • work from the main :: IO() first and build a framework of functions to develop your outputs.
  • possibly create type variables for each of your functions, making it equal in Type to a typical output you would like to see.    Then work backwards from there to create a lazy output, then involve possible recursion and so on.
  • use generic types (eg. Int, String, Char etc.) with comments first, then develop types to make your code more clear.
  • unit tests should include the System.IO.Unsafe module (cheating should be allowed when you are testing your code – let the learning happen when you are developing real code)

I’ll add what I can as I continue to learn more about coding in Haskell.    The bottom line is that I think more people should be coding in a language like Haskell, but they are unlikely to work with it if they end up spending a bajillion hours just to get it to choose randomly from a list of monsters (for example).   Especially when they can learn how to do the same in three minutes using an imperative language like Python.

For the greater good and more sustainable code overall, what high-level tips or approaches can you offer any newbie coders of Haskell, so they can develop without becoming absolutely bogged down in failure with their Haskell programs?

UPDATE:   After writing this, I found a great powerpoint tutorial by Graham Hutton that uses Hangman as an example of interactive Haskell code development.

How to Talk to an “Aspi” – Asperger’s, Autism, Labels, Stereotypes and Strategies

29 Apr

Update: After writing this, I read this great article by someone name Astrid who has Aspergers and think it’s a great counterpoint to what I said here.   I now can’t imagine this post being ‘out there’ without a link to that post.   I have no real response to Astrid except to acknowledge the tension between the perception of Aspies as ‘elite’ (in a way) and the often unfair expectations that those perceptions have on people with Asperger’s.

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

My son is a genius in so many ways you cannot imagine.   He is now six years old.    He has been talking since he was barely 12 months old.    His vocabulary could make Rex Murphy feel like he needs to go back to grade school.

He can tell you the some interesting properties of many chemical elements you’ve never heard of.   He once wrote Martyn Poliakoff of the Periodic Table of Videos to ask him:

  • What do people use Beryllium for (just watch this video)?
  • What is the most dangerous element?  (there are various reasons for danger.   Plutonium is very toxic.   Fluorine and Cesium are the most reactive.)   What is the least dangerous element?  (probably Helium)
  • How do you suppose ununoctium is very small when it has the most protons?   (It’s not small, but only a very small amount has ever been made – and the experiment that claimed to have made ununoctium has its critics for sure).
  • If bananas contain potassium why do they not explode when you put them in water?   (it’s not elemental potassium that bananas contain, but potassium ions, which do not explode in water).

There’s more.   He’s gotten as far as level 8 in Globetrotter XL (a game where you are asked to pinpoint the geographic location of world cities).    He can probably describe most of the world flags and definitely all of the U.S. state flags.    He can name all the state capitals and nicknames.   (Also, he is Canadian, so he has no real education on this topic.)    When he was 3, I could rely on him to give me accurate instructions on how to drive to someone’s house after only a single visit.

When he got to school, however, we learned that he was having difficulty socially.    We are also realizing that there are some issues with some areas of his academic life too.   That’s when we discovered that he’s an ‘aspi’ – a child with Aspergers.    Whether that’s a diagnosis, a personality type or just a way for so-called ‘normal’ people to marginalize him, I’m not quite sure.   I do know that paying attention to the nuances of his learning style has been really helpful to let him deal with everyday life things.

So he must be socially awkward right?    Must be like Rainman, right?    Spock?    Temperance Brennan from Bones?    Keeps to himself, right?   He must shy away from social situations and show little emotion to others, right?    Total lack of empathy in favor of logic and detail.   It’s all obvious!

Well, no.   My child is  extremely engaging, interesting and (in a way) interested in people.    The differences are more subtle and hard to pin-point.   You’d know there’s a problem somewhere with the way he interacts with others, but you would find it hard to pinpoint what.    But, if you meet a kid that:

  • Is very welcoming and friendly.   Almost assuming right off that you are a friend.
  • Is very polite on the phone.
  • Assumes that you are interested in what he is talking about.
  • Assumes you want to participate in the things he wants to do, and maybe gets angry if you don’t.
  • Interrupts your conversations with others.
  • Gets upset over basic requests or instructions.
  • Asks surprising questions and offers amazing insight on a wide range of topics.
  • Will do a speech as if he were defending a thesis, but then fail at answering basic open-ended questions about the same topic.
  • Is surprisingly slow at getting ready for going outside etc.
  • Will repeat certain behaviors and actions over and over again.

That might be my kid.

If you happen upon a kid you might think is an aspi, here are some things you could consider:

No Surprises

Little surprises will make Mr. 6 anxious.    Simple requests like ‘go brush your teeth’ can turn into total battles if they appear (to him) to come from left field.    A better approach is to give him a list of the things that need to happen, preferably with time-limits to go with them.

Be Patient

Mr. 6 will ramble.    It’ll take him a few shots of ‘umm…  uh…  I have a question for you…’ etc. before he comes out with what he needs to say.

Turn Open-ended Questions into Multiple Choice

No matter how many times I ask Mr. 6 ‘what does he want for dinner’ he will always reply ‘i don’t know, what is there?’    And he’s a picky eater – he only has a few things that he enjoys eating!    On the other hand, if I hand Mr. 6 a menu, he will be able to give me ideas even if nothing on the menu is appealing to him.    So if you want to ask Mr. 6 why he is angry, you should say ‘I think you might be angry because:

a) you are disappointed about not getting candy

b) you are a mean grouch

c) someone called you a mean name

d) someone ate your lunch’

Even if all of these ideas are absolutely wrong, Mr. 6 will be able to take one of options and give you some insight into how he is feeling.

Act Like a Librarian

There may be no actual evidence to support this assertion, but sometimes it’s like Mr. 6 has a Library of Congress in his head with no retrieval system to find the right information at the right time.    If you are able to help him out with a little subject classification, he may be able to find the right book in his head and recite its contents in detail with amazing analytical capability.

Get Ready to Have your Mind Explode

When I explained my little ‘act like a librarian’ technique to a doctor, Mr. 6 corrected me and said ‘it’s like I have to build a tall building and I don’t know what materials to start with.’    That doctor is probably still cleaning up the grey matter from her office after that insight.

Model Behaviors

Mr. 6 will always be better at imitating the positive behaviors he sees in other than understanding how he is annoying you.    If he can come up with a rule about what to do at the right time, he will do it.    He understands that people get annoyed at him, but he doesn’t always understand why.   Show him an example of how he could behave when certain things happen and he’ll be happy to oblige.

Is Something Else Bothering Him?

Mr. 6 hates loud sounds.    It might not be you, but where you are standing that is bothering him.    If an environment is complicated or noisy, it might be causing problems for Mr. 6.

It’s About Learning Difficulty, Not Emotional Problems or Intelligence

If you are the sort of person who just likes to label and ignore people with learning trouble, just listen to Temple Grandin for a few minutes.    People on the Autism spectrum have the potential not only to be productive members of society, but to transform society for the better.   Like the way a wide range of overachievers just so happen to be dyslexic, there’s a comparable list for people with Aspergers (grain of salt needed for both lists, however).

So there’s my contribution on the challenges that go along with the gift of having an ‘Aspi’ in your life.     Mr. 6 makes me smarter.    He also breaks a wide range of assumptions I have about people learn, teach, ought to behave, and so on.

Podcamp Toronto 2010 – My Recap

23 Feb

Going to Podcamp Toronto has been one of the best things I’ve done in quite a few years.     Yes, better than Computers in Libraries.    Better than OLA Superconference or really any library conference I’ve gone to.   And yes, as Phil Swinney mentioned, it was better than Podcamp Halifax as well.

Podcamp Toronto is better than most library conferences because:

  • A lot of what podcasters and social media artists do relates very well to librarianship.
  • As a librarian, I felt I had a unique perspective to share in the discussions about social media marketing and podcasting.
  • Unlike librarians, social media marketers want to connect to as many people as they possibly can – not just their friends and colleagues.   The #PCTO2010 crowd was very friendly and supportive.   They wanted to help newbies learn and share tips with their colleagues.
  • Podcasters and Marketers are very curious about librarians.   They know we are very crappy marketers of extremely valuable and useful services.

Podcamp Toronto was better than Podcamp Halifax for a few common sense reasons:

  • They were much better at filming / streaming etc. of the presentations – (because they are bigger).
  • They were better at securing sponsorship (at the Saturday party, an elephant could have got very drunk without paying so much as a cent).
  • There were just that many more connections, more excellent presenters, more diverse questions etc.
  • No one had to justify their social media presence.   It was a given that social media is important and valuable and Podcampers were going to reap the benefits of their diving in to this space early.
  • There were more podcaster presentations.  The one I went to by John Meadows about editing interview content was fantastic.  (I’m not really a podcaster, but he made me want to become one).

Podcamp Halifax was Better at:

  • I like that we have a keynote – it goes a little against the ‘everyone’s a rockstar’ idea, but it does offer a little break between the sessions that everyone can comment on.
  • Many of the things the organizers were worried about (markers, water, printing capabilities, computers etc) were things I didn’t even bat an eyelash about because the library already had it all.
  • We were more newbie-friendly.
  • Our battledecks session rocked the socks off everyone.   (That said, the #PCTO2010 battledecks session, was great as an opportunity for a newbie presenter to develop their skills).

There were some similarities as well:

  • It is harder at a Podcamp to get a conversation going in sessions than it is at other unconferences I’ve experienced.   I think this partly has to do with the fact that the ‘marketplace’ is set before the event.   When you put more time into establishing the marketplace and explaining such things as the law of two feet, I think it opens the door more to true unconference ‘OMG-the-audience-just-overtook-my-presentation’ effects.
  • The average caliber of presentations was about the same.    Toronto had more outliers (both bad and good), but in general, there was at least one good presentation for everyone.
  • This was a great place to meet all those podcasters that you’ve never met and wish you had.

I also have some suggestions for both Podcamps:

  • Arrange rooms for circulation.    Make sure that people can get in and out of rooms reasonably easily without disturbing others.   (I got caught in a room that I wanted to leave really fast, but couldn’t because of the way the room was set up).
  • There’s got to be a way to enable impromptu sessions.  I haven’t figured it out myself, but it would be so helpful.
  • It’d be nice if there was a way for everyone to get beyond promoting their business/brand at Podcamp.   I realize that it’s all part of the game, but it can’t be just a dream.
  • I’d like to get more people ‘from away’ to Podcamp Halifax.   We had a good mix in the first one and that made for some really great learning for the more experienced podcampers.   This year seemed a little more like a ‘newbies learn from experienced folks’ camp.
  • Schedule by Plain Old Wiki would have worked better for me as a potential presenter.
  • After PCTO2010, I’m not convinced a two-day podcamp is better.   Many many fewer people there on Sunday than there were on Saturday.   A lot of great presentations were missed by the people who partied just a bit too hard the night before.

In general, I feel really refreshed.   I think I’ve learned a heck of alot about social media, podcasting and making Podcamp Halifax better.   I met a whole bunch of great people.   I have a nice stack of business cards so I can keep in touch and I paid alot less than if I went to a traditional conference.

Librarians, get thee to a podcamp!

A Kick in the H1N1 (hiney) – or How Social Media Can Help You When the Message Changes

18 Nov

The communications on the H1N1 (aka Hiney) vaccine in Canada has been a mess.    At first the message was ‘everyone should get the vaccine.’   Then it turned into ‘wait we don’t have enough vaccines for everyone, so it’s only young children and people with chronic illnesses.’   Doctors offices are getting calls all over the place.   H1N1 is over-publicized.   H1N1 is a real threat. And, there is actual evidence that Canada may be doing a better job than other countries at getting the vaccines out.

Some will argue that the problem is poor communication planning.   These problems  are no different from any communication problems.   Key messages change all the time.   Being prepared to change direction is all part of the PR game.   But I bet the people responsible here planned the heck out of this program.   I bet they had a communications plan that could make even the best firms blush at their prowess.   What they did not expect – and should have – is that the public expects faster, more personal and transparent responses to important public messages.   The public expects social media.

Here’s how an advanced social media plan would have benefitted the H1N1 campaign, even after all the messages changed.

Social Media is Fast

Twitter, Facebook, a blog, YouTube and other things like it bring out a message very quickly and easily.    That means the H1N1 message could have gotten out sooner, and offered an open and honest dialogue with the public about the risks, benefits and requirements for citizens to get the vaccine.   All of this could have happened *before* the big marketing push went out and got people all excited, and it could have switched gears as soon as people knew there were going to be problems with the supply.

Social Media Won’t Play “GOTCHA!”

People online like to bitch and complain.   They are skeptical and even jerky sometimes.   But one thing they tend not to do (because they will get their backsides whipped for it) is try and trap someone into a cheap gaffe just to sell newspapers.    If they do, political folks can call them on it easily and quickly.   In Canada, Health Care is political – there’s no end to how social media could have improved the message.

Social Media Builds Trust

The public will always be more receptive to changes in the message if they trust the source that’s saying it.    A clear, traceable road to the process of building, preparing, and distributing the vaccine would have been both inexpensive and indispensible to the messsage later on.

Let Networks Work For You

Having respected Health Professionals onside as the message was getting out would have been equally indispensable, and social media could have done a great deal to help establish those networks.   Networks can clear up questions before you have to, and maybe clarify things that you haven’t really been clear on (hey, nobody’s perfect) in a fair, constructive manner.

Social Media is Timely

Locally, both Capital Health and the IWK have made fair attempts at keeping their public informed about the wait times and availability of vaccines on Twitter.   It’s a modest effort, but an appreciated one, taking advantage of the timely nature of social media to keep the public informed.

Social Media Efforts Receive Feedback

If you are getting it wrong, your network will let you know.   Also, in the spirit of “there are no dumb questions – maybe someone else had that question but was afraid to ask,” the social media folks could have responded to some of those more nitpicky details without bulking up those press releases.

Social Media is Not the Same as Hype

Don’t believe what the media tells you.   Twitter did not ‘light up’ with all kinds of hype about H1N1.   The hype came from media outlets trying to sell news.   And when people told them that H1N1 was overhyped, they turned that into a news story too.   Social Media does not really get all excited about controversy.    People have opinions and sometimes it can be hard to filter through them all, but it doesn’t thrive on the kind of ‘fight or flight’ energy that traditional media does.

Social Media Thinks Long-Term

After flu-season is over, a good social media infrastructure could have been shifted into something more broad reaching.   For example, a communications effort to prevent all infectious disease.

Social Media Appreciates a Good Laugh

Social media give the messenger an opportunity to laugh at him or herself without losing credibility in ways that the traditional media does not.     People respond to joy.    They change their behaviors because of joy – even moreso than they do with fear.  Why not bring more joy into people’s lives?

In short, institutions with millions or billions of dollars in budgets cannot afford to let themselves down by ignoring social media in their communication plans.   At most, what I have proposed here would have cost $100,000 in staff time and expertise.   I am sure the H1N1 campaign had plenty more of that at their disposal and a big mess on their hands to show for it.

How You Look Is Part of the Story

30 Jun

Inspired by Joel Kelly’s first experiment with Videoblogging, I grabbed a flip and made my first attempt at video blogging.     In the aftermath, Joel noticed that people wanted to talk about his vacation beard more than what he was actually saying.

On the whole, the advantage to video is that you have appearance and sound to add to your blogging palette.   We shouldn’t be surprised that people comment on such things, even if it seems inane at times.

Michael Jackson and 5 Other Things I Do Not Care About

26 Jun

I love the man’s music. I have deepest sympathies for the family, especially his kids. But that’s where it ends for me. Michael Jackson’s death is a personal matter for those close to him. I really wish the media and all his so-called ‘fans’ would butt out – like one of the characters in Gates of Heaven (one of my favorite movies) says, “Death is for the Living.”

People appear to want to draw attention to so many things that I believe should be low on the totem pole of attention.   We have such short lives, why is it that we want to spend large quantities of it worrying about what Paris Hilton and Brittney Spears are wearing (or not wearing)?   It all makes me want to be more concious about what matters and in turn, to be concious about what does not matter.   Here is my list of things I am conciously deciding not to worry about.

Domestic Poverty

Domestic poverty is off my list for two reasons:   1)  I’d rather focus my attention on World Poverty and 2) Domestic Poverty is really a symptom of other equity issues such as support for mental health, access to child care, and equity, especially for those with disabilities.   In my view, Canada is a country with tonnes of opportunity, and sufficient infrastructure to ensure that a population will not starve.   This does not mean I will not donate to organizations like Feed Nova Scotia, but it does mean that my ears will shut off if you are trying to lobby on a platform of poverty.

Preserving Heritage

The key to this statement is preserving heritage.   I think heritage is important, but because it represents a living, breathing entity – not because it is old and needs to be protected.    What I value about my elders is not that they old, but that they have a story to tell.   Some things are historically valuable and need to be preserved, sure – but certainly not everything, and absolutely not everything at the expense of a living, breathing city environment.   Librarians know all too well that an old rusty copy of War and Peace will do nothing to protect the value of Leo Tolstoy’s work.    A new, fresh, exciting-looking copy will have people reading and re-reading the book —  that’s the way you protect heritage, by helping people re-live the past.    That means you weed the old and replace it with new.

Privacy

Don’t get me wrong.  I would never spy or harrass others or want to be spied or harrassed.   Nor would I ever breach a confidentiality policy of any employer I may work for past, present or future.   But, I feel that the wholesale protection of privacy is costing us immensely in terms of service, and therefore I am just not going to pay much attention to this issue.   The lack of progress in a wide range of services in the name of privacy is astounding, and I’m sure that an audit of government would show a huge amount of time and money wasted to prevent that one case where someone discovers prematurely that their wife or husband wants a divorce, or that their young daughter or son is using birth control.   So much of this information is already available on the web if someone wants to look for it anyway – I do not think we can pretend we have private lives for much longer.

Funding for Elite Sports

OMG!   Another country might have more medals than us at the olympics!  How will the next Sydney Crosby thrive if we do not put ourselves into massive debt to provide special facilities for sports?   “Who cares?” is what I say.

What I see in a good amount of even semi-elite sports is not pretty.   The level of single-minded “win at all costs and blame the ref when you don’t” attitude in many sports is astounding.   The things that mattered to the originators of the Olympic Games concept have been pushed aside.   Remember words and phrases like “sportsmanship?” “sound mind, sound body?” and how sports was tied to education?   That seems all out the window in favor of money-making.   I don’t believe in sports anymore.  It used to be an opportunity to think about myself as a better person, now it is a crass illusion that parallels rather than promotes “success.”    There are exceptions, where sports figures are respected for both mind and body (Steve Nash comes to mind), but that’s the exception and not the rule in my view.

“We Need More Funding For. . .”

Just the general premise that we will only solve problem x if our governments make problem x a priority and provide it with funds is just not going to resonate strongly for me.   I believe in some of the work that John McKnight has done around asset-based community development, and agree with the general position that professionals invent problems and issues inside communities that they can solve and then use the community’s funds to solve those problems when the community had the ability to cope with those issues all along.

Here is a librarian example.  A librarian does a study on university students searching only to discover what is the most obvious thing:  university students are not the same as librarians!   That is, students do not automatically use boolean operators or advanced searches to find materials for their research.   Said librarian then uses this information to justify training sessions (ie. hire more librarians) so university students can become more like librarians.   The thing the librarian does not ponder is whether university students need to behave like librarians to be successful at their research; nor does he/she consider the impact of increase education costs (caused in part through funds spent on librarians) on that student’s capacity to learn how to research more effectively.

In short, I really dislike any movement  that blindly asks governments to give organizations more money.   I do not think professionals do it on purpose, but it is a really bad habit that I see over and over again.      Communities need resourcefulness from their not-for-profits, not funding.    And most importantly, communities need not-for-profits that shine the light on what communities already do well, so they can encourage these behaviors.

Well, that’s my list of things I am going to conciously not spend anymore attention on.     What is your list of non-issues in your view?    Am I unfairly representing any of these issues?

Follow

Get every new post delivered to your Inbox.

Join 3,506 other followers