一日一吉

遊びをせんとや生れけむ、戯れせんとや生まれけん

落書き、音楽、言語万能主義への疑問

 最近、音楽を聞くときの耳の解像度が上がった気がする。

 正確に言うと、かつての解像度を取り戻しつつある、だろうか。

 

 僕は高校大学時代、パソコンを使って作曲をしていた。いわゆるDTMというやつだ。

 その頃は、自分が好きな音楽を聞いては「この高揚感をもたらすのはどの音だろう」とか、「このドラムのノリノリの感じはどうして出てくるのだろう」と、耳から入ってくる情報を全力で分析していた。

 そのため、細やかな音色の按配やパンの具合、ドラム、ベース、伴奏音のバランスなど、いろいろなところに注意が向けられ、それらを同時並行的に感じ取っていた。

 そうした細かい情報がすべて感じられるので、音楽を聴いているときの発見も多く、感動も多かった。感情の振れ幅がものすごく大きくなり、音楽を聴きながら泣くこともしばしばだった。

 

 社会人になり、仕事が忙しくなると、すっかり音楽創作からは遠く離れた。耳をこらして音楽を聴くことも少なくなった。僕の耳が音楽を細かく分析する能力も衰えていった。

 ところが最近、また少しずつ、当時のように音楽を聴いてはっとすることが増えてきた。先週と同じ曲を聴いているのに、先週は気づかなかった細部に気づく、というようなことが増えてきた。耳の分析力が回復してきたのだ。

 

 音楽の創作を再開したわけではない。最近やっていることといえば、ふたつ。一つは、音楽でも絵でもなんでも、見聞きして気づいたことを言葉にしてメモしておく、ということと、絵を描いているということだ。

 絵と言っても、大したものではない。そのへんのA4コピー用紙の裏紙に、ボールペンで落書きしているだけだ。

 自由気ままに、頭の中に浮かんだイメージを描いていく。

 頭の中のもやもやしたイメージは、必ずしも言語ですぐに表せるものではない。それを無理矢理に言語化するのではなく、もやもやしたままに絵として浮かび上がらせてみるのだ。

 あるいは、とりあえず何か描こうと、ペンを持ってみる。何も考えずに、やおら縦に線を引く。すると、引いた線から、何かイメージが喚起される。喚起されるイメージに任せ、そのままどんどん線を描き足していく。すると、よくわからない抽象的な図形が描ける。よくわからなくて、意味のない図形なのだが、これは紛れもなく僕の頭から浮かび上がったものである。そうしたものが目に見える形になるのは、なんだか楽しいのだ。

 そんなふうに、非言語的なアウトプットを続けているうちに、非言語的なインプットを感じ取る感覚のほうも、鋭敏になってきたのかもしれない。だから、音楽ではっとすることが増えてきたのかもしれない。

 

 最近、仕事のため、学習のため、にどんどんアウトプットしよう、ということが巷でよく聞かれる。言葉を尽くして、メモを書き、ノートを書き、ブログを書き、プレゼン資料を書き、といった具合である。

 それはそれで良いのだが、僕はそこに一抹の違和感を感じていた。言語化さえすればすべて解決するかのように、アウトプット信仰が広まっている。しかし、言葉にならない部分も人間にはいっぱいあるんじゃないか、と僕は思ったのだ。

 「アウトプット」にまつわるビジネス書なんかを読むと、言葉になるものが全てで、言葉にならないものは存在しないかのように取り扱われているように感じた。言葉にならない部分を切り捨ててしまうと、人間の大切なものがすっぽり抜け落ちてしまうように思うのだ。

 

 それに対する回答として、「落書き」と「耳の分析能力」に関する僕のエピソードが、関連している気がする。非言語的な部分を意識して、非言語的な表現をしてみる。それが、自分をよりよく認識し、表現し、人間をより良く認識することにつながるのではないだろうか。

 

無駄なことでも、やりたければやり続けよう:『無駄なことを続けるために』を読んで

 藤原麻里菜さんの『無駄なことを続けるために - ほどほどに暮らせる稼ぎ方』を読んだ。

 

無駄なことを続けるために - ほどほどに暮らせる稼ぎ方 - (ヨシモトブックス)

