職業プログラマの休日出勤

職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。

第26回 #シェル芸 勉強会に参加してきました

2日前の話題ではありますが、タイトルの通りです。今回も大阪サテライトでの参加でした。

atnd.org
togetter.com

午前中の学び

午前の勉強会は bashキーバインドの話でした。

  • set -o emacs
  • set -o vi

どちらが良いかなんて一目瞭然ですね(宗教戦争を煽るスタイル)。

そしてbind芸。

もちろん午前の勉強会のオチは、危険bind芸で端末を落とすこと、でしたww


午後のクイズ大会


午後の部が始まる前に、大阪サテライトでは .xlsx のファイルフォーマット解説の会を開催していました。
基本は

  • zipで固めてある
  • 1シートで1つの .xml ファイルが存在する
  • 文字列は sharedStrings みたいなファイルに格納されている
  • 各シートのセルは、中身が文字列のときは sharedStrings の中身での出現場所を指し示すようになっている
    • 全く同じ文字列が複数のセルに入っているとき、sharedStrings は上手く再利用される
  • セルの中身が式(formula)のとき、その評価結果はシートの中にキャッシュされている
    • 例えば =A1 という式が入っていて、その参照先セルが文字列であるとき、式の評価結果がキャッシュされることになるため sharedStrings を参照する形にはなっていない。ファイルサイズが増える原因になり得る。
Q1

一度展開した .xlsx / .docx / .pptx を再びzipに戻す業務。
実は難しいです。。

Q2

パワポのスライドに含まれる「危険」という文字列が、何回登場するか数える問題。
回答:$ unzip -p 20141019OSC_LT.pptx "ppt/slides/slide*.xml" | grep -o '危険' | wc -l
unzip コマンドの展開ファイル指定にはワイルドカードも使えることが重要ですね。

Q3

