Monthly Archives: 4月 2014

C++テンプレートテクニック第2版:推薦文書きました


επιστήμη・高橋晶著「C++テンプレートテクニック第2版」に推薦文を書かせていただきました。

そして、こちらが著者の高橋晶さんによる関連ブログです:
C++テンプレートテクニック 第2版 を出します – Faith and Brave – C++で遊ぼう

献本もいただきました。著者の二人に感謝いたします。
IMAG0138

以下推薦文です(本書に含まれている)。

私は5年くらい前まではC++を仕事で使っていましたが、現在はPythonやScalaなど他の言語を主に使うようになりました。テンプレートについてはもちろん、C++についての本を読むのは久しぶりで、色々と忘れていたことや、C++11の新しい機能などもともと知らなかったことなど、楽しく読ませてもらいました。

他言語のユーザから見ると、テンプレートというのはC++に特有な機能で自分にはあまり関係ないように見えるかもしれません。しかしメタプログラミングを含め、コードの抽象化能力は一般的にプログラマにとって大事な能力だと思います。なぜなら、それは今まで違う問題に思えていたものが同じ問題に見える能力であり、生産性にも直結するからです。この本は、様々なテンプレートの手法について、なぜそれが必要となるのかという説明がわかりやすく書いてありますので、コードの抽象化の考え方を示すパターン集として、他言語のユーザにとってもヒントになることは多いのではないかと考えます。特に動的型付けスクリプト言語のユーザから見ると、C++テンプレートの世界は回りくどいことをやってるように見える点もあるかもしれませんが、型を強く意識しながらも抽象度を上げる方法を示しているという点で、その世界に触れておくことは意味のあることだと考えます。

この推薦文を書くにあたって、正直迷いました。C++の最近の仕様には全くついていけてないし、はたして自分がこの本を推薦する資格があるんだろうかと。推薦文を書く前に本文を読ませてもらいましたが、正直言って半分理解できたかどうか。まあでも知識は足りないかもしれないが、以前にC++を長い間使っていてそれなりにコードも書いてきたし、Boostの翻訳プロジェクトに参加したこともあり、思うところはいろいろあります。思いだけで勢いで書いた感じで、こいつわかってないな風な推薦文になったのはご容赦ください。

離れてしばらくたちますが、C++のなかでもテンプレートは特に面白いというのは今でも思っています。C++プログラマ的中二病は、コンパイル時にテンプレートで無駄に超キモい計算をしてみるということかと思ってます。わりとみんなが通った道ではないでしょうか。(そうでもない?)

ところでこのブログ記事、実は数日前に書いていて、アマゾンのステータスが「予約受付中」から「在庫あり」になったら公開しようと思ってました。宣伝も兼ねているので。ところが、今見たら「在庫切れ」になってます。もしかしてすごい売れてるんでしょうか。だとしたら、

乗るしかない、このビッグウェーブに! (AA略)

ということで、みなさん買いましょう。

Escape from XP: プロローグを翻訳しました

escape_from_xp_op
この記事
マイクロソフト製、XPを駆逐するゲーム「Escape from XP」
にあるように、マイクロソフトさんが素晴らしいゲームを作ってくれました。
ゲームはこちら:Escape from XP

このプロローグの文章が一瞬しか表示されない上に、ちょっとわかりづらい表現を含んでいるので翻訳してみます。上記記事ににも「英語なのでよく分からん」って書いてありますし。

プロローグ画面
escape_from_xp

訳:

昔々、Windows XPは、Windows 2000の灰の中から不死鳥のように現れた。

新しいオペレーティングシステムの出現にも関わらず、Windows XPはしつこく生き残った。それは、平和な開発者コミュニティにとって疫病のようであった。

ほとんどの開発者はとうの昔に逃げ出してしまった…ただ一人をのぞいては。

一人の男、IE6とWindows XPをサポートし続けるヒーローである。

今、人々のため、彼は最後の戦いをしている。それを完全に破壊するために。

彼の脱出が始まった。今、ここで…

今夜 . . .

なんと素晴らしい自虐ネタでしょう。

この素晴らしいゲームについて、このブログに先立ってツイッターで最高の賛辞を贈らせていただきました。

(元ネタを知らない人はこちらを参照)

ちなみに弊社は暇ではありません。

サーバ移行しました:さくらのクラウドに

報告遅くなりましたが、このページのサーバの移行を完了しました。今まで使ってたVPSサーバが負荷に弱過ぎると思ってたのですが、ふと、以前にもらったさくらのクラウドの無料券が見つかりました。このときもらったやつですね。なので、そちらに移行することにしました。

以下、移行のためにやった作業。ほぼ自分のために書いています。
(移行元がDebianで、移行先がUbuntu 13.10)

1. さくらクラウドの登録と設定
ここからログインして設定。

2. データベースの移行
移行元:


$ mysqldump --opt hamuwp >hamuwp.dump

移行先:


$ mysql -u hamuwpuser -p 

3. PHPとnginxのインストール
ここここを参照。ただし、5.での動作確認のためにserver_nameの設定はコメントアウトしておく。

