Duolingoをはじめた

2024/10/15

英会話学習アプリのDuolingoをはじめた。毎朝15分を1週間ちょっと。今のところいい感じなので年間プランを課金した。どこまで続くか試してみることにする。

元々夏休みのフィリピン旅行の前にオンライン英会話のNative Campを契約して、日本に帰ってきてからも毎朝やっていた。Native Campではビジネス英会話コースというのを初級からやっていたが、初級・中級と終えて次はどうするか迷う。上級はちょっと実践例すぎるように感じたし、テキストを読み上げるだけでの上達にも限界を感じつつあった。自分の弱点は明らかにリスニングで、英文ならそこそこ意味を読み取れてても会話だと簡単な質問がわからない。以前ディクテーションをやった時とてもよかったのを覚えていたので、近いことができるアプリがないか探してDuolingoに行き着いた。

Duolingoは兄が使っていたりSNSで知人がシェアしていたりして存在はしっていたが、かなり海外のゲーミフィケーションを感じるつくりなのが自分にはどうかと思っていた。でも実際始めてみるとすぐ慣れ、続けれそうな感覚があったので年間プランを課金。リスニングやディクテーションの問題もたくさんあってうれしい。自分は五感で言うと視覚優位だと思うので、アプリの画面をみながらひとつずつ答え合わせできるのも肌に合っている。毎朝15分を目標に続けてみることにする。

実際に英語が話せるようになるかは分からない。Duolingoの日本語訳の問題で英文とバラバラに配置された単語が与えられ、単語を順にタップして正解の日本語文を作るというのがある。登場人物にHinataという人がいるが、その名前を「ひな」「た」とタップする。ここじゃない感がすごい。あとは時制の問題なのに自由入力で「soccer」とか「fruits」が穴埋めの対象になってるときがある。そこじゃない気がする。でも理解が足りてないところを補えたり、ディクテーションのときに「a」とか「were」とかが聞き取れなかったり勉強になるところも多い。最近学んだのは「This soup is as spicy as my mom's」。簡単な文章だがasやspicyをどの順で並べたら良いかわかっていないことに気づく。レッスンも過去進行形に入ってきて問題も難しくなってきたので、ここから楽しくなりそうである。


自分の体調を知る

2024/10/14

長かった夏が終わりようやく秋が来た。日中もかなり涼しくなってきて朝晩は寒いくらい。軽くタンスを整理して長袖の服を取り出しやすくした。

暑いのが苦手なので秋の到来は喜ばしいが、体調はあまり万全ではない。体が重かったり頭が回らなかったりする。そして毎年春と秋の時期にそうなっていることに気づき、寒暖差アレルギーで調べると症状が一致していてひとりで頷く。数年前から自律神経が乱れやすい体になっており、外出の際は体温調整に気をつけるようにしている。

カフェインにも弱い。カフェや喫茶店のような雰囲気は好きなのでよく行くが、コーヒーを飲んだ日は夜中までそわそわしてパフォーマンスが落ちる。ずっと落ち着かなかったり、人の話に集中しづらかったりする。カフェインを避けてるうちにさらに耐性は失われてるようで、最近はスタバのカフェラテでもフラフラする。一度紅茶が自慢のカフェに行くとポットパーティーなるメニューしかなく、カップが空くたびに違う紅茶が注がれることになった。2時間で6-7杯ほど飲み、翌日まで体調が戻らなかった。

最近はもっぱらカフェインレスを飲むことにしている。幸い(?)コーヒーの味は全然わからないのでカフェインレスでも変わりなく満足できる。ただしカフェインレスを提供している店自体が少ない。個人店だとほとんどないし、大手チェーンでも提供状況はまちまち。自然と100%デカフェにありつけるスタバに行く機会が増えた。本当はタリーズ派だが、タリーズは店によってデカフェがあったりなかったりする。私はカフェラテをデカフェにしたものが好きで、それだとさらに店が絞られる。本当は個人店のいろんな雰囲気を楽しみたいが、フラフラになると後がしんどいので我慢する。誰かと行くときはデカフェどうこういってられないシーンもあるので、その時はルイボスティーやハーブティーを選ぶ。カフェインを飲むとその後あまり集中して喋れず申し訳ない気持ちになってしまう。

