おさかな日誌

魚類がプログラミング

Swift: Class 外から Inner class な enum value にアクセスしたい時

ClassName.EnumType.EnumValue みたいに EnumType を経由した識別子でアクセスできる import Foundation class A { enum Color { case Red case Blue } } let color = A.Color.Red // ダメ //let color3 = .Red // Color 型であることがわかる時はコンパイラ…

(要約記事) Varnish と Microservices: Zipnish の紹介

元記事: Varnish and Microservices: Introducing zipnish [update] スライドへのリンクが変わっていたので更新: https://www.slideshare.net/Varnish_software/microservices-20-61197134 Amedia が Microservices パターンを適用した時の事例を元に Zipnis…

Rails request spec の header name の変遷

たまに request spec とかで「HTTP_ いるっけ?」となった時に思い出したいので自分宛てメモ before Rails 4.0.0 get '/path', params, { 'X-Name' => 1 } は X-Name のままだった。 after Rails 4.0.0 get '/path', params, { 'X-Name' => 1 } と書くと HTT…

「X がモナドである」はなにが嬉しいのか

この記事はぼくの考えを雑に文章化したものであって、不正確な可能性が特に高いので気をつけてくださいね。 ごくたまに「X はモナドだったんだ」のような発言をすることがある。これは自分が理解しようとしている対象 X が、自分がすでに理解している概念で…

Redis cluster

Redis 初心者が Redis 3.0 から追加された cluster 機能を使ってみました。勘違いや憶測が多分に含まれます、ご注意を>< セットアップ 現時点では 3.0 がパッケージマネージャでインストールできなかったので、Redis 公式ページから latest stable をダウ…

vimfiler 使いはじめた & 設定キメた

NERD Tree を一時期使ってたのだけど、なんかちがうなぁ... と思ってずっと unite.vim の file を使ってファイルを開いてたのだけどやっぱツリー構造で表示したいなぁって思ってて、MBP の環境構築に合わせて vim 周りをちょっといじったので vimfiler を導…

Rails application の起動と実行メモ

rails コマンド bin/rails require "rails/cli" rails/cli: require 'rails/app_rails_loader' Rails::AppRailsLoader.exec_app_rails: bundler のチェック APP_PATH = Dir.pwd + config/application.rb require File.expand_path('../boot', APP_PATH) requ…

ワンライナーで Rack app 走らせる and Rack のメモ

Rack、雑にワンライナーで走らせれて便利だった。 rackup -s webrick -b 'run(Proc.new { |env| ["200", {"Content-Type" => "text/html"}, ["hello"]] })' use したい場合は -b オプションのスクリプトで use Foo; use Bar とか書いておくとよさそう。ライ…

「間違いだらけのソフトウェア・アーキテクチャ」読んだ

「間違いだらけのソフトウェア・アーキテクチャ ― 非機能要件の開発と評価」という本を読んだ。 全体的な感想としては、システムのアーキテクチャを考える人、つまりアーキテクトとして振る舞う人が最初にざっくり全体観をつかむために読むとよさそうだな、…

最近 golang 書いてる

社内でパフォーマンスチューニングコンテストが開催されてテンション⤴⤴になったので Ruby 実装だった認証認可サーバーの負荷の高い部分を golang で書いてみるのやってみた。 net/http で素のまま書こうと思ったけど、ちょっと検索したら Gin Web Framework …

Ruby 用天気予報ライブラリの weather_jp V2 出した

天気予報取得用の Ruby gem の weather_jp という gem を2年半前くらいに作ったのだけど、MSN が RSS 配信を止めたらしく動かなくなったので Twitter でメンションが来た。バックエンドを大幅に変えなくてはいけなさそうなのでせっかくだし V2 にした。 taik…

MySQL のサブクエリで気をつけとくこと

MySQL のクエリ最適化のために調べてたらサブクエリの話題が出てて、「相関関係のあるサブクエリは遅い」とか書いてあって、サブクエリ周りで知っておくといいこと得られたので書いておく。なぜMySQLのサブクエリは遅いのか。 を読んで手元のデータベースで…

おすすめされたもの

いつもおすすめ情報聞いたら iPhone のブラウザで開いておいてメモ代わりにしてるんだけど、多くなってきたのでメモ残しておく。 恵比寿 京しずく 恵比寿周辺でのおすすめ和食。値段はディナーで¥10,000~¥14,999(食べログ情報)!!しかしコスパは良い、と…

Ruby でも Zipkin がしたい! 戀

Ruby でも Zipkin がしたい!の続き 前回は1つのアプリケーションで Zipkin collector に情報をおくるところまでやった。今回は関連がある2つのアプリケーションのログを Zipkin collcetor に送る。client <-> test-app2 <-> test-app という経路。 まずは H…

Ruby でも Zipkin がしたい!

Ruby application でも Zipkin collctor に tracing data を送ってトレーストレースするためのメモ第1弾。まずは SERVER_RECV と SERVER_SEND だけを Zipkin collector に送信するやりかた。 経路としては App -> fluentd in-scribe-plugin -> fluentd out-s…

