tohokuaikiのチラシの裏

技術的ネタとか。

2013-01-01から1年間の記事一覧

XSLの変数とそのスコープについて

XSLの変数には2つある。paramとvariable variableは変数なんだけど、どっちかというと定数に近い概念で一度設定すると上書きができない。 variable 上書きができない xsl:stylesheetの要素に記述することができて、その場合はグローバル変数になる param テ…

XSLTにおけるXMLのデフォルトネームスペースについて

ドはまり。変換元XMLでネームスペースを <ac:confluence xmlns="http://www.w3.org/1999/xhtml" xmlns:ac="http://www.atlassian.com/schema/confluence/4/ac/" xmlns:ri="http://www.atlassian.com/schema/confluence/4/ri/" > ってやってて、XSLで </ac:confluence>

XPathではまり

OR(もしくは、和集合)ではまり XPathで、「タグA、またはタグAの中にB/Cって入ってる場合はA/B/C」ってのを表現したくて、要するに <root> <A/> <A><B><C/></B></A> </root> で、//A と //A/B/C って2回書くのが面倒で1回で済ます方法を探してて。//A[. or B/C] じゃんって思ってたんだけど、…

「XSLT実践ガイド」を読んでて気になった雑多なメモ

[www.amazon.co.jp/dp/4756140653:title=XSLT実践ガイド] p.94 xsltプロセッサは文書で最初にルートノードを読み取る apply-templates <PLANETS> <PLANET> <NAME>Mercury</NAME> <MASS UNITS="(Earth = 1)">.0553</MASS> <DAY UNITS="days">58.65</DAY> <RADIUS UNITS="miles">1516</RADIUS> <DENSITY UNITS="(Earth = 1)">.983</density></planet></planets>

XSLTのメモ

PHPで validateOnParse = true; $xml->loadXML($xmltext); $xsl = new DOMDocument(); $xsl->loadXML($xsltext); $processor = new XSLTProcessor(); $processor->importStyleSheet($xsl); echo $processor->transformToXML($xml); だけのを用意して、$xmlte…

ConfluenceのPluginSDKを使ってて困ったことなどメモ(2)

