今、何が怖いってインフルエンザほど怖いものはないです

今年も木枯らしの吹く時期になったので、インフルエンザ予防接種を受けてきました。注射した部分が固くコリコリして身体もだるいです。予防接種は効果がないから無駄だという方もいますが、なんせ独り法人なので私がインフルエンザにかかったとしても誰も代わりはいませんし、仕事の締め切りが伸ばせるわけじゃない。例年、冬の外出時はマスクとハンドスプレーでがっちり防備しているのですが、それでも発症する時には発症します。予防接種は発症した時でも症状が軽く済む効果もあるそうです。インフルエンザが流行せずに注射が無駄になっても、それならそれで構わない。なんせインフルエンザの辛さといったら風邪とは比べもにならない。高熱が3日も続くとかなりやつれます。あのつらさが多少でも緩和されるというのなら注射くらい喜んで受けますよ。

最近ではメガネをかけないとプログラミングや読書ができなくなりました。マスクとセットであると便利なのがメガネが曇り止め。

WordPress 4.4 beta1がリリースしたので構築してみた

WordPress 4.4 beta1がリリースされました。昨日の午後に WordPress 4.4-alpha-35308のリリースがあったばかりなのに、なんと開発の早いプロダクトなんだ。何はともあれ構築してみないことには始まらない。

こんな時にはサクッと構築して使い捨てにできるVagrant環境の出番です。vccwを使うことにする。vccwの使い方はこちら

実行環境はMac OS X Yosemite 10.10.5(近日中El capitanする予定)
Evoroment info

