タグ

ブックマーク / openlab.dino.co.jp (11)

  • <4D6963726F736F667420506F776572506F696E74202D2083748348838D815B8341836283762B838D815B8368836F8389839383542E707074205B8CDD8AB78382815B83685D>

    toteri
    toteri 2010/10/08
    ロードバランサの資料 by dino
  • cronでは「毎月第1月曜日に実行」ができない — ディノオープンラボラトリ

    社内の技術メモに「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を使うことが多いかと思います。ところが、Emacs使いはvi使いの人より少しだけ気をつけることがあるんです。今回はそんな内容をまとめてみました。 バックアップファイルに注意 Emacsは標準設定だと元のファイル名に「~」を付加した名前でバックアップファイルを作ります。普段は便利な機能なんですが、サーバ上の作業だと困ることもあります。 例えばWebサーバで公開中のPHPファイルを直接編集する場合、index.phpを編集したらバックアップとしてindex.php~ファイルが作成されてしまいます。標準的なWebサーバの設定ではindex.php~はtext/htmlとして出力されてしまいますので、一つ前のバージョンのPHPソースコードが全世界に公開されてしまいます。 また、特定ディレクトリ以下の全ファイルを処理対象にする処理があった場合、バックアッ

  • いまさらxargsの便利さを主張してみる — ディノオープンラボラトリ

    タイトルの通りですが、xargsコマンドの便利さを紹介する記事を書いてみました。xargsは私が大好きなコマンドの一つで、標準入力から渡されたファイル名などを引数とみなして、別のコマンドの引数として起動するというものです。 例えばfindで見つけたファイルを全部削除したい場合、xargsなしでも下記のように書くことができます。

  • 最新のファイルを一つxargsに渡す小ネタ

    たかはらです。 先日、hnwがいまさらxargsの便利さを主張してみるの記事を投稿したところ予想外の大反響でした。xargs好きが意外といると判明したので今日はxargsを利用した小ネタをご紹介します。 例えばネットでソースパッケージを拾ってきてコンパイルする時に、以下のような事をやっていませんか? ブラウザでファイルをクリックすると保存するか聞かれるので~/Downloadに置く。 ターミナルを開いて、cd ~/Download tar xvzfと打ったところで ファイルがたくさんありすぎるのでシェルの補完で探そうとするが数秒前に見たファイル名を覚えだせず焦る。 舌打ちをしながらブラウザに戻りファイル名を確認する。 「ああ、そうだったよね」と思いながらシェルに戻ってファイル名を補完する... そんな貴方に以下のようなスクリプトをご紹介します。

  • 正規表現講習会(その2)を開催しました

    社内勉強会として、「他人の正規表現を読もう」と題して正規表現講習会の第二回を開催しました。「こんな正規表現があるよね」という情報共有のような回でした。きっと退屈な人も居ただろうと思います。基的にはマニュアルに書いてあるようなことばかりなのですが、社内で「この正規表現なら全員が読めるはず」という線引きをする試みです。もし「何であれが入ってないの?」などあれば教えてください。 ムービー 発表資料 スライド(PDF) この回の内容を要約すると「man perlre」に尽きるような気がします。万一これを知らないと誰かがまとめた二次情報に当たることになってしまいますので、いつまでたっても正規表現に対する苦手意識が解消できない気がします。もしくは、手近にあれば「青ラクダを開く」でもいいんですけどね。

  • オブジェクト指向設計原則 第1回

    ディノオープンラボラトリは、株式会社ディノの社員ブログとして主に技術者向けに情報公開をするウェブサイトです。 多くの社員が自分の興味のあることについての記事を書き、結果として社外の方々にも面白がってもらえる状態が理想だと考えています。 詳しくはaboutをご覧ください。 株式会社ディノでは技術者を募集しています。詳しくは採用情報をご覧ください。

  • 講習会「intとfloat 〜小数をオススメしない理由」を開催しました

    「intとfloat 〜小数をオススメしない理由」というタイトルで社内勉強会を開催しました。浮動小数点数に関する一般論とPHPでの実例についてです。最初に覚えた言語がPHPなどのスクリプト言語だったりすると、案外このあたりの知識が手薄なものです。簡単すぎる内容かとも思いましたが、意外と好評でした。 まとめ 浮動小数点数は不要なら使わない 整数で代用できないか検討 理解しないと危険 大きすぎる数も注意 無限に正確に表せるわけではない ムービー

  • 講習会「PHPの未定義値と値の検査」を開催しました

    PHPの未定義値と値の検査」というタイトルで社内勉強会を開催しました。PHPの型、未定義値、キャスト、==演算子などの知識の確認がテーマです。 まとめ ==の挙動はキモいです。できるだけ===を使いましょう。 未定義値にアクセスすると通常はNoticeが出ます。 isset関数とempty関数はNoticeが出ません。未定義値の可能性がある場合はまずどちらかでチェックしましょう。 isset関数はis_null関数と正反対の意味になります。 if($a)としたとき、$aをbooleanにキャストした真偽値として評価されます。 if(empty($a))が正反対の意味になります。 ムービー 発表資料 スライド(PDF) 内容の補足など 実際のコードでは、未定義の変数を扱いたい状況はレアなはずです。一方で、$array[”key”]が未定義かもしれない、というのはよくあることです。プレゼン資

  • 講習会「デーモンのしくみ」を開催しました

    ディノオープンラボラトリは、株式会社ディノの社員ブログとして主に技術者向けに情報公開をするウェブサイトです。 多くの社員が自分の興味のあることについての記事を書き、結果として社外の方々にも面白がってもらえる状態が理想だと考えています。 詳しくはaboutをご覧ください。 株式会社ディノでは技術者を募集しています。詳しくは採用情報をご覧ください。

  • PNG画像のファイルサイズ最小化

    PNGファイルの画質を劣化させずにファイルサイズを減らす3つのツール、OptiPNG、advpng、pngrewriteについて紹介します。 OptiPNG OptiPNGはPNGを劣化させずにファイルサイズを減らすコマンドラインツールで、ソースコードとWindows用バイナリが配布されています。 なぜ画像として劣化させずにファイルサイズが減るかというと、PNGには元々圧縮方法が何通りかあるようで、このツールは色々な方法で圧縮してみて一番小さくなったものを採用するということのようです。 例えば、PNGは内部的にはgzipで圧縮していますが、gzipのcompression levelは0~9まであり、この値によって圧縮率に差が生じます。実はImageMagickのデフォルトでは7、Photoshopは5くらいで圧縮しているようで、これを9にして画像を作り直すだけでファイルサイズが減るものが

  • 1