How IT Works

プログラマーやっています。技術よりも人間学的なところが好きです。

Lispを1か月勉強して

動機

 巷ではLispは「神の言語」と呼ばれていると聞いて、興味を持ったのが始まりです。

 具体的に調べてみると、マクロと呼ばれる「コードを生成するコード」をかけるという話でした。

 業務ではC#やTypeScriptといった静的な言語を扱うことが多いのですが、個人的にはJavaScriptのダイナミックな動きが好きだったので、Lispはその延長線上にあるような予感がしました。

 あとは今はやりの関数型言語に分類されることが多いので、そこらへんの思考を盗めるとよいコードを書くことにつながるのではないかともくろみました。

 そういうわけで、死ぬ前に一度は触ってみようと思い、勉強を始めました。

勉強方法

 Lispを書くにはEmacsがいいということだったのですが、今のところ自宅のPCはWindowsなので手軽にできるxyzzyでやることにしました。

xyzzy - カスタマイズ可能で軽快な Windows 用テキストエディタ

 まずは、下のページを写経することから始めました。基本的にscratchで書いて、C-jでコンパイルして、評価するだけです。

www.geocities.jp

 慣れてきたら、くじ引きとかボウリングとか適当な課題を作って遊んだり、Git Hubの適当な問題を解いて遊んでいました。

github.com

 書籍は色々買いましたが、以下の4冊がなかなかいいなと思います。

 上2つはLispの概要で、下2つはマクロの使い方です。特にマクロについては使い方が難しいので、書籍があることが大きな助けになっています。

Land of Lisp
Land of Lisp
posted with amazlet at 17.10.25
M.D. ConradBarski
オライリージャパン
売り上げランキング: 184,763
実践Common Lisp
実践Common Lisp
posted with amazlet at 17.10.25
Peter Seibel
オーム社
売り上げランキング: 201,222
On Lisp
On Lisp
posted with amazlet at 17.10.25
ポール グレアム 野田 開
オーム社
売り上げランキング: 196,799
LET OVER LAMBDA―Edition 1.0
LET OVER LAMBDA―Edition 1.0
posted with amazlet at 17.10.25
ダグ ホイト
エスアイビーアクセス
売り上げランキング: 817,069

感想

Lispは関数型ではない

 勉強し始めてから学んだのですが、Lispは関数が中心の言語ではありますが、必ずしも関数で書かなくてもいい言語でした。

 なんならオブジェクト指向っぽくも書けますし、手続型でも書けます。

 こうした自由度の高さはJavaScriptに近い感じがしました。

REPL楽しい

 今までコンパイル言語ばかり触ってきたので、すぐに評価してテストできるのはとても楽しい体験でした。

 コンパイル言語や静的型付けが悪いとは思えませんし、いい面も多いのですが、試しながら書く趣味のプログラミングならこちらのほうが好きですね。

現代言語に劣らない

 正直かなり前に開発されたはずの言語にかかわらず、高度なストリームや高階関数を使ったコレクション、オプショナルな引数など新しい機能が含まれています。

 だから、Lispが最近の言語に比べて面倒だと思うことは少なかったです。今でもこれなら、昔はもっと突出した言語だったんだろうなと感じます。

 逆にいうとLispのエッセンスはかなり最近の言語に取り入れられていて、Lispでなくてはいけないという部分は大分減っている気もします。

マクロ難しい

 単なるテンプレートかと思っていましたが、難しいです。

 何が難しいかといえば、こうすれば楽になるというパターンを導きだすのが難しいです。普段の癖で、何でも関数で抽象化してしまったり、楽にできる場面を見逃すことが多いです。

 書籍を読みながら幅は広げていますが、いまだにマクロを自在に使うという段階まで来ていないです。

自由と代償

 Lispの良さも悪さも自由から来ていると思います。

 構文までいじくれる言語なので、どんな書き方、どんなデータ構造でも自在に作れるのですが、それゆえにプログラマの技量・思想にすべてがゆだねられている言語という印象です。

 正直、今の自分であれば、やり方のパターンがある程度固まっているJavaScriptのほうが間違いなく早く書けます。

 そういう意味でLispが神の言語というよりは、Lispを自由に扱えるようになったプログラマが神の域に近づくというのが正解のような気がします。

 だから、自分は1か月勉強しましたが、スタートラインに立っただけで、Lispの本質に近づけていないような気がします。

まとめ

 Lispには深さがあると思います。特にマクロを作るマクロだとか、マクロでクロージャを操作するという発想を見たときに、考え方の深さに驚きました。

 オブジェクト指向や関数型も勉強して楽しかったのですが、これにマクロが組み合わさるとどこまで表現が深くなるんだろうかとドキドキします。

 正直にいうと、Lispは万人が勉強すべきという感じはしません。関数型をやりたいならJavaScriptHaskellScalaあたりでいいのかなと思います。

 でも、プログラミングの魅力をもっと味わいたいならこの言語はベストに近いと思いました。

 今後はEmacsと本格的なLisp処理系を入れて、もっと遊んでみたいです。

