hexo.elを使ってブログを書く

このブログはhexoというツールを使って書いている。
特に不満はないのだが、新しい記事を書くときに、hexo new titleとかやってから、それをエディタで開くという手間がめんどうに感じるし、そのうち、忘れてしまいそうな気がする。

そこで、emacsでマクロでも書こうかなと思った。
いちから書くほどのスキルはないので、参考になりそうな資料を探してみると、いきなり、hexo.elがありました。
文字通り、emacsでhexoを編集するためのツール。

インストール自体も簡単で、melpaからインストールして、M-x hexoとすると、サイトを保存しているフォルダ名を聞かれる。
フォルダ名を入力すると、もう、ブログの記事一覧が表示されて、編集ができる。

新しい記事を書いときは、hexo-newだ。

publishもできるはずだが、うちはちょっと特殊な環境にしてしまったので、deployは手動になってしまう。
といっても、シェルスクリプトにしてあるから、そのスクリプトを呼び出すだけなので、これもまた簡単な話だ。

elflipでバッファ間の移動

エディタにはemacsを使ってます。長く使っていますが、そんなに使いこなしているわけではなく、未だに正規表現を書くときにググらないといけないレベルです。

開発をほとんどやらないので、定形作業が少ないから、「使いこなす」という感じにならないのかなあと思っています。

さて、それでも「複数のファイルを開いて作業をする」という局面はよくあります。emacsでは、ファイルを開いている部分をバッファと呼ぶのですが、このバッファを切り替えることで、表示されているファイルを入れ換えることができます。
が、Alt-Tab的にどんどん切り替えていくことはできなくて、切り替えコマンドを入力して、編集しているバッファ名を入れなければなりません。
そこまでたくさんのファイルを開いているわけではないので、それでも不具合はそんなにありません。

が、便利な機能を見つけてしまいました。
Alt-Tab的にバッファを切り替えられるようにするコマンドです。
iflipbです。詳細はリンク先をご覧いただくとして、備忘録としてうちの設定を紹介しておきます。

しばらく使ってみると、Altというのはちょっと使いにくい気もしています。なにかいいバインドがないか、考えないといけませんね。

1.ファイルをダウンロード
packageから入れることができないので、直接ファイルをダウンロードして、パスの通っているところにインストール。
ロードパスを設定していなかったので、これも設定。

