Mexico City Nightlife

February 24th, 2010 No comments »

by omar.castro

by omar.castro


What might be helpful to know how to say as you wander around Mexico City at night?
We thought that What a lovely day to be alive! might be useful. At least in a strange non sequitur sort of way.

When in doubt, unbridled optimism can’t get you into too much trouble!

We add 3 new Phraselists a week to the Mightyverse home page, and archive the older ones. For more Mexico City Nightlife phrases, go to our homepage, this week only!

Mightyverse iPhone App hits 128 Downloads!

February 4th, 2010 1 comment »

In the first 2 weeks that Mightyverse has been available in the app store, we’ve reached 128 downloads!
Okay, that’s not 128,000, or even 1,280, but still, for our utter lack of any promotion (not even a tweet yet), it’s pretty good.

A milestone even.

Why haven’t we promoted the Mightyverse iPhone app? Because it’s kind of dumb actually. It’s more of an experiment than a true representation of what we want people to experience when they use Mightyverse out in the world. What is our goal with the current iPhone app and why are we subjecting the goodwill of our future Mightyverse loving users to it’s paucity of functionality? Well, that’s a very good question. At this point the version you can download and install for free today is a subset of what we feel people need to have a useful experience of Mightyverse. The beta users of the next version of the app have given us great reports on travels to Japan, Italy, Russia and Europe. But the next version has some really great features the current public version lacks. I really don’t know many ways that someone could find a use for the current version. However….if you are excited about Mightyverse, the app does gives you a portable experience of all of the phrases in the database, with the current featured phraselist prominent on the homescreen. It provides us an easy way to have a lot of different people discover our content and experience it on their iPhones. You can look up any phrase that you know we have in the database and play it right there on your iPhone. You can even email phrases that you find in the database to your friends.

And most importantly, you can say:
“I’ve been using Mightyverse on my phone since the first version, the version that really sucked!”.

We are busy working on the next version of the app which I think will be a marked improvement in usability and just a lot more fun.
I can’t wait for you to try it out.

Has anyone had value from the current app yet? Found a use for it?

We are dying to hear from you.

(stay tuned for updates!)

Paul Lundahl
co-founder
Mightyverse

いろいろ選べるようになります。- サンドイッチ編

January 21st, 2010 No comments »
Saigon Sandwich

Saigon Sandwich

前回のコーヒ編はお役に立ったでしょうか? 今回は、サンドイッチの注文の仕方を紹介したいと思います。アメリカでは、サンドイッチを注文する時に、パンの種類やマヨネーズの有無などを指定できます。

メニューにも普通は、以下のようなことが書かれています。

“All Sandwiches Served with Homemade Fries or Fresh Green Salad.
(全てのサンドイッチには、ホームメイドのフレンチフライかグリーンサラダがつきます。)
Also Served with your choice of Lettuce, Tomato, Red Onions, Pickles.
(レタス、トマト、赤タマネギ、ピクルスの選択ができます。)
Available on Freshly Baked Bread Including French, Wheat, Sourdough, and Dutch Crunch.”
(新鮮なフランスパン、麦芽パン、サワードパン、ダッチクランチがあります。)

サンドイッチを注文する時、前もって決めときたいのは、以下のとおりです。

  1. どのサンドイッチにするのか
    (メニューから注文したいサンドイッチを決めます。BLT、ターキーサンドイッチなど、など)
  2. パンの種類
    (French, Wheat, Sourdough, Dutch Crunch – フランスパン、麦芽パン、サワードパン、ダッチクランチ)
  3. マヨネーズ無
    (no mayo – マヨネーズ無し)
  4. マスタード無
    (no mustard – マスタード無し)
  5. マスタードの種類
    (dijon mustard, mustard – ディジョンマスタード、マスタード)
  6. トマト無
    (no tomato – トマト無し)
  7. レタス無
    (no lettuce – レタス無し)
  8. ピクルス無
    (no pickles – ピクルス無し)
  9. タマネギ無し
    (no onion – タマネギ無し)
  10. チーズの種類
    ( American, Cheddar, Jack or Swiss cheese - アメリカンチーズ、チェダーチーズ、ジャックチーズ、又は、スイスチーズ)

