タグ

ブックマーク / aligach.net (12)

  • 今さらYARD + Solargraphで快適Rubyコーディング

    世は Ruby 3.x で RBS わっしょい時代ですが、あえて今 YARD と Solargrpah の話。 目的Ruby の開発でも JavaScript 並とは言わないまでもある程度カジュアルにエディタ / IDE の補完を利用し、TypeScript 並とは言わないまでも静的型の恩恵に与った、フィードバックが早くて安心感のある開発を行いたい。 結論YARD + Solargraph ( + LSP ) でそれなりに快適になるのですぐやるべき。 案Ruby で静的な型チェックを行う方法はいくつかあるが、今回は以下の二つを試した。 RBS + SteepYARD + Solargraph今回は RBI + Sorbet は試していない。これは以前(だいぶ前)試した1 時に native extension の挙動が変だった記憶があってちょっと苦手意識があるのと、RBI か RBS かで

    aki77
    aki77 2022/09/04
  • vagrant + chef-solo provisioningが初めて動くまで

    あるいは Kanazawa.rb meetup #9 は「意識高いもくもく会」です。 はい、まぁ最近じゃ今さらの話ですね。 VagrantChef | OpscodeChef って興味あったんですよというか正確には Puppet に興味があって、でも大げさだなと思ってたんですよね。あと当時は Puppet は外部DSLだったので、「Rubyの文法でもなんでもない設定って、どうやってエディタでハイライトするの?」というのが最大の心理的ハードルでした。 で、時は流れて Software Design の Chef 特集を読んでやる気になったけど、家のリファレンスと格闘しているうちに仕組みの大掛かり感が増長されて挫折。その後ビッグウェーブに乗って達人出版会で買った『入門Chef Solo』を読み、そこでようやく 「サーバの状態を管理し収束させるためのフレームワーク」 という表現がグサッと刺さっ

  • ノーフレームワークのレガシーPHPがCIに乗るまで

    ついに仕事で触っている PHP のコードがほんの一部のテストとは言え CI に乗った。 正直これは感動ものだ。 今回はここに至るまでの長大な物語をダイジェストでお届けしようと思う。 有史以前PHP 3 で作られた 1 URI : 1 スクリプト + 共通関数 時代 当然のように PHPHTMLSQL 混在まともなテスト環境がなかったので似た環境をどうにか作るパスとか絶対で埋め込みまくりなのでとりあえず共通のパス情報の変数に差し替えまくりテスト環境用のコードと番環境用のコードが違うオール目視 つらかった。 みなさんの予想通りバージョン管理なんてものは存在しなかった。 素朴なPHPを徐々にclassにclass になれば phpdoc を書きやすくなるいきなり実行しないようにすればテストしやすくなる これは後から気づいたんだけど、結局フロントはロクに自動テストできてない一時期 p

    aki77
    aki77 2012/04/16
  • Linuxのxargsには–no-run-if-empty付けとけ

    みたいなのがあったとして、これが時々エラー吐く、みたいなことがあったんですわ。あー xargs の呼び出すコマンド(例えば rm )に入力がないときにエラー出るんかー、変なのーって思いながら、ちょこちょこそれを忘れては引っかかり、をくり返していたんです。 なんでか今日分かりました。BSD の xargs を使った場合はそういうエラー出ないのです。だからすぐ忘れる。 GNU のバカーと思ったりしたのですが、man の恐ろしい量のオプションを読んでいたら なんて文字が! なんてこった。というわけで実際のスクリプトの一部はこんな感じにしてみた。 BSD のクセに gnu findutils 使ってるとか cygwin 使ってるやつのことなんか知らない。 [2011-11-09 追記] 最近の BSD xargs には -r というオプションがあって、これが findutils の xargs の

  • LiveReloadが超気持ちいい2011

    ※ もはや2011言いたいだけ。 ブラウザのリロード自動化2011秋の流れで LiveReload のご紹介。動作イメージとしては家の screencast が分かりやすい。 LiveReload Screencast « Envy Labs エディタで編集した HTML(View) や CSS などがほぼ即座にブラウザの方に反映されている。待ち時間がなさすぎて何が起きたか一瞬分からないこともあるくらい。もちろんアプリの切り替えなどの手作業は一切なし。少々の編集ならまだしも、細かい調整のフェーズや多くの画面を一度に確認したい場合などに絶大な効果を発揮する。 まとめWeb の開発、制作者は少なくとも Safari, Chrome, Firefox のいずれかは使っていると思う。これらのブラウザを使っているならぜひオススメ。毎回の reload から完全に解放されるのはちょっと想像以上にイン

    aki77
    aki77 2011/09/27
  • JavaScript Url DispatcherとかRouterについて調べた

    あるいは kanazawa.js v1.0.1 勉強会 : ATND に参加してきた。(前回と同じパターンの使い回し) なぜdispatcher(あるいは router)か実はピンときてなかったけど、なんかこういう手法があるっぽいということだけ知ってた。 pixiv Tech MeetingでpixivのJSの話をしました から辿れるスライドを見てなるほどなと思った。自分がいちばんなるほどと思ったのは WAFの不自由さ というか layout ファイルの <script> を可変にできるように仕組み用意していちいちそこに何か文字送ったりするのってめんどくさいよねというか、要するに script loading も DRY に ってことじゃないかな。もっかい整理すると layout ファイルで JavaScript のライブラリの読み込みは共通にできるでも layout ファイルの中に手を出

  • ふと思い立ってPHPのmicro frameworkをちらっと見てみた(結論ナシ)

    最近 Sinatra をベースに、みたいなのが増えてるっぽいのでこういうのは PHP ではどんな感じなんじゃろなぁというのが気になって調べてみた。 有名なのは Limonade - PHP micro-frameworkGluePHP - aboutzeroflux.orgTekuna.org – MVC Microframework for PHP辺りなのかな? で、ざっとコードを見てみたけど、 Glue, phatso はさすがにシンプルすぎTekuna は XML の定義とかあったりどこが micro なのか理解できないバランス的には Limonade っぽいけどこいつはグローバルな関数と定数でゴリゴリ プロダクトコードの見た目は確かに micro な感じなんだけど、ツクリ的にはまったく Sinatra inspired でもなんでもないって感じで、例によってガッカリした感じ。 Li

  • 文字コード混在環境で正しく lgrep する

    2年前のEmacs の M-x grep をマルチエンコーディングにで文字コードの混ざった環境でも日語で検索できるようになって便利って話をしたんだけど、実はこれ、手元の環境では emacs -nw でしかちゃんと動いてなかった。 普段 Emacs を Emacs らしく使う際のほとんどの時間は -nw で使っているんだけど、ViewSourceWith や It's All Text を使って Firefox や Thunderbird から、あるいは日語の文字幅の問題から直接 CarbonEmacs を window で使うこともある。数ヶ月前に初めて気づいたんだけど、以前の設定で lgrep を呼び出すと日語検索で余計なものが引っかかったり、必要なものが引っかからなかったりしてまったく使いものになっていなかった。 twitter で何度もつぶやいてたりあれこれ検索していたんだけど

    aki77
    aki77 2011/01/22
  • screen の multiuser mode を1台のマシン上で1人で実験する

    前にも一度だけやってみたことはあったんだけど、そのときは「おぉすげぇ」と思っただけで使いたいとは思わなかった。今回は真面目に使いたいと思ったのでメモ。 まず、screen の multiuser mode はユーザーが1人だけでも利用できるため、ちょっと混乱する。先に言っておくが、ユーザーが自分1人の場合は screen -x は multiuser mode でなくても成功する のでこの結果では判断しちゃいけない。ただ、何かの拍子に機械を変わる必要があり、いちいち detach しなくても作業を続けられるというメリットはあるのでこの使い方自体を否定する気はない。しかしあくまで multiuser じゃないのでそこんとこよろしく。 で、multiuser mode の実験になるわけだが、必要な作業は以下の通り。 screen バイナリに setuid root ( man chmod )別

    aki77
    aki77 2009/04/27
  • php-shell が便利すぎてヤバい件

    PHP には php -a というインタラクティブモードが一応あるんだけど、これがビックリするくらい使えない。いちばんビックリなのは readline モジュールを読み込んでいないと <?php ?> を省略できない ってこと。何それ? PHP を書くよって最初に明示してるのに <?php を省略できないとは。 これにビックリしてインタラクティブシェルを探してみたら、いくつか見つかった。中でもこれはすごい。 ~jk php shell PHP 5 以降pear コマンドでインストールでき、irb のように実行ファイルとしてインストールされるビルド時の –with-readline ではなく、readline.so を追加する形で利用できるつまり補完が効く関数の使い方をその場で調べられるどうです。なかなかすごいっしょ。 例えばこんな風に使える。 $ php-shell.sh PHP-Shel

  • Capistrano は思ったよりシンプルで思ったよりすごい - あーありがち (2008-12-18)

    システム管理者のみなさん、こんにちは。今日は Rails アプリの deploy ツールとして有名な(らしい)Capistrano についてです。紹介? いえいえ。紹介はすでに有名な人たちによってなされています。ワタシがしたいのは検討。こいつはどこにどのように使えそうか。 Capistrano: Home システム管理の話なのになんで Puppet じゃないの?と思うかもしれません。それは、以前 Puppet の OSX 対応があまりよくなかったことと、また自分の環境が PPC Mac だったため、仮想マシンを使って他の OS を動かすのも現実的でなく、面倒になってしまっていたからです。 で、巡り巡って Capistrano って実は deploy 以外にも結構使えそうじゃない?と思えましたよというお話。想定しているバージョンは Capistrano 2.5.3 です。 なお、例によって嘘

  • Trac に PeerReviewPlugin を入れてみた

    先日、ようやくアジャイルプラクティス読了 で コミットされる前のコードをどうやってレビューするの?という初歩的な話。だってコミットされていないコードは基的に開発者のローカルの環境にあるわけでしょ? と書いていたけど、そう言えば reviewboard なんてものがあったなぁと思い出して動かすことを試みた。しかし monospace blog オンラインソースコードレビューツールのReviewBoardをインストールしてみた にしたがって Debian etch で作業してみたがあえなく失敗。(Python Image Library が入らなかった。Django も経験ないし。) 気分を替えて Trac に PeerReviewPlugin - Trac Hacks - Plugins Macros etc. - Trac をインストール。こっちは Trac の plugin 特有のクセ

    aki77
    aki77 2008/12/14
    コードレビュー
  • 1