yuu_nkjm blog


2009-07-16(Thu) 編集

[Pukiwiki] pukiwikiとプラグインのソースコード改変のログ

設定だけでなく,プログラムを書きかえたログ.

2009-01-30 monobook skin にtopicpathを追加

skin/monobook/monobook.skin.phpかな?

   <div class="autopagerize_page_element" id="content"<?php echo $background ?>>
    <h1 class="firstHeading"><?php echo $display_title ?></h1>
   <?php if (arg_check('read') && exist_plugin_inline('topicpath')) {
     echo '<div class="topicpath">' . do_plugin_inline('topicpath') . '</div>';
   } ?>
    <div id="contentSub"></div>

2009-06-20 sonots タグプラグインで表示されるページリストに日付を付ける

tag.class.php

 function get_tag_uri($tagtok)
 {
     return get_script_uri() . '?cmd=taglist&tag=' . rawurlencode($tagtok);
 }

 return get_script_uri() . '?cmd=taglist&sort=date&date=true&next=true&num=1:20&tag=' . rawurlencode($tagtok);

tagclass.inc.phpのaddurlを変更

 function display_tagcloud($limit = null, $relate_tag = null)
 {
         $addurl = "&sort=date&date=true&next=true&num=1:20";
 }

taglist.inc.php

 foreach ($links as $i => $link) {
     $items[$i] = $links[$i];
     if (isset($infos[$i])) $items[$i] .= ' ' . $infos[$i];
     if (isset($tocs[$i])) $items[$i] .= $tocs[$i];
 }

から↓へ

 if (isset($infos[$i])) $items[$i] = $infos[$i];
 $items[$i] .= $links[$i];

2009-01-19 Tagcloudのtaglistの振る舞いを変更

sonots/tag.class.phpを変更

