投稿

5月, 2016の投稿を表示しています

C++ではコンテナを渡してはいけないらしい

経度のように周期的なデータが長さn配列xに格納されているとする。添字が0から始まるとして,x[n]はx[0],x[-1]はx[n-1]の値を返すようにしたい。[]の定義は後回しにして,今回は関数を書いてみる。
C++でtemplateを使っておけば,特定の型に依存しないようにするジェネリックプログラミングだと思っていた。しかしC由来の普通の配列には使えない。そもそもコンテナを渡したり,返したりすると,一般性や効率が損なわれるのでご法度とのこと。
反復子を渡すようにして,負でもコンテナのサイズより大きくても良い添字iでの値を返すジェネリックな関数を書いてみた。
https://gist.github.com/tenomoto/79f5fb60783d24dcb8bf7910da4052c6
ある値以上になる添字を返す関数は,次のように書いたらよさそうだ。
https://gist.github.com/tenomoto/17ff04f4a1445302bb19a439c8c2546b
反復子として,ベクトルはx.cbegin()とx.cend()があるが,valarrayにはないのでstd::begin(x)とstd::end(x)を使う。配列はポインタ演算xとx + n(nは配列の長さ)でよい。

WordPressを4.5.1にアップデート

wp-cliを使ってWordPressを更新した。
PHPの更新 先にプロバイダのコントロールパネルでPHPを7.0にしてみた。うまく動作しているようだ。相変わらずデフォルトは5.3のようだ。WordPressの推奨環境はPHP 5.6以上。古いPHPはセキュリティ上の懸念がある。WordPress日本語サイトに次の注意がある。
古い PHP や MySQL しか利用できないレガシーな環境でも、PHP 5.2.4 以上、かつ MySQL 5.0 以上であれば WordPress は動作しますが、公式サポートは終了しており、サイトがセキュリティの脆弱性にさらされる危険があります。 wp-cliのインストール 仕事で使っていて人にはやたらと勧めていたのだが,自分のサイトではまだインストールしていなかった。curlでSSLサイトへの接続でエラーが出たので,-kをつけている。
$ curl -O -k https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar wp-cli.pharに実行権限をつけて実行しようとすると,envコマンドがPHP 5.3のCGI版を起動しようとするので,エイリアスを使うことにした。
alias wp="/usr/local/bin/php70cli ${HOME}/local/libexec/wp-cli.phar" データベースのバックアップ WordPressをインストールしたディレクトリで次のコマンドを実行すると,*.sqlという拡張子のファイルができる。
$ wp db export WordPressをインストールしたディレクトリをバックアップした後,exportしたsqlは直接アクセスされたくないので削除した。ウェブサーバから見えないところに移動してもよい。
cronで自動化してもよいが,趣味のサイトなので手動でバックアップすることにする。
WordPressの更新$ wp core update --locale=ja プラグインの確認と更新 更新されたプラグインにはUが付いている。
$ wp plugin status $ wp plugin update プラグイン名(または--all)

何倍か格好よく

2倍は英語でdouble,3倍はtriple,4倍は? この言い方で1倍に対応するのは?
4倍のquadrupleくらいは覚えているが,その先はあやふやなのでメモ。調べていたらsimpleのsimは一つなので仲間だった。漢字は倍なのにラテン語はplusと言うのも面白い。2倍なら漢字は2を掛ける,ラテン語は2回足すと言うことだろうか。
日本語英語ラテン語1倍simplesimplus2倍doubleduplus3倍tripletriplus4倍quadruplequadruplus5倍quintuplequituplus6倍sextuplesextuplus7倍septupleseptuplus8倍octupleoctuplus9倍nonuplenonuplus10倍decupledecuplus100倍centuplecentuplus 困ったらnfoldと言えばよさそう。