いろいろ発見メモ

さまざまな試行と実験と発見と調べ物のメモ書きです

先端技術解説動画

米国特許庁が公開する子供と教師のための先端技術解説動画

www.youtube.com

米国特許庁(The United States Patent and Trademark Office)が、子供(と教師)に対して様々なイノベーション技術を解説する短編動画を公開しています。

3Dバイオプリンター、折り紙技術を使ったマイクロ手術機器、ウィルスを使ったバッテリー開発、ブドウ糖を燃料とするバイオ燃料電池、自動運転、スマートコンクリートなどなど ...

興味深い題材が目白押しです。

機械生成はない英語字幕を出すことをできますので、聞き取りが苦手なひとも読むことができます(もちろん自動翻訳の日本語字幕を出すこともできます)。

ちょっとした空き時間などに見るのも楽しそうですね。

Handpan Player

不思議な音色

1573

不思議な音色を奏でる楽器 Handpan(ハンドパン)は、いわば携帯スチールドラムのような楽器です。基本的に手で叩いて演奏を行いますが、不思議な透明感があります。

たとえばこのような演奏動画がいろいろあげられています。

www.youtube.com

構造的には単純ですが、意外に高価でちゃんとしたものを買おうとすると10万円近い価格となります(まあ、あまり数の出るものでもありませんし)。

ということで、上の演奏のような素敵な感じにはならないのですが、ハンドパンもどきを Scratch で作ってみることにしました。

緑の旗をクリックして、ボールを適当にクリックすると、サンプリングされたハンドパンの音が流れます。右のマイクをクリックすると「録音」が始まり、右下のスピーカーをクリックすると、録音した曲が再生されます。

以上、お遊びプログラミングでした。

この程度のプログラムでしたら1時間以内で作ることができます。

子供のためのプログラミング教材だと思われている Scratch ですが、アイデア次第で結構遊ぶことができますね。

 

小学生からはじめるわくわくプログラミング
 

 

 

作曲家としてのマルティン・ルター

Martin Luther

「作曲家としてのマルティン・ルター」とは

宗教家としてのマルティン・ルターは有名ですが、彼が作曲家だったことは学校の世界史の教科書にはあまり書かれていないのではないでしょうか。今日それを初めて知りました。

宗教家マルティン・ルター

宗教家マルチン・ルターは15世紀末(1483年)ドイツで生まれました。ご本人は敬虔なカトリック教徒だったのですが、教会に対する素朴な疑問を追いかけていたら結果的にプロテスタントを生み出す宗教改革のきっかけとなった人物です。

その著作によって、当時の皇帝から異端とされ、フリードリヒ3世の保護を求め、ヴァルトブルク城にかくまわれました。ルターはそこで、ギリシャ語の新約聖書をドイツ語へと翻訳します。それまで聖書は聖職者だけが読めるものでしたが、ルターはそれを普通の民衆でも読めるようにしたのです。

ja.wikipedia.org

作曲家マルティン・ルター

さて、聖書を翻訳したルターの運動に諸侯の動きが合わさって、ルター派教会が生まれることになるのですが、そこで必要になったのは「賛美歌」です。当時の賛美歌はラテン語の歌詞を使う複雑なポリフォニー合唱でした。要するに専任の合唱隊が歌うもので普通の人たちは歌えなかったのです。

聖書をドイツ語に翻訳したルターは、賛美歌も人びとがドイツ語で歌うことのできるシンプルな楽曲であるべきと考え、自らリュートを演奏しながらドイツ語の賛美歌を作曲したようです(合唱としての編曲は同志が行いました)。

たとえば「深き困窮より、われ汝に呼ばわる」などを始めとするいくつかの楽曲が残されています。この形式は「コラール」という名前で呼ばれるようになりました。

 

「深き困窮より、われ汝に呼ばわる」(マルティン・ルター作曲)

www.youtube.com

 

この曲はのちに J.S. バッハの BWV38 の中にも採用されました。現代の賛美歌ではこの和声が使われることが多いようです。

www.youtube.com

 

自分たちの言葉で歌える賛美歌というのは、その当時の人びとに大きな影響を与えたことでしょう。その意味で宗教者、聖書翻訳者としてのルターはもちろん大きな存在ですが、作曲家としてのルターの影響も決して小さくはなかったのでしょう。

 

物書堂の辞書が macOS で利用可能に

life with dictionaries

目次

物書堂の辞書アプリとは

物書堂の辞書アプリは、長らく iOS 上でのみ使えるアプリでした。最近コンテンツがどんどん充実していて、気がつくと沢山の辞書を買い込んでしまいがちになります。

たとえば現在私が iPad 上で購入している辞書の一覧を見ると以下のようになっています。

f:id:ardbeg1958:20210503024921p:plain

購入済辞書

