March 7, 2018
by Campbell

Raspberry Pi for me

I always have lots of ideas buzzing on my brain. Most of them involve small form programmable devices, and the more connected, the better. So when I saw information on the new Raspberry Pi 3, I just went and got myself one. For those that do not know, it is a tiny computer with WiFi and Bluetooth! Excellent! Besides, I have used Arduinos, but not a Raspberry Pi before. This was a gap in my knowledge which I had to fill.

It arrived and as with most new gadgets, my experience was very limited to this point. Also, since I’m quite time constrained I bought it with a ‘newbies’ kind of SD card that was already prepared with some kind of partition that would let me select which operating system I wanted to use, and install it from there.

Physical setup was easy and enjoyable as I connected things I already have to this little tiny box: old Macbook Air, a USB SNES controller, a wired USB keyboard and Microsnot mouse, a USB mobile phone charger for power, and then the HDMI plug from the TV (but this is not old!).

Once it turns on, it displayed a gradient test pattern and then allowed me to select which system I wanted to install, all using a GUI. For some reason a mouse didn’t work, nor the USB controller I bought, but I could navigate using the keyboard. I selected RetroPi and it went ahead and installed the system.

During installation it displayed a few of those “here’s all the cool things you can do with this operating system” we’re used to see from the times of Windows 95, except instead of tacky suggestions such as improving productivity and synergies, it spoke about the creative applications such as Sonic Pi, programming environments such as Scratch and also just plain old Python. This was very nice and I felt right at home. But I plan on using mine for EmulationStation and RetroPi to play old classic Retro games.

This took about maybe 10 minutes? I don’t recall because I was doing other things (namely: dealing with Penelope and cooking). But when it finished, it restarted to boot into the newly installed operating system.

I turned it off and on again. This time it booted directly into RetroPi and EmulationStation, and seemed stable (no reboot loop!), the controllers worked this time, and I went straight to try to find if the WiFi would just work. Which it did, unlike other systems. Exciting! One of the main reasons I bought this Pi worked successfully on the first go. Beautiful.

I’m super impressed by the performance of the Raspberry Pi 3. The GUI is super responsive and it certainly doesn’t feel like a $35 computer at all. I would strongly recommend anyone with a techie brain like me to get one. Might get another one and use it as a NAS Server for all my movies. Hrmmmmm….

Interactive 3D

November 14, 2017
by Campbell

Interactive Web 3D

At work lately, I have been given the job to create an interactive 3D model framework. Sure, I have done stuff in Blender3D and OpenGL in the past, but I thought, how can I do this on the web (most browser support), tablet/mobile friendly and make some things dynamic. Back when I started web development, VRML was a thing, and sure it was awesome for its time (albeit not many browsers supported). I needed something which had the power of what I can do in Blender3D and OpenGL, and I came across this cool Javascript API called WebGL. Programming directly in the WebGL API I found to be very complicated and messy, but lucky for us there are libraries that simplified this for me. I came across this cool and lightweight one called Three.js by mrdoob. Three.js is an awesome 3D library that hides a lot of the WebGL complexities and makes it very simple to get started with 3D programming on the web. You can use Three.js in any way you could use canvas, including full-screen animations, so long as the device supports WebGL. It reminded me a bit of OpenGL and Renderman when I started reading the documentation.

The process of creating 3D using Three.js could be likened to how a movie set works. You start with an empty stage and add some things to it to create a scene. For example, we could add some actors, props, and a backdrop so it looks like we’re inside. Each actor puts on a costume so they look like the character they’re playing. Lights are added so we can see and to set the mood. Finally a camera is positioned to shoot the scene from the desired perspective.

So the actors and props are made by a collection of vertices and faces, which combined is called a geometry. Then from this step, you assign a material to a geometry. A material can be a flat colour, or it could be a texture such as a photo of rock, or wood, or skin. When a geometry and material are combined you have a mesh. A mesh is a complete object that can then be added to a scene. You can move and orientate the whole mesh in your scene as a single object, but you can still access its individual parts if you need to.

Anyways, I can talk more about this another time, lots of work to do. Ciao for now.


May 17, 2017
by Campbell


I was recently reading an article on ATD about Executive Onboarding: How to Hit the ground Running by Cheryl Ndunguru. It made me ponder on this and while everyone in the workplace has a part to play in the culture of their workplace, it is in my opinion, the people with official leadership roles who have the power to make an enabling environment and lead their people back to a great place to work. So with this in mind, I am thinking of developing a small onboarding framework, which I may package up.

