タグ

ブックマーク / blog.kyanny.me (23)

  • Stack Overflow を機械翻訳したサイト等を uBlacklist で除外する - @kyanny's blog

    以前は Google Search Filter を使っていたが、環境(Chrome のプロファイル)が変わったタイミングで拡張を入れてなかったことに気づいたので、今回はもっと強力そうな uBlacklist を入れてみた。 uBlacklist には購読(Subscription)という仕組みがある。除外対象の URL パターンを列挙したテキストファイルの URL を設定すると、定期的に変更を取り込んでくれる。自前で除外サイトリストをメンテナンスせずに済む。 StackOverflow 機械翻訳サイトのパターンを数多く掲載している GitHub - h-matsuo/uBlacklist-subscription-for-developer: uBlacklist subscription list for developers のリストを購読した。一部、StackOverflow クロ

    Stack Overflow を機械翻訳したサイト等を uBlacklist で除外する - @kyanny's blog
    wozozo
    wozozo 2021/07/28
  • ConoHa を vagrant up - @kyanny's blog

    ConoHa の API は OpenStack らしいので vagrant-openstack-provider が使えた。 gist6ce12317582b130fe4ff VM 作れるし消せるし vagrant ssh もできるが、エラーが出る(完全互換ではないのだろうか?) メモ: 事前に ConoHa のユーザー登録が必要。クレジットカードの登録も必要。このページから登録したら1000円の無料枠がついてきた。アフィリエイトリンクもどうぞご利用ください。 https://manage.conoha.jp/API/ から API ユーザーを作る必要がある。 API ユーザー名は自動発行され、自分で決められないし、変更もできない。パスワードはあとで変更可能。 API ユーザーは一つしか作れず、一度作ると削除できない。 API ユーザー名とパスワードは Vagrantfile で利用する

    ConoHa を vagrant up - @kyanny's blog
  • 渋谷.rb[:20150520] で「入門 React」を読んで思ったことを発表しました #shibuyarb - @kyanny's blog

    shibuyarb.doorkeeper.jp LT やらせてもらいました。資料は remark.js で作りました。スライドの画面クリックで進みます。GitHub Pages でも公開しています。 What I have learnt about React so far... - Shibuya.rb 20150520 雑感 説得力を増す目的でサンプルコードを書いたが、しっくりくるようにはなかなか書けなかった Flux については全然踏み込んだ話はできなかったけど少しフィードバックをもらえてよかった remark.js 使ったらスライド作るのめっちゃ楽だった。画像のサイジングとかだけちょっと工夫が必要だけどマークダウンやっぱり楽 あと GitHub Pages で気軽に公開できて更新も簡単なので発表前にスライドの URL シェアとかも気楽にできる ただしブログに貼り付けるのは ifra

    渋谷.rb[:20150520] で「入門 React」を読んで思ったことを発表しました #shibuyarb - @kyanny's blog
    wozozo
    wozozo 2015/05/21
  • get-google-oauth-token - @kyanny's blog

    Google の OAuth アクセストークンをコマンドラインから取得するスクリプトを作った。 https://github.com/kyanny/get-google-oauth-token (この Client ID は削除済みなのでもう使えません) 琴線探査: Google DriveにCURLでアップロードするには? を見てやり方を学び、スクリプトにまとめるアイデアは https://github.com/jugyo/get-twitter-oauth-token にインスパイアされた。

    get-google-oauth-token - @kyanny's blog
    wozozo
    wozozo 2014/12/03
  • livedoor Reader 終了に寄せて: Fastladder オープンソース版は GitHub で開発継続中です - @kyanny's blog

    【重要】 livedoor Reader サービス終了のお知らせ|livedoor Reader 開発日誌 livedoor Reader が 2014年12月25日(木) をもってサービスを終了します。自分でも永らく使っていたし、個人的に縁も思い入れもあるサービスなのでとても残念です。 Twitter で fastladder を検索 して眺めていると、やはりというか LDR 終了で移行先を探している方が多数いるようです。候補としてオープンソース版の Fastladder のセルフホストを検討している方もそれなりにいるようですが、 http://fastladder.org/ja/ のほうをみて「ずいぶん古そうだし、メンテナンスされてる気配もないからダメかな...」と諦めているつぶやきをみかけたので、ちょっとアナウンスを。 http://fastladder.org/ja/ のソースコー

    livedoor Reader 終了に寄せて: Fastladder オープンソース版は GitHub で開発継続中です - @kyanny's blog
    wozozo
    wozozo 2014/10/05
  • rbenv のメカニズム - @kyanny's blog

    rbenv 環境下で実行された Ruby プログラムの中から他の Ruby プログラムを起動するときに、 rbenv 環境をリセットしたい―要するに別のバージョンの Ruby で外部プログラムを実行したい―という事情があったので rbenv のメカニズムについて調べた。 rbenv 環境下で ruby コマンドを実行するとき、実際にコンパイルされた ruby バイナリが直接実行されているわけではない。 rbenv 環境をお膳立てした上で ruby バイナリを exec するラッパーのシェルスクリプトが実行される。こういうものを binstub と呼ぶ。 binstub である ruby という名前のシェルスクリプトの中身をみてみると、最終的に rbenv exec というサブコマンドを呼び出している。 rbenv のサブコマンドはリポジトリでいうと libexec ディレクトリ以下にある。

    rbenv のメカニズム - @kyanny's blog
    wozozo
    wozozo 2013/05/15
  • Jenkins に bundle update した上で Pull Request させる - @kyanny's blog

    皆さん bundle update してますか?ぼくは忙しさにかまけてついサボりがちなのですが先日何ヶ月ぶりかにやってみたらけっこういろんな gem がアップデートしててヒヤリとしました。 bundle update 忘れは今後もまたやってしまいそうだと思い、なにかこれを解決する方法がないか考えたところ、 マメにやるのは無理。余裕があればやるけど忙しくなったら忘れる。自分の意識が低くなっても破綻しない仕組みを作るべき 差分が小さくても Pull Request を出すのは悪くない。というか Pull Request は毎日全員が見るし放置されにくい bundle outdated の結果をメールするのもお手軽そうだけど、メールなんてどうせ見ない (pendaxes がいい例で、毎朝メールがきても痛くも痒くもない) ということで「Jenkins に毎週 bundle update したブラン

    Jenkins に bundle update した上で Pull Request させる - @kyanny's blog
  • コマンドラインから適当なランダム文字列を得る - @kyanny's blog

    たまに適当なランダム文字列が欲しくなることがあり、 Ruby の SecureRandom というライブラリが便利でよく使うのですが、都度 irb を起動するのもだるいのでだるくならないようにしてみました。 kyanny/securerandom-cli https://github.com/kyanny/securerandom-cli 使い方 securerandom.rb を $HOME/bin あたりに保存して PATH を通し $ ./securerandom.rb --install とすると同じディレクトリに hex とか uuid とかいう symlink がはられます。 $ hex 10 とか $ uuid とかするといい感じのランダム文字列が得られます。 SecureRandom って打ってる間に思考が止まってしまったり SecureRamdon と打ち間違えてイラッと

    コマンドラインから適当なランダム文字列を得る - @kyanny's blog
    wozozo
    wozozo 2012/10/27
  • master ブランチにマージ済みのリモートブランチをまとめて削除する git-prune-remote-branch というスクリプトを作った - @kyanny's blog

    必要になったのでそういうものを作りました。 https://github.com/kyanny/git-prune-remote-branch パスの通ったところに置いて Git のワーキングディレクトリで実行すると master と develop にすでにマージ済みのリモートブランチを全部削除します。 --noop で dry-run モードになるので実際に消す前に確認もできます。なんで master だけじゃなく develop も?というと、僕のチームで gitflow を使っているからです。 $ git clone git://github.com/kyanny/git-prune-remote-branch.git $ git-prune-remote-branch --noop $ git-prune-remote-branchgit push --mirror じゃダメなの

    master ブランチにマージ済みのリモートブランチをまとめて削除する git-prune-remote-branch というスクリプトを作った - @kyanny's blog
    wozozo
    wozozo 2012/10/18
  • tig でいま見ているコミットをブラウザで開く - @kyanny's blog

    tig で Git リポジトリのログを読んでるときに「このコミットのページをブラウザで見たい!でもコピペするのは面倒だ!」と思ったので o 押したら開くようにした。 tig のキーバインドは .tigrc というファイルでカスタマイズできる。外部コマンドの呼び出しができるし、いまみている commit の SHA1 を渡せるので、こんな感じで hub コマンドを呼び出せる。 だいぶ楽なのでおすすめです。

    tig でいま見ているコミットをブラウザで開く - @kyanny's blog
    wozozo
    wozozo 2012/07/22
  • おれがはてなブログPro初日に1年コースを契約した理由 - @kyanny's blog

    http://b.hatena.ne.jp/entry/staff.hatenablog.com/entry/2012/02/13/172342 はてなブログProに対して「高い」とか「競合に比べて機能が少なすぎる」とか「腕に覚えがあるエンジニアならさくらのVPSで全部自力で作れてしまう」とか、肯定的ではないコメントが散見されるので、初日にProにした俺ががなぜ1年分8200円を払う気になったのか書いてみる。 高い? 当に?他が不当に安すぎるのでは?これは正直いって職業柄ふつうの人に比べて金銭感覚が狂ってる自覚はある。けどあえて書くと、ウェブサービスの価格は安すぎる。BtoCなウェブサービス運営の仕事に就いたことがある人ならば同意してもらえると思う。フリーミアムとか無理だから。はてなブログはリリース当初から記事下にアドセンスをでかでかと貼っていて評判が悪かったけど、広告モデルは規模が全て

    おれがはてなブログPro初日に1年コースを契約した理由 - @kyanny's blog
  • resque の哲学 - @kyanny's blog

    resque の README と Introducing Resque - GitHub を読んだ。後者は GibHub における非同期処理の歴史を紐解いたうえで「なぜ resque なのか」に触れられていて、読み応えがあった。 彼らが必要とした非同期処理システムの要件はいろいろ挙げられているが、その背景に「管理・運用を楽にしたい」という思惑を感じた。キューの「タグづけ」や優先度はシステムの全容を把握しやすくするためだろうし、処理の統計を見るために専用のウェブアプリケーションを内包するほどだし、「刺さった」ワーカーを kill -9 できたり、失敗するジョブを繰り返さないことや失敗したジョブを破棄しないことは不具合が発生したときリカバリ・調査する手間を減らすための実際的な要求からきたものだろう。 上記のような要件定義をした上で、それを満たせる既存のミドルウェアとして Redis を採用し

    resque の哲学 - @kyanny's blog
    wozozo
    wozozo 2012/01/14
  • Backbone.Events (2) - @kyanny's blog

    社内の有志でやっている JavaScript 勉強会があり、それのお題で Backbone.js のソースコードを読み始めた。 http://documentcloud.github.com/backbone/docs/backbone.html 今日は頭から読んで Backbone.Events を終えて Backbone.Model の has まで。 Backbone.Events の trigger を読むのに時間がかかった。 trigger : function(eventName) { var list, calls, ev, callback, args; var both = 2; if (!(calls = this._callbacks)) return this; while (both--) { ev = both ? eventName : 'all'; if (

    Backbone.Events (2) - @kyanny's blog
  • Backbone Demo: Todos の処理の流れを追う - @kyanny's blog

    Backbone Demo: Todos これ前に読んだは読んだけどどうやって動いてるのかわかんないので体とあわせて追った。目スタックトレース、と書いてスクリプトデバッガ使えばよかったと気づいた。 annotated source code は github レポジトリにあるものと微妙にちがっていて当てにならない。あと localStorage から読み出すあたりは別の .js ファイルに書いてあるのでそっちも読まないとわからない部分もある。とりあえず AppView の render() が呼び出されるまでの流れ。 window.App = new AppView; todos.js#L231 Backbone.View = function(options) { backbone.js#L870 this.initialize.apply(this, arguments); back

    Backbone Demo: Todos の処理の流れを追う - @kyanny's blog
  • Backbone.Model - @kyanny's blog

    Backbone.Model を読んだ。ざっと眺めただけ。 http://documentcloud.github.com/backbone/docs/backbone.html initialize にデフォルトで何もしない関数を割り当てておくことで呼び出し時に isFunction とかでチェックしなくて済むワザ escape の内容は初回呼び出し時にキャッシュ set は呼び出し時に元の値をとっておいて値が同一でないもの(更新されるべき)だけ更新している。このチェックは変化した属性に対する change:xxx イベントの発火のために必要 unset でもバリデーションが走るのは何故だろう。 void 0 は undefined というグローバル変数の値にかかわらず常に undefined を返すんだっけか。 validObj に undefined をセットしてバリデーションを実行

    Backbone.Model - @kyanny's blog
  • Backbone.Collection - @kyanny's blog

    Backbone.Collection を読んだ。ざっと眺めただけ。 http://documentcloud.github.com/backbone/docs/backbone.html toJSON が単に models それぞれの toJSON を map で呼んでるだけ、というのはきれい add のなかで for を使ってるけど _.each とかではダメなんだろうか、 remove も同様 get と getByCid も同じロジックでよさそうなものなのに実装が違うのがなんか気になる sort は comparator がないと例外を投げるようだけどデフォルトではなにも設定されないんだろうか https://github.com/rails/rails/commit/a382d60f6abc94b6a965525872f858e48abc00de これみて pluck ってなんじ

    Backbone.Collection - @kyanny's blog
  • Backbone.Router - @kyanny's blog

    Backbone.Router を読んだ。ざっと眺めただけ。 http://documentcloud.github.com/backbone/docs/backbone.html そもそも Router とはなんぞや?というと、クライアントサイドでもサーバサイド同様に URL でもって処理変えましょうね、という。 History API が使えれば pushState を使い、でなければ hash fragment を使う。そこのところを透過的に扱える機能を提供、ということ。 route : function(route, name, callback) { Backbone.history || (Backbone.history = new Backbone.History); if (!_.isRegExp(route)) route = this._routeToRegExp(r

    Backbone.Router - @kyanny's blog
  • 新はてブ - @kyanny's blog

    ベータテストの招待をもらったので少し使ってみたので、妄想まじりの感想を。 UI はパッと見で Facebook みたいだな、と思った。要素の配置も似ているし、ニュースフィードというかタイムラインというか、そういうものを意識しているのかなと。 Facebook はサイトとしてはあんまり好きじゃないけど、はてブのは不思議と悪い印象はなかった。 サインアップのプロセスを丁寧に作ってあるなと思った。 Facebook 連携をしたらちゃんと元のページに戻るとか、当たり前なんだけど、仕事柄その当たり前をちゃんとやるのが簡単なわけではないことも知っているので。あとインタレストワードが良い。 Quora とか Quiita でもサインアップ時に興味のあるものを選ばせるステップがあるけど、そういうのをちゃんとおさえているあたりも、滞在時間を奪い合うという広い意味での競合をしっかり研究してきていると感じた。

    新はてブ - @kyanny's blog
  • tmux でもマウスホイールでスクロールバックしたい - @kyanny's blog

    GNU Screen から tmux に鞍替えしたら Mac で GNU screen を使う時にやるべきたった一行の設定 - #生存戦略 、それは - subtech 相当のことができなくなったのでぐぐっていろいろ試したらできるようになったけどよくわからん、という話。 Run tmux with mouse support in Mac OS X Terminal.app | floriancrouzat.net に書いてある通りにする。抜粋すると、 1. ~/.tmux.conf に以下の行を追記 set-window-option -g mode-mouse onこんだけ?当に? tmux 1.3 以上じゃないとダメらしい。ソースから入れるが吉。 こんな設定例もあったけど、役に立ってるのかどうかさっぱりわからない。 set -g terminal-overrides 'xterm*

    tmux でもマウスホイールでスクロールバックしたい - @kyanny's blog
    wozozo
    wozozo 2011/04/26
  • ssh-agent の使い方メモ - @kyanny's blog

    # .bash_profile exec ssh-agent $SHELL source ~/.bashrc# .bashrc ssh-add なんで exec してるのかについてはココ ログアウト時に ssh-agent プロセスを消す方法

    ssh-agent の使い方メモ - @kyanny's blog
    wozozo
    wozozo 2010/12/07