ご覧のように、国語辞典、古語辞典、漢和辞典、英和・和英、英英、その他のバラエティに富んだラインナップになっています。翻訳の仕事もしていますので、英語だけではなく日本語の辞書にも日々お世話になっています。

macOS 版登場

さて iOS 版でも iPadiPhone 上で便利に使ってはいたのですが、仕事は Mac で行うことが多いので、本格的に使うとなるとやはり PC(Mac)上でも使いたくなります。そんな利用者の願いを聞き届けてくれたのか、物書堂が macOS 用の辞書をリリースしてくれました。

www.monokakido.jp

しかも iOS版で購入した辞書はそのまま macOS版でも使えるというではありませんか。これはダウンロードしない理由はありません。ということで早速 Mac App Store から「辞書 by 物書堂」をダウンロードしました。

以下の画面が macOS 上での実行の様子です。左上の検索ボックスに調べたい単語を入力して辞書をひきます。

f:id:ardbeg1958:20210503025727p:plain

説明文の中から、さらに他の単語に飛ぶこともできますし、検索履歴も見ることができます。やはり画面が広いのは便利ですし、検索結果を気軽にコピーできるのも嬉しいですね。

便利な連携機能

辞書をひくのに、手で単語を打ち込んだり、あるいは単語をコピーして検索窓でペーストしたりしても良いのですが、回数が増えるともっと便利に連携させたくなります。ということで、 macOS 上で macOS版「辞書 by 物書堂」アプリと連携する方法をいくつかご紹介しておきます。

1.「サービス」の利用

辞書 by 物書堂アプリをインストールしたあと、各アプリの中で文字列を選択すると、そのアプリの「サービス」メニューの中に

"辞書 by 物書堂"で検索

という項目が出てきます。これを選ぶと選択した文字列で辞書が検索されます。

もしサービスにメニュー項目が増えないときは、「システム環境設定>キーボード>ショートカット>サービス」の中で、「"辞書 by 物書堂"で検索」にチェックマークが入っているかどうか確認しましょう。

f:id:ardbeg1958:20210503030657p:plain

2.クリップボード検索

アプリの右上の 「・・・」メニューを選んで、左のカラムの「設定」を選ぶと、「クリップボード検索」が設定できるようになります。「クリップボード検索」をオンにしておくと、macOS上の任意のアプリで文字列を「コピー」すると、それがクリップボードを経由して自動的に辞書アプリ内で検索されるようになります。

f:id:ardbeg1958:20210503030322p:plain

ただし辞書を引きたいと思っていない場合でも、勝手に辞書引きをされてしまうので、煩わしいと思う人もいるかもしれません。そういう人はたとえば次のようなやり方を行うことができます。

3.PopClipを使ったURLスキーム連携

macOS には PopClip という便利なユーティリティがあるのですが、それを使ってURLスキームという仕掛けを介して連携を行うやりかたです。残念ながら PopClip は有料なので気軽にはオススメできませんが、使いこなせれば安い買い物だと思います。

shoiblog.com

この PopClip に自分で拡張機能を入れることで辞書連携を行うことができるようになります。

PopClip の拡張機能は手作業で色々やって行うこともできるのですが、PopMaker というフリーソフトを使うと簡単に作ることができます。ソフトはこちらから。ページの下の方へスクロールして行くとダウンロードできるリンクが出てきます。

brettterpstra.com

PopMaker をインストールして立ち上げるとこんな感じの画面が出ます。

必要な内容を埋めた状態です。

f:id:ardbeg1958:20210503032307p:plain

Author: は拡張を定義している人の名前ですので、適当なもので構いません。特に自分の名前を入れる必要もないでしょう。

「Menu title:」のところに「MK」と入力していますがこれが PopClip のメニュー項目名となります。

右下の Install をクリックすると PopClip にインストールされます。

ここで任意のアプリの中で、ある単語をマウスで選択してみます。すると以下のようなメニューが選択した単語の上に現れます。

f:id:ardbeg1958:20210503033409j:plain

選ばれている単語は "capabilities" です。上に出ている

f:id:ardbeg1958:20210503033444p:plain

の部分が PopClip の出しているメニューです。この右端の「MK」が上で定義したメニュー項目で、これを選ぶと物書堂の辞書アプリが検索されます。

この最後のやり方はFaceBook で教えてもらった以下の Tweet を参考にしました

おわりに

以上簡単ですが「辞書 by 物書堂」と macOS版アプリ登場のお知らせでした。連携もうまく使えば効率的かつ便利に辞書を使えるようになると思います。私の Mac でもすでに大活躍中です。

なお Mac だけなの?と思われる方もいらっしゃると思いますが、「物書堂」は、かつて日本を代表する Apple 好きのエンジニアリング会社だった「エルゴソフト」の元技術者さんたちが作った会社なので、いまのところ macOSiOS 用のソフトしか作成していません。