4. WordPressのインストール
Ubuntuのパッケージとしてもあるのだが、ここでは最新版をtarballで持ってきて展開しておく。あとDB名とログイン・パスワードの設定を必要。旧サーバのファイルをそのまま持っていけば問題ない。

5. 動作確認
DNSの書き換えの前に、IPアドレス直打ちで接続テストをやっておく。

6. DNSの書き換え
お名前.comを使ってるのだが、その管理画面で書き換えの設定をする。

7. MathJaxプラグインのバグとか...
これで大体終わりなのだが、設定後にMathJaxプラグインから、以下のような警告メッセージが表示された。

Strict Standards: Non-static method MathJax::init() should not be called statically in /var/www/wp/wp-content/plugins/mathjax-latex/mathjax-latex.php on line 191

対応する部分にいちいちstaticって入れれば治るんですけど、パッチを公開しておきますね。


--- mathjax-latex.php.orig	2014-04-01 15:31:37.367058999 +0900
+++ mathjax-latex.php	2014-04-10 14:04:27.999058999 +0900
@@ -37,7 +37,7 @@
   static $add_script;
   static $block_script;
 
-  function init(){
+  static function init(){
     register_activation_hook(__FILE__, array(__CLASS__, 'mathjax_install'));
     register_deactivation_hook(__FILE__, array(__CLASS__, 'mathjax_uninstall'));
   
@@ -82,7 +82,7 @@
     delete_option('kblog_mathjax_config');
   }
   
-  function unconditional(){
+  static function unconditional(){
     echo '<!-- MathJax Latex Plugin installed';
     if( !self::$add_script ) 
       echo ': Disabled as no shortcodes on this page';
@@ -93,7 +93,7 @@
     echo ' -->';
   }
 
-  function mathjax_shortcode($atts,$content){
+  static function mathjax_shortcode($atts,$content){
     self::$add_script = true;
   }
 
@@ -116,7 +116,7 @@
     }
   }
 
-function add_script(){
+static function add_script(){
     if( !self::$add_script )
       return;
     
@@ -178,7 +178,7 @@
   }
 
   //add a link to settings on the plugin management page
-  function mathjax_settings_link( $links, $file ) {
+  static function mathjax_settings_link( $links, $file ) {
     if ($file == 'mathjax-latex/mathjax-latex.php' && function_exists('admin_url')) {
         $settings_link = '<a href="' .admin_url('options-general.php?page=kblog-mathjax-latex').'">'. __('Settings') . '</a>';
         array_unshift($links, $settings_link);

無料利用券を頂いたさくらインターネットさんには、この場を借りて御礼申し上げます。

新社会人の皆様へ:自分がやりたいことをとことん追求しよう

新田章太さんのこのブログ
新社会人の皆様へ~自分がやりたい事を追求するな~
を見てカチンときたので書いておく。


タイトルだけ見てカチンときたのでついこんなこと言ってしまったが、ブログの中身を読んでみたらそんなに変なことは書いてなかった。まずはそこは謝っておく。ごめんなさい。

だけどあのタイトルは誤解を生むし、しっかり突っ込んでおこうと思う。繰り返すが、ブログの中身に大きな異論はない。

なので、以下は反論というより、補足だと思って読んでほしい。

確かに、好きなことばっかりやっててはダメって言うのも納得で、ニーズがあるもの、人に喜ばれるものを作らなければお金は稼げない。じゃあ、逆に言うとニーズがあるものさえ作っていればお金になるんだろうか。

年功序列はまもなく完全崩壊するだろうというこの世の中で、人より良い給料もらえるかどうかは人より早く学習できるかにかかっていると思う。特に新社会人の皆さんには社会も会社も思ったより複雑に見えるだろうし、勉強するべきことは山ほどある。それをいかに早く学習してアウトプットに生かすかが重要だと思う。

早く学習する最良な方法は楽しいことをやることだと思う

もちろん新社会人の多くは、自分で仕事を選べるような立場じゃないだろうし、与えられた仕事をこなすので精一杯でしょう。目先の仕事をこなすだけでも学ぶことはたくさんあるだろうけど、それより早く学習するには、その中で楽しい要素を見つけることかと思う。

もちろん楽しくてもニーズがないことでは稼げない。それは新田さんのブログに書いてあるとおり。一方、そういう市場のニーズとのバランスを見ながら楽しさを追求しないと早く学習できないし、早く学習できないと競争には勝てない。

そういう意味での「やりたいこと」なんて簡単に見つからないと思うけど、とことん悩んでみる価値はあるでしょう。

まとめ

  • 市場ニーズとのバランスを見ながら、楽しいこと、やりたいことを追求することが競争力につながる
  • 市場価値とやりたいことのよい合流点なんてそう簡単には見つからないと思うけど、すぐには諦めずに粘り強く探せばいい


P.S. 今の時期、こういう新社会人に向けたメッセージみたいなの、よく見ますけど、実際の新社会人たちはどのくらい読んでるんですかね。フィードバックとかもらえると嬉しいです。
P.S.^2 別にちきりん路線とか目指してないですからね 🙂

更新履歴:
2014/4/2 10:02 新田さんの名前が間違っていたので訂正しました。