タグ

ブックマーク / motemen.hatenablog.com (18)

  • Makefileの代わりにnpm scripts+zxを使う - 詩と創作・思索のひろば

    そこそこの規模があるプロジェクトで実行すべきタスクを定義するとき、初手として Makefile を使いがち。 Pros make は事実上どんな環境にもあることを期待してよい シェルで実行されるコマンドをそのまま書ける タスクの依存関係が明示できる Cons make では positional arguments が使えない 少し複雑なことをしようとすると Makefile 専用の文法を覚える必要がある 現代では、ファイルベースのタスクの依存関係は make が発明されたころほどは必要ではない Docker とか Go とか Webpack がよしなにしてくれることが多い 例: docker compose のラッパー ちょっとしたコマンドのラッパーを書きたいことがある。Makefile を書きはじめたらすべてのエントリポイントを make にしたい。ということで、以下のような Make

    Makefileの代わりにnpm scripts+zxを使う - 詩と創作・思索のひろば
    hamaco
    hamaco 2022/04/19
    Markdown内のコード実行できるのいいな
  • Gitのおすすめエイリアス5選 - 詩と創作・思索のひろば

    緊急新人エンジニア応援企画! ということで自分が Git のエイリアスとして設定している便利コマンドを紹介していく。 直前のコミットに追いコミットする (git fixit) git commit --amend --no-edit もろもろ整えて git push しよう、とすると「あっちょっと修正したい」となるのはよくあること。その際いちいちコミットメッセージを書いて rebase するかというとそんな面倒はとりたくなく、一撃で終わらせたい。--no-edit でコミットメッセージを編集せずに --amend できる。 git fixit に設定している。git commit の引数をそのまま受け付けるので、git fixit -a や git fixit <file> のように使える。 メインブランチに戻る (git com) f() { remote_head=$(git symb

    Gitのおすすめエイリアス5選 - 詩と創作・思索のひろば
    hamaco
    hamaco 2022/04/01
  • Wordleの漢字バージョン「漢字ル」を作った - 詩と創作・思索のひろば

    漢字ル こういうやつです。ぜひトライしてみてくださいね。 プロトタイピングのつもりができてしまった! 漢字版 Wordle。激ムズ 漢字ル 1 8/20 ⬜⬜🟥🟧 ⬜🟥⬜⬜ ⬜⬜⬜⬜ ⬜⬜⬜⬜ 🟥🟥⬜⬜ 🟧⬜🟥⬜ 🟩⬜⬜⬜ 🟩🟩🟩🟩https://t.co/jgITM4Edb4 pic.twitter.com/oQLiWL8kun— 美顔器 (@motemen) 2022年2月2日 家の Wordle を知らない人向けに解説すると、四字熟語当てクイズです。指定された回数のうちに当てないといけませんが、試行のたびに文字が合っているかどうかを教えてくれるので、絞り込みながら推理していきます。 漢字ルの独特なところは、文字単体だけではなく、漢字を構成するパーツ単位でもヒントが出るところ。以下のように、「匕」「耂」といったパーツが(たとえば「老」に)マッチしているようなヒ

    Wordleの漢字バージョン「漢字ル」を作った - 詩と創作・思索のひろば
    hamaco
    hamaco 2022/02/11
  • Alfredの代替としてRaycastを使っている - 詩と創作・思索のひろば

    新春ツール入れ替えシリーズです。macOS における Spotlight 的なランチャーツールとして Alfred を長いこと使ってきたが、最近 Raycast を使ってみてこれがよかったので、以来ずっと使い続けている。 Raycast - Supercharged productivity 開発者のための便利ツールという売り文句のようで、そういう点がまさに気に入った。 カレンダーの次の予定が表示される まずこれがいい。これだけで十分使える。ランチャーを起動したときにカレンダーの次の予定を表示してくれる。Enter でそのまま Meet や Zoom を開いてくれるのでキーボードから手を離す必要がない。 もともとカレンダーの確認には Dato を使っていたし今も使ってるが、これでミーティングへのアクセスがかなりよくなった。 コミュニティベースの Store で機能を追加できる https:

    Alfredの代替としてRaycastを使っている - 詩と創作・思索のひろば
    hamaco
    hamaco 2022/02/01
    これ気になりつつも最近mac使ってなくて試せてない…
  • 2015年に作ったもの20点(セルフレビューつき) - 詩と創作・思索のひろば

    いちおう振り返っておかないと 2016 年を迎えられないという心持ちになったので、全部ではないけど列挙する。また、作ってブログに書いたけど自分では使ってません、というのも無責任なので、現在自分で利用中かどうかも添える。 go-typeswitch-gen (Go、コマンドラインツール) Pocket Expose(Go、ウェブサービス) gore(Go、コマンドラインツール) goquickfix(Go、コマンドラインツール) lgtm.sh(シェルスクリプト) hub-pr(Go、コマンドラインツール) go-cli(Go、ライブラリ) google-apps-script.d.ts(TypeScript、型定義ファイル) Mackerel APIホスト名を補完(いろいろ) gobump(Go、コマンドラインツール) Goの簡易ベンダリングシェルスクリプト(シェルスクリプト) go-

    2015年に作ったもの20点(セルフレビューつき) - 詩と創作・思索のひろば
    hamaco
    hamaco 2016/01/05
  • ISUCON5 本選に参加して7位に終わりました #isucon - 詩と創作・思索のひろば

    表題のとおり、ハロウィンの夜ゾンビ化した渋谷の街でヒカリエに取り残された俺たちは、ISUCON5戦に参加してきました。 予選はこちらをご覧ください: motemen.hatenablog.com チームは id:wtatsuru (たつる先生)と id:ichirin2501 (いちりんちゃん)とで組んだ「2nd Party Cookies」。 結果は上記のように7位。8万点台に乗らなければ勝負に絡んだと言えず、一時は7万台まで伸ばしていただけに悔しい結果となりました。以下、当日やったことをふり返ります。 初動 開始時刻になってサーバにアクセスできるようになると、wtatsuru が諸々のセットアップをしているあいだにアプリケーションの挙動をチェック。マイクロサービスを使ったウェブサービスで、ユーザの登録情報から複数の HTTP API を叩いて画面に表示する、というものでした。 データ

    ISUCON5 本選に参加して7位に終わりました #isucon - 詩と創作・思索のひろば
  • git commit --fixup とは何か - 詩と創作・思索のひろば

    git commit --fixup というオプションの存在を最近知って調べた。 ヘルプとリリースノートより "git commit" learned the --fixup and --squash options to help later invocation of interactive rebase. Git v1.7.4 Release Notes --fixup=<commit> Construct a commit message for use with rebase --autosquash. The commit message will be the subject line from the specified commit with a prefix of "fixup! ". See git-rebase(1) for details. 1.7.4 から入って

    git commit --fixup とは何か - 詩と創作・思索のひろば
    hamaco
    hamaco 2015/10/20
  • 秒速でLGTMするコマンド - 詩と創作・思索のひろば

    LGTM するときはよさげなアニメーション GIF を探し出してきて lgtm.herokuapp.com にかけるのがデファクト[要出典]だけどこの「よさげなアニメーション GIF を探し出す」というのがくせ者で、大量のアニメーション GIF をブラウザで開くと CPU パワーを浪費するし選択にかける人的な労力もばかにならない。エコではない。そこで Tumblr のランダムな画像を LGTM 化するコマンドラインツールを書いた。その名も lgtm.sh だ。Tumblr には /random というエンドポイントがあるのでこれを利用して特定の Tumblr ブログ群からランダムに画像 URL を得ている。 ./lgtm.sh -m | pbcopy -m オプションをつけると Markdown フォーマットで出力する。つけない場合は画像 URL のみ。 /random へのアクセスには少

    秒速でLGTMするコマンド - 詩と創作・思索のひろば
    hamaco
    hamaco 2015/04/05
  • コード補完もできる Go の REPL「gore」を作った - 詩と創作・思索のひろば

    タイトルの通りです。Go は LL 的に使える、とはよく申しますが、そういう意識で使っていると REPL 的なことをしたいときに困りがちですよね。そこで作りました。gore。いい名前ですね。 motemen/gore · GitHub 以下のスクリーンキャストでだいたいの雰囲気をお察し下さい。 (スクリーンキャストは cho45/KeyCast を使って撮影しました) 特徴 gore の特徴は以下の通りです。 ラインエディタと履歴 複数行入力 パッケージのインポート、補完つき 式および文を実行可能 コード補完(nsf/gocode を利用) プリティプリント(k0kubun/pp か davecgh/go-spew がおすすめ) ドキュメントも引ける(godoc が必要) 以上のように、非常に便利なものになっております。むしろこの程度 REPL には当然あってほしい機能だとも言える。 イン

    コード補完もできる Go の REPL「gore」を作った - 詩と創作・思索のひろば
    hamaco
    hamaco 2015/03/02
  • はてなMackerelチームの開発フロー(スクラム、リモート)について話しました #nanapi_study #hatenatech - 詩と創作・思索のひろば

    nanapi勉強会 vol4 - 【nanapi x はてなはてなとnanapiの開発フロー - nanapi勉強会 | Doorkeeper 【nanapi x はてなはてなとnanapiの開発フロー in Kyoto - connpass nanapi さんとはてなで開催した勉強会に登壇し、東京・京都で Mackerel チームの開発フローについて話してきました。自慢できるようなカッコイイことをやっているわけではないけれど、今こんな風に頑張っています、ということをお話したつもりです。 Workflow at Hatena Mackerel Team // Speaker Deck チームみんなで勉強する スクラムの導入時もリモートワーク開始時にも、チームメンバーには何冊かを読んで予習しておいてもらいました。そうすることでチームメンバー全員が同じだけの知識を持って(全員その道に関し

    はてなMackerelチームの開発フロー(スクラム、リモート)について話しました #nanapi_study #hatenatech - 詩と創作・思索のひろば
    hamaco
    hamaco 2014/12/12
  • ISUCON4 ダメでした #isucon - 詩と創作・思索のひろば

    こないだの ISUCON で平凡な結果を取ってしまったのでお知らせします。 チーム名は「マカレラーズ」、メンバーは songmu & y_uuki でした。 予選 予選のエントリを書いてなかったので、いっしょに書いておく。具体的なポイントについてはもう覚えてないので、日記です。 予選はオンラインだったのでチーム全員がバラバラの場所で参加であったけど、Sqwiggle と Slack で十分だった。むしろ普段どおりという気もした。あらかじめ作戦を立てていたわけではなかったけど、自然と分担ができていて、アプリの細かい改修にくわえ、デプロイ周りやプロファイングは自分がやった。これがいい感じに回ったので、戦でも自分が進んでやることになった。普通に愚直に実装して予選枠を取ったという印象だけれど、いい順位ではなかったし、おそらく次の ISUCON ではもっと参加チームも増えているだろうので、こんな感

    ISUCON4 ダメでした #isucon - 詩と創作・思索のひろば
  • GitHub と CI を連携してる人にオススメの userscript: PR Build Status in Favicon - 詩と創作・思索のひろば

    GitHub を使って Pull Request ベースで仕事しているとこんなことがありますよね…… ( ^o^) LGTM もらった!:sushi: ( ˘⊖˘) 。o(CI 通ったらマージしよう) |花金|┗(☋` )┓三 ( ◠‿◠ )☛ マージしてから帰れよ ▂▅▇█▓▒░(’ω’)░▒▓█▇▅▂ 忘れてたああああああ Issue/PR のタブを開きすぎて、自分のにしろ他人のにしろ何がどこにあってステータスがわからなくなってしまうという問題もありますね。 そんなときに便利なユーザースクリプトがこちら。 GitHub PR Build Status in Favicon chrome://extensions に放り込むなどしてインストールすると、ビルドステータスが設定されている Pull Request(例)では、Favicon の右下にそのステータス(最新コミットのもの)を表す色

    GitHub と CI を連携してる人にオススメの userscript: PR Build Status in Favicon - 詩と創作・思索のひろば
    hamaco
    hamaco 2014/10/02
  • YAPC::Asia 2014 で「Git によるツール開発」というタイトルで話しました #yapcasia - 詩と創作・思索のひろば

    Git を使ったツール開発 - YAPC::Asia Tokyo 2014 YAPC::Asia 2014: Writing tools with Git // Speaker Deck 後半駆け足になりましたが、Git のサブコマンドを活用して Git のツールを作る話をしました。自分がこれまでツールを作ってきた上で、Git とのやりとりを行うにはどういった方法を取ればいいのか調べてきた話を盛り込んでます。お越しになったみなさま、ありがとうございました。 トークにそなえて Git のドキュメントやソースを読んでいたら、またいろいろと発見があって楽しかった。Git の話しましょう。

    YAPC::Asia 2014 で「Git によるツール開発」というタイトルで話しました #yapcasia - 詩と創作・思索のひろば
    hamaco
    hamaco 2014/08/29
  • git-browse-remote 0.1.0 を公開しました & Vim からいい感じに GitHub を開く - 詩と創作・思索のひろば

    git-browse-remote | RubyGems.org | your community gem host git-browse-remote は、コマンドラインからいい感じに(リビジョンを指定したりファイルを指定したり)リポジトリのウェブサイトを開いてくれるツールです。 入れていた変更でまだ RubyGems に上げてなかったぶんをリリースしただけなんですが……。今回の変更で行番号(-L)に範囲が指定できるようになりました。 % git browse-remote -L 5,10 -- README.md で https://github.com/motemen/git-browse-remote/blob/master/README.md#L5-10 を開いてくれます。--stdout を指定すれば標準出力に URL を書き出すだけ、ってこともできます。 おまけで便利な Vi

    git-browse-remote 0.1.0 を公開しました & Vim からいい感じに GitHub を開く - 詩と創作・思索のひろば
    hamaco
    hamaco 2014/07/24
  • GitHub のコミットステータスをターミナルで確認できるやつ - 詩と創作・思索のひろば

    タイトルは若者エントリメーカーで生成しました。 コミットステータスというのは GitHubAPI で特定のコミットに success/failure/pending のステータスを与えることができるやつで、例えば CI でテストした結果がプルリクエストのウェブ画面で確認できる。誰でも見たことあると思う。 業務でも使ってるけど、git push したあとにいちいち結果を確認するのが面倒だったので、ターミナルから確認できるようなのを作った。 プロンプトに表示するとこういう感じで✓が確認できて便利(最後に設定例があります)。 インストール・使い方 % go get github.com/motemen/github-commit-status-mark 普通に起動すると現在のリポジトリの最新のコミット(HEAD)のステータスを GitHub から取得してきて、色付きの文字で表示する。 この

    hamaco
    hamaco 2014/07/06
  • ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば

    以前紹介したghqというツールで GitHub のリポジトリを手元に簡単クローンしてたのを、環境が新しくなったついでに Go で書き直し、完全リニューアルしました。(前は zsh だったのでなんだかなーと思ってた。) そもそも何をするツールか GitHubGoogle Code Project でホストされている Git、Mercurial のリポジトリを手元にクローンすることができます。リポジトリは設定したルート(デフォルトで ~/.ghq)以下に、以下のようなパスで置かれます。 ~/.ghq/github.com/motemen/ghq go get と似てますね。同じような感じで ghq get <URL> します。 % ghq get https://github.com/motemen/ghq clone https://github.com/motemen/ghq ->

    ghq: リモートリポジトリのローカルクローンをシンプルに管理する - 詩と創作・思索のひろば
  • いい感じに出力をインデントしてくれるモジュール #perl - 詩と創作・思索のひろば

    [2013-11-20: Print::IndentedがCPANになくてしょんぼりしている。 とのことで shipit いたしました。 あざーす!] 過去のよく分からないコードの挙動を把握したいときには print (warn) するのが少なくともとりあえずの方法としては常套手段ですが、これがただ平坦に画面に現れるだけだと見づらい。例えば条件分岐やループの中にいる時は出力をインデントするようにすると動きが掴みやすくなるけれど、ただでさえ人間に単純労働を課す print デバッグにそこまで労力を使うのは辛い。そういう面倒さを減らそうという動機で、このモジュールは書かれました。 https://github.com/motemen/perl5-Print-Indented 一体何をするのかというと今書いた通りですが、print 時に、その print 関数の呼び出しコードのインデントに応じて

    いい感じに出力をインデントしてくれるモジュール #perl - 詩と創作・思索のひろば
    hamaco
    hamaco 2013/11/19
    なんか便利そう。
  • パール、アナルを使え!または私は如何にして Perl のワンライナーを書けるようになったか - 詩と創作・思索のひろば

    簡単に言うとこういうことです。今日はこれだけ覚えて帰ってください。 perl -anal -e "…" 同様のオプションは Ruby でも使えます。 解説 -a いきなり見かけないオプションですが、入力を空白文字で区切り、@F という配列に入れてくれます。それ以外の影響はないので使わないときでも指定して問題なし。2 回指定してるのも意味ないです。語呂合わせです。Ruby の場合は $F ですね。 -n -e で指定されたコードを LINE: while (<>) { … } で囲みます。標準入力やファイルを一行ずつ処理するときに便利。sed や grep が簡単に書けますね。ワンライナーでは多様するオプションでしょう。代わりに -p を指定することで最後に print; することもできます。 -l -n や -p が指定されているときに各入力を chomp します。また、各出力に改行を追加

    パール、アナルを使え!または私は如何にして Perl のワンライナーを書けるようになったか - 詩と創作・思索のひろば
    hamaco
    hamaco 2013/10/04
  • 1