タグ

ブックマーク / kasei-san.hatenadiary.org (27)

  • VimScriptざっくりチュートリアル(バッファ編集編) - かせいさんとこ

    やっとこさ、エディタのスクリプトらしい話 行操作 行取得 echo getline('.') |" カレントバッファのカレント行を取得 echo getline(4) |" カレントバッファの4行目を取得 echo getline(4,8) |" カレントバッファの4〜8行目をリストで取得 echo getline(0,'$') |" 先頭〜行末まで取得 行更新 call setline('.', 'abc') |" カレントバッファのカレント行を 'abc' に変更 call setline(4, 'abc') |" カレントバッファの4行目を 'abc' に変更 call setline('.', ['abc', 'def']) |" カレントバッファの4〜5行目を配列の内容に変更 行追加 call append('.', 'abc') |" カレントバッファの下行に、'abc' を追

    VimScriptざっくりチュートリアル(バッファ編集編) - かせいさんとこ
    yuiseki
    yuiseki 2013/07/14
  • VimScriptざっくりチュートリアル(初回編) - かせいさんとこ

    10年近く Vim 使ってきていまだに習得していないのでそろそろ 目的とゴール Vimのプラグインを書けるようになりたい! ターゲット 数年vim使ってて、プラグイン入れたり、.vimrc いじったりしてるけど、 VimScriptについては敬遠してる人 VimScriptって何? Vimの設定を記述する為の独自言語 実態はExコマンドの羅列で、 if 等の制御構文も全てがExコマンド 何が出来るの? Exコマンドでできること全部。引いては Vim でできること、設定できること全部 テキストの編集 各種設定の変更 etc... 詳しくは以下 :help ex-cmd-index ざっくり言えば、vimの機能拡張や、テキストの編集が出来るよ! で良いのかな? Exコマンドって何? Vimのコマンドラインモードで実行できるコマンド群のこと Vim起動して、 押して、以下のように入力すれば実行で

    VimScriptざっくりチュートリアル(初回編) - かせいさんとこ
    yuiseki
    yuiseki 2013/07/10
  • VimScriptざっくりチュートリアル(データ型) - かせいさんとこ

    まずはここを読む help eval データ型の確認方法 let test = 1 echo type(test) 以下の6種類が数値で返ってくる 数値 : 0 文字列 : 1 Funcref : 2 (関数リファレンス) リスト : 3 辞書 : 4 浮動小数点数 : 5 数値型 32bit or 64bit の符号付き整数 32bit なら、−2147483648 〜 2147483647 " 16進 echo 0x10 " 10進 echo 16 " 8進 echo 020" サイズ越えの場合 -1 を返す echo 999999999999999999999999999999999999999999999999 数値演算 " 四則演算 echo (1+1)-1*10/10 " 余り echo 100%3 " 整数型の割り算は整数型を返す echo 10/3 "| -> 3 " 0

    VimScriptざっくりチュートリアル(データ型) - かせいさんとこ
    yuiseki
    yuiseki 2013/07/10
  • VimScriptざっくりチュートリアル(if文と真偽値編) - かせいさんとこ

    if 文 if test == 1 echo 'true' else ehco 'false' endif 比較演算子 ==, !=, >, <, >=, <=, =~, !~ ignorecase に依存 ignorecase は文字列比較時に大文字/小文字を考慮しなくするオプション is: 同一のインスタンス isnot: 異なるインスタンス ==#, !=#, =~#, !~# ignorecase に関わらず大文字/小文字考慮 ==?, !=?, =~?, !~? ignorecase に関わらず大文字/小文字無視 後、! で論理否定ができる and, or && と || 真偽値について 真偽値型は無くて、数値の 0 とそれ以外で真偽を判定する 0 : 偽 0以外 : 真 文字列を真偽値に使った場合、数値以外であった場合は、0 に変換される "0" : 偽 "" : 偽 "999

    VimScriptざっくりチュートリアル(if文と真偽値編) - かせいさんとこ
    yuiseki
    yuiseki 2013/07/10
  • VimScriptざっくりチュートリアル(関数編) - かせいさんとこ

    関数宣言 :function Func(flg) " グローバルスコープの場合、関数名はアルファベットの大文字で始まる : if a:flg " 引数の参照は、a:引数名 : echo "true" : else : return "false" |" 戻り値を返したい場合、return コマンドを使う : endif :endfunction 関数の呼び出し :call Func(0) " call コマンドは、渡された関数を実行するコマンド。この場合、false が返る :let test = Func(1) " 戻り値を変数に格納したい場合 :echo Func(1) " 戻り値をそのまま echo したい場合 関数の再定義 .vimrc に関数を定義した後で、:source .vimrc とかして、一度定義した関数が再定義されるとエラーになる function! で、関数の再定義が

    VimScriptざっくりチュートリアル(関数編) - かせいさんとこ
    yuiseki
    yuiseki 2013/07/10
  • node.jsデプロイQ&A - かせいさんとこ

    実践に当たって軽く調査。実践編はまた今度 nodeで書いたwebサーバを公開したいけど、デプロイってみんなどうしてるの? forever っていうデーモン化ツールがあるから、それを使うのが一般的っぽい node.js node.jsスクリプトをforeverでデーモン化する -でじうぃき nodeアプリって通常はシングルスレッドだから、マルチコアのCPUパワーを100%生かせない? Clusterモジュールを使えば、複数のプロセスの起動と、通信をサポートしてくれる Cluster Node.js v0.10.0 Manual & Documentation 複数マシンでスケールしたいんだけど node-http-proxyってnpmがあるから、それを使うとnode.jsで、リバースプロキシと、ロードバランサーが実装できる nodejitsu/node-http-proxy · GitHub

    node.jsデプロイQ&A - かせいさんとこ
  • node.js覚書 - かせいさんとこ

    いろいろ調べたのでメモする node.js ってなあに? JavaScriptを用いた Non-blocking I/O な環境 Non-blocking I/O? CPUと他の入出力装置(I/O)において、データの送受信を待たずに、次の処理に移行する方式のこと。 逆に、入出力が完了するまで待つことを「ブロッキング」と呼ぶ 例えば、こんなのがブロッキング require 'open-uri' p "1: #{Time.now}" open("http://www.ruby-lang.org/") {|f| p "2: #{Time.now}" } p "3: #{Time.now}" # output "1: 2013-03-10 11:58:16 +0900" "2: 2013-03-10 11:58:19 +0900" "3: 2013-03-10 11:58:19 +0900" 上記

    node.js覚書 - かせいさんとこ
    yuiseki
    yuiseki 2013/03/10
  • カニ本読書メモ 1章:テストでコードを駆動する - かせいさんとこ

    Rubyベストプラクティス -プロフェッショナルによるコードとテクニック 作者: Gregory Brown,高橋征義,笹井崇司出版社/メーカー: オライリージャパン発売日: 2010/03/26メディア: 大型購入: 9人 クリック: 307回この商品を含むブログ (47件) を見る でかいテストを書いてからとかやるより、小さいステップからイテレーティブにやってくとハッピーだよ sanity(正気) check SAN値チェック!? あからさまな不整合がないか手早く確認していくこと サニティー・チェックの直訳は「正気確認」?──IT業界のカタカナ用語はくせ者ばかり:ITpro コードの正しさは書いたテストの正しさと同じ程度にしかならない テスト中にプライベートメソッドをsendで頻繁に呼び出す必要があったらリファクタリングのサイン モジュールにするとか 内部でしか使わないメソッドは隠蔽

    カニ本読書メモ 1章:テストでコードを駆動する - かせいさんとこ
    yuiseki
    yuiseki 2013/03/06
  • カニ本読書メモ 2章:美しいAPIを実装する - かせいさんとこ

    コードの共通化する時のコツの学べるはないか? と、相談した時にお勧めされたので読んでみました Rubyベストプラクティス -プロフェッショナルによるコードとテクニック 作者: Gregory Brown,高橋征義,笹井崇司出版社/メーカー: オライリージャパン発売日: 2010/03/26メディア: 大型購入: 9人 クリック: 307回この商品を含むブログ (47件) を見る の目的 熟練したRubistたちが当たり前と考えている、プラクティスやイディオムを明らかにすることで Rubyという言語の根的な理解を高めること 2章 美しいAPIを設計する メソッドにおける順序付き引数の数は最小限にする メソッドにデフォルト値を持つパラメータが複数あるなら、optionsハッシュによる擬似キーワード引数の利用を検討する 同時に複数の引数処理を扱う必要がある場合、splat(*) 演算子を

    カニ本読書メモ 2章:美しいAPIを実装する - かせいさんとこ
  • jsのプロトタイプについてまとめてみた - かせいさんとこ

    なんか理解がぼんやりしていたのでまとめてみました JavaScriptはプロトタイプベースっていうけど、それって何? プロトタイプベースとは、全てのオブジェクトは他のオブジェクトのクローンを派生させたものという設計のオブジェクト指向。派生元をプロトタイプという プロトタイプベースでは、自身が定義していない要素にアクセスした場合、プロトタイプをたどって要素を探しに行く。これをプロトタイプチェーンと言う プロトタイプベース - Wikipedia Javaみたいなクラスベースとの違いは? クラスベースでは、全てのオブジェクトは静的なクラスから生成される。 その為ちょっとしたクラスの派生を作りたい場合にも、クラス新たに定義する必要があるし、また基的には動的にクラスを定義できない プロトタイプベースでは、オブジェクトに要素を自由に追加出来るので、柔軟なのが利点 JavaScriptではどうやって

    jsのプロトタイプについてまとめてみた - かせいさんとこ
  • 公開鍵暗号について理解が足りていなかったのでメモ - かせいさんとこ

    これは何? github にコミットする時とか、heroku にデプロイする時とか、 認証に公開鍵使うけど、いまいちちゃんと理解していないのでまとめた 目次 暗号化の方法 共通鍵暗号 公開鍵暗号 HTTPS TLS/SSL 公開鍵証明書 SSH 公開鍵認証 具体的な手順 暗号化の方法 共通鍵暗号 送信者と受信者が共通の秘密鍵を持って、暗号化と複合を行う たとえばこんな感じ 平文 : 1234 秘密鍵 : 5678 暗号化 : 1234 x 5678 暗号文 : 7006652 復号化 : 7006652 / 5678 送信者側は、平文を、秘密鍵で暗号化して、暗号文を受信者に送る 受信者は、暗号文を、秘密鍵で復号化して、平文を得る 共通鍵暗号の弱点 最初に鍵を受信者に渡す必要があるが、その時に盗聴されるリスクがある 渡す時暗号化すれば良いけど、その暗号化の鍵を... となる 多人数で秘密の通

    公開鍵暗号について理解が足りていなかったのでメモ - かせいさんとこ
    yuiseki
    yuiseki 2012/03/29
  • ubuntuマシンにwine経由でevernoteクライアントを入れた - かせいさんとこ

    これは何? 先日購入した、DELL INSPIRON Mini12に、オフラインでのweb閲覧用にevernoteクライアントを導入した際のメモ書きです wineの導入〜evernoteのインストール ここまでは、以下のサイトの情報を元にすんなり導入成功 ubuntu で Evernote « happy unbirthday 文字化け! んで、クライアントを立ち上げるとフォントが汚い! & 日語がすべて白い四角で表示されてる! いろいろ調べてみたら、wineの設定で、使用するフォントを設定できるらしいので、ここで日語が使えるフォントをちくちくと設定 Wine -> Conifger Wine -> Desktop Integration -> Item から、各windowの要素のフォントを設定 デフォルトでは、一番先頭のフォント(AlArabiya)なので、これを任意のフォントに変

    ubuntuマシンにwine経由でevernoteクライアントを入れた - かせいさんとこ
    yuiseki
    yuiseki 2012/02/04
  • Heroku対抗馬のPaaSをちょっと調べてみた - かせいさんとこ

    PaaS って? PaaS(Platform as a service) ソフトウェアを開発・実行するプラットフォームをネットワークサービスとして提供するソフトウェア・デリバリモデルのこと Heroku じゃいかんの? 4/21 以降大規模なのはないけど、8月に入ってから、ちょっと不安定 2011/04/21 AWS起因による大規模障害(16〜60Hのダウンタイム) 上流インフラの障害が原因だが、Heroku側は100%自分達の責任として対応を準備すると発表 AWSの障害に起因したHerokuの障害について、Herokuによるレポートが公開されたので要点を翻訳しました(全訳ではありません)。- Sooey http://journal.sooey.com/130 2011/08/09 AWS起因による障害(40分程度) 日のインターネット大障害。Amazon EC2のパンクによりFour

    Heroku対抗馬のPaaSをちょっと調べてみた - かせいさんとこ
    yuiseki
    yuiseki 2011/09/04
  • DropBoxを使って、複数OS間でvimの環境を共有する方法 - かせいさんとこ

    これは何? Linuxを主環境として、複数OS間でvimの設定を共有する為のメモです 環境詳細 現在以下の環境で動作を確認しています -Ubuntu 8.x -Windows XP SP2 -Mac OS X Snow Leopard そのうちMAC OS Xも対応したいです DropBox まずは、DropBoxに以下のファイル、ディレクトリを用意します ~/DropBox/dotfile/.vimrc ~/DropBox/dotfile/.vim/ .vimrcの設定 .vimの中身を複数マシンで共有するため、共有されたら困るものをローカルに出します 具体的にはこの辺の設定を変更します "swapファイルをまとめて置く場所(DropBox対策) set swapfile set directory=~/.vimswap "backupファイルをまとめて置く場所(DropBox対策) s

    DropBoxを使って、複数OS間でvimの環境を共有する方法 - かせいさんとこ
    yuiseki
    yuiseki 2009/06/11
  • vimで最強のgreasemonkey開発環境を作ってみた - かせいさんとこ

    タイトルは釣りですが、実際にグリモンの開発効率が気持ち悪いくらいに上がりました 2009/06/02追記 動画upしました 初めてなのでいろいろ適当ですが、ご容赦を これは何? vimの環境設定の勉強がてら、greasemonkeyの開発環境を作ってみました 環境は、Ubuntu8.0.4です できることは以下の通り コード補完 スニペットに対応 user.jsで新規ファイルを作ると、テンプレートを自動に作ってくれる コマンド一発で、firefoxにグリモンをインストール 保存時に自動的にfirefoxの今開いてるページを再読み込み まずは、vimrcと入れたプラグイン .vimrc 上記の設定とかをまとめた.vimrcは以下の通りです set encoding=utf-8 set nu syntax on "新しい行のインデントを現在行と同じにする set autoindent "インク

    vimで最強のgreasemonkey開発環境を作ってみた - かせいさんとこ
    yuiseki
    yuiseki 2009/06/01
  • 自作greasemonkeyのテンプレートを公開 - かせいさんとこ

    これは何? 自作のgreasemonkeyを作る際のテンプレートです 複数マシンで開発してるので、どっからでも見れるようにここにUPしました ライセンスはNYSLでご自由にどうぞ // ==UserScript== // @name // @namespace http://d.hatena.ne.jp/kasei_san/ // @description // @include // @exclude // ==/UserScript== // /* LICENSE : NYSL ( http://www.kmonos.net/nysl/NYSL.TXT ) */ (function() { // Greasemonkey Manual:API // http://wiki.greasespot.net/API_reference //--------------------------

    自作greasemonkeyのテンプレートを公開 - かせいさんとこ
    yuiseki
    yuiseki 2009/05/31
  • 千原ジュニアのシャインになりたい shi3zさん登場会ざっくりまとめ - かせいさんとこ

    これは何? 川瀬良子 千原ジュニアのシャインになりたいのKeep Crazy;shi3zの日記の清水亮さん登場会のまとめです 見れた分だけざっくり書いたら、意外とブクマ頂いたのと、id:otuneさんに動画のリンクを教えていただいたので(感謝!)、もうちょっとちゃんとまとめなおしました 略歴と、天才プログラマーの解説 省略 ユビキタスについて どこにでもある メインフレーム(1:多)→パーソナルコンピューティング(1:1)→ユビキタス(多:1) 広まるとどうなるか?→PCが見えなくなる→携帯すら不要→視覚や脳にビビッと来てお知らせ 後10年もすれば来ると思う かせいさん注:blogに書いてたよね しかしいずれにせよ、最終段階としては文字すら読む必要がなくなる。 歩いていると、なんとなく「ピン」と来る。 「あ、あの店良さそうだな」 という、インスピレーションが直接携帯端末から送り込まれるよう

    千原ジュニアのシャインになりたい shi3zさん登場会ざっくりまとめ - かせいさんとこ
    yuiseki
    yuiseki 2009/03/09
  • ニコニコ動画のデイリーランキングをblogに自動投稿するBot NicoNicoDailyReportを作った - かせいさんとこ

    NicoNicoDailyReport http://niconicodailyreport.blog81.fc2.com/ これは何? ニコニコ動画のデイリー総合再生ランキングを収集して、自動生成されるblogです 1位〜10位までの動画と、毎時ランキング収集Bot(ニコニコ動画の毎時ランキングをつぶやくtwitterBotを作った)のデータを元に、 下のようなランキングの推移を表示します 直接ニコニコのデイリーランクを見るよりも有利な点 RSSで見る事ができる FC2Blogですがランキング推移の画像は、Tumblrにupしているので、RSSからも見れます 動画を埋めこんでいるので、1クリック早い 毎時ランキングの推移が見れる 過去ログが見れる アフリおいしいです その他 ランキング推移をupしているTumblrはこちら http://niconicodailylanking.tumb

    ニコニコ動画のデイリーランキングをblogに自動投稿するBot NicoNicoDailyReportを作った - かせいさんとこ
    yuiseki
    yuiseki 2009/02/23
  • ニコニコ動画の毎時ランキングをつぶやくtwitterBotを作った - かせいさんとこ

    NicoHourlyRank http://twitter.com/NicoHourlyRank これは何? twitterBotの習作に、ニコニコ動画の毎時ランキングをつぶやくBotを作ってみました 毎時15分あたりに更新します 経緯 更新頻度が高いけど、毎回チェックしたり、RSS取ったりする程ではないモノに対して、twitterBotは有効かと思って制作 技術メモ scRUBYt! rubyスクレイピングするライブラリ 詳細はこちらを参照→scRUBYt!をさくらのサーバに導入しようとしたら死ぬほど面倒くさい目に合ったでござるの巻 twitter rubytwitterにアクセスするライブラリ 導入に少々苦戦 まず、httpartyが無いと怒られる require 'twitter' LoadError: no such file to load -- httparty from

    ニコニコ動画の毎時ランキングをつぶやくtwitterBotを作った - かせいさんとこ
    yuiseki
    yuiseki 2009/02/12
  • 世界のニュースをgoogleMapで表示。WorldNewsを作りました - かせいさんとこ

    worldNews http://kasei-san.sakura.ne.jp/rabo/worldNews/ (Opera or Firefox推奨 IE7だと、やたら重いです…) これは何? googleMapAPIの習作で作ったニュース表示サービスです CNN.jpのワールドニュースから1日1回情報を取ってきて、それを元に、googleMapに表示します 暇つぶしに眺めると地味に楽しいです どうやったか 1日1回、サーバ側で、Web::Scraperを使って、URL、タイトル、文、写真のURLを取得してます それから、Yahoo!形態素解析APIを使って、文から地名情報を取得してます んで、取得した全ての地名に対して、googleMapのジオコーディングのAPIを使って、座標と、国名を取得して、 一番書かれている国名を見つけて、さらに、その国名の都市の地名がでている場合、 その中

    世界のニュースをgoogleMapで表示。WorldNewsを作りました - かせいさんとこ
    yuiseki
    yuiseki 2009/02/06