2008年12月20日

WEB+DB PRESS Vol.48に寄稿しました

今度発売されるWEB+DB PRESS Vol.48の第一特集にて「[言語別]モダンプログラミング入門」 という記事を書かせて頂きました。

おこがましいようですが僕は特集の総括的な部分とPerlに関して担当させて頂きました。
KENTは悪じゃない!から始まってperldoc, cpan, pauseアカウントの取得, test, shipit そして JPA まで幅広く今のPerlについて書きました。
もちろん濃くて広い事を書くにはページ数の限界もあって「薄く広く足がかりを作る」に専念したため、Shibuya.PMで発表してるような魑魅魍魎が満足するような内容にはなっていませんが、昨今のPerlを見つめ直す流れに乗っ取り、他言語な方や初心者の方でも今のPerlの流れに乗れるような内容になる事を意識しました。

もちろん他の言語(Ruby,Java,PHP,Javascript)でも、似たような構成と主旨で書かれています。
それぞれの章を担当して下さった皆様にも感謝です。

今回はとても幸運な事に、ただ単に特集の一つを担当したわけではなく、コンセプト的な企画を作る所から関わらせていただけました。
というもののきっかけとしてはITmediaで取材して頂いた時の一言

—— 開発系の雑誌で購読してるものはありますか? 雑誌にはどんなコンテンツを期待したいですか?

SoftwareDesignとWeb+DB PRESS。東京IT新聞も速報度の面でがんばっているなと思います。ぶっちゃけ雑誌媒体というのはWebの情報に比べると鮮度が悪いわけですが、紙には紙の良さがあってじっくりと読むのには向いていますよね。言語は問わず(商業的な取捨選択はあるけど)今風のモダンでcoolなコードの書き方などをメインにした「プログラム専門誌」が欲しいですね。月刊で。
がきっかけでした。
流石に月刊はアレですが、夢が叶ったという事でとても嬉しいです。

このへんのやってみて思った事はtakesakoさんすげーって事。

ってことで1家に一冊、1部署に一冊是非どうぞ。

WEB+DB PRESS Vol.48
WEB+DB PRESS Vol.48
posted with amazlet at 08.12.20
WEB+DB PRESS編集部 編
技術評論社
売り上げランキング: 585

そしてやっっぱり相変わらず思う事は、プロの編集者さんはすごいということと、また機会があれば何か書きたいなということでした。

あ、執筆中はwassrでhyoshiokaさんからの貴重なアドバイスも頂きました事を追記しておきます。

otsuneさんに前回の紹介で「もう出てると思って買ったら1号前だった」とクレームが来たので書店に並びそうになるまで待ちました。

Posted by Yappo at 19:08 | Comments (0) | TrackBack

2008年12月12日

このblogとperl-users.jpは移転完了

blog.yappo.jp と perl-users.jp だけは、新環境に移行したのでサーバの物理移動中も止まらないす。

しかしふっるいmtなので関連ディレクトリをrsyncするだけで動くなんてすばらしいなー

Posted by Yappo at 19:32 | Comments (0) | TrackBack

2008年12月10日

サーバ引っ越し計画

すっかり準備するのがギリギリになってヤバイ。
金曜の夜に今置いてる所から物理的にサーバを移動します。
なのでもう今週中はテンパってます。

という事で簡単な計画表

やること

  • DNSのプライマリサーバ移転 (hidekさんの会社のやつ契約ずみ) (jprs/tonic/value domain)
  • mail/irc/plagger環境作る (リアルサーバでOSとかは既に入って稼働してるの使い回し)
  • edge serverでメールを受けてバックエンドに再配送させる仕組みつくる
  • edge serverにマトモなdsn cacheを入れる
  • このblogや軽いwebサービスようのDomU作る
  • perl-users.jp / soozy.org / shibuya.pl / perldoc.jp / yapc.asia などようのDomUつくる
  • 新しい環境の中に25番ポートで繋がるようにする
  • ラックの掃除
  • 新環境を用意するものは、新環境にさっさと移動、用意しないのは金曜の夜に物理マシンの移動
  • 移動中のお知らせメンテナンスページ用意
  • /etc/hosts とか hostname まわり。

異動前の構成とサービス内容

