カテゴリー別アーカイブ: perl

穏やかな速度でファイルを削除するプログラム gentle_unlink を書いた

おがた (@xtetsuji) です。

Linux サーバ上で作業をしていると、様々な一時ファイルがディスクを圧迫していて、ディスク容量を増やすために削除を行うことがあります。通常であれば rm コマンド一発で終わる単純なファイル操作ですが、ファイルが何百万やそれ以上といったオーダーで大量にあると、削除自体のコストが無視できなくなります。

Linux サーバ管理者の間ではたびたび問題になる大量ファイルの削除操作、各人コマンドを組み合わせて工夫しているようですが、より微調整をしたかった私は Perl を使ってコマンドを書くことにしました。その名も gentle_unlink。

最近はITエンジニアリングネタは Qiita に書くことが多いのですが、自分が書いたまとまったプログラムの紹介ということで、メインブログに書いてみることにしました。

初出の社内勉強会での紹介トーク、そしてスクリプトファイルは以下のリンクからどうぞ。

続きを読む

YAPC::Asia Tokyo 2015 に参加してきました #yapcasia

おがた (@xtetsuji) です。

2015年8月20日から22日までの3日間、今年も YAPC::Asia Tokyo 2015 に参加してきました。いわゆる「最後のYAPC」です。

今年もまた「ブログを書くまでがYAPCなのです」は変わらないのです。一気に書こうとすると一つの記事が長くなったり、投稿するまでの時間が長くなったりするので、昨年同様小分けにして書いていきます。このフォーマットは昨年の記事「YAPC::Asia Tokyo 2014 に参加してきました #yapcasia」同様です。

  • YAPC::Asia Tokyo 2015 が始まります #yapcasia (予告記事)
  • YAPC::Asia Tokyo 2015 に参加してきました #yapcasia (この記事)
  • YAPC::Asia Tokyo 2015 前夜祭 #yapcasia
  • YAPC::Asia Tokyo 2015 1日目 #yapcasia
  • YAPC::Asia Tokyo 2015 2日目 #yapcasia
  • YAPC::Asia Tokyo 2015 ハッカソン #yacpasia
  • YAPC::Asia Tokyo 2015 リジェクトコン #yapcasia #yapcasiareject

昨年までと同様、トークの内容というよりも場の雰囲気を優先して書いています。

続きを読む

YAPC::Asia Tokyo 2015 が始まります #yapcasia

おがた (@xtetsuji) です。

今年も、2015年8月20日(木曜日)から22日(土曜日)まで、YAPC::Asia Tokyo 2015 が開催されます。

とはいえ、今年が最後と銘打たれた YAPC::Asia Tokyo です。悔いがないように楽しみたいですね。

昨年までの私の YAPC::Asia Tokyo に関するブログ記事は以下から。

また昨年2014年分につきましては以下をご参照ください。

続きを読む

mod_perlプログラマーが飲み会で語るレガシー開発論

おがた (@xtetsuji) です。

2015年4月3日(金曜日)、1社目で最後まで一緒に働いていた後輩と二人で久々に飲み会をしました。そこで考えて語ったレガシー開発論など、公開しても良さそうなところを書いてみます。私は2014年1月に退職していますが、後輩は今も在職しています。

書きたいことはざっと書いたのですが、推敲がうまくできなくて長文になってしまいました。暇な時に流し読みしていただくのがちょうどよいかもしれません。長いブログ記事、Kindleで電子出版したほうがいいかもしれませんね…。

執筆依頼やモジュール類のドキュメント化依頼は随時受け付けていますので、この勢いで文章を書いて欲しいという方がいらっしゃいましたら、ぜひご依頼ください。

続きを読む

福岡のPerlコミュニティに参加してきました

おがた (@xtetsuji) です。

3月21日(土曜日)から3月26日(木曜日)まで福岡に行っていました。

今回福岡に行った大きな目的が、福岡のPerlコミュニティとの交流でした。滞在6日間の間にいくつか参加できたので、私視点でその周辺をご紹介します。

続きを読む

livedoorドメインでダイナミックDNSするためのメモ