function display_tagcloud($limit = null, $relate_tag = null)
{
    $view = new TagCloud();
    $tagcloud = $this->get_tagcloud($limit, $relate_tag);
    foreach ($tagcloud as $tag => $count) {
        $url = $this->get_tag_uri($tag);
        $addurl = "&sort=date&num=1:5&next=true&include=(titlestr=title))";
        $url = $url.$addurl;
        //var_dump($url);
        $view->add(htmlspecialchars($tag), $url, $count);

2009-01-19 listingプラグインの改造

lookupからURLベースでよべるようにactionタイプのメソッドを追加.

function plugin_listing_action(){
       global $non_list,$vars;
       $args = $vars;
       unset($args["cmd"]);
       unset($args["page"]);
       //var_dump($args);
       $cond = ltrim(rtrim(array_shift($args)));
       $lex = new LexicalAnalysis($cond);
       $exp = new NTExpression($lex->analyze());
 
       $result = $exp->parse();
       $result = $exp->check_non_list($result,PLUGIN_LISTING_NO_DISP);
       $result = $exp->check_non_list($result,PLUGIN_LISTING_NO_DISP_WITH_NON_LIST ? $non_list : "");
 
       $pages = array();
       foreach ($result as $page){
               $pages[$page] = '';
       }
       $decorator = Decorator::make($args);
       //var_dump($decorator->decorate($pages));
       return array('msg'=>'Listing Plugin', 'body'=>$decorator->decorate($pages));
}

最終行において,msgはページのタイトル,bodyは本文を表す.また,global $vars;でHTTPの引数が取れる.

2009-01-05 attachする時の枠のサイズを大きくした

attach.inc.phpにて

 <input type="file" size="96" name="attach_file" id="_p_attach_file" />

2005-10-18 TopicPathでTop(Frontpage)が表示されるように改造

自前でTopへのリンクを追加.これでルートにいるときでも,Topへのリンクが生成される.

 return '
'. 'Top > '. plugin_topicpath_inline()\ . '
';

2005-10-18 一覧を日本語でソート

pukiwiki.ini.phpを変更
 // Enable page-reading feature by calling ChaSen or KAKASHI
 command (0:Enable, 1:Disable)
 
 $pagereading_enable = 1;
  :config/PageReading/dict
ってファイルにルールを追加

2010-07-16(Fri) 編集

[R言語] 文字列をsplitした結果をイテレータとして使う

イディオム

for(element in unlist(strsplit(分割対象, セパレータの正規表現))){}

使用例

文字列を分割した結果をイテレータとして使いたいことがあるじゃないですか.Javaで書くと,ノリとしてはこんな感じ↓

String countries = "Japan|USA|EU";
for(String country :Arrays.asList(contries.split("\\|"))){
  System.out.println(country);
}

これと似たことをやろうとして,Rでこう書いたら意図通り動かなかった.

countries <- "Japan|USA|EU"
for(country in strsplit(countries, "\\|")){
	str(country)
}
> chr [1:3] "Japan" "USA" "EU"

そもそも分割した結果はなんやねんと見てみると

strsplit(countries, "\\|")
>[[1]]
>[1] "Japan" "USA"   "EU"   

というお答え.

リストの第1成分にベクトルが入っちゃってるのが悪いのか.そこで,

for(country in unlist(strsplit(countries, "\\|"))){
	str(country)
}
> chr "Japan"
> chr "USA"
> chr "EU"

とするか,

for(country in strsplit(countries, "\\|")[[1]]){
	str(country)
}
> chr "Japan"
> chr "USA"
> chr "EU"

としたらいけた.デバッグ開始時は,

as.vector(strsplit(countries, "\\|"))
>[[1]]
>[1] "Japan" "USA"   "EU"   

としてしまって,はまった.リストはベクトルだから,これでは何も変換されないんですね.


2011-07-16(Sat) 編集

[サーバまとめ][openSUSE][Tomcat] Tomcatの移行のまとめ

インストール

  • yastで"tomcat6"と"tomcat6-admin-webapps"を入れる.
  • tomcatのマネージャを操作するアカウントの設定を/etc/tomcat/tomcat-users.xmlに書き込む.
    <user name="admin" password="*********" roles="admin,manager,admin-gui,adm
    in-script,manager-gui,manager-script,manager-jmx,manager-status" /> 
    

データの移行

  • Tomcatのデータが/usr/local/share/tomcat以下,MySQLのデータが/var/lib/mysqlにあるので,その辺りも持っていく.
  • 移行元から/usr/local/share/tomcat,/etc/tomcat6を持ってくる.

トラブルシューティング

  • yastでTomcat6をインストール."/etc/init.d/tomcat6 start"としても,Tomcatが8080番で待ち受けてくれなかった./etc/tomcat6/tomcat6.confの設定で8080番ポートで待ち受けとなっているところがコメントアウトされているので,それを解除した後,tomcatを再起動したら,8080番でアクセス出来るようになった.その後は,tomcat6.confの該当行をコメントアウトしても解除しても挙動が同じになった.謎だ….
  • "lsof -i"で,ポートの使用状況を確認できる(ポートやファイルの利用状況を調べる(ファイルをオープンしているプロセスを調べる) - yuu_nkjm blog(2012-11-27))."lsof -i|grep 8080"として,何も表示されないので,上記のような操作を行った.8080番で待ち受けている状態で,"lsof -i|grep 8080"としても何も表示されなかった."lsof -i|grep tomcat"としたところ,tomcatがhttp-altポートで待ち受けていることが分かった.http-altが8080という意味らしい.ポート名でgrepかけるだけでなく,サービス名でもgrepせなあかんな.

トップ «前の日(07-15) 最新 次の日(07-17)» 追記 設定
2006|01|06|12|
2007|06|09|
2008|01|03|04|06|07|08|09|10|12|
2009|01|02|05|06|07|08|10|11|12|
2010|03|04|05|06|07|08|09|10|11|
2011|01|02|03|04|05|06|07|08|09|11|12|
2012|01|02|04|06|07|08|10|11|12|
2013|01|02|03|07|08|10|11|12|
2014|01|02|04|05|06|07|08|09|10|11|
2015|01|02|07|11|12|
2016|01|03|05|07|08|09|