タグ

ブックマーク / dqn.sakusakutto.jp (15)

  • Dockerの公式MySQLイメージの使い方を徹底的に解説するよ · DQNEO日記

    DockerHubでは公式のMySQLイメージが無料で公開されています。 これを使えば簡単にDockerMySQLサーバを起動することができます。データの永続化もできます。 https://hub.docker.com/_/mysql/ 2015年10月現在では下記3種類のバージョンが用意されています。 タグを指定することで任意のバージョンのイメージを取得できます。 5.5 5.6 5.7 (latest) イメージの取得方法 docker pull mysql これで最新の安定版を取得できます。 バージョンを明示的に取得したい場合はタグを使います。 docker pull mysql:5.7 (2015/10/25現在だと、mysql, mysql:latest, mysql:5.7, mysql:5.7.9はどれも同じイメージを指します。) これのDockerfileを見たい場合はこ

    Dockerの公式MySQLイメージの使い方を徹底的に解説するよ · DQNEO日記
    InoHiro
    InoHiro 2015/10/27
  • [PostgreSQL]Explain Analyzeで、多重JOINしたSQLをチューニングする · DQNEO日記

    Sec ScanのないSQLをどうやって高速化するのか 当に難しいのはここから。 例えば、Explain Analyzeの結果が下記のようなものだったら、どうしますか? どこにボトルネックがあるか、わかりますか? QUERY PLAN ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Sort (cost=1568.27..1568.51 rows=96 width=260) (actual time=822.175..822.259 rows=

    [PostgreSQL]Explain Analyzeで、多重JOINしたSQLをチューニングする · DQNEO日記
  • JPEGのExifタグ情報のOrientaionの定義の早見表 - DQNEO起業日記

    経緯 仕様はここに書いてありますが、私は何回読んでも理解できませんでした。 もっと分かりやすい説明はないかとネット上を探し回ったら、ありました。 CPANのImage::ExifToolのソースコードの中に分かりやすい対照表が。 http://cpansearch.perl.org/src/EXIFTOOL/Image-ExifTool-7.60/lib/Image/ExifTool/Exif.pm Perlコミュニティの底力を垣間見ました。 脱帽です。 %orientation = ( 1 => 'Horizontal (normal)', 2 => 'Mirror horizontal', 3 => 'Rotate 180', 4 => 'Mirror vertical', 5 => 'Mirror horizontal and rotate 270 CW', 6 => 'Rotate

    JPEGのExifタグ情報のOrientaionの定義の早見表 - DQNEO起業日記
    InoHiro
    InoHiro 2015/07/14
  • cron力をつけよう!全てのcrontab入門者に贈る9個のテクニック · DQNEO日記

    なお、時間設定方法や書式についてはここでは解説しません。 拙作「くろんメーカ」をお使いください。 くろんメーカ - crontab用のコマンドを自動で生成します。 そのままコピペしてお使いください。 crontab -e で直接編集しない 有名な話ですが、crontab -r とやってしまうと全てが一瞬で消え去ります。 まさにバルス! 間違えて crontab -r してしまい、crontab をふっとばしてしまった。つか、隣同士にある -e と -r で編集と削除とか、酷いよ><。。。 crontab -r を安全にする - antipop 必ずローカルファイルに設定を書いたうえで、それを反映させるようにしましょう。 $ crontab -l > ~/crontab # 現在の設定をバックアップ $ vi ~/crontab # ローカルファイルを編集 $ crontab < ~/cro

    cron力をつけよう!全てのcrontab入門者に贈る9個のテクニック · DQNEO日記
    InoHiro
    InoHiro 2015/04/28
  • BerkshelfとChefのインストールに苦労した話 - DQNEO起業日記

    例えばberkshelfひとつ入れるのに、膨大な知識がいる。 もしあなたが単にPHPサーバを作りたいだけだったとしても、berkshelfをちゃんとしたモダンなやり方でいれるには膨大な知識がいる。 例えばruby, rbenv, ruby-build, gem, bundlerなどだ。 まあ、rbenvとruby-buildで最新のrubyを入れること自体はそんなに難しくない。Ruby言語の知識も必要ない。 運よくgem install berkshelfが一発で成功したら、別に問題はない。おめでとう。 そういう人はここから下は読む必要はないです。 ところがである。 ひとたびgem installが失敗したら、そこからは茨の道である。 インフラの問題 gem installしたら "ERROR: Could not find a valid gem 'chef-solo' (>= 0) i

    BerkshelfとChefのインストールに苦労した話 - DQNEO起業日記
    InoHiro
    InoHiro 2013/12/30
  • ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記

    所要期間 着手しはじめたのが2010年12月ごろ、完了したのが2013年9月だったので何と3年近くかかったことになります。 長引いた原因は、日々の機能追加や運用をしながら孤独に片手間で細々とやってたからです。(単純に人手不足とも言う) また、PHPバージョンアップと同時にCentOSサーバを5から6にあげることにしたのでサーバ再構築のための工数も含まれています。 後半は仕事仲間が増えてその人が専業でバージョンアップ作業をやってくれたのでだいぶ楽できました。 それと専任のテスターさんたちにも参加していただいたので番で大きなトラブルなく完了することができました。 感謝感謝です。 サーバ入れ替え作業が終わってPHP5.1の入った古いサーバを削除したときの、まさに「技術的負債」を返済し終わった瞬間の、あのスッキリ感、もう言葉にはできません。 終わってみてこの件に関するRedmineのチケットを数

    ソースコード20万行の大規模サイトのPHPを5.1から5.4に上げるためにやったことまとめ · DQNEO日記
    InoHiro
    InoHiro 2013/11/18
  • MongoDBのベストプラクティス10箇条 · DQNEO日記

    レプリカセットを使うと、自動フェイルオーバーにより可用性が向上します。 プライマリーノードがダウンしても、セカンダリノードが自動でプライマリーに昇格して、システム全体は落ちなくてすみます。 我々は、レプリカされていないMongoDBをサポートすることはありません。 レプリカのコストが大きいなら、MongoDBホストしてくれるサービス(MongoHQやMongoLabs)を検討しましょう。 Engine Yardはこれらの会社と提携しています。 2.常に最新バージョンを使いましょう MongoDBは常に最新バージョンを使ってください。 10gen(MongoDBの開発元)はリリースのたびにたくさんの修正を入れていて、それらはあなたのシステムをより円滑に稼働するのに役に立ちます。 バージョン2.0.xではパフォーマンス、同時実行、インデックス、バグ修正、圧縮コマンドなどについての大幅な改善が

    MongoDBのベストプラクティス10箇条 · DQNEO日記
    InoHiro
    InoHiro 2013/07/10
    わかりやすい
  • いい加減、<script src="http://.. と書くのはやめましょう - DQNEO起業日記

    外部サイトのJSファイルを読み込むときに、こういう書き方するのはやめましょう。 <script src="http://example.com/js/jquery.js"></script> 理由 あなたのサイトが、いつの日かSSLに対応することになったとき、そのscriptタグがバグの原因になります。 ご覧のとおり、HTTPSページの中でHTTP要素を読み込もうとすると、ブラウザによっては安全装置が働いて読み込んでくれないのです。 上の例ではjQueryの読み込みに失敗していますが、エラーメッセージ「Uncaught ReferenceError: jQuery is not defined 」を見てもHTTPS/HTTPのプロトコルが原因だとはすぐ気づかないので、わかりにくいバグになってしまいます。 結論 JSファイル(とかCSSとか画像とか)を読み込むときは、"http:"の部分を省

    いい加減、<script src="http://.. と書くのはやめましょう - DQNEO起業日記
    InoHiro
    InoHiro 2013/05/19
  • Git pullを使うべきでない3つの理由 · DQNEO日記

    git pullは使わなくてもよい 初心者はgit pullを使わない方がよい 我々ソフトウェアエンジニアは勉強が大好きなので、コマンドがあるとそれを勉強して使いこなさなければいけないと考えがちですが、ときには「覚えない、使わない」という発想も大事なのではないでしょうか。 以下にその理由をのべます。 git pullは使う必要がない git pullを使わないとできないこと、というのはありません。 使わなくても全然困りません。 git fetchとgit mergeとgit rebaseだけですべての用は足せます。 私はチーム開発でGit格的に使い始めて数か月経ちますが、普段の作業でgit pullを使ったことはないしそれで困ったこともありません。 git pullを使わなければ、余計な落とし穴に落ちない git pullには落とし穴があります。 初心者はたいていその穴に落ちます。 「

    Git pullを使うべきでない3つの理由 · DQNEO日記
    InoHiro
    InoHiro 2013/03/25
  • Git超入門 - 猿でもできるGit rebase · DQNEO日記

    むちゃくちゃわかりやすい例を考えてみた 今あなたは、羊を数えるプロジェクトをGitで開始しました。 羊を1匹数えるごとに1コミットして、3コミットまで終わりました。 ひつじが1ぴき (←1コミット目) ひつじが2ひき (←2コミット目) ひつじが3ひき (←3コミット目) masterブランチ歴史 (左から右に進みます) 1ぴき 2ひき 3ひき ○ - ○ - ○ ワイルドプログラマ、wildブランチを作る ここで突然ワイルドプログラマのスギちゃんが登場します。 スギちゃんは、masterブランチをもとにwildブランチを作成して、そこで1コミットずつ発言をワイルドに変えてしまいました。 ひつじが1ぴきだぜぃ ひつじが2ひきだぜぃ ひつじが3ひきだぜぃ wildブランチ歴史 (左から右に進みます) 1ぴき 2ひき 3ひき 1ワイルド 2ワイルド 3ワイルド ○ - ○ - ○ -

    Git超入門 - 猿でもできるGit rebase · DQNEO日記
    InoHiro
    InoHiro 2012/12/21
  • Git/Github超入門:猿でもできるPull Request · DQNEO日記

    Git/Github初心者のみなさんこんにちわ! Pull Requestを送ってみたいけど、やり方がわからない? 間違ったPull Requesするのがこわくて躊躇している? もったいない! そんなみなさんに、Pull Requestを送るための最小の手順をご紹介します。 昨日ちょうどEthnaにPull Requestを1件送ったので、これを題材にして説明します。 以下、Githubのアカウント取得、gitのインストール、SSH鍵の設定は終わっているものとして解説をすすめます。 Pull Requesを送る最小手順 1.ブラウザでプロジェクト画面を開きます。 例:https://github.com/ethna/ethna 2.forkボタンを押します。 3.以下、自分のPCで作業 git clone git@github.com:DQNEO/ethna.git cd ethna

    Git/Github超入門:猿でもできるPull Request · DQNEO日記
  • 目からうろこ!日本一わかりやすくGitの本質を解説してみた · DQNEO日記

    Git質は「コミットオブジェクトのチェーン」 コミットには親子関係がある。 子は親を参照している。 子の名前(=コミットハッシュ値)が特定できれば先祖をたどれる。 コミットオブジェクトがチェーンのようにつながっているので、「コミットオブジェクト・チェーン」と理解しましょう Gitとは、コミットオブジェクトのチェーンなのです。 (専門的には「オブジェクトグラフ」と言います) ブランチとは枝のことではない ほとんどの初心者が勘違いしていますが、ブランチとは「枝」のことではありません。 ブランチの正体は「立て看板」です。 「ラベル」といってもよいでしょう。 それは、コミットオブジェクトにつけられらた「別名」のことです。 下記の図でいうと、"branchX"とはコミット"C"を指します。 「アメリカ大統領」という言葉と「バラク・オバマ」という言葉は、同一人物を指しますよね? まさにそれといっし

    目からうろこ!日本一わかりやすくGitの本質を解説してみた · DQNEO日記
  • 必殺!Github導入に向けて上司を説得する時に使える資料まとめ · DQNEO日記

    Subversion vs Github 青い線と赤い線。 あなたの会社は、どちらと運命をともにしたいでしょうか? 業界誌でも大きく特集されている 「Githubは世界標準の開発環境である(キリッ」by @HIROCASTER さん Githubを導入している先進企業たち 公開されている情報をもとにリストアップしてみました。 ご要望があれば追加します! (Piece of Cakeさんを追加しました。) (サイボウズさんを追加しました。) これらの事例の中から資料をキリハリして、上司の説得に使いましょう。 \(サイボウズ)/ \(ペイパーボーイ)/ 技術的なアプローチを強化しようと、エンジニアのトップであるmizzyに 直属になってもらい、全社的に取り組むべき課題とチャレンジしたいことの洗い出しや 技術アウトプットを高めるための取り組みを始めました。 [中略] そのような取組の結果、エン

    必殺!Github導入に向けて上司を説得する時に使える資料まとめ · DQNEO日記
    InoHiro
    InoHiro 2012/11/18
    他所が導入しているからうちも,というのはよくわからない
  • 仕事で使ってる巨大SVNレポジトリをGithubに移管するためにやったことまとめ · DQNEO日記

    動機 Subversionで困ってない ぶっちゃけSubversionで全然困っていませんでした。 コードレビューはちゃんとやっていたし、マージ・ブランチングも自作シェルスクリプトのおかげてスムーズにやれていました。 よく「Gitはマージが賢い、ブランチ作成が一瞬でできる」とかいわれますが、Subversionだってちゃんと使えばコンフリクトなんかめったに起きないし、ブランチ管理・マージだって全然めんどくさくない。 特にver1.7からはサーバもクライアントも大幅に高速化されたし、.svnディレクトリが.gitみたいに1個になったし、rebaseみたいなことだってできる。(sync merge & reintegrate) ただ、世の中が一斉にGitにシフトしている中でいつまでもSubversionを使っててよいのかという不安がありました。 また、月から金までSubversionにどっぷり

    仕事で使ってる巨大SVNレポジトリをGithubに移管するためにやったことまとめ · DQNEO日記
  • いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記

    はじめに これから書く内容は、シェルスクリプトをばりばり書いている現場(サーバエンジニアインフラエンジニア)向けのものではありません。 年に数回crontabをいじるような現場(サーバに詳しくないアプリケーションプログラマが多数を占めるような現場とか、Webデザイナや非プログラマがcrontabをおそるおそるいじったりするような現場)を想定しています。 >/dev/null 2>&1 の問題点 この記法の問題点は、「覚えにくい、間違えやすい、間違ってても気づかない」ということです。 初心者を迷わせる要素がこんなにあります。 >/dev/nullは先か後か 1と2はどちらが先か &はどこに書くのか よって下記のように多種多様なミスが起こり得ます。 2>&1 >/dev/null >/dev/null 1>&2 >/dev/null 2>1& >/dev/null &2>1 これをぱっと見て

    いい加減、>/dev/null 2>&1と書くのをやめたらどうか (追記あり) · DQNEO日記
    InoHiro
    InoHiro 2012/06/13
  • 1