Blog by Mightyverse people

Post navigation

As we set out to design the next phase of Mightyverse development, we want to add elements of gameplay. We believe that, for many people, learning to speak a language is intrinsically fun; however even for those people, it can also require tremendous discipline, which is not fun. We asked ourselves… could we make a game that applies what we know from our research on effective language learning as well as what we hear from Mightyverse users to make it so all aspects of language learning are fun?

To get our whole team up to speed on the latest gamification ideas and best practices, we watched a series of videos. For other software developers, our future team members, and our visitors who are just curious about what we’re up to, I’m posting the links and some notes.

Meaningful Play: Getting Gamification Right by Sebastian Deterding

“We are all game designers, at least we were in childhood”

Meaning – connect to personal goals and passions – connect to a meaningful community of interest – wrap in a visually supported story – beware of social context meanings

Words of wisdom Think design process not features. Know your users: you are not your target audience. Create a paper prototype of the rule system: play test, and iterate. Provide a story with meaning, a rule system they can master, a free space they can play in.

Stephanie Morgan: “Gamification Sucks”

a great primer along with tips on what not to do

Cooperation and Engagement: What can board games teach us? by Matt Leacock

The talk is really only 32 minutes, so don’t be freaked out by the length on YouTube (Q&A was not particularly insightful from my perspective, so you could skip that part)

I enjoyed the talk. For me it was a great review of game design principals (which are mostly applicable to design in general), and neat to think about the analogy of board game design to software design. Also, it provides a great framework for thinking about how to prototype a software game as a physical game.

One key point that I hadn’t ever heard expressed so well was about the importance of having a clear mental model.

– Find a spark – Keep it simple – Keep it raw – Find the Core Game – Iterate, but have a clear goal.

– Make it accessible. Reduce Friction. “You can’t have a great game, if people can’t play it” – Embody the players: :Make it feel like you are in the game.” – “As simple as possible, but no simpler” — Einstein

What is fun? – Accessibility + Usability != Fun – Fun = Learning

Fun from games arises out of mastery. It arises out of comprehension. It is the act of solving puzzles that makes games fun. — Raph Koster, A Theory of Fun

There are different kinds of fun: interpersonal communication, teamwork

Design for Extensibility Example Apples for Apples… leave opportunity for people to invent things outside of the game that augments the game or replaces parts of the game, new boards, new roles, new cards

Play test your game When validating your game with real players…

Shut up and sit in the corner and watch. See if people who play your game are having fun and playing the way you expect, and are able to learn the rules easily.

It is intuitively true that a social element is essential for language learning. The purpose of language is communication, which is an inherently social experience. However, as we design learning experiences, it is helpful to reflect on broader research which illuminates the ways in which learning may be accelerated.

The reason that social is so important for the edtech market is less about viral growth and network effects on a first order basis and much more about the simple fact that as humans, we’re wired to learn socially. We evolved that spectacularly complex piece of neuroanatomy called the neocortex to cooperate with each other and increase our propensity for survival, and it’s exquisitely sensitive to social phenomena. At the most basic level, social cues and social emphasis patterns drive the deployment of encoding energy in our brains…social software designs drive learning productivity, pure and simple.

The effects of social situations on learning has long been a subject of research. Lev Vygotsky, established this social connection in his research on childhood development in the early 20th century. He isolated a specific social environment which is particularly effective in learning, where a child is collaborating with someone just above his or her level of skill or understanding. It is in this Zone of Proximal Development when the child learns best. In his book, Mind in Society, he stated that “human learning presupposes a specific social nature and a process by which children grow into the intellectual life of those around them.” (p. 88) He demonstrated through his research that this is true for children. He went so far as to say that this social interaction is actually a requirement for specific kinds of learning in children:

learning awakens a variety of internal development processes that are able to operate only when the child is interacting with people in his environment and in cooperation with his peers. (p. 90)

What of adults?

