タグ

ブックマーク / keyamb.hatenablog.com (67)

  • シェル上で特殊な文字が入ったファイルを削除する方法 - weblog of key_amb

    主に使ってるのは Bash で Linux です。 先頭に - ハイフンとか入ってると困ることがあります。 1) '' で括る rm '*' 2) \ でエスケープ rm foo\ bar 3) -- を前置 -- でオプション解析を止める。 rm -- -f 4) パス指定 rm /path/to/-i rm ./-v 参考 man rm

    シェル上で特殊な文字が入ったファイルを削除する方法 - weblog of key_amb
    progrhyme
    progrhyme 2018/09/02
    過去の自分の記事だが、たまにハマるし忘れてたので自己ブクマ
  • Hugoのドキュメント用テーマ「bootie-docs」v1.3までの更新について - weblog of key_amb

    Go製の静的サイトジェネレータHugo向けに、Bootstrapを使った簡素なドキュメンテーション用のテーマBootie Docsなる物を以前に作って、折りに触れてメンテナンスしています。 今回は特に大きな変更や機能追加はないのですが、互換性のない変更もありますので、記事にまとめておきます。 2016年5月に書いた前回記事の時点で、v1.1.1だったので、それ以降のv1.3.1までのCHANGELOGのまとめです。 サイト独自のカスタムCSSを設置可能にしました Enhance / Add site.css to customize UI for one's own site by key-amb · Pull Request #27 · progrhyme/hugo-theme-bootie-docs · GitHub v1.3.1の機能追加です。 初心者だけど、CSSのカスタマイズど

    Hugoのドキュメント用テーマ「bootie-docs」v1.3までの更新について - weblog of key_amb
    progrhyme
    progrhyme 2017/03/05
    v1.1〜v1.3の小さな機能追加と改善、その他更新のまとめ。
  • MECEな木構造による分類方法の提供は要求定義を間違えているのではないか - weblog of key_amb

    一昨日ふと思ってSNSに何件か短文を投稿したのですが、今後この件について再考したり、何か作ったりすることもあるかもしれないなと思ったので、記録がてらにこちらにも投稿しておきます。 タイトルについて ケース・バイ・ケースで、それで十分ということも、もちろんあると思います。 …と、一応補足しておきます。 思ったこと 分類作業は木構造になりがち。そもそもシステム的に木構造しかサポートされてないこともよくあるけど、それってデータの分類が完全にMECEでないといけなくて、人間に完全にMECEな分類を作ることを要求するので破綻する。理想は、例えば循環構造や重複を許した緩い木構造的なものだと思ってる。— きいあむ / IKEDA K. (@key_amb) 2017年3月1日 階層的な分類が発生するのは、群を全体として把握したい時だろう、たぶん。人のチャンクは7か8程度だから、要素が多いときパッと把握で

    MECEな木構造による分類方法の提供は要求定義を間違えているのではないか - weblog of key_amb
    progrhyme
    progrhyme 2017/03/03
    一昨日ふと思ったことについて、備忘ついでにブログにまとめておいた。
  • メモ:ソフトウェアにキラキラネームを付けることの功罪について - weblog of key_amb

    あるソフトウェア・プロダクトを開発するにあたって、名前を決めたい。 次の2つの選択肢を考える。 キラキラネームを付ける。 神様の名前とか、古語とか、プロダクトの機能と紐付かない固有名詞っぽい名前 機能に即した名前を付ける。 …で、前者の後者に対する Pros/Cons を考える。 Pros ネームスペースを作ることができる (覚えれば)誤解が起こりにくそう ググラビリティが上がる可能性が有る 秘密の案件とかだったら、コードネームとしても使えそう 開発者のモチベーションになる(?) 「キラキラネームかっこいい!」と思う人もいるかも Cons 実際の機能とキラキラネームとの対応を覚えなければならない => 学習コスト、コミュニケーションコストが発生し得る 数が増えると大変そう その他の声 キラキラネームは、機能が明確でないモノに付けるのはよいのではないか。 Microservices の文脈で

    メモ:ソフトウェアにキラキラネームを付けることの功罪について - weblog of key_amb
    progrhyme
    progrhyme 2017/02/28
    ある人と話すことがあったので、メモがてらに書いた。
  • 2016 年を Software Engineer として振り返って - weblog of key_amb

    はじめに 概要と、昨年との比較 2016年に作ったもの ピックアップ shove (ShellScript) fireap (Ruby) poloxy (Ruby) grifork (Ruby) perl5-App-Memcached-CLI 関連記事 他に、こんなのも作ってました Contributions 勉強会で発表した 終わりに OSS 活動と業務時間の使い方について 今後、何を作っていくのか? 脚注 はじめに 何か書いておこうかなー、と先々週ぐらいから思いつつ、結局ギリギリになってしまいました(汗) 鼻高々と自慢できるような大きな成果はないかなぁと思うものの、ここで来年以降も定点観測できるように、やはり書いておくことにしました。 概要と、昨年との比較 作ったものは小粒なツールが多いですが、こうして振り返ってみると、数はそこそこありました。 物によっては、 GitHub で多少、ス

    2016 年を Software Engineer として振り返って - weblog of key_amb
    progrhyme
    progrhyme 2016/12/31
    書いた。…なんとか、今年に間に合った。
  • ちょっとしたワークフローエンジンを作るときは Rake で十分だと思う - weblog of key_amb

    Ruby なら特に。 Ruby 以外でも、使えるケースはありそう。 Rake には次のような機能が有る。 タスクの依存関係定義 並列実行 別のタスクの呼び出し また、タスクを記述する Rakefile 内では Ruby の文法が使えるので、特に外部の gem を使わなくても、任意のタスクにアドオンで次のような機能を付加できる。 リトライ 終了処理 繰り返し 複数のタスクを並列実行 以下にサンプルの Rakefile を示す。 ※ここでは parallel を使っているが、同じことを parallel を使わずに記述することもできる。 require 'parallel' def invoke(task) Rake::Task[task].invoke end def execute(task) Rake::Task[task].execute end def parallel(*tasks

    ちょっとしたワークフローエンジンを作るときは Rake で十分だと思う - weblog of key_amb
    progrhyme
    progrhyme 2016/12/04
  • Ginza.rb で "grifork" について発表してきた - weblog of key_amb

    10/18(火)に、第40回の Ginza.rb に参加してきました。 初参加でしたが、今回は他にも初参加の方が8名ほど(?)いらしていたようです。 Ginza.rb では、毎回、別々のテーマについて会を催しているようです。 今回は「自分でつくったものを見せてみよう」というテーマでした。 約17名*1の参加者中、ほぼ全員が発表者だったため、1人あたりの発表時間が4分ほどになりました。 LT より短いレベルですね^^; 私は、前記事で紹介した "grifork" について発表してきました。 下がそのスライドです。 grifork - fast propagative task runner - from IKEDA Kiyoshi だいたい前の記事で紹介した内容の通りですが、v0.2 〜 v0.5 のアップデートについても触れています。 この場でも、かんたんに述べておきます: v0.3 ge

    Ginza.rb で "grifork" について発表してきた - weblog of key_amb
    progrhyme
    progrhyme 2016/10/19
    blogged.
  • ssh と rsync だけで Tree Deploy を実現する "grifork" を作った - weblog of key_amb

    はじめに〜fireap to grifork Tree Deploy とは grifork: standalone モード grifork: grifork モード 使い方 動作例と実行ログ 今後の展望 余談〜デプロイの未来について おまけ〜grifork の語源 はじめに〜fireap to grifork 約半年前に fireap というデプロイツール(タスクランナー)を作りました。 オンプレミスでも使えて、ノード数 N に対して O(log N) で動作する、というものです。 が、前提条件として、システム内の全ホストに fireap をデプロイし、また、全ホストで Consul の agent を動かす必要があります。 その辺りが導入障壁になる環境もあるかもしれないな、と思いました。 …で、少し工夫すれば、「デプロイサーバにだけプログラムがあればツリー状にデプロイできる」ものも作れる

    ssh と rsync だけで Tree Deploy を実現する "grifork" を作った - weblog of key_amb
    progrhyme
    progrhyme 2016/10/03
    blogged.
  • "clenv" がそこそこ xxenv っぽく使えるようになってきた - weblog of key_amb

    3日前に上の記事を書いたばかりですが、また少し工事をしたので、自分の中での整理も兼ねて、お知らせ。 "clenv" は私が趣味で作っているもので、シェルスクリプトのパッケージ管理ツールのようなものです。 ソースコードは https://github.com/key-amb/clenv で公開しています。 追加・変更したコマンドについて コマンド動作イメージ 初期セットアップの改善 終わりに 過去の記事 追加・変更したコマンドについて clenv help の実行結果から抜粋します: clenv init [-] # Bootstrap clenv create [ENVIRONMENT] # Initialize ENVIRONMENT clenv environ # Show current environment clenv environs # List environments c

    "clenv" がそこそこ xxenv っぽく使えるようになってきた - weblog of key_amb
    progrhyme
    progrhyme 2016/09/22
    またブログ書きました。
  • シェルスクリプト用テストツール "shove" v0.8 までの更新のお知らせ - weblog of key_amb

    シェルスクリプト用のテストツール "shove" を作って、初めて上の記事で紹介したのは約5ヶ月前になります。 今回は、上記事の時点からこれまでの主な差分をお知らせします。 言うなれば CHANGELOG + αな記事となります。 shove は GitHub で公開しています。URL は下になります: https://github.com/key-amb/shove CONTENTS: グルーピングの新しい記法を追加 (v0.8.1) テスト用の関数を12個追加 (v0.8.0) shpec のテストを追加 (v0.7.2) グルーピングの新しい記法を追加 (v0.8.1) 今まで T_SUB "..." (( ... )) という記法でテストコードをグループ化できるようにしていました。 が、なんか微妙だなと思って t::group "..." ({ ... }) という新しい記法を追加

    シェルスクリプト用テストツール "shove" v0.8 までの更新のお知らせ - weblog of key_amb
    progrhyme
    progrhyme 2016/09/20
    書いた。
  • "clenv" というシェルスクリプトのモジュール管理ツールを引き続き作っている - weblog of key_amb

    keyamb.hatenablog.com 上の記事を書いたのが3ヶ月前ですね。 趣味で作っているのでだいぶ波があるのですが、初コミットからは5ヶ月ほど経ちました。 "clenv" って何? "clam" モジュール NEW - "cload" コマンドと "cllib" 関数 NEW - shims/ に shim を置くことにした Travis CI で継続的にテストできるようにした clenv 環境で使える Bash 用の Logger モジュールを書いてみた 今後 脚注 "clenv" って何? https://github.com/key-amb/clenv です。 説明は上の記事に書きましたが、一応こちらでもかんたんに。 私が趣味で作っているツールで、シェルスクリプトの実行ファイルやライブラリをモジュール化して管理できるようにしてくれるものです。 名前はお察しの通り、rbenv

    "clenv" というシェルスクリプトのモジュール管理ツールを引き続き作っている - weblog of key_amb
    progrhyme
    progrhyme 2016/09/19
    現状の整理とお知らせも兼ねてブログを書きました。
  • enhancd を改修して引数なし cd コマンドの挙動を変えずに使えるようにした - weblog of key_amb

    先日、上の記事を書きました。 記事末尾に「余談」として、次のように書きました。 もう1つ enhancd による cd の挙動変更でときどき戸惑うのは、 cd 単体で実行したときです。 enhancd ではこのときもディレクトリ履歴検索による選択画面になります。 これはとりあえず諦めて受け入れることにしたのですが、今回紹介した変更のように、デフォルトの挙動を変更しないオプションがあってもいいかもしれません。 すると、意外と反響が有って、ニーズがあることがわかりました。 cd単体でのデフォルト挙動もぜひオプション化してほしい / “enhancd を改修して "cd -" や "cd .." の挙動を変えずに使えるようにした - weblog of key_amb” https://t.co/TWK1yQip4y— yukimemi (@yukimemi) 2016年9月7日 というわけで、

    enhancd を改修して引数なし cd コマンドの挙動を変えずに使えるようにした - weblog of key_amb
    progrhyme
    progrhyme 2016/09/17
    #enhancd に例のオプションを追加したので、ブログ書きました。
  • RSpec で example の外で定義したローカル変数を使うのはアリか? - weblog of key_amb

    ※9/3 @jnchito さんのコメントを受けて追記しました。 RSpec で example の外で定義したローカル変数を使う テストコードの例 特徴・用途 「アリ」なのか、「ナシ」なのか? 2016/9/2 現時点の結論 9/3 追記:ローカル変数が使えそうな例 (1) 長いメソッド等のリファクタ系 (2) セットアップに時間のかかるオブジェクトを1回だけ生成し、結果を利用したい (3) 時間がかかるわけでもないが、1回だけセットアップして結果を利用したい 参考 RSpec で example の外で定義したローカル変数を使う テストコードの例 こういうの: outside_var = :outside_var # (1) describe :top_scope do top_scope_var = :top_scope_var # (2) it :example_in_top_sc

    RSpec で example の外で定義したローカル変数を使うのはアリか? - weblog of key_amb
    progrhyme
    progrhyme 2016/09/02
    blogged
  • enhancd を改修して "cd -" や "cd .." の挙動を変えずに使えるようにした - weblog of key_amb

    Bash で enhancd を導入することにした cd の履歴を peco で移動したい。 シェル環境で peco を使いだした人なら、きっとそう思うことがあるでしょう。 zsh だと、cdr と組み合わせることで実現できます*1。 下の記事あたりを参考に設定するといいでしょう。 [zsh]cdr: 開いたディレクトリの履歴からディレクトリを開く | DevAchieve 最近ナウイpecoを試してみたメモ | Futurismo さて、bash の場合、最近は b4b4r07/enhancd を使う人が多いのではないかなと思います。 いくつか作者の @b4b4r07 さんが記事を書いてます。 http://blog.b4b4r07.com/entry/2014/11/20/134901 ターミナルのディレクトリ移動を高速化する この enhancd は Bash の小枝集 で紹介されて

    enhancd を改修して "cd -" や "cd .." の挙動を変えずに使えるようにした - weblog of key_amb
    progrhyme
    progrhyme 2016/08/31
    blogged
  • Bash Infinity よりずっと前に Bash on Rails なるものを作った人がいると記録しておく - weblog of key_amb

    備忘録を兼ねて、ブログを書いておきます。 きっかけは、昨日のはてブでホットエントリに上がっていた下の記事です。 元記事から、GitHub のソースコードにたどりついて、少しだけ内部のコードを読みました。 https://github.com/niieani/bash-oo-framework どうも、Pure Bash で書かれているようですね。 OO という名前が現すように、オブジェクト指向で書けるように型システムをも実装しているようです。と、これは記事でも紹介されていましたが。 さて、この記事を読む数カ月前に、私は Bash on Rails なるものを作っていた人を知ったので、それを想起しました。 Bash on Rails は @emasaka さんが作った Rails モドキで、「Bash の機能だけでいかに Ruby on Rails っぽいことができるか」を実践したパロディ企

    Bash Infinity よりずっと前に Bash on Rails なるものを作った人がいると記録しておく - weblog of key_amb
    progrhyme
    progrhyme 2016/08/28
    blogged
  • Googleサイト上の個人WikiでMarkdown Hereを使うことにした - weblog of key_amb

    気づけば1ヶ月以上ブログの更新が滞っていたようです(汗) いくつか小ネタが溜まっているので、隙を見て消化していきたいと思っています。 さて、半年ほど前に、日々の個人的な雑メモは こちらの Google サイト に書くことにしました。 その経緯については、下の記事でかんたんに紹介しています。 Google サイトは手軽にページ階層が編集できるなど、個人 Wiki として便利である一方で、 Markdown に対応していないというのが、そこそこ大きなペインポイントでした。 が、1ヶ月ほど前に何か手段はないかともう一度探してみたところ、 Markdown Here を見つけることができました。 2010年のStackExchangeで。GoogleSiteでMarkdownで書くのに、MarkdownHereがオススメされてる。https://t.co/6ZqMWgo2ab— きいあむ → @p

    Googleサイト上の個人WikiでMarkdown Hereを使うことにした - weblog of key_amb
    progrhyme
    progrhyme 2016/07/31
    記事を書きました。
  • #PrometheusCasual #1 に行ってきた - weblog of key_amb

    発表資料 @wyukawa Hadoop, Fluentd cluster monitoring with Prometheus and Grafana @mtanda Prometheus on AWS @tokuhirom promgen - prometheus management tool kawamuray HBase, Kafka cluster monitoring with Prometheus and Grafana @moznion 5分で作るprometheus exporter Togetter まとめ メモ 所感 発表資料 @wyukawa Hadoop, Fluentd cluster monitoring with Prometheus and Grafana Prometheus casual talk1 from wyukawa @mtanda Prom

    #PrometheusCasual #1 に行ってきた - weblog of key_amb
    progrhyme
    progrhyme 2016/06/15
    書いた。
  • "clenv" というシェルスクリプトのパッケージ管理ツールのようなものを作った - weblog of key_amb

    主に先月、開発していました。 いまバージョンは 0.1.12 です。 最近、久しぶりにやりかけだった機能拡張を進めようかと思ったのですが、拡張した機能を今後、自分自身でもあまり使うイメージが持てなくて、現状をひとまずこの記事にまとめておくことにしました。 目次: clenv とは clam モジュール clam を使う前に 〜 clenv セットアップ その他便利かもしれない使い方 Clamfile 任意の実行ファイルを勝手に clam 化してインストール clenv を作ってよかったこと あれ、シェルスクリプトあんまり関係ない…? 他に似たようなものないの? 余談 〜 shove との関係 おわりに clenv とは シェルスクリプトのパッケージ管理システムがあったら、流行るんじゃないかという妄想があって、試しにちょっと作ってみた、という感じです。 WindowsでBashが動くようにな

    "clenv" というシェルスクリプトのパッケージ管理ツールのようなものを作った - weblog of key_amb
    progrhyme
    progrhyme 2016/05/15
    書いた。
  • アラートをまとめるシステム "poloxy" の v0.2 をリリースしました - weblog of key_amb

    前回の記事で紹介した poloxy をその後リリースして、稿の執筆時点で v0.2.1 までバージョンが進みました。 ※5/8 v0.3.1 になったので追記しました。 目次: "poloxy" とは Motivation Current Status (※5/8 追記アリ) Milestone (余談) Another Approach 〜 Fluentd との相似について 5/8 追記: AdminLTE という UI テンプレートについて "poloxy" とは 繰り返しになるので詳しい説明は割愛しますが、スライドや README に載せている図を再掲しておきます。 こんな感じで、アラートをまとめて通知してくれるものです。 まとめられたアラートの内容は Web Dashboard で確認できます。 Motivation サーバサイドアプリケーションの開発・運用従事者の方は何かやらか

    アラートをまとめるシステム "poloxy" の v0.2 をリリースしました - weblog of key_amb
    progrhyme
    progrhyme 2016/05/06
    まとめたい。
  • ドキュメンテーション用の Hugo のテーマ "bootie-docs" を改善しました #gohugo - weblog of key_amb

    Bootie Docs はちょうど一年前ぐらいにドキュメンテーション用の静的サイトジェネレータがほしくて作った Hugo*1 の Theme (テンプレート)です。 当時の記事はこちら: Hugo で "bootie-docs" というドキュメンテーション用のテーマを作った #Hugo - weblog of key_amb 色々イケてないところがあったので、GW 連休中にがっつり手を入れて、機能追加もしましたので、お知らせします。 ほとんど CHANGELOG に書いた内容に相当します。 ※5/7 更に変更点有り、追記しました。 デフォルトアイコンがかっこ悪い 依存コンポーネントを最新版にアップデートし、シンタックスハイライトのスタイルを選択可能に サイトマップ的なページを作った サイドバーをスクロールに追従するようにした Google のサイト検索機能を使った検索フォームを付けられるよ

    ドキュメンテーション用の Hugo のテーマ "bootie-docs" を改善しました #gohugo - weblog of key_amb
    progrhyme
    progrhyme 2016/05/05
    お知らせです。