カイワレの大冒険 Third

技術的なことや他愛もないことをたまに書いてます

プログラミング

constants manager was released!!

Now on release constants manager!!. This library helps you to manage constants for python. It recommends to see README.md to use. The features are below. use different constants with environments variables. return default constants if ther…

pypiにパッケージを登録して、setup.pyの「scripts」と「console_scripts」の違いを比較してみた

みなさま、Pythonのパッケージ化はしたことありますでしょうか?最近以下のような記事を書きましたが、ツールを作ったものの、それを配布しようとなると、Pythonのパッケージ化に関して分からないことがあり、pypiにパッケージを登録して試してみました。 Py…

Pythonでコマンドラインツールを作りたいときには、setup.pyには何を書くべきか

前回のPython製コマンドラインツールのディレクトリ構成について。その考察。の続きです。 はてブコメントやFBでのコメントでsetup.pyに関する言及がいくつかあったので、どのようなことを書いたほうがいいのか調べてみました。 setup スクリプトを書くやい…

Python製コマンドラインツールのディレクトリ構成について。その考察。

はじめに 去年ぐらいからPython製のコマンドラインのツールをいくつか作っていて、構成もだいぶ固まってきたので、まとめてみる。規模としては1ファイルでは終わらないぐらいで、関数の数も数十になってユーティリティを作ったり、クラスをいくつか作らない…

今まで作ったPython, Ruby, Bashの関数を色々晒してみる

華金なのに飲みもないので、ブログでも書こう。今日は、今までに書いた関数をいくつも晒してみようと思う。RubyとかPythonとかbashとか必要に応じて色々作った関数もそこそこあるので、誰の役に立つかわからないけど、晒してみる。 importとかまでは記してな…

コールバック関数

今までコールバック関数をちゃんと把握してなかったので、メモ。 今回はnode.jsを使います。加算を2段階で行う処理。 function add(a,b,callback) { console.log(a+b) callback(a+b) } function add10(base) { console.log(base + 10) } add(1,2,add10) 実行…

Rubyでリトライとか、SSH経由でコマンドとか

実家にいるとどうも時間持て余してしまうので、昔書いたスクリプトを備忘録的に残しておく。一年以上前に書いたやつだな。。。 リトライ たとえば、特定のURLに対して並列でGETしたい、ただステータスコードがおかしかったりしたら、キャッチしておきたいよ…

IntelliJでJUnitの設定をする

IntelliJでJUnit周りの環境を揃えたときの備忘録。自分が使ってるのはIntelliJ IDEA12。13では試せてないけど、多分そんな変わらないはず。 pom Mavenでプロジェクト管理してるのでまずpom.xmlに以下が設定されてることを確認する。IntelliJはデフォルトで設…

環境による設定の差異を吸収するにはSettingslogicがいいという話

だいぶ前に使った内容なので、今は少し違うかもしれませんが、アウトプット大事ということで備忘録。 環境に応じて処理内容を変えたいということはよくあるかと思います。 DEVだったら、この設定を読むとか、APIの呼び元はこっちにするとか。 僕がよく遭遇す…

RubyでOSの外部コマンドを実行したいときに、spawnを使うと便利だった件

