前回カスタムRPMパッケージを作ったのですが、他の人に配布するにあたって、どうするのがいいでしょうか? パッケージを共有ディレクトリなどへ入れておき、使いたい人にそこから取得してもらってもいいのですが、パッケージをアップデートする度に同じことを行うのは面倒ですよね。 そこで、yumコマンドで楽にインストールできるよう、リポジトリを構築することにしてみます。 まずは、リポジトリ作成に必要なcreaterepoコマンドをインストールします。
![yumリポジトリの構築](https://cdn-ak-scissors.b.st-hatena.com/image/square/39e482c008d605a5b5f9180e98756d084baf2b67/height=288;version=1;width=512/https%3A%2F%2Fblog.asial.co.jp%2Fogp-logo.jpg)
こんにちは、増田です。 今回は”依存性反転の原則”についてObjective-Cで解説します(Objective-Cは筆者が好きな言語です)。 私はこの原則を理解する前は依存関係がスパゲティ状態になったプログラムを書いていました。 プログラムの処理はそうめんのように道筋の立った分かりやすいコードを書いたとしても、依存関係がスパゲティであることがよくあります。そのようなコードを書くと、一箇所を変更するために既に動いているところをいじらなければならず、この際のテストにかかるコストはとてつもなく膨大になってしまいます。 モジュール間の依存は必ずしも悪になるというわけではないですが、「意図して依存を残す」という意識がないと後で痛い目を見ます。依存性を残すところ、断ち切るところを意図してプログラムを組むことができるようになれば、何かしらの変更を迫られた際、変更箇所だけのテストでシステム全体の正常な動
こんにちは、久保田です。 PHP5.5 Alpha1が11/15日付けでリリースされました。この記事では以下のような新機能や変更を紹介します。 ・ジェネレータとコルーチンの追加 ・finallyキーワードの追加 ・配列や文字列のデリファレンスのサポート ・foreachの中でのlist表現 ・PCRE正規表現での/e修飾子が非推奨化 ・NEWS翻訳 ジェネレータとコルーチンの追加 PHP5.5での一番大きな新機能は、ジェネレータとコルーチンの追加です。文法にyield構文が追加されました。 まずは、ジェネレータを説明します。例えば以下の様なコードが動きます。 <?php function hoge() { yield "hoge"; yield "fuga"; yield "piyo"; } foreach (hoge() as $str) { var_dump($str); }
こんにちは、久保田です。 ウェブサービスでは、ユーザのアクションに従ってバッチ処理を行わなければならないケースがままあります。この記事では、バッチ処理の手法の一つであるタスクキューイングをPHPとKestrelとSupervisorを利用して行うやり方の導入を紹介します。 なぜなにタスクキューイング ウェブサービスでは、ユーザのアクションに従って非同期にバッチ処理を行うようなケースがよくあります。 例えばflickrのような写真を共有するウェブサービスで言えば、ユーザが写真をアップロードしたあとに非同期でその画像の複数のサムネイル生成や加工をしなければならないケースがあります。 よく見られるのは、DBにバッチ処理のためのタスクデータを入れておいて、後でcronで定期的に起動するワーカープロセスからバッチ処理を行う方法です。このやり方には、ワーカーを複数プロセスで扱いづらい、処理がリアルタイ
こんにちは、亀本です。ブログはだいぶご無沙汰となりました。 気が付いたらもう春ですね。アシアルにも新入社員が入ってきたりして、なんだか少しずつ環境の変化を感じる今日この頃です。 さて今日は、社内に自分達専用のミラー+独自 yum リポジトリを立ててしまおう!というお話です。 扱う話題としては、 ・ローカルにyum ミラーリポジトリを構築する方法 ・・+ローカルリポジトリの使用 ・独自yum リポジトリを作る方法 ・・+独自リポジトリの参照 といった内容について紹介します。 0. 専用 yumリポジトリを立てる事のモチベーション 管理するサーバの台数が少ないうちはいいのですが、管理規模がどんどん多くなっていったり、頻繁に新しいOSをインストールしたりするような場合、OSのパッケージ管理に気を配る必要が出てきます。 社内にCentOSが100台あったとしたら、そいつらが外部からyum upda
こんにちは、久保田です。 先月6月28日、PHP5.4 alpha1がリリースされました。PHP5.3では、名前空間や無名関数の追加など、言語機能に大きな追加が行われました。PHP5.4 alpha1 ではtraitが実装され、オブジェクト指向言語としてのPHPに大きな機能追加が行われました。他にも、<?=記法のデフォルト有効化、array dereferenceの追加、無名関数内の$thisの扱いの変化、JsonSerializableインターフェイスの追加など筆記すべき様々な機能追加、改善が見られます。この記事ではPHP5.4 alpha1で見えてきた新機能をサンプルコードを交えながら概観します。 とりあえずNEWSを訳す PHP5.4 alpha1の変更点を記述した NEWS ファイルを翻訳してみたのが以下です。 <?php trait A { protected $hoge = "
[実行結果] Creating [DIR] hello_world Creating [FILE] hello_world/Makefile Creating [FILE] hello_world/modules.mk Creating [FILE] hello_world/mod_hello_world.c Creating [FILE] hello_world/.deps #include "httpd.h"#include "http_config.h"#include "http_protocol.h"#include "ap_config.h" /* The sample content handler */static int hello_world_handler(request_rec *r){ if (strcmp(r->handler, "hello_world"))
例: pear2\text_diff\Diff zend\controller\FrontController ・名前空間は常に小文字+アンダースコア ・トップレベル名前空間にはベンダー名が入る ・ベンダー名は最短の名称(Zend Framework => zend, CakePHP => cake, symfony => symfony) ・サブ名前空間はいくつ定義してもよい ・名前空間セパレータはディレクトリセパレータに相当する ・名前空間中のアンダースコアに特別な意味はない まず、名前空間は小文字とアンダースコアで定義します。現状のPEARの規約に慣れ親しんだ方や、PerlやRubyなどをお使いの方には、アッパーキャメルケース(InvalidArgumentExceptionのように単語の先頭を大文字にする形式)でないことに違和感を感じるかもしれません。 これは、名前空間とクラス名を
extension=xdebug.so xdebug.profiler_enable = 1 xdebug.profiler_output_dir = /tmp と設定して、apacheのリロードを行えばXdebugが動作します。 これで、あとは、ブラウザで調査したいページにアクセスすれば、 /tmp/ 以下にプロファイルデータが作成されていきます。 次にプロファイルデータの閲覧の為に、 http://sourceforge.net/projects/wincachegrind/からWinCacheGrindをダウンロードしてwindowsマシンにインストールします。 あとは、WinCacheGrindで作成されたファイルを取り込めば、関数ごとの 実行時間をたどりながら確認することができます。 ※WordPress2.7.1日本語版インストール直後のTOPページで試してみた場合です。 We
こんにちは、スパイシーチキン担当の熊谷です。 近頃話題がめっきり出なくなってしまった!?スパイシーチキンですが、実は昨日のお昼ご飯に食べました。なんだかいつもよりチキンが軟らかく且つスパイシーでとても美味しかったです。 さて、他のネットワークで公開されているWindowsのファイル共有やSambaサーバにアクセスしたいと思ったことはありませんか?例えば自宅で使っているファイルサーバのファイルに会社からアクセスしたいとか。そんなときサーバ側にSSHでアクセスできる環境であれば、SSHのポートフォワードを使用してアクセスすることが出来ます。 追記: 仕組みの詳細はsmaba over ssh等でググるといろいろ出てきます。詳細等は以下のサイト等々を参照してください。 http://datafarm.apgrid.org/software/html/ja/user/smboverssh.html
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く