新入社員の研修を担当して感じたこと

研修の概要

 今年の新入社員研修を担当して、一からカリキュラムを組み立ててやり通しました。

 条件は下のような感じです。

  • 5カ月間毎日行う
  • 配属される部署は不明
  • さらに配属されるチームによって必要とされる技術セットは大きく違う
    • 古い技術の保守チームもある
  • ただ、Windows FormsとWeb系の技術の基本は少なくとも身につけてほしい
  • 新入社員は2人、自分は業務と平行して教育する

研修設計で当初考えたこ

教えない

 最低限のルールはあるものの、ほとんど自由に近い条件なので、最初のカリキュラムの設計が大事かなと思いました。

 とりあえず最低限考えたことは以下の2つです。

  • 技術要素をできる限り広くする
  • 教えない教育を中心にする

 うちの会社では配属後に丁寧な教育をしないチームもあります。だとすれば、この会社で生き残っていくためには、自分で学び自分で考えるサバイバル能力がいるのではないかという考えがありました。

 それに加えて、自分で自ら学ぶことができるのであれば、どんな部署に行っても大丈夫だろうということです。

 具体的には仕様と使用する技術は指定しましたが、文法やライブラリの使い方を一から教えたことはないです。

 参考書等は必要と言われた段階で用意しました。

レベル設定

 また、レベル設定は想定される一番レベルの高いチームに合わせました。とはいえ、世間でいえば普通くらいでしょうが。

 社内の最高レベルに5か月で行けるか、行けないかという実験的な部分もありましたが、まぁ低いレベルに合わせるのもどうかなという感じです。

 具体的には以下のような感じです。

  • 極力新しい技術を使う
  • コードレビューを厳しくする
  • デザインもできる限り業務に近づける
  • 仕様変更を辞さない

カリキュラム

  • C#
    • 技術要素
    • 時計作成、計算機作成
    • 簡単な管理画面
      • ページ遷移あり
  • Web
    • 技術要素
      • Angular4
      • Node.js
        • Express
      • MySQL
      • TypeScript
    • 簡単な管理画面
      • ヘッダー、フッター、サイドバーあり
      • ページ遷移あり
      • テーブルのページング機能あり
    • Docomo雑談APIを使ったチャット
    • ボウリングスコア計算
      • 自動テスト
      • レスポンシブデザイン
      • バンドル
  • その他

結果

技術的には問題なし

 新しい技術を覚えることについては全く問題なかったです。実際丁寧に教えたことはないですが、GitやAngular4、Expressの使い方などは比較的ちゃんと理解していたと思います。

 個人的な感覚から言えば、それなりの頭があれば技術を覚えるという点は問題ないという印象を受けました。

抽象概念で躓く

 やや問題になったのは、Anuglarのコンポーネントの設計やオブジェクト指向設計、もしくは関数型に近いロジックの書き方というところでしょうか。

 あるいは具体的には再帰の使い方や高階関数の使い方は理解してもらうのが大変でした。

スピードが上がらない

 時間切れでボウリングの課題も終わりませんでしたし、スピードに関しては最後まで向上が見られませんでした。

 コードを書くというところは確実にできるようになっていましたが、管理画面に3か月かかるなど速度面は十分でないという傾向がありました。

反省

特に学んでよかったこ

PowerShell

 うちの会社は基本的にVisual Studioで作業していて、あんまりシェルは触らないのですが、あえて研修はVSCodeでひたすらシェルで作業させました。

 一度基本的なコマンドを理解すると応用がかなり効くので、なかなか便利でした。

Git

 Gitはとても便利なうえに使えるとデグレ時などにとても役に立ちます。比較的すぐに扱えるようになりましたし、コミュニケーションにもよかったので早く導入すればよかったです。

Express

 比較的自分で設定しないと動かないという特性を考えると教育には良かったと思います。  Webの仕組みを知らなくても動かせるフレームワークもありますが、あえて薄いものを選びました。

いらなかったこ

Angular4

 重すぎます。情報源も少ないですし、何をするにしても流儀が多くそれが教育に関してはノイズになっていました。

 Reactがいいかと言われるとあれも何だかんだ付随品が多いので、個人的にはjQuery推します。

 やるとすれば、jQueryで小さい課題を多めに扱って、そのうち一つをReactで書き換えるぐらいがいいかと。