By definition, for those that do not know, onboarding is a process to assist the transition of new employees into an organisation. It is known that organisations demand high performance. Management expects the new staff to become effective quickly, to deliver positive results and to integrate well into the culture of the organisation. New staff, in turn, need to devote time to understand their new company’s characteristics (strengths and weaknesses, resources, challenges, and capabilities) if they are to be effective and successful in the role. Obviously, new people must also have the skills and the flexibility to meet the requirements of their role and they must also adapt to the new culture, forge connections and ensure that they understand what is expected of them.

In most organisations, new staff usually take over their predecessors’ teams – people they have not been involved in selecting. But the personal success of a leader stands or falls on their team’s performance. From my research, I have thought of a seven-stage plan on a successful onboarding program. This would be done in a blended approach to help with the connection forming. Personally, I would see this best done as possibly a team game based approach, with game elements of a scavenger hunt (SH) or a choose your own adventure (CYOA).

1. Preparation for the role
2. Expectation management
3. Setting the strategic agenda
4. Creating the right team
5. Forming alliances
6. Developing the culture
7. Effective communications

April 24, 2017
by Campbell

Playing Uno

I regularly host and go to board games nights. Sometimes we play King of Tokyo, Game of Life, Pandemic and the like. Recently we’ve been taken to playing Uno.

Uno is a game I have fond memories of as a child and Ella loves playing too. Simplicity and family fun, all too easy to discard for complicated games as an adult. It’s a bit tame, so we have decided to add a few cool “interesting” rules to spice it up a bit.

The winner of each round may add a new rule. They may also override or discard a previous rule if it didn’t work out.
Cumulative, chaining +2s. A +2 (of any color) may be played atop another +2, passing +4 onto the next player. They, in turn, can make it +6, and so forth. A similar rule got added later for +4s.
Chaining skips: When a skip card is played against you, you may instead play a skip card of any color to pass it on to the next player. In our play, only one player misses their turn at the end of the chain, but you could probably make them additive as well (such that three consecutive skips result in the next three players missing their turn.)
Interceptions: You may play out of turn if you have the exact same card as was just played (and if you’re quicker than the player in sequence.) Play resumes with the next playing in sequence after the interceptor. You can also intercept yourself; playing duplicate cards together.
Chaining while drawing: When you’re at the end of a cumulative +2 chain, you may draw your cards one at a time and if that card is itself a +2, you may play it and move the remainder of your draw (plus two) onto the next player. So, you must draw six. You draw one card which is a +2. Play it! The next player must draw 7 (or play their own +2 to continue the chain.)
Special Interceptions: On top of the regular out-of-turn interception described above, and chaining-while-drawing, with an exact match, you can intercept a +2 at any time, that is, while someone is drawing. That is, you can allow one player to draw half their penalty and then pass the remainder to another player.
69: At this point, you’ll be playing fast and trying to keep up with whose turn it is. At this point, 6s and 9s might as well just be the same card, so we’ll allow it. (This, of course, makes 9s and 6s more powerful for interceptions.)
Zero Trades: If you play a card of number 0, you must trade hands with another player. You can introduce this rule as “must” or “may”, depending on how chaotic you are. Any player receiving a single card in this transaction must declare “Uno”. (You are allowed to win when playing a 0, though.)
Sequences: If you play a 3, you may also play a 4, 5, 6, etc. of the same color.
Sets: When playing a card, you may also play cards of any other color that match that number.
This can result in: Playing a Yellow-5 out of turn on another Yellow-5, stacked with a Green-5 and Red-5 (sets), stacked with a Red-9 (because that’s also a six), Red-7, Red-8 (sequence), stacked with a Yellow-8 (another set.) If you can keep your hand organized well enough to pull that off, you deserve to win, in which case you get to add another rule.


March 30, 2017
by Campbell

Virtual and Augmented Reality