コーンビーフサンドイッチをライ麦パンで注文する場合
Could I have a Corned Beef on Rye?

ターキーサンドイッチを小麦パンでマヨネーズ無しで他は全部入れて注文する場合
Can I have a Turkey on wheat, no mayo, everything else?

BLT(ベーコン、レタス、トマトのサンドイッチ)にアボガドとスイスチーズをつけてもらう場合
Can I have a BLT with Avocado and Swiss?

また、サンドイッチを注文する際に、よく店員さんに聞かれるのが、以下のとおりです。

“Everything?”

どうゆう意味かというと、マヨネーズ、マスタード、トマト、レタス、ピクルス、の全部をサンドイッチにいれてもいいの?ということです。

“What kind of cheese?”

どのチーズがいいですか?ということです。

サンドイッチメニューの例

Do you sell sandwiches here?

— サンフランシスコのお店 —

今回から、サンフランシスコの地元のお店もいくつか紹介したいと思います。サンフランシスコに来られたおりに良かったら立ち寄ってみてください。

Four Barrel Coffee
コーヒー編で紹介したFour Barrel Coffeeは、Valencia streetの14th street と15 streetの間にあります。とてもオープンで、モダンなカフェです。ドーナッツや、クロワッサンなども美味しいので、Mission地区付近を散策した時に休憩代わりに立ち寄って見られたらいかがでしょうか。

Ike’s Place
サンドイッチのメニューで、紹介したIke’s place には、個人的に、立ち寄ったことが無いので、お味の方は分かりませんが、サンドイッチとハンバーガー 、自家製のソースで人気はあるようです。Castoro地区にあります。

Saigon Sandwich
Saigon Sandowitch(サイゴンサンドイッチ)は、ベトナムスタイルのサンドイッチです。サンフランシスコに来られたおりには是非食べてください。とても美味しいうえにお手頃なお値段です。Civic Center/Tenderloin地区にあります。



いろいろと選択できるようになります。- コーヒー編

January 20th, 2010 No comments »
A latte and an Aalmond croissant from Four Barrel Caffee

Four Barrel Coffeeのカフェラテとアーモンドクロワッサン

アメリカでは、カフェなどで飲み物を注文する前に、いくつかのことを前もって決めておくと便利です。めんどくさく思うかもしれませんが、注文の仕方が分かると、その時の気分に合った組み合わせの飲み物が注文できます。アメリカのカフェは、融通がきくので自分の好みをちゃんと伝えると快く対応してくれます。

ということで、今回は、コーヒーの注文の仕方を紹介したいと思います。

コーヒーを注文する時に、前もって決めとくとよいのが以下のことです。

  1. サイズ
    (large, medium, small -  大、中、小)
  2. カフェイン入り/無し
    (regular, decaf − レギュラー、ディカフ)
  3. ミルクの種類
    (cream, milk, half & half, soy, low-fat, non-fat - クリーム、普通の牛乳、半分牛乳で半分クリーム、豆乳、低脂肪乳、無脂肪乳)
  4. コーヒーの種類
    (latte, Espresso – カフェラテ、エスプレッソ)

例えば:

普通のコーヒを頼む時
Can I have a medium coffee?

ラージサイズのディカフのコーヒーを頼む時
Could you get me a large decaf coffee?

ラージサイズのディカフの 低脂肪乳のカフェラテを頼む時
Could I have a large decaf low-fat latte?

となります。ティーにも応用できますよ。

他の国では、どのようにコーヒーを注文するのでしょうか?

次回は、サンドイッチを注文する仕方を紹介したいと思います。

A Word is Not a Sparrow

January 20th, 2010 No comments »

A New Phraselist, Russian Phrases for Arianna

