タグ

ブックマーク / kohkimakimoto.hatenablog.com (6)

  • シェルスクリプトの代わりにPythonを使う - オープンソースこねこね

    これまで、開発や運用時に使う、ちょっとしたコマンドラインツール、自動化スクリプトは、主にBashのシェルスクリプトで実装していたのですが、最近このような用途にはPythonを使うようにしています。 Bashスクリプトへの不満 スクリプトの実装方針 ポータビリティ重視のための縛りPythonプログラミング Tips __future__モジュールでバージョン2、3両方に対応させる バージョン2、3で異なるモジュールを、同じ名前で読み込む バージョン2、3を判別する関数を用意する よく使うスニペット 文字に色をつける 赤い文字でエラーメッセージを出力して終了する 外部コマンド実行する テキストをファイルに出力する ファイルに実行権限をつける スクリプトの同時、多重起動防止する コマンドライン・オプションの解析 HTTPリクエスト まとめ Bashスクリプトへの不満 Bashのスクリプト実装にお

    シェルスクリプトの代わりにPythonを使う - オープンソースこねこね
    tuki0918
    tuki0918 2018/01/20
    go派かも
  • テストやビルドスクリプトをDockerコンテナで実行させるための便利ツールを作った - オープンソースこねこね

    ある程度複雑なプログラムだと、ローカル環境やCIサーバ環境など、どこでも動くようにテストを書くのが難しくなったりします。また、昨今のWebアプリケーションだと、デプロイ前に何らかのビルドプロセスが必要になることがほとんどで、依存物をインストールしたり、Webpackを動かしたり、Goのビルドを走らせたりします。こういうタスクもnodeやらGoに依存していて、複数の環境で差異なく動かすことを考えると、いろいろツライものがあります。 そこで、こういったテストやビルド処理はシェルスクリプトを書いて、Dockerコンテナ内で動かすことによって環境に対しての依存を解消していました。 たとえばGo言語の場合以下のようなテスト実行スクリプトtest_run.shを書いておきます。 #!/usr/bin/env bash set -eu go test $GOTEST_FLAGS $(go list ./

    テストやビルドスクリプトをDockerコンテナで実行させるための便利ツールを作った - オープンソースこねこね
    tuki0918
    tuki0918 2017/03/22
  • sshのラッパーコマンドを作った - オープンソースこねこね

    GoでSSHコマンドに便利機能を追加したコマンドを作りました。 2017/04/11 追記: この記事の内容は古くなっています! 2017/04/11時点の最新の仕様は、次の記事を参照してください SSHラッパーコマンドEsshのv1.0.0をリリースしました - オープンソースこねこね 追記ここまで。以下は2015/11時点の古い情報となります。 github.com 機能として Luaで~/.ssh/configに相当する設定を書ける。 zshの補完機能を使って、接続先一覧を出す。 サーバ接続時にフックを仕込める。自分はスクリーンの色を変えるの使っている。 複数のリモートサーバにまとめてコマンドを実行する。 といったところです。詳細はリポジトリのREADMEを見ていだければと思います。 ビルド済みバイナリをリリースページにおいてあるので、インストールはダウンロードして解凍してパスの通っ

    sshのラッパーコマンドを作った - オープンソースこねこね
    tuki0918
    tuki0918 2015/11/23
  • PHP Webアプリケーションから非同期にコマンドを実行するライブラリをつくりました。 - オープンソースこねこね

    こんなの作りました。 BackgroundProcess Webのプロセスから重い処理を実行したいのだけど。。。 PHPCSVファイルなどから一括で大量のデータ投入を行いたいときがあります。 これをWebアプリケーションのプロセスでやろうとすると、処理時間が長いため、だいたいプロセスがタイムアウトしてエラーになってしまいます。困ったものです。 こういうとき、代わりにコマンドラインのプログラムとして実装したりするんですが、任意のタイミングで処理したい場合、コマンド実行する以上サーバにターミナルでログインできる技術者しかデータ投入作業ができなくなってしまいます。 もっとだれにでもできるように、やっぱりWebアプリケーションのインターフェースが欲しくなるのが人情です。 Webアプリから非同期にコマンドを実行する この要件を満たす簡単な方法は、以下のようなコードでWebプロセスから外部コマンドを

    PHP Webアプリケーションから非同期にコマンドを実行するライブラリをつくりました。 - オープンソースこねこね
    tuki0918
    tuki0918 2015/02/16
  • 機械学習 - PHPとMeCabとMySQLでベイジアンフィルタを実装してみた。 - オープンソースこねこね

    PHPとMeCabとMySQLを使ってベイジアンフィルタを実装してみました。ひとまず動くようにはなったので公開します。機械学習によってテキストドキュメントの自動分類ができます。 高校数学すら忘れてしまっていたので、ついでに条件付き確率などを基礎から勉強してみたが、残念ながらあんまり理解していないです。 さて、実装したベイジアンフィルタですが、機械学習やカテゴリ推定のアルゴリズム部分はPHPで書いて、学習データはMySQLに保存するようにしてあります。ソースはgithubに置きました https://github.com/kohkimakimoto/BayesClassifier 使い方など あとで書きます。。。 あと、カテゴリ推定のサンプルなども書く。。。 2012/04/20 - 追記 サービス作ってみました。 http://kohkimakimoto.hatenablog.com/en

    機械学習 - PHPとMeCabとMySQLでベイジアンフィルタを実装してみた。 - オープンソースこねこね
    tuki0918
    tuki0918 2015/02/16
  • pecoをランチャーのようにして使う - オープンソースこねこね

    前回に引き続き、pecoが大変気に入ったので、その後もいろいろネットで情報さがしたりしてました。それで peco/percolでCUIなスニペットツールを作ってみる の記事を見て同じこと導入してみました。いやはや便利。元記事に感謝。ついでに多少カスタマイズして、スニペットの先頭にラベルをつけてみました。 手順 zshの場合は以下のような関数を.zshrcなどに記述しておく function peco-snippets() { local line local snippet if [ ! -e ~/.snippets ]; then echo "~/.snippets is not found." >&2 return 1 fi line=$(grep -v "^#" ~/.snippets | peco --query "$LBUFFER") if [ -z "$line" ]; the

    pecoをランチャーのようにして使う - オープンソースこねこね
    tuki0918
    tuki0918 2014/07/03
  • 1