おがた (@xtetsuji) です。

  • 2015/05/22追記:livedoorドメインのシステム切り替えに伴い2015年6月12日以降、ダイナミックDNSは使えなくなるらしいです

個人的なドメイン名登録サービスは「livedoorドメイン」と「お名前.com」の2つを使っています。最初は livedoorドメイン だけだったのですが、その後そこで登録できないドメインをお名前.comで登録することになり、2つを併用しています。

お名前.com にはダイナミックDNSサービスがありますが、ヘルプを見てもWindowsクライアントしかないようです。以前GMOに問い合わせたことがあったのですが、Windows以外でオープンなAPIを叩いて更新する公式の方法というものは無いようです。

個人的なサーバでダイナミックDNSサーバを構築して運用するのも面倒なので、ここは livedoor ドメイン のダイナミックDNS機能をありがたく使わさせて頂いています。

続きを読む

#Perl入学式 Advent Calendar 「いつもの風景」

この記事は「Perl入学式 Advent Calendar」の3日目です。

こんにちは、Perl入学式 in東京のサポーターとしてだいたい毎回お手伝いさせていただいている @xtetsuji こと「おがた てつじ」です。ハンドル名から、校長やサポーターの皆さんからはよく「てつじさん」と呼ばれています。

そういえば、先日の Perl入学式 in東京 第4回 「サブルーチン(関数)/正規表現編」 では、はじめて4時間フルの講師役を担当させていただきました。

今回はサポーター視点でみた「Perl入学式 in東京」のいつもの風景をご紹介させていただきます。

続きを読む

YAPC::Asia Tokyo 2014 Reject con #yapcasia #yapcasiareject

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2014 のReject con編。概要は目次ブログ記事をどうぞ。

2014年の8月28日(木曜日)から30日(土曜日)までの3日間行われた YAPC::Asia Tokyo 2014 でしたが、今年は応募もさらに盛り上がり、募集トークのうちの約半数がリジェクト(落選)されてしまうという状態でした。競争率が高かったこともありますし、YAPC::Asia Tokyo というイベントがPerl以外の話題にも寛容になったこともあります。

かくいう私も、2012年と2013年に引き続きトークをしようと思って応募したのですが、見事にリジェクトされてしまいました。

しかし!そんなリジェクトされてしまったトークの中から、選りすぐりのものに発表の機会を与えてくれる「YAPC::Asia 2014 Reject con」というイベントが2014年9月3日(水曜日)に行われることになり、なんと私のトークも発表の機会を与えていただけました

トーク概要については以下の記事がまとまっているので、おすすめです。@hiratara さんの記録能力のすごさには毎回脱帽してしまいます。

続きを読む

YAPC::Asia Tokyo 2014 2日目 #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2014 の個別記事、2日目編。概要は目次ブログ記事をどうぞ。

トーク概要については以下の記事がまとまっているので、おすすめです。

続きを読む

YAPC::Asia Tokyo 2014 1日目 #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2014 の個別記事、1日目編。やっぱり書くのが遅すぎ(8月末開催で、書いているの11月末)なんですが、書きたいと思い続けていたので書きます。概要は目次ブログ記事をどうぞ。

トーク概要については以下の記事がまとまっているので、おすすめです。

続きを読む

YAPC::Asia Tokyo 2014 前夜祭 #yapcasia

おがた (@xtetsuji) です。

YAPC::Asia Tokyo 2014の個別記事、前夜祭編。書こう書こうと思っていていたら、いつのまにか約2ヶ月経ってしまって(開催は8月末で、ブログを書いているのは10月末)。だいぶ忘れかけている。だけど書きます。

この記事は 2014年8月28日(木曜日) に行われた YAPC::Asia Tokyo 2014 前夜祭編。その他の YAPC::Asia Tokyo 2014 関連記事は目次ブログ記事からどうぞ。通して参加した上での感想はだいたい目次ブログ記事に書いてあります。

続きを読む

YAPC::Asia Tokyo 2014 に参加してきました #yapcasia

おがた (@xtetsuji) です。

そうです「ブログを書くまでがYAPCです」なのです。少しずつ書いています。