Virtual reality (VR) refers to the computer-generated simulation of a world, or a subset of it, in which the user is immersed. It represents the state of the art in multimedia but concentrates on the visual senses. VR allows the user to experience situations that are too dangerous or expensive to enter ‘in the flesh’. Users may explore the real world at a different scale and with hidden features made visible. Alternatively, the virtual worlds that are generated may be entirely synthesized: realistic within themselves, but purely a manifestation of electronic structures. The term ‘virtual reality’ conjures up an image of a user weighed down with a helmet or goggles, grasping, apparently blindly, into empty space. The user, within his virtual environment, moves through a simulated landscape, picking up objects on the way. This is fully immersive VR. However, it is only one part of the spectrum of VR, which also includes desktop VR, command and control situations, and augmented reality, where virtuality and reality meet. Virtual reality has been shown to successfully produce environments that mimic our everyday world. Architects have always used models and sketches to show clients how a building will appear. Now, with the use of VR, they can take clients through a virtual tour of the building, fly over it from above, look at it from the streets outside, enter the doors and walk through the corridors. I have also seen techniques used to plan kitchens and even gardens. However, there are also many things that we cannot see, either because they are invisible to the naked eye (heat, magnetism, gravity) or because they are too small or too large. Scientific and data visualization systems make use of VR technology to expose and explore these features. Augmented Reality is another term, often confused with VR. In augmented reality, electronic images are projected over the real world – virtuality and reality meet. The head-up displays in many aircraft and even some automobiles can be regarded as an example of this, but the data in such displays are not typically connected to the objects seen through them and, hence, the blend between virtuality and reality is quite weak. The great difficulty with such systems is in ensuring that the physical and virtual world are correctly aligned, a problem called registration. If not properly registered, a virtual ball would either bounce short of the real wall or else appear to go through the wall and then bounce back from the other side. Augmented reality techniques hold great promise, and have been investigated especially in situations involving the maintenance or assembly of complex equipment. These forms of development I would love to explore more.

March 8, 2017
by Campbell

Learning Theories

Working in the eLearning scene the last ten plus years I have been with a lot of companies who do not fully understand how people “learn”. I was fortunate that I did a psychology subject at university that covered this very topic. Basically, there are four main categories or frameworks under which learning theories fall: behaviorism, cognitivism, constructivism and transformative. Behaviorism focuses only on the objectively observable aspects of learning. Cognitive theories look beyond behavior to explain brain-based learning. And Constructivism views learning as a process in which the learner actively constructs or builds new ideas or concepts. Transformative theory is a slightly complex based on all of the others. For those interested, I have written a bit more on each one below.

Behaviorism as a theory was primarily developed by this guy called Skinner. In essence, three things he found linked to learning. First, learning is manifested by a change in behavior.
Second, the environment shapes behavior. And third, the principles of contiguity (how close in time two events must be for a bond to be formed) and reinforcement (any means of increasing the likelihood that an event will be repeated) are central to explaining the learning process. For Behaviorism, learning is the acquisition of new behavior through a process called conditioning. There are two types of possible conditioning. 1: Classical Conditioning, where the behavior becomes a reflex response to stimulus as in the case of Pavlov’s Dogs. Pavlov saw that the dogs drooled without the proper stimulus. Although no food was in sight, their saliva still dribbled. It turned out that the dogs were reacting to lab coats. Every time the dogs were served food, the person who served the food was wearing a lab coat. Therefore, the dogs reacted as if food was on its way whenever they saw a lab coat. In a series of experiments, Pavlov then tried to figure out how these phenomena were linked. For example, he struck a bell when the dogs were fed. If the bell was sounded in close association with their meal, the dogs learned to associate the sound of the bell with food. After a while, at the mere sound of the bell, they responded by drooling. Then the other form is 2: Operant conditioning. This is where there is re-inforcement of the behavior by a reward or a punishment. The word ‘operant’ refers to the way in which behavior ‘operates on the environment’. Briefly, a behavior may result either in reinforcement, which increases the likelihood of the behavior recurring, or punishment, which decreases the likelihood of the behavior recurring. It is important to note that, a punishment is not considered to be applicable if it does not result in the reduction of the behavior, and so the terms punishment and reinforcement are determined as a result of the actions. Within this framework, behaviorists are particularly interested in measurable changes in behavior. Since behaviorists view the learning process as a change in behavior, educators arrange the environment to elicit desired responses through such devices as behavioral objectives, competency-based education, and skill development and training.

Next is Cognitive theories, they have 2 key assumptions. 1: that the memory system is an active organized processor of information and 2: that prior knowledge plays an important role in learning. Cognitive theories look beyond behavior to explain brain-based learning. Cognitivists consider how human memory works to promote learning. For example, the physiological processes of sorting and encoding information and events into short term memory and long term memory are important to educators working under the cognitive theory. The major difference between cognitive psychs and behaviorists is the locus of control over the learning activity: the individual learner is more key than the environment that behaviorists emphasize. Educators employing a cognitivist approach to learning would view learning as internal mental process (including insight, information processing, memory, perception) where in order to develop learner capacity and skills to improve learning, the educator structures content of learning activities to focus on building intelligence and cognitive and meta-cognitive development.