1
2
(setq load-path (cons "~/.emacs.d/elisp" load-path))
(require 'iflipb)

2.コマンドを起動するキーバインドを変える。
OSXでは、Ctrl+→、CTRL+←はディスプレイの切り替えに使われているので、Alt+Tab、Alt+Shift+Tabで切り替えるように設定。

1
2
(bind-key "A-<tab>" 'iflipb-next-buffer)
(bind-key "A-S-<tab>" 'iflipb-previous-buffer)

フェアトレードに少し疲れて。。。

フェアトレードとの関わり

いつ頃からか、フェアトレードに関わっています。
最近では、フェアトレードシティを推進する日本フェアトレードフォーラムで、フェアトレードタウンの認定委員をしている他、研究でもフェアトレードに関わっています。

けれども、最近、ちょっぴりフェアトレードに疲れてきています。
なんというか、出口が見えない感じ。

僕が専門とする経済学では「倫理かインセンティブか」という議論は常に行われていて、適切なインセンティブを設計することの重要性が知られています。
つまりは、「途上国のためを思って消費を変えようよ」と啓発したところで人々は生き方を変えてくれなくて、「こっちが安いよ。(しかも途上国の人々の生活にも良いよ)」と言ったほうが人は動くのです。
「水は低きに流れる」ですね。

では、フェアトレード運動は意味がないのかというと、それはまた別の話で、意味はあります。
消費者が声を上げないと、企業はフェアトレード的な価値観に合った行動を取りません。価格は別にして、フェアな価値観で製造販売される商品も生まれません。
実際、スターバックスが消費者運動による圧力でエシカルコーヒーを売り始めたというのは、有名な話です。

フェアトレード運動が突き当たっている壁

でもね、僕の周りのフェアトレード運動は、そういうものにつながる運動になってるのか?と考えると、はなはだ疑問なんですよね。
どちらかといえば、消費者の啓発活動が中心となっています。

では、啓発された消費者はなにをすればいいのか?
買い物のときに、倫理的な価値観で消費すればいいんです。

でも、それはどのぐらいの頻度なんでしょう?
毎回?
でも、コンビニにそんなにエシカルな商品ないですよね。
スーパーだって同じ。
お金がないなあって思うときもあります。

正直、フェアトレード商品の品質やデザインにがまんできないときだってあります。

そんなとき、せっかく倫理的な消費をやろうと思っても、つい妥協して、手近なものを買ってしまいます。
小さな妥協が積み重なると、そのうち「倫理的?あーあれはもういいよ」手な感じになってしまったりします。
倫理的な消費を全然できてない自分が恥ずかしくて、フェアトレード関係の文書に目を通さなくなるかもしれないです。

僕の学生でフェアトレードに取り組みたい人っていうのはたくさんいます。
そういう学生のほとんどは「まず認知度をあげないと」っていいます。

でもね、認知したところで、行動が変わらなければしょうがないんです。
フェアトレード団体が「行動を変える道筋」を提示してくれないと、「もういいや」的な人が増えるだけなんですよね。

僕自身、団体側の人間だと思っているので、この「壁」を乗り越える道筋が提示できないと、なかなかフェアトレード運動にのめり込めないんですよね。

ファトレード運動を発展させるためには

壁を超えるためには、消費者運動を組織するべきなんだと思うのだけれど、海外のような反対運動はなぜか日本にはなじまないようです。
デモするのも楽しいと思うんだけどね。

不買運動もいいけど、期限とか達成目標を決めないとこれも続きにくい。

いろいろ考えると、フェアトレードに取り組んでほしい企業の株主になって、発言していくのがいいのかなという気がします。
相当なお金が必要ですが、一つのファンドを作って、フェアトレードに関わる人が買えるようにすればよいのかもしれません。
あるいは、それぞれが小口株主になって、会社に手紙を送るのがいいかもしれません。

今、フェアトレードに求められているのは、そんな感じの「企業に提案する」方向での活動ではないかなと最近は思っています。

書評:エンジニアの知的生産術

西尾泰和『エンジニアの知的生産術』技術評論社、2018年は、学び方・発想法のなかではまず最初に読むべき本だ。
高校生や大学生なら、まずこの本を買って、いつでも手元においておくことを勧める。

この手の本は、ビジネス書コーナーに行けば大量にあるが、これまでの成果をまとめたものがこの本だ。
「2018年版 学び方の教科書」と名付けても良いぐらいだ。
少々残念というか、損をしているなと感じるのが、タイトルに「エンジニアの」とついていることだ。この本はエンジニアかどうか関係なく参考になるはずだ。
少しだけ、エンジニアでなくてはわかりにくい例示が使われているが、あまり深く追求しようとせず、エンジニアの内輪ネタが書かれていると思えばそんなに気にならないはずだ。

さて、この本だが、やる気の出し方、仕事のこなし方、本の読み方、記憶術、アイデアの作り方などのパートからなっている。
そしてそれぞれの分野で著名な著作を紹介しながら、より現代的な方法にそれをアレンジして、「今ならこうすればよいだろう」という提案をしている。

例えば、アイデアのまとめ方では、KJ法を中心として紹介している。
KJ法は社員研修などで体験したことがある人も多いだろうが、その真価はやはり川喜田二郎氏の『発想法』を読まなくてはわからない気がしていたのだが、この本のほうがむしろわかりやすい。また、時間のない人がKJ法を利用するための工夫も考えられている。

例えば、アイデアを書き出す段階を中断可能にするためにA4の用紙に付箋を貼っていく方法などが紹介されている。
ちなみに、僕は、A4のクリアファイルを切り開いて、使用している。そうすれば、いつでもA4サイズに折り畳めるし、作業するときにはA3のより広いエリアで作業ができる。

余談かもしれないが、川喜田二郎氏の発想法の場合は、彼の調査・研究のなかでの経験談も書かれており、いかにしてKJ法を開発するに至ったかといったこともわかるようになっている。そしてそれがとてもおもしろくて、研究者を志す人なら、一読を勧める。
けれども、アイデアのまとめ方、発想法を学びたいだけの人にとって、そういう情報は不要だろう。

Emacs関係を再インストール

備忘録

OSXのEmacsを再インストールしてみた。
いくつかインストールしてみて、結局、EMP版をhomebrewでインストールした。
今回設定していて気づいたのが、mac-auto-ascii-modeの存在。
以前は別の設定を使っていたけど、どんどん新しい設定に移行するのはいいことかもしれない。

Migemoを使うときに、C-sすると英字入力になる設定は使えなくなった。mac-auto-ascii-modeの関係をいじればできるようになる気もするけど、今はちょっと諦める。

EmacsでLaTeXを編集する

YaTeXでタイプセットする際に、以下の設定をしておくと、pLaTeXでdvi経由でPDFを作成して、プレビューまでしてくれる。

(setq tex-command “/Library/TeX/texbin/latexmk -pdfdvi -pvc “)

.latexmkrcには、platexコマンドを使うように設定しておく。

pdfLaTeXやXeLaTeXには挑戦していない。XeLaTeXだと日本語が使えるはずなので、そっちのほうがいいのかもしれないけど、まあ、そこまでヘビーユーザーでもないので。

Flymakeを使って、変更(保存のタイミング?)と同時にタイプセットするようにした。

RefTeXでアウトライン表示

RefTeXで、Reftex-tocすると、アウトラインの目次が表示される。そこから好きな項目に飛べるのでとても快適。

設定はこちらにあるね。

https://www.gnu.org/software/emacs/manual/html_node/reftex/Table-of-Contents.html

まずは、以下で、目次が左側に表示されるようにしておく。

(setq reftex-toc-split-windows-horizontally t)

そして、C-c =で目次を表示。p, nで目次を移動。TABで該当箇所に移動して編集開始。つい、RETしたくなるけど、そうすると目次が閉じられてしまうので、僕はTABが好み。

ブログの構築方法

新サイトは、Githubのプライベートリポジトリで管理しています。
とりあえず、全体をGithubにアップしています。

そのうえで、オプション2のような方法を考えていましたが、結局はオプション1で運用しています。

オプション1

rsync -a を使ってpublic配下をアップロードする。

deployすれば?と言われそうだけれど、サーバに旧ブログのデータが含まれていて、このディレクトリを残したまま、hexo deployする方法がわからない。
ftpsyncでexclude使えば?とも思ったが、これはローカルのものを無視してくれるみたいで、サーバのデータは削除してしまうようだ。

そんなわけで悩んでいたのだが、単純に昔ながらのrsyncでいいのでは?と思い直し、ためしてみると、これがヒット。

hexo g; rsync -aをまとめて実行するシェルスクリプトを作って、実行すれば更新完了というわけ。

普段使いのMac以外からも更新したい!という気もするのだけれど、もともと更新頻度はそんなに高くないので、気にしないことにした。

Tech関係の記事だけ、オプション2の方法で更新することも考えるかもするしれないからけれど。

オプション2

生成したサイトデータをNetlifyにデプロイする方法です。
これだと、サーバを借りなくていいので、安全かつ無料です。

手順はこちらのとおり。

https://tech.qookie.jp/posts/hexo-deploy-netlify-github-backup-version/

今まで、この手の説明はいくつか読んでたのですが、あまり頭に入りませんでした。
が、今回、自分で手を動かしてみて少し腑に落ちてきました。

今後は、以下のような手順で進めていく予定

  1. Disqus対応
  2. 旧サイトをそのままアップ
  3. カスタムドメインを使用

ブログを引越しました

ブログを長年使ってきたWordPressから引っ越しました。
今回のシステムはHexoというPC上ですべてのページを生成するものです。
なんだか、回り回ってもとに戻ったような気もします。

これまで、ブログは、HTML上に日々の記録をつけるだけのもの、tDiary、Blogger、Nucleus^1を経て、Wordpressに落ち着いていました。
tDiary以降は、Web上で更新できるのがとても楽でした。
なんといっても、PCを持ち歩かなくても更新できますからね。

今回のシステムはPC上でサイトを作成してからサーバに送りますので、普段使っているPCがないとどうにもならなくなります。
これはちょっとめんどうかもなあとも思いますが、以前よりも更新頻度が減っていますので、これでも問題はないはずと判断しました。

なにより、サーバ上にプログラムをおかなくてもよいので、サーバをハックされる恐れがなくなります。
それに、急ぎの更新は短いメモ的なものが多いので、TwitterとかFacebookを使えば事足ります。

というわけで、せっかく作成した新サイト、がんばってコンテンツを充実させていきます。

教育に対する思い

僕は大学で学生を教えています。当初は科目を一生懸命教えて、ゼミでは学生と一緒に遊んでいました。その後、教育というものは人格教育であって、単に科目を教えるのではないと感じるようになりました。ではどうすればいいのか、さっぱりわからないという悩みの時期に入ります。

最近では、そんなふうに大上段にかまえるのではなく、学生が卒業後に使える考え方を提供すれば良いと考えています。個々の講義で提供する専門知識は大切ではありますが、人によっては卒業後、実際に必要になることはないでしょう。
でも、「教養」という形で、その人の血肉となるはずです。

ただ、僕が教育で求めているのはそういう個々の科目の内容を超えて、大学生活全体でなにを伝えることができるかということです。

僕が教育で意識して伝えようとしているのは、1)世の中を理解する視点を獲得し、2)世の中で出会う概念の理解と使い方を学ぶことの2点です。

人間が動物と異なるのは、世の中を抽象化した概念を理解し、使用することができることです。それがあるからこそ、生まれて普通に暮らしているだけでは得られない知識を習得でき、動物以上の存在となれるのです。

僕はプログラミングを学んできて、世の中を理解できるようになるためにはどのような学び方が必要なのか考え続けて来ました。その中で、学ぶ対象と学び方を分けることが可能であることに気づきました。両者を分けることで、学ぶ対象が変わってもその対象を理解することができるようになります。

現代のように、世の中がすごい速さで変化している時代では、10年先、20年先に今学んでいること、常識だと思っていることが、どのように役立つかはわかりません。それでも、僕たちが生きていけるのは学び方を知っているからなのです。

Gmailが生まれたのが、2004年だとご存知でしたか?それまでは、一般の人の多くはメールは専用のソフトで使用していました。Gmailが出て、Web上でアプリケーションが動くことに多くの人が気づき、Web上でなにができるのか、さまざまな可能性を模索し始めました。そして、それまでに販売されてきたメールソフトのビジネスは一気に成り立たなくなったのです。

世の中を理解する視点を獲得する

「自分なり」という言葉があります。僕はこの言葉を安易に使うべきではないと思っています。同じような言葉で、「学生目線」という言葉がありますが、あほ丸出しと感じます。

こういう言葉を使う多くの人は、世の中を単なる感情でしか見れない人です。
自分なりの視点というのは、普通に生まれて暮らしてきて持つ視点でしょう。それもありかなとは思いますが、

概念の理解と使い方

パタン・ランゲージというものがあります。