blogソフトウェア開発と人生をやっていきますこの広告は、90日以上更新していないブログに表示しています。年というタイミングで読んで印象に残った本の感想を書いておきます。見る人類の歴史は、虚構の物語をどれだけたくさんに人に信じさせるかの歴史だった、という論調で話が進んでいく。存在を信じる人が増えれば、やがてその物語は現実に強い影響を与えるようになる。社会を維持している秩序(=物語)は、神々や自然法則によって生み出された客観的事実であると主張し続けることによって、多くの人に信じさせている。この物語を盲目的に信じる人がたくさんいることで、世界は成立している。この解釈は僕にとっては救いで、『なんだ、物語の影響を受けまくってる「世界」って小説やアニメの影響を受けまくってる「僕」と何もかわらないじゃん。たいしたことないな』みたいな気持ちにさせてくれる。この本では人類の幸せとは何かという点に多くのページを割いている。私たちは中世の祖先よりも幸せで、また彼らも石器時代よりも幸せであるという価値観は間違っていると主張する。幸せは、愛情やお金や社会的地位の向上によって生まれるわけではない。セロトニンやドーパミンなどのホルモンが分泌されることで幸せになるらしい。時間コミュニケーションができるよになったって、それが幸せにつながるとは限らない。人類が幸せになることを目的とするなら、幸せになるためのホルモンを分泌を促進する薬の開発を行うべきなんじゃないかという主張が続く。僕はこの主張に強く賛成する。毎日幸せになれるお薬を摂取して、平和で穏やかに暮らすことより幸せなことってあるだろうか。サピエンス全史を読み終わったあと、僕は「しあわせの理由」と「すばらしい新世界」を読み返した。見るやっぱり幸せというのはコントローラブルであるべきなんだよな、という認識を強くした。そこに自由意志がなくても(しあわせの理由)、社会制度がディストピア的であっても(すばらしき新世界)、幸せになれるのであれば、そんなに悪い選択じゃないように思える。見る現在の社会制度は、当然のことながら人間が死ぬことを前提として作られている。そんな中、突然なんらかの形で死を克服することができるようになったら...というお話がまとめられた短編集。醍醐味なんだなとあらためて実感した。以下の文章ががすごく印象に残っている。人間は想像力を、いくらでも捨ててしまえるのだ。画面に映っただけの虚像に、強い思い入れを抱いてしまえるほど。少なくとも、僕は彼ら彼女らのぎこちない動きを豊かな想像力で補っているというよりも、想像力を捨て去ることで感情移入をしているようだった。みなさんはどうですか?この短編集が気に入ったので同作者の本を何冊か読んでみたが、老ヴォールの惑星もすごく面白かった。Kindle版この商品を含むブログを見る壮大な人生の物語。全力で生きなかった前世に対する後悔と、その後悔をバネにした転生後の努力。いなくそこに一人の人生がある。作品として一人の人間がここまでの作品を、編集などに頼らずまとめ上げたという事実に衝撃を受けた。「早く行きたいなら一人で行け、遠くへ行きたいならみんなで行け」この有名な格言は、きっと一人で遠くまで行けない人が生み出した言葉なんだと思う。みんなで遠くに行こうとすると、きっと鈍ってしまうものがある。僕は一人で遠くまで行けないけれど、一人で遠くまでいける人を絶対に邪魔しちゃだめだな。見るオタク文化の想像力が宇宙を侵食する。ああそうか、百合っていうのは実存主義で、そして宇宙なんだな、ということに気付かされる。振り返ってみると、今年は虚構が人生を変えるというテーマに強く惹かれた一年だった。新卒として慣れない仕事を覚えながら、現実と折り合いをつけるために選ばれた本なんだと思う。学生の頃のセレクションとはやっぱり少し傾向が違うようにも思う。blog来年も面白い物語が読めると良いな。Piの定番の活用方法として人気があります。3は安定した公式のOSが提供されており、かつBluetoothとWifiが標準で搭載された素晴らしいシングルボードです。コストカットの影響なのか内蔵のLANとして100Base-TXを採用しているという弱点があります。100Base-TXの理論値は100Mbpsで、これは12.5MB/sに相当します。実際にNASを構築してみると11MB/s程度の速度となり、LANがボトルネックになっていることがわかります。これは実用的に使えるものの、少し遅い印象です。3のUSBにギガネットイーサのアダプタを付けることで、転送速度の改善を行う方法があります。3のUSBはUSB2.0ですのでそこがボトルネックになります。実は既に下のLANアダプタによるギガビットLANの転送を試していますが、結論から言えば20MB/秒程度の速度です。Piを使うのに1500円もするギガビットLANアダプタを買うのは悔しい感じがします。Plusというシングルボードを使って、NASを構築してみたいと思います。Piによく似たシングルボードで様々なシリーズが展開されています。Plusは2017年12月に発売された最新のボードです。AliExpressから購入できます。Plusの特徴メリット安い20ドルで購入できます。理論上は4k60fpsの動画を再生できます。WifiとBluetoothを搭載しておらず、電波を発しないため技適に違反しません。法を守って使用できます。デメリットUSBポートが2.0USB3.0に対応していれば、NAS構築ボードとして完璧だったので少し惜しいです。ServerとAndroidのみの提供です。Serverはそこまで問題になっていません。Piと比較してコミュニティが小さいので、情報量が少なくなります。NASの構築というわけで、このボードを使ってNASの構築を行います。Piの方法と同様に、定番のSambaを用います。調べれば多数情報が出てくると思うので詳細は割愛しますが、以下の記事などを参考にすれば良いでしょう。Plus特有の注意点があります。それは起動時に入力デバイスを外して置かないとエラーでOSのブートに失敗するという問題点です。TAROのメモ帳ハードディスクを起動時に接続しておくのは問題ありません。PlusとTrancendの外付けハードディスクです。公式のケースがなかなかかわいくていいですね。上の画像は実際に速度を計測した結果です。Writeが43MB/s、Readが25MB/sとなりました。3でNASを構築したときに比べて、Writeが約4倍、Readが約2倍です。Piに比べて圧倒的に速いです。20ドルで購入できるボードでこの速度が出せるのは、なかなかコスパがいいんじゃないかと思います。3ではNASとしては十分な速度のCPUを搭載しているため、CPUパワーの影響による頭打ちは発生しません。今年読んだ本の中で印象に残ったもの感想を残しておく。フィクションあまり意識したつもりはなかったが、振り返ると生き方に関する本を多く読んだ一年だった。修士2年生ということもあり、就職活動などで今後の身の振り方を考えていたので、無意識にそのようなテーマを選んでいたのかもしれない。見る辛い現実に直面したとき、人はどのように現実に対処していくのか。悪童日記に登場する双子の兄弟は、自分に嘘をつくという選択をとった。「悪童日記」のエピソード中に「痛みを消す練習」というものがある。お互いを拳やナイフで傷つけ合い、その痛みを無視できるように訓練する。痛みを感じているのは自分ではなく、「別の誰か」であるというように認知をすり替える。辛く悲しい現実を変えるのが難しいときは、自分の認知を変えていくしかない。途中から心理学者のナチス強制収容所の経験を描いたノンフィクション「夜と霧」と重ねながら読んでいた。悪童日記は極限状態にある人々の心理を巧みに描いたフィクションだったが、夜と霧はノンフィクションならではの凄みがある。合わせて読むと良いかもしれない。見るカズオ・イシグロはノーベル文学賞を受賞したことと、ジェフ・ベゾスの愛読書ということで読んだ。「わたしを離さないで」がいまいちだったのであまり期待せずに読んだが、今年読んだ中でも1位2位を争う良い本だった。英国の執事が長年勤めた屋敷から休暇をもらい、旅に出ながら過去を振り返る。失われていく伝統や過去の選択を振り返り、行動を起こさずに歳をとってしまったと回顧する姿を見て、自分の頭を殴られたような気分になった。どんな結果になろうとも、選ばなかった後悔を最小化できるように生きていきたい。見る恐ろしく出来の良いSF短編集。オールタイム・ベストSFに選ばれている理由がわかった。様々なテーマを絶妙なバランスで成り立っている。お気に入りは「地獄とは神の不在なり」。神の降臨によって病気や怪我が治癒する人がいる一方、降臨時の災害によって命を落とす人がいる、神が日常的に顕現する世界。降臨に法則性はなく、ほとんど不条理としか思えない神の降臨に人間はどう折り合いをつけていくかという話。人はなぜ苦しまなくてはいけないのか、という宗教的で古典的テーマをヨブ記を下敷きにして現代風にアレンジした作品として読むこともできる。ドストエフスキーがヨブ記からカラマーゾフの兄弟を構想したように、神と不条理の関係は永遠のテーマなのかもしれない。妖精さんのテクノロジーに引っ掻き回される旧人類のドタバタコメディ短編集という形をとっていながらも、全編を通してみると一つの大きな筋が通っていて、スゴイものを読んでしまった...という読後感だった。田中ロミオは天才だった。あと「わたし」ちゃん腹黒かわいい。私は人工知能の開発によって、人類の役割を人工知能に代替してもらい、人類は緩やかに衰退し地球の表舞台から去って欲しいという考えを持っている。このシリーズの妖精さんを人工知能に置き換えて考えると、理想的な人類の老後の一つだと思った。ところで未知の存在に人類が引っ掻き回される物として「幼年期の終わり」は傑作なので、合わせて読むと面白いかもしれない。見る魔法の世界で繰り広げられる師匠と弟子のハートフルストーリー、なのだがそこで登場する魔法が一味違う。魔法とはオートマトンと形式言語である。オートマトンを呪文に置き換える比喩はものすごく上手く機能していて、全く違和感がない。ファンタジーに登場する魔法に完璧な整合性を求める設定厨の人、コンピューターサイエンスを学びたい人、単純に面白いエンターテイメントが読みたい人、どの人にもおすすめできる。素晴らしいストーリーと簡潔でわかりやすい説明のおかげで背景知識無しで読めます...が、私は大学でオートマトンとコンパイラの講義を受けていたので、難易度を過小評価しているかもしれない。ノンフィクション今年読んだノンフィクションは経済に偏っていた。去年は宇宙や歴史などに凝っていたので、たぶんその反動なのだと思う。あとは来年から社会人になるので、「社会をやっていくぞ!」という気持ちを高めるために読んでいた側面もたぶんある。見るジェフ・ベゾスは大帝国の皇帝で、邪魔するものは全て叩き潰す冷酷な経営者というイメージがあったが、自分の資産をひたすら宇宙開発やロケット開発に注ぎ込み続ける少年のような心を持つ熱い人だという印象が付け加わった。ちなみに邪魔するものは叩き潰すというイメージは大きくは変わらなかった。AWS、Kindle、プライムビデオ、どれもがベゾスのカリスマと異常な投資戦略によって生まれていて、世界の前進に必要なのは民主主義ではなく、クレバーな独裁者が必要なんだという確信が強まった。見る起業するときは競争をせずに独占を目指せ、とPayPalの創始者ピーター・ティールが主張する本。競争はアイデアを提案出来ない弱者の選択であると切り捨てる。独占ができれば大きな利益を得ることが可能で、それは世界に新しい価値をもたらす。(AppleのiPhone、Amazonのeコマース、PayPalの決済など)AmazonやAppleは間違いなく世界を良い方向に変えたし、独占のインセンティブを活用して事業を拡大してよりユーザ体験を実現しているので、ピーター・ティールの主張は納得感はある...が、納得感があるとはいっても現状の独占が生む超格差社会が果たして正しい姿かと言われると疑問なところがあるので、彼の主張する市場原理に任せきった市場が正しいのかよくわからない。果てなき野望で紹介されていたので読んだ。大企業がスタートアップに負けてしまう理由「破壊的イノベーション」を説明した古典。既存の製品を改良するのに夢中になり、新しい特性を持った技術を採用できずに競合に遅れを取ってしまう。読み終えた後破壊的イノベーションの例を考えてみたところ、意外と多くの場所で発生しているということに気づいた。私が真っ先に思いついたのは、マイクロソフトのクラウド参入の遅れという例だった。クラウドが拡大すると既存のOSやサーバ事業が減益してしまうので、大きく方向転換を取るのが難しかったのだと思う(ここ数年のマイクロソフト、OSSやクラウドへの舵のとり方、本当にすごい)。見る人間は経済的に合理的な判断をすることが出来ない、という例をこれでもかとぶつけてくる。「頼まれごとなら無償で引き受けるが、安い報酬では引き受けない」という例などは、言われてみれば確かに合理的じゃないな...という気づきがある。一通り読んでおくと、日常生活でハックできる点が見つかるかもしれない。Chrome拡張機能を作りました。Ruby」と名付けました。*1Chromeウェブストアからインストールすることができます。追記GIGAZINEさんのレビューがわかりやすいので参考にしてください。GIGAZINEツールバーのアイコンをクリックすると英単語の上に日本語の意味が表示されます。クリックをするとルビの表示を切り替えることができます。github.com下の画像は英語のWikipediaに拡張機能を適応した結果です。Wikipediaまたアイコンを右クリックしてメニューからオプションを選択すると、表示する英単語のレベルを設定することができます。英日辞書に簡短英日辞典を使っています。この辞書がなければ拡張機能は実現できませんでした。語彙のレベルと出現頻度が付与されてい非常に使いやすい辞書でした。Wise」に影響を受けています。USERこの機能は読者の英語レベルに応じて英単語を簡単な英語に言い換えるものです。Rubyを作りました。Chrome拡張なのでRubyではなくJavascriptを使っています。PythonOpenCVのline()関数は任意の2点を指定して線を描画する関数です。3.2以下のline()では線が塗りつぶされません。この挙動はバグとしてIssueに報告されています。github.com対策はOpenCVのアップデートです。3.3ではバグフィックスされています。このバグはOpenCV3.1から報告されていたようですが、安易に修正すると描画パフォーマンスに影響を与えるため修正に慎重になっていたようです。Piの影響力が大きくなっていることが伺えます。NAGOYA」に@garicchiと@yurafucaと僕(@drilldripper)の3人で、「ミラクル☆マジカル☆芋焼酎」というチーム名で参加しました。チーム名は語感で決めました。ちなみに僕は芋焼酎を飲めません。Hacking賞(会場内投票1位)のダブル受賞で、最高の結果を残すことができました。*1めちゃくちゃ嬉しいです。僕たちのチームは「美少女と一緒に海で水をかけあいたい!」という純粋な気持ちを叶えることで、夏休みをアップデートすることにしました。具体的には水をかけあうオンラインスマホゲームを作成し、水がかかると霧吹きから水が噴出されるシステムを実装しました。タイトルは「みずかけメモリアル」です。*2これがシステム全体の様子です。女の子から水をかけられると...www.youtube.com霧吹きから水が噴出されます。www.youtube.comこのように女の子に水をかけたりかけられたりすることで、夏をUPDATEします。詳しく知りたい方はプレゼン動画を見てもらえると嬉しいです。YouTube技術スタッククライアントのゲームはUnityで作成しています。キャラのモデルはドワンゴから提供されている「アリシア・ソリッド」さんを使用しています。3d.nicovideo.jpキャラモーションは配布されていないので、ゲームに合わせてたモーションを作成しています。クライアント間の移動や攻撃の通信はWebsocketを使用しています。PiはGPIOを通じてサーボモータを動かします。Railsで作成しています。Railsはバージョン5からはAPI作成モードが標準で使用できるようようになっていたので、これを利用しました。ゲーム部分を@garicchi、Websocket通信を@yurafuca、サーボモータ制御、API実装を僕が担当しました。モチベーション開発期間が3週間と長かったので、モチベーションを保つための工夫をしました。チームオリジナルキャラを作りました。芋焼酎ちゃんといいます。次にチームTシャツを作り、一体感を高めました。Tシャツはアイロンプリントです。Tシャツ屋さんごっこはめちゃくちゃテンションがあがって最高でした。最後にプロダクトのホームページを作りました。–最高の夏、始まるこのページの構成とポエムは僕が一生懸命考えました。これらの制作物はハッカソンの評価に直接は関係ありません。モチベーションは有限のリソースです。心がへたらないように、これらのエモーショナルなアイテムで自分たちの気持ちを高めていました。デモ僕たちのプロダクトは不調により、プレゼンでデモすることができませんでした。原因は電源を供給する電池ボックスの接触不良でした。本番にはトラブルはつきものなので、失敗する前提で前提でを組んでおくことが大切なんだなあという気持ちになりました。ハッカソン参加で高く評価されたのはすごく嬉しかったです。作品のフィードバックを貰える点が有意義だと思いました。副賞のドローンがすごく豪華でめちゃくちゃ驚きました。迷惑にならないようにぶん回して、次のプロダクトに繋げたいです。Cameraこの商品を含むブログを見るやっていく気持ちが高まる楽しい大会だったので、またこういう機会があったら参加したいです。PythonWebサイトの状況を監視するためのスクリプトを動かしたいというシチュエーションが発生することがあります。典型的な例としてECサイトの在庫監視などがあると思います。Switchの在庫状況を監視して通知するスクリプトを動かしている人もいるもいるのではないでしょうか。*1在庫確認のようなシチュエーションでは常時起動しているPC、すなわちサーバに相当するものを用意しなければなりません。VPSを借りる人も多いと思いますが、スクリプトを動かすだけに使用するには少々オーバースペックです。Lamdaを使って安価にサーバレスでサイトの在庫状況を監視するシステムを構築します。Switchの在庫状況を通知するシステムを作ります。Lambda自体がかなり安価なので、VPSを借りるよりも安価になることが多いはずです。Lambda上で実行することができる言語の一つ、Pythonでスクリプトを記述します。スクリプトの中に通知をとばす処理を記述しておきます。今回はSlackに通知します。Lambdaを実行します。構成図は以下のようになります。スクリプトスクレイピングが明示的に禁止されているサイトは実行しないでください。installでインストールします。Lambdaではライブラリを含めたフォルダをzipでまとめてアップロードする必要があるので、-tオプションでカレントディレクトリを指定しています。次に実行したいスクリプトを書きます。WebhooksのAPIを使って在庫が存在していることをSlackのチャンネルへ通知します。Webhooksの仕様は公式ドキュメントを参考にしてください。Lambdaのイベントをハンドルするために必要な引数となります。Lambda上にアップロードします。アップロードが終わったら関数がハンドラを受け取れるように設定を変更します。ハンドラは<ファイル名><メソッド名>で記述します。例で使用したスクリプトであればbuybot.buy_botとなります。ロールはlambda_exec_roleにします。タイムアウトとリソースデフォルトの設定ではリソースが足りずにタイムアウトしてしまうので、設定でメモリを増やしてタイムアウトの時間を長くします。Lambdaはメモリを増やすことでCPUの性能が増加する仕様になっています。Lambdaを動かすためのトリガーを設定します。Eventsを使用します。ここではおなじみのcron式を使うことができます。スクレイピングを行う場合、サイトに迷惑がかからないように十分な間隔を開けましょう。今回のスクリプトは1分間に1回だけ実行するようにしました。次のようなcron式になります。*)まとめとても簡単にサーバレスな監視システムを作ることができました。EC2やVPSなどを使って1からシステムを作る場合はサーバーの構築などを行わないといけないので、それに比べると気軽に動かすことができていい感じですね。見る*1:ちなみに私はSwitchをまだ持っていません。Lambdaを使ってサーバレスにWebサイトを監視してSlackに通知するTweet広告を非表示にするもっと読むコメントを書く次のページプロフィールid:drilldripperプログラミングと将棋が好きです。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。