Arianna, Mightyverse curator, QA fanatic and rabid Farsi learner, heads out on vacation on Thursday. Tonight we cooked up a batch of phrases for her and her sister to use on their first trip to Russia. She has been working long hours this past month and is now taking time off to travel with her doppelganger twin sister in the freezing Moscow winter cold. They cause all sorts of confusion while traveling by dressing alike and pretending to be 1 person, a super thrifty trick twins everywhere use to pay single room rates in hotels and save money at all you can eat buffets.

Hopefully they’ll find great uses for “A word is not a sparrow…” and “We will be making fresh mushroom soup in the evening”. Bon Voyage Arianna!

Even Monkeys Fall from Trees

January 4th, 2010 No comments »
Monkey waiting to fall

Monkey waiting to fall

This week we have a nice selection of Japanese proverbs, courtesy of Mitsuhito Fujita, our friend (and wonderful Mightyverse engineer) in Japan. Fujita-san recited these proverbs from memory, and they should be familiar to most native Japanese speakers. They were recorded across from his office at Knowledgelink in the Akasaka prefecture in Tokyo, on a very hot Summer day, with the sound of cicadas almost drowning his voice.
Proverbs and idiomatic expressions have been shown to be some of the hardest aspects of language for non-native speakers to learn. How often have you, or a friend mangled a proverb to humorous effect in a language you don’t speak?

The study of proverbs is called “Paremiology” and is a rich area of research for people studying language and the mind.

From Wikipedia:
“Proverbs are found in many parts of the world, but some areas seem to have richer stores of proverbs than others (such as West Africa), while others have hardly any (North and South America) (Mieder 2004:108,109).
Proverbs are often borrowed across lines of language, religion, and even time. For example, a proverb of the approximate form “No flies enter a mouth that is shut” is currently found in Spain, Ethiopia, and many countries in between. It is embraced as a true local proverb in many places and should not be excluded in any collection of proverbs because it is shared by the neighbors. However, though it has gone through multiple languages and millennia, the proverb can be traced back to an ancient Babylonian proverb (Pritchard 1958:146).
Proverbs are used by speakers for a variety of purposes. Sometimes they are used as a way of saying something gently, in a veiled way (Obeng 1996). Other times, they are used to carry more weight in a discussion, a weak person is able to enlist the tradition of the ancestors to support his position. Proverbs can also be used to simply make a conversation/discussion more lively. In many parts of the world, the use of proverbs is a mark of being a good orator.
The study of proverbs has application in a number of fields. Clearly, those who study folklore and literature are interested in them, but scholars from a variety of fields have found ways to profitably incorporate the study proverbs. For example, they have been used to study abstract reasoning of children, acculturation of immigrants, intelligence, the differing mental processes in mental illness, cultural themes, etc. Proverbs have also been incorporated into the strategies of social workers, teachers, preachers, and even politicians.”

We are excited to present this small selection of Japanese proverbs for people looking for another entry point into Japanese culture and language.

Monkeys do fall from trees

Learn how to say "Even monkeys fall from trees"

Language Buddies

December 28th, 2009 No comments »


One of the use cases for Mightyverse is learning a language. We are starting an experiment of pairing up with language buddies as a great way for people to share their love of learning a language and help each other out.

We’ve paired up Jack (an 11-year old native English speaker), with Daniele (an 11-year old bilingual English/Italian speaker). Jack made up a list of phrases that he wanted to learn in Italian and those that weren’t already in Mightyverse were recorded by Daniele.

Today we launch the “I Like Pie” phrasepack of Italian phrases that Daniele prepared for Jack. You can see it on the homepage of Mightyverse under the “I Like Pie” tab.

Here’s how it works. If you want to learn phrases in any language, just record them in your language and find a language buddy to reciprocate in theirs.

The world just got a little bit smaller.

Interested in becoming a language buddy?
Drop us a line at Let’s be Language Buddies

Ruby language

December 21st, 2009 6 comments »