無駄なことを続けるために - ほどほどに暮らせる稼ぎ方 - (ヨシモトブックス)

 

 

 僕は全然知らなかったのだけれど、麻里奈さんは「無駄なもの」を作り続ける発明家である。作ったものをYouTubeやブログ等で紹介している。

 どんな無駄なものかというと、たとえば、インスタグラムにアップするべくスマホで写真を撮ろうとすると指が写り込んでしまう「インスタ映え台無しマシーン」とか、

www.youtube.com

 ハイタッチが苦手な内気な人の代わりにハイタッチをしてくれる「らくらくハイタッチくん」とか。

www.youtube.com

 

 作り続けてだんだんネット上で人気が出てきて、2018年には台湾で個展を開くにまで至った。

 ものを作るだけでなく、それをいかに人に見せるか、というところをしっかりと考えていて、YouTube上で動画で見せたり、文章を書いてブログで見せたりしている。それぞれのメディアにあった見せ方を工夫している。

 そうして、無駄づくりによりある程度の収入を得る。それ以外の映像制作やライティングの仕事も、別名義でやっておられるそうで、それらの収入で生計を立てているそうだ。

 こうした、無駄作りを始めて、それで生計を立てられるようになるまでの経緯が本書で綴られている。

 

 自分の作りたいこと、やりたいことを主軸にして、しっかりと収入を得ながら生活をしているのは本当に素晴らしいことである。また、YouTube、ブログをきっかけとした収入から、クラウドファンディングまで、現代的なマネタイズの方法を次々と取り入れているのはまさに「現代のクリエイター」らしいやり方で、それを実現できているのがすごい。

 

 では、なぜ彼女はそこまでも「無駄づくり」にこだわるのか。

 それは、「無駄づくり」をすることで、彼女の心の中のわだかまりが解けていくから、のようである。

 やはり、人生の主軸に据えられるようなことは、長年続けられる、自分の中でどうしてもやりたい、譲れないと思うことのようだ。

 

 そうした、自分にビタッとくるものが、すぐに見つかる人は稀であろうと思う。また、見つけたと思ってやってみても、しばらくしたら、やっぱり違った、ということもあるかもしれない。

 ただ、もし、これが楽しい、これをやっていると救われる気分になる、充実感が得られる、ということが見つかり、それが社会に反したことでないのならば、ずっと続けたらいいなじゃないか、と思った。

 

 僕にとって、そうした続けずにいられないものはなんだろうか。考えさせられる1冊だった。

積読撲滅奮闘記4:読んでない本を無責任に紹介してみる

 積読を解消するには、読む時間を確保しなければならない。

 読む時間を確保するには、「この本が読みたい」と意欲を持つことが大切だ。

 そうすれば、自ずと、仕事の昼休みや、通勤時間、休日のちょっと空いた時間などにも、その本を手に取るであろう。

 

 というわけで、そうした意欲が湧くことを期待して、僕が積読している本を、読まずに紹介する、という無責任な記事を書きたい。

 これは決して、著者や書籍に対する冒涜ではなく、僕の書物に対する憧憬が為せる所業であることをご理解いただきたい。

 

『思考のすごい力』(ブルース・リプトン)

 

「思考」のすごい力

「思考」のすごい力

 

 

 「意識や環境が細胞をコントロールし、遺伝子のふるまいを変えるという驚くべき真実。」

 帯にそう書かれている。正直、ちょっとうさんくささを感じてしまう。たしか、買った当時もうさんくささを感じていた。これは科学のヴェールをかぶった疑似科学なのではないか、なんて。

 でも、その辺は、読んでみなければわからない。仮に疑似科学だったとしても、そうだとわかって読んで面白ければ、それで良いじゃないかと思う。せっかく買ったのだし、じきに読んでみたいと思っている。

 

『コーヒーの科学』(旦部幸博)

 

  

 僕はコーヒーが大好きである。たくさん飲まないので、豆屋でコーヒー豆を買うことはしない。飲みきる前に酸化させてしまうのだ。それでも、インスタントでは満足できないので、一杯分ずつ密封包装されているドリップオンのコーヒーを飲んでいる。

 喫茶店でコーヒーを飲むのも好きだ。特に知識もないし、飲んだコーヒーの味やら香りやらを明確に言語化するほどの訓練もしていなけれど、どこの店はどんな感じ、という感覚をなんとなく自分の中に持っている。

 で、そんな愛すべきコーヒーについて科学的に解き明かしている本なのだ。これは絶対面白いはずだ!と手にとって、レジで会計を済ませ、意気揚々と本棚にしまい込んだ。それから早何年。いつか読みたい。おいしいコーヒー飲みながら。

 

