YaTeXモードで句読点と全角英数字を変換して保存するEmacsLisp

 いろいろググったけど丁度良いEmacs Lispが落ちてなかったので自分で作った。実はちゃんとした方法があるんじゃないかと思ってる。

主な機能

 このEmacsLispがやりたい事は

  • "、"と"。" を ","と"." に変換
  • 全角英数字を半角英数字に変換
  • YaTeXが起動しているバッファでのみ有効化
  • 保存と同時に自動で変換

の4つです。TeXで論文やレポートを書いている時に、うっかり『、。』や全角英数字を残したままコンパイルしちゃって、「んぐー!めんどくさい!」ってなる現象を根絶する事ができます。

ソースコード

※このコードを参考・使用して発生したいかなる損害にも、筆者は一切の責任を持ちません。自己責任でご使用ください。まぁ、「論文データぶっとんだぞ!!卒業できん!!」とか言われても、知ったこっちゃないので自己責任で使ってね。

gistはこちらhttps://gist.github.com/4518441

;;バッファ全体の句読点と読点をコンマとピリオドに変換
(defun replace-commaperiod-buffer ()
  (interactive "r")
  (save-excursion
    (replace-string "、" "," nil (point-min) (point-max))
    (replace-string "。" "." nil (point-min) (point-max))))

;;選択範囲内の全角英数字を半角英数字に変換
(defun hankaku-eisuu-region (start end)
  (interactive "r")
  (while (string-match
          "[0-9A-Za-z]+"
          (buffer-substring start end))
    (save-excursion
      (japanese-hankaku-region
       (+ start (match-beginning 0))
       (+ start (match-end 0))
       ))))

;;バッファ全体の全角英数字を半角英数字に変換
(defun hankaku-eisuu-buffer ()
  (interactive)
  (hankaku-eisuu-region (point-min) (point-max)))