今年2014年も、8月28日木曜日から8月30日までの3日間、日本最大・世界最大級のPerlのお祭りである「YAPC::Asia Tokyo 2014」が行われました。

思ったことを全部書き始めようと思うと書く時間も文章も長くなるので、まず最初はこのサマリー記事を書いたあと、各日程に行われた個々のトークの感想を書いていきたいと思います。これは昨年の自分自身のフォーマットを真似ました。

このブログ記事は上記ブログ記事のまとめ記事でもあり、個々のトークや各種イベント枠以外のところにフォーカスを当てた記事です。あまり他の #yapcasia 関連ブログ記事で取り上げられていない部分かもしれません。

続きを読む

YAPC::Asia Tokyo 2014 が始まります #yapcasia

10年間くらい仕事と趣味でPerlプログラマーをしている、おがた (@xtetsuji) です。

件名の通りですが、YAPC::Asia Tokyo 2014 が2014年8月28日(木曜日)の夜の前夜祭から3日間にかけて行われます。

続きを読む

Mishima.pm#1 に参加してきました #mishimapm

おがた (@xtetsuji) です。

タイトルの通りですが、2014年7月12日(土曜日)に静岡県三島市で行われた「Mishima.pm#1」に参加してきました。

他の参加者の方々のブログエントリより:

当日の発表順とスライドへのリンク:

静岡へ遠出、そして久々の新幹線

当日は中野駅から東京駅まで行って新幹線に乗ることにしました。中野駅周辺で朝に用事があったのと、Googleマップにそうサジェストされたから。数年ぶりの新幹線、乗り方すら分からない感じになっています。

モバイルSuicaで中野駅の改札をくぐってしまったので、東京駅で新幹線カウンターにいかないといけないというのも勉強になりました。東海道新幹線も三島駅もJR東日本ではなくJR東海の管轄なのでそういうことなんですね。そんなことも知らなくてアタフタしてしまいました。

新幹線の乗車券

新幹線の行き先表示

三島駅

無事、予定していた時間内に三島駅に到着できました。

静岡の風景に癒やされた

三島駅から会場まで、15分くらい歩くのですが、その間の光景は穏やかで、東京23区内のバタバタした雰囲気から解放された感覚に、心が落ち着くようでした。通勤時間が短いならこういうところに住んだほうが心穏やかになるだろうなぁ。

静岡は結構好きで、学生時代から社会人になってからも何回か来たことがあるのですが、来る食べに発見がありますね。横に長いので各地の特色もある。今回は勉強会メインで観光地巡りとかをする時間はありませんでしたが、また時間を取って来たいなと思わされました。

会場まで歩くので精一杯で、写真は撮っていませんでした。

会場到着から開会

20分ほど前に到着したら、既に @dokechin さんが会場設営をしていました。軽く挨拶。

開会から10分ほど、自己紹介タイムでした。10人。既に顔を知った人が多かったのですが、@dokechin さんに呼ばれて参加した地元の方や、群馬からやってきたという方もいて、参加者の多様性は良い感じでした。

@yusukebe さんのトーク「とある Perl Monger の働き方」

今回、JPA講師派遣制度を利用してやってきたゆーすけべーさん (@yusukebe) こと和田裕介さんが、トップバッターで1時間トークでした。色々なテーマがあがったのですが、@dokechin さんのリクエストがあったようで、ビジネス面にフォーカスした話になりました。ゆったりめで、いつもゆっくり聞けないけど、起業から今に至るまでの話から、そこから得られた考え方などを語られていました。詳細は公開されているスライドを見るとわかるかと思いますが、色々と示唆に富んでいて面白いトークでした。

とあるPerl Mongerの働き方

確かにPerlで働きたいと思っても間口はそれほど広くはない、だけど今もCGIで…なんてところは、表に出てこないだけで大量にあるわけで、そういうところのコンサルタントみたいなところに食い込んだりして自ら仕事を作って、そしてそういう部分をどんどんモダンに改善していくというのも良い活動だよなぁって思わされました。

非同期の話題が多かった今回のトーク