おわりに

 

 さて、こうして未読の本を2冊ほど挙げてみた(3冊にしようと思ったけど、長くなってきたので2冊)。書いてみると、僕がこれらの本と出会った時のこと、これらの本に対してどう思っているか、などといったことが想起されて、なかなかに良い経験となった。

 これがきっかけで、少しでも読み進むことができたら、またここでご報告申し上げたい次第だ。

【C++】vectorの各要素の和を求めたり積を求めたり

 std::vectorの各要素の和や積を求めるのに、for文を使わない方法を知ったのでメモ。

 std::accumulateを使えば良い。

cpprefjp.github.io

 利用例は以下。

#include <numeric>

int main()
{
    std::vector<int> vals = { 1, 2, 3, 4, 5 };

    // 各要素の和
    int sum = std::accumulate(vals.begin(), vals.end(), 0);
    std::cout << sum << std::endl;  // 15

    // 平均
    double avg = sum / vals.size();
    std::cout << avg << std::endl;  // 3

    // 各要素の積
    int prod = std::accumulate(vals.begin(), vals.end(), 1, [](int init, int v) { return init * v; });
    std::cout << prod << std::endl; // 120
}

 計算したい範囲(この場合はvectorbegin()からend()まで)と、第三引数におまじないの0std::accumulate()に渡せば和を求められる。

 この3引数のstd::accumulateは実は、積を求める例で呼び出している4引数のstd::accumulateの省略形である。第4引数を省略すると、二項演算関数にoperator+が渡される。これにより和が求められる。

 4引数のほうの動作としては、第3引数の値を初期値とし、begin()end()間の各要素iについて、init = func(init, i)を繰り返し呼び出す。funcは第4引数で渡した二項演算関数。全要素のイテレートが完了したら、最後にfuncが返した結果を返す。

コンピュータの性能は上がれど人の性能は変わらず:"Quotes from IEEE Software History"を読んで

 IEEE Software Vol. 35 No. 05 の記事 "Quotes from IEEE Software History" を読んだのでメモ。

 この記事は無料公開されているようで、以下から読める。

 

www.computer.org

 この記事は、1980年代の、つまり今から30年以上前のIEEE Softwareの記事と、ここ10年以内くらいの同誌の記事の双方から、同じようなテーマについて語られている一節を引用して並べてみました、というものだ。

 なぜそんなことをしているのかというと、30年以上前に語られているソフトウェアやコンピュータに関することで、今も充分に通用することがたくさんあるからだ(もちろん、古くなって今は当てはまらない、というものもあるのだろう)。

 なぜ、30年以上前のコンピュータの話が今も通用するのか。その理由の説明が面白い。

 上記リンク先の記事ののFigure 1. に2つのグラフが描かれており、それが理由を端的に説明している。

 1つ目のグラフはコンピュータの能力(性能といってもいい)のグラフで、50年前はわずかだった性能が、指数的にぐんぐんと伸びて現在に至っている。

 2つ目のグラフは、人の能力のグラフで、これは1万年前から現在に至るまで全く変化せず、横ばいである。

 そして、コンピュータやソフトウェアとは、人が作り、人が使うものである。人との接点を持ったものである。

 コンピュータの性能が1万倍、10万倍、100万倍と上がり、ものすごい計算ができるソフトウェアが開発されたとしても、それを使うのは、1万年前から能力のほとんど変わっていない人間なのである。

 なので、数十年前のコンピュータやソフトウェアに関する議論のすべてが無価値となるわけではないのである。人との接点、というところに着目すれば、今も成り立つ議論がたくさんある、ということである。

 言い換えれば、10年、20年とたっても古びない技術を身に付けたいと思ったとき、「コンピュータやソフトウェアと人との関わり方」に着目したら良いのかもしれない。

 

 各々の引用文のペアについては、それだけ読んでもなるほど!というものは見当たらなかった。引用元の記事を読み比べれば発見があり、技術に関する「時の試練を乗り越えられる知見」が得られるのかもしれない。気が向いたらやってみようと思う。