;;YaTeXモードの時にのみ動作させる用に条件分岐
(defun replace-commaperiod-before-save-if-needed ()
  (when (memq major-mode
              '(yatex-mode))
    (replace-commaperiod-buffer)(hankaku-eisuu-buffer)))

;;保存前フックに追加
(add-hook 'before-save-hook 'replace-commaperiod-before-save-if-needed)


コードを読むとわかりますが、YaTeXモードを使ってTeXを書いてること前提です。ほかのモードを使っている方は、

;;YaTeXモードの時にのみ動作させる用に条件分岐
(defun replace-commaperiod-before-save-if-needed ()
  (when (memq major-mode
              '(yatex-mode))
    (replace-commaperiod-buffer)(hankaku-eisuu-buffer)))

この部分に対応するモードを追加して下さい。

参考にさせて頂いたもの

句読点変換:https://gist.github.com/3100452
全角英数字変換:https://github.com/tomoyamachi/dotfiles/blob/master/.emacs#L876

まとめ

 これを使えばわざわざIMEの設定を変えたり、コンパイル前に置換作業しなくてもOK。TeXコンパイル前に置換するのは、結構忘れがちなのでこれで一安心です。「IMEの設定変更しておけば良いじゃん。」って意見もあるけど、個人的に普通の文章では『、。』を使って、論文やレポートでは『,.』を使いたいので、わざわざ書いてみた。

 バグ報告やリファクタリングも、お待ちしておりますのでお気軽にGistにコメント下さい。

研究室でGithub勉強会をしました。

@10月18日

 世はまさに、大ソーシャル時代!

というわけで、研究室でGithub勉強会をしました。

 ある日私は、研究室の課題で『もじたま』を作っていました。この課題はグループワークだったのですが、"1台のパソコンにグループメンバーが集まってコーディングやデバッグをする"という、つらぽよ案件が多発していて、「このまま放置しておいたら、人が死ぬぞ……。」と思ったのが、勉強会をしようと思ったきっかけです。

ローカルな不幸を減らす為に

恐らく、学生がよく聞く(言う)セリフとして

 「研究室にソースコード忘れて、家でデバッグできない。」
 「最新データ入れたUSBメモリ忘れた。」
 「パソコンクラッシュして、全データ死んだ。」

があります。これをそのまま放置しては大変に不幸。論文・レポート提出間際に、これらの不幸によって死の覚悟をするのは、精神衛生上でもよろしくないです。

オンラインストレージサービスな不幸を減らす為に

 DropboxやらSkydriveやらが普及してきていて、共有フォルダを作ってコードやら設定ファイルを、楽に共有する出来るようになりました。ただ、これって結構辛い。何が辛いって、わざわざコピペしないといけない。「作業フォルダをDropbox上にすればいい!」とか恐ろしいことを言うのはやめてね?

 とりわけ、同じソースコードを弄りたい時に、全手動マージアタックという地獄が始まります。「ちょっとこのファイルいじるから、編集しないで。」という手もありますが、なんだかとってもクールじゃない!ていうか待ってる間の時間損失がでかい!!チームワークってなんだったっけ!!!ってなっちゃいます。

 なおかつ、コードいじってみて「やっぱ前に戻すか」って時に、適切なバックアップが残ってないと、すごくつらい。最悪、その修正すら上手く行かずに、絡まった毛糸よろしくゴミ箱に投げ捨てられちゃいます。

楽に幸せになる為に

 バージョン管理手法は数種類ありますが、現状もっとも熱いGitとGithubを取り扱うことにしました。というか、私がフォローできるのが、これしかないってが主たる理由です(どやっ

 黒い画面(shell)を叩けない人でも、Github謹製のGUIソフトもあるし、きっと大丈夫だろう!GUI使った事ないけど、まぁ大丈夫だよね!概念説明したら後はググレカスできるよね!というノリです。

実際に勉強する為に


 上記スライドを使って、ハンズオンで勉強会をしました。初めてのハンズオンだったので、時間配分が上手く出来なかったのが残念ですね。「1時間もあれば余裕だろぉおええ!!」とか思ってたら「なんか動かない!!」が続出し、死を覚悟しました。今度から気をつけたいです。参加者全員をフォローできる規模でやるべきなのかな、とも思いました。

 Githubの入り口だけでも教えることで「ちょっと使ってみようかな。」と思ってもらえればと幸いかなと。1人でも多く、不幸による突然の死を迎えないことを祈るばかりです。

まとめ

 そんなこんなで、研究室でGithub勉強会をしました。幸せだの不幸だの言ってて、宗教じみたエントリーになったけど、情報系のアレコレなんて全部宗教だから問題ないよね!ハハッ!

 皆さんもGithubで、楽しい卒研ライフを送りましょう〜☆ つらみ〜☆

第3回アトムハウスハッカソンを開催しました。

@2012/11/10(土)
  アトムハウスハッカソンは、関西でもっとも熱いハッカソンである。
と、巷で噂されていると嬉しい。


▲全員Mac使い。MBP Retinaが3台もあってつらぽよだ。

 毎度どうも、おはようからおやすみまで、いつでも眠いAtomです。ねむそうな奴はだいたい友達。今回はあそなすさんから生ハム原木の提供をしていただき、アトムハウスハッカソン feat.生ハムというリッチなんだか、クレイジーなんだか分からないハッカソンを行いました!

アトムハウスハッカソンってなに?

#アトムハウスハッカソン とは、@FromAtom邸で開催されるゆるく集まってゆるくみんなで開発をする会です。それぞれが好き勝手にコーディングしたり、お互いの情報交換したり、おいしいごはんを食べたり、おいしいお酒をのんだりします。
via まとめページ#アトムハウスハッカソン

謝辞

 生ハムを提供して頂いた、あそなすさん。東・京都から駆けつけて頂いたるーくちゃんさん、日本酒を差し入れてくれたぬぴやまくん、見た目が食べ物じゃないお土産、美味しいワイン、そしてハッピークレイジー飲料を持ってきてくれたじぐそう(くん)。この度は、誠にありがとうございました!!この場を借りてサンクス致します!

ロゴが出来ました

 プログラムがかけるデザイナー(畏怖)ぬぴやまくんが、アトムハウスハッカソンのロゴを作ってくれました!ありがとう!


▲僕です!

そのうちステッカーになるらしいです。すごい。

参加者とやること

 アトムハウスハッカソンに来た、愉快なメンバーを紹介するぜ!(ギュウィーン(←敬称略

なんだかWebアプリ開発が4人も居て、珍しくじぐそうがローカルアプリ(このインターネット時代に)って感じでした。

どうだったか

 今回は、前回までの様なゆるふわハッカソンではなく、真面目なもくもくハッカソンになりました。生ハムも食べていたのでもぐもぐハッカソンでもありました。もくもくと開発していたメンバーが、おもむろに立ち上がり、キッチンに生ハムをもぐもぐしに行く様子は、なかなか趣がありました。あそなすさんは全員のサポートをしつつ、asonas.jpを更新するという立ち回りをみせ、るーくちゃんとぬぴやま君は、黙々とコードを書いたりロゴを作っていました。じぐそうは #このインターネット時代 に、Win8アプリを作ろうとしていましたが、開発環境すら導入できず、というかMSの認証すら通れず死んでいました。お前なにしに来た。

自分の成果

 平成昭和合戦で学んだことを、あそなす師匠と一緒に復習しながら、Ruby on Railsをガシガシしていました。Image Magickを使って画像を加工して、AWSのS3に加工済みデータを投げつけられるようになりました。なんだか一気にアプリっぽくなってきて、素晴らしく高まりました。やりたいことの基礎実装はほぼ終わったので、あとは使いやすいように画面設計したり、フォントを設定したり、細々とした作業をして、デプロイしたいと思います。

クックソン

 クックソンは、私がひたすらキッチンで料理を作り続けるイベントです。孤独です。しっかりした料理写真は、他のメンバーが上げてくれるはず!!

主賓紹介

 クックソンの主役、生ハムさんです!


▲生ハムさんがあそなすしている貴重な写真

昼クックソン

 フランスパンを丸々2本使って、生ハム、チーズ、サニーレタス、トマトを挟んだサンドイッチを作りました。自作のマスタードソースもうまうま。

夜クックソン

 ただひたすらに生ハムを使った料理を作りました。


▲冷奴にすら生ハムが!


作ったメニューはこんな感じでした。

  • 生ハム、トマト、じゃこ、バジルのバルサミコ ビネグレットソース冷奴
  • 生ハムとベビーリーフのサラダ ブラックオリーブドレッシング
  • カプレーゼ、生ハム乗せ
  • オニオン、セロリ、人参のトマトスープ
  • 生ハム、チーズ、アスパラの春巻きゴマソース
  • 生ハムとほうれん草のココット
  • 焼きナスと牡蠣の生ハム巻き、バター醤油焼き
  • タラのポワレ、バジルソース

後半、「あぁ…また生ハムが乗ってる……。」とか聞こえましたが、気のせいでしょう。生ハムを食べ飽きるだなんて、そんなまさか。

DJじぐそう v.s. VJあそなす

 「あそなすさんVJしてくれるらしいし、じぐそうDJしてよ。」と、言ったらちゃんとDJセット持ってきてくれた、じぐそうが流石でした。そのかわりにお土産を忘れるあたりも、じぐそうはさすがです。


▲家が箱になったぞ……!

 iPad用のVJソフトはとても良く出来ていてオシャレでした。そんな映像美も加わり、DJじぐそう v.s. VJあそなす企画はすごく楽しかった!!今後のハッカソンでは「蛍の光」的にVJ×DJバトルで幕引きにしたいなぁと思いました。

まとめ

 今回は致死性のある沼にハマること無く(じぐそう以外)、健康的にハッカソンを終えることが出来たと思います。ただ、大量の生ハムを食べたため、塩分摂取量がヤバい感じでした。精神的に健康、肉体的に不健康という謎のハッカソンになりましたが、書いたコード量や進捗具合は今までの比にならない程、良質なものになったので多幸感に満ち溢れています。あと、この日の為にでっかい机を買っておいてよかったなぁと思いました。作業空間が広いし、ご飯もいっぱい乗せられる!大変よろしかったです。

次回開催について

 次回の開催は「アトムハウスハッカソン in ぬぴやまハウス」という謎タイトルが冠される…かも…!乞うご期待!!

これからのデジタルネイティブ時代についてなんとなく考えていた。


 私が初めてコンピュータに触ったのは、小学校4・5年生の時だったと思う。MacintoshMacじゃない)のMac OS 8だった。スクロールバー等のテーマ色が変えられて、親父とテレビのチャンネル争いよろしくカラー争いをしたものだった。タイピングというかローマ字入力は、Ozawa-Kenというソフトで覚えた。今となっては、なんてこと無い敵も当時は鬼畜な強さだった。そのころはShockwaveとJavaApplet全盛期で、そこら中のWebページが重かったし、もっさりとして、すこぶるダサかった。そもそも、「Macじゃむりだよ!ざまあ!」みたいなページも多くて、イライラしながらNetscapeでいんたねっ!の大海原を航海していたと思う。

 そこから考えると、最近じゃ便利なもので、手のひらでサクッといんたねっ!に飛び込める。なおかつ早いし、コンテンツも綺麗で盛りだくさん。SNSだって沢山あるし、昼夜問わず暇しない。美味しいお店を簡単に知ることができるし、商品の値段も簡単に比べられる。そんな時代が来ていた。私の世代でこれなのだから、私より下の人達はどうなっているのだろうかと考えた。潤沢なコンテンツの海を、颯爽と駆け抜けるイケメンや美少女の姿が目に浮かぶ。敗北は近い。

 これから私が社会に出て、いや学生のうちでも良いだろう、何かしらのサービスを立ち上げたとする。それを美味しく頂くのは、私よりも下の世代、つまりデジタルネイティブ世代だろう。今、その世代の絶対数が少なくても、年上はガンガンdieするし、年下はガンガンbornする。一緒に私もガンガンget old。

 美味しいネットコンテンツを沢山食べた、コンテンツ・グルメな人たちを相手にサービスを作らないとダメなのだと、ふと思った。そして、なかなかこれは厳しいのではないかとも思った。もちろん、何時の時代だって(メディア)リテラシーの低い人は沢山居るし、そういった人のためのサービスを作るのも良いかもしれない。しかし、楽しいネットコンテンツ(漠然)を美味しく頂いてきた身からすると、自分も楽しいネットコンテンツ(朧気)を提供してあげたいと思うのです。

 これからのデジタルネイティブ主導時代に、楽しいネットコンテンツ(抽象)を作るのはとても難しいし、つらぽよな事もたくさんあるのだろうけど、頑張りたいなあと思ったのです。

『009 RE-CYBORG』を観てきました!

 みんな大好き009!冬にマフラーをつけて、「加速装置!」と叫びながら必死に走り回った青春時代には、もう戻れないと思うと涙が止まりませんね。そんな009が映画になって帰って来ました!皆さんぜひとも劇場で楽しみましょう!いつもなら感想を書いてネタバレする所なのですが、今回は雑感だけを記しておきたいと思います。

雑感

 以下、雑感です。

 私「いやぁ、最近うどんにはまっててねー。美味しいよね。うどん。大将!いつもの!」
 グルメ「やれやれ、こんなうどんで満足するなんて、かわいそうな舌の持ち主だ……。」
 私「なに!?」
 グルメ「明日もう一度来て下さい。本物のうどんを見せて上げますよ。」
 私「ほう……(ワクワク」
 グルメ「最近のうどんには、積極的に革新を起こす気持ちが足りなかった。」
 私「ふぁっ!?」
 グルメ「そこで、スパゲッティでうどんを作ってみた。ぜひ、ご賞味頂きたい。」
 私「ずるっ(まずい、帰りたい、死にたい)」
 グルメ「この味がわかってこそ、真にうどんを語れるのだ!(ドヤァ」
 グルメ「あ、お代は1500円になりますー。」
 私「……(はぁん?)」

だいたいこんなかんじでした。

平成昭和合戦に参戦してきました。

@9月22日(土)

 平成昭和合戦は、平成生まれの人たちと昭和生まれの人たちが、猛烈な勢いでcommitを繰り返す恐ろしいイベントである(嘘です。)平成昭和合戦は、ウェッブ系に強い昭和組(昭和組って名前に指定暴力団感あります)の人達に、我々平成組(すごく軟弱そう)が教えを請うハッカソンでした。

参加者

平成昭和合戦に参戦したクールなメンバーを紹介するぜ!

  1. じゅーんさん(昭和組:圧倒的な攻撃力で敵全体に大ダメージを与える戦士)
  2. あそなすさん(昭和組:ぎっはびゅ曲芸師であり生ハム魔法使い)
  3. いつきちとせさん(平成組:ねことじゃれてるデザイナー)
  4. Atomとかいう人(平成組:キャベツの人)

会場

 下北沢にあるオープンソースカフェをお借りしました。1000円で無線LAN、電源、飲み物をゲットできる素敵なカフェでした。壁一面に技術書が並んでる様は、大変心地がよいものです。

主目的

 本合戦の目的は、ウェブサービスを構築しながら、Ruby on Rails、Heroku、Github等の基礎的な使い方を学ぶ事でした。ちなみに平成組の2人は「Webプログラムは、黒魔法使いがトカゲとかクモとかを鍋で煮込んで作ってる。」と思っている程度の初心者でした。

アイディア出し

 午前〜午後前半はアイディア共有やブレストをしました。じゅーんさんが持ってきてくれたアイディアを元に、「こんな機能が必要だよね。」とか「こういうデザインだと面白そう。」と話しつつ、どういったサービスにしていくかを考えました。


▼ おいしいお昼ごはん ▼

UI設計

 まず、メンバー各自で紙にUIを設計していきました。ペーパープロトタイピングですね。各々が必要だと思う要素、画面構成を考えて、鉛筆でゴリゴリ書きました。他のメンバーがサラサラとラフを仕上げていく中、私は難産で苦しんでいました。時間になったら、みんなのアイディアを持ち寄り、あそなすさん+ちとせさんのデザイナーチームが、最終的な決定とUI設計をすることになりました。

実装

 直近にインターンRubyをイジイジしていたのですが、Railsはこの日が初めてでした。また、HerokuやらHamlやらBundlerをいじるのもこの日が初めてで、右も左も分からない状態でした。しかし、私には強い味方が居ました。そう、じゅーんさんです。Ruby on Railsとはなんなのか、Railsで設計・開発をする時に踏むべき手順、DB設計をする時のコツなど、大変わかりやすく教えていただきました。


▼ ゆかいな作業風景 ▼

一段落まで

 この日は、ローカルホストで動作確認したサービスを、Heroku上にデプロイする所まで行きました。Twitter認証を用いたログイン処理、簡単なデータの登録・閲覧等が出来るようになりました。半日弱でここまで作れて、RailsやらHerokuは、とても便利なツールだなぁと感じました。また、4人でもガリガリと快適な開発が出来る、Github恩恵の偉大さを感じました。

まとめ

 今回のハッカソン、コードを書いている時間は午後の数時間のみでしたが、新しい世界に全裸で飛び込んだので、脳みそがフル回転しとても疲れました。しかし、それ以上にとてもとても楽しい時間でした。「あぁ、明日も集まってハッカソン出来れば良いのに……。帰りたくないな……。」という思いを抱きながら美味しい夕食を食べて、解散と相成りました。その時の感覚は、文化祭の後と少し似ていました。


▼ 突き出しがインカのめざめでビビった ▼


もう一度、やりたいなぁ。

からふね屋でジャンボパフェを食べてきたよ!

「エビフライパフェとか、ロースカツパフェなんてのを出すクレイジーな店があるらしい。」
「どうやらその店は、ジャンボパフェもやってるらしいぜ」
「行くしかないな。」
「あぁ、まったくだ。」












お分かり頂けただろうか。



お分かり頂けただろうか。

アイス、パウンドケーキ、生クリームの層の下には、フルーツポンチやら求肥やら。
上のメロンにはフルーツがごそごそと入っていました。
とりあえず、圧倒的な生クリームで、死にそうになりました。
確かにこれはエビフライとかロースカツみたいな、しょっぱいものが欲しくなります。




珈琲があって本当に良かったなって思いました。
今度は唐揚げパフェを食べに行きたいな−。