仮にどこかの大企業が物書堂を買収すれば、他の OS への移植も行われるかもしれませんが、辞書ソフトのような地味なアプリはコストの割に報われない(儲からない)分野なので、なかなか厳しいかもしれませんね。 

Kitematic (Docker)

OSX で Docker Toolbox をインストールすると、同時に Kitematic というアプリケーションがインストールされる。これは Docker のイメージ管理を行うアプリケーションのようだ。

Docker Hub にアカウントがある状態で立ち上げてログインを行い、左上の +NEW というボタンを押すと、右のペインに候補のイメージが表示される(下の方には自分で作ったイメージも表示されている)。

ここで各イメージにある CREATE ボタンを押すとコンテナが作られるということ(もしイメージがローカルになければダウンロードされる)。

f:id:ardbeg1958:20150818185441p:plain

上の画像は、既に hello-world-nginx イメージをロードしてコンテナを走らせている状態のもの。

ここで、左側のカラムの hello-world-nginx をクリックすると、コンテナに関して様々な操作ができる。

f:id:ardbeg1958:20150818185902p:plain

既に web preview が表示されているのが便利。web preview という文字列の右ボタンを押すと、OSX のブラウザ内にページが表示される。

右下の VOLUMES の下の /website_files をクリックすると OSX 側のフォルダが表示される。このフォルダは Docker コンテナにマウントされていて、ここの index.html を編集するとコンテナの web ページとして表示されるようになる。便利。

 

Docker の実験

Mac OSX 上で Docker を色々試している。

Get Started with Docker

の手順に従って進めているが、実際に実行してみると上記の記述とは途中細かな違いもある。大部分は問題なのだが、一箇所だけ引っかかったところがあるのでメモ。

第6ステップの

Tag, push, & pull your image

の中で、できたイメージを push しろと言われる。web ページの記述によれば、Docker Hub のアカウント情報を入力して push が進むとあるのだが、そのままだと単に

unauthorized: access to the requested resource is not authorized

と言われて push できない。

結局この push の前に docker login コマンドを実行して認証しておく必要がある。

memo.これは Docker 1.8.1 からの仕様?

ともあれ一連の手続きを済ませると

  • installed Docker
  • run a software image in a container
  • located an interesting image on Docker Hub
  • run the image on your own machine
  • modified an image to create your own and run it
  • create a Docker Hub account and repository
  • pushed your image to Docker Hub for others to share

といったことをひと通り行うことになる。

Elixir のモジュールと名前付き関数

引き続きこの書籍を読んでいます

Programming Elixir: Functional |> Concurrent |> Pragmatic |> Fun

Programming Elixir: Functional |> Concurrent |> Pragmatic |> Fun

 

第6章で取り上げられるトピックは以下のものです。

 

  • モジュール(コードをまとめる基本単位)
  • パブリックならびにプライベート名前付き関数
  • ガードクローズ
  • モジュール指示(ディレクティブ)と属性(アトリビュート
  • Erlang モジュール内の関数の呼び出し

 

モジュールと名前付き関数

Elixir の名前付き関数はモジュールの中に定義されます。

defmodule Learn do
  def add2(n) do
    n + 2
  end
end

 Learn というモジュールの中に add2 という関数を定義しています。

これを iex からコンパイル&ロードして使うには(ファイル名は Learn.exs)以下のようにします。

iex> c "Learn.exs"
[Learn]
iex> Learn.add2 3
5

 演習問題解答

# Exercise: ModuleAndFunctions-1, 3

# モジュール名は Learn を使用

defmodule Learn do
  def add2(n) do
    n + 2
  end
  def double(n) do
    n * 2
  end
  def triple(n) do
    n * 3
  end
  def quadruple(n) do
    double(double(n))
  end
end

 名前付き関数呼び出し時の引数パターンマッチ

引数のパターンマッチで、実際に呼び出される関数が変わります。

階乗を計算するモジュール Factorial の定義例(書籍のものを参考に)

defmodule Factorial do
  def of(0) do 1 end
  def of(n) do n * of(n-1) end
end

 これを定義して Factorial.of(0) と呼び出すと、一行目にパターンマッチして 1 が返されます。 Factorial.of(10) といった呼び出しは二行目に再帰的にマッチして計算が進み、最後に一行目にマッチして計算が停止します。

iex> c "Factorial1.exs"
[Factorial]
iex> Factorial.of(1)
1
iex> Factorial.of(0)
1
iex> Factorial.of(3)
6
iex> Factorial.of(10)
3628800
iex> Factorial.of(100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

 

演習問題解答

# ModulesAndFunctions-5

# 最大公約数の計算(ユークリッドの互除法

defmodule GCD do
  def gcd(x, 0) do
    x
  end
  def gcd(x, y) do
    gcd(y, rem(x, y))
  end
end