レスポンシブデザイン

 デザイン面で完全に足を引っ張っていました。一度崩れると修正が難しい割りに、CSSについて学べることが多くないのが残念。

 新入社員がやってみたいと自発的に言いだしたので任せてみましたが、一部分が可変くらいでよかったんじゃないかという印象です。

座学

 座学でオブジェクト指向設計、関数型のパラダイムを時間をかけて勉強してもらいましたが、定着率が思うほどあがらなかったです。

 これは課題をそれらのパラダイムを使わないときれいに解けない課題を作って解かせたほうがよかったですね。

 教える最善の方法は座学よりも課題ということに最後のほうで気づきました。

だめだったところ

 結果的に一人は一番レベルの高いチームに行って上手くやっているようですし、もう一人も開発が関係ない部署に行ってなんとかやっているとのことらしいです。

 自分で設定した目標からするとちゃんと果たせたと評価はしていいでしょう。

 ただ個人的な感覚から言うと、満点ではない感じがします。

 プロジェクトに入る分には問題ないのですが、優秀なプログラマに迫れたかというと近づけていない感じがします。

 うちの会社の優秀なプログラマの方はこのカリキュラムにあることを優に1か月もあれば十分吸収したそうですし、自分も当初計画では3か月で今回の内容が終わると読んでいました。

 そう考えると、技術だけ繕って本質を教えきれなかったのではないか?という気持ちがぬぐいきれません。身についたのは答えを調べる能力だけなのではないか?

 なので技術セットを多少甘くしてでも、思考の仕方、抽象度の高い考え方を教えればよかったなぁというのが反省になります。

 具体的には小さな課題をたくさん用意するとか、あとはスライドを作成したLTなどが意外にいいのかなという感じがしています。

感想

 研修を通してずっと優秀なプログラマとはなんだろうということを考えていました。

 途中で感じたのはこだわりの強さがその1つの条件なのかなという風に思いました。

 コメントの入れ方、ロジックの切り方、デザインの見せ方、パフォーマンスとかそういうところに脅迫的なこだわりを持っている人が優秀な人には多いとか。

 そういうところが最後まで研修とつながらなかったのが、すごく残念でした。

 来年は多分担当ではないと思いますが、それが資質なのか、環境なのか、教育の賜物なのかとかそういうことをもう少し注視して経過を見てみたいです。

言い訳

 研修の期間だけが決まっていて目的があいまいなこと、そもそも開発に行くとは限らないのにカリキュラムが 開発限定なのはどうかという議論は置いておいといてください。

 まぁ、基本的にプログラミング未経験者しか入社してくれず、有名大学の人が来ることもなく、家にPCがないというプログラマーがそこそこいるという環境では何かしらの仕組みがいるのは確かですが。。

 よく考えたらインターンシップみたいですよね。これ。

最近始めた習慣とかについて

前書き

 最近は生活をちゃんと管理しようという気持ちが強いので、色んなことを習慣にしてみています。

 徐々に仕事や生活の仕事の質が改善できつつあるような気がするので、簡単に書きます。

タスク管理

一日の最初に計画を立てる

 あたりまえのような気がしますが、今までは一日分のTodoリストを書いて終わりでした。

 今はちゃんとこの時間にこのTodoを終わらせるというような時間まで指定して計画を立てます。

 一日にやる作業は色々なものがあって、書類を作成したり、コードを書いたり、メールを返信したりと色々なものがあります。

 作業にはそれぞれ向いている時間帯がありますし、あるいはずーっと同じことをしていると疲れるときもあるので、それらをもろもろ考慮して計画を立てます。

 常に計画があっているわけではありませんが、それを含めてPDCAを回していけると時間をよりよく使える気がします。

 ちなみに、Todo管理には「Jooto」、毎日やるべき作業や習慣には「Habitica」を使って管理するのが好きです。

ポモドーロテクニックを使う

 計画に関係する話なのですが、最近はポモドーロテクニックという考え方を使って仕事しています。

 簡単にいうと、仕事は25分間とにかく集中して5分間休むのがいいという方法です。このサイクルを1ポモドーロのカウントします。

 このテクニックのメリットは集中力を継続できることと、1ポモドーロが30分になるので自分の作業量をカウントしやすいことです。

 ちなみに、一日10ポモドーロできれば、いいほうだと聞いています。
   ポモドーロテクニックと計画を組み合わせることで、集中力は大分維持できるようになった感じがあります。それに定時を意識するより、短い時間を意識したほうがモチベーションが切れにくいですね。

 ちなみに、プログラミングだけは50分集中して10分休憩というサイクルのほうが好きです。

PDCAを回す

 最近はPDCAの本を読んでいて、PDCAを回すように意識するようになりました。

 下記の本は両方面白いのでお勧めです。