梅雨の時期は低気圧に苦しめられる。気圧差が激しいタイミングでは頭痛になり、体も重くなる。低気圧はカフェインとは違って避けられないので受け止めるしかない。どうしても頭痛になりたくない日は市販薬を飲んだりもする。バファリンなどをいつもカバンに備えておき、体調の変化に気づいたらいつでも飲めるようにしている。備えがあるだけでかなり気は楽になる。低気圧というと「頭痛〜る」というアプリが有名で、これをみると何時頃に低気圧が来る分かる。不思議なことにグラフは平坦なのに頭痛になるときもあって、その時にアプリを開くと他のユーザーも同じように書き込みしてたりする。グラフだけではない何かがある。頭痛〜るはとても便利なアプリが、グラフを未来の方向に横スクロールしていくと急にプレミアムプラン訴求ポップアップが表示される体験が嫌いで使うのをやめた。先の予報はプレミアム限定なのは良いが、スクロールしてたら急に割って入られるのに毎度ムッとしてしまう。低気圧はどのアプリでも見れて良いと思うので、普通の天気アプリに組み込まれるのを期待している。


コーディングルーティーン

2024/10/13

Webサービス開発で新しい機能を実装するときの自分なりの流れを書いてみる。

まず最初はパソコンは不要で、紙とペンだけで作りたいものと向き合う。ノートに機能名を見出しとして大きく書き、その下に小さく要件を書き連ねる。例えばどこをクリックしたら何が起きるとか、画面にどういう要素があるかとか。画面を伴う開発の場合はラフな絵を最初に描いて、そこにあるボタンや要素について順に仕様を考えていくことが多い。ユーザーの状況によって表示が違ったり、何かのボタンを押したら要素が展開されるようなつくりもよくある。そういういろんなパターンをここで書き出しておく。

全体のイメージが沸いたら、次は実装のステップを書き出す。1, 2, 3...と数字を打ち、順番に何をやっていくかを書く。ここで書くのはユーザーの操作の順番(つまり仕様)ではなく自分がどういう順序で実装していくかを書く。例えばここの機能をコメントアウトするとこの要素が消えることを確認するとか、フォームにひとつ入力項目を追加するとか、データベースのマイグレーションをするとかとか。思い当たるすべてのことを書き出しつつ、それを今回の実装で重要な順に並べる。大体の機能は5ステップ、多くても7ステップくらいに収まる。それより超えてくると激ムズ機能なので、もう少し細かい粒度で考え直す。

例えば不具合修正の場合のステップは、その不具合が発生することの確認、原因調査としてソースコードを読む、保存されるデータ形式を理解する、不具合が出てない他の似た箇所のソースコードを読んで違いを比較する。アタリがついたら修正してみて一番主のパターンで解決されたか確認する。それができていれば細かい条件を網羅しながらサブのパターンで修正されたかを順に見ていく。最後にその関数を他で使っているところに思わぬ影響が出ていないかチェック。別の画面だったり機能が正しく動くことを確認する。こんな感じでステップを定義する。

昔はここでパソコンを開いてステップに従って実装を進めていたが、最近はこの段階ではまだ開かない。「難所」を書き出すようにしている。難所とは今回の実装で難しいポイントや、自分にとって学習が必要なポイントを指す。例えばGoogleアカウントでログインできるようにするとか、難しめのUIに挑戦するとか、そういうのを書く。書いたらその難所について先に調べる。良い時代なのでネットで調べればその実現方法や、その機能を実装した人のメモなどが見つかる。いくつか良さげなのをピックアップしたら読みながらメモしていく。動くサンプルコードが提供されている場合も少なくない。その場合はコードをザッと見つつ、やはり要点をメモしていく。

難所を乗り越えるイメージができたところで実装に入る。もう要件やステップ分解は済んでいるので、あとは上から順番に作業していくだけである。ここは考える脳みそはほとんどオフにして作業者に徹する。言われたことを完璧にこなせばOKというマインドに切り替えて、確認したり実装したりして進めていく。ひとつステップが完了するごとにその項目に打ち消し線を引いて終わった感を出していく。この進んでいく感じが個人的にたまらない。進めてると新しく問題や気になるポイントが思い浮かんだりするので、それもステップに追記していく。書き出したすべての項目に線が引かれたら完了の合図。最後に全体的にバグってないか、使い心地は良いかを確認して、問題なければ機能をリリースする。