またもや、Rubyネタ。ちょくちょく更新して参ります。 外部コマンドを実行するやり方については、このサイトにまとまっています。 んで、なんかいいライブラリないかと。 が、今回僕が欲しかった機能として、 コマンドが叩ける(当然 標準出力・標準エラー出…

Rubyでハッシュの値の比較を行う

どうやるか分からなかったので。ハッシュ同士ではなく、値の比較をしたいとき。 2つのハッシュがあって、キーが同じなのに値が違うとか、そもそもキーがないとか。そういうとき。 ActiveSupportでは、以下のようなオープンクラス?が用意されていて、diffの…

YAML.dumpするときは、文字コードを意識しとくべきだった件

なんかハマったので。環境はRuby1.9.3です。 YAML.dumpで出力しようとしたときに、必ずしも人間にわかりやすい形で出力してくれるとは限らないんですな。 とりあえず、ファイルに出力してみる場合。 >>> content = 'hello, world!!' >>> hash_test = {'key' …

concatメソッドにハマった件

またもやRubyネタですが、とあるリストの各要素同じ文字列追記をしたかったのですが、そしたら見事ハマったので書いておきます。 やりたいことはこんな感じ。 とあるリストがある。要素数は3にしておきます。 その各要素に対して、文字列を末尾に加えたい。 …

Rubyで動的にメソッドを呼び出したいときの試行錯誤メモ

最近、昔のドラゴンボール劇場版を見て、90年代を懐かしんでる@masudaKです。 今回は、Rubyで条件分岐からファクトリ作成に至るまでの試行錯誤をちょいと晒してみたいと思います。 思考の流れはこんな感じ。 ある文字列が複数個リストに入ってる。 その文字…

Vimの環境を晒してみる(2013)

あっという間に三が日も終わろうとし、時の切なさを感じている@masudaKです。そこまで目新しいネタもないため、自分のVimの環境を晒してみたいと思います。この記事はVim Advent Calendar 2013の1月3日分の記事となります。説明は以下の.vimrcがベースとなる…

Javaウェブオペレーションエンジニアがトラブル切りわけ時に見ていること3つ

忘年会シーズンで肝臓への負担を極力避けている@masudaKです。今回はJavaアプリケーションの運用のポイントに関して、書いてみたいと思います。 このエントリはJava Advent Calendar 2012の22日目のエントリです。 Javaアプリケーションの運用ポイントとは …

定期実行スクリプトの綺麗なロギング3選

オリンピックの流れに乗れてない@masudaKです。職業柄かちょくちょくスクリプトを書くことはあるのですが、やはり色々自分で書いたり人のを見たりしてるうちに、この実行履歴綺麗だなーと思うことが多々あります。今回は、そう思える対象のなかでも、「定期…

paramikoモジュールが激しく便利だった件

最近Pythonあまり書いてなくて、復習がてら書いてみたのですが、その際paramiko: ssh2 protocol for pythonが便利だったので、ご紹介。リモートホストに対してなんらかの処理を行いたい場合、スクリプトで書くとなると、シェルスクリプトでもできますが、例…

「シェルスクリプトを書く際に気を付けていること8箇条」の補足を書いた

前回のエントリで色々コメント頂いたので、自分の勉強のためにちょいと調べてみた。コメントありがとうございます。とりあえず、bashオンリーのもの途中から書いてるじゃんという話し。 ひとまず、提示したソースをそのまま使ってみて、やってみた。 declare…

シェルスクリプトを書く際に気を付けていること8箇条

エンジニアという職業柄かシェルスクリプトを書くことはちょくちょくあるのですが、自分なりに気を付けていることを備忘録&自分への戒めも含めて、簡単に書いてみたいと思います。 変数は大文字 シェルスクリプト書いていれば変数の出番は至るところである…

Vimと親しくなるある「キッカケ」と、それからの付き合い方について

12/31日という今年最後の最後にVimに関する記事を書くことができて、幸せな年末を過ごせて素敵だなぁと思っている@masudaKです。この記事はVim Advent Calendar 2011 : ATNDの31日目の記事となります。正直、今年の半ばぐらいまで、VimとViもたいして違わな…

PHPでこんな情報が表示されるって知ってますか?

Linux Mintでapt-get upgrade, dist-upgradeが終わらないので、一つ記事でも。今の時代、PHPが実行可能なサーバは多いと思いますが、そんなサーバを運用している方へ、こんな情報表示されちゃいますよ、という話し。セキュリティにも関わってくるので、知っ…

ソケット通信でHTTP/1.1を使う際にまず押さえておくこと

ソケット通信というのは非常に便利である。HTTPヘッダーを好きなように書いて、検証もできるし、リクエストも飛ばすことができる。しかしながら、HTTPのルールに従わず、間違ったリクエストを送ると、送られたサーバが急に応答不能な状況に陥りかねないので…

改行コードと「command not found」の関係について

作ったシェルスクリプトでどうも「command not found」と言われる。パスは間違ってないし、そんな思い当たる節もない。ただ、追ってたら、やっと頭に入ったので、無知ながら晒してみる。 コマンドとエラーはこんな感じ。 $ ./test.sh -d 2 -s '192.168.1.11'…

シェルでループさせて、一部の項目にヒットしたものを集計する方法

Tweet JSの記事書いたついでなのでかなり適当ですが、更新。アウトプット大事だと思って、たいしたコードじゃないけど、晒します。 基本的に以下のようなことをやりたいのが前提。 繰り返し処理したい。毎回エンターキーとか押したくない gzipで圧縮されてる…

JavaScriptで、アクセスしたURLのパラメータを取得してみる

聞かれてちょっと調べたら良さそうなものが公開されていたので、どっかニーズいるかもしれないし、晒しとく。元ネタはこちら。 snipplr.com特定のURLにアクセスさせて、そのパラメータを取得したいに使いますです。 たとえば、「http://example.org/?id1=1&i…

過去のjQuery Mobile使ってると、脆弱性が出たらしいので、試してみた

Tweet 何かサービス利用している人向けというよりは、管理者向けかと思いますが、踏み台にされるといいものではないので、記しておきます。 (※もちろん被害あうのは両者です)発端というか、僕が昨日見かけた記事はこちら。 https://github.com/jquery/jque…

流行の技術に乗り遅れたくなくて、NodeとRedisとMongoとPythonとjQuery Mobileを一気に動かしてみた

最初はNodeをやってみたいと思っていただけでした。 勉強会とかでLTとか聞いてると、わりと出てくるNodeの話題。JavaScriptは嫌いじゃないし、いつかやってみたいと思ってたけど、なかなか手を出す気にならなくてやってませんでした。 ただ、やろうと思った…

シェルスクリプトで浮動小数点演算したら、怒られたので、晒しとく

単にデータ取ってきて演算するだけだろとか思い、気楽に作ろうとしたら、認識あまーと諭されたので、書いてみる。 ※今回使ったシェルはボーンシェルです。まずは、ファイルに書かれたデータを単に出力(cat)するシェルスクリプト。 #!/bin/sh COUNT_FILE=/hom…

Pythonの開発環境をよーく考えた上で構築する その1

備忘録に近いですが、Pythonのバージョンでもう苦しみたくなかったので、もろもろいじってみました。 とりあえず、第一弾。Pythonインストール編です。とりあえず、課題認識。 流行ってるし、面白そうだしNode使いたい Nodeをそのままソースから入れると、バ…