鬼速PDCA
鬼速PDCA
posted with amazlet at 17.02.11
冨田 和成
クロスメディア・パブリッシング(インプレス) (2016-10-24)
売り上げランキング: 318
自分を劇的に成長させる! PDCAノート
岡村拓朗
フォレスト出版 (2017-01-07)
売り上げランキング: 613

 大事なことはまず思いついたアイデアを全部書きだして、見直せるようにすることです。

 ここが改善できるんじゃないかと思ったら、とりあえず書きだしておいて時間のある時に振り返ります。

 また、改善案は必ずアクションまで落とし込んで、Todoリストにどんどん入れていきます。これを仕事に組み込めると少しずつ質が良くなります。  

まとめ

 こうやって見返してみると、自分でも大したことをしていないなという感じがします。

 しかし実感としては集中力を高く保ちつつ、仕事の質を改善できているのであえて記事にしてみました。

 なんでも見えるようにして、改善を続けていくというのはやはり大事ですね。

 このまま改善を続けていって、もう少しいい習慣ができたらまた書きます。

Linuxを1か月勉強してみた

 年末くらいから、新しくLinuxの勉強を始めました。

 自分の会社は開発環境、サーバーともにWindowsにロックインする方向に向かっていて、Linuxはほとんど触った経験がありません。

 しかし、Web業界ではむしろLinuxのほうが主流ですので、心機一転ということでLinuxの勉強を始めました。

 これから同じようにLinuxを触ってみたい方もいるかもしれないので、参考にやってきたことや感想を書きます。

学習したこと

 学習したことは以下のようなことです。

 Linuxを勉強したというよりは、シェルを勉強したというほうが近いです。

勉強方法

ドットインストールを見ながら打ちこむ

 まずは、ドットインストールの下記の講座を見ながら、実際の環境で動かしました。

 基本的には浅い内容ですが、導入としては役に立ちました。Vimに関してはvimtutorだけで十分かもしれません。

本を読んで足りないところを補う

 あとは本を読みながら、もう少し詳しいところを勉強しました。勉強するときはWebページより本のほうが好きですね。

 色々買いあさってみましたが、よかったのは次の2つです。

新しいLinuxの教科書
新しいLinuxの教科書
posted with amazlet at 17.01.21
大角 祐介
SBクリエイティブ
売り上げランキング: 4,843

 Linuxといいながら、ほぼBashの本です。とにかく説明がわかりやすく、振り落とされるということがないですね。

 実際にコマンドを打っている感覚に近い感じで読めます。値段は張りますが、基本を学ぶのであればこれで間違いないと思います。

 シェルスクリプト正規表現Vimといった関連が深い分野についても章を割いているのもいいですね。

 Vimの本です。実践というだけあって全く入門には向いていません。

 基本的なコマンドを覚えた今でもやや難しいですが、Vimらしい思考法を教えてくれるため、Vimを学ぶのであればぜひ読んでほしいです。

 Vimはどうやってコマンドを組み合わせていくか? というところが問題になるので、コマンドを覚えただけではまだ入り口のおうです。そこから1歩踏み出せる本です。

環境構築

 勉強中は実際にコマンドを打ったり、スクリプトを書いたりしました。

 Linuxをインストールするのではなく、Windows上でVirtual Boxを使って仮想環境を作って、そのうえで勉強していました。

 PCにインストールしてしまうと戻すのが大変なので、不要なPCがない限りは仮想環境で勉強するほうがいいと思います。

 ディストリビューションは軽量でありつつ、GUIがあるLinux Mintを使いました。マシンスペックがあれば、Ubuntuでもよかったかなとは思います。

 あとはWindows10が手元にあれば、Bash on Windowsという選択あるかなという気もします。

 環境構築は全面的に以下のサイト様を参考にしました。

 sstea備忘録 : VirtualBox で Linux Mint の仮想環境を構築する

感想

学習曲線が急

 Vimが特に顕著な例ですが、Linuxはすぐに誰でも使いこなせるという感じではないように感じました。

 細かい道具がたくさんあってそれを組み合わせて使っていくという感覚で、まずは道具を覚えていかないといけないという印象です。

 ただ、道具を使いこなせるようになったら、自分の好きなことはなんでもできる? という印象を受けました。

 なので、好きな人はいくらでも好きになれるOSなのですが、技術に興味がない人にとってはなかなかハードルが高いOSだと思いました。

かゆいところに手が届く

 上記の話に近いのですが、Linuxだと簡単なことを簡単にできます。

 例えば、「CSVファイルを検索して、特定の列から特定の行を取り出して集約する」という処理をLinuxであれば、awkではパパッとかけそうな感じでとても面白そうだと思いました。

 WindowsであればExcelで頑張るか、Visual Studioを立ち上げてC#スクリプトを書くかでしょうが、簡単な処理に無駄に時間をかけている感じが否めません。

 こういった思い通りに操作できるというのがとても魅力的です。