IEEE Computer Societyが予測した2019年10大技術トレンド

 すご~くじっくり読んでいるうちに、もう2019年1月も終わりそうだけど。

 IEEE Computer Societyが2019年の技術トレンドを予測した記事を発表しているので、読んでみた。

 

www.computer.org

 消化のために、挙げられている10項目を自分なりにまとめておく。

 

1. Deep Learning accelerators

 ディープラーニング専用のチップが広まっていきますよ、という予測。GoogleがTPUを開発したり、MicrosoftFPGAを用いてMLモデルのリアルタイム処理を高速化したりといったことがあった。iPhoneにもAppleが自社開発したAシリーズのチップが搭載されているが、そのチップにはニューラルエンジンが組み込まれている。データセンターやエッジでのこうした「AI向けチップ」の利用がもっと広がるだろうという予測。

参考:

Cloud TPU - TensorFlow のための機械学習アクセラレータ  |  Cloud TPU  |  Google Cloud

マイクロソフト、FPGAを用いたAI処理基盤「Project Brainwave」開発者向けプレビューを発表。GoogleのTPUより高性能と。Build 2018 - Publickey

iPhoneを進化させた「AIチップ」、その開発の舞台裏|WIRED.jp

 

2. Assisted transportation

 完全な自動運転は夢ではあるけれど、それが実現できるのはもう少し先の話になりそう。その前段階として、部分的に自動化されて、運転手をアシストする機能が出てくるだろう、という予測。

 そして、こうした技術は画像認識はじめ、各種センサデータからパターンを認識するので、1番に挙げたディープラーニングのチップに強く依存している。

 

3. The Internet of Bodies (IoB)

 IoTとはよく聞くけれど、IoBは初めて聞いた。体に各種センサーなどをつけて、自己診断をするようなもの。この予測では、体の外だけでなく、体の内側にもセンサーが入り込んでいくだろう、と述べられている。

 体の「外部」にセンサーを付ける例だと、スマートウォッチでフィットネス系の記録を取るのは既に一般化している。2018年に発売されたApple Watch Series 4は心電図センサーを搭載し、医療的なレベルにまで踏み込んでいる。

 ペースメーカーなんかは、既に実用化されている「センサーが体の内部に入り込んでいる」例と言えるだろう。頻脈発生時のログなんかも取っているものがあるとのこと。

 こうした体内外のセンサー群が情報を取得、記録するだけでなく、外部環境ともやりとりするようになり(例えばWi-Fiを通じてクラウド上に情報を蓄積するとか?)、応用範囲がどんどん広まっていくだろう、と予測されている。

参考:

「Apple Watch Series 4」の登場が医療に大きな変革をもたらす - GIGAZINE

[47] ペースメーカーと植え込み型除細動器 | 心臓 | 循環器病あれこれ | 国立循環器病研究センター 循環器病情報サービス

 

4. Social credit algorithms

 画像認識の技術を使い、顔を識別することで個人を識別することができる。これと、SNS上でのその人の活動記録他、デジタルにデータが残っているその人の記録を収集、解析する。これによって、その人がある特定のサービスを受ける資格があるかどうかの認定をする、というのが「ソーシャルクレジットアルゴリズム」らしい。

 これについては、ITエンジニアのネット上での活動(ブログとかOSSとかと思われる)を解析して、求人している企業とマッチングするサービス「scouty」が例として挙げられるだろう。

参考:

株式会社scouty(スカウティ) | 日本初のAIヘッドハンティングサービス

 

5. Advanced (smart) materials and devices

 新たな素材やデバイスが開発され、それがさまざまな領域に革新をもたらすであろう、とのこと。この項目は読んでいて具体的なイメージがあまり湧かないのだが、以下の記事に示すような「三つ折りスマホ」なんかは、「折り曲げられるディスプレイ」という新たなデバイスが量産化されることで、初めて実現可能な製品である。これはこの項目に該当するとみられる。

シャオミが「三つ折りスマホ」のコンセプト動画を公式に公開。量産も視野に - Engadget 日本版

 