We’ve all experienced, as adults, that it is possible to learn many skills on our own. However, many of us have experienced accelerated learning in social situations. Jean Lave and Etienne Wenger explore this in Situated Learning: Legitimate Peripheral Participation. They describe communities of practice where

apprentices gradually assemble a general idea of what constitutes the practice of the community… what other learners are doing; and what learners need to learn to become full practitioners. It includes an increasing understanding of how, when, and about what old-timers collaborate, collude, and collide, and what they enjoy, dislike, respect, and admire. (p. 95)

This context provides an effective learning environment, within which the novice may construct an individual learning path. Lave and Wegner argue that teaching is not central to learning, but that we learn when we actively participate in a community. The learning path from novice to master is accelerated by social engagement, where observation is an important element, as well as the generative process of active learning.

In honor of the great American hero and civil right’s activist, Martin Luther King, we have recorded an excerpt of his “I have a dream” speech delivered on August 28, 1963.

This was a MLK day project by a couple of the founders of Mightyverse to work through what it’s like to have multiple recordings of a single phrase available for a language learner. We recorded these MLK phrases by 9 speakers and they comprise the voices of this phraselist. With today’s inauguration, this project was especially meaningful.

We hope that by providing translations of these phrases, people for whom English is a second language can appreciate this important and inspiring historical event. After learning the vocabulary from the I have a dream phrases, you can watch a video of the full speech, the excerpt of the speech in the phrase list begins at minute 12:20.

Martin Luther King’s speeches are part of our American culture that we would like to share with people learning English or visiting America. What would be an analogous speech in Spanish, Mandarin or Farsi? If you would like to record phrases that are inspiring to you in your culture or language, let us know in the comments below or just email us.

I’ve been interviewing Mandarin Chinese learners (and learning a lot about Mandarin) since it is our most popular language on Mightyverse. While I learned a few phrases of Cantonese many years ago from friends, I had never spoken Mandarin before last week. I spent a couple of hours with my friend Antun who has been learning Mandarin for the last year and a half. I enjoyed his stories of how he approached independent language learning and was drawn in by his enthusiasm.

When he offered to lend me his introductory Pimsleur CDs, I was skeptical that I could learn this challenging tonal language without some heroic act of will. However, out of three people I have interviewed who tried the Pimsleur method, all three have said it was very effective, so I thought I would try it out.

After 5 days and 4 lessons (one lesson took me two days), I felt confident enough to say something to my Mandarin-speaking friend. “I can speak a little Mandarin.” 我会说普通话. Her reply was too fast for me to understand, but then she told me (in English) that I had a Beijing accent! I later did some reading about the Pimsleur method and learned a bit more about different accents and dialects. From what I’ve learned, the Beijing accent is considered standard Chinese, so that is what Pimsleur (and most language schools) teach. The problem is that if you go to Shanghai or try to speak with Mandarin speakers in the US, it can be really hard to understand what they are saying. I really enjoyed Benny Lewis’ critique that the popular audio course should be named “Pimsleur-for-married-businessmen.”

We’ve been working to add multiple speakers for more phrases (male and female and various accents) and creating phrase lists around specific themes, so perhaps, Mightyverse could be a nice complement for people who are learning with the Pimsleur method

As we were getting ready to implement a set of improvements to our process that allows bulk-uploading of phrase videos and translations from our desktop app, I noticed that our language team frequently used Google docs to collaborate on the creation of phrase lists and review of translations with other language experts. Since Google docs has an API, I proposed that we formalize that as part of our workflow:

Record phrase videos in our desktop application

Copy the spreadsheet to Google Docs

Import from the mightyverse.com web app (including a preview step before the data is committed)

I was pleased to find a well-worn path to integrate with our Rails web app and was able to use the google-spreadsheet-ruby gem to write the import code.

Last week, the new import workflow allowed us to fix a large number of errors with the Italian recordings and their English translations. Paul and Iku copied 9 spreadsheets that included 1503 phrases to Google docs and, as expected, were able to easily review and edit the text using the fabulously efficient browser-based editing features implemented by the Google team.

