タグ

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

  • 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を見たい場合はこ

    advblog
    advblog 2015/10/28
  • [JavaScript] 猿でもわかるクロージャ超入門 1 問題 - DQNEO起業日記

    問題です。 問題: 呼び出すたびに、1,2,3,...を返すような関数 f( )を定義せよ。 f(); // 1 f(); // 2 f(); // 3 この問題、解けますでしょうか? 普通の関数では、できないと思います。 しかし「クロージャ」というのを使えば、このようなことができます。 クロージャって何だ? 「クロージャ」という言葉を、プログラムのやサイトで目にすることがありますよね。 私が最初に見たのは続・初めてのPerl 改訂版(アルパカ)でした。 まったく理解できませんでした。 その後、404 Blog not foundやnaoyaさんのブログなどで「クロージャ」という単語を目にしました。 やはり、まったく分かりませんでした。 とどめの一撃はWikipediaの解説記事。 クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境

    [JavaScript] 猿でもわかるクロージャ超入門 1 問題 - DQNEO起業日記
    advblog
    advblog 2015/07/17
  • PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記

    仕事で使っているPHPアプリケーションをPHP7 beta1で動かしてみたらそのままでは動きませんでした。 私が実際にはまった点を紹介します。 なお、PHP7の変更点についてはhnwさんの記事に詳しく網羅されているのでご一読ください。 PHP7で変わること - hnwの日記 Apacheのモジュール名が変わっていた ApacheにPHPを組み込むためのモジュール(俗にいうmod_php)のモジュール名・ファイル名が変更になっていました。 LoadModule php5_module modules/libphp5.so ↓ LoadModule php7_module modules/libphp7.so memcache extensionがインストールできない PHPからMemcachedを使うためのExtensionには2つあります。 memcache memcached memca

    PHP5.6からPHP7にアップグレードして実際にはまった点9個 · DQNEO日記
    advblog
    advblog 2015/07/17
  • あなたのApache設定ファイルを劇的に読みやすく改善する12の方法 · DQNEO日記

    はじめに Apacheの設定ファイル、ちゃんと書けますか?一つ一つ意味を理解していますか? http.confを開いた瞬間に「うっ頭が頭痛」になったことはないでしょうか? yumやaptでApacheをインストールして、設定ファイルをちょろっと編集しただけでお茶を濁したことはないでしょうか? でもいつまでもその状態ではいけません。そろそろ気で勉強して無駄のない設定ファイルを書くときが来たのです。 2015年のWebサーバ界におけるApacheの立ち位置についておさらい 2015年現在、静的コンテンツの配信やリバースプロキシの役割はその用途に特化したWebサーバを使うのが主流になっています。具体的にはNginxがデファクトスタンダートになっています。 Apacheにもイベント駆動型で動くmpm eventというモジュールがあり、これを使えば高速に多数の接続をさばくことができます。 人間とウ

    advblog
    advblog 2015/06/23
  • 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日記
    advblog
    advblog 2015/04/10
  • 簡単!MacOSXやLinuxにChef,Knife,Berkshelfを一発でインストールしてくれるChefDKの紹介 · DQNEO日記

    Home Subscribe 最近 ChefDKという全部入りパッケージがリリースされたので、これで一発です。 http://www.getchef.com/downloads/chef-dk/ CentOS6だとこんな感じで一発です。 sudo rpm -ivh https://opscode-omnibus-packages.s3.amazonaws.com/el/6/x86_64/chefdk-0.3.0-1.x86_64.rpm rubyとかrbenvとかgemとかの環境について頭を悩ませる必要がないのでとても楽です。 ちなみにChefDKを使わずに自力でこれらをインストールしようとするとどうなるかというと、すごい時間がかかります。 とくにBerkshelfが依存しているライブラリで"dep-selector-libgecode" というのがものすごい怪物のようなしろもので、コンパ

    簡単!MacOSXやLinuxにChef,Knife,Berkshelfを一発でインストールしてくれるChefDKの紹介 · DQNEO日記
    advblog
    advblog 2014/05/18
  • ソースコード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日記
    advblog
    advblog 2013/11/18
  • [Vagrant] Chefを使わずにShellScriptでプロビジョンする · DQNEO日記

    やり方 スクリプト構成 Vagrantfile setup.sh ← Vagrantから実行される起点スクリプト recipes/setup_timezone.sh ← setup.shから呼ばれるレシピ recipes/add_user.sh ← setup.shから呼ばれるレシピ Vagrantfile Vagrant.configure("2") do |config| ... config.vm.provision "shell" , path: "setup.sh" ... end setup.sh export SETUP_DIR=/vagrant cd ${SETUP_DIR} source attributes.sh source recipes/setup_timezone.sh source recipes/add_user.sh attributes.sh # レシピ

    [Vagrant] Chefを使わずにShellScriptでプロビジョンする · DQNEO日記
    advblog
    advblog 2013/11/06
  • Gitの驚愕の真実:1億行のファイルに1行追記するとレポジトリ容量が200MB増える[※補足あり] · DQNEO日記

    1億行のファイルに1行追記するだけでレポジトリ容量が2倍になった 以前の記事「Gitレポジトリはパッチの集積ではなくてスナップショットの集積である。」を確認するために、1億行のファイルを作って実験してみました。 結果は、なんと1行追記しただけでレポジトリ容量が200MB増加し、サイズが2倍になりました。 実験手順 空のレポジトリを作る 1億行のファイルを作ってgit addしてgit commit コミットする そのファイルに1行だけ追記してgit addして git commitする 空のレポジトリを作る $ git init 1億行のファイルを作る 1億行のファイル(1から1億までの数字が書かれたファイル)を作ります。 $ seq 1 100000000 > numbers.txt この時点で、ワーキングツリーとレポジトリ容量を調べてみます。 $ ls -lh 合計 848M -rw-

    advblog
    advblog 2013/11/01
  • いい加減、<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:"の部分を省

    advblog
    advblog 2013/05/19
  • 3分でCentOS6にnvmとnode.jsをインストールする方法 · DQNEO日記

    node.jsをrpmで入れるかnvmで入れるかnaveで入れるかソースからコンパイルするかくよくよ迷ってたのですが、nvmでやってみたらあっさりできました。 案ずるより産むがやすしですね。 # インストール curl https://raw.github.com/creationix/nvm/master/install.sh | sh # 読み込み source ~/.nvm/nvm.sh たったこれだけ!! 感動ものです。 zsh使いの人は、上記に加えて~/.zshrcに下記1行を追記しておきましょう。 [[ -s ~/.nvm/nvm.sh ]] && . ~/.nvm/nvm.sh 1分でわかるnvmの使い方 nvm ヘルプが出ます。 nvm ls-remote インストール可能なバージョン一覧が表示されます。 nvm install v0.9.11 指定したバージョンのnode

    advblog
    advblog 2013/03/06
  • PostgreSQLが重い!あなたならどうしますか? · DQNEO日記

    サーバが重いということは、負荷(load average)が高いということです。 topコマンドを叩いてDBサーバの負荷を調べます。 $ top top - 01:36:45 up 340 days, 20:16, 4 users, load average: 0.01, 0.04, 0.00 Tasks: 85 total, 1 running, 84 sleeping, 0 stopped, 0 zombie Cpu(s): 0.8%us, 0.2%sy, 0.0%ni, 97.7%id, 1.2%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 4044720k total, 3996008k used, 48712k free, 60648k buffers Swap: 2152700k total, 252k used, 2152448k free, 3826572

    advblog
    advblog 2013/02/19
  • [Perl][PHP][VBA][JavaScript] foreachを使おう♪ 配列を総なめする方法 · DQNEO日記

    私はこのforeachが大好きです。 foreachのおかげで、配列が好きになりました。 以下、Perl , PHP, VBA, JavaScriptで、配列の全要素を表示する例です。 Perl  ※ foreach my $item (@items) { print $item; } PHP foreach ( $items as $item){ echo $item; } JavaScript for(var i in items){ alert(items[i]);} VBA  ※ For Each item In items MsgBox item Next ※注1 Perlの場合は、さらに短く書けます。 foreach (@items){ print $_ ;}  または for(@items){ print $_;}      または print for @items; ※注2

    [Perl][PHP][VBA][JavaScript] foreachを使おう♪ 配列を総なめする方法 · DQNEO日記
    advblog
    advblog 2012/12/04
    「foreachのおかげで、配列が好きになりました。」
  • あなたもできる!C言語でテトリスを40分で作る方法 · DQNEO日記

    デモ ニコニコ動画の伝説の動画 「テトリスを1時間強で作ってみた【実況解説】」という動画をご存知でしょうか? 2009年にニコニコ動画で公開されて話題になった動画です。 インタビュー記事:「テトリスを1時間強で作ってみた」動画の投稿者にインタビュー──「プログラミングの楽しさ伝えたい」 この動画ではテトリスをいちから作ってわずか62分で完成させています。 しかし実はスタート直後はMinGWのインストール、EmEditorのインストールに続いてブロック画像の作成などをしており、プログラミングが始まるのは開始13分のところからです。 さらに次の10分は「空のウィンドウ」を作るために時間を使っており、実質的にテトリスのプログラミングが始まるのは動画23分のところからです。 つまり、実質的に40分のプログラミングでテトリスを完成させています。 で、動画を見ながら同じようにやれば誰でもテトリスを作れ

    あなたもできる!C言語でテトリスを40分で作る方法 · DQNEO日記
    advblog
    advblog 2012/11/12
  • 必殺!Github導入に向けて上司を説得する時に使える資料まとめ · DQNEO日記

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

    必殺!Github導入に向けて上司を説得する時に使える資料まとめ · DQNEO日記
    advblog
    advblog 2012/10/31
  • 仕事で使ってる巨大SVNレポジトリをGithubに移管するためにやったことまとめ · DQNEO日記

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

    advblog
    advblog 2012/10/21
  • [Perl]ImageMagickとImage::Magickの違いについてそろそろ一言いっておくか。 · DQNEO日記

    Home Subscribe ImageMagick公式サイト ImageMagickはCPANでインストールできません。(何故ならImageMagickはPerlと関係ないから) CPANでインストールできるのはImage::Magickの方です。 問題は、CPANからImage::Magickを入れるとたいてい動かないことです。 ImageMagickとImage::Magickのバージョンが合わないのが原因です。 解決法 両方yum(とかapt-get)でインストールしてしまうことです。 $ yum -y install ImageMagick-perl これで両方がインストールされます。 こうすればバージョンの整合性についてはyumが面倒を見てくれるので、たいていちゃんと動きます。 PerlがImage::Magickを使ってImageMagickを操作するの図↓ ラジコン飛行機と

    advblog
    advblog 2012/09/20
  • httpd.confを削れるとこまで削ってみたら、たったの3行になった。 · DQNEO日記

    (この場合DocumentRootは /etc/httpd/htdocs/になります) 一方、CentOS6.3のApacheのデフォルト設定ファイルは何行あるかというと、 # wc -l httpd.conf 1009 httpd.conf 1009行もあります。 つまり差分の1006行は、いらなかったんですね。笑 Apacheの設定ファイルをみて恐怖感を感じる人は多いと思います。 まずはこのように3行の設定からスタートしてみてはいかがでしょうか。 きっと、恐怖感がなくなると思いますよ! 参考 apache2.2 設定ファイルを一度真っ白にして最小構成から編集してみる - xfanの日記 httpd.confについて調べたのでまとめたよ - ✘╹◡╹✘ 追記:使われているモジュール この3行設定でどのようなモジュールが使われているか調べてみました。 # httpd -M Loaded M

    advblog
    advblog 2012/09/02
  • いい加減、>/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日記
    advblog
    advblog 2012/06/14
  • [HTML5]世界一インストールが簡単なWikiをリリースしました。 #jswikimini - DQNEO起業日記

    IE6,7,8,9, Firefox, Google Chrome, iPhone, iPadで動く!(たぶんAndroidも) このシステムは非常に奇妙なアーキテクチャで、いろんなプラットフォームで動きます。 プラットフォームごとに動作モデルが異なります。(ここが奇妙な点です。) IE6,7,8,9で動かす場合 PCローカルにHTMLファイルをダウンロードして、それをIEで開いてください。 (セキュリティレベルを下げる必要があるかもしれません。自己責任でお願いします。) IEでの動作モデルは前作 JSWikiMini と同じです。 データはテキストファイルとしてPC内に保存されます。 USBメモリや共有フォルダに置いて使うこともできます。 (逆に、Webサーバ上に置いた場合は使えません) windows環境では、一種のネイティブアプリとして振る舞います。 この仕組みはActiveXObj

    advblog
    advblog 2012/05/14