@yusukebe さんのトークのあとは、休憩を挟んで各人のトークとなります。詳細は上記のトーク一覧を参照ください。

特に際立っていたのは、非同期関連のトークが多かったこと。

とはいえ、私もトークする人の一人で、何を話そうかと思っていたのですが、@dokechin さんが自身のブログ等でも非同期関連に興味を持たれていて、今回もその話をするらしいとうことを知って、それにぶつける形でマルチタスクの基礎といった話をしてみました。後でトークを聞いてみたら、どうも先日のPerlBeginnersで私がトークした「そのsleep、ちょっと待った!」が発端だったようで、色々つながっているなぁと思わされました。

私の場合、最近は仕事に忙殺されていて、プライベートであまり新ネタがないというのもあったりしたのと、Perlをあまり知らない人も参加されるらしいということで、forkなどの古典的なマルチタスク処理から解説した基礎的な話を入れてもいいかなと思ったのもありました。@__papix__さんなどの他の人のトーク内容を見ても「これは非同期関連の話を入れてくるなぁ」とは思っていました。期せずして裏テーマが「非同期」になったのは、@dokechinさん的にもよかったんじゃないかなと勝手に思っています。Mojo::IOLoop、以前から存在は知っていましたが、私も今度Mojoliciousでコードを書いた時に使ってみたいと思いました。

私のトークの後がLTタイムだったのですが、全体的に時間が押していたのと、会場が17時までだったこともあって、LTはナシで撤収となりました。自分の発表、ちょうど20分にまとめたんですが、もっと巻けば良かったかもしれません。

懇親会

懇親会は駅近くの「大衆居酒屋 凸凹」というところでした。

大衆居酒屋凸凹

急遽、懇親会の参加人数が増えて、6人席に9人座ることになったのですが、やればなんとかなるもので、それほど窮屈さもなく座ることができました。

まだ空が明るい17時過ぎから乾杯。三島の大衆居酒屋凸凹で乾杯

飲み放題の値段も静岡価格なのか結構安くて、飲んで食べて3000円でした。

プログラムの話やらYAPCの話やら、Perlの話を中心に話が弾んで、とても良い懇親会でした。

途中で、LTができなかった@mackee_wさんと@ytnobodyさんがMacをかかげて居酒屋LT。写真は@mackee_wさんこと、まこぴーさん。

まこぴーさんの居酒屋LT in 三島

氏のトークもAnyEventで、やっぱり非同期キタ!って思いました。以前から様々なプログラム言語を操る若手のホープでしたが、最近はGolangで書いた自作ツールで非同期をPerlから追いだそうという話でした。某人気アプリのクローンの今後にも期待です。

@ytnobodyことあずまさんのトークも、QRコードというガラケー時代を生き抜いた人にとって興味深いコミュニケーションツールをいかに綺麗に生成するかといったトークがとても興味を引いていました。QRコードという題材ひとつでもここまで掘り起こせるのはあずまさんならではといった感じでした。

あいかわらず @__papix__ さんが @yusukebe さんに愛されていて、写真を撮られたり仲睦まじい感じに和みました。@__papix__ 氏、Perl入学式の校長などで活躍中ですが、年長者から愛される力もあって羨ましい限りです。

その後

飲み放題の時間制限や、店が混雑していたことから、20時ごろにお開き。

一部の人達は、途中で温泉に入っていこうと盛り上がっていて実際に向かったようなのですが、私は疲れに疲れてしまっていて、湯あたりとかしそうだなと思ったので、まっすぐ帰ることにしました。駅まで歩いて行くなかで、お祭りの予行演習なのか和楽器を鳴らしている集団をいくつか見かけたり、良い風情に気分が良くなりました。

電車の待ち時間が結構あったので、改札前で @dokechin さん達と立ち話。よい #1 になりましたね、五反田でまた飲みましょうね、三島いいですよね、通勤なければ住みたいですとか、そんな話をしていました。

三島駅、ギリギリJR東海エリアなので、東京へ向かうときはSuicaでくぐっちゃダメなんです。うっかりそれをしそうになって、慌てて窓口でチケットを買いました。