$ git clone https://github.com/vccw-team/vccw.git
$ cd vccw
$ vagrant up
(途中でiMacのパスワードを入力)
待つこと数分で自動で構築される。
http://vccw.dev/wp-admin/にアクセスし、admid/adminでログイン。
(環境によってはhttp://192.168.33.10/を指定する)

プラグインWordPress Beta Testerをインストールして、
Dashboard -> tools -> Beta testing画面のhead on over and upgrade now.からWordPress Updates画面へ。Update nowをクリック。

ここで4.4 beta1を明示的に選んでいるわけでなく、Latest(最新版)をインストールしてます。必須ではないですが、themesも4.4に対応したTwentySixteenにしておきます。

wp4.4bata1

構築を初めから作り直したい時は、ディレクトリを削除して最初から手順をやり直せばいい。
$ rm -rf vccw

また以下のオプションで複数環境を作成する指定もできる。
$ git clone https://github.com/vccw-team/vccw.git <作成するディレクトリ>
$ cd <作成するディレクトリ>
$ cp provision/default.yml site.yml
$ vim provision/site.yml
#

Network Settings

#
hostname: vccw20.dev # ここを被らないように変更する
ip: 192.168.33.20 # ここを被らないように変更する
$ vagrant up
起動したらhttp://vccw20.dev/にアクセス。

WordPress 4.4 Beta 1の詳細については

WordPress 4.4 Beta 1


を参照する。

  • デフォルトのthemesがTwenty Sixteenになる
  • Responsive Images
  • Embeds でコンテンツを相手側からそのまま埋め込みが出来るようになる

こんなところですか。新規に構築したならダウンロード資材もある。もしベータ版で問題を見つけたら報告しましょう。

[Hacker News]Termの中でY! ロゴがアニメーションするAA

Hacker Newsでちょっと面白い記事を発見。リンクしたページの[you’ll see – show the animation]のところをクリックするとアニメーションがみられます。

[Update 10/21/2015: Changed the title from “six lines of C” to “462 bytes of C” to avoid endless arguments about what constitutes a line of C code.]

このプログラムに実用的な機能ははなく、実行するとY!ロゴがアニメーションするだけ。ソースコードは462文字でステップ数は1です。C言語で書いてる。C言語のソースコードはフリーフォーマットで記述できるので可読性を無視してコードゴルフしまくるどんどん短くなる。今回の変更で6行だったのを1行にしたらしい。もう、この人たちが、なんのために最適化してどこに向かっているのかわからないです。

Yahoo! Logo ASCII Animation in 462 bytes of C

ソースコードがあるのだから自分の環境でコンパイルでして実行できるはず。やってみる。

実行環境
スクリーンショット 2015-10-22 21.56.23

手順に従ってコンパイルすると実行ファイルが作成される。まぁ、警告メッセージがでまくるけどともかく実行できた。表示する内容を改造しようしたけど資料を読むだけで挫折。そのまんま無改造で実行してます。
ynime2

プログラマーが着てそうだけど、実は絶対に着ない変なTシャツ

ドリンクカップ

アマゾンで変なTシャツを見つけました。テレビドラマとや映画じゃあるまいし、こんなTシャツを着るやつはいませんよ。

これは皮肉です。例えばあるプログラムで計算結果を整数(0,1,2,3..)で出すように作ったとします。計算結果の少数の部分は切り捨てられるので検算すると答えが合いません。つまり3を2で割ると答えば1.5なのに、そのプログラムでは答えば1(少数なし)になります。それを「バグだ」と指摘された時に、計算結果は整数しか想定しないなのだからこれは「仕様通りです」となるわけです。

初めてプログラム言語を使うときに画面に”Hello World”と表示させるのは初学時の通過儀礼ではあるけど、やっているのは教科書の丸写しであって、法則や真実があるわけじゃない。そこが数式とは違う。なんとなく頭が良さそう見えるかもしれないけど、英語を話さない人たちの前で、”This is a pen.”っとやって自慢してるような気がしませんか。

Print paime numbers from 1 to 10000.
たしかにC言語のソースコードだしアルゴリズムも正しい。けどコーディングのスタイルが古い。ネットで拾ったANSI-C(C98)の頃のコードをパクっただけなんでしょう。細かいことをいうと冒頭のvoid main(){}のところが目障り。せめてはint main(){}に変更しないと今時のコンパイラーは通らないじゃないのか。これこそがC言語だとばかりにデカく「C」って書いてあるけど、そんなのは一目でわかるのだから書くことなかった。

Calculate pi one thousand decimal places.
シャツに書くコードの量じゃない。円周率を計算すると書いてあるが、ただの模様にしか見えない。これではシマムラで売ってるヘンテコ英語の服と変わらない気がする。それに数値計算するのにわざわざC言語は使わない。

WordPress 4.4 alphaの自動バックグランド更新をオンのまま放置

ローカル環境にセットアップしただけでは飽きたずレンタルサーバーにも構築。4種類の自動更新機能がデフォルトでオン設定。更新が実行されたタイミングでメールが飛んでくる。起動したままにしておくとどうなるか。

UPDATE LOGは以下の通り。
– WordPress 4.4-alpha-35308 Wed, 21 Oct 2015 13:25:23
– WordPress 4.4-alpha-35265 Mon, 19 Oct 2015 14:38:50
– WordPress 4.4-alpha-35213 Fri, 16 Oct 2015 08:22:53

この調子でベータ1がリリースされれば更新される見込み。その後は続けてベータ2、3、4と更新されて12月に4.4の正式版になるのかどうかは、このまま放置しておけばわかるでしょう。何もせずメールで知らせが来るまで放置しておいていい。

もし問題が起きたら自動バックグラウンド更新の設定ですぐにwp-config.phpで更新機能を停止する設定をしてしまう。

COBOLが消えたらIT業界が変わるそうです

仕事部屋のドアに掛けてある「外出中」のプレートが落ちまくる。ITProにも荒れ模様の記事があったのその感想を書きます。

ITPro 2015/10/15
損保ジャパンがCOBOL一掃を決断 金融機関が変われば、IT業界も変わる

記事としては面白いですが、COBOLをやっている人たちの声が聞こえない。実際はどうなんでしょうね。
記事にはプログラミング言語をJAVAに置き換える計画だとありますが、COBOLとJAVAは考え方が違いすぎるので機械的な翻訳はできません。そもそも継ぎ接ぎだらけて誰にも解析できなくなったプログラムコードを放置したのが問題なわけで、JAVAに置き換えて道具がモダンで開発効率が良くなっても、根本的に仕事のやり方を変えないと元の木網だと思います。

システムの老朽化はどこにもある問題なので、今後どう対応していくのか気になるとですが、情報が公開されないので想像するしかありません。既存のシステムの解析にCOBOLのプログラマは必要でしょうし、JAVAの開発スキルを身につけたプログラマーはCOBOLのプログラムコードを解析する気はないでしょう。プログラマーが同じプログラミング言語をずっと使い続けていると、だんだんそのプログラム言語に合わせた考え方をするようになります。きっとCOBOLをやると”頭が腐る”と言って嫌がります。斜陽な分野をこれから極めようなんて人もいない。影響の少ないサブシステム程度の入れ替えならとっくに終わってるでしょうから、残っているのはコアな部分でしょう。時間が経つほど事態は深刻になる。実に難しい問題です。

もっとオープンにして風通しを良くすれば、解決方法も見えてくると思うんですがね。きっと秘密がいっぱいあるから、そうはいかないんでしょうけど。

追記:
ちょっとCOBOLerをキーワードに拾ってみたら面白い記事があったので貼っておきます。
@IT 2014/07【8】コボラー(COBOLER)に関する都市伝説について

プログラミング言語より業務仕様の理解のほうが圧倒的に難しいです。顧客に聞かないと機能や存在理由、使われた方、頻度とかはわかりません。下手すれば顧客もわからないものもあったります。

実装の仕様が誰もわからないのにシステムは稼働しているということですか。こう言う状況はWeb系のプロジェクトでもありますが、勘定系はトラブルの程度によってはテレビで報道されることもあるのでエンジニアの負担の桁が違います。

WordPress 4.4 alphaの環境を作ってみた

積み上げた技術書

WordCamp Tokyo 2015まで半月。参加する予定なので、自分のWordpressの知識を棚卸しのためにWordpress4.4 alpha版を構築。単純で退屈な作業かと思ったら割と面白かった。

WordPress.orgのsvnかなんかで管理してあるのをダウンロードしてくるものかと思って探索しても、それらしいのものが探してもみつからない。フォーラムを読むと4.4で提供される機能だけならplug-inで試すことができるが、どうせやるならコアをバージョン4.4にしてthemesもTwentySixteenで動かしてみたい(TwentySixteenはコアが4.4でないと動かない)。正式リリースまで2ヶ月。仕事に影響しないローカル開発環境に構築して、正式なリリースまでアップデートされていく様子をワッチしておくのはいい勉強になる。

How to Get WordPress 4.4 alpha and Beta (1 post)にalpha版の取得方法がポストされていた。誰かに質問しようかと思っていた時だったので、締めくくりの”Hope that helps.”が心に響いた。alpha版のtar玉をダウンロードして新規に構築するわけではなく、WordPress Beta Tester プラグインからリポジトリ(?)をalpha版に向けてコアを更新する流れでした。つまり先に既存の実装が必要になる。なかなか運用者に優しい仕組みではあるけど、なんかいつもと勝手が違うので慣れるまで時間がかかりそう。考えてないでやると決めた以上は作業をやってしまう。

まずはWordPress4.3.1の構築。ローカル開発環境なので慣れた手順でさくっと構築する。

次にalpha版に取得に向けた作業。
WordPress Beta Tester プラグイン Version 1.0をインストール。”お使いのバージョンのWordPressではテストされてません”と不安な文言が表示されていたが作業に問題はなかった。

ダッシュボート、ツール、ベータテストを選ぶ

スクリーンショット 2015-10-15 09.46.10

最新版ナイトリービルドをチェック、設定を保存し、ベータ版にアップグレードをクリック。
スクリーンショット 2015-10-14 23.46.41

せっかくなのでthemesもTwentySixteenにする。ダッシュボートの表示もこの通りです。

スクリーンショット 2015-10-15 09.56.44

これで新機能が試せるようになりました。まずは、

    REST API
    oEmbed cards

などのあたりですかね。

このサイトではthemesにTwentennSixteenを使ってるので、見た目だけalpha版っぽく見えますが、コアは4.3.1のままです。

Twenty Sixteen requires at least WordPress version 4.4. が発生(0.1.20151013)した

朝イチでびっくりぽん。Wordpressに投稿しよとするとエラーになる。目が覚めました。

Twenty Sixteen requires at least WordPress version 4.4. You are running version 4.3.1. Please upgrade and try again.

確かにversion 4.3.1でTwenty Sixteenを使ってます。Twenty Sixteenを使うにはversion 4.4が要るって言うけど今の最新版は4.3だから4.4はまだリリースされてない。

null
Twenty Sixteen By WordPress.org

こういう時は悩んでいるとどんどん時間が過ぎてしまうので、原因の調査は後にして環境を元に戻す。昨日から変更箇所はThemesだけ。
Themes:Twenty Sixteenを前バージョン(0.1.20151002)に戻したらエラーは出なくなった。

いつかまた同じ事象にでくわしたときのために以下に手順を残しておく。

サーバにログイン。wp-content/themes/twentysixteen配下のstyle.cssで使用中の詳細なバージョンが確認する。
$ grep Version style.css
Version: 0.1.20151013

twentysixteenのRevisionを確認する。
Themesを変更してから問題が発生しているので、とりあえずあ以前の”0.1.20151002″(前週バージョン)に戻すことにする。

適当な場所にThemesを丸ごとダウンロードする。
$ wget -r -np https://themes.svn.wordpress.org/twentysixteen/0.1.20151002/
Themesフォルダにコピーする。ダッシュボードでどっちのThemesなのか区別できるようにstyle.cssファイルの内容を書き換えておく。
Theme Name: Twenty Sixteen
  -> Theme Name: Twenty Sixteen 0.1.20151002

themes配下にディクトリを作ってコピーする
wp-content/themes/twentysixteen_0.1.20151002

ダッシュボードにtwentysixteen_0.1.20151002というThrmesが追加されているので切り替えて完了。

追記:
本件はメタスキーマウェブサイトの記事に詳しく説明されてるのでそちらを参照のこと。ようはTwenty Sixteen内に4.4-alphaなのかバージョンのチェックしてます。履歴を調べたら0.1.20151003版からずっとこの処理が入ってます。自分がブログの更新してなかったので気がつかなかっただけ。この変更でTwenty SixteenはWordpress4.3には適用できなくなったので、この問題にはまるのは適用したTwenty Sixteenをアップデートし続けてきた人だけ。とりあえず暫定対処して0.1.20151002版で運用はできてます。

Elecom WDC-150SU2MをUbuntu 14.04 LTS に挿す

また古いWinddowsXPパソコンのUbuntu化のお話です。普段なら旨い酒が呑めるなんて程度のオファーじゃ引き受けないんですが、今回は会社の役員でもある叔父の依頼なので点数を稼いでおくことにしました。今回、相手にするブツはこれです。

fmv

対象 富士通 FMV LX50M(TV内蔵17型液晶一体型 CeleronD2.93GHz RAM1GB HDD250GB DVDマルチ)
UbuntuOS Ubuntu 14.04 LTS 日本語 Remix
無線LAN子機

あらら、TVチューナーが付いてて、キーボードが無線接続。カードBUSポートが2つある。パソコンと家電が融合した製品。私に言わせてばゲテモノです。2005年はまだこういうのが売ってたんですね。

パソコンの置き場所にはLANケーブルが届かない。インターネットに繋ぐときにはスマホでテザリングすればいいのだけど、パソコン本体に無線LANインターフェースがない。いつものことです。まぁ、この程度のことでは驚きません。近所の電気屋でUSBタイプの無線LAN子機(WDC-150SU2MBK)を購入。しかし叔父はこれが無線LANの子機だと言うことが信じれれないらしい。たしかに他の製品に比べて見かけもアンテナっぽくない。予想していた値段よりも安価すぎることも不安らしい。値段の違いは通信速度と電波の飛距離だし、パソコン本体に処理能力が低いから、WDC-150で十分だと説明したのだけど、私が適当なことを言ってようみえるらしく納得できてない感じ。せめて1ランク上の製品を買おうとするのを制して買い物は終了。別に私もいい加減に選んだ訳じゃありません。電気屋の売り場についてからスマホで型番をググったら成功したっぽいこと書いてるブログの記事があったので、やればできるはずだという見込みがあった。セットアップは私がやるのだから手順の中にコマンド操作があっても問題じゃない。自分の経験から言ってNICの相性に製品の価格は関係ないですから。

部屋に戻るとすぐにFMV LX50MのドライブにUbuntuのCD(DVDだけど)を入れて起動。BIOSを弄ってないのにブートストラップを読み込みを始めた。そのまま放置。
しばらくすると起動音と共にUbuntuが起動した。パソコンのデータバックアップはなし(本当にいいんですかねぇ)。HDDを初期化、Ubuntuをインストールを開始。

型番をキーにしてググるといくつも情報がヒットした。Raspberry Piでやった人もいるのか。ドライバーを入手する必要がある。自分のMacbookでダウンロード、USBメモリにコピーする。
$ git clone https://github.com/lwfinger/rtl8188eu
gitからソースが持ってこれるのはいいね。cloneしたrtl8188euフォルダを丸ごとUSBメモリにコピーする。

FMV LX50Mに戻り、タイムゾーンやパスワードの設定をしてUbuntuのインストールを終わらせてしまう。
インストールが終わるまで30分はかかるはずなので、箱から丁寧にWDC-150を出してUSBポートに挿す。箱と付属品は無くさないように取っておく(ヤフオクで売るときに要る)。
注意:WDC-150はでっぱり部分が小さく形状も丸い。一度USBポートに挿してしまうと手では抜きにずらい。

Ubuntuのインストールが終わったら、USBメモリのrtl8188euフォルダをホームディレクトリーにコピー。このあとはパソコンのtermで作業する。

$ pwd
/home/ubuntu
$ cd rtl8188eu/
$ make all
$ sudo make install
$ ls -l 8188eu.ko(makeが成功したことを確認する)
$ sudo insmod 8188eu.ko
$ lsmod | grep 8188(モジュールの追加が成功したことを確認する)
8188eu 671710 0
$ iwconfig
wlan0 unassociated Nickname:”<WIFI@REALTEK>”
Mode:Managed Frequency=2.412 GHz Access Point: Not-

これでウィンドウマネージャで受信範囲にあるWifiスポットのSIDが表示されるようになる。
あとはSIDを選んでパスワードを入力。Wifi接続ができた。

インターネットに繋がったら何はともあれシステムを最新化する。
$ sudo apt-get update

また、しばらく放置。ダウンロードに時間がかかったが無地に終了。
簡単にUbuntu Unityの操作の説明。とは言ってもWebブラウザとシステム終了のアイコン、IMEのオン/オフのキーだけ教えて終わり。

lan_port

なんかGUI操作の反応も悪い。叔父はもともとインストールされていたWindows XPで使っていたときより早くなったと言いますが、新規でUbuntuをインストールしてシステム環境が処理がキレイになったのでそう感じるだけ。買ってきた無線LANの子機は最初に何もせずにUSBポートに挿しただけではlsmodコマンドでも認識してなかったのだが、実際に手順通りに設定をして通信するところを見た瞬間に不安があったことんなて忘れてしまってましたよ、二人ともね。

Ubuntu CDがプライベートでも役にたった

連休でUbuntu CDが大いに役に立ちました。 Lunixを使える人は、お出かけのときに、荷物にUbuntu CDを忍ばせておくとヒーローになれるかもよ、ってお話です。

Ubuntu Desktop 日本語 Remix
https://www.ubuntulinux.jp/
注意:Ubuntu CDといいながら、UbuntuのサイズはCDの容量(700MB)を超えてます。記録媒体にはDVDが必要です。

家庭で使われているパソコンはたいていノート型パソコンです。DVDドライブ、USBと無線LANアダプタが内蔵されてるので、Ubuntu CDが適応できる範囲は広い。Ubuntu CDの起動は簡単でパソコンのDVDドライブにUbuntu CDを入れて電源を入れて待つだけ。スマホでテザリングしてWiFiでインターネット接続。標準搭載のWebブラウザ(FireFox)から各種Webサービスが使えた。DVDドライブから起動しているのでパソコンのハードディスクのファイルが壊れてても、ハードディスクそのものが故障していてもUbuntu CDの使用に影響はない。UbuntuはFAT32やNTFSなどのWindows系のファイルフォーマットをマウントすることもできるので、起動しなくなってしまったパソコンからCD起動し、ハードディスクのデータをUSBメモリにサルベージするという使い方に利用できる。

Ubuntu CD起動が便利だった点
USBブートなら携帯性は抜群、音は静かになります。しかし起動と動作は数倍遅い。とてもじゃないですが実用に耐えません。ポータブルハードディスクから起動させれば、騒音と反応遅さは解消されます。しかし、これにも問題があって、CDやUSBに比べると媒体として堅牢さに欠けるし衝撃に弱いの雑に扱えない。いざという時に壊れているかもしれないし、出番があるかのかどうかわからない物に投資するには価格が高すぎる。Ubuntu CD起動なら媒体1枚あたりのコストが安価。ハードケースに入れておけば引き出しやカバンに入れっぱなしにしてても壊れません。いつもTDKの「超硬」シリーズを使ってますが、この連休に使ったUbuntu12の媒体も2年前に焼いたものだけどサルベージ作業できました。

やっとデータをサルベージした話です。パソコンの型番は控えてないですが、富士通のFMVでした。新しいパソコンも買ってある(割と頻繁に買い換える人です)。データの引っ越し用にUSBメモリを買ったのに、元側のパソコンでWindowsが起動しないのでコピーができないでいた。販売店の修理にだすとハードディスクのデータは消えてしまう。今までデジカメで撮った旅行の写真があるので諦めきれない様子。電源を入れみたら、起動してデスクトップが表示されたあたりで固まってしまってました。実は裏側でノロノロと起動処理は動いていたのですが、あまりに時間がかかっていたのでフリーズしたと思って電源プッチンしていた。
そこで私が物は試しにとDVDドライブにUbuntu CDを入れて再起動。国産のノートパソコンだと未対応だろうとあまり期待はしていなかったんですが、数分で起動音が鳴って、いつものX Windowsマネージャーが表示された。これはいけるかもしれない。内臓ハードディスクとUSBメモリをマウントさせる。ここから先は持ち主に自分でオペレーションしてもらう。ハードディスクから写真らしきファイルを見つけてはUSBメモリにコピーをしていく。もともとマシンのパワーは十分あるのでUbuntuで起動してからサクサクと動く。最後にUSBメモリをアンマウントして、新しい方のパソコンへ移したら完了です。

媒体ラベルにギークなアートワーク素材を印刷しておくと、いざという時に見つけやすいです。
ubuntu dvd Cover

ちなみに私はパソコンの修理、セットアップのオーダーはお受けしておりません。Ubuntu CDが欲しい方はこちらまで取りに来ていただければ実費でお作りします。