アジャイル開発手法とherokuについての講演会を企画

学生向けな講演会企画してます。 先生や社会人の方も参加オッケーです。 講演会の情報 アジャイル開発手法とherokuについての講演会 場所:琉球大学工学部1号館321教室 時間:3月2日(日) Ruby会議の翌日 13:00〜17:00 講演者: 永瀬 美穂さん (スクラム道、産業技術大学院大学特任准教授) 相澤 歩さん (herokuエバンジェリスト、Rubyコミッター) 対象者: アジャイル開発ってなに?っていう人 スクラムってなに?っていう人 herokuってなに?っていう人 就活をしている人 計画的に物事を進めきれない人 紙ヒコーキを飛ばした人(B2) Web開発に興味がある人 http://atnd.org/event/E0024130/?vos=cpatnsoccap0111026002 きっかけとしては、「enPiTの集中講義終了打ち上げ」時にお願いしたらオッケー貰えました。 こういうことって多いんですかね。 ワークショップもあるっぽくて、とても面白い内容になると思うのでオススメです。 B2には「紙ヒコーキ」で通じるかな。 キャリアや就職についての話もあるようなので、そういった活動をしている人にもオススメです。 何か質問等あれば、お気軽にどうぞ。

復習 ここはどこ?

SECCON 2014 online予選の復習 その2。 フォレンジックスの100点問題です。 ここはどこ? という問題文と、ファイルが1つ。 [bash] $ file Forensicist.dat Forensicist.dat: RFC 822 mail text [/bash] ファイルの中身はどうやらメール形式のようなのでThunderbirdとかのメールソフトに読ませます。 {.alignnone .size-medium .wp-image-1032 width=“300” height=“144” sizes="(max-width: 300px) 100vw, 300px" srcset=“https://ie.u-ryukyu.ac.jp/e095708/files/2014/01/seccon_2014_Forensic100_1-300x144.png 300w, https://ie.u-ryukyu.ac.jp/e095708/files/2014/01/seccon_2014_Forensic100_1-900x433.png 900w, https://ie.u-ryukyu.ac.jp/e095708/files/2014/01/seccon_2014_Forensic100_1.png 958w”} メールの本文に回答の形式、あと添付ファイルがついています。 添付ファイルを保存してファイル形式の確認。 [bash] $ file panda panda: TIFF image data, little-endian [/bash] イメージファイルであることと「ここはどこ?」という問題文から画像の詳細情報を調べればおそらくGPS情報とかあるだろう、って推測できました。 実際にGPS情報が付加されていて、それをGoogleMapで検索かけると 「TAIPEI ZOO」と出てきました。 しかし、これを入力しても正解ではなく、 「Taipei Zoo」 と入力して正解となりました。 Mapだと「TAIPEI ZOO」でしたけど、Street Viewで見ると「Taipei Zoo」だったんですよね…。 何はともあれ解けて良かったです。 メールソフトを使わないで なんとなくやってみます。 普段はGmailで、D&Dしても添付ファイル取れなかったので。 頭の20行ほど読んでみます。 [bash] $ nkf -w Forensicist.dat | head -n 20

復習 followme

SECCONの復習。 ネットワーク・Webの100点問題です。 パケットの内容予測 問題ページ開くとfollowme.capというpcapなファイルがありました。 パケットキャプチャの問題です。 開いてぱーっと眺めてみると、 src <-> dst で ・10.0.5.105 <-> 10.0.5.103間でtelnet ・10.0.5.103 <-> グローバル間で31337番ポートの通信 という2つの通信が主に目立ちました。 その他の通信はよくあるブロードキャストだったりDropBoxのやつだったりなノイズでした。 telnetは平文通信なので一旦置いといて、31337番ポートの通信って怪しいな、って思ったのでとりあえずこのグローバルIPに対してポートスキャンしかけました。 すると31337番はsshが動いていることを確認。 ここで、 ・10.0.5.103に対してtelnetで入り ・グローバルに対してsshをしている っていうことで予測立て。 「なんでtelnetしてsshしてんだろう」ってのは思いましたけど、暗号通信だと全く内容分からなくて答えゲットできないからかな?とかくらいしか思いつきません。 telnetの通信を確認 telnetについてのパケットでFollow TCP Streamしてみます。 予測はあたっていて、sshしているのが分かります。 しかし最初から意味不明なことに [bash] $ nslookup 133.0xf2.010357 [/bash] とかしてます。見つけられなかったみたいですけど…。 下の画像は上の画像の続きです。 flag.txtとかいうまさしくそれっぽいファイルがあります。 sshでログインして、flag.txtを出力したらフラグをゲットできるのだろう、というところまではきました。 telnetが平文なためパスワードもしっかり見えてるので、この通りやれば良さそうです。 なるほど、「followme.cap」ってそういう意味だったんですね。 画像の赤くハイライトされた部分は自分が打ち込んだ部分で、青くハイライトされた部分はサーバからの応答を表示しています。 ssh 実際にsshしてみます。 画像の通りに入力してみると下の通りになります。 [bash] $ ssh -p 311.37.37 follow .me@133.0xf2.010357 [/bash] wiresharkのFollow TCP Streamではプリントできない文字は".“として表示されるようです。 BSなどの制御文字も”.“とて表示されてしまうため上のような表示になります。 「Non-printable characters will be replaced by dots.」 参照 Follow TCP StreamがRAWな状態でパケットを見ても分からないので、HexDumpします。 HexDumpした内容を見ると、0x7fであることが確認できます。

SECCON に出てみた

24時間耐久ctf楽しかったです。 5問しか解けず、800点で終了。 4桁が目標だっただけにあともうちょっとってところで終わってしまって悲しい。 点数を取得できたのは以下 フォレンジックス[100,300] プログラミング[200] ネットワーク[100] その他[100] 全体的に能力不足だけど特にバイナリに弱いですね。 課題山積みなのが分かったのでちまちま勉強していきたいと思います。 関係者のみなさん、おつかれさまでした。

WD製のHDDの問題点について今更知った

最近よくWestern Digital製のHDDを使っています。 WD30EZRX でファイルサーバって感じです。 で、昨日WD製のHDDに導入されているというintelliparkという技術について知りました。 そして無効化しました。 intellipark intelliparkというのは、 「一定時間(デフォルトでは8秒)のディスクアクセスが無い場合に磁気ヘッドを退避させることで電力消費を抑える」 というものらしいです。 省電力の代償として以下のものが思いつきます。 ・磁気ヘッドが移動しまくるのって寿命とかどうなの? ・退避した状態からアクセスするのにラグが起こる で、調べてみると寿命はやっぱり短くなるみたいでした。 省電力で節約して、HDD壊れたから新しいの買う!っていうのはちょっと…。 良いことなさそう、というわけで無効化しました。 どう悪くなるのか 「intelliparkによって何がどれくらい悪くなるの?」 smartctl -aしてみました。 ちょうど同じくらいの起動時間のHDDがあったのでそれで比較。 必要かな、って部分を抜粋しています。 [bash] $ smartctl -a /dev/sda Device Model: Hitachi HDS721050CLA362 9 Power_On_Hours 0x0012 099 099 000 Old_age Always – 13110 193 Load_Cycle_Count 0x0012 100 100 000 Old_age Always – 385 $ smartctl -a /dev/sdd Device Model: WDC WD30EZRX-00DC0B0 9 Power_On_Hours 0x0032 083 083 000 Old_age Always – 12508 193 Load_Cycle_Count 0x0032 169 169 000 Old_age Always – 95544

2013年振り返り

思えば「チューニンガソンでやったこと書いてみよう」ってことで2013年の頭から始めたブログです。 飽きっぽい割に1年近く続いていたみたいです。 「別に書かなくなってもいいや」程度のゆるふわにやってたからかもしれません。 2013年 結構忙しい一年でした。 セミナーやら外部との連携も増えて割とどの月もドタバタしてた記憶があります。 というか、今もまだしてます。 キャパシティ小さい割に頑張ってました。 1~2月 ・卒論 ・GoogleAppsとのアカウント同期 ・チューニンガソン ・インターネット上の違法・有害情報対策セミナー 卒論は大変でした。 「卒論がヤバいB4たちの現実逃避のためのチャットルーム」ができちゃうくらい。 アカウント同期は結構きつくて、いろいろ問題出てました。先生方や卒業生に。 現役生/卒業生/教職員 でハッシュ違うとかやめて〜、って感じで…。 当時サーバ班だった現B4がDirectory Syncまで頑張ってくれたので、だいぶ楽できたような。 僕は同期後の、先生方からの「Googleだけじゃなくて学科にもsshできない」みたいなことの対応をしてました。 ハッシュ辺りが原因だったはずです。 ldap情報ページにバグというかセキュリティホールがあってそれ修正したりとかも、この時期だったような? この頃からセキュリティに興味を持ち始めたように思います。 3月 「基礎知識が足りない」って思い立って読みやすそうな本を読んでたりしました。 これまでろくに勉強してこなかったツケを返す感じで…。 あと、kono先生からesxiのアップデートをしろ、みたいなこと言われて春休みはそれで潰れた記憶があります。 学科はそもそもesxで、esx4.1からesxi5.1にアップデートする、って感じになりました。 kyodaさんが検証環境とか用意してくれて、windows servver 2012で頑張ってました。 esxi5.1って実は2012に対応してなかったんですけどね。 もの凄くどうにかこうにかして、動かしました。 動いた後にwindowsのバージョン違うと気付き、それはそれはとても晴れやかな気分に。 結局、VM借りてるユーザには何の影響もなく、アップデートは完了。お疲れさまでした。 そして春休みは終わっていた、と。 DC見学とかもこの月でしたっけ。 4~8月(前期) 院の授業は前期で終わらせたかったのでほぼ全ての講義取ってました。(16単位+研究系) それと外部活動で2単位。 あとenPiTで6単位(?)。 結果、6単位余りました。(となる予定) 外部活動は夜通し+移動多めで結構キツかったです。 DCでの作業というのは貴重な体験でした。 応用情報取ったのは4月の試験でした。 GoogleReaderが無くなって悲しい気持ちでしたけどFeedlyに慣れたので今は問題ないです。 講義でgdbでvmlinuz動かすみたいなこともやったような。 ほこxたてとかやってました。中間発表でストップ中ですが、再開の目処は今のところないです…。 オープンキャンパスもありましたね。 R班の見学とかもしてました。 8月~9月 enPiTで東京だったりでした。 今思えば東京行く前日まで外部活動でバタバタしてた感じです。 2週間以上東京に居たのは初めてで、ここで生活習慣が改善されました。 最近また戻ってきつつあります。 10月~ enPiTで開発が始まったのと、沖縄オープンラボのセミナーやら活発化してきました。 サバフェスに参加したり、ネットワークスペシャリスト受かったり、イベント多めですね。 あと実はセキュリティ・ミニキャンプとか行ってました。知ってる内容多めでした。物足りない! まとめて 後半のスキップ具合。 忙しかったですけど、楽しくて良い一年でした。 印象に残っていることのみですが、書いてみるといろいろやったな、って感じます。 今年は結構基礎な知識とか技術を得たので、来年は掘り下げるところは掘り下げていきたいですね。 色々な分野を見て、インフラがあってるかなという感じが強くなってきました。 でもセキュリティ楽しいですね。でもコード書くのも良い感じですね。 ってところでいろいろ興味は尽きません。 来年は専門に特化しつつ、また色々と手を伸ばしてみます。 こんな感じで大学入学当初から過ごすべきでした、という後悔、してもしょうがないので来年もがんばります。

ネスペ受かりました

やったー! 一発合格、うれしー。 午後1ギリギリなのがちょっと悔しいですけど、一安心です。 試験対策とかは特にしなかったので、これだけ。 なぜか買ってしまったけど未使用な過去問ありますので、欲しい人いたらあげます。 以下追記 午後1がギリギリの成績ですし、無線系には弱いので、その辺りは今後の課題です。 来年には今以上に余裕で受かる成績を取れるようになります。 詳解TCP/IPとかマスタリングTCP/IP読んでないので、そこから…。 春はセキュリティでも受けますかね。

この歳で初のrpmbuildをした

SSL証明書の更新期間だったのでその作業に連携して。 22歳にして初の…。 ちょっと遅過ぎ? ちょっと厄介なSSL証明書更新 研究室サーバの証明書の更新だったのですが、以前は サービス毎にサブドメイン形式で取ってましたが更新作業とかもろもろ面倒ってことで(?)一つの証明書に統合することに。 つまり、今までサブドメインで運用してたwebのサービスとかはもろもろサブディレクトリでの運用になるわけです。 「apacheで動かしているweb」と「nginxで動かしているweb」という無駄に2つのサービスが動いている現状でもありました。 apacheでは80と443ポート、nginxでは8080ポートって感じでした。 そこで、「apacheより早い」っていう理由で「ついでにnginxに統合しよう」という流れに。 単にnginx触りたい、っていうのも理由としてありました。サバフェスで触ってましたし。 このときノリで決めたのですが、結構いろいろ躓きました。 躓いたところをぱっぱと書いていきます。 証明書設置 まず、nginxでの証明書設置で早速躓きました。 nginxには中間CA証明書を指定するディレクティブがありません。 (apacheでのSSLCertificateChainFile) nginxのwiki を見ると 「if you have a chain of certificates — by having intermediate certificates between the server certificate and the CA root certificate — they’re not specified separately like you would do for Apache. Instead you’ll need to concatenate all the certificates, starting with the server certificate, and going deeper in the chain running through all the intermediate certificates.

enPiT 一段落

12/14(Sat) にenPiTが一段落したのでそのことについて。 来年以降あるかわかんないですけど、参考とかになれば。 ちなみに作ったアプリケーションは以下 SharePla そもそもenPiTって? 「分野、地域を超えた実践的情報教育恊働ネットワーク ~Education Network for Practical Information Technologies~」 だそうです。 詳細はココ 「複数大学や産業界で連携して情報系の4つの分野について実践的な情報教育をしましょう。」っていう感じでしょうか。 4つの分野ってのは、 ・クラウドコンピューティング ・セキュリティ ・組み込み ・ビジネスアプリケーション の4つです。 僕は、ビジネスアプリケーションに参加しました。 どんなことやったの? 前述した通り、僕が参加したのはビジネスアプリケーション分野です。 ここではアジャイル開発手法の一つであるscrumを利用してwebアプリケーション開発をやりました。 PBLだったので、情報工で言うところのプロジェクトデザインです。 チームメンバーは某暇な人と、某777の人と、某東の人です。 前期 前期に集中講義の形でアジャイルな開発手法について学びました。 毎週土曜日に2限分で7週間くらいあったかな、ってところです。 夏休み そして夏休みには東京でお勉強です。 ここでは開発に必要な技術について学びます。 gitだったりvagrantだったり。 軽く事前勉強しておいた方が良いかな、と実感しました。 CUIに慣れ親しんでいるとか、gitとかちょっと使ったことあるってレベルでもだいぶ楽できるはずです。 講演とかもありました。 東京での最終日に、どんなwebアプリケーションを作るのか、という企画ミーティングです。 僕らのチームでは、大量の付箋と2~3枚のホワイトボードを目一杯使っていろいろ話し合ってました。 「とりあえず欲しいもの」とか「どんな機能があると嬉しいか」とかだったと思います。多分。 割と短い時間で決める必要があったので、考えて、議論して、と忙しかったような記憶が…。 時間に追われる感じです。 後期(開発開始) 沖縄に戻って、後期開始とともに開発スタート。 その後は、毎週土曜日に「今週どんな機能を実装したのか」というデモをします。 毎週2つ以上の機能を実装して実際に動くというところをデモです。 webアプリケーションなので、デモ自体は楽に行えました。 デモをした後は、次の週に実装する機能を発表して終了。 ただ、毎週2つ以上の機能というのが「ユーザにとって嬉しい機能」なので、「ユーザが入力した内容をDBに入れるようにしました。」はアウト。 「ユーザから見てDBに入ったかどうかなんて分からない」ということで…。 そのため、「○○という機能によってユーザが△△することができる」のように実装する機能には記述していました。 「常にユーザ視点」ということのは始めのうちは結構難しかったです。いや、今でも難しいです。 スゴくざっくりと書きましたが、流れとしては以上な感じです。 前半と後半 前半はダメダメでした。 scrumでは「プロダクトバックログ」というものを作成する必要があるのですが、それと勘違いして「スプリントバックログ」を作ってたり。 あと、バックログアイテムがユーザ視点じゃない、とか。 毎週多くの指摘を受けて、その度に「あーじゃない、こーじゃない」とチームミーティングをしてました。 開発の方も「そもそもrailsとは!?」ってとこからだったので、結構ツラい時期です。 初期の学習コストは結構でかく大変…。 後半は結構イケイケ(死語)でした。 毎週のチームミーティングが良かったのか、徐々に指摘は減っていき、初期の学習コストを結構かけていたので、後半は一つの機能の実装にかかる時間はだいぶ短くなってました。 6~8週目くらいから一気にできることの幅が広がったかと思います。 ちなみに 「ミーティングは毎週1時間、開発は毎週3時間で」っていう感じでした。 前半は残業してました。 あと、10週間で1,000commits超えました。やったー。 得たもの いろんなことを学べました。

サバフェス の表彰式に参加してきた

とうとう表彰式の日がやってきました。 朝から 参加することが決まって東京行く感じ。 朝の便が安かったのでそれで。 ちなみにいろいろな事情によりほとんど自腹ではありませんでした。 ありがとうございます。 “「これに乗らないと間に合わない!」っていうモノレールにぎりぎりで乗り込む” 早朝ダッシュというエクストリームスポーツ! 精神的にも肉体的にもツラいのでみなさんは時間に余裕を持って行動するようにしてください…。 なんとか搭乗手続き2分前くらいに手続きを済ませ飛行機へ。 チームメンバーの方はもっと悲惨だったみたいですが、無事飛行機乗れました。 ついたのはお昼時で「思ったより寒くない」ってことで嬉しかったです。 夜は寒かった…。 表彰式へ キングクリムゾンして、表彰式の時間。 適当にビール頂いて、周りの人とお話してました。 人見知りながら頑張って話してました。 全チームのスコアだけ書かれたスコアボードが置いてあって、「うわー、これ自分たちっぽい」みたいな想像しつつ…。 良いアイディアだと思います。 なんやかんや、時間になって、開会の挨拶みたいなものから始まりました。 順位発表 5位(実質7位)でした。 順位: スコア 1位: 90.830 2位: 89.177 3位: 84.293 4位: 83.776 5位: 83.294 # 僕のチーム 6位: 83.088 ちなみに、3~5位は学生チームでしたー。 しかも見事に1点差以内に収まるとかすごい接戦だったようで…。悔しい! 実質とは 「実質」ってのは、レギュレーション違反だった方たちの中に スコア 107.470 93.410 というすごい人が…。 というわけで実質的には7位か…?と。 入賞者発表とLT LVS使わない構成、varnish使ってたり、kernelバージョン上げてたり、いろんな知らなかったことを知ることができました。 コンテスト駆動勉強って誰かが言ってましたが、確かにその通りだな〜と。 全く知らないこととか、「そんなことできるの」とかに遭遇するたびに、知識不足を実感。 LTでは、循環レプリケーションに笑いました。 話を聞いてて「円環の理に導かれてる…」とかw みなさんすごい構成で、「自分でこういう機構作った」みたいなのカッコ良すぎ…。 次回開催も視野らしいので、次回はもっと頑張りたい! 学生間交流 学生間での交流も。 ネットワーク系だったり、サーバ系だったり、kernelいじってますだったり、いろいろ話しました。 FreeBSDか〜…。 表彰式後 ご飯に連れて行ってもらいました。 ありがとうございました。 ホテルまで 移動中、キャッチの人が面白い感じ。 「僕歌舞伎町の門番なんで。僕通さないと歌舞伎町入れないですよ」とか「お○ぱい?お○ぱい?」とかいろいろ。 「お○ぱい?」ってなんだw どう応えたらいいのかw 全部スルーしてホテル。着いた時点で深夜…。 そして翌日沖縄に戻ってきました。 その足でセミナーの前夜祭に参加したんですが、それはまた次のブログで。