タグ

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

  • MySQLでGrant文でユーザを作成するのに違和感を感じる · DQNEO日記

    MySQLの入門記事で、「GRANT文でユーザを作成します」という説明をよく見かけます。 こんなやつ。 GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'localhost' IDENTIFIED BY 'パスワード'; 確かにこれでユーザ作成できますが、なんか違和感を感じるんですよね。 その英文からユーザが作成されるようには見えない 英語的になんかおかしい。 英語のGrant = 「許可する」でしょ?「指定したユーザに権限を与える」みたいな英文なのに、ユーザを作っちゃってる。おまけにパスワードも設定しちゃってる。 MySQLはユーザを作る別の方法として CREATE USER というのもある。GRANTでユーザ作れるとしたら、CREATE USERは何のためにあるの?とMySQL初心者の私は混乱してしまうわけです。 そこで公式マニュアルを読んで整理してみまし

    MySQLでGrant文でユーザを作成するのに違和感を感じる · DQNEO日記
    hamaco
    hamaco 2016/01/22
  • PHP7から予約語がメソッド名として使えるようになっていた件 · DQNEO日記

    PHPで"echo"とか"list"という名前のメソッドを作って文法エラーになった経験はないでしょうか? ほとんど知られていないのですが、実はPHP7からは"echo",“list"などの予約語がメソッド名として使えるんです。 <?php class Foo { public function list() { echo "list\n"; } public function echo() { echo "echo\n"; } public static function die() { echo "die\n"; } } $foo = new Foo(); $foo->list(); $foo->echo(); Foo::die(); PHP 5だと文法エラーになっていた $ php a.php PHP Parse error: syntax error, unexpected 'lis

    hamaco
    hamaco 2016/01/18
  • 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日記
    hamaco
    hamaco 2015/08/17
  • あなたのApache設定ファイルを劇的に読みやすく改善する12の方法 · DQNEO日記

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

    hamaco
    hamaco 2015/07/16
  • Chef-Soloを100倍楽しく使うためのrsoloというツールを作りました。 · DQNEO日記

    "rsolo"というツールを作りました。一言でいうと "knife-soloのシェルスクリプト版"です。 https://github.com/DQNEO/rsolo bashで書いた1枚スクリプトなのでインストールが超簡単です。 rubyなしで動きます。 なので、 「 knife-soloをインストールするためのGemfileを書くためのbundlerをインストールするためのgemをインストールするためのrubyをインストールするためのrbenvをインストーするための、えーと人生ってなんだっけ」 という苦行からあなたを開放してくれます。 Let's not do yakshaving !! インストールが超簡単! ダウンロードして実行権限をつけてパスを通すだけ! $ curl -sO https://raw.githubusercontent.com/DQNEO/rsolo/master

    Chef-Soloを100倍楽しく使うためのrsoloというツールを作りました。 · DQNEO日記
    hamaco
    hamaco 2014/10/08
  • [Chef]猿でもわかるExecute,Script,Bashリソースの違い · DQNEO日記

    結論 シェルスクリプトをbashで書くのであれば、下記はどれも変わらない。 "execute" リソースで "command" "script" リソースで "command" "script" リソースで "code" "bash" リソースで "command" "bash "リソースで "code" 迷ったら"bash"リソースで"code"属性を使えばよい。 解説 ソースコードを見てみるとわりと一目瞭然 公式マニュアルを見ても全然わからないのですが、ソースコードを見れば意外と簡単に仕組みがわかります。 https://github.com/opscode/chef/blob/master/lib/chef/resource/bash.rb ちなみに私はrbenv経由でgem install chefしたので、下記のような場所にソースコードがありました。 ~/.rbenv/versi

    hamaco
    hamaco 2014/03/27
    へー、そんな程度しか違わないのかー。
  • Git2.0がリリース!一足早く新機能を紹介するよ · DQNEO日記

    Git2.0がまもなくリリースされるようです。 Git v2.0 Release Notes リリースノートをもとに、一足早く新機能と変更点の紹介をしてみます。 (各機能についてはまだ動作確認しておりませんので、ここがおかしいなどあればご指摘ください) 引数なしのgit pushが安全になりました。 When "git push [$there]" does not say what to push, we have used the traditional "matching" semantics so far (all your branches were sent to the remote as long as there already are branches of the same name over there). In Git 2.0, the default is no

    hamaco
    hamaco 2014/03/13
  • LTSVログをパースする最強のワンライナー集 · DQNEO日記

    最初に結論 これ最強 cat accesslog | perl -F'\t' -nale '%h=map{split/:/,$_,2}@F;print"$h{time}\t$h{ua}"' なぜPerlワンライナーなのか? LTSVログを解析するには、Perlのワンライナーに限る。 なぜならPerlはほとんどのサーバにデフォルトで入ってるから。 Perl 5.8で動くワンライナーを覚えておけばどの環境でも使える。 「何にも依存しない」 これ最強。 基中のキホン まずは基形です。 これだけは絶対覚えてしまいましょう。 perl -nale 'print' % cat access_log | perl -nale 'print ' time:[22/Feb/2014:15:13:07 +0900] host:10.10.200.102 ident:- user:- method:GET

    LTSVログをパースする最強のワンライナー集 · DQNEO日記
  • ソースコード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日記
    hamaco
    hamaco 2013/11/18
  • [Perl]plenvとperl-buildとcpanmを一撃でインストールするChefレシピ · DQNEO日記

    手元のVagrantで動作確認済みです。 最後のAcme::Nyaaはおまけですw Chefもplenvも初心者なので、ここがおかしいとかあればTwitter (@DQNEO)で教えていただけると幸いです。 参考 kenjiskywalkerさんのレシピとhirobanexさんのレシピを参考にさせていただきました。 Plenvとperl-buildを走らせるchefのcookbookを書いた plenvによるPerl環境を構築するchefのオレオレサンプルレシピ ありがとうそしてありがとう。

    hamaco
    hamaco 2013/10/29
  • Ethnaの後継プロジェクトEthnam(えすなえむ)をリリースしました。 · DQNEO日記

    PHPプログラマのみなさん、こんにちわ。 そしてEthnaプログラマのみなさん、お久しぶりです。 Ethnaをforkして、Ethnam(えすなえむ)という後継プロジェクトをスタートしました。 よろしければぜひ使ってみてください。 https://github.com/DQNEO/ethnam 動機 Ethna家の開発が停滞してしまっていること、またver2.6の方向性が自分のニーズと合致していなかったことから、別の新規プロジェクトを立てることにしました。 名前について Ethnamのmは、"minus", "modified", "minimul"などの意味を込めています。 cpanmのmみたいな感じです。 Ethnaと何が違うのか? PHP 5.4と5.3 に正式対応 Ethna2.5との後方互換を最大限考慮 一言でいうと、Ethna2.5とEthna2.6.0beta4を混ぜこぜに

    hamaco
    hamaco 2013/06/23
  • 必殺!Github導入に向けて上司を説得する時に使える資料まとめ · DQNEO日記

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

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

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

  • 1