裏の仕組みがわかる

 GUIになれると裏で何をやっているかがブラックボックスになります。基本的にはそれで問題ないのかもしれませんが、エラーが起きたときや問題にぶつかった時に対応できません。

 Linuxを触っていると自分で一つずつ処理を打っていくので、勉強になります。GUIを使うとしても、一度CUIの文化になれると理解度が変わります。

今後

 MySQLやNginxを入れて、何か作れたらいいなと思っています。

 またもう少しLinux内部の仕組みもさらっと学べていければいいなという感じです。

まとめ

 Windowsしか触ったことがない開発者であってもLinuxに触ってみると勉強になります。一度体験してみるといいと思います。

寄せ書きについて

前書き

 最近はずっと、LinuxとかGitの使い方といった環境面の勉強に終始しているので、あまり人に伝えれるような進展はありません。

 なので、自分の趣味の一つである寄せ書き集めについて、振り返るエントリーを書こうと思います。

 卒業祝い、結婚祝い、退社祝い、遠くに行った友達にメッセージを送りたいという人の参考になればうれしいです。

これまで関わったもの

 まずは、これまで関わったものについて書きます。

  • 色紙
  • メッセージ人形
  • フォトブック
  • 動画
  • メッセージブック

色紙

 定番すぎて説明は不要かと思いますが、寄せ書きといえば色紙というイメージがあるくらい有名です。

 色紙の何がいいかといえば、手軽さです。寄せ書きで色紙を用意して文句を言われることはないでしょうし、値段も1枚あたりに大して値段をかけなくて済みます。

 さらに書くほうとしても2~3行のメッセージでいいので、お手軽です。寄せ書きをとりあえず作りたいという人は色紙がいいと思います。

 ただ、寄せ書きは不特定多数の人に書いてもらうのに向いていません。東京、大阪、名古屋というように書いてほしい人がちらばっているとかなり手間になります。

 学生はそんなことはないと思いますが、社会人の場合はよくある状況です。

 さらに絵や表現がうまい人にとっては、デザインの幅が少ないです。スタンプ、マスキングテープ、印刷、シールといったあらゆる手段を使いにくいです。

 なので、本気で誰かを祝いたいという場合は、寄せ書きでは限界があります。

 さらに言うと色紙は伝統行事的なものなので、大体渡す前にばれています。そのべタさがいいという人もいるのかもしれませんが。

 男子が多いとか、とりあえずで済ませたいという人以外は、もっと良い手段があるのではないかと思います。

エヒメ紙工 サイン用色紙 242×272mm 10枚入
エヒメ紙工
売り上げランキング: 346

メッセージ人形

 女子の先輩が卒業する際に送りました。自分が主導したわけではないです。

 先輩はずいぶん喜んでいたので結果的にいいとは思うのですが、個人的には色紙と同じ理由で好きではありません。

 とはいえ、色紙よりはまだ意外性という点で評価してもいいと思います。

フォトブック

 留学に行っていた同級生のために、とある人が企画してフォトブックを渡したことがあります。

 写真がメインで、ところどころに空いたスペースにみんなでメッセージやイラストなどを書き込みました。

 写真を使っている以上色々なデザインができますし、個々人ができるデザインもそれなりに幅があります。できないのは、印刷くらいでしょうか。

 ある程度適当に作っても見せれるものが作れますし、それなりにいい方法だと思います。

 詳細は聞いていませんが、フォトブックを作ってくれるサービスは巷にたくさんあるので、それを使ったと踏んでいます。

 それでもいいですし、適当な画用紙に写真を張るのもいいですね。

 ただ方法によりますが、不特定多数に弱いという欠点は解消されていません。また、編集者のセンスの裁量が大きく、みんなで作ったという感じにはなりにくいのが少々ネックですね。

 手軽さとデザイン性のコストパフォーマンスはなかなかいい選択だと思います。

動画

 同級生の結婚式と、後輩の卒業式で2回見ました。

 その瞬間の破壊力というか、感動を誘えるという点では、動画がもっとも優れた手段だと思います。

 思い出の写真を音楽に乗せて流したり、同級生で協力して踊りを踊るといった動画を見たことがあります。どちらもかなり手間がかかっているのがわかり、とてもよかったです。

 手間と技術、アイディアが必要で、とても難しいですが、挑戦する価値はある分野だと思います。

 ただ、編集者の裁量が大きすぎること、一人一人のメッセージが伝わりにくいのが難点でしょうか。

 全員の気持ちをちゃんと伝えたいのであれば動画はどうかなぁと思います。

