社内の技術メモに「cronでは第1月曜日に実行などはできないので、実行されるスクリプト側で条件判定しないとダメ」というような記述がありました。一体どういうことでしょうか。 crontabの書式は「分 時 日 月 曜日 コマンド」です。また、数字はハイフンで範囲指定ができます。下記のように指定すれば毎月第1月曜日の午前3時にコマンドを実行できそうな気がします。 0 3 1-7 * 1 /path/to/command/execute-only-1st-monday しかし、これは期待通りには動きません。「1日から7日までの期間の唯一の月曜日」を指定したつもりが、実際には「1日から7日のすべて、または日付に関係なく月曜日」と解釈されます。マニュアルにも書いてあるのですが、「日」と「曜日」が両方指定された場合、OR条件になるのです。 ネット上を探すと、これでハマって試行錯誤した人が複数いるようで
Emacs使いの人はサーバ作業の際もEmacsを使うことが多いかと思います。ところが、Emacs使いはvi使いの人より少しだけ気をつけることがあるんです。今回はそんな内容をまとめてみました。 バックアップファイルに注意 Emacsは標準設定だと元のファイル名に「~」を付加した名前でバックアップファイルを作ります。普段は便利な機能なんですが、サーバ上の作業だと困ることもあります。 例えばWebサーバで公開中のPHPファイルを直接編集する場合、index.phpを編集したらバックアップとしてindex.php~ファイルが作成されてしまいます。標準的なWebサーバの設定ではindex.php~はtext/htmlとして出力されてしまいますので、一つ前のバージョンのPHPソースコードが全世界に公開されてしまいます。 また、特定ディレクトリ以下の全ファイルを処理対象にする処理があった場合、バックアッ
タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。
たかはらです。 先日、hnwがいまさらxargsの便利さを主張してみるの記事を投稿したところ予想外の大反響でした。xargs好きが意外といると判明したので今日はxargsを利用した小ネタをご紹介します。 例えばネットでソースパッケージを拾ってきてコンパイルする時に、以下のような事をやっていませんか? ブラウザでファイルをクリックすると保存するか聞かれるので~/Downloadに置く。 ターミナルを開いて、cd ~/Download tar xvzfと打ったところで ファイルがたくさんありすぎるのでシェルの補完で探そうとするが数秒前に見たファイル名を覚えだせず焦る。 舌打ちをしながらブラウザに戻りファイル名を確認する。 「ああ、そうだったよね」と思いながらシェルに戻ってファイル名を補完する... そんな貴方に以下のようなスクリプトをご紹介します。
社内勉強会として、「他人の正規表現を読もう」と題して正規表現講習会の第二回を開催しました。「こんな正規表現があるよね」という情報共有のような回でした。きっと退屈な人も居ただろうと思います。基本的にはマニュアルに書いてあるようなことばかりなのですが、社内で「この正規表現なら全員が読めるはず」という線引きをする試みです。もし「何であれが入ってないの?」などあれば教えてください。 ムービー 発表資料 スライド(PDF) この回の内容を要約すると「man perlre」に尽きるような気がします。万一これを知らないと誰かがまとめた二次情報に当たることになってしまいますので、いつまでたっても正規表現に対する苦手意識が解消できない気がします。もしくは、手近にあれば「青ラクダ本を開く」でもいいんですけどね。
「PHPの未定義値と値の検査」というタイトルで社内勉強会を開催しました。PHPの型、未定義値、キャスト、==演算子などの知識の確認がテーマです。 まとめ ==の挙動はキモいです。できるだけ===を使いましょう。 未定義値にアクセスすると通常はNoticeが出ます。 isset関数とempty関数はNoticeが出ません。未定義値の可能性がある場合はまずどちらかでチェックしましょう。 isset関数はis_null関数と正反対の意味になります。 if($a)としたとき、$aをbooleanにキャストした真偽値として評価されます。 if(empty($a))が正反対の意味になります。 ムービー 発表資料 スライド(PDF) 内容の補足など 実際のコードでは、未定義の変数を扱いたい状況はレアなはずです。一方で、$array[”key”]が未定義かもしれない、というのはよくあることです。プレゼン資
PNGファイルの画質を劣化させずにファイルサイズを減らす3つのツール、OptiPNG、advpng、pngrewriteについて紹介します。 OptiPNG OptiPNGはPNGを劣化させずにファイルサイズを減らすコマンドラインツールで、ソースコードとWindows用バイナリが配布されています。 なぜ画像として劣化させずにファイルサイズが減るかというと、PNGには元々圧縮方法が何通りかあるようで、このツールは色々な方法で圧縮してみて一番小さくなったものを採用するということのようです。 例えば、PNGは内部的にはgzipで圧縮していますが、gzipのcompression levelは0~9まであり、この値によって圧縮率に差が生じます。実はImageMagickのデフォルトでは7、Photoshopは5くらいで圧縮しているようで、これを9にして画像を作り直すだけでファイルサイズが減るものが
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く