While I could implement such a web app, I wouldn’t have devoted the engineering time to build such powerful editing features for a simple import form. However, the fact that collaborative editing was so easy, dramatically reduced the effort required.

An unexpected consequence of using the powerful Google spreadsheet UI for the fairly mundane import task is that we automatically had additional automated editing features for free. The first example of this was when we discovered that a lot of the Italian phrases had been entered in all caps, and Paul asked if we could automatically make them lower-case on import or if they should edit them by hand. Then, inspiration hit! “Let me show you,” I said, “and demonstrated as a created a new column and typed “=LOWER(” then selected the column with the upper case text. As if by magic, the lower case text appeared. Then, I dramatically selected the cell with the new formula and dragged the corner all the way to the bottom to repeat the action for every row in the spreadsheet.

I could have written the code to lower-case on import and deployed it in 20 minutes, but with Google docs, I could teach my “non-technical” co-founder how to do it himself in less than a minute. Even better, I then taught him how to figure out his next request with very little help from me, and he is well on his way to addressing these kinds of issues in the future without any special-case software development in our web app.

His next challenge was to set just the first character to be upper-case. He found the PROPPER formula, but sadly that was not precisely what he wanted. (PROPPER makes the first letter of every word upper case.) I showed him the formula reference and taught him how to combine formulas and he figured it out. The only technique he really struggled with was how to remove quotation marks, where the character had to be escaped. It is really hard to look for info on special characters like ” in google search. I knew the concept to search for and all the coder synonyms and was able to find it for him. With a spreadsheet he could test out each part of the formula in its own column:

In summary, here are the formulas that Paul found to be useful:

Make Lower Case: =LOWER(B3)

Remove quotation marks: =substitute(C3;char(34);””)

Capitalize the first letter (substitute A2 for the cell with the text):

I’ve often said that creating the software for Mightyverse is the smallest part of our challenge. We are seeking to express the diversity of language to help people to communicate what they want to say. More important than the software, are the people who will help us make this happen.

I’d like to tell the story of our latest Mightyverse Hero, Christo Dimitrov, who sent us this feedback several months ago:

This website is certainly useful for many people. Personally, I used it to translate some phrases from English to Bulgarian. But since my mother tongue is French, I have checked all the 529 phrases translated from English to French. I am sorry to inform you that I have found many wrong translations and, above all, countless (more than a hundred) spelling mistakes. In particular, numerous accents and hyphens are missing. As you certainly know, the absence of accents or hyphens is, in French writing, a major mistake. If it could of some use for you, I can send you, by e-mail, the list of the 529 phrases with all needed corrections.

I decided to prioritize building the part of our web application which would let Christo, plus other staff and volunteers, do bulk editing of the phrase text in Mightyverse. Meanwhile, I asked: what led him to find Mightyverse and what was useful about it?

I found Mightyverse when searching on the net the translation in Bulgarian of the French phrase “Plus on est de fous, plus on rit”, the equivalent in French of the English “The more, the merrier”. Mightyverse gave me the right translation which is : ” “Колкото повече хора, толкова по-весело.”.

It was very helpful for me in spite of the fact that : – I have Bulgarian origins (as my name let it guess) but being born in France where I always lived, I have a rather passive knowledge of the Bulgarian language. – I have got several French-Bulgarian dictionaries but none of them gave me the answer.

The advantage of Mightyverse is to offer the translation and pronunciation of many phrases useful in everyday life and which are not easily found in ordinary dictionaries. A drawback is the absence of search tool avoiding to have to go through all the phrases to find whether the one you are interested in is in the list or not.

And I was very curious… who was this person who would volunteer to help strangers on the Internet with our wild and crazy mission?

I was a student of the “Ecole Polytechnique” in Paris and then I was a civil engineer and a civil servant (in French : Ingénieur des Ponts et Chaussées). I retired at the end of 2007.

I have a deep interest in languages : French and various foreign languages. At school, I learned English (7 years), Spanish (5 years) and German (2 years) and, more recently, at the Paris University, Bulgarian (2 years).

Moreover, I have tried to acquire basic knowledge in numerous other languages, for instance : Italian, Greek, Turkish, Japanese, Russian, Portuguese and others.

I used to live in Paris but since my retirement, I live at Entrecasteaux, a small village of Provence, in the South of France.

For the next month, Christo and I iterated on a simple spellchecker interface with him finding bugs and me fixing them, until he was able to easily edit the whole list of phrases. We even ran into to some interesting language challenges:

I was unable to understand some colloquial phrases so I have not change the existing translation.

Could you give me a clue to the exact meaning of the following phrases : – “Cat’s got your tongue”( I think the right translation could be “Vous donnez votre langue au chat” but I am not quite sure of it). -” Is it a cavity ?” (I guess it relates to teeth but is it really the case ) – “Try calling around” (What is the exact meaning of “around” in that case) – “What birds plunge through is not the intimate space in which you see all forms intensified” (It is all Dutch to me ! – in French : Pour moi, c’est du chinois !)

It was actually quite exciting to me to hear these questions. We think that every phrase has a story, and someday we’ll be able to put in the database, but meanwhile, here are the stories for these phrases:

“Cat’s got your tongue” is said when someone is quiet and you want to get them to talk, often said to a shy child. Not clear what the origin is, maybe just a silly thing you say and make the kid laugh… my mom used to say it to me sometimes. Occasionally adults will say it to each other. It is not a very common expression, but I would guess that most people know it anyhow. The full expression would be “‘has the cat got your tongue?”

In French, “Tu as perdu ta langue ?” literally means “Have you lost your tongue?” which you could, of course, also say in English.

“Is it a cavity?” refers to a hole in your tooth from tooth decay that a dentist would drill and fill with whatever they put in teeth. “Est-ce une carie?” in French.

“Try calling around” means call a few people (on the phone). “Essaie de passer quelques coups de fil”

“What birds plunge through is not the intimate space in which you see all forms intensified” (Christo writes “is all Dutch to me!” – in French : “Pour moi, c’est du chinois!”) Wow — someone must have translated this german poem into English and French:

Along the way, we added a new editing interface to create alternate, better translations of a phrase, and just this weekend, Christo verified all 764 phrases in French! We applaud his heroic accomplishment.

We’re still working out some of the details of the editing software, but we’ll be looking for volunteers who can help us check spelling, grammar and correct transcriptions for other languages too. If you are reading this, are interested in the project and want to help, please leave a comment and we would be delighted to have you join us! It would be particularly exciting to connect with a Bulgarian speaker who could help Christo become more fluent in the language of his origins.

Last month we released an update of the Mightyverse web site with fewer features, but with new homepage and FAQ which we hope will help people understand our mission and where we are going. For the last six months, it had felt like we would never finish our upgrade to Rails 3, as Mightyverse development had intermittent spurts of development. In early January, I proposed that we make some hard decisions and ship it earlier by radically cutting any feature that was under-performing in terms of web traffic, which included the search feature. We defined an “MVP” (Minimally Viable Product where the goal is not to create the minimum amount of software from which you can learn). We had just one new feature implemented (changing the URL of the “phrase page”), so that became the one we would test.

Dropping the search feature was a very hard decision, but not as hard as drawing the line on the smaller details. I argued that whatever was wrong we could always fix the day after we release the site, because there could be something even more important to work on that we don’t know about.

It was mid-January and I had told Lee and Curtis who were collaborating with me on developement that we would complete the bare minimum to release the site. Glen, Paul, and Iku tested on our staging server. I queued up a subset of bugs found to be fixed before release and our launch date quickly slipped further into the future. Curtis sent this email:

I noticed a big list of MVP stories.

I understand that the current MVP is very lacking, but I would encourage releasing it … if only to catalog the feedback from the users. My thought is that this can be valuable get an external perspective.

By no means is this a hard and fast rule, but it has worked at times in the past to develop a system in concert with the community.

To which I responded:

…there are humans involved. Sometimes compromise is important. I would have not completed the phrase list page, but Paul uses that to demo to people.

To understand the debate, you need to know that the phrase list page was pretty awful. At the time that we were having this discussion it looked like this: with the video player way at the bottom of the page, like this:

There were missing links and the text was poorly laid out. The placement of the video player was not the only unusable part, but in page playback of phrases was also missing. You can check out what it used to look like. The key thing to note is that we were trying to avoid having a 404 and create a starting point for continuous improvement. Even so most folks would react like Paul did…

“Are you really going to release it like that?” I agreed that it would take just an hour or two to fix the layout and add links, so I said I would do it. Later, I admitted to Paul that I had been called out by a member of our dev team for not sticking with our MVP focus. I also admitted that while I told Curtis that we needed to fix the page because Paul used it to demo to current and prospective contributors, that I really was doing it because I thought it would make Paul really sad if I didn’t.

I had recently heard Corey Haines talk at Heroku’s Wazu conference about using the “5 Whys” for figuring out what features you should build first in a new application, so I asked Paul if he would play this game with me. It’s a simple exercise where you ask someone “why” five times, which can be very annoying unless you tell them first that you are playing a game. It felt more than a little absurd, but I really wanted to follow the MVP/lean startup discipline and be honest about why were making our decisions. Here’s a brief synopsis of the conversation:

Why do should we fix the visual errors and lack of in-page viewing in the phrase list page? We don’t want to look amateurish. Paul told this story of how a friend had gone to our website when we first launch it and had found several spelling errors on the blog and had said that it didn’t seem professional, that it looked “amateurish.” (You might think that no one wants to be unprofessional and amateurish, but when Facebook first launched with a very scattered design and seemingly little attention to visually pleasing pages, people in the industry argued that was precisely why they got so much participation, that people didn’t feel like their posts had to be perfect, so they posted more. So I asked the next question.)

Why don’t we want to look amateurish? We want people to believe we are credible. I listened to another story from Paul about how being amateurish erodes your credibility. No real surprise here, so I moved on to the next why.

Why is it important to be credible? If we aren’t credible, then people won’t listen to our message. This surprised me. I thought Paul was going to say something about people trusting the fidelity of our translations, but I hadn’t really thought about our having a message. Now I was really engaged in the game and wondered how he would answer the next question. I really wanted to ask what he thought our message was, but instead I continued asking why…

Why do we want to convey a message, why is that important? We need to convey a brand promise.

Why do we need to convey a brand promise? We want to incite participation.

“What do you mean?” I asked, “we have no participation features on the site… you can’t even leave a comment, let alone record phrases, add translations, or make corrections.” Paul responded as I hoped he would. He didn’t refer to some future contributors using some future features, instead he referenced our real world community, like @brianrieger who tweeted about using Mightyverse to learn Mandarin on his mobile phone and our small community of contributors we have in-person relationships with who record phrase videos using our desktop application or in the Sausalito studio. People who develop web software sometimes seem to forget that community is a real world phenomenon.

Before we released the new site, we made the page look better including in-page playback, but skipped paging (because most of the phrase lists are short anyhow). After we released the site, we discovered that we have a broken link on the homepage and that an entire language was missing its data, but I feel good about letting our community in on the process a little bit. We’re a very small group of people making Mightyverse and we need more people involved if we’re ever going to capture a meaningful amount of even the world’s popular languages, let alone making a dent in the almost 7000 less widely spoken ones.

We’ve had a lot of conversations about our brand promise. We want it to be about integrity and treating people’s language and people’s contributions to Mightyverse with respect, but we also realize that even though we fixed this one page, that we break our brand promise all over the website when we have errors in the translations. We decided to prioritize the editing features over the live recording feature. This silly game sparked conversations that have changed the details of what we are doing and how we prioritize new features on the site. Our vision remains the same, but I think our path toward it has changed a little. I believe the details make all the difference.

NurtureShock: New Thinking About Children by Po Bronson and Ashley Merryman includes a wide collection of thought-provoking research on children and learning. The last chapter focuses on language, with some of its lessons applicable to both early language acquisition by babies and later language learning as well.

Babies learn to decipher speech partly by lip-reading: they watch how people move their lips and mouths to produce sounds. One of the first things that babies must learn—before they can comprehend any word meanings—is when one word ends and another begins. Without segmentation, an adult’s words probably sound about the same to an infant as does his own babbling. At 7.5 months, babies can segment the speech of people they see speaking. However, if the babies hear speech while looking at an abstract shape, instead of a face, they can’t segment the sounds: the speech once again is just endless gibberish. (Even for adults, seeing someone’s lips as he speaks is the equivalent of a 20-decibel increase in volume.)

When a child sees someone speak and hears his voice, there are two sensory draws—two simultaneous events both telling the child to pay attention to this single object of interest—this moment of human interaction. The result is that the infant is more focused, remembers the event, and learns more. –pp. 203-204).