メッセージブック

 フォトブックに似ていますが、こちらははがき大の白紙の用紙をみんなにくばって自由に書いてもらうという形式です。

 つまり、デザインは全部相手任せというやりかたです。自分は印刷もできる紙を選んでいました。

 集めた用紙はポストカードを入れるアルバムに入れて渡すのが無難かと思います。

 自分は製本してひもで縛るという形式を取りましたが、気持ちを伝えるという意味ではとても効果がありました。

 メッセージブックは用紙を郵送でやり取りするだけでよい、枚数をいくらでも増やせる、デザインは完全に自由、という点で自分は一番好きな方法です。個性がずいぶん出ます。

 女子とか、デザインが好きな人が多い場合はこれがベストかなぁと思います。ただ、他の参加者の忙しさや、情熱を加味して、フォトブックもいいかもしれません。

これからやってみたいこと

  • トランプ
  • 名刺
  • Webサイト

トランプ

 トランプでもカルタでもなんでもよいのですが、無地のカードが売っているのでそれを買ってきて表面に自由に書いてもらいたいなぁと思います。

 ただ実際買ってみると、トランプはかなりツルツルだったので、にじむのが少し怖いかなという感じです。

 あとは、印刷ができない、各種ペンが使いにくいので、結婚式の2次会くらいが適当な気がします。

 事前に時間があるのであれば、データを送れば作ってくれるサービスがあります。ただ、個人的には手書きの良さが出せないので、少し躊躇します。

【トランプ】 【トリックカード】 バイスクル BICYCLE ブランクフェイス 赤
マツイ・ゲーミング・マシン
売り上げランキング: 5,628
無地かるた 緑裏フチなし
奥野かるた店
売り上げランキング: 8,542

名刺

 名刺は裏表を十分に使いやすい、用紙がたくさんある、印刷できるという点でかなり優れていると思います。

 しいて言えば、メッセージ欄が小さくて少し難しい気はしますが、裏表を使えば何とかなるのかなという感じです。

 あとは結婚祝い、卒業祝いであれば、名刺入れと一緒に贈ることができるというのがとてもいいですね。

 たくさんメッセージを書きたければメッセージブックがいいでしょうが、それ以外なら名刺はなかなか面白いと思います。 

Webサイト

 手間はもっとも大変ですが、Webサイトでフォトギャラリー、メッセージギャラリーを作ってみたい気持ちはあります。

 寄せ書きのサービスはすでにあるようですが、手書きの良さを超えていない感じがぬぐいきれていないので、それならほかの手段のほうがいい気がしています。

 いつまでホストするのかとか、手書きよりもいいものができるのかというところが課題ですが、デザイン次第では可能性がある気がします。

 技術者の方であれば、挑戦してみたら面白いと思います。

これまでに行ったサプライズ

ディズニーのサイン

 メッセージカードの中に何枚かディズニーキャラクターのサインを入れて、驚かせたことがあります。

 ミッキー、グーフィーあたりは並べばサインしてもらえるので、頑張れば必ず手に入れることができます。

 相手がディズニー好きなら、結構喜んでもらえるのではないかと思います。

似顔絵

 似顔絵は最近は写真さえあれば、書いてもらえます。

 自分はFacebookあたりから写真を拝借したり、他の人へのサプライズの際の動画を借りて、Webサイト経由で似顔絵を書いてもらいました。

 全員が似ていたかといわれると微妙ですが、特徴はつかんでいたので喜んでもらえました。

 Web経由でなくとも、イベントで似顔絵を書く人を捕まえたり、店を持っている人に会いに行ってもいいですね。

まとめ

 どうでしょうか。意外に寄せ書きを集める表現方法はあることが伝わったでしょうか。

 自分は女子が多い学科出身なので、できるだけみんなの表現を生かす方法はないかなーと考えながら、寄せ書きを作ってきました。

 なので、そこらへんを生かすような方法は伝えられたかなと思います。ぜひ、大事な人を喜ばすために色々考えてみるといいと思います。

2016年に読んで印象に残った本

前書き

 最近、今年を振り返るエントリーをよく見かけるので、便乗して書きます。

 自分の場合年間読んでいる本は大体200冊くらい行くと思います。技術書5割、漫画2割、ライトノベル1割、その他2割というところでしょうか。

 あまりマイナーな作品は読まないのですが、それでも人に勧められるくらいには本は読んでいると思うので、書いてみます。

技術書

