プログラマ行進曲第二章

主にソフトウェア関連の技術をネタにした記事を執筆するためのブログ

部屋の片付けで疲れた

部屋の片付けのあとで疲れて雑文を書きたくなったので、今週のお題「ゴールデンウィーク2018」とやらを書いてみる。

ゴールデンウィークに突入してダラダラと遊んだり用事を済ませたりしていたが、諸事情により部屋の片付けを進めないといけなくなったので、今日から手をつけ始めた。

今回の片付けは単にモノの配置位置を整理するだけじゃなくて、モノを減らす作業を今まで以上にしないといけないのだが、減らす作業をここ一ヶ月以内にこなさないといけないという条件がついてしまっているのに対し、今まで手が付いていなかったモノはだいたい「捨てるか捨てていいか瞬時に判断が付かないモノ」というタイプのモノが多いので、どうしようかと思っていた。

そんな時、「クラウド収納」というタイプのサービスがあることを何となく思いだしたので、少し調べて、たまたま関連サービスのアプリを使っていたサマリーポケットというサービスを利用することにした。

pocket.sumally.com

2日前にボックスを頼み、今日届いたので早速モノを詰めこみ始めている。

サマリーポケットを利用し始めて使い終わったらブログ記事にして使用感をまとめようかとも思っている。

早いところ片付けを終わらせたい。

OCaml力無い人間なりにSATySFiをいじってみてどういう構造をしているか調べてみた (1)

ゴールデンウィークに突入したので、以前から興味のあったSATySFiの使い方を少し踏み込んで調べてみて、それの個人的備忘録としてまとめ。

個人的備忘録なので網羅性とか正確性を一切考慮しないつもり。SATySFiが何かも説明しない。

github.com

この記事を書いている時点のcommit(66fdd27)を基準にして記事を書いている。タイトルは (1) としているが (2) 以降を書くかどうかは不明。やる気と時間次第。(特にやる気)

筆者のOCaml力

今調べてる範囲だとOCaml力ほとんど要求されてないはずなんですが、表題にOCamlと入れてしまったので一応箇条書きにでも記載。

要するに非常に簡単なコードなら読めるし書けるけど、ちょっとでも複雑になると読めなくなる程度のレベルです。辛い。

予め見ておくといいドキュメント

  • 作者のgfngfn氏が発表した資料をまず最初にザッと読んでおけば、SATySFiの全体的なアーキテクチャや何を目的としているのかについては押さえられるので読んだ方がよい
    • ML Day #1で使用された発表資料を読むのがいいかと。
    • 未踏の成果発表の動画もニコ生であったんですが、今からだと見ることができなそう。

SATySFiを導入・使用する際に割と遭遇するつまづきポイント

主に「インストール時」と「使用時」でつまづくポイントが分かれると思っている。

インストール時

linuxやmacOSの場合ならSATySFi特有のつまづきは現時点だと特にないと思います。つまづくならOCaml自体の環境構築、特にopamの環境構築で詰まることがあるかもしれません。詰まった場合はググって色々自力で解決!*1

Windowsの場合は直でOCaml環境を構築するのは苦行らしいのでVMやWSLを使ってやるのが良いと聞いています。或いは有志が作ったSATySFi for Windowsを使うなどするとか。

使用時

SATySFi使用時で一番つまづくポイントは「フォント(設定)が足りなくてビルド出来なくなる」ということだと思っている。特に導入し始めの場合。

なんでフォント周りでつまづくかというと、用意されているドキュメントにそもそも様々なフォントを要求するようになっていることが多いため。或いは標準ライブラリ(というのだろうか?)内で使用されるフォントの種類が変わることがあるため。例えばこのcommit以降のバージョンを使う際は、stdjaをrequireしているドキュメントは Junicode.ttfJunicode-it.ttf~/.satysfi/dist/fonts 以下に置く必要が出てきて、一回ハマってしまった。

ライブラリルートに関する構造や使い方に関して日本語で書かれたメモが書かれたファイルがリポジトリ内にあるので、それを見るとよい。

あとよくあるつまづきとしては、必要な素材がなくてビルド出来ずにエラーになるもの。 satysfi-logo.jpg がなくてビルド出来ないとかある。

PRは面倒でしてなかったりする。

他、調べたこと

割と色々調べたけど、文章に上手くまとめられないので、やる気があったら(2)と称して続きを書く。内容として考えているのは以下の通り。

  • コマンドはどのようにして定義されているのか
  • コマンドを自作したくなったときにどのあたりに手をつければいいのか

というか、最初の方に紹介したスライドとSATySFiのソースコードをつきあわせればだいたい分かる話なので、書いてもなあという気もしている。

*1:こういう記事でそこまでサポートすると疲れるので。

生まれて初めてバーテンダーのいるバーに行きました

最近またブログ更新をしていないので適当なネタで更新をすることで更新再開をもくろむメソッド発動させました。