自分なりの流れを決められるとリズムよく開発できる。難しい機能も分解すればひとつずつは超えていけるし、自分ひとりで乗り越えるのが難しい場合は知人に聞けばよい。その時もステップが分解されていればピンポイントで分からないことを相談しやすい。自分のできるところから作って難所を後回しにすることもできるがオススメしない。難所は自分にとって未知の領域なので、もしかしたら実現不可能かもしれない。その場合は他の解決方法を考える必要がある。不確実なものから先に取り組んだ方がよい。


数珠つなぎで本を読む

2024/10/13

8月頃から読書熱が高まっており、そのまま途切れることなく読書の秋に突入した。読みたい本を絶やさず手元に確保するために、定期的に本を買っている。

本を買う一番のきっかけは友人の紹介で、直接聞いたりブログを読んだりPodcastを聴いて、紹介されている本を買う。個人書店を応援したいのでメモしておいて本屋で買いたいが、急ぎの場合はAmazonでポチることもある。本を読んでいるとそのなかで別の本が引用されていたりする。そこで気になったものもメモして買う。こんな感じで数珠繋ぎで本を読んでいく。

本を紹介する本というのもある。「千年の読書」は生きづらさ・食・幸福などの章に区切られ、テーマごとに様々な本が紹介される。単純な列挙というよりは語りながらいろんな本を紹介していくような文体なので次々と読みたくなる。こういう本を起点に新しい本と出会うのも良い。「経営読書記録 表」はビジネス本版の紹介本だ。著者の楠木さんは錚々たるビジネス本の帯コメントを書いたり翻訳したりしている。その楠木さんが読んだ本のなかから特に印象深いものを紹介する。選書というと小説やエッセイなどが多い印象があるが、この本で紹介されるのはゴリゴリのビジネス本、しかもどれも上質なもので素晴らしい。ビジネス本は多く出版されているが、すぐに使えるテクニック!みたいなものではなく長く自分の中に残る本を読みたいと思っている。玉石混合のビジネス本のなかで、確かな目で選書してもらえるのはありがたい。

自分のために誰かが本を選んでくれるというのに憧れて、本屋の選書サービスを利用したこともある。毎月自分に合うと思われる3冊程度の本が定期的に送られてくる。まるで違うジャンルの本を読めたりして面白いかなと思ったが、あまり読みたいと思える本が届かず3ヵ月ほどで解約してしまった。これはもっと自分の興味関心を理解してくれている人にやってもらうと面白くなりそう。昔テレビで老夫婦が経営するローカルの本屋さんが取り上げられていて、そこで子供向けに絵本の選書をするというのがあった。年齢にあわせていま読んでおいてほしい絵本を選び、その感想を聞いてまた次の本をおすすめする。その選書がとても人気という話だったが、これの大人版が欲しい。たとえば今は政治とか国会とかの仕組みを学びたいが、なかなかエントリーで何を読めば良いかわからない。そういう相談相手がいるだけでも読書のとっつきやすさはかなり変わる。

気になったものはとりあえず買うことにしてるので、いわゆる積読状態になる。積読にはなってて全然良いと思う。ふとした時にあるジャンルの本を読みたくなる。そのタイミングはまちまちなので、そういう気持ちになったときにすぐ手を伸ばせるよう手元にいろいろ準備しておく。突然興味がなくなって、その分野はもうお腹いっぱいになることもある。そのときはもう読まずに置いておくか、スペースがなければ友人にあげるなりすれば良い。ちょっと読んで自分に合わないなと思ったらそこで読むのをやめたりもする。一冊一冊絶対に読まないといけないと思うと息苦しくなるので気楽に読み替えるようにしている。人には読書体力的なものがあるらしく、自分の読書体力はそこまで高くはないので超難しい本は選ばないようにしている。ページ数もあるが翻訳本とかドキュメンタリーとかは体力が必要。エッセイや技術本とかはスラスラ読める。一番読みやすいのは芸人のエッセイ本で、ハライチの岩井さんやかまいたち山内さん、ぼる塾日記などは読書に戻ってくるきっかけになった。こういう本は他人にも薦めやすい。