6. Active security protection

 今までのセキュリティは、アンチウィルスソフトのように、「攻撃が来るのを待ち、来たらそれをに対処し、防衛する」という考え方だった。

 攻撃手法が複雑化しているので、この考え方でセキュリティを担保しようとすると、コストが高くなる一方で防御力は下がる。そこで、新たな攻撃を検知したら、機械学習を使ってその新た(で複雑)な攻撃を解析して、よりアクティブにセキュリティ対策をしよう、という考え方になってきているらしい。

 

7. Virtual reality (VR) and augmented reality (AR)

 ここ数年で、例えばポケモンGoが流行ったように、VR/ARは特にゲーム領域で世の中に浸透してきている。こうした流れで、ゲームが先陣を切り、他の領域へも徐々にVR/ARが広まっていくだろう、とのこと。

 ただ、特にVRの問題点として、「VRバイスが高いからみんなが買わない」→「みんなが買わないからコンテンツが増えない」→「コンテンツが増えないからみんながVRバイスを買わない」→...という悪循環があるよね、とのこと。たしかに、VRバイスを持っている友人は僕の周りにほとんどいない。この悪循環を打破できるかどうかが勝負。

 

8. Chatbots

 ユーザが入力したテキスト(または音声)を解析して、事前に準備した「それっぽい応答」を返すチャットボット。これは既にあちこちで見られる。ネットでお問い合わせができるチャットとか、LINEのボットとか、iPhoneのSiriとか。

 さらに、ボットが返す答えが「事前に準備したもの」だけでなく、その場で生成されるものになってきている、とのこと。それでよりよい受け答えができるボットになる、と。

 また、ボットは人間のふりをすることができるので、国によってはボットに対して「自分は人間ではない(ボットである)」と明言することを求める法律を制定しようと検討しているとか。SF感増してる。

 

9. Automated voice spam (robocall) prevention

 日本ではあまり馴染みがないけど、自動音声による勧誘電話(ロボコール)がアメリカでは深刻な問題になっているとのこと。これが多いので、携帯は「着信しても全部無視」としてる人も多い。でもそうすると、本当に大事な、緊急の電話にも出られない、という問題になる。

 そこで、着信時にまずコンピュータが応答、発信者に対して質問をして、発信者がロボコールかどうかを判別するテクノロジーが開発されてきている。

 

10. Technology for humanity (specifically machine learning)

 機械学習、ロボット、ドローンを組み合わせて活用して、農業を改善したり、旱魃を減らしたり、食料供給を安定化したりすることで、人口が少なかったり、自然環境が厳しい地域の健康状態を改善することができるのではないか、と期待されている。

 こうした試みは既に始まってきているが、どんどん広まっていくのでは、と予測されている。

 

まとめと感想

 というわけで、IEEE Computer Societyが今年来ると予測した10項目をざっとさらった。1番のディープラーニング用のチップなんかは、まあ今年もガシガシ開発されるし使われるだろうね、と思うし、他の項目ではこの記事で初耳(初見?)というものも結構あった。

 日本語のサイトで最新の記事追ってるだけでは気づかない部分もあるので、こうした技術記事は英語のものもちょこちょこ見ていきたい。

 で、実はこの記事は、「トップ10には入らなかったけど、この先数年で来るかもしれない追加の3項目」と、「もう十分に普及した2項目」も挙げられている。そのへんは長くなるので、今回は割愛。気が向いたら別記事でまたまとめる。

Ruby学習日記17:特異メソッド

 特異メソッドという用語を理解し、覚えたいがためのメモ書き。

 通常、メソッドはクラスに属する。しかし、特定のオブジェクトにだけ属するメソッドを定義できる。

 以下のコード例では、Stringクラスのオブジェクトmsg1withBangという特異メソッドを定義し、呼び出している。  同じStringクラスのオブジェクトであるmsg2にはwithBangは定義されていないので、呼び出そうとするとエラーとなる。

msg1 = "hello"
def msg1.withBang()
  "#{self}!"
end
msg1.withBang() #=> "hello!"

msg2 = "Hi"
msg2.withBang()
# =>
# Traceback (most recent call last):
#        2: from /Users/hz/.rbenv/versions/2.5.3/bin/irb:11:in `<main>'
#        1: from (irb):28
# NoMethodError (undefined method `withBang' for "Hi":String)