タグ

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

  • 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日記
  • [Subversion]svndumpfilterで、肥大化したレポジトリをダイエットさせる方法 · DQNEO日記

    Subversionのダンプ&リストアのおさらい 下記のようにダンプ&リストアすると、レポジトリを複製することができます。 svnadmin dump /path/to/myrepo > myrepo.dump svnadmin create /path/to/myrepo_new svnadmin load /path/to/myrepo_new < myrepo.dump 複製された新レポジトリは、旧レポジトリとまったく同じ内容です。(あたり前ですね) ここで、loadする前にsvndumpfilterをかましてやると、ダイエットすることができます。 何を捨てるかを決める レポジトリ内をよく吟味して、何を捨てるかを決めます。 例として、下記パス以下のデータを全て捨てたいとします。 /trunk/large/files/ /document/古い資料/ svndumpfilter はパイ

    [Subversion]svndumpfilterで、肥大化したレポジトリをダイエットさせる方法 · DQNEO日記
  • Git超入門:"git push origin master"の"push"と"origin"と"master"の意味がわからないあなたへ · DQNEO日記

    Home Subscribe この2行のコマンドを見て((;゚Д゚))ガクブルした経験はないでしょうか? 私は恐怖を感じました。 "remote"と"add"と"origin"と"push"と"master"の意味がわからん!! 人間(というか私は)は、わからないものが3つ以上同時に登場すると、ストレスを感じるものです。 この場合は5つもあるのでものすごいストレスです。 でもご安心を! これから超わかりやすく解説します! git remote add origin ... の意味は? ずばり、 URLに"origin"という短縮名(ニックネーム)を付ける したがって、git remote add unko .... と書いてもかまいません。 慣習上、"origin"という名前が使われることが多いというだけのことです。 そして、ここが重要なのですが 別にニックネームをつけなくてもよい。(

    Git超入門:"git push origin master"の"push"と"origin"と"master"の意味がわからないあなたへ · DQNEO日記
  • 引数なしのgit pushは危険なので気をつけましょう · DQNEO日記

    絨毯爆撃pushの例 いまmasterブランチに、未プッシュのコミットがあるとします。 ここで、新たにbr1ブランチを作ってチェックアウトします。 $ git checkout -b br1 master $ git branch * br1 master br1ブランチでコミットを作ります。 echo hello >> hello.txt git add . git ci -m "add file" 引数なしでプッシュします。 git push すると、どこに何がpushされると思いますか? 実は、master -> masterにpushされます。 masterがまだpushできる状態でない場合、これはかなり痛い。すごく痛い。頭が頭痛でおなかが腹痛。 しかもpushしたかった当のbr1ブランチはpushされないというオチ。(リモートにbr1ブランチがない限りは) この挙動は大半のユーザ

  • [php]本当は怖いcomposer (require-devの落とし穴について) · DQNEO日記

    composer.jsonの"require-dev"という仕組みには落とし穴があります。 使うときは十分気をつけましょう。 そもそも"require-dev"とは何か? 番環境で必要のない開発環境用のパッケージを記述する場合に使います。 { "require": { "symfony/http-foundation": "2.4.*", }, "require-dev": { "phpunit/phpunit": "3.7.*" } } 例えばこのように記述すると、番では"http-foundation"のみを使い、開発環境ではそれに加えて"phpunit"も使う、というようなことが可能になります。 うっかり"require-dev"パッケージを呼び出すコードを書いてしまうと事故になる。 例えばプロジェクトYAMLファイルを扱いたいと思って"symfony/yaml"を呼び出すコー

    [php]本当は怖いcomposer (require-devの落とし穴について) · DQNEO日記
  • 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を見たい場合はこ

  • 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日記
  • 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日記
  • DQNEO起業日記: Subversionアーカイブ

    仕事で使っていた4万コミットを超える巨大なSVNレポジトリを、Gitレポジトリに変換してGithubに移管しました。 (※巨大というほどじゃないかもしれませんが自分にとっては巨大だったということで) 今年の6月頃から少しずつ作業して10月にやっと終わったので、あしかけ5ヶ月もかかりました。 (※そればっかり5ヶ月もやってたわけではないです) 一筋縄ではいかずものすごい苦労しました。 他の人が同じ苦労をしなくてすむようにノウハウを公開します。 これから移管しようと考えている人はぜひ私の肩の上に乗っかって楽をしてください(笑)

  • 簡単!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日記
  • [Linux]Swap領域をクリアする方法 · DQNEO日記

    開発に使ってるLinuxサーバで、Swap領域が大量に使用されて動作が重くなっていたのでSwap領域を解放するためにやったことのまとめ。 単純にサーバ再起動してもよいのだけど、それだと作業中のEmacsが落ちてしまうので開発効率がおちる。 サーバ再起動させずにSwapを空にする方法はないかと試行錯誤してみたら、うまくいきました。 メモリに空き容量がある場合 Swap usedの容量よりも実メモリの空き容量の方が大きい場合、単純にスワップをoffにしてonにすれば解決します。 swapoff -a && swapon -a (swapoffコマンドが見つからない場合は /sbin/swapoff などをあたってみてください。) メモリに空き容量がない場合 「スワップをoffにする」とは、ディスクに退避されてるデータをメモリに移動させることです。 なのでメモリの空き容量が足りない場合はswap

    [Linux]Swap領域をクリアする方法 · DQNEO日記
  • [Subversion]直近のコミットをなかったことにする方法(レポジトリデータを削除) · DQNEO日記

    Subversionレポジトリのデータ構造 レポジトリ名を"sample"とします。 レポジトリのデータ構造は下記のようになっているはずです。 /path/to/sample/ README.txt conf db current format fs-type fsfs.conf min-unpacked-rev rep-cache.db revprops revs 0 1 2 3 4 [中略] 999 transactions txn-current txn-current-lock txn-protorevs uuid write-lock format hooks locks このファイル群を直接いじることで、リビジョンをお尻の方(数字の大きい方)から何個でも消していくことができます。 SVNレポジトリから直近のコミットを削除する方法 例えば最新リビジョンが r999 だとして、ラス

  • ソースコード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日記
    delegate
    delegate 2013/11/18
  • 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日記
  • あなたもできる!C言語でテトリスを40分で作る方法 · DQNEO日記

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

    あなたもできる!C言語でテトリスを40分で作る方法 · DQNEO日記
  • 1