(1)が多くなったので分割 Macroを定義しているJavaからパラメータを取得する方法 ここで困ってた人が居たのでコメントした通り。Java側で public String execute(Map<String, String> parameters, String body, ConversionContext context) throws MacroExecutionException {</string,>…

ConfluenceのPluginSDKを使ってて困ったことなどメモ

atlas-run で開発環境Confluenceが起動しない 起動したかに見えて、 com.atlassian.util.concurrent.LazyReference$InitializationException: java.lang.NullPointerException とか言って500エラーで起動していない。そういう時はシャットダウンして再度atla…

GoogleChrome拡張機能の作り方

公式ドキュメント https://developer.chrome.com/extensions/getstarted.html と、日本語の情報はじめてみよう | Chrome Extensions API リファレンスを参考にしてみたことのメモ日本語で入る情報のページの方は、この記事執筆の現時点では色々と違ってた。 …

スマートフォンで?FacebookのFB.ui()メソッドでfeedを使用する時の罠

facebookのFB.uiメソッドを使うと、モーダルポップアップでShareとかのリンクを出してくれる。 https://developers.facebook.com/docs/reference/javascript/FB.ui/こんな感じ。 FB.ui({ method: 'feed', link: "http://d.hatena.ne.jp/tohokuaiki/", redire…

Deferredの再帰

JavaScript - 再帰 with promise pattern - Qiitaの再帰。 var counter = 0; function fact(n) { var d = $.Deferred(); if (n > 1){ console.log("continue",n, ++counter); fact(n -1).done(function(result){ console.log("done", n,result, ++counter); …

mod_rewriteで処理を中止する時

何かの条件の時に、処理を中止して終わりにしたい時 RewriteCond *ここに適当な条件* RewriteRule ^ - [L] とすると、2行目のRewriteRuleは何もマッチするはずがないので何も行わないことになる。もっとメチャクチャな条件でも良いんだろうけど、これがおそ…

WordPressのelasticsearchプラグインを使ってみたいのでメモ

もうMySQLのLIKE検索だけはいやなんじゃーー!と思い続けて幾星霜。 SennaとかHyper Estraierとかいいなーとか横目で見つつ、そんなのを使う機会もなかったけど。elasticsearchっていうのが最近の全部検索ではイケてるしヤバいということで導入してみる。実…

mb_convert_encodingがUTF16を扱うと文字列を壊す件

php

旧聞で恐縮ですが、自分用まとめメモ。 2009/6/7 UTF-16(BOM 付き Little Endian) を mb_convert_encoding() で変換すると文字列が壊れる - t_komuraの日記 にて、komuraさんからの報告。 2009/8/16 komuraさんがPHP-JapanのPHP-devで投稿 PHP-dev - [PHP-de…

Reporting Pluginを使ってみる(2)

前回の続き。参考資料はこちらのドキュメント。このマクロを入力する際には、次の構造を理解しておくといい。 この見た目でConfluenceに入力することになる。Confluence4のエディターで言うとこんな感じに見えることになる。 外枠の設定 レポートの表示方法…

PostfixでMySQLのデータベースを覗いて転送する+ Virtual Domain

http://tohokuaiki.jp という会員サイトを何年も運営しているのですが、これのメール転送サービスというのをしたくなったのでその作業メモ。前提として、このサイトはROOT権限を持ってて*1MTAを使えること・・・です。 したいこと この会員サイトは、部活な…

Reporting Pluginを使ってみる(1)

Reporting PluginというConfluenceの統計情報を出してくれるプラグインがある。 スペースのページ数や、任意のラベルがついているページ数などはConfluenceにコアで付いていたり、ユーザーマクロを使ったりして計算できるが、それよりもっと詳しくデータを出…

Confluenceにおけるテンプレートの使い方

ConfluenceはWordなどで使うテンプレート機能を持っている。スペース共通で使えるグローバルテンプレートと、そのスペース内だけで使えるスペーステンプレートになる。作成すると、ページの追加時にテンプレートが選べるようになる。 どちらも機能としては同…

ロケールの一覧をPHPの配列とJSONで

ここの「推奨」の方だけ http://docs.oracle.com/cd/E26924_01/html/E27144/glset.html array ( 'name' => 'アフリカーンス語', 'loc' => array ( 'ZA' => '南アフリカ', ), ), 'ar' => array ( 'name' => 'アラビア語', 'loc' => array ( 'AE' => 'アラブ…

Atlassianユーザーグループ@株式会社ロフトワークに行ってきた話

最近Atlassian製品を使うことが多いので、HipChatは使ったことなかったのだけど、 5月23日(木) 19:00〜 Atlassianユーザーグループ@株式会社ロフトワーク(渋谷) #augj on Zusaar というのに参加した。 HipChatとは いわゆるチャットツールで、日本だとChatwo…

HTML4のエンティティの数字参照と文字実体参照の一覧

DTDが欲しかったのだけど、見つけられ無かったので書いた。http://www.w3.org/TR/html4/sgml/entities.html の記事を ]+>@smU'; preg_match_all($regexp, $ここにさっきのURLの記事, $m); で抜き出して整形しただけ 数字参照(10進数) 数字参照(16進数) 文字…

ApacheのProxyPreserveHost

ApacheでProxyするとき、ProxyPreserveHostをOnにしないとHost:をProxy先に持って行ってくれないそうだ。しらんかった。

register_activation_hookの変数のスコープではまった件

関数リファレンス/register activation hook - WordPress Codex 日本語版にもしっかり書いてあるのに・・・。 'カンマ区切りで設定'); register_deactivation_hook(__FILE__, 'uninstall_hook_some'); register_activation_hook(__FILE__, 'install_hook_so…

ini_get('memory_limit')で得られるファイルサイズを数値にする関数

php

メモ代わり。 134217728, 2G => 2147483648 * @param string * @retval int */ function memoryString2Int($string) { $byte = 0; if (preg_match("@^(\d+)([KMGT])$@", $string, $m)){ $powparam = 0; switch ($m[2]){ case "K": $powparam = 1; break; ca…

WordPressのXML-RPCでマルチブログにしている際にblog_idを使用しても意味が無い件

WordPressのXML-RPCはマルチブログを考慮していない(3.5でもソース見る限りそうっぽい)。下記のファイルをプラグインにしてしまって対応。 とりあえず、カテゴリー作るときだけほしかったのでcase "wp.newCategory":だけ。

WordPressのプラグインをUnitTestする

前の続きWordPress+PHPUnitで検索したところ、 WordPress › Support » Running WordPress tests with PHPUnit もあったのだけど、自分は http://stackoverflow.com/questions/9138215/unit-testing-wordpress-plugins からnb/wordpress-tests · GitHubを使用…

wp_enqueue_scriptでver=の引数をはがしたかっただけ

調べたメモwp-includes/class.wp-scripts.php の WP_Scripts::do_item() でやってるらしい。そこ見ると、WP_Scripts::default_versionってプロパティで、このプロパティは wp-includes/script-loader.php:56 $scripts->default_version = get_bloginfo( 'ver…

PHPUnitを使ったメモ

前もつかったけど忘れたので、メモ。対象にするのは、このWordPressプラグイン「PubMan Wordpress Plugin - MPDLMediaWiki」 インストールに追加して PEARでpear.phpunit.deをchannel discoverしてインストールした以外に # su - # pecl install xdebug $ pe…

Confluence4のユーザーマクロの中でユーザーマクロを使う方法を知るために、参考にするといいこと

Confluence3だと、 {section} {column} $body {column} {column:width=300px} {panel} *Contents:* {toc:maxLevel=3} {panel} {column} {section} とかできたけど、Confluence4だとそもそもWikiタグが効かないからこれだとダメ。 ということで、Confluence4…

PHPでWindowsのCD-ROMをイジェクトする

php

なんか、CD-ROMをイジェクトさせるスクリプトが流行ってる(?)らしい。 CD-ROM トレイを取り出せるIE用ブックマークレット、「ie-eject.vbs」作った。 - 葉っぱ日記 Big Sky :: CD-ROM トレイを取り出せる vim プラグイン、「eject.vim」作った。ということ…

FTPでバックアップを毎日1週間分取っておくPHPスクリプト

php

クライアントのバックアップ作成です。lftpとzip/unzipコマンドが必要。 これを毎日まわしておけばOK. #!/usr/bin/php