タグ

2009年4月2日のブックマーク (18件)

  • PHP Extension を作ろう第1回 - まずは Hello World : DSAS開発者の部屋

    PHP で汎用的なライブラリを作成するフレームワークには大きく分けて2種類あるようです。 ひとつは PEAR のように PHP でクラスライブラリを作る方法、もう一つが今回紹介する PECL の様に PHP 自体を拡張するモジュールを書く方法です。 なぜ PHP Extension ? ひとつは、過去に C で書かれた既存のライブラリを流用したい場合に PHP Extension を作成すれば自然に PHP のコードに結合することが出来ます。また、PEAR の様に PHP で書いたコードと比べると若干高速になります。 それでは実際に helloworld という名前の PHP Extension を作成してみましょう。PHP のソースを展開すると php-x.x.x/ext というディレクトリがありますので $ cd php-x.x.x/ext $ ./ext_skel --extname

    PHP Extension を作ろう第1回 - まずは Hello World : DSAS開発者の部屋
  • PHP: array_map - Manual

    Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su

    PHP: array_map - Manual
  • PHPでコールバック関数にオブジェクトのメソッドを指定する - (DxD)∞

    Day by Day Infinity – Webな日々(HTML/XHTML/CSS/JavaScript/PHP/CMS) array_map()などのコールバック関数を引数にとる関数にメソッドを指定したい場合、PHPではどんな風に書けばよいかわからなかったので調べてみました。 ちなみに最初は次のようにしてみましたがダメでした。 array_map("$this->func", $var); 正しくは、PHPでコールバック関数にメソッドを指定したい場合、次のように配列を使って指定します。 array_map(array('クラス名', 'メソッド名'), $var); また、既にクラスのインスタンスが入ったオブジェクト変数がある場合は次のように指定します。 $obj = new MyClass(); array_map(array($obj, 'メソッド名'), $var); さらに、

    kamipo
    kamipo 2009/04/02
  • PHP extension からコールバックで hello, world を表示する « ku

    最近まわりでPHPのエクステンションを作るのがはやっているのでPHPのエンステンションを作ってみました。 実装されている関数からcallbackでPHP側で定義したユーザ関数を呼び出したいけどどうするの、というのがわからず、そもそもできるのかなーとおもってogiちゃんにきいたら “ext/standard/basic_functions.c の call_user_func とかみたらわかるよ” と教えてもらえたので、とにかく書いて動くようにするだけですみました。ありがとうございます。 とりあえずextensionを作るところまでは DSAS開発者の部屋:PHP Extension を作ろう第1回 - まずは Hello World を見てやればオーケー。ただはじめのスケルトン生成にフルパスで –skel が必要でした。(on OSX10.4) ./ext_skel --extname=

  • un-q.net

    This domain may be for sale!

  • YappoLogs: 悪のりで学ぶsvnadmin/trac入門実用編

    悪のりで学ぶsvnadmin/trac入門実用編 とある平和なある週末に事件は起こった xx:14 ([aopy]+) stfuawsc汚染なコードをciってまった xx:14 (A) ちょ xx:14 (B) ww xx:14 (C) www xx:14 (D) stfuawsc xx:14 {[ainOS]+} パネラーディスカッションという事で、直近のコミットした内容をこの世から抹消しなければならなくなった。 しかもtrac上のデータもあわせて..! 消したいリビジョンは100である。 svnのデータを消すコマンドだけで直前のコミットを取り消せないものかと調べたが、出来ないという事が分かった。 ちょっと冷静になって、svnadmin dumpとsvnadmin loadの組み合わせで何とか出来ないか?と考え$ svnadmin dump /svn/public > /tmp/publ

    kamipo
    kamipo 2009/04/02
    svnのいらないリビジョンはsvnadmin dump -r 0:99 | svnadmin load とかで消せて。trac-admin resync で同期が取れるそうです。
  • B::Foreach::Iteratorでforeachイテレータを進める - Islands in the byte stream (legacy)

    B::Foreach::Iteratorというモジュールを書いた*1。 use B::Foreach::Iterator 0.02; foreach my $key(foo => 10, bar => 20, baz => 30){ printf "%s => %s\n", $key => iter->next; } iter->next()*2はforeachループのイテレータをひとつ進め、その値を返す。 また、iter->peek()はイテレータを進めることなく、次のイテレータを返す。 このモジュールを実装するにあたってpp_hot.cのpp_iter()を読んだのだが、確かにforeach ($min .. $max)は内部で配列を生成していない。また、foreach (reverse ...)についても最適化が行われており、reverse()した一時配列を作るのではなく、イテレータ

    B::Foreach::Iteratorでforeachイテレータを進める - Islands in the byte stream (legacy)
    kamipo
    kamipo 2009/04/02
  • Mac OS X の / は g+w されてるらしい - kazuhoのメモ置き場

    DOC_ROOT="http://example.com/foo/" (cd tmp && wget -r $DOC_ROOT) mv `echo -n $i | perl -pe 's|^http:/|tmp|'`/* docMakefile.am の中で上みたいなコードを書いてたんだけど、$i なんて変数は存在しない ($DOC_ROOT の間違い) ので、 mv /* docに展開されて、しかもルートの主要ディレクトリは g+w されてるので実行可能... Mac OS X て管理者権限があれば su しなくてもシステムを破壊できるんですねorz それでも一縷の希望を抱きつつファインダから可視のファイルは / にリストアして、ついで生き残っていたターミナルで doc/bin/mv doc/bin /binとやった瞬間に OS がクラッシュ。二度と起動しなくなりました。 ううむ。とりあ

    Mac OS X の / は g+w されてるらしい - kazuhoのメモ置き場
    kamipo
    kamipo 2009/04/02
    chmod g-w /
  • Big Data Platform - Amazon EMR - AWS

    Amazon EMR Serverless is a new option in Amazon EMR that makes it easy and cost-effective for data engineers and analysts to run applications built using open source big data frameworks such as Apache Spark, Hive or Presto, without having to tune, operate, optimize, secure or manage clusters.

    Big Data Platform - Amazon EMR - AWS
  • Apacheの非RDB/キー・バリューストア 分散データベース「CouchDB 0.9.0」リリース

    Apache Software Foundationは3月31日、Apache CouchDB 0.9.0のリリースをアナウンスした。CouchDBは、ドキュメント指向(document-oriented)の非リレーショナル型の分散データベースで、JSON APIによるRESTfulなデータアクセスを提供する。 Apache Software Foundationは3月31日、Apache CouchDB 0.9.0のリリースをアナウンスした。CouchDBは、ドキュメント指向(document-oriented)の非リレーショナル型の分散データベースで、JSON APIによるRESTfulなデータアクセスを提供する。開発言語にはErlangが使われているが、クライアントはHTTPリクエストが利用できる任意の環境からアクセスできる。 Apacheの育成プロジェクト(Apache Incub

    Apacheの非RDB/キー・バリューストア 分散データベース「CouchDB 0.9.0」リリース
  • CakePHP: 高速開発 php フレームワーク。 Home

    New CakePHP 5.0 Chiffon. Faster. Simple. Delicious. What's new in version The migration guide has a complete list of what's new in. We recommend you give that page a read when upgrading. A few highlights from 5.0 are: PHP 8.1 required. Improved typehints across the framework. CakePHP now leverages union types to formalize the types of many parameters across the framework. Upgraded to PHPUnit 10.x

    CakePHP: 高速開発 php フレームワーク。 Home
  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

  • 10分で作るFirefoxアドオン - LukeSilvia’s diary

    今回は、はじめてFirefoxのアドオンを作ったので、調べたことをメモしておきます。難しいと思っていたのですが、簡単なものなら直に作れることを知りました(*´艸`) ※ 動作対象はFirefox <= 3.6 になります。 何を作るか ブログを書く時に使うような、「開いているページのタイトルとURLを一回の操作で、マークアップ形式でクリップボードにコピーする機能」を作成します。機能を使う方法は、「Shift+u」か、「右クリックメニューから選択」の2種類とします。 作り方 作り方を以下のステップに分けて説明します。 「copytitleurl」フォルダ作成 「install.rdf」作成 「chrome.manifest」作成 「chrome」フォルダ、「content」フォルダ作成 「copytitleurl.js」作成 「copytitleurl.xul」作成 「copytitleur

    10分で作るFirefoxアドオン - LukeSilvia’s diary
  • クラスがレシーバの場合のclass_eval とinstance_eval の違い - LukeSilvia’s diary

    ここ以前から分からなかったので調べてみました。 基 class_eval Module で定義されている なので、クラスやモジュールにしか使えない irb(main):009:0> String.respond_to?(:class_eval) true irb(main):011:0> Enumerable.respond_to?(:module_eval) true irb(main):012:0> 'xxx'.respond_to?(:class_eval) false instance_eval Object で定義されている なので、クラス(Class クラスのオブジェクト)にもオブジェクトにも使える irb(main):003:0> String.respond_to?(:instance_eval) true irb(main):004:0> 'a'.respond_to?

    クラスがレシーバの場合のclass_eval とinstance_eval の違い - LukeSilvia’s diary
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Re: goto &print

    kamipo
    kamipo 2009/04/02
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at

  • 予約変数 {$smarty} | Smarty

    $_GET、$_POST、 $_COOKIE、$_SERVER、 $_ENV および $_SESSION ( $request_vars_order および $request_use_auto_globals を参照してください) といった リクエスト変数 にアクセスするには、下の例のようにします。 {* ($_GET) http://www.example.com/index.php?page=foo から page の内容を表示 *} {$smarty.get.page} {* ($_POST['page']) フォームから送信された変数"page"の値を表示 *} {$smarty.post.page} {* クッキーに登録された"username"の値を表示 ($_COOKIE['username']) *} {$smarty.cookies.username} {* サーバ変数"