表題の通りですが、生まれて初めてバーテンダーのいるバーに行ってみました。

1週間ちょっと前、5年ぶりくらいに連絡のあった大学時代の友達に飲みに誘われたので、錦糸町に行って飲み会をしたのですが、その時「大人な雰囲気のバーとか行ってみたいよね」という話が出たので「じゃあ、今行けばいいじゃん」と提案し、いわゆるバーテンダーがいるようなバーらしいバーに行ってみたのです。

生まれて初めてバーテンダーがいるお店に行って、実際にカクテルをシェイクする姿を見ることができて面白かったですね。

友達は「なんかドラマの『相棒』の一場面みたいだよね」と言っていましたが、確かにそう感じられてフフっと心の中で笑ってしまいました。

上のツイートの写真でも少し分かりますが、カウンター奥に色々な種類のお酒やグラスが置いてあって雰囲気も感じました。

また機会があればこういったお店に行きたいですね。

靴とジーンズを買ってきたが、着るものの買い物が面倒くさすぎてどうにかしてほしい

技術文章でもアニメ系の話しでもイベントに参加した話でもない適当な与太話を書き殴る。

靴2足とジーンズ1着が立て続けにダメになってしまってから1ヶ月以上放置していたのだけれど、流石にそのまま過ごすには色々キツくなってきたので、この3連休という余裕のある内に済ませておこうと思って今日買い物をしてきた。

書籍や各種アイテムの購入は普段AmazonなどのECサイトを利用して通販で済ませているのだが、普段着だったり靴だったり眼鏡だったり、身につけるものは実際の店舗に足を運んで買っている。

多少手間をかければ、身につけるものの買い物でもECサイトで済ませられるようになるのかもしれない。

だが、トレンドとして太り気味になってきていて以前とサイズが違うことも多いので、実際に試着しないと着心地が分からないファッション系のアイテムをECサイトで買うのにかなりの心理的抵抗があるというのがこの手のアイテムを買うときにECサイトを使わない(使えない)大きな要因となっている。

で、身につけるものなので、時間が経てば経つほどダメになっていくし、いずれ買い直さないといけないのだけれど、買い直すその時になると再度サイズを確認して現在手持ちのアイテムとの相性を考えつつ予算内でどれくらい買えるのか考慮して買い物をしなくてはいけないのが非常に疲れてしまう。

加えて、そういう系統の買い物をすると一日の大半を使ってしまうので、その日は他の用事を済ませなかったり、遊ぶことができなくなるのだが、週末の土日といった普段の休みの時にそういう買い物をしてしまうと、「用事を片付ける休み」「遊ぶ休み」「休む休み」の内のどれかを犠牲にしてしまうのでやろうという気が起こらない。

だからこういう3連休などの時じゃないととてもこういった買い物をできないのだが、3連休になる日まで待つと今回のようにダメになった靴をずっと使ってしまったりする。

どうやったら普段の生活の中でこういった消化試合としての買い物を上手く回せるのか知りたい。そんな最近ですね。

Alibaba Cloud (aliyun) のObject Storage Service (OSS) にあるbucket内のオブジェクトをcliで確認する

Alibaba Cloud (以下aliyun) を使っている人なんてそうそういないでしょうが、私は仕事で使っていて、タイトルに書いたことが必要になるケースがこの前あったのでメモ代わりに記録。

aliyunにはObject Storage Service (以下OSS) というサービスがあります。AWSで言えばS3に相当するサービスです。

jp.alibabacloud.com

aliyunもAWSと同じようにコンソールだけでなくcliで各種サービスのステータスチェックなどができるようになっていて、大半のサービスはaliyuncliというものを使って調べることができます。

pypi.python.org

ただ、これを使ってOSS内にあるbucket内のオブジェクトを確認しようとしたら、以下の「ossutilというものを使え」というメッセージが出てきて、実際に使ったらオブジェクトを確認できたのでメモします。

github.com

ちなみにこの記事を書いていて調べたときに気づきましたが、githubにgolang勢のaliyun-cliがaliyunのgithubアカウントにあるのも気がつきました。もしかしたらこちらで他のサービスを含めて統一的に扱えるのかもしれません。

github.com

ossutilの使い方

リポジトリのREADMEを読めば分かることしか書けないですが、一応メモ。

  1. ossutil config を使って設定ファイルに設定を書く
  2. ossutil ls など定義されたサブコマンドを使用

1.はコマンド実行時に聞かれたことに答えれば、指定したパスに設定ファイルが書かれます。設定ファイルの内容は以下のような感じです。

language=EN
endpoint=oss-cn-hangzhou.aliyuncs.com
accessKeyID=<key id>
accessKeySecret=<secret id>

endpointの値に関してはこちらの公式ドキュメントを見て該当するものを書けば大丈夫なはずです。