CSSシークレット

 本自体をCSSとHTMLで書いたという意欲作です。

 例えば、台形の描画をどうすればCSSで記述できるのか?という問いを2~6ページくらいをかけてといていくという形式で進んでいきます。

 CSS3で新しくできたプロパティを使って解決することが多いのですが、発想が少し飛んでいて業務で使うレベルをはるかに超えています。

 CSSを極める本というのが一番近いでしょうか。CSSには自信がある! という人にこそお勧めできます。

 自分もそれなりにCSSに慣れてきたと思っていたのですが、デザインセンスや技術へのこだわりのレベルの違いを強く感じながら読みました。

Web制作者のためのCSS設計の教科書

 こちらもCSSに関する本です。

 上記の本はCSSの技術について深く踏み込んでいくような本でしたが、こちらはCSSの最新スタイルについてわかりやすく説明してくれる本です。

 オブジェクト指向CSSとかBEMといった実際の業務に応用しやすい内容です。

 CSSの文法や書き方はわかっても、そこからどうやって進めばいいかと思っていたところでこの本に出会いました。

 CSS初心者から一つレベルを上げるには良い本です。

JavaScript Ninjaの極意

 タイトルで引いてはいけません。正直、自分もこのノリについていけないのではないかと心配しながら購入しました。

 中身も多少ユーモアに富んでいてまじめという感じではありませんが、JavaScriptの書籍の中ではダントツで面白かったです。

 CSSシークレットよりはどちらかといえば業務で使えそうな内容ですが、JavaScriptの機能を使い倒すという感じのコードが多く、はっとすることが多いです。

 実際的にはライブラリ、例えばJQueryやAngularを使っていれば、この本のレベルの知識はいらないのかもしれません。ただ、よりよいコードを書くということを考えたときに、ぜひこの本を読んでほしいと思います。

 JavaScriptは欠陥をよく指摘されますが、機能をフルに使えるととても楽しい言語です。なので、ぜひこの本を手にとってもらえたらと思います。

