はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    ノーベル賞

『R7KAMURA』

  • 人気
  • 新着
  • すべて
  • Yattecast - Podcastサイトをつくるためのテンプレート

    40 users

    r7kamura.github.io

    YattecastPodcastサイトをつくるためのテンプレート 簡単・便利・最高サイトを公開するには、録音した音源と説明文をGitHubに置くだけ。 再生用のプレーヤーやiTunes用のRSSフィードなども自動で用意されます。

    • テクノロジー
    • 2016/11/23 11:14
    • podcast
    • development
    • Web
    • あとで読む
    • Atom Git Integration - r7km/s

      26 users

      r7kamura.github.io

      Atomを使っていて、ファイル一覧やステータスバーの色が変わっていることに気付いたことはあるだろうか。 こいつの正体はGitだ。 Atomは標準でGitレポジトリを管理する機能を備えていて、Gitの一般的な操作は勿論それに関連した様々な機能を備えている。 今回はAtomのGitに関連する幾つかの機能を見ていきながら、それらがどういう風に動くのかを説明していこうと思う。 Git API 最初に言っておくと、この記事で触れるパッケージと機能は全てAtomのCore Git API上に実装されている。 atom.projectというグローバルにアクセスできるオブジェクトがgetRepo()というメソッドを持っており、 これが現在のプロジェクトのGitレポジトリを返すようになっている。 これを使えば、ファイルの状態や変更点など現在のレポジトリの状態を調べられる。 この機能には、git-utilsと

      • テクノロジー
      • 2014/08/01 20:22
      • Git
      • atom
      • editor
      • あとで試す
      • git
      • Golang Reverse Proxy - r7km/s

        69 users

        r7kamura.github.io

        単一ホスト用のリバースプロキシを実装する net/http/httputilで、HTTP用のReverse Proxyを実装するためのライブラリが提供されている。 下記のコードで、http://127.0.0.1:3000 から http://127.0.0.1:9292 にHTTPリクエストを委譲するReverse Proxyが動作する。 httputil.NewSingleHostReverseProxyはhttputil.ReverseProxyのインスタンスを返す。 このインスタンスはhttp.Server互換の (.ServeHTTPメソッドに呼応できる) オブジェクトであるため、 http.Serverを利用してHTTPサーバを動作させられる。 // main.go package main import( "net/http" "net/http/httputil" "net

        • テクノロジー
        • 2014/07/20 12:22
        • golang
        • go
        • proxy
        • reverseproxy
        • server
        • etcd
        • http
        • development
        • Flynn Overview - r7km/s

          14 users

          r7kamura.github.io

          Flynn という、コンテナを複数ホストで動作させるPaaS実装の全体像。 strowger リバースプロキシ。 ユーザからTCP/UDPリクエストを受け付けて適切なホスト (の中で動いているDockerコンテナ) に委譲する。 HAProxyやNginxのようなものだが、再起動や設定ファイルの再読込無しで動的に設定が変更できるという特徴がある。 controllerからHTTP経由でリクエストを受けて、ルーティング情報を表示したり変更したりする。 gitreceived git-push(1) を受け付けて適当な処理を行うためのSSHサーバ実装。 受け取ったコードをslugbuilderというツールで実行可能な形式 (=slug) にコンパイルしたあと、Shelfと呼ばれるファイルサーバにslugをアップロードする。 アップロード後、controllerに対してアプリがpushされた

          • 暮らし
          • 2014/07/17 11:42
          • flynn
          • docker
          • Slugbuilder - r7km/s

            5 users

            r7kamura.github.io

            ここで言っている実行可能な形式とは、Heroku上で slug と呼ばれているもので、ソースコード・依存ライブラリ・実行環境をtar形式にまとめてGzip圧縮したものである。 使われ方 flynnでは、コンテナで実行させたいアプリがgit pushされたときにslugbuilderが実行され、 アプリ用のslugが生成され、shelfと呼ばれるファイルサーバ経由で配布され、sluglunnerで実行される。 discoverd & flynn-host を使ってコンテナを動かすホスト群のクラスタが形成される gitreceived を使ってGitサーバが git-push(1) を待ち受ける gitreceived が git-push(1) に呼応してflynn-receiveを実行する flynn-receive が slugbuilder を利用してslugを作成する slugrun

            • 学び
            • 2014/07/16 18:53
            • flynn
            • docker
            • Scheman - r7km/s

              62 users

              r7kamura.github.io

              Schemanという、Ruby製のSQLパーサをつくった。 例 文章で説明するより見たほうが早いだろうということで、例を用意した。 require "scheman" require "yaml" parser = Scheman::Parsers::Mysql.new schema = parser.parse(<<SQL) CREATE TABLE `users` ( `id` INTEGER(11) NOT NULL PRIMARY KEY AUTO INCREMENT, `name` VARCHAR(255) NOT NULL ); SQL puts schema.to_hash.to_yaml 構文解析結果はHash, Array, Symbol, Stringの組合せで表現される (※可読性のためにYAML形式で表示した) --- - :create_table: :name:

              • テクノロジー
              • 2014/07/10 02:16
              • r7kamura
              • parser
              • ruby
              • Ruby
              • sql
              • SQL
              • SQL Translator - r7km/s

                32 users

                r7kamura.github.io

                SQL::Translator という、 SQLの構文解析器 + これを利用した便利なツール群を読んだ。 SQL::Translatorの使い方 とりあえずSQL Translatorの使い方を知らないことにはどうにもならないので、 使い方を調べて小さな動くコードを書くことに。 まず手元にbefore.sqlとafter.sqlという2つのSQLのファイルを用意した。 before.sqlでusersテーブルを作成し、更にafter.sqlでitemsテーブルを作成している。 $ cat before.sql CREATE TABLE `users` ( `id` integer(10) unsigned NOT NULL AUTO_INCREMENT, `name` char(16) NOT NULL, PRIMARY KEY (`id`) ); $ cat after.sql CREA

                • テクノロジー
                • 2014/07/01 05:30
                • perl
                • SQL
                • diff
                • id
                • Gitreceived - r7km/s

                  25 users

                  r7kamura.github.io

                  git pushに対応することに特化したSSHサーバ Gitreceived を読んだところ、幾つかの知見が得られた。 git-shell Git付属のシェル git-shell がGitreceivedで利用されている。 git-shellはGitに関する作業しかできない制限付きのシェルである。 GitreceivedはSSH経由で入力された任意のコマンドを外部コマンドとして実行しようとするが、 このとき外部コマンドはgit-shellを利用して実行される。 つまり、任意のコマンドと言えどGitに関する作業しか実行できないように制限されている。 git push クライアントでgit push origin masterが実行されたとしよう。 このときGitは、サーバへのSSH接続を開始する send-pack プロセスを実行する。 サーバ側では、以下のようなSSHの呼出を介してコマンド

                  • 暮らし
                  • 2014/06/29 04:08
                  • gitreceived
                  • git
                  • ssh
                  • development
                  • Flynn Host - r7km/s

                    4 users

                    r7kamura.github.io

                    flynn/flynn-host という、 Flynnで使われているホスト管理用のサービスのコードを読んだ。 flynn-hostによって何ができるようになるのか 端的に言うと、HTTPのAPI経由で複数のホストで複数のDockerコンテナを管理出来るようになる。 flynn-hostのデーモンを全てのホストに常駐させておくことで、 外部からHTTP経由でホストのクラスタを管理出来る。 flynn-hostの機能によってクラスタ内の1つのホストがリーダーとして選出されるが、 リーダーとなるホストはHTTP経由で次のようなAPIを提供する。 クラスタ内のホスト一覧を返す クラスタに新規ホストを登録する 特定のホストにジョブを実行させる リーダー以外のホストはジョブが追加されるのを待ち受けており、 ジョブの実行命令を受け取るとこれをDockerコンテナで実行するようになっている。 またジョブを

                    • 暮らし
                    • 2014/06/26 23:44
                    • docker
                    • Discoverd - r7km/s

                      21 users

                      r7kamura.github.io

                      flynn/discoverdという、Golang製のService discovery systemを読んだ。 何ができるのか クラスタ内の全ホストでdiscoverd(とetcd)を動作させておくことで、 各ホストのアドレスやメタ情報、クラスタへのホストの追加や削除などの情報が簡単に購読できるようになる。 各ホストは名前ベースで管理されるため、同じ名前を持つホストを群として一律に扱うこともできる。 具体的には discoverdは各ホストから発行されるRegisterイベントとUnregisterイベントを検知し、 discoverdに対してsubscribeしていたクライアントにこれらのイベントを伝える機能を持っている。 例えばdiscoverdを動作させているあるクラスタにsubscribeしているクライアントは、 10.0.0.1と10.0.0.2のホストがこのクラスタに参加(=

                      • 世の中
                      • 2014/06/24 11:04
                      • etcd
                      • docker
                      • golang
                      • discoverd
                      • Go misc - r7km/s

                        6 users

                        r7kamura.github.io

                        Golang初学者のGolangに関する雑多なメモ。 Godep GodepはRubyで言うところのBundlerみたいなもので、 依存関係の定義と解決を行ってくれる。 godepはgo getを利用してインストールできる。 GodepというファイルにJSON形式で依存関係を記述し(≒Gemfile)、 godep getで依存ライブラリをインストールする(≒bundle install)。 例えばGoのプロジェクトflynn/discoverdのGodepsを利用してみる。 $ go get github.com/tools/godep $ cd $GOPATH/src/github.com/flynn/discoverd $ cat Godep { "ImportPath": "github.com/flynn/discoverd", "GoVersion": "go1.2.1", "

                        • 世の中
                        • 2014/06/23 23:02
                        • golang
                        • go
                        • GHQ - r7km/s

                          77 users

                          r7kamura.github.io

                          ghqというレポジトリ管理ツールを使ってみた。 Installation Goがインストールされていてかつ環境変数$GOPATHが設定されている環境で、go getを使ってインストールできた。 手元の環境を調べてみると、Goのversionは1.2.1、環境変数$GOPATHは$HOME/.goに設定されていた。 $ go get github.com/motemen/ghq $ go version go version go1.2.1 darwin/amd64 $ echo $GOPATH /Users/r7kamura/.go $ cat /Users/r7kamura/.zshrc.local | grep GO export GOPATH=$HOME/.go export PATH=$PATH:$GOPATH/bin $ which ghq /Users/r7kamura/.go

                          • テクノロジー
                          • 2014/06/22 00:10
                          • zsh
                          • git
                          • go
                          • command
                          • peco
                          • golang
                          • OAuth Sign - r7kamura per second

                            78 users

                            r7kamura.github.io

                            OAuth 2.0 への理解を深めるため、自分がOAuthをどう捉えているかを整理します。 多分に誤解が含まれている可能性があるので悪しからず。 OAuth 2.0 OAuth 2.0を利用してリソースサーバ(=Web API)と通信を行う場合、 以下の処理が行われます。 ユーザは認証情報を認証サーバに渡してアクセストークンを発行してもらう ユーザはリソースサーバと通信する際にアクセストークンを一緒に渡す リソースサーバは受け取ったアクセストークンからユーザを識別する リソースサーバは識別結果をもとに適切な処理を行いレスポンスを返す 認証情報 認証情報には幾つかのパターンがあり、以下の情報が含まれます。 アプリケーションを識別するための情報 ユーザを識別するための情報 認証方法などを表すメタ情報 認証サーバとリソースサーバ 認証サーバは、アプリケーションを登録したり、アクセストークンを発

                            • テクノロジー
                            • 2014/03/14 00:17
                            • oauth
                            • oauth2
                            • OAuth 2.0
                            • authorization
                            • api
                            • authentication
                            • 認証
                            • design
                            • document
                            • Database Encryption - r7kamura per second

                              39 users

                              r7kamura.github.io

                              データベースの暗号化界隈の話を調べたのでQ&A形式でまとめた。 なぜ暗号化を行うのか? 一般的には、以下の様な情報の漏洩を防ぐため。 個人が識別できる情報 個人の行動履歴 財務情報 知的財産 財産 その他開示されていない情報 最近日本で大きな情報漏洩被害にあった企業例は? Sony (PlayStation Network) Yahoo! Japan LINE 2ch @PAGES データベースの暗号化におけるベストプラクティスは? StackOverflow等の意見を集めた限り、この辺を全部やるというのがベストプラクティスという雰囲気。 通信データの暗号化: SSL 格納データの暗号化: FDE + TDE (後述) 格納データの暗号化機能を提供しているサービスの例は? Amazon RDS for Oracle Amazon RDS for SQL Server Amazon S3 G

                              • テクノロジー
                              • 2014/03/12 17:57
                              • security
                              • database
                              • encryption
                              • データベース
                              • gn
                              • LINE
                              • cloud
                              • data
                              • Atom Contribution Guideline - r7kamura per second

                                34 users

                                r7kamura.github.io

                                Atomの開発者向けガイドライン で紹介されている、汎用的に適用出来そうな項目をまとめた。 Pull Request 出来るだけスクショやアニメGIFを貼ろう 期待する挙動を書こう 似た機能をどこかで見たことがあれば紹介しよう 言語ごとのガイドラインに従おう コードにドキュメントを書こう 良い文章を伴った構造化されたテストを書こう ファイルの末尾には改行を入れよう プラットフォーム依存のコードは避けよう Commit Message 現在時制で書こう 命令形で書こう 1行目は72文字以内に収めよう 関連するIssueやPull Requestに参照を貼ろう 形式的なものには絵文字を使おう (整形、速度改善、ドキュメント更新など)

                                • 世の中
                                • 2014/02/27 22:41
                                • git
                                • github
                                • development
                                • commit
                                • atom
                                • 開発
                                • Gitreceive - r7kamura per second

                                  20 users

                                  r7kamura.github.io

                                  gitreceive という、git push時に任意の処理を実行する為のツールがある。 Dokku の中で同様の仕組みが使われており、 git push時にbuildpacksでアプリをbuildしDockerコンテナの中で動かす、 という機能を実現している。 認証機能 gitreceiveはSSH公開鍵登録用インターフェース、 及び公開鍵を利用した簡易的な認証機能を持っているが、 公開鍵を登録したユーザからのPushのみを許可するというもので、 Pushするアプリケーションごとに別々の権限を与えるということは出来ない。 forced command gitreceiveはSSHのforced commandと呼ばれる機能を利用している。 forced commandを使うと「SSH接続時に何をするか」という情報を、 クライアント側ではなくサーバ側で指定出来る。 OpenSSHでは、au

                                  • テクノロジー
                                  • 2014/02/27 03:39
                                  • git
                                  • docker
                                  • SSH
                                  • *software
                                  • Etcd - r7kamura per second

                                    3 users

                                    r7kamura.github.io

                                    DockerやFlynnを調べている中でetcdについて少し知識を得た。 概要 etcdはあるクラスタ内の複数のノード(≒ホスト)間で値を共有出来るKVSで、 クラスタ内の全てのノード上でetcdを動かしておくことで、 ノード間で設定値を共有したりサービスディスカバリに利用したり出来る。 CoreOSという小さなOSの部品の1つとして開発されており、Go言語で実装されている。 KVS KeyとValueには文字列を利用する。 Keyはファイルシステムのパスのようにスラッシュ区切りの形式になっており、 ディレクトリとファイルのように利用出来る。 例えば、あるディレクトリ(≒名前空間)の中に含まれるファイル(≒値)を全て取得する、ということも出来る。 機能 HTTP経由で操作出来る。 Curl等からでも簡単に利用出来るが、 Go言語で書かれた専用クライアントも利用出来る。 KeyはURLのパス

                                    • 暮らし
                                    • 2014/02/26 10:36
                                    • docker
                                    • linux
                                    • Private PaaS Beach - r7kamura per second

                                      39 users

                                      r7kamura.github.io

                                      デプロイこそが全て。 Dokku https://github.com/progrium/dokku/ Dokkuを使えばmini-Herokuのような環境を簡単に構築出来る。 Dokkuを利用して構築したホストに対してgit pushでコードをデプロイすると、 HerokuのBuildpacksの仕組みを利用して環境が構築され、 Dockerのコンテナ上でアプリが起動し、nginxの設定が更新される。 Dokkuのホスト上でnginxがHTTPリクエストを待ち受けており、 サブドメインを元に適切なコンテナにリクエストを渡すという仕組みになっている。 Digital Ocean https://www.digitalocean.com/ Dokkuを試しに使ってみるにはDigital Oceanを利用するのが便利。 最初からDokkuがインストールされた状態のイメージが用意されているこ

                                      • 暮らし
                                      • 2014/02/18 10:00
                                      • docker
                                      • dokku
                                      • heroku
                                      • digital ocean
                                      • nginx
                                      • PaaS
                                      • https
                                      • development
                                      • *あとで
                                      • Apiary - r7kamura per second

                                        88 users

                                        r7kamura.github.io

                                        API(とそれに携わる開発者)の規模が拡大してくると、ドキュメントの整備や、仕様と実装の一貫性の維持、 クライアントとの知識の共有など、考慮すべき問題が沢山出てくる。 これらの問題に対する現実的な解決策を探るため、 ApiaryというAPI開発支援用のサービスを簡単に俯瞰することにした。 ここでは紹介しないが、他に RAML、 JSON Schema、 Swagger、 WADL、 Autodoc などが関連するものとして挙げられる。 Apiary http://apiary.io/ Apiaryは、API Blueprintと呼ばれる言語でAPIのインターフェース仕様書を記述する、という開発方法を提唱している。 API BlueprintはMarkdownを拡張した言語で、特殊な記述を用いて幾つかのメタ情報を付与出来る形になっている。 Markdownを採用することで人間にとって読み書き

                                        • テクノロジー
                                        • 2014/02/13 20:07
                                        • api
                                        • apiary
                                        • documentation
                                        • REST
                                        • development
                                        • WebAPI
                                        • webservice
                                        • Device Specific API Design - r7kamura per second

                                          37 users

                                          r7kamura.github.io

                                          The Netflix Tech Blog: Embracing the Differences : Inside the Netflix API Redesign Netflixの開発者ブログで触れられているように、Netflixは以下の4つの方針に沿って彼らのAPIを再構築した。 デバイスごとの差異を受け入れる コンテンツの収集と整形を分ける クライアントとサーバの境界線を再定義する 変化を促進する デバイスごとの差異を受け入れる REST APIのように1つの汎用的なインターフェースで全ての要件を満たそうというアプローチは、 APIへの理解が簡単になる一方、後から変更することは難しくなり、また非効率な処理を生み出しやすくなる。 この手のアプローチが重視しているのは、API提供者側の開発コストを下げることであり、 API利用者の利便性を第一に考えたものではないと彼らは考える。 API

                                          • テクノロジー
                                          • 2014/02/13 14:37
                                          • api
                                          • architecture
                                          • design
                                          • url
                                          • webservice
                                          • development
                                          • Includable YAML - r7kamura per second

                                            22 users

                                            r7kamura.github.io

                                            YAMLの定義内で別のファイルに書いたYAMLを参照出来るようにしてみた。 YAMLに加える変更 YAMLの各要素には任意のタグを埋め込むことができ、またその振る舞いを定義出来る。 # test.rb require "yaml" YAML.add_domain_type(nil, "include") do |type, val| YAML.load_file(val) end # 折角なので再度YAMLに加工して出力してみる puts YAML.load_file("api.yml").to_yaml Includeする側 例えば、レシピデータを返すREST APIの仕様をYAMLで定義するというユースケースを考える。 レシピのスキーマをrecipe.ymlに書いて、各APIから定義を使い回すことにする。 # api.yml /recipes: GET: response: array

                                            • 世の中
                                            • 2014/02/13 10:07
                                            • yaml
                                            • ruby
                                            • recipe
                                            • faraday-lazyable - r7kamura blog

                                              68 users

                                              r7kamura.github.io

                                              faraday-lazyableという、 HTTPリクエストを遅延評価させるためのライブラリを作った。 遅延評価はある種の複雑性を持ち込むが、ビジネスの要求に合わせて正しく使っていきたい。 遅延評価 HTTPリクエストにおける遅延評価とは何か。 遅延評価というのは、評価しなければならない値が存在するとき、 実際の計算を値が必要になるまで行わないことをいう。 HTTPリクエストを遅延評価するというのは、つまりHTTPクライアントはすぐにレスポンスオブジェクトを返すが、 レスポンスオブジェクトに対してメソッドが呼ばれたときに初めてHTTP通信を発生させるということを意味している。 Faraday Faradayとは何か。 faraday-lazyableは、FaradayというRuby製のHTTPクライアントのプラグインとして実現されている。 FaradayはRackのようにプラグイン(=この

                                              • テクノロジー
                                              • 2014/02/01 22:49
                                              • ruby
                                              • faraday
                                              • http
                                              • architecture
                                              • api
                                              • gem
                                              • idea
                                              • Asciinema - r7kamura blog

                                                24 users

                                                r7kamura.github.io

                                                Asciinemaの使い方、使われ方、使い勝手について。 使い方 Asciinemaという、端末上の操作を録画するツールとそのホスティングサービスがある。 「Record and share your terminal sessions, the right way」とのこと。 ざっくり言うとTerminal版Gifzoみたいなもので、こういう感じで利用できる。 # install sudo easy_install pip sudo pip install asciinema # usage - 新しいsessionが立ち上がり、exitするまで記録される asciinema rec 使われ方 例えば、AsciinemaはDockerのTutorialで使われている(またDockerか)。 Dockerは自分にとって新しい概念を導入するものだったので、 入力と出力の様子を見ながら外側から

                                                • テクノロジー
                                                • 2013/12/08 18:32
                                                • terminal
                                                • docker
                                                • development
                                                • Autodoc - r7kamura blog

                                                  150 users

                                                  r7kamura.github.io

                                                  闇Advent Calendar 1日目の記事として、最近の開発における心の闇に触れます。 最近開発した Autodoc というツールについて簡単に説明した後、 この手のツールの開発にあたって考えていた、 創作活動の在り方や、社会の斥力、25歳定年説などについて触れようと思います。 Autodocとは Rack applicationで実装されたAPIに対して、RSpecで書かれたテストを元にAPIドキュメントを生成するもの。 テストを実行すると、テスト中に発行したリクエストやレスポンス、そのテストに付けられたメッセージを元に、 良い感じに情報をまとめ、Markdown形式でAPIドキュメントを記したファイルを生成してくれる。 例えばGitHubではMarkdownファイルを適当に描画してくれるので、 下図のようにGitHub上で簡単にドキュメントを閲覧出来るようになる。 テストの書き方

                                                  • テクノロジー
                                                  • 2013/12/02 01:13
                                                  • life
                                                  • Rack::Multiplexer - r7kamura blog

                                                    69 users

                                                    r7kamura.github.io

                                                    Rack::Multiplexerという、複数のRackを束ねるものをつくった。 Plack寄せ この前Perl界隈の人達と鍋を囲む機会があって、 !!1;の話、livedoor BlogのPlack化の話、ISUCONの話、 各社古いアプリ抱えていて辛いね苦しいね頑張ろうね若者に1日で書き換えさせようといった話をして、 結局、何となくこの界隈は全体的に「Plack寄せ」が進んでいるねという話に落ち着いた。 Rack寄せ 一方Ruby界隈だと比較的皆Rackに寄っている傾向にはあると思うけど、 もっと寄せてみると面白いんじゃないかと思って、Rack::Multiplexerをつくった。既にありそう。 Rack::Multiplexerは、所謂WebアプリのRouter(=Dispatcher)の処理を行うための実装で、 メソッドやパスの規則に従って受け取ったリクエストを別のRack app

                                                    • テクノロジー
                                                    • 2013/11/27 05:26
                                                    • router
                                                    • routing
                                                    • rack
                                                    • Rack
                                                    • app
                                                    • Sitespec - r7kamura blog

                                                      88 users

                                                      r7kamura.github.io

                                                      [Sitespec](https://github.com/r7kamura/sitespec)という静的サイト生成ツールを作り、このブログを移行した。 ## Sitespec Sitespecは、Webアプリとテストから静的サイトを生成するためのツール。 WebアプリにはRackを、テストにはRSpecを使う。 Rackを使った適当なWebアプリを用意し、 RSpecでHTTPリクエストを発行するように記述したテストを実行すると、 レスポンスの内容から静的ファイルが生成されるという仕組みになっている。 参考までに紹介しておくと、静的サイト生成ツールには他に [Middleman](http://middlemanapp.com/)や[Octopress](http://octopress.org/)、[Movable Type](http://www.movabletype.jp/) な

                                                      • テクノロジー
                                                      • 2013/11/18 12:52
                                                      • rspec
                                                      • rack
                                                      • middleman
                                                      • ruby
                                                      • blog
                                                      • Rails
                                                      • tool
                                                      • generator
                                                      • HTML
                                                      • Happy Pull Request - r7kamura blog

                                                        34 users

                                                        r7kamura.github.io

                                                        「おれはブログをGitHubに置いていたと思ったらPull Requestをもらっていた」 おれは今オープンソースのブログをほんのちょっぴりだが体験した。 いや、体験したというよりはまったく理解を超えていたのだが。 何を言っているか分からないと思うが、おれも何をされたのか分からなかった。 ホスティングサイトだとか、バージョン管理だとかだとか、そんなチャチなもんじゃ断じてない、 もっと恐ろしいものの片鱗を味わった。 人最高 自分のプロダクトに対してPull Requestを生まれて初めてもらったのは、確か去年の夏のことだった。 当時すごく嬉しかったことは今でも覚えていて、 それは「黒い画面のログをブラウザに流せるようにして、しかも工夫次第で音とか流せるようにしました、ゲラゲラ」 みたいなプロジェクトで、それをわざわざ拙い英語を見てインストールしてくれて、 しかも僕のミスで何か不具合があって動

                                                        • テクノロジー
                                                        • 2013/11/15 02:03
                                                        • github
                                                        • Pull Request
                                                        • 思想
                                                        • R7KAMURA

                                                          5 users

                                                          r7kamura.github.io

                                                          I'm Ryo Nakamura (a.k.a. @r7kamura in the Internet world), a web programmer and game player from Kyoto, Japan, born in 1989. When I was a child, I liked playing video games with my father. Especially I liked Final Fantasy, a series of fantasy role-playing video games, developed by Square. My first experience of MMORPG was Final Fantasy XI, released when I was a junior high-school student. The expe

                                                          • 暮らし
                                                          • 2013/11/15 01:05
                                                          • *web
                                                          • Hello world - r7kamura blog

                                                            16 users

                                                            r7kamura.github.io

                                                            技術関係の小ネタを書くために新しくブログを作った。 ブログどれ使うか問題 tumblr、 medium、 hatenablog、 scriptogr.am などを検討した後、 今回はMiddlemanとGitHub Pagesを利用することにした。 tumblrは、手軽に使えて、無料で広告が出ず、HTMLテンプレートは全て自分で編集できるが、記事編集画面が少し使いづらい。 mediumはオシャレだけど、表参道みたいな息苦しさがある。 はてなブログは、はてなスターや通知、編集画面が便利で最高だけど、 無料だと広告が出るし、HTMLテンプレート全体を自由に編集できない。 scriptogr.amはDropboxに記事を置くと公開されるという仕組みが面白いけれど、まだBeta版品質という感じがする。 Middlemanについて MiddlemanはWebサイトに必要な静的ファイルを生成するための

                                                            • 暮らし
                                                            • 2013/11/10 10:15
                                                            • middleman
                                                            • github
                                                            • blog
                                                            • ブログ
                                                            • dropbox

                                                            このページはまだ
                                                            ブックマークされていません

                                                            このページを最初にブックマークしてみませんか?

                                                            『R7KAMURA』の新着エントリーを見る

                                                            キーボードショートカット一覧

                                                            j次のブックマーク

                                                            k前のブックマーク

                                                            lあとで読む

                                                            eコメント一覧を開く

                                                            oページを開く

                                                            はてなブックマーク

                                                            • 総合
                                                            • 一般
                                                            • 世の中
                                                            • 政治と経済
                                                            • 暮らし
                                                            • 学び
                                                            • テクノロジー
                                                            • エンタメ
                                                            • アニメとゲーム
                                                            • おもしろ
                                                            • アプリ・拡張機能
                                                            • 開発ブログ
                                                            • ヘルプ
                                                            • お問い合わせ
                                                            • ガイドライン
                                                            • 利用規約
                                                            • プライバシーポリシー
                                                            • 利用者情報の外部送信について
                                                            • ガイドライン
                                                            • 利用規約
                                                            • プライバシーポリシー
                                                            • 利用者情報の外部送信について

                                                            公式Twitter

                                                            • 公式アカウント
                                                            • ホットエントリー

                                                            はてなのサービス

                                                            • はてなブログ
                                                            • はてなブログPro
                                                            • 人力検索はてな
                                                            • はてなブログ タグ
                                                            • はてなニュース
                                                            • ソレドコ
                                                            • App Storeからダウンロード
                                                            • Google Playで手に入れよう
                                                            Copyright © 2005-2025 Hatena. All Rights Reserved.
                                                            設定を変更しましたx