タグ

ブックマーク / blog.shibayu36.org (16)

  • ioドメイン障害を理解するため、DNSの仕組みについて勉強した - $shibayu36->blog;

    先日、ioドメインの障害があったのだけど、自分がDNSの仕組みをよく分かっていないせいで、いまいちどういうことが起こっていたのか把握できなかった。そこで、DNSの仕組みについて軽く勉強したので、そのメモを残しておく。内容は間違っているかもしれないので、その場合は指摘してください。 DNSについて学んだこと Software Design 2015/4のDNSの教科書が非常に勉強になった。また、 インターネット10分講座:DNSキャッシュ - JPNICも参考になる。 権威サーバとフルリゾルバ まず、DNSサーバには権威サーバとフルリゾルバの二つの種類が存在する。 権威サーバ ドメインの情報を管理し、自分の管理しているゾーンの情報を提供するだけのサーバ 問い合わせたドメインが自分のゾーンの管理下ではない場合、別の権威サーバへ委任するという情報を返す コンテンツサーバとも言われる? 例) co

    ioドメイン障害を理解するため、DNSの仕組みについて勉強した - $shibayu36->blog;
  • goインストールから、emacsにgo-mode, go-autocompleteを導入するまで - $shibayu36->blog;

    最近社内でgo勉強会をしているので、goのインストールとemacsの基的な設定を行った。 goのインストール とりあえず適当にbrewで入れた。 $ brew install goあと http://golang.org/doc/code.html を参考に適当にGOPATHとPATHを設定した。 .zshrc # Go PATH export GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin go-modeのインストール とりあえずgo-modeはMELPAにあったのでそれを入れる。 M-x package-install go-mode設定書く。 (require 'go-mode-load) これでsyntaxハイライトやインデントなどはうまくいくようになった。 go-autocompleteのインストール あと補完をいいかんじに効かせたか

    goインストールから、emacsにgo-mode, go-autocompleteを導入するまで - $shibayu36->blog;
  • anyenvを導入した - $shibayu36->blog;

    anyenvという**env系の簡易マネージャを作った - As a Futurist... anyenvで開発環境を整える - Qiita あたりを見て良さそうだったので導入してみた。 インストール $ git clone https://github.com/riywo/anyenv ~/.anyenvあとは適当に.zshrcに以下を追記した。 # anyenv export PATH="$HOME/.anyenv/bin:$PATH" eval "$(anyenv init -)" そのあと使っているplenvとrbenvを入れておく。 $ anyenv install plenv $ anyenv install rbenv anyenv update そのあとanyenv-updateが便利と聞いたので、導入してみた。https://github.com/znz/anyenv-u

    anyenvを導入した - $shibayu36->blog;
  • 「理論から学ぶデータベース実践入門」読んだ - $shibayu36->blog;

    理論から学ぶデータベース実践入門 ~リレーショナルモデルによる効率的なSQL (WEB+DB PRESS plus) 作者:奥野 幹也技術評論社Amazon 積ん読に入っていたので読んだ。 このはリレーショナルモデルを理解することによってRDBの知識を深めようというようなRDBを実践で使っている人がさらに知識を深めるためのという感じ。内容としては重要な理論がRDBと紐付けられて解説されていて面白かった。一方で、専門用語が文章中に多く使われていて、個人的には何か頭に入ってこなかった点は残念だった。 このを読みながらわからないところを調べていて見つけたのだけど、このの著者の昔の発表資料である「データベース設計徹底指南!!」がこのの端的なまとめになっていて、しかも非常に良い資料なので当におすすめ。で紹介されているリレーショナルモデルや正規化理論などがわずか15分程度で理解できる

    「理論から学ぶデータベース実践入門」読んだ - $shibayu36->blog;
  • パーフェクトJavaを読んだ - $shibayu36->blog;

    最近アルゴリズムの勉強でJavaを使っていて、いい機会だしどうせならJavaの言語の詳細な機能や考え方などを知りたいと思っていた。Javaをやっている人に聞いてみると「パーフェクトJava」が良いということなので読んでみた。 改訂2版 パーフェクトJava 作者:井上 誠一郎,永井 雅人技術評論社Amazon おすすめされたとおり非常に良かった。Java8に対応していて、Java8ならどう書くかを知ることが出来たし、クラスやインターフェースの構文の細かな詳細、コレクションの使い方や内部実装、ラムダ式の使い方や考え方、さらにはそれぞれの機能の内部まで細かく眺めることが出来た。Javaはこれまでの歴史からインターネット上には古いコードが無限にあるので、こういうが一冊リファレンスとしてあるのはありがたい。 このの中で個人的には以下の章が特に面白かった。これまでの経験から基的な構文はすんなり

    パーフェクトJavaを読んだ - $shibayu36->blog;
  • いつ突然会社をやめても問題ないという基準でコードやドキュメントを書く - $shibayu36->blog;

    先に前提を話しておくと、会社は全く辞めるつもりはないし、むしろどんどん会社を良くしていこうと思っている。今回はそういう基準で自分がコードやドキュメントを書いていますよという話。 コードやドキュメントを書く時に、どのくらいきれいにしておくかとか、どのくらいわかりやすくしておくかとかを考えることがある。こんなとき僕は、いつ突然自分が会社をやめて連絡がつかなくなったとしても他の人がある程度理解できるか、を基準にしている。そのためにはあまりいい方法が思いつかなくて仕方なく書いている部分にはちゃんと経緯のコメントを書く。他にも例えば作ったサービスであるイベントを開催する方法のドキュメントを書くなら、全く何もやったことがない人がそのドキュメントを読んだらとりあえず開催できるよう、ドキュメントを書く。当然コードもかっこよさよりも、説明しなくても分かりやすくなるようなシンプルさを追求する。 また、このよう

    いつ突然会社をやめても問題ないという基準でコードやドキュメントを書く - $shibayu36->blog;
  • 仕様や実装方針の相談をPullRequestで行う取り組み - $shibayu36->blog;

    これまで少し大きめな機能であれば、コードを書く前にまず仕様や実装の方針をissueのdescriptionにまとめ、それを先にレビューしてもらってから実装にとりかかるということをしていた。最近、その方針をそもそもrepositoryのファイルとして書いて、PullRequestしてレビューしてもらうようにしたら便利だったのでご紹介。 なぜコードを書く前に仕様や実装の方針をレビューするのか 前提としてなぜコードを書く前に仕様や実装の方針をレビューして欲しいのかについて書いておく。これはとにかく手戻りの量を少なくしたいという要求のためである。 実装に取り掛かろうとすると、実装の方針はいくつか思いつくが、どれが一番よいか迷うことはよくある。その場合に誰にも相談せず自分だけで判断し、コードを書いてからPullRequestを送った場合、もしその選択に重大なミスがあった場合全て書きなおさないといけな

    仕様や実装方針の相談をPullRequestで行う取り組み - $shibayu36->blog;
  • いつ突然会社をやめても問題ないという基準でコードやドキュメントを書くテクニック - $shibayu36->blog;

    blog.shibayu36.org 上の記事が思ったより読まれていたので、自分がこの基準を満たせるようにやっているテクニックも箇条書きで書いておく。 PullRequestを作ったら必ず自分でコードレビューをする コードを書いているとき、その一部一部はこれで完璧と思ってるけど、実は全体を見直すと分かりにくかったりする 1日寝てから見直す 1日経つとちょっと忘れて新鮮な気持ちで見れる 1週間後にもう一回見てみる 1週間くらい経つともうだいぶ忘れて、穴が見えてくる 穴があったら別PullRequestで直す もう一度同じところを担当することがあればチャンス。自分でもこれどういうことだっけってググり始めたら基準を満たせていない 自分が全く関わっていない部分のところを触りだしたらかなりチャンス。当にまっさらな頭で基準を満たすか見れる。他人がやったことだからとか思わずにちゃんとその時に直す やっ

    いつ突然会社をやめても問題ないという基準でコードやドキュメントを書くテクニック - $shibayu36->blog;
  • 「体系的に学ぶ安全なWebアプリケーションの作り方」再読した - $shibayu36->blog;

    ユーザアカウント周りの実装で気をつけるべきことをもう一度学び直すために「体系的に学ぶ安全なWebアプリケーションの作り方」を再読した。 体系的に学ぶ 安全なWebアプリケーションの作り方[固定版] 脆弱性が生まれる原理と対策の実践 作者:徳丸 浩SBクリエイティブAmazon 以前読んだ時はXSSとかSQLインジェクションとかCSRFとかの特に基的な部分に関して頭に入ってきてたとけど、今回はアカウント周りとターゲットを決めたのでクッキー周り、セッション周りについて重点的に学ぶことができた。とくに5章にはユーザアカウントの登録や管理、メールアドレス変更、パスワード変更など、ユーザアカウント周りを実装するにあたってまさに必要な情報が書いてある。 サービスを作るにあたってアカウント周りに関することをやることは多いので、そういう時にはもう一度読んでみると良さそうと思った。

    「体系的に学ぶ安全なWebアプリケーションの作り方」再読した - $shibayu36->blog;
  • プロジェクトを成功させるために最初におこなっていること - $shibayu36->blog;

    ディレクター時代に仕事プロジェクトを受け持つ時にどうやったら成功させることが出来るのかについていろいろ考えていた。僕は開発フローをいろいろ考えるのが好きなのだけど、実際に自分がリーダーシップを取ってプロジェクトを進めることを経験すると、そもそもその前に考える・決めるべきことがたくさんあるということが分かったので、ブログに書いておこうと思う。 ここで言うプロジェクトとはサービスを一から作ったり、サービスの一機能を作ったり、受託案件一つだったりを指す。特に開発プロジェクトに限定するものでもない。 プロジェクトを成功に近づけるためには、まずプロジェクトの開始時に、プロジェクトの5W1Hを明確にし、個々のメンバーの責任範囲を決め、それらを一つの場所にまとめておくということをしておくと良いと考えている。 5W1Hを決める すごい基的なことだけど、プロジェクトをやる上でやはり5W1Hは大事である。

    プロジェクトを成功させるために最初におこなっていること - $shibayu36->blog;
    yukung
    yukung 2015/09/18
    これをこうやってちゃんと文章にまで落とすの、思い返すと40〜50代のプロジェクトマネージャでこれすら出来ないというか考えることすらできない人の方が多かったのですごいなぁと思う
  • 符号化文字集合と文字符号化方式 - 「プログラマのための文字コード技術入門」を読んだ - $shibayu36->blog;

    最近文字コード周りでハマった時に、文字コードというものをそもそもちゃんと分かってないと気づいた。そこで「プログラマのための文字コード技術入門」を読んで勉強してみた。 プログラマのための文字コード技術入門 (WEB+DB PRESS plus) (WEB+DB PRESS plusシリーズ) 作者:矢野 啓介技術評論社Amazon このはコンピュータにおける文字について体系的にまとめてくれている。ASCIIやLatin1、UTF-8やUnicodeについて、どういう分類で何のために使われているかを知ることができる。また、歴史も合わせて教えてくれるので、今現状起こっている問題(円マークとバックスラッシュ問題とか)がどういう経緯で起こってしまったのかなどを理解できる。 簡単な文章で書かれているので、一度でも文字コードに関係することでハマったことのある人なら、どんどん読めると思う。ただ、符号化文

    符号化文字集合と文字符号化方式 - 「プログラマのための文字コード技術入門」を読んだ - $shibayu36->blog;
  • 悩みをどう解決するか - 「道は開ける」を読んだ - $shibayu36->blog;

    自己啓発書の名著と言われている、「道は開ける」を読んだ。 新訳 道は開ける 作者:D・カーネギー,田内 志文KADOKAWAAmazon道は開ける 新装版 作者:カーネギー, デール,Carnegie, Dale,晶, 香山創元社Amazon このは、人がかならず当たる問題なのに悩みということに関するが無いという前置きをした上で、悩みということを主題として悩みの克服方法などについて教えてくれる。けっこう古いだし、少し難し目な文章を想像していたけど、思ったより平易かつ必ず章の最後にちょっとした要点がまとめられていたので楽に読めた。いろんなことに悩んでしまうような人にはかなりためになる文章が書かれているのでおすすめ。 今回はこので言及されていた 悩みをどう解決するか 気にする必要もなく、忘れてもよい小事で心を乱してはならない やっかいごとを数え上げるな、恵まれているものを数えてみよう

    悩みをどう解決するか - 「道は開ける」を読んだ - $shibayu36->blog;
    yukung
    yukung 2014/12/24
  • 「イシューからはじめよ」を読んだ - $shibayu36->blog;

    最近やることがたくさんあってどうしたら良いか分からなかったので、同僚の薦めもあって「イシューからはじめよ」を読んだ。結構面白かった。 イシューからはじめよ──知的生産の「シンプルな質」 作者:安宅和人英治出版Amazon このには、やるべきことがたくさんあった時に、タスクをやる効率をどんどん上げていくという方向にまず走るのではなく、その中で重要なイシューを見極めてそれを重点的に取り組むべきである、というようなことが書かれていた。とにかくやるのではなく、まずやることを見極めよみたいな感じ。確かに忙しい時はとにかくやるとなりがちだけど、とにかくやっててもあんまり成果が上がらないことがあるので、まず見極めないといけないと思った。 このの中で 悩まずに考える 「これは何に答えを出すものなのか」を明確にしてから問題に取り組む 一次情報を死守 という言葉が印象に残ったので、それについて書く。 悩

    「イシューからはじめよ」を読んだ - $shibayu36->blog;
  • つかまらない上司にならないために - 1分間マネジャーの時間管理を読んだ - $shibayu36->blog;

    1分間マネジャーの時間管理 パンローリング株式会社Amazon 「1分間マネジャーの時間管理」を読んだ。非常に面白く、勉強になることが多かった。 このは、マネジャーが時間に追われている状況をどう解決するかについて教えてくれる。このにおいてプロジェクトにおける「次の対応」はサルと表現され、マネジャーが時間を作るためにはこのサルの管理をうまくしなければならないというような話で、時間に追われている状況の改善方法について説明している。書き方自体も時間に追われたマネジャーを主人公として物語風に進んでいくので、非常に読みやすく面白かった。 上に書いた通りの話なので、マネジャーになってなぜか忙しくなったと思う人は是非読んでみると良さそう。確かにそれで忙しくなってるわーみたいなことがいろいろ書かれているので参考になると思う。 このの中でメインとなるポイントは オンケン流サル管理の心得 三つの時間をや

    つかまらない上司にならないために - 1分間マネジャーの時間管理を読んだ - $shibayu36->blog;
  • 良い物件ではなく良い不動産屋を探した - $shibayu36->blog;

    いろいろあって今の家から引っ越すことになった。 良い物件どうやって探したらいいか分からなかったので、適当にググって http://nanapi.jp/286/ を実践してみたら、結果的にうまく行ったので経験をメモ。 結論 良い物件を探すのではなく、良い不動産屋を探すという方法にしたところ、僕の性格としては上手く行った 今回の流れ suumoやhomesで住みたい場所の物件を眺める 希望条件をまとめる 不動産屋を選んでメールしまくる 良さげなところを数社に絞って、さらに送られた物件見ながら返信してみる 一番いい感じに返答してくれた雰囲気の店に行って相談 suumoやhomesで住みたい場所の物件を眺める http://nanapi.jp/286/ とやってることは一緒なので割愛 希望条件をまとめる http://nanapi.jp/286/ とやってることは一緒なので割愛 不動産屋を選んでメ

    良い物件ではなく良い不動産屋を探した - $shibayu36->blog;
    yukung
    yukung 2014/07/17
    参考にしたい
  • Web Applicationを綺麗に設計するためのMVACという考え方 - $shibayu36->blog;

    【2016/03/04追記】以前まとめたこのMVACという名前の設計は既に古くなっており、今はこのようなアーキテクチャで設計していません。 こんにちは。最近ははてなでMVACというアーキテクチャに則って開発をしているのですが、ようやく意味を理解できてきました。そこで今回は「Web Applicationを綺麗に設計するためのMVACという考え方」について、サンプルを交えながら説明していこうと思います。かなり長くなってしまったので、時間があるときにでもどうぞ。 MVACって? データソースやロジックを扱う「Model」、表示・出力を管理する「View」、複数のModelとControllerをつなぐApplication、ユーザのリクエストなどを受け取りViewやApplicationを制御する「Controller」の4つの要素を組み合わせてシステムを実装する方式。MVCをさらに抽象化した

  • 1