PE750

  • mail - sendmail (virtusertable) - mew - spamd (procmail(hiyoko@twitter, kacotie@twitter))
  • irc - irssi - oppaisan - mobirc
  • plagger
  • private subversion repos
  • dns
  • 以下はweb
  • yappo.jp/yappo.ne.jp (i, 503, moogle, talk, trac, svn, w, dir, search, *.labs, blog, tec)
  • blogdb.jp (bulkya, mfpm, shibuya.burogukyoukai)
  • menulist.jp
  • soozy.org
  • bloxab.org
  • cybozu.co.uk
  • perl-users.jp
  • seiitaishougun.com
  • shibuya.pl
  • yapc.asia

ISP1100

ハードウェアクロックがなんだか年単位でずれてる。といかどっかのDomUに突っ込んで退役希望

  • web crawler
  • hiyoko
  • sendmail virtusertable
  • mobile sns用のメール受信処理
  • moblog & photo storage用のメール受信処理
  • mail配送エンジン(たしかもう使ってない)
  • 以下はweb
  • bp.to
  • m.blogdb
  • 2ch proxy

PE1850

  • mysql
  • mysql with senna

edge server

codereposとacotieへのreverse proxyやらなんやら

SC440 - 1

  • coderepos
  • acotie

SC440 - 2

今なにもない。あ、1000スピーカカンファレンスで使った。

tsukumo

dns セカンダリとblogdb.jp跡地

異動後の構成とサービス内容

PE750

京都行ってる時にとまりやがったのでこわい。

  • private subversion repos
  • 以下はweb
  • yappo.jp/yappo.ne.jp (i, 503, moogle, talk, w, dir, search, *.labs)
  • blogdb.jp (bulkya, mfpm, shibuya.burogukyoukai)
  • menulist.jp

ISP1100

ハードウェアクロックがなんだか年単位でずれてる。といかどっかのDomUに突っ込んで退役希望、というか移動した後bootするか不明。

  • web crawler
  • hiyoko
  • sendmail virtusertable
  • mobile sns用のメール受信処理
  • moblog & photo storage用のメール受信処理
  • mail配送エンジン(たしかもう使ってない)
  • 以下はweb
  • bp.to
  • m.blogdb
  • 2ch proxy

PE1850

平穏無事に動いてるのでこわい

  • mysql
  • mysql with senna

edge server

codereposとacotieへのreverse proxy server 並びに mail forwarder

SC440 - 1

  • coderepos
  • acotie

上のDomUに加えて下のDomU追加

public

  • perl-users.jp
  • shibuya.pl
  • soozy.org
  • yapc.asia (もしくは edge server のみで処理)

private

  • private subversion repos for svn.yappo.jp
  • yappo.jp/yappo.ne.jp (trac, svn, blog, tech)
  • bloxab.org
  • cybozu.co.uk
  • seiitaishougun.com

SC440 - 2

  • mail - sendmail (virtusertable) - mew - spamd (procmail(hiyoko@twitter, kacotie@twitter))
  • irc - irssi - oppaisan - mobirc
  • tig/wig
  • plagger

tsukumo

dns セカンダリとblogdb.jp跡地

hidekさんの会社のVPS

dns プライマリとバックアップ

PE860

状況をみてPE750とISP1100のサービスをこれのDomU複数作って集約。集約したらPE750/ISP1100を退役。余裕があればPE1650も入れたいけど80万くらいしたからどうしようか。

作業する順番

  • VPSにname serverの環境作ってprimary として動かし始める
  • yappo.ne.jpのnsレコード変更。変更出来次第他のドメイン全部のnsレコード変更
  • DomU2個作る(1個作ってイメージコピー)
  • VPSにバックアップしまくる
  • mail/irc/plagger環境作る
  • edge server から SC440-2 にメール流す
  • public servicesの引っ越し (済: perl-users.jp)
  • private servicesの引っ越し (済: blog.yappo.jp)
  • VPSにバックアップ(差分とか)
  • イーサケーブル作ってラックの掃除
  • PE750/PE1650/ISP1100物理移動
  • ラッキング
  • サーバ起動
  • hostname/ip address/ip tables/network環境の書き直し
  • DBの認証設定全部変える
  • アプリケーションのDB設定全部変更
  • アプリケーション稼働確認と広告周りを実機でチェック
  • ISP1100のメール環境整備
  • クロウラー走らせる
時間足りなくてきついわー

来年

codereposとか入ってるマシンに500GのHDDが刺さってるだけなので vgextend VolGroup00 /dev/sdb してパーティションサイズをいつでも増やせるようにしておく。

