NetBeans & Subversion

NetBeansでSubversionを使ってみました。
まずは、早速、[チーム]-[Subversion]-[チェックアウト]します。

1.レポジトリを指定してチェックアウト
m20141026-01

2.チェックアウトのフォルダ指定
リポジトリフォルダは管理の仕方により必要に応じて指定(例えばtrunk)
m20141026-02

3.リポジトリに管理するプロジェクトを作成
m20141026-03

4.これ以降は同じようにプレジェクトを作成するとリポジトリに管理されるようになります。
m20141026-04

さくらサーバ Subversion1.8.10

さくらサーバに、Subversion最新1.8.10をインストール忘備録です。

1. 最新版ダウンロード
・さくらにTelnet等でログイン
・ダウンロードして解凍

% mkdir local
% mkdir local/src
% cd local/src
% wget http://apache.mirrors.pair.com/subversion/subversion-1.8.10.tar.gz
% tar xvf subversion-1.8.10.tar.gz

2. 最近では、さらに必要な物を下記のコマンドでダウンロード(できるらしい)

% cd subversion-1.8.10
% ./get-deps.sh

3. Makefile, make
APRがないと怒られる。-with-aprで場所を指定しろということか。

% ./configure -prefix=$HOME/local -without-serf -without-berkeley-db
 -with-ssl
% checking for APR... no
configure: WARNING: APR not found
The Apache Portable Runtime (APR) library cannot be found.
Please install APR on this system and configure Subversion
with the appropriate --with-apr option.

You probably need to do something similar with the Apache
Portable Runtime Utility (APRUTIL) library and then configure
Subversion with both the --with-apr and --with-apr-util options.

4. apr, apr-utilをコンパイル
最初にaprをインストール

% cd apr
% ./configure -prefix=$HOME/local
% make
% make install

次にapr-utilをインストール

% cd ../apr-util
% ./configure -prefix=$HOME/local -with-apr=$HOME/local
% make 
% make install

5. やっとSubversionインストール

% cd ..
% ./configure -prefix=$HOME/local -without-serf -without-berkeley-db
 -with-ssl -with-apr=$HOME/local -with-apr-util=$HOME/local
% make
% make install

6.パスを通してバージョン確認、レポジトリ作成

% cd
% vi .cshrc
--> $HOME/local/bin にパスを通す
% source .cshrc
% svn --version
svn, version 1.8.10 (r1615264)
   compiled Oct 26 2014, 21:00:45 on x86_64-unknown-freebsd9.1
% svnadmin create quicktest

ペッパーくんとPython

ソフトバンクがロボット産業を立ち上げようとしてますよね。
そう、ペッパーくんです。
ペッパーくん
日本は工場などで製造用ロボットはありましたが、消費者市場に流通するようなロボットはアイボ以来かもしれません。

アイボと違うところは、プログラミングできるということです。ペッパーくんがインフラとして広まれば、今のスマホとアプリの関係のような市場が創出されるかもしれません。

・・・で、そのプログラミング言語ですが、C++とPythonだそうです。
情報処理分野で30年ぐらい仕事してますが、「Python」って「パイソン」て読むんですね。今まで、ずーと「フィトン」と言ってました。
python

昔、私の姉が「Yahoo」を「やっほー」と言っていたぐらいの勘違いでした。

wp_tag_cloudで本当にランダムにタグを取り出す

WordPressでタグクラウドを表示するにはwp_tag_cloudを使います。
wp_tag_cloud関数のタグ表示順は下記のようになっているようです。

1. デフォルトでは、タグ名順(’oderby’=>’name’)となる。
(’oderby’=>’count’)にするとタグ数順となる。

2. 上記の順番で指定した件数(’number’ => 50)の上位を取りだす。
(’number’ => 0)にすると全部取り出す。

3. 取り出した件数にて、表示順(’order’ => ‘RAND’)を変える。
(’order’ => ‘ASC’)にすると昇順になる。

※上記のような仕様なので、例えば1000タグがあったとして、そのうち50タグをランダム表示しようとした場合、結局1.2.のタグ名順かタグ数順の上位50タグを取り出すことになり、取り出した後にランダム表示するだけになります。つまり、1000タグのなかのいつも同じタグ50個が表示されてしまいます。

※1000タグの中から50タグをその都度、本当にランダムに取り出したい場合は工夫が必要です。もちろん1000タグ(全部)取り出せば、純粋にランダムに表示することができますが。

以上のことから、取り敢えず全部取り出してランダム表示にして、preg_match_allで文字列を配列にし、必要な件数をforeachで1件ずつ表示することにしました。

<?php
$tagcloud = array(
  'smallest' => 12,
  'largest' => 12,
  'unit' => 'px',
  'number' => 0,
  'format' => 'flat',
  //'orderby' => 'name',
  'order' => 'RAND',
  'exclude' => '',
  'include' => '',
  'link' => 'view',
  'taxonomy' => 'members_tag',
  'echo' => false
  );
echo '<div class="tag-cloud">';
  $tags = wp_tag_cloud($tagcloud);
  preg_match_all("/<a (.*?)<\/a>/is", $tags, $retArr);
  foreach($retArr[0] as $idx => $ret) {
    echo $ret . "&nbsp;";
    if(100 === $idx) {
      break;
    }
  }
echo '</div>'; ?>

結構、力技でしたね・・・。

CakePHP Hashクラス

最近、CakePHPのHashクラスが便利なので、積極的に使ってます。
例えば、こんな配列があったとして。

$user = array('User' => array(
    0 => array('id' => 12, 'name'=>'Maekawa'),
    1 => array('id' => 21, 'name'=>'Kawasaki'),
    2 => array('id' => 22, 'name'=>'Sasaki'),
));

こんな感じで検索して。

$search = 'Kawasaki';
$return = Hash::extract($user, "User.{n}[name={$search}]");

見つかった配列が返される。(複数あったときは、複数の配列が返されると思われます)

array(0 => array('id' => 21, 'name'=>'Kawasaki'));

foreachで回さなくていいので使い方によっては便利です。
(ただし、思ったような取り出しをしてくれない時もありましたが)