読書体力でいうと、一日に読みたくなる文字数は決まっている、みたいな話を昔どこかで聞いたことがある。仕事でたくさんメッセージをやり取りしたり、何かのドキュメントを読み込んだりした日はあまり本に手が伸びない。考えたり体を動かしたりした日は読みたくなる。そういえばXから距離を置くためにアプリを消したりおすすめフィードを非表示にしたりしてから本を読むことが増えた気がする。単純に時間が増えたためだと思っていたが、触れる文字数が減ったというのも影響しているかもしれない。適当に流れてくる情報で文字カウントを消費するのではなく、自分が読みたいものを読むようにしたい。


アクセシビリティに関するNのこと(後編)

2024/10/12

アクセシビリティと似ているものとしてユーザビリティがある。ユーザビリティが使いやすさを意味するのに対し、アクセシビリティはそもそもアクセス可能かどうかを表す。音声で操作できたり拡大して文字を読めたりするのがアクセシビリティ、サービスの使い勝手が良くて目的を達せられるのがユーザビリティ。バリアフリーという単語が昔はよく使われたが、それは特定の障害を取り除く意味合いがあった。いまでは障害は濃淡あれど人それぞれあるもので、すべての人にとって使えるものを提供しようというのでアクセシビリティと呼ばれる。包括するという意味でインクルーシブデザインなどと呼ばれることもある。

障害とはなにか?個人が持つものではなく、環境との間に生まれるものだと理解している。視覚障害の方でも勝手をよく知る自分の家なら楽に移動できる。外に出ると気をつけないといけないことが多い。これは外の建物やサービスで配慮が不足しているから。人と環境の間に障害があり、それはひとつずつ取り除いていける。ここでいう障害はグラデーションがある。例えば車椅子の人にとって使いやすいよう作られた駅構内は、スーツケースを引いている人にも助けになる。一時的に足を怪我し、松葉杖をついているときも助かる。人によって能力はさまざまで、階段を何段か登るととても疲れてしまう人もいるかもしれない。アクセシビリティを高めることは全体にとってポジティブになる。Webサイトのすべてをキーボードで操作できるようにするのは、視覚障害者にとって大事なことだが同時にキーボードを使いこなして効率化したい人にもよろこばれる。

ただし、「障害者のためのデザインは結局、非障害者にとっても有用だ」と安易に考えすぎるのも注意が必要。非障害者にとって役立たないものの優先度が下がるわけでは決してない(むしろ感覚的にはあがるべき)。ニュースの手話通訳や点字ブロックは障害者のニーズにのみに応える。韓国では美観上よろしくないという理由で点字ブロックの色が目立ちにくいグレーになっているらしい。全員にとって、を強調しすぎるあまり本来の問題を解決できなくなるのは本末転倒だと頭に入れておきたい。ちなみこのあたりの話は「サイボーグになる」という本に教えてもらった。障害をもつSF作家と俳優の二人が書いた本だが、社会の障害と人間の感情、テクノロジーとの関連について書かれていてとても面白かった。

考慮されていない施設に後からエレベーターやスロープをつけていくのは費用や工数の面で時間がかかる。最初から考慮して設計していれば元々の建てる工数とほぼ変わらずに作ることができる。これはWebの世界でも似ている。データベースを設計するとき、サービスが成長して後に必要になる機能を見通しながら、将来に破綻をきたさないように設計する。後からまったく想定外の仕様を実装するとなると大幅に時間がかかる。それを避けるために最初にいろいろ考慮してつくるわけだが、Webアクセシビリティもそれに近いかもしれない。作ったものを後からWebアクセシビリティ対応するのではなく、最初から考慮して設計・実装していく。スタート地点から設計に組み込まれていれば拡張もしやすいし、使いやすいようにチューニングしていくのも簡単。設計の時点で気づければ、いまの時代解決のための手段や技術はたくさん存在する。まずは気付けるように、いろいろな環境や障害を知っていくことからなのかなと思っています。