パワポに含まれる画像を全て抽出してzipに固める問題。
回答:$ unzip -d hoge/ 20141019OSC_LT.pptx "ppt/media/*"; cd hoge/ppt/media/; zip ../../../hoge.zip ./*; cd ../../../
テンポラリのディレクトリを作ってますが、最後に消してないのはお行儀が悪いですね。

Q4

スライド7ページ目に含まれる文字列を抜き出す問題。文字列に全角半角が混在している場合などにおいては、古き良き時代の shift-out / shift-in のような設計思想のタグ構造になっているので、どこからどこまでが1行であるのか?をきちんと管理しなければなりません。パワポにおいては <a:p> タグが段落を示すようなので、これを1行として取り扱いましょう。
回答:$ unzip -p 20141019OSC_LT.pptx ppt/slides/slide7.xml | sed 's/<a:p>/@/g' | tr '@' '\n' | sed 's/<[^<>]*>//g'


Q5〜Q8

大阪サテライトでの予習の成果を生かすことのできそうな問題でしたが、残念ながら正解にはたどり着かず。

気休め

懇親会 兼 LT大会

今回は私生活がボロボロでしたので自分では発表しませんでしたが、今回も大阪サテライトは最高の話が続きました。
素晴らしい発表の数々は、こちら!

さいごに

企画運営してくださってる皆さん、凄いネタをぶつけてくれる皆さん、各会場の皆さんなどなどに感謝!

それでは皆さん、良いshん年を!!(typoじゃない)

目とコーヒー

先日、スターバックスでコーヒーを飲みながら本を読んでいると、二人組の女性客が入店してきて、店員さんに案内されながら筆者の隣の席に着いた。二人とも白い杖を持っておられる。恐らく目が見えないのだろう。

店員さんの行動を見る限りでは非常に慣れている様子で、商品の選択を促す際には点字のメニューを渡して放置ではなく(点字メニューが用意してあったとしたら、もちろんそれも素晴らしいことだが)、「どのような飲み物が欲しいのか?」を聞き出し、それに合う商品をいくつか提案し、その中から注文を取るということをやっておられた。
それ以外にも座席への誘導の仕方や会計の手順、商品の引き渡しなどにおいても理にかなった行動を取っておられた。これらの行動は「助けてあげたい」という精神だけではほぼ不可能だろう。この店員さんが相当の経験を積んできているか、きちんとした教育をうけているかのいずれかであることは容易に想像できる。スタバ凄い。

二人組のお客さんも、凄い。
テーブルの上に置いてある物の位置を、きちんと記憶しているようだった。コーヒーの容器を倒してしまわないか心配していたが、そんなことは無かった。
硬貨も紙幣も、識別して数えることができていた。硬貨は練習すれば識別できそうな気もするが、紙幣は難しそうだ。2016年9月にオーストラリアで 新しい $5 紙幣 が発行され、今後発行される紙幣では "Intaglio"(凹版印刷)で生じる突起によって、目が見えなくても紙幣の識別が可能になる、という話があった。日本の紙幣にはこのような機能は無いはず。どうやって識別していたのだろう…?

もしかすると、これらは盲目の方々にとってはできて当然のことなのかもしれないが、凄い。

筆者には、身近なところに盲目の方は居られないし、自分自身に何か進行中の病気がある訳でもないが、プログラミングという視覚が重要になる仕事をしている以上、盲目になることは怖いことだと認識している。少し前に音楽仲間と酒を交わしたときも「目が見えなくなるのと耳が聞こえなくなるの、どっちが怖いか?」ということが話題に上がったが、その場にいたミュージシャンも全員「目だなー」という意見を持っていたのは印象的だった。

過去にはこんな発言もしていた。


使える時間には制限があるけれども、人の為だけでなく自分自身の為にも、徳を積んでおきたいところだ。

退学後のキャリア形成と12年後の状態について

この記事は、12月1日から25日まで、学校を退学した人・する人などが記事を続けざまに投稿していく「退学 Advent Calendar 2016」の15日目の記事です。
www.adventar.org

筆者は大学(学部)を中退しましたが、それから10年以上が経過しても生き延びることができています。
これまでに起きたことなどと適当に掻い摘んで書いていきますが、退学したばかりの人、退学しようかどうか悩んでいる人、そんな方々の参考になれば幸いです。

続きを読む

「〆切本」を買った

歴史に名を残す作家・小説家が「〆切」とどう向き合ったのかの話を集めた本、「〆切本」を買った。

〆切本

〆切本

我々が日常的に使う言葉「進捗ダメです」をプロの作家さんが書くとどのようになるのか?
潔く醜態を晒け出すのか、それともあれこれ理由を付けて逃げ切るのか。

まだ読んでいる途中であるが、学びが多い。
納期に追われる皆さんにもオススメの一冊だ。

Cocoa勉強会関西 第70回 に参加してきました

cocoa-kansai.connpass.com

直前まで参加できるかどうか怪しい状況でしたが、どうにか都合をつけることができました。
そして、どうせ参加するなら喋りたい!ということで、少しばかり喋ってきました。

喋った内容

Code Signing(コード署名)についての話でした。
どちらかといえばMac寄りな内容ですが、コード署名という作業が必要なのはiOSMacも同じです。コード署名でトラブルが発生するのはアプリをリリースする直前であることが多いのですが、慌てて適当に操作して「何かよくわかんないけどもできちゃった」で終わりにしてしまう人は多いですし自分もそうでした。きちんと基礎を学ぶことで、再現性のある仕事をできるようになりたいと思い、このテーマを取り上げました。

他の方の発表

  • iOS10でリモートプッシュ通知をできるだけ簡単に送る by STUDIO SHIN さん
  • もうすぐはじまるATS必須化について by niwatakoさん
  • 統計から見るアプリユーザーの姿 by niwatakoさん
  • iOS10からこっそり使えるApp Extensionの「これが欲しかった」オプション by niwatakoさん
  • Sparkle で Mac アプリを自動アップデート by kanizaさん

資料は冒頭にリンクを貼ったconnpassのページとかからリンクされている、かも。
全体的に、証明書だとか暗号化の話題の多い回でした。


次回は2017年2月11日の予定だそうです。

おまけ