TL;DR PHPで動くファミコンエミュレータを作った php-terminal-nes-emulator画面描画は点字を使って文字出力コントローラは標準入力からfread() 経緯 2016年の2月にPHPで動くゲームボーイのエミュレータ、php-terminal-gameboy-emulator に衝撃を受けて、その実装の解説を勉強会やカンファレンスでトークしたりSoftware Design誌に書いたりしました。(*1) カンファレンスでのトークでは時間の都合もあって全体のごく一部しか話が出来ないのですが、Software Design誌では誌面をたっぷり頂いてCPU、メモリアクセス、画面表示とphp-terminal-gameboy-emulator のほぼ全域を解説出来たので満足し、その熱は落ち着いていました。 そんな中、9月に開催されたbuilderscon tokyo 201
変数の内容を確認する場合、PHPではvar_dump、var_export、print_rなどを使いますが、どれを使うのがベストなのでしょうか。 それぞれの違いを確認しながら、考察していきたいと思います。 var_dump — 変数に関する情報をダンプする この関数は、指定した式に関してその型や値を含む構造化された情報を 返します。配列の場合、その構造を表示するために各値について再帰的に 探索されます。 引用元:PHP: var_dump - Manual var_dumpは、変数に関する情報をダンプしてくれるもので、配列などの要素数や値のデータ型まで細かく出力してくれます。戻り値はありません。 <?php $array = array( 'key1' => 'hoge_1', 'key2' => 'hoge_2', 'key3' => 'hoge_3' ); var_dump($arra
こんにちは。最近メルペイに異動になった @hiraku です。 2018年3月10日(土)に、PHPerKaigi 2018というイベントで登壇してきました。「PHPStanで始める継続的静的解析」ということで、メルカリで使用しているPHPStanというツールについて解説しました。 phperkaigi.jp 発表内容を短くまとめると メルカリではPHPStanというツールをCIフローに組み込み、PHPコードの静的解析を行ってコードの信頼性向上に努めています。 PHPStanはautoloadファイルを解釈し、一部のコードを実行することで解析の高速化を行っており、よくできています。 とはいえ、PHPに対して可能な解析に限界はあるので、テストも合わせて行っていきましょう。 大事なのは、品質向上のアプローチが用意され、心配せずにリリースできることです。 autoloadを認識するということ ス
休日個人開発で学ぶテストコード! 画像に“集中線”を合成するツールを作ってみよう プライベートでも何か作りたい! そんなときの「今日からはじめる休日個人開発」シリーズ、第二弾はテストコードを書きながら簡単なMVCモデルの画像加工ツールを作ってみましょう。好きな写真に集中線を合成できます。 皆さん、プライベートで何か開発していますか? 「何か作りたい」という気持ちはあるものの、いまひとつ何から始めたらいいのか分からず、動けないままの人も多いと思います。 そんな皆さんのために、「仕事以外にも休日に個人で気軽に何かを作ってみよう!」という企画の第二弾です。今回は、第一弾で用意した開発環境を使って、画像を加工するツールを実際に作っていきます。 せっかくですので、ただ作るだけではなく、テストコードも一緒に書いてみましょう。最近は、CI(継続的インテグレーション)やCD(継続的デリバリー)も一般的にな
2014年に書いた PHP CS Fixer の記事 が今でも読まれているのですが、2016年末にリリースされた PHP CS Fixer v2.0 で後方互換のない変更が多く入っており情報が古くなっているため、改めて v2 について書いてみようと思います。なお現時点での最新版は v2.1.2 となります。 fivestar.hatenablog.com PHP CS Fixer とは PHP CS Fixer は PHP コードをコーディング規約 (CS = Coding Standards) に沿って補正してくれるライブラリです。歴史を辿ると、元々は Symfony のプロジェクトリードの fabpot 氏が作成したもので、 PSR-½ 、あるいは Symfony のコーディング規約 に沿ってコードを補正する機能が実装されています。 github.com チームでコードを書くときはコー
学生の頃からラジオを聞いて育ってきたので、技術系のPodcastが好きで色々と聞いています。 日本語で PHP 界隈の話題について話すPodcastが無かったので、はじめてみることにしました。 「PHPの現場」というPodcastです。 PHP がメイントピックにはなりますが、PHP の開発現場で出てきそうな話題なら、それ以外の技術や話題についても扱っていくつもりです。 私がお話したいゲストの方をむかえて対談(雑談)形式でざっくばらんに話していきたいので、色々な方にお声がけしていこうと思います。その際は、よろしくお願いしますm(_ _)m Podcast配信環境 Podcastを配信する上で、どうしようかと迷ったのは配信環境です。 SoundCloud などのサービスを利用することも考えたのですが、どうせなら作ってしまおうと思い、自作しました。(実は、過去にPodcastの配信を行ったこと
機能は「カンバン」のみ Trello は有名なトヨタの「カンバン」方式を利用できるウェブアプリです。 タスク管理として、有名な「JIRA」に似た機能を無償プランで使えるという面もあり、利用されている方も多いと思います。 「カンバン」の他に、Slackなどの他サービスと連携できたり、アドオンで機能強化したり、期限を決めたり、ボードを他ユーザと共有することができます。 自分的には「カンバン」さえ使えればよかったので、このアプリで利用できるのは「カンバン」だけです。 必要があれば、個々に好きなものを入れられるよう、基本となるものを作ったつもりです。 そのため、ライセンスは MIT にしてあります。ご自由にお使い下さい。 GitHub https://github.com/mikiakira/php-simple-kanban 使っているもの PHP 5.6+ (PDO is required)
CLI版のPHPをgdb上で動かしつつ、内部的なデータ構造を覗き見ることができるようなDockerイメージを作ってDocker Hubにアップロードしました。Docker環境さえあればすぐに動かすことができます。 このイメージを動かせばCのコードを書かなくてもPHP内部のデータ構造を確認することができます。PHPの内部構造を詳しく知りたい、というような人は参考にしてみてください。 準備 Macの人はDocker for Macを用意しましょう。他のOS上でも同様にDockerをインストールしてください。また、イメージの圧縮時サイズが200MB程度ありますので、それなりのネットワーク環境で遊ぶことをオススメします。 起動 Docker 1.10以降ではseccompにより一部システムコールが制限されているため、コンテナ内でgdbによるデバッグができません。期待通りにgdbを動かすにはコンテナ
PHP 5からPHP 7への移行で、Tumblrはレイテンシが半分、CPU負荷も半減。テストツールでPHP 7への移行に問題ないかをチェック PHPの10年ぶりのメジャーバージョンアップとして昨年12月に登場した「PHP 7」は、PHP 5と比べて2倍以上の実行速度を実現するとリリース前からPHPの生みの親であるRasmus Lerdorf氏自身が説明してきました。 PHP 5からPHP 7へと内部システムのアップデートを行ったTumblrはその成果をブログで発表し、たしかにPHP 7のへ移行したことで実行速度が2倍になったことを裏付けています。 静的解析と自動テストでPHP 7への移行に問題がないかを確認 Tumblrが公開したブログ「Tumblr Engineering — PHP 7 at Tumblr」によると、Tumblrがその内部で稼働しているシステムをPHP 5からPHP 7
最近H2Oというnginxよりも早いと言われているらしいWebサーバを知ったので、取り敢えず入れてみました。 またコレを機に、HHVMよりも早くなったらしいPHP7も気になっていたので、そちらも入れてみました。今のところWordPressは動いているみたいです。 ちなみにCentOS7です。 目次 H2Oの用意 H2Oのインストール H2Oの設定 H2Oの起動・停止 PHP7をphpenv+php-buildでインストール phpenvのインストール php-buildのインストール php-buildでPHP7をインストール PHP7でphp-fpmを設定・起動 H2Oの用意 H2Oのインストール 「Development Tools」をインストールしておけば、わりとサクッとインストール出来るようです。後は依存パッケージをインストール。 yum groupinstall "Develop
こんにちは!ChatWork CTOの山本です。 ChatWorkでは一年前に、PHPの独自フレームワークでつくられた大規模システムを、Scalaを使ってゼロベースでつくりなおすという決断をしました。 Scala採用までの経緯を三行で: カウボーイ開発で約4年間積み上げてきたPHPのシステムがもはや限界ゼロベースでつくりなおそうと開発合宿を開催。満場一致でScalaに決定!しかし社内にScalaを書ける人は誰もいないのであった・・(どうすんの・・?)参考記事: チャットワークの新しい開発言語とフレームワークを決める開発合宿を開催!その全貌を丸公開します。 というわけで勢いのままScala採用を決めたはいいものの、ここからどうしよう・・・という状態でした。 そこから約一年。ChatWorkのScala開発はどうなってるの?とご質問いただく機会も増えましたので、現在の状況含め、Scalaってど
Photo by Robyn Jay こんにちは。谷口がお送りします。 プログラミングをこれから学ぼうとしている方の中には、「PHPを使えるようになりたい」という方も多いかと思います。 PHPは日本国内に20万人もの開発エンジニアがいるともいわれ、求人案件も非常に多い言語です。広くWeb系のサービス開発、ゲーム開発などで利用されており、少し前までその多くがLAMP環境(Linux+Apache+MySQL+PHP)と呼ばれる組み合わせの開発環境で開発されていました。最近では、CakePHPやSymfonyといった、よりWebアプリケーションを素早く作れるフレームワークによる開発も増えています。 実際のサービスでは、Facebookは現在はHackというPHP互換の言語で作られていますが、少し前まではPHPで開発されていました。また、国内ではグリーやpixivなどのサービスもPHPで開発され
Photo by ITU Pictures こんにちは。谷口です。 プログラミング初心者の方々、プログラミングを学びたい方々は、普段どのような方法で学習をしていますか? 最近は、Web上でコーディングができるサイトや、プログラミングを学習できる動画コンテンツなど、独学での勉強に役立つサービスが増えてきました。そこで今回は、初心者でも独学でプログラミングの基礎を楽しく学べるサービスを11件ご紹介いたします。 ■初心者でもプログラミングして実行できる!学習サイト ◆1.Codecademy http://www.codecademy.com/learn 学習可能言語:HTML/CSS、Ruby、Python、PHP、JavaScript、jQuery 対応言語:英語(一部日本語) 料金:無料 Codecademyは、実行環境を構築しなくても、書いたコードを実行できます。サインインすると実際にW
Photo by Jason Cartwright こんにちは。谷口です。 プログラミングの勉強で「ちょっとあの開発言語の勉強をしてみたいな~」「実際にコードを書いて動かしてみたいな~」という時に、ハードルとなるのが「実行環境の作成」だと思います。 そんな時に役立つのが、書いたコードをブラウザ上で実行できる「オンライン実行環境サービス」です。 今回は、実行環境の手間を省いて「書いたコードをブラウザ上で実行できる無料サイト」を紹介します。 目次 ・複数言語対応系 ・ideone ・CodePad ・paiza.io ・repl.it ・Codecademy ・runnable ・Wandbox ・SourceLair ・JavaScript系 ・JSFiddle ・jsbin.com ・Codepen ・jsdo.it ・PHP系 ・PHPfiddle ・PHP Sandbox ・Write
最近はようやく本格的に vim を使ってコーディングするようになりましたが、まだまだ慣れない & 微妙な不満があったりします。 移動系がキーボードで全てできるのは、確かにかなり楽なように思えます。 話が変わりますが新しく違う言語を勉強しようと思う時、何を一番初めに調べますか? 構文はもちろん、インストール方法とか色々ありますよね。ボクが一番重要視してるのはデバッグ方法です。 どうやってデバッグするか。まずその方法などを調べます。 LL系言語の方は 変数を printしたりする方が多いらしいのですがボクはあまり好きではないので PHPの場合は Xdebugを利用してステップ実行させたりしてます。 print させるのが嫌いな理由は一つです。 「コードを書かなくちゃいけない」 これに尽きます。なんでデバッグするのにコード書くんだよ!って思ってます。 前置きが長くなりましたが、素晴らしいプラグイ
プログラミング言語には様々なものがありますが、その中でも比較的人気なのがPHPです。PHPはHTMLファイルに直接記述できるスクリプト言語であり、その手軽さや言語自体のわかりやすさなどから、主にWebサービスの制作でその人気を獲得しています。 PHPは他の言語に比べてとても簡単な仕様となっており、初心者でもすぐにマスターすることができるものです。そして、同じプログラムを書く際でも複数の書き方が可能になっており、使用者に合わせた柔軟性も兼ね備えています。 そのような様々な書き方があるならば、なるべく手短でスマートなコードの書き方をマスターしたいものです。コードをスマートに記述することは以下のメリットがあります。 見やすくなることで保守・管理性の向上 コード量の短縮 記述時間(制作時間)の短縮 組織でのプログラミングルールの簡潔化が可能 このようにメリットが様々あるので、同じプログラムであれば
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く