三島→東京山手線内

行きの新幹線とは違い、2時間東海道線に揺られながら、疲れ果てて品川駅までほとんど眠っていました。でも充実した一日だった〜。

まとめ

2013年12月11日のMishima.pm#0には行けませんでしたが(詳細は私のスライドの冒頭を参照してください)、今回は無事行けました。本当、行けてよかったと心から思えました。また数カ月後に行われることを期待して、次回も時間を空けてぜひ行きたいと思いました。今度はもっとゆっくりと旅程を組んで、観光っぽいことも含めて三島を堪能できればいいな。

Yokohama.pm#11 に参加してきました #yokohamapm

おがた (@xtetsuji) です。

2014年5月25日(日曜日)に横浜で行われたPerlの勉強会「Yokohama.pm#11」に参加してきました。

ブログを書くのが6月末と遅くなってしまったのですが、今回のイベントは有意義だたので、多少遅れても記録として書いておきたいなと思った次第です。あとYokohama.pmと自分との振り返りも書いてみたくなったこともあります。

Yokohama.pmについてと、直近のYokohama.pmについて

Yokohama.pmはよくあるPerlの集まりである「地域.pm」の一つなのですが、以前は年一回くらいしか勉強会が開催できていませんでした。直近といえる数年間を列挙すると以下の様な感じ。

  • #7 2011年05月13日
  • #8 2011年11月18日
  • #9 2012年10月19日
  • #10 2014年02月21日
  • #11 2014年05月25日

#10 開催前に、主催側で「年一回も開けていない状況が続いているから、運営体制を変えてやっていこう」というやりとりがあったらしく、@yusukebe さんがリーダー、@mackee_w さんが副リーダーとして、3ヶ月おきくらいに開催していこうという流れになったようです。

私のYokohama.pmとの出会いは #8 を Ustream で観て、こりゃ勉強になると思ったのがきっかけだったようです。

そして実際に #9 に行きました。

#9 について書いた自分のブログ記事は無いようです。

そういえば #9 で、高校時代の後輩である @acidlemon 氏と再会したんでした。あの時は本当に驚きの出会いの場でしたね。向こうはこちらをTwitterでフォローしていて私がここにいるということを知っていたようですが、私のほうは全然知らなかったのでした。

そして #10 はプロントでのビール片手のオシャレ開催。#10 は本当に良い会場で、オシャレカフェが好きな自分にとって、ビールやピザなどの食べ物飲み物も振る舞われるという快適空間でした。感想エントリを書いていたので、そちらをご参照ください。

そして今回の #11。だいたい #10 から #11 は3ヶ月の間隔で、ちょうどよい間隔での開催が軌道に乗り始めた感があります。

2013年11月29日には「Yokohama.pm – 2013年ちょっと早い忘年会」という飲み会が催されたらしいのですが、私は当日は PerlBeginners#11 のほうに行っていたようです。

日曜日の勉強会という形式

今までは平日夜であったり土曜日夜という開催でしたが、今回のYokohama.pm#11はIT系勉強会があまり狙わない日曜日の夜というところを狙ってきました。これも主催者側の意図らしく、「平日夜が良いという人もいれば都合が悪い人もいる。そしてその逆もいる。参加者層を日曜開催ということで変えてみたかった」とのことでした。

今回のYokohama.pm#11のざっくりとしたタイムテーブル

本当にざっくりとしていて

  • 前半は @songumu さんによる1時間のライブコーディング
  • 後半は事前応募なしの会場挙手制のLT

という感じでした。

会場到着から開始まで

私は新江古田駅近く在住なのですが、横浜までは一度練馬駅まで行って、そこから副都心線と東急に乗り入れる電車に乗ると一本なのです。本当に副都心線で楽になりました。昨年のYAPC::Asia Tokyo 2013の会場も日吉駅近くの慶應義塾日吉キャンパスだったので、この電車が非常に便利でした。

練馬駅から横浜駅まで一本練馬駅にて。