Posted by Yappo at 18:36 | Comments (0) | TrackBack

2008年12月08日

CodeRepos新年会2009は1月16日20時から目黒です

先日告知したCodeRepos新年会の詳細が決まりました。

CodeRepos New Year's party 2009
location: Meguro, Tokyo, Japan
date time: 2009/01/16 20:00:00(JST)
予算: 4,800円
参加者50名くらいで「大和路目黒店 http://www.hotpepper.jp/A_20100/strJ000023490.html」貸し切り
100名で、その上の庄屋貸し切りで大和路メニュー。

参加希望する方はhttp://svn.coderepos.org/share/events/party/coderepos_new_years_party_2009_attendant_list.txtにコミットして下さい。むづかしければブクマコメントかコメントで。
コミット権の無い方/プレス関係者の方は、コミット権を取得するか知り合いのコミッターにお願いするか、個別に連絡かブクマコメントでするかなんなりと。

Posted by Yappo at 11:30 | Comments (0) | TrackBack

2008年12月05日

ニコニコ大会議2008冬にいってきました

cojiさんにご招待いただいてニコニコ大会議2008冬に参加させて頂きました。coji++ kawango++

今日の感想は カさん(さくら水産ツンデレ女子店員)>>>>>>>奥井くん>>>>>>>>>>>>>>>>>>>>>>>>>(こえられないかべ)>>>>そのほか大勢
さいしょはつんつんしていた何さんが店出る時に「おつかれさまですー」と間違っていったらまんべんの笑みを見せてくれたのが良かったです。
カって中国発音で何?ときいたら「ふっけんしょう」とか教えてくれたりとそれは良かったです。

夏野さんのいつもおきまりのウザキャラで奥井君がアイドルになったのも良かったでした。
あとトルシエ出演の必然性が全く判らなくてわろた。

で、本編の詳細はメディアででるので気になったのだけ。
夏野ビジネスの再利用的な印象をもたせる感じだったけどわざと切り売りしてるっぽいきもするな。
あいかわらず一発芸芸人的に「黒字」連呼してた。
FOOさんはshinnoさんに似てた。

ニコニコミュニティはニコニコ公式チャネルの為に動いてたのかなー?という印象。

一番の目玉は一般ユーザでも生中継が解放された事。いままでは数十分で100万だったのが、プレミア会員で出来る。
一番組30分で、中継するコミュニティのレベルに応じて同時視聴が可能だ。設定次第でコミュニティ以外の人もみれる。
勉強会の動画配信メディアこそニコニコでやるべきだと思ってるので嬉しいけど、じっさいは
何人同時に見れるのか(プレミアム会員がこぞって配信用コミュニティに精一杯あつまったらどうか?)とビットレート
回線をどのくらいつかうか
海外勢でも生放送が見易いのか?
などが気になるとこだろーなーと。
ustはircでログが残せるので、そのへんもどうできるかがポイントか?
一番組30分だけど、すぐさま次の番組を配信出来るか?(1発表(LTはまとめてひとつ)1番組としてスムーズに運用出来るか?など) PinPやらニコニコ動画をワイプで配信できたりとustにもない差別ポイントはあるので、勉強会やる人達はプレミア入る価値はあるかもしれない。俺まだ金だしてないけど。

計画中かわからないけど、生中継を見る人に対して課金するとかそういうプランはないのか?金だしても見たいような中継もあるだろうし金払った人にだけ生中継見せたい場合もあるだろう?さんざん黒字化について頭ひねってるから、絶対に考えてないわけないだろうし考えてないなら俺が作る。
課金タイプの生中継ならコミュニティレベル制限撤廃とかできればなー

ある程度の額を払えば勉強会やらカンファレンスで使える程度のサービス体系に出来れば嬉しいなー。まぁニコニコのビジネス的には美味くないだろうけどねー

あとメディア質問コーナーで質問出来たまともなメディアがインプレスだけってのは酷いと思った。別室で一席あるんだろうけど。

Posted by Yappo at 01:16 | Comments (0) | TrackBack

2008年12月04日

CodeRepos忘年会betaしましたとCodeRepos新年会のお知らせ

昨日は突発的にも関わらずCodeRepos忘年会おつかれさまでした。