Microservices Architecture と非同期 API

Microservice Architecture を採用すると解決が難しい問題である、部分的障害に対する仕組みとして非同期 API にしてしまう、という方法を思いついた。 まず、今までの同期 API を使っていると想定してあるケースを検討してみる。 フロントとなるあるサービ…

HTTP header value の構成文字セットとは

Authorization header value に filter 処理を当てる時にどんな入力が来るのか知りたかったので調べた。 rfc2616 の sec2.2 に仕様があって field value = token token = 1*<any CHAR except CTLs or separators> CHAR = <any US-ASCII character (octets 0 - 127)> CTL = <any US-ASCII control character (octets 0 - 31) and DEL (127)> separators = "(" | ")" …</any></any></any>

Bot に UNIX 思想持ち込んでみた

UNIX コマンドみたいに、ひとつのことをやる小さなコマンドを組み合わせて、なにかできたらいいな、ということで、echo とか作ってみた。 https://github.com/taiki45/ruboty-echo https://github.com/taiki45/ruboty-delay とりあえず作ったのは echo と de…

本日のおさかな

クリックでスタート! @taiki45 http://t.co/ovtHeUKNjO— みょん (@myuon_myon) June 22, 2014 元 gif upload してもらったので、みょんさんの。 の一覧の下の方に original content がありますでし…!

Ruboty 動かした

hubot like bot frame work in Ruby こと、Ruboty を動かしてみた。 ruboty に eve のアイコンを仮で設定したら思いの外グッときたでし…! pic.twitter.com/zSkcgXW8i1— (deffish *tai*) (@taiki45) 2014, 6月 22 Slack で動かす場合は注意点が2点だけあって…

Ruby 向け非同期マルチストリーミング処理ライブラリ作った

Twitter bot に HTTP インターフェイスとか Timer 処理とかなんかいろいろそういうの付けたくて、そしたら既存の bot フレームワークの考え方だとつらそう、ということで Queue を使ったメッセージパッシング方式ならいいかんじに扱えそうじゃないかと思って…

Subdivision Category について

CWM は 圏論の基礎のこと。 @taiki45 ε( ε^o^)э CWM p.224にあるでし〜 S:Cop \prod C -> Xのendとsubdivision catでのS^$のlimitが同型なんでし〜〜〜— みょん (@myuon_myon) 2014, 2月 3 @taiki45 ε( ε^o^)э めっちょざっくり言うと、ある圏にf:b->cって射…

Haskell の newtype の使いどころ

newtype、まだつかったことないでし…— (deffish *tai*) (@taiki45) 2014, 2月 3 newtypeはその制約のおかげで構造を入れやすいから汎用的な構造つきデータを表現するのに便利 typeは型に別名を与えたいときとか型変数に「意味」をもたせたいときに便利— みょ…

Haskell と monadic IO について(続)

もっとわかりやすい文章を見つけてしまった… ァ… ァ… http://www.haskell.org/haskellwiki/IO%E5%85%A5%E9%96%80%E7%B7%A8

Haskell と monadic IO について書く

Haskell では IO を理解するのが難しい。さらにそれがモナドなので2重に???になる。最近この2つをわけて考えれるようになったので書いてみたい。(書いてみた結果、無駄文感するのでつらい) 想定する読者 Haskell を始めたばかりで基本的な文法などはわか…

Mac OS X 10.9 mavericks で Haskell 環境をうまく構築する

ghc と cabal、大変でした。ということでうまくいく方法のメモ。 まずは ghc 7.6.3 と cabal-install をなんらかの方法で入れる homebrew なり Macports なり Haskell-Platform なりで入れます。 cabal のリポジトリをクローンしてビルド https://github.com…

cabal install したいなら cabal-dev でし…!

Haskell の cabal、よく dependency-hell になってアッアッなのでし… なので cabal-dev がいいよってけっこう前からいろんな人がいってたのでし。 ということで使い方を覚えた記録でし…! git clone git://github.com/creswick/cabal-dev.git cd cabal-dev c…

最近見た Ruby のデザインパターン

最近 Capistrano, Cucumber となんかのコードを読んで思ったのが、DSL 提供する的なライブラリはConfigure が主なインスタンスになるの多いなあと。 Configure 的なクラスに、ライブラリの主な振る舞いを include して、パースしたりしたライブラリ側のオプ…

圏論1

さいきん圏論を学んでいる。主なソースは黄色い凶器と圏論勉強会の資料だ。他にも wikipedia とか読んでる。 ぼくはまったく数学に縁がなかった魚類だけど(微分も対数も高校レベルもまともに解けなかった)、圏論から数学入門するの、とてもいいと思う。 まず…

さいきんかった QOL 高めてくれたもの

さいきん買って良かったなーっておもったものたち情報です. 風量多いドライヤー あんまり値もはらず時間と手間をたんしゅくできて良い. BRITA のポット型浄水器 こちらもおやすく QOL をあげてくれる. ナツにサイコーです. ディスプレイアーム それなりの椅…