後は以下のようにコマンドを実行すればオブジェクトを確認できました。

ossutil ls oss://<bucket name>/<path>

『Airbnb Story』を読み終わった

今年の抱負に「1年で12冊は本を読み、感想ブログを書く」というものを立てているので、今回はその2つ目の記事。前回はこちら。

takuan-osho.hatenablog.com

今回読んだ本は『Airbnb Story』。Airbnbの創業を描いた本です。

Airbnb Story 大胆なアイデアを生み、困難を乗り越え、超人気サービスをつくる方法

Airbnb Story 大胆なアイデアを生み、困難を乗り越え、超人気サービスをつくる方法

この本、個人的には読み手によって評価が大きく別れそうな本だと思いました。"民泊"というものに対する印象も人それぞれだろうというのが大きな理由です。

本で描かれているエピソードの中にもあるように、民泊というものを「新しいニーズを上手く捉えて形にした新しい動き」と見る人もいれば、「既存の業界に規制があるのは理由あってのことなのに、それを無視して利益を追求しているようにしか見えない」と見る人がいる中、民泊を中心に据えたAirbnbを(割合好意的に)紹介している本なので、読者が持つ民泊(とAirbnb)に対する心証と本の評価が連動してしまうように思いました。

ちなみに私は民泊に対しては多少否定寄りに見ることが多い人間です。ですが、そもそも民泊というものに対してそもそも知らないことが多かったのと、デザインの力がプロダクトの価値に反映されていると評判のAirbnbのことを知りたかったのでこの本を読み始めました。

読んで感じたこと

この『Airbnb Story』を最後まで読み通して感じたことは3つあります。

まず1つ目はなぜこの創業者たち3人は喧嘩別れをせずに済んだのかということです。普通だったらこの悪いバランスともいえる3人はどこかのタイミングで喧嘩別れや空中分解してもおかしくないはずなのに、このように現在に至るまで3人でAirbnbを運営しているというところが稀有なところではないかと思いました。

もしかしたら私が読み逃しているだけで、3人が喧嘩別れせずにすんだ理由は本を読めば合点がいくものだったのかもしれませんが、少なくとも初見ではそう思いました。

2つ目に感じたこととして挙げられるのは、この本では「ミレニアル世代がAirbnbを支えてきた大きな要因だ」ということを何回にもわたって書いているのですが、私自身がミレニアル世代*1なのに全くこういった感想を持たなかったので、こんなにも世代の中で差があるのかと感じたということです。

「ミレニアル世代、ミレニアル世代!」と何回もこの本の中で繰り返されていて「ミレニアル世代ってなんだよ!」と思いながら読んでました。

いやほんと、ミレニアル世代の人ってそんなに「画一的なブランドに不満を持ち、冒険心が旺盛で、デジタルだけのつながりに慣れている」(書籍内の表現ママ)んですかね?

3つ目に感じた感想として挙げられることとして、(寛容というわけではないのだろうが)失敗したエンジニアにも寛容でいるという社風がどうやってできたのかということです。

Gitlabのデータベースエンジニアの例みたいに、Airbnbも社が保有しているデータを全部削除してしまうようなエンジニアがいたそうだが、そのエンジニアに対して(少なくとも本の中での記述では)処罰みたいなものはしていないよだったので、どういった社風がそういったことを可能にしているのかには興味を持ちました。

まとめ

既に書いたように、人によって評価が大きく分かれそうな本なので、他の人が読んだときにどんな点が気になるのか、あるいはどうこの本を評価するのかといったことが知りたくなる、そんな本でした。

あと、職場の人と本の感想について話していて気づいたのですが、「創業者の成長物語」と捉えればとても真っ当で横道な映画向きの話だなと思ったので、映画化したら面白そうだし、もしそうなったら見てみたいと思いました。というか見たいですね。

*1:私は1984年生まれなのでミレニアル世代なはず。日本での定義とこの本での定義がずれていなければ。

『SQL書き方ドリル』の第3章の途中まで学び終えた

SQLを勉強中なので学習記録を残します。

takuan-osho.hatenablog.com

今は複数のテーブルの扱いを学ぶ第3章の途中まで学びました。

2章までとは違い、結構(私にとっては)複雑なSQLを考えないといけないので時間がかかっていて、まだ半分くらいまでしか終わってないです。

今のところ学んだ事項は以下の通り。

  • 副問い合わせ
  • INNER JOIN
  • OUTER JOIN

まだOUTER JOINのところは終わってないですね。 苦戦しているのはGROUP BYが混じってくるとちゃんとSQLが書けないということが分かったので、2章を復習しつつやっていきます。

改訂第3版 すらすらと手が動くようになる SQL書き方ドリル (WEB+DB PRESS plus)

改訂第3版 すらすらと手が動くようになる SQL書き方ドリル (WEB+DB PRESS plus)