<?php function getFileList($dir) { $files = scandir($dir); $files = array_filter($files, function ($file) { // 注(1) return !in_array($file, array('.', '..')); }); $list = array(); foreach ($files as $file) { $fullpath = rtrim($dir, '/') . '/' . $file; // 注(2) if (is_file($fullpath)) { $list[] = $fullpath; } if (is_dir($fullpath)) { $list = array_merge($list, getFileList($fullpath)); } } return $li
こんにちは。海原です。 ここ最近、統計学が流行していますね。「統計学が最強の学問である」がきっかけになっているのでしょうか。数年前に比べてマーケティングが重要視される今日、統計の需要が増えたのかもしれません。私はまだこの本を読んでいませんが、読もうと思った矢先にたまたま統計ツールRに出会いまして、調べながら少しいじってみました。Rを使った感触から申し上げますと、SQLを叩いて好きなデータをピックアップするよりもずっと簡単で小気味良いのです。 他の統計ツールには色々な種類があるようですが、よく知られるものとしてIBMのSPSS (IBM)(有償)があります。 その点、RはMac/Win両方に対応しており無償です。またSPSSに劣らない機能を備えており、統計学者の間でデファクトスタンダードとなっているようです。 Rに関して検索すれば丁寧な解説サイトがたくさんありますので、インストールから何の心
こんにちは、牧野です。 最近、鎌倉の「コクリコ」というお店のクレープにハマっています。 今のところ、レモンシュガーとアンチョビサラダが一押しです。ほのかに甘い、縁がパリパリの生地に、強めの酸味や塩味がよく合います。 鎌倉に行くことがあれば、ぜひ試してみて下さい。 さて。 だいぶ前になりますが、AmazonのAWSを使う機会があり、その時にVPC(バーチャルプライベートクラウド)を使いました。今日はその話題です。 VPCは、クラウド上にプライベートなネットワークを用意し、その中にEC2サーバーを設置できるというものです。 まず、一つのローカルネットワークを作成し、さらにその中に複数のサブネットワークを作り、各ネットワーク内にサーバーを設置できます。あるサブネットは外部公開用、別のサブネットは内部専用というように、自由にネットワークを設定できます。 便利なのですが多少クセがあり、VPCとインタ
こんにちは、中川です。 ここ1・2年ですが、私の担当するプロジェクトでは、 PHPよりもJavaScriptの開発が多い状態が続いております。 JSのプロジェクトを重ねるにつれ、開発環境も段々と整理されてきましたので、 一旦、最近のJS開発で利用しているライブラリやツールなどをまとめてみました。 フレームワーク ●Backbone.js http://backbonejs.org/ JavaScriptのMVCフレームワーク。 何も使わない(もしくは我流)よりは、これを使って欲しいと思えるフレームワークです。 利用者が多く日本語情報も豊富にあるのと、フレームワーク自体が1500行程度と軽量なため、学習コストを低く抑えることができます。 ●AngularJS http://angularjs.org/ データバインディングを備えたフレームワーク。 高機能なテンプレートや、DIの仕組み、ルーテ
■同期 マスターと1台のスレーブのディスクへのWALを書き込み後にユーザにレスポンスする ■メモリ同期 マスタのディスクと1台のスレーブのメモリへのWALを書き込み後にユーザにレスポンスする ■スレーブ非同期 マスターのディスクへのWALを書き込み後にユーザにレスポンスする(スレーブへの書き込みは確認しない) ■完全非同期 マスター・スレーブともにWAL書き込みを待たずにユーザにレスポンスする(WALはマスターのメモリ上のみ) スレーブ非同期がMySQLにて弊社でもよく使っているレプリケーションの同期設定です。 今回の設定も「スレーブ非同期」にて設定をしていきます。 レプリケーションの設定(マスター側) それでは実際にマスター側のPostgreSQLの設定をしていきます! 1.レプリケーションをするためのPostgreのユーザを作成する psqlコマンドでログインをして、下記のコマンドでユ
こんにちは、久保田です。 ウェブサービスでは、ユーザのアクションに従ってバッチ処理を行わなければならないケースがままあります。この記事では、バッチ処理の手法の一つであるタスクキューイングをPHPとKestrelとSupervisorを利用して行うやり方の導入を紹介します。 なぜなにタスクキューイング ウェブサービスでは、ユーザのアクションに従って非同期にバッチ処理を行うようなケースがよくあります。 例えばflickrのような写真を共有するウェブサービスで言えば、ユーザが写真をアップロードしたあとに非同期でその画像の複数のサムネイル生成や加工をしなければならないケースがあります。 よく見られるのは、DBにバッチ処理のためのタスクデータを入れておいて、後でcronで定期的に起動するワーカープロセスからバッチ処理を行う方法です。このやり方には、ワーカーを複数プロセスで扱いづらい、処理がリアルタイ
2012/12/25 Monacaのアップデートに対応するためにソースコードを一部編集しました。 ------------------------------------------------------------------------------ こんにちは。松田です。 今日は弊社で開発しているスマートフォン用アプリ開発環境のMonacaと、JavaScriptベースのゲームエンジンenchant.jsを組み合わせて、スマートフォン用ゲームアプリの開発をしてみたいと思います。 Monacaの公式サイトはここ。 http://monaca.mobi/ enchant.jsの公式サイトはこちらです。 http://enchantjs.com/ja/ MonacaはHTML5ベースのコードからAndroidアプリとiOSアプリを同時に生成できるツールです。 HTML5ベースで実装されてい
GIFの基本構造 ------------------------- Header(13~?バイト) ------------------------- Block(?バイト) ------------------------- ... ------------------------- Trailer(1Byte) - "\x3b" ------------------------- GIF画像のフォーマットは、複数のセクションによって構成されています。基本構造としては、まずHeaderがあり、その後に任意の数のBlockがあり、最後にTrailerがあって終りとなります。フォーマットの末尾を表すTrailerを除いて各セクションの大きさは決まっておらず、パースしながらそのセクションの大きさは決定されます。従って、GIF画像の内部データを読み込む際には、GIFフォーマットではバイナリを上
■デーモン自動起動の設定 ○違いがあるもの ・自動起動の追加 /sbin/chkconfig --add (デーモン名); /sbin/chkconfig (デーモン名) on /usr/sbin/update-rc.d (デーモン名) defaults ・自動起動の解除 /sbin/chkconfig (デーモン名) off /usr/sbin/update-rc.d (デーモン名) remove ・自動起動設定の確認 /sbin/chkconfig --list Debianはない? ○共通 ・起動時に実行される デーモン名には、/etc/init.d内のシェルスクリプト名が入ります。 これは、CentOSの方が便利な気がします。 ■iptables ○ファイアウォール設定 /etc/sysconfig/iptables CentOSでは、ファイアウォール設定が上記ファイルに保存されま
こんにちは。小川です。 今日はvimのコマンドでも紹介しようかなと思います。 僕はテキストエディタは大体vimを使っています。 執筆をしたときもvimでやっていましたし、PHPもvimで書いています。 vimって色々コマンドがあって便利ですよね。友達とvimのコマンドを教えあったりして、度々「こんな便利なコマンドがあるのか!」と驚かされます。 今日はそんなvimのコマンドの中から普段使っていて便利だなーと思うものをいくつか紹介していきます。 ちなみにShiftを押しながらのコマンドは、アルファベットキーの場合は大文字で表記します。 エンターやエスケープを押下する必要がある場合はエンターやエスケープと記述します。「:」ではじまるコマンドモードはエンターを押さないと意味がないので、そこは省略します。 同時押しは+でつなげて表記し、基本的には1文字ずつ順番に押下します。 ■ページ移動 「ggで」
こんにちは井川です。今回は、symfonyに組み込んだPHPスクリプトを暗号化した際に。アプリケーションを正常に動作させる簡単な方法をご紹介します。この方法を使うことで、実際にionCubeでPHPスクリプトを暗号化しても正常に動作します(その他のエンコーダでも同様だと思います)。 symfonyは、libディレクトリ、apps/アプリ/libディレクトリ、apps/アプリ/module/*/lib以下のPHPファイルとクラスの対応関係を自動的に生成し、cacheディレクトリ以下にキャッシュファイルとして保存します(cache/アプリ/環境/config_autoload.yml.php)。そして次回からは、そのキャッシュファイルを用いてautoloadを実行します。このキャッシュファイル生成方法はいたって簡単です。上記libディレクトリ内の全PHPスクリプト(lib/vendor/sym
井川です。こんにちは。 Webシステム構築をしていると、動的なシステムと静的なHTMLファイル(ドキュメントルート以下)を同時に配置することがあります。symfonyを使ってこのようなシステムやサイトを構築すると、HTMLファイルへの特定のリンクでは404エラーが発生してしまいます。今回はこれを回避する簡単な方法をご紹介します。 それらのファイルへアクセスでき、簡単に同居できます。しかしながら、リンクの書き方如何によっては、問題が発生します。例えば、/outline/index.htmlへリンクを貼りたい場合(webディレクトリ以下に配置)、次のようなリンクはsymfonyのモジュールとindex.htmlのどちらを意味するのでしょうか。 リンク先でリクエストはsymfonyに渡され、symfonyではこれらのリンク先をモジュールと解釈します。そのため、仮に/outline/index.h
こんにちは、中川です。 今回もPHPには一切触れないで、node.jsについて書いていこうと思います。 主に開発時に便利なモジュールを紹介いたします。 ■今回紹介するもの ・nvm ・node-dev ・node-inspector ■nvm ・https://github.com/creationix/nvm node.jsはまだまだ開発途上ということもあり、頻繁にバージョンアップが行われています。 現在では0.2系のstableバージョンと、0.3系の開発バージョンがあります。 複数のバージョンをインストールして、簡単に切り替えられるようにするために、 開発環境では、nvmを使っています。 セットアップは非常に簡単で、
皆さん、こんばんは。笹亀です。 ご挨拶が遅くなりましたが、明けましておめでとうございます。 今年も良いブログを皆さんにご提供できるように頑張ります! 先日のニュースでAppleCEOのスティーブ・ジョブスさんが病気で休暇に入るとの心配なニュースをみました。急なことでとても心配です。1日も早い復帰をお祈り致します。 さて、本日はSubversion(svn)の基本コマンドからよく使うコマンドやこだわりの使用方法まで一気にご紹介します。いろんなサイトを観て確認しながら使うことが多いので、よく使うコマンドやこだわりの方法をメインにご紹介できればと思います。 まずは基本コマンドの紹介です。 ーーーーーーーーーーーーーーーーーーーーーーーー ■基本コマンド 1.バージョン管理されているモジュールを取り出す
あけましておめでとうございます。小川です。 本日はTwigでカスタムタグを追加する方法を紹介します。 ■Twig TwigはPHPで実装されたテンプレートエンジンの1つで、Python製のテンプレートエンジンのJinjaとほぼ同じ構文を持っています。 Webアプリケーションフレームワークsymfonyの次期バージョンでもあるSymfony2で採用されることが決定しており、Symfony界隈を中心に注目を浴びているテンプレートエンジンです。 <h1>Categories</h1> {% if categories|length > 0 %} <ul> {% for category in categories %} <li>{{ category.name }}</li> {% endfor %} </ul> {% endif %} 上記がTwigを使ったサンプルコードです。「{% %}」や
こんにちは、小川です。 今朝届いたPHPプロ!TIPS+ ダイジェストメールにも書いてありましたが、本日11月12日より「パーフェクトPHP」が発売となります。 ◆パーフェクトPHPとは パーフェクトPHPは、PHPをこよなく愛す(?)3人のPHPエンジニアが執筆した書籍です。以下のような構成です。 ・Part 1 「PHP ~overview」 PHPの基本 ・Part 2 「PHPの言語仕様」 PHPの言語仕様を詳細に解説 ・Part 3 「実践Webアプリケーション」 Webアプリケーション開発の基礎知識や、さらに先へ行くためのより現代にあったノウハウの解説 ・Part 4 「PHPセキュリティ」 サンプルコードを交えた様々なセキュリティの解説 ・Part 5 「テクニカルなPHPの活用」 SPLやPDOなどPHPが提供する便利なライブラリなどの解説 ・Part 6 「PHPレシピ」
デフォルトではXML形式の空要素を出力しますが、PHP 5.3.0から第2引数にfalseを指定すると<br>として出力できるようにもなりました。 この関数はもはやPHPerなら常識でしょうか? ■mb_strimwidth 文字を丸める関数です。 <?php $string = "アシアルは今、より多くのお客様にサービスを提供していこうと考えています。業務内容には多くの範囲が含まれますが、自身のアイデアを活かしたい、今までにないWebサービス を作りたい、PHP言語に興味がある、といった方は、アシアルで一緒に頑張ってみませんか?"; echo mb_strimwidth($string, 0, 60, '...', 'UTF-8');
こんにちは、亀本です。 本当は今日はアシアルの日常を書く、という名目のブログ当番なんですが、どうせエンジニアの日常なんてコード書いてますよね。 ということで、最近使ってみたTitaniumについて書いてみる事にしました。 さて、最近ちまたでTitanium Mobileがあつい!という話が出ていて、入門記事もいろんなところで上がり始めていますね。 Titaniumをご存じない方のために簡単に説明しておくと、JavaScriptを使ってiPhone/Androidアプリを作ってしまおう、という物です。 果たしてどんなもんか!と、手元で作成中だったアプリをTitaniumを使って再実装してみたのですが、世間で言われるとおり所々で凝った事をしづらいものの、想像していたよりはずっと、リッチ・簡単・高速に作れる印象でした。 早い、安い、うまいなんてぎゅうどn(ry その開発の際に、Objective
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く