さて、以前からやるとは言っていましたが、あまりにも突発的開催すぎて酷いので幹事のkanさんと話してCodeRepos新年会権everesさん500人目おめでとう会を開催するという手はずになりました。
予約先候補は100人規模なら一ヶ月前くらいから予定を抑えて欲しいとの事なので、今のうちにどのくらい参加者が見込めるかを調べたいと思いますので、例のごとくhttp://svn.coderepos.org/share/events/party/coderepos_new_years_party_2009_attendant_list.txtにコミットして下さい。
コミット権の無い方/プレス関係者の方は、コミット権を取得するか知り合いのコミッターにお願いするか、個別に連絡かブクマコメントでするかなんなりと。

追記:1月16日開催が濃厚です。場所は目黒っぽい。

Posted by Yappo at 11:49 | Comments (0) | TrackBack

2008年12月03日

MooseX::Typesのしくみ

MouseX::Typesを作るにあたり、あまり使った事のないMooseX::Typesを試していてドはまりした。

普段Mooseのsubtypeとか指定するときは

subtype 'Natural' => where {};
とかやってtype name と定義の間をfat commaで繋げたりする。
で、うかつにもfat commaだからってクオートを外して
subtype Natural => where {};
みたいな事を書いていたわけ。

MooseX::Typeで

use MooseX::Types -declare => [qw/ Natural /]
のような感じで定義しようとした時には、MooseX::TypesがNaturalという関数をexportするんですね。
そして、上記定義をするためのクラスをMyTypesだとした時に
use MyTypes 'Natural'
で、この定義がisaやdoesなどで使えるようになる。
これもNaturalという関数が定義されるので
has foo => ( is => 'rw', isa => Natular );
といったhas定義が書ける。(クオートでくくる必要が無い)

で、MooseX::Typesをきちんと使うためには、subtype/coerce/class_type/role_type/hasのisa/doesなどに、このexportされた関数を渡さなくてはならない。
文字列を渡してはならないのだ。
この関数はMooseX::Types::TypeDecoratorのオブジェクトを返す。このオブジェクトはoverloadされており文字列で評価された時には、typeの名前が返ってくる。
標準で、定義したクラス名+定義名になるので、今回の場合は「MyTypes::Natural」という文字列が変える。
ようするに

subtype 'MyTypes::Natural' => where {};
has foo => ( is => 'rw', isa => 'MyTypes::Natular' );
という定義をしている事と同等なのだ。
これによってユニークな型定義が可能となっている。

さて、冒頭のうかつな

subtype Natural => where {};
は、どうなるというとfat commmaなのでNaturalの部分が文字列として評価されてMyTypes::Naturalの定義がされない事になる。
結果的に、うご書かなくなる。

まとめとしてはMooseX::Typesを使う時には

subtype Natural, where {};
のようにfat commaは絶対使っちゃダメ!

Posted by Yappo at 17:29 | Comments (5) | TrackBack

CodeRepos Year end party 2008 beta を本日開催、参加者募集中?

なんか突然ですが、CodeRepos忘年会が本日開催されます。
20時から目黒の大和路というしゃぶしゃぶやさんです。だいたい4000円で食べ放題のみ放題。

参加する方はhttp://svn.coderepos.org/share/events/party/coderepos_year_end_party_2008_beta_attendant_list.txtに追加してコミットして下さい。

kan: 100人規模のは後日?(多分1月に新年会的なので)

Posted by Yappo at 11:56 | Comments (0) | TrackBack

2008年12月01日

Yacafiが動くスケーラブルなサーバです。

HECon#1でも大変にお世話になりました!
とっても素晴らしいサービスなのでPerlを始めたい方は是非加入してみてはいかがでしょうか?
というacotieメソッド。
いや普通にhidekiさんも働いている会社なのでPerl的に超期待ageです。

VPSレンタルサーバー
VPSレンタルサーバーVPSレンタルサーバーVPSレンタルサーバー

Posted by Yappo at 19:09 | Comments (0) | TrackBack

JPerl Advent Calendar 2008

JPerl Advent Calendar 2008が始まりました。Perl に関するちょっとした Tips を、毎日一個とか書いてくのです。
codereposのアカウントがあれば誰でもかけます。

はてなアイデアでadvent calendar ( http://perl-users.jp/articles/advent-calendar/2008/ ) が一ヶ月続いたら、id:precuredaisukiが執筆者全員に雛寿司を奢るというアイデア。codereposのアカウント持ってれば誰でも書けるよ!というアイデアも出されているので、寿司食べたい人は参加するといいよ。

Posted by Yappo at 18:26 | Comments (0) | TrackBack