I attended RubyConf in San Francisco last month, which is an annual conference about the Ruby programming language. Yukihiro Matsumoto (”Matz”), the creator of the Ruby language, gave the keynote about the 0.8 true language: a language can’t be good for everyone and every purpose, but we can strive to make it good for 80% of what is needed in a programming language. He talked about domain-specific languages (DSLs) and, while he was talking about programming DSLs, it struck me that we, as humans, commonly invent domain-specific languages that transcend our social cultures, instead encoding a culture that crosses national and linguistic boundaries.

Yuki Sonoda organized a series of talks called East meets West with presentations by Japanese Rubyists. In her talk description, she makes the case for our bridging the Japanese-English language gap between Ruby programmers:

Ruby needs your help. There are many issues. But there are too few developers. 92% of Ruby’s development in this 3 years were done by only 10 developers. 73% were done by only 5 developers. Ruby seems to be a cathedral project rather than a bazaar project.

There must be many reasons for this situation. I think a large reason is the language barrier between English-speaking Ruby world and Japanese-speaking Ruby world. So I will talk about how to solve this problem.

All of the top 10 committers speak Japanese and live in Japan. So they discuss in Japanese. Some of the most important decisions are done in these discussions. But this means that most of Rubyists, who do not speak Japanese, can not understand the discussions. For non-Japanese speakers, there has been no way to understand the most important issues in the development of Ruby.

I want to share the current issues of Ruby. I also want to request help from Rubyists who don’t speak Japanese.

There were two “lightning” tech talks given by Japanese Rubyist who each said that it was their first English language presentation. I started to think about what kind of vocabulary I would need to give a tech talk in Japanese or even just to understand one.

I approached Matz after his keynote to ask if he would record some phrases about the Ruby language in Japanese. He agreed, and I set out to capture a dozen or so phrases that would never appear in a phrasebook and might be interesting to say to a Japanese Rubyist at a conference.

I approached random people in the hallways and during lunch and asked questions like: if you would to use the word “closure” in a sentence, what would it be? Jim Weirich came up with my favorite: “Closures may be used to implement objects, and object may be used to implement closures.” Sarah Mei wondered how to read code aloud in Japanese — when would you use a Japanese word and when is the code pronounced phonetically. She guessed correctly that you would say “object.method” phonetically as obujekuto dotto mesoddo. I was intrigued that what Ruby calls the “shovel” operator (<<) is phonetically derived from the bitshift operator which has the same symbolic representation in C and Java, and is thus translated as bitto shifuto.

You can see all of the phrases that Matz recorded on the home page. One of these days, I will make it so there is a direct link. If you program in Ruby and speak English or Japanese, I’d be interested in knowing if there domain-specific phrases you would like to be able to say. I wonder if I learned enough “code” words along with some basic Japanese whether I could actually understand a Ruby Kaigi talk even before learning how to converse in Japanese.

I wish I remembered everyone’s names who suggested phrases. If you read this, please comment so that I can say thanks! and many thanks to the Japanese engineer who translated the phrases for me and her colleagues who helped! In my zealous pursuit of my goal, I neglected to keep track of everyone who helped me along the way. Thank you all.

the deterioration of language

November 11th, 2009 No comments »

“The english of today is not what it used to be, but then again, it never was,” writes Guy Deutscher in The Unfolding of Language. In Chapter 3, he includes a fascination chronology on a few hundred years of so-called decline:

  • In comparing the English language to that of two generations ago, a reviewer in the Times Literary Suppliment reminisced that then “a mistake was a mistake not a sign of free expression.”
  • 1946 George Orwell wrote “the English language is in a bad way” compared to the language of previous generations
  • 1848 linguist August Schleicher dismissed the English of is day as “ground-down,” noting “how rapidly the language of a nation…can sink” and that it was likely to further “sink into mono-syllabicity”
  • 1780 Thomas Sheridan reported a recent decline of the English language “during the reign of Queen Anne [1702-14]… it is probably that English was… spoken in its highest state of perfection”
  • 1712 Jonathan Swift wrote “our Language is extremely imperfect… its daily Improvements are by no means in proportion to its daily Corruptions”

English speakers are not unusual in feeling this way about their language.

Take modern German, for instance, which by common consent is a mere shadow of its former glory two centuries ago, in the Golden Age of Goethe and Schiller. That may well be, but during Goethe’s lifetime those in the know were of a rather different opinion. In 1819, the fairy-tale compiler and linguist Jacob Grimm compared the langauge of his day to that of previous centuries, and lamented that “six hundred years ago, every common peasant knew –that is to say practised daily — perfections and niceties of the German language of which the best language-teachers nowadays can no longer even dream.

The thesis of the book is that this it is precisely this destruction of language where the mystery of language creation lies — “all languages change, all the time — the only static languages are dead ones.” (p.55)

We don’t have to wait generations to hear the how languages change. It can be witnessed by traveling to different parts of a country or, more dramatically, by listening for differences in dialects of a single language across multiple countries.

I highly recommend the book which is a little academic at times, but full of fascinating historical and modern references that illustrate how languages evolve.

database column limits and utf8 strings

September 11th, 2009 1 comment »

Wolf and I fixed a bug today where we needed to truncate a string of text that we use internally to annotate the database.  Now, the annotation is just for our reference, so we limit it to 50 bytes — that’s bytes, mind you, not characters, even though the PostgreSQL database will tell you it is “character varying(50)”

We use unicode internally, specifically UTF8, which is a fabulous and widely used standard.  However, it does have a challenging property where a character may be 1-4 bytes long. We were frustrated with what we thought ought to be a simple problem of truncating a string so that it would be no more than 50 bytes.  The tricky part, of course, was that the 49th byte might actually fall in the middle of a character.

To solve the problem, we added a method to the Rails Multibyte::Chars class, which is part of ActiveSupport.  For those who speak Ruby, Rails and RSpec, below is the solution we came up with (first the spec, then the implementation).

The solution we came up with was borrowed from the private translate_offset method. The key interesting part is that you can discover whether you’ve chopped up a string in the middle of a character by calling chunk.unpack(’U*’) — the unpack method on String in Ruby will throw an exception when you ask it to interpret the UTF-8 characters as unsigned integers with the “U” directive.

describe "Chars#limit_bytes" do
  it 'should return "" on ""' do
    "".mb_chars.limit_bytes(0).should == ""
    "".mb_chars.limit_bytes(1).should == ""
  end

  it 'should truncate single byte character strings as expected' do
    a = "abcd"
    a.mb_chars.limit_bytes(0).should == ''
    a.mb_chars.limit_bytes(1).should == 'a'
    a.mb_chars.limit_bytes(50).should == 'abcd'
  end

  it 'should truncate multi-byte character strings at character boundaries' do
    k = "こんいちわ"
    k.mb_chars.limit_bytes(0).should == ''
    k.mb_chars.limit_bytes(1).should == ''
    k.mb_chars.limit_bytes(3).should == 'こ'
    k.mb_chars.limit_bytes(4).should == 'こ'
    k.mb_chars.limit_bytes(5).should == 'こ'
    k.mb_chars.limit_bytes(6).should == 'こん'
    k.mb_chars.limit_bytes(7).should == 'こん'
    k.mb_chars.limit_bytes(50).should == 'こんいちわ'
  end
end

module ActiveSupport #:nodoc:
  module Multibyte #:nodoc:
    class Chars
      def limit_bytes(limit)
        limit -= 1 while !valid_boundary?(limit)
        s = @wrapped_string.slice(0,limit)
        s.mb_chars
      end

      def valid_boundary?(length)
        chunk = @wrapped_string.slice(0,length)
        begin
          chunk.unpack('U*')
          true
        rescue
          false
        end
      end
    end
  end
end

We’ve written this up as a Lighthouse ticket in case the Rails folk want to add it to the platform or if other people developing multi-lingual database apps run into the same challenge and look there.