Helper code to mimic Clojure fns in Scala

I’ve finished my 3.5 year stint writing Scala, and I haven’t stopped missing writing Clojure. The knowledge of Clojure continues to heighten and inform my programmer sensibilities. One thing that I appreciated about Scala is that it was as good of a medium as you might practically find to allow writing Clojure without writing Clojure. I liked to think of Scala as the canvas on which I painted my Clojure ideas. Because Scala makes itself amenable to many styles of programming at once (at least, FP and OOP), it was possible to write code by imagining what the Clojure code would look like, and then writing that in Scala syntax. Interestingly, the more I did this, and the more faithfully I did so, the more people implicitly (no pun intended!) acknowledged the code as “good Scala code”. Because, you know, most Scala programmers agree that good Scala code puts “val”s at the top of a function body, uses immutable collections exclusively, prefers functions over (object) methods, and makes functions small, stateless, and composable. More on that later. Here, I want to simply release some of the code that I wrote in Scala to fill in a few perceived gaps in Scala’s Seq abstraction, where the perception is based on what I was accustomed to using in Clojure.
Continue reading Helper code to mimic Clojure fns in Scala

Revitalizing the Hawaiian language

The podcast story “Meet the last native speakers of Hawaiian” is a fascinating story about how to revitalize a language that almost (but not quite) went out of existence. The story of Hawaii and the Hawaiian language probably shares some elements in common with the story of many Native American languages and nations/cultures/tribes. The story of Hawaii is interesting because, despite the efforts to squelch the language from existence, there still remain pockets where the language is still spoken. Similar to the story of Myaamia, a concerted effort by community-based linguists and collective support from the community was crucial. The efforts are successful in that many kids grow up knowing how to speak Hawaiian because they go to Hawaiian-language primary schools. With the basic step solved, the next-step problems take its place.
Continue reading Revitalizing the Hawaiian language

Reviving the Miami language from the dead

The podcast story “How the Miami Tribe got its language back” is really fascinating. The Myammia (“Miami”) tribe and language lost its last speaker decades ago. The story of how and why the language went out of usage is not pleasant, but worth knowing. Regardless, thanks to the work of early linguists during the time when the language was spoken, there were historical records of the language (vocab, pronunciation, and perhaps grammar). Thanks to the interest of a Myammia descendent, a linguist, and a seed amount of resources, a lot of work coalesced in reviving the language into something that is spoken by a few hundred people on some basis. For a language that had completely died decades ago, that’s remarkable. Hearing the full story is worth it, especially for certain tidbits that do not appear in the written article. For example, students came from distant, disparate regions to learn the Myammia language at Miami University (OH), but there was not as much speaking among the students outside of the class as they hoped. It remained mainly an academic exercise of second-language learning. The big spark happened when they introduced a new class to the curriculum that also taught the history and traditions of the Myammia. There was a huge upsurge in usage and attachment to the language as a sense of identity took root among the learners.

Google Design blog post on Indian language fonts

The new post from the Google Design blog entitled “The New Wave of Indian Type” is very interesting. The differences already noticeable in the examples of Tamil fonts in the blog post is already striking. And the blog post, of course, is showcasing fonts with open-source licenses and encouraging people to use them as starting points to create their own. I like these ideas very much.
Continue reading Google Design blog post on Indian language fonts

Recent articles about kids, language, and technology

If you have seen the talk that Tim and I presented at Clojure/West in October on Learning Clojure through Logo, it should come as no surprise that topics of education, technology, and language are of interest. A couple of recent articles were published that caught my attention:
Continue reading Recent articles about kids, language, and technology

Tips for Writing SQL Queries

In my previous job, I had a basic grasp of writing a SQL query, but I was never quite comfortable with “advanced” queries. (By “advanced”, it’s more like intermediate at best — it’s the nuances of joins, group-bys, having vs. where.) I was told that whatever SQL I didn’t know would be “easy” to pick up and would happen naturally, although in practice that never quite happened. It wasn’t until I started to come up with a system for solving interview-style programming problems that I started to similarly come up with a system for writing any SQL query. The following is the result, which is less of a “tutorial” for “beginner SQL” and more of a systematic process for constructing a SQL query:
Continue reading Tips for Writing SQL Queries