JavaScript Ninjaの極意 ライブラリ開発のための知識とコーディング (Programmer's SELECTION)
ジョン・レシグ John Resig ベア・ビボー Bear Bibeault
翔泳社
売り上げランキング: 133,870

漫画・ライトノベル

神様のバレー

 簡単にいうと、バレーの実業団を日本一に導いたデータアナリストが進学校の中学生に指導することとなり、全国優勝を目指すという漫画です。

 あらすじからわかるように、戦略、データといったものを楽しむ漫画で、ジャイアントキリングに似ています。

 主人公のコーチは本当に綿密に計画を立ててながら試合を進めていくので、自分だったらどういう作戦を立てるだろうかということを考えながら読めます。

 今年読んだ漫画の中では一番面白いです。

神様のバレー 1巻 (芳文社コミックス)
芳文社 (2014-06-27)
売り上げランキング: 24,563

サツリクルート

 タイトルの通り、殺戮+リクルートが主題の漫画です。

 就活生のうち、アクマに選ばれたものは契約を交わし、能力を得ます。「面接官のリアクションを倍増させる能力」や「面接官を惚れさせる能力」などです。

 その代わり、就職試験に落ちたら、命を奪われます。

 かなりぶっとんだ設定ですが、かなり爽快なストーリーにまとまっていて、面白いです。

 主人公たちは一応まじめに就活してるのでシュールな感じもしますが、納得できるようにオチをつけているのは本当にすごいです。

 興味があれば、裏サンデーをのぞいてみるといいでしょう。

urasunday.com

東雲侑子は短編小説をあいしている

 ライトノベルですが、ほどよく現実的な青春小説です。とても純粋できれいな恋が表現されていて、何度でも読みたくなる本です。

 嫉妬や将来への不安、相手への恨みといった暗い感情も出てきますが、それを飲みこみながら前に進んでいく感じが素敵です。

 基本的に自分は一般小説よりライトノベルが好きなのですが、それは人間賛歌の話が多いからです。現実的であることよりも、きれいな夢を見せてくれる話がすきで、まさにこのライトノベルはドンピシャでした。

 少し古くなっていますが、ぜひ読んでみてほしい作品です。3巻でまとまっているので、まとめて読めるのもいいですね。

 あと、主人公の東雲さんは本当にかわいいです。

趣味

サプライズプレゼント―大切な人を喜ばせる贈り物集

 サプライズプレゼントというと、例えば結婚式の動画や卒業生への色紙などが思い浮かびます。

 そういうときに「みんなこうしているからこれで、いいか」と納得しがちです。

 でも、ちょっと待ってください。人を喜ばせる方法はあなたが考えている以上にたくさんあります。例えば、

  • 無地のジグソーパズルにメッセージやイラストを書いて、プレゼントする。
  • 同級生の写真を印刷したオリジナルかるたを作り、それで遊ぶ。
  • クリスマスに時間指定して、愛の言葉を書いた手紙を届けてもらう。
  • プレゼントとして名刺入れをあげる。そのなかに、相手への気持ちを書いた名刺を入れておく。

 この本には本当にたくさんのアイディアがあります。あぁ、こんなアイディアがあったのか、と1ページごとに感動します。

 サプライズ好きの自分としてはよくネットで調べたりするのですが、この本以上にいいアイディアはそうそうないと思います。

 今年買った本の中では一番、影響を受けた本です。

サプライズプレゼント―大切な人を喜ばせる贈り物集
篠原 一貴 喜ぶ笑顔.com
ロコモーションパブリッシング
売り上げランキング: 615,574

まとめ

 200冊読んだ割りには、印象に残った本はすんなり出せました。役に立つ本は多いですが、感動できる本にはあんまり出会えていないのかなぁという気がします。

 特に趣味関連が少ないですね。どうしても読んでいる本のバリエーションが少ないので、時間があればもっといろいろな分野にとり組めたらいいのかなぁと思います。

 とはいえ、ここにあげた本はかなりお勧めできるものばかりです。ぜひ、一度は目にとってもらえたらうれしいです。

最近使ってみたツールと感想

前書き

 タイトルの通りです。最近使ってみたツールとその感想を書きます。

Slack

背景

 自分の会社のチャットツールはSkypeなので、今人気のSlackとはこれまで縁がありませんでした。しかし、下記のような記事を見つけて、勇気づけられました。

個人 Slack のススメ - Qiita

 一人でも大丈夫なんだと思い、思いきってSlackを使ってみました。

所感

Slackはご存知の通りチャットツールなのですが、自分はほぼメモ用途で使っているだけです。

 使ってみた感想としては、端的に使いやすいです。入力が簡単でレスポンスが早いです。それにメッセージの削除、編集が簡単なので助かります。

 今までメモ用途ではLineで一人しかいないグループを使っていましたが、こちらよりSlackのほうがはるかに手軽だと断言できます。

 スマートフォン用のアプリがあるのもいいです。

使っているチャンネル

  • todo
    • やるべきことをメモ。
  • memo
    • なんでも思ったことをメモ。
    • 消さない。
  • link
    • 気になったリンクをメモ。
    • 見やすい。
  • neta
    • ブログのネタ
  • diary
    • 日記

課題

 上記の筆者はRSSフィードtwitterをSlackに流して……という感じで運用していますが、ここら辺の感覚がまだピンときていない感じです。

 RSSは試してみたのですが、どうも別のクライアントを立ち上げるほうが楽でした。もう少し色々なものを流しながら、試してみようと思います。

Feedly

背景

 FeedlyRSSリーダーの1つです。基本的には英語です。

feedly. Read more, know more.

 もともとGoogle Readerを使っていたのですが、サービスが中止されたのでしばらくLive Dwango Readerに移っていました。

 ただ諸事情でRSSリーダーを分ける必要が出てきたので、せっかくなので別のRSSリーダーに移ることにしました。

所感

 とても見やすいです。英語なのもほとんど気になりませんし、Readerの見出しがサッと画面にでてくれるのがとてもありがたいです。

 LiveDwangoReaderの場合、すべての情報を最初に読み込みに行くので全文読まないと概要がつかめませんし、なにより遅いのが嫌でした。

 Feedlyは見出しもそうですし、すべての動きが警戒です。情報収集の速度がぐんと変わるので変えてよかったと思います。

 こちらもスマートフォンのアプリがあるようですが、基本的にRSSReaderはパソコンでしか見ないので使ったことがありません。

Toggle

背景

 Toggleは時間を管理してくれるWebサービスです。

 Toggl - Free Time Tracking Software

 趣味で作ろうとしているアプリが習慣管理系統なので、参考にならないかと思って導入してみました。

 基本的には時間を記録して、日々の行動を可視化するツールです。ボタンを押すと自動で時間を計ってくれます。

 何人かのプロジェクトで全員の作業と時間も共有できるようです。

所感

 UIはとても使いやすいです。入力がしやすいですし、動作も直観的です。

 シンプルでとてもわかりやすいツールで、基本的な機能は網羅しているように思います。

 ただ、やってみると自分はもう少し複雑なことをしたいんだなーと実感しました。もう少しタスクの階層をいじったり、反省を書いたり、予定を書いたりと色々なものと結びつけて時間を管理するとか。

 作りたいアプリの参考にはなりましたが、自分のやりたいこととは違うのであんまりピンとこなかったです。

まとめ

 色々とアプリを入れてみたのですが、最近のWebアプリは何となくデザインが似ていますね。最近のはやり何でしょうか。

 プログラマーとして自分はあまりアプリを使わないほうなのですが、最近の流れなどをするためにももう少し色々便利なものを取り入れていけたらいいなと思いました。