In addition to reporting that multisensory input helps, the authors include research from University of Iowa (p. 217-218) that hearing language from multiple speakers accelerates learning.

This supports our anecdotal evidence that hearing slight variations in accent help people in learning new phrases. When we acquire a new language, we are not only acquiring vocabulary, but learning to differentiate phonemes and process new sounds.

Grammar teaches Vocabulary

Bronson and Merryman also discuss the value of variation sets where children learn vocabulary where words are repeated in varying contexts. Initially a noun is easily recognized when it follows a “word frame” such as “Look at the ___.” Then using some repetition to highlight variation helps with learning. They point out that “grammar teaches vocabulary.”

For instance, a variation set would thus be: “Rachel, bring the book to Daddy. Bring him the book. Give it to Daddy. Thank you, Rachel—you gave Daddy the book.” — p. 219

This is exactly how I like to learn a new language, learning vocabulary and grammar together in context. I am often frustrated that such variation sets are hard to assemble in typical language workbooks. I think this could inform how we create “phrase lists” in Mightyverse and I can’t wait until we make the tools a little easier so we can let other folks experiment with lists of their own making.

We’ve been working on a very cool web recording feature for Mightyverse. One of the reasons that it is not quite ready for prime time is a bug in the Flash Player where sometimes you can’t click the “Allow” button in the microphone/camera privacy dialog. (It happens when the SWF is not aligned to a pixel boundary, which happens quite frequently in normal CSS/HTML layout.)

Flash Player 10.3 was released on Friday, which is supposed to fix the issue. You can download it here, or you may follow the detailed steps below to workaround the bug.

Right-click (or control-click on the mac) and a menu like the one below will appear:

Choose “Global Settings…” and the Flash Player system preferences will open (sometimes this takes 10-15 seconds). Then select the “Camera and Mic” panel (1) and click “Camera and Microphone Settings by Site…” (2).

A panel will drop down displaying the sites that have asked you for camera or microphone permissions. Click the [+] button in the lower left corner:

Next type the full hostname “www.mightyverse.com” as the site domain and select “Allow” from the popup and click “Add.”

Click “Close” (and optionally close the system preferences window) and then refresh the browser page. Now the privacy dialog should not appear and the site will have access to your camera and microphone. Whew!

In doing some research into localized SEO this weekend, I found an awesome blog post that well describes the difference between localization and SEO translation.

As an example of localization challenges, it reports “an Iranian soap product line is called ‘Barf‘, which actually means ‘snow’ in Farsi, but becomes ‘vomiting’ in English.” I tweeted this excellent example, and learned from @adamwride that Argentina actually has a line of hamburger patties named “Barfy”!

Using our fun, new not-yet-publicly released web recording interface, I recorded some English phrases for the occasion: