サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
全体で数百万行、1ファイル1万行超のPHPファイルも一秒以内で開き、開発していくことのできる大規模開発向けのvim+tmux環境を紹介しようと思います。この設定この環境で半年ぐらい安定して利用できています。(無論そんな1万行あるファイルや数千行で複雑性循環度500超のメソッド作るなよという話もあるんですが、すでに存在する魔獣とは向き合わなければならないのです...) なので数百万行レベルの大規模開発となると重すぎて使えない設定やプラグインもあります。そのようなものはきちんと外してあります(PHPの関数折りたたみ機能、デフォルトのPHPシンタクスハイライト、neocomplcache.vim、ツリーの構成に時間のかかるproject.vimなど)。 基本的にはターミナルエミュレーターとして、macならばiTerm2、windowsならばTeraTermまたはPuttyを利用することを想定して
2013/5更新:最新のvagrant-awsの仕様にあわせて修正2013/6更新:最新のvagrant-awsの仕様にあわせて修正Vagrant 1.1になって、VirtualBoxだけでなく、Amazon EC2やVMware Fusionのインスタンスを作れるようになったのはご存知のとおりだと思いますが、今回は、Amazon EC2上にVagrantを使ってインスタンスを作ってプロビジョニングする方法を紹介します。 AMIの準備なにはともあれ、Vagrantから起動するためのAMIを作ります。 昨日紹介した方法で自前のAMIを使っても、CentOSが公式に提供するAMIを使ってもよいですが、そのままではVagrantでは便利に使えないので、それらをベースにしてさらにAMIを作ります。AMIの元となるインスタンスの準備上記のとおりなので雛形とするAMIを使ってインスタンスをコンソールな
naoya さんによれば、「便利すぎて鼻血が出ました」という Vagrant を触ってみて、僕も Git を最初に触った以来の衝撃を受けました。 » Vagrant - naoyaのはてなダイアリー 開発者、それも gem で入れることから、Ruby を使う開発者の一部で話題になっているようなのですが、Vagrant はこれからプログラミングしようと思っている初心者や、開発環境を用意する必要があるデザイナーにこそ、強力なツールなんじゃないかと思っています。 Vagrant が便利に思えるひとつのケースとして、Windows の上に Linux の仮想マシンを用意する、というのが挙げられます。Web 業界にいると勘違いしてしまいそうになるのですが、世の中のほとんどの人は開発者も含めて Windows を使っているでしょう。そういう人が PHP や Ruby などを始めてみたいと思った時に、難
Vagrant 便利ですね。Web システム構築ではサーバ構築、設定を何度となく繰り返すので、こういった「作って、壊して、元に戻せる」環境が自分の PC にあるというのはとても重宝します。 ここでは Vagrant1.0 を使って、Mac OS X 上に CentOS サーバを構築します。また触ってみて便利だった機能もいくつかご紹介します。 1. VirtualBox のインストール 2. Vagrant1.0 のインストール 3. box ファイルのインストール 4. Vagrantfile の作成 5. 仮想サーバを起動 6. 仮想サーバを停止 7. 仮想サーバを削除 8. 仮想サーバでhttpdサーバを構築 9. sahara プラグインで、作って、壊して、元に戻せる環境を構築 10. 複数の仮想サーバを起動 11. 仮想サーバのエクスポート Q. OS X, ruby, gem の
本番環境にperlとかrubyとかnodeを入れるんだけど、もちろん system perl じゃやってられないので指定したバージョンのものを一般ユーザの管理下に突っ込みたい。 で、そういうのをこれまで perlbrew とか rvm とか rbenv とか nvm とか nodebrew とかでやってたんだけど、さすがに色々疑問が湧いてきた。バッチで単発実行するために eval "$(rbenv init -)" とかさすがにおかしくね? みたいな。 ということで tokuhirom method 的にインストール用の簡単コマンドを使って実行、あとはパスを通せばいいじゃん、ということにしようかと思う。 参考: サーバーのセットアップは perlbrew とかじゃなくてよくね? という時のライフハック - blog.64p.org これ、今朝までは Perl::Build をどうにかしてC
「一点いくらくらいになりますか?」 「あー、えっと…」 この質問が苦手だった。 イラストの発注単価という奴は、これがもう相場などあってなきが如しなのだ。それこそ出版社や編集プロダクションによって、倍どころか三倍も四倍も開きがあり、しかも仕事が終わるまで金額を提示してくれないなんてこともある。いざ終わって蓋を開けてみれば、あらまびっくり玉手箱なんてのも珍しくなかった。 そのため、あまりかけ離れた額を言うと仕事が取れなくなってしまうとあって、以前はよく相手の腹を探りながら、ドキドキしてこの質問に答えたりしていた。 しかし、最近はそれではもうダメなんだと思い始めていた。これではどうしても仕事単価にバラつきが出てしまう。ましてやそれを引き上げていこうと思うなら、自分の中にしっかりと「この仕事はこれだけの対価をいただきます」と、そうした主張ゴコロを抱かねばダメだと考えるようになっていたのだ。 相手の
こんにちは、開発担当の松本です。 前回のプラグイン紹介記事がわりと反響があったようですので、今回も便利プラグインをいくつか紹介します。 好みのテーマに変更できる: Simple Theme Plugin 左下のいつも出ている執事の顔が気になってくる人は多いと思います。 そんなときにはこのプラグイン。CSS と JavaScript を挿し込むだけの単純なプラグインながらその効果は絶大です。 利用するには、プラグイン導入後に Jenkins の管理 → システムの設定 → theme に追加する CSS と JS を指定するだけです。 プラグインのページにはサンプルのCSSファイルも用意されています。 とりあえず、執事の顔を消したいだけなら CSS に次のように記述すればよいです。 #main-table { background-image: none !important; } ページの
はじめに CakePHPで何らかのオブジェクトを操作する場合、対象となるオブジェクトの種類やどこからアクセスするかによって方法が異なる場合があり、それ以前にそもそもインスタンス化されていないことを知らずにアクセスしようと無謀な挑戦を試みたりすることがあります・・・よね?自分の経験上、始めたばかりの時はここで躓くことが結構多く、今でも分からずに調べることが多いですし、あまり使っていないと同じ事を何度も調べたりもしてしまいます。このエントリは、あるオブジェクト「に」あるオブジェクト「から」アクセスする方法について調べたものの備忘録です。 初心者のかたはどうぞ「 初心者の方へ 」にまず目を通してください。 内容は適宜追加・修正される可能性があります。 すべてCakePHP2系の情報です。1系の情報が今後追加されることはありません。 可能な限り公式ドキュメントへのリンクを張っています。日本語訳のあ
Bootstrapベースのサイトでサイトの使い方をステップ別にオーバレイ表示できる「Bootstro.js」 2013年04月04日- Bootstro.js Bootstrap Intro.js Bootstrapベースのサイトでサイトの使い方をステップ別にオーバレイ表示できる「Bootstro.js」。 サイト上の要素をハイライトさせて説明を吹き出しで表示することが出来るBootstrapベースのライブラリ。 サイトで何をやったらいいか分からない、というユーザ向けの分かりやすいチュートリアルをBootstrapベースのサイトで実現出来ます ますますBootstrapが便利になりますね 関連エントリ Bootstrapのテーマで良い感じに動くオートサジェスト実装jQueryプラグイン「MagicSuggest」 BootstrapをベースとしたフリーのUIKit「Flat UI」 Goo
https://metacpan.org/module/TOKUHIROM/App-scan_prereqs_cpanfile-0.02/script/scan-prereqs-cpanfile This script scans prerequisite modules from your code, and generate CPANfile. You can also list missing prerequisite modules. 日本語でもうしあげますと、 $ scan-prereqs-cpanfileと実行すると、カレントディレクトリから情報をかきあつめまして、cpanfile を生成して表示します。 $ scan-prereqs-cpanfile --diff=META.jsonまたは $ scan-prereqs-cpanfile --diff=cpanfileとすると
PHPメンターズのブログで時計オブジェクト(ドメインクロック)を導入してテスト容易性と意図性を高めるという記事が掲載されました。 この記事のように、アプリケーションでは現在時刻をどう扱うかをBEAR.SundayのSandboxアプリケーションで見て見ます。 @Timeアノテーション 現在時刻文字列を扱いたいクラスにはpublicのtimeプロパティを追加しメソッドにBEAR\Sunday\Annotation\Timeアノテーションを注記(アノテート)します。 use BEAR\Sunday\Annotation\Time; /** * Current time string * * @string */ public $time; /** * @Time */ public function onPut($id, $title, $body) { $this->
PHPでテストを書くというとPHPUnitがデファクトスタンダードで、次がSimpleTestでしょうか。 以前はインストールも大変でしたが、今となってはcomposer使えば楽ですし、実績もあります。 でも、本当にこの2択でPHPらしい開発ができていますか? たとえば、テストケースのクラスを用意することが前提になります。 ちょっとPHPのコードを書いてテストしたいときもです。 たとえば、以下のようなロジックを書きたいとします。 <?php $users = [ '太郎' => 'male', '花子' => 'female', '一郎' => 'male', ]; // この$usersから男性('male')のものだけを抽出したい $males = [ '太郎' => 'male', '一郎' => 'male', ]; ?> 普通にPHPUnitでTDDでとなると、それなりに面倒です
PHPユーザーであれば、PHPが標準で持つ多くの内部(ビルトイン)関数や定数には日常的にお世話になっていることでしょう。これらの内部関数・定数はPHPの便利さの象徴といえます。しかし、内部関数や定数の使用はテストのしやすさを低下させる原因となります。以下のコードを見てみましょう。 <?php ... class CollectingType { protected $type; protected $expectedSuperTypes = array(); ... public function isTest() { if (in_array($this->type, $this->expectedSuperTypes)) { return false; } else { foreach ($this->expectedSuperTypes as $expectedSuperType)
第一弾はこちらPHP アプリケーション開発のために Eclipse に入れてるプラグインと設定。 ちょっと今の環境が変わったので再度まとめてみる。 Eclipse 本体 [link]Eclipse 4.2.2 をチョイス。パフォーマンス向上、様々なバグが修正されてるようです。ただし後述する Eclipse 3.8.x にあった個人的にはスーパー便利機能がなくなってしまっています。まあ代替案はありますがとっても残念。 ダウンロードEclipse Downloads [http://www.eclipse.org/downloads/] から Eclipse Classic をダウンロードします。ぼくは Mac ですが、~/Applications/eclipse-pdt として展開します。 本体更新Help -> Install New Software... Work with: The
こんにちはこんにちは!! アプリ作ってますか! アプリやゲームの中で使う文言って、意外と大事なんですよね。 ちょっと間違えてるだけで、すごく安っぽく見えてしまうし、 言い回しひとつで、使い勝手がずいぶん変わったり…。 そんなわけで、ガイドラインって程のものではないですが、 文言を書く際に、ちょっと気をつけたいことなどを書いてみたので、 もしよかったら参考にしてみてくださいね。 ・漢字をひらく 漢字をひらがなにします。 迷ったら新聞紙などのルールを参考にすると良いかもしれません。 意外と漢字を「ひらいて」います。 極端な例だと、五月蠅い(うるさい) などです。 漢字変換できるからといって、それが正義ではありません。 簡単な漢字でも、 「下さい」→「ください」 「出来る」→「できる」 「全て」→「すべて」 「等」→「など」 などは、ひらくことを検討すると良いと思います。 (参考) 表記規則:企
サービス終了のお知らせ NAVERまとめは2020年9月30日をもちましてサービス終了いたしました。 約11年間、NAVERまとめをご利用・ご愛顧いただき誠にありがとうございました。
前回、Jenkinsのインストールについて書きました。今回は、Jenkinsでビルド・パイプラインを構築する話です。 ビルド・パイプラインとは? ビルド・パイプラインとは、ビルドのプロセスを分割して順番に実行していくことです。例えばビルドの流れとして、コミット→静的解析→コンパイル→ロジック層のユニットテスト→UI層のユニットテスト等があったとします。これを1つのジョブとして登録するのではなく、1つ1つのジョブとして実行し、成功した場合のみ次のステップに進めるようにします。これがビルドパイプラインです。 メリットとしては、どの工程で失敗しているのか解りやすいことが第一にあります。またJenkinsの特性を活かして、特定のジョブを並列で動かしたり出来るので効率化も出来ます。また、更に検証済みマージなど、高度な活用にもつながります。 Jenkinsでビルド・パイプラインの構築 元々Jenkin
id:echizen_tm さんの記事「ウェーブレット木の効率的で簡単な実装 "The Wavelet Matrix"」から始まったウェーブレット行列ブームから半年以上が過ぎ、すでに枯れた技術として確立されつつある感があります。 …嘘です。 日本以外ではあんまり来ていません。 理由としては、やはりアルファベット圏では単語境界が明確であるため、こちらの記事で書かれているような「キーワード分割の難易度」といったことがあまり問題にならないということがあるかもしれません。 まあ、そういうわけで局所的に来ているウェーブレット行列ですが、日本語をはじめとする単語境界のない言語圏にとっては重要なネタであると思うため、解説記事を書き直して*1みようと思います。 ウェーブレット行列でできること 主となる操作は、文字列に対する 定数時間の rank() と select()*2 です。 rank() は、「文
Web 開発してると、ソースを編集して、ブラウザーをリロードして、という作業の繰り返しになりがちだ。ソースを編集したら、自動でブラウザーをリロードしてくれるような夢のツールがあれば便利そうだ。 この分野では CodeKit や LiveReload などが有名なんだけど、もれなく有料だったり GUI だったりする。そこで、LiveReload のオープンソースな部分を参考にしつつ、コマンドラインで使える LiveReloadX というものを作ってみた。 特長はこんなところ。 Node.js を使ってるので Windows/Mac/Linux 問わずに動かせる 開発環境のブラウザーだけでなくスマートフォンのブラウザーもリロードできる 無料 インストール方法 インストールは超簡単! Node.js をインストールする。 コマンドラインで npm install -g livereloadx を
追記 2013-03-04 [twitter:@dankogai] さんにも言及されてました>< 404 Blog Not Found:perl - soloで任意のコマンドを期限付きで排他実行する 追記 2013-03-01 つづきを書きました。 続・プロセス間の期限付き排他ロック - (ひ)メモ 追記 2013-02-27 コメント欄でのやりとりの通り、穴がある(クリティカルセクションに複数プロセスが突入する可能性がある)のでちょっと出直してきます!! やりたいこと プロセス間の排他的実行を制御したい 一定時間経過したら実行できるようにしたい 例えば、フェイルオーバーを実行するスクリプトは、何度も実行できるとフェイルオーバー/バックを繰り返してフラップするので、一度フェイルオーバーしたら一定時間は実行できないようにしたい 実装 シンボリックリンクを使って排他制御する 期限切れは、シンボ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く