Constructivism views learning as a process in which the learner actively constructs or builds new ideas or concepts based upon current and past knowledge or experience. In other words, learning involves constructing one’s own knowledge from one’s own experiences. Constructivist learning, therefore, is a very personal endeavor, whereby internalized concepts, rules, and general principles may consequently be applied in a practical real-world context. This is also known as social constructivism. Constructivists believe that knowledge is constructed when individuals engage socially in talk and activity about shared problems or tasks. Learning is seen as the process by which individuals are introduced to a culture by more skilled members. Constructivism itself has many variations, such as active learning, discovery learning, and knowledge building. Regardless of the variety, constructivism promotes a student’s free exploration within a given framework or structure. The teacher acts as a facilitator who encourages students to discover principles for themselves and to construct knowledge by working to solve realistic problems.

Transformative learning theory is the process of constructing and appropriating new and revised interpretations of the meaning of an experience in the world. Transformative learning is the cognitive process of effecting change in a frame of reference although it is recognized that important emotional changes are often involved. It has been shown that these frames of reference define our view of the world and we have a tendency as adults to reject or deem unworthy any ideas that do not ascribe to our particular values, associations, concepts, etc. Transformative learners utilize discourse as a means of critically examination and reflection devoted to assessing reasons presented in support of competing interpretations, by critically examining evidence, arguments, and alternative points of view. When circumstances permit, transformative learners move toward a frame of reference that is more inclusive, discriminating, self-reflective, and integrative of experience.

Choose your own adventure

February 24, 2017
by Campbell

Choose your own adventure

Remember the Choose Your Own Adventure books that allowed us to take stories into our own hands and decide the fate of the characters? I guess, I am a child of the 80’s, so I guess I was fortunate to own a few. Even though the outcomes were predetermined, this made me as a reader feel more invested and interested in the story. Well, at work recently, I have been working with some Subject Matter Experts (SME) on how to better engage with the students with some of their content I am helping develop with them. By using online learning and use of things like videos and interactive diagrams it has been shown that it improves the students learning and retention through the application of knowledge by enhancing the relevance of their learning and promoting their understanding of concepts. I reviewed and educated my SMEs on key educational theories and simple teaching principles to help inform the development of a Choose Your Own Adventure (CYOA) approach for one of the units of competency.

I did a literature and framework exploration process, and identified that both cognitive constructs (adult learning theory, information process model, cognitive load), and noncognitive constructs (distributed cognition, situated learning and control value theory) worked well in this modality. The workshop I did focused on maximal interaction with limited pathways in order to encourage active engagement but at the same time encouraging a bit of flexibility. I found that after this, the SME’s identified multiple ways to approach what they perceived as boring or standard topics through new methodologies. Tom Kuhlmann a well known Instructional Designer in USA, came up with the 3C model for this sort of thing.

  • Challenge: The goal is to engage the learner and challenge her understanding. Present a situation, get her to process some information, reflect, and then let her make a decision.
  • Choices: Once the learner is challenged, she needs to make a decision (or series of decisions). Provide some choices to work through the challenge. The choices should all be viable and realistic options. Don’t waste time on meaningless choices.
  • Consequences: Each choice produces a consequence. Sometimes the consequence may lead to immediate feedback; and sometimes it may lead to additional challenges that compound the situation.
  • In the end, offering multiple options may actually be less work than offering one, especially if it means enhancing the student engagement. What do you all think?

    February 9, 2017
    by Campbell

    More Gamification Thoughts

    From what I have been reading lately, the concept of play is that play is optional, so for something to truly be play-based, a learner needs to be able to choose not to play. I believe that if a facilitator chooses to add a game layer to the curriculum, it could be difficult for a student to not be part of the game layer and participate in class in a more traditional way.

    As you know, many games are based around the concept of direct competition, in the gamification circles we call this mechanic “leaderboards”. Such game elements, like leaderboards, I feel highlight the fact that some students succeed while others fail, which personally I think is a crap way of teaching. The same can be said for the old traditional public display of rewards (like the old gold stars approach). Students who are doing well can be driven to continue to gain more stars, while students who are struggling watch as their classmates accumulate more and more accolades while they are just trying to get started.

    One advantage of an LMS designed for gamification is that the system can assist teachers in the design of a course. By embedding different types of reward-based and meaningful game-based and play-based layers, facilitators can easily try out different gamification techniques in their class avoiding the public humility of the students. The LMS can also provide information as to what types of game elements might be good for different types of class activities and what risks the instructor and students may face when using the system.

    From my discussions with students, if they see a system that looks like a traditional LMS or outdated Web site, it has been discussed that the facilitator will have to work harder to help students realize that the class experiences are different and exciting. Whereas if the students come into a gamified system that looks like a game or has game mechanics, it can be said that they are more likely to approach the learning with an open mind and a playful spirit. Just food for thought.