18時に開始だと思っていたので急いで行ったものの、18時は開場で、開演は18時30分からなのでした。17時58分くらいに会場のビルに行って、会議室の入口で鍵が開いていないぞとかやっていました。一度一階に降りたら顔なじみの開催者のみなさんがやってきて、あぁそういうことかって思った次第です。

前半のライブコーディング

ライブコーディングというのは、その名の通り生(ライブ)でコーディングをしていくこと。音楽でいうところの即興演奏に近いものがあるでしょうか。普段は出来た完成形を発表しているプログラマですが、作る最中というものはどういうものなのかという興味もあって、時間が割ける場所では時々行われる催しです。今回はつい先日FA宣言をした @songmu さんがライブコーディングを行いました。

最初は「1時間ではCPANモジュールを作って上げるところまでいけない」とのことだったのですが、そこは@songmuさんの力で、Acme::BeerSushiをフルスクラッチから書くところから、CPANへアップするところまで、1時間で乗り切ったのはすごかったです。

今回書いたモジュールはビールと寿司の絵文字2つだけでプログラミングが書けるという、いわゆるBrainfuck系のお遊び言語を作るというものでした。本人曰く「これだけCPANモジュールをアップしていて、まだAcmeモジュールを作っていなかった」とのこと。今回、それが果たされる形になりました。

非実用的なモジュールではありますが、開発の流れ自体はテストからコーディングから公開まで、非常に参考になるものばかりでした。第一線の開発者によるノウハウがライブで映しだされて観られる機会って早々無いので、会場も食い入る様に見ていました。

私も流れるような操作を理解するのに一所懸命であまりメモを取っていません。録画があって後日公開されるらしいので、それに期待しましょう。

後半のその場募集のLT

メモとっていませんでした。

ライブコーディング同様、動画を撮っていたっぽかったので、それを期待しましょう。

懇親会

近所の居酒屋でした。

一部、横浜の家系ラーメンに行ってしまって30分くらい待っても帰ってこなかったので、もうこないのかってなっていました。

テーブルが2つに分かれていて、奥のテーブルで頼んだ注文も全部前のテーブルに吸い取られる事件が発生して、自分を含めて奥のテーブルの人達はお通しと最初の飲み物以外何も来ないという怪奇現象に悩まされました。奥のテーブルで腹減った状態が1時間位続いていて、これなら家系ラーメン食べに行けばよかったと思ったくらい。

ここはエンジニアの面白いところで、タッチパネル式注文機がテーブルを特定しているのかということを解析にかかります。実際のところ「テーブルは区別できる」という結論に至ったわけですが、それでもまだ前のテーブルに注文を無造作に持ってくる店員を大声で読んで「この状況をみて何かおかしいと思わない?」ってつい店員に強い口調で聞いてしまいました。怒ったわけじゃないけど、数年ぶりに店員に苦情言った。空腹は精神の平穏を乱してしまってダメですね。

その後、料理もちゃんと前と奥のテーブルできちんと区別されて配膳されはじめて(やっぱり区別できるじゃん!)ようやく奥のテーブルにも平安が戻ったところで、家系ラーメンに行った人が戻ってきました。どうも相当な時間並んで、さらに相当な時間注文で待たされたらしい。奥のテーブルで起こっていた珍事を知らない人たちが、飲み物を注文し、ようやく到着した食べ物を食べるという平和な光景でした。世界を良くしていくためには誰かが何か行動しないといけないし、後世の人は知らず知らずのうちにその恩恵を受けているという縮図的なものを見た感じでした。

話も弾んで、23時過ぎに店を出て各自帰宅となりました。

まとめ

日曜日の夜開催という点、主催者側の「平日夜や土曜夜という参加者層を変えたい」という狙いは大いに当たったと言えるものでした。

ただ、個人的に日曜日の夜だと月曜日が厳しい…。横浜近郊に住んでいれば良いのですが…。その辺は無理せず、参加できるときに参加するというスタイルがいいかなと思いました。

#8 でUstreamを見て行きたいと思った勉強会。今回も生放送ではないですが録画は後日公開される予定らしいので、行けなかった方はそれを待ちましょう。きっとエキサイティングなトークの数々が見られるはずです。