2012年6月28日木曜日

金曜日の BPStudy #58 に登壇します

BPStudy
開催が近くなってしまって申し訳がないのですが、皆さんにお知らせがございます。

このたび、株式会社ビープラウドさんが主宰するWeb系技術勉強会「BPStudy #58」に登壇させていただくことになりました。開催は今週の金曜日 19:00からとなります。

詳しい内容については参加者募集ページに掲載していただきましたが、プログラミングのことではなく、「書籍とつきあう」ということにターゲットを合わせて、(おそらく)ディープな話題をお話しいたします。iPhone アプリ開発話、PyCon参加報告の間で息抜き的な立ち位置で、また参加費として 1,000 円かかる勉強会でございますが、お気軽にお誘いあわせの上ご参加いただければ幸いです。

と、偉そうに告知してしまいましたが、実は BPStudy 初参加で初登壇という自分でもよくわからない無茶ぶりシチュエーションでございます。もしかしたら現場でテンパってしまうかもしれない私を見物に行くというのも、楽しみ方の一つかもしれません。

2012年6月27日水曜日

立教大学 「考える技術・伝える技術 ~立教型ビジネス基礎講座~」受講記

みなさんこんにちは。

ここしばらくほぼ毎週土曜日に、立教大学の連続公開講座に参加していました。(紹介してくれた masafumi さん、どうもありがとう!)

立教大学 「考える技術・伝える技術 ~立教型ビジネス基礎講座~」

本当はあと 2 回講座が残っていますが、個人的な事情で参加できないので、ちょっと早いですが感想とフィードバックを書いてみます。

今回の講座は立教大学とマイクロソフトが協業してビジネス基礎講座を開発していくという枠組みの中で開催された連続公開講座で私のような一般参加者をも受け入れ、講師陣もまさにエース級の豪華な顔ぶれとなりました。

テーマは一貫して今のビジネスの現場で、どのようなことが起きているのかということと、ビジネスをうまく回すために必要な能力とは何であるのかということを受講者に「気づかせる」ためのきっかけづくりというところに重点がおかれました。

単なる網羅的な知識ではなく、実際のビジネスの現場で効く能力、講座の中では「Passive Knowledge から Active Knowledge」へという表現をしていましたが、あえて言い換えてみれば intelligence と wisdom の差に一貫してスポットが当てられていたように感じました。

内容としてはビジネスの現場での事例を紐解いて、それぞれの課題にどのようなアプローチで、どのような思考で、どのようなツールを使って、どのように表現して乗り越えていくのかという社会人の立場では非常にリアリティあふれるものであったように思います。就業経験のない学生さんにとっては雲をつかむような話もあったのかもしれませんが、社会に出て1~2年目にこの講座の内容を思い出すと非常に役立つものではなかったかとおもいます。逆に社会人1~2年目の方にはベストマッチだった内容だった気がします。

今回は講師陣がマイクロソフトということもあり、当然のことながらマイクソソフトの Office 製品がデモなどで多く使われましたが、「単に使えれば良い」ということではなく「効率的に仕事をやる」ためにうまく使って欲しいというメッセージが随所に織り込まれていました。

今回の講座を受けて、以前総務省が 2001 年に「IT講習会」と銘打って全国津々浦々で講習会を実施したものの、デバイスやソフトウェアの機能説明に終始していて、「セミナーのばら撒き」状態でちょっと違和感を感じていたことを思い出しました。

ツールを使うことと、仕事をこなすことのどちらに焦点をあてるのかというのは非常に大きな差があるように感じます。ちょっと言葉で表現すると

  • Excelを使って仕事をする
  • 仕事を効率的にこなすためにExcelを使う

この2つの文の発想の違い、それが Passive Knowledge と Active Knowledge の違いなのではないかと思います。

日々「Excel方眼紙」で仕事をされている方、あなたの発想は本当に「Active Knowledge」ですか?

2012年6月8日金曜日

Ubuntu Magazine Japan vol.08 がもうすぐ発売!

3月に不肖長南が「商業誌デビュー」をしてしまいました、 Ubuntu Magazine Japan ですが、例によって「中3か月」の安定ペースで、最新号となる vol.08 が、この 6/11 月曜日に発売されます。

vol.08は6月11日月曜日発売です!

と、この記事を書いたということでお察しの通り、今回も執筆陣のメンバーに加わり、Q&A特集の一部について寄稿させていただきました。記事の分量としては前回ほどではありませんが、お楽しみいただければ幸いです。

今回の目玉はなんといっても 12.04 LTS 特集で、付録には「12.04 LTS 日本語Remix & VHD 仮想HDDイメージ付き」の DVD-ROM が収録されます。また、イマドキの Ubuntu のフィーチャーの中でまだまだ評価されていない Unity や Lens、 12.04 LTS で初お目見えの HUD といったギミックについても解説、そしてサーバー監視ノウハウや翻訳でのプロジェクト貢献、さらに毎号安定の珠玉の連載もということで、トータルで楽しめる内容になったのではないかと思います。

また、今回は 6/11 月曜日の発売ということで、配本流通の関係でお近くの本屋さんに並ぶのがちょっと遅れた地方があった前号とは違い比較的早い段階で手にすることができるのではないかと思います。発売日(もしくは配送の関係でちょっとだけ遅れるような地域の方は、それなりにいい感じの日)には、ぜひお近くの書店でチェックしてみてくださいねっ !

2012年5月版 「さくらのVPS」 Ubuntu Server ガイド

Code Jam やその他モロモロでおくれにおくれ、「さくらのVPS」の移行優遇策も時期的にスルーしてしまったのですが、「さくらのVPS」を、最新の Ubuntu Server 特に 12.04 LTS で使いたいという需要があるのではということで、2012年5月版と言うことで、過去に書いた記事を現在の状況に合わせて再度書いてみたいと思います。

サーバー要件の調査


何事にも計画を立てるということは大切なのですが、サーバーを構築するのでも計画を立てて、要件を詰めておく必要があります。10.04 の時の記事の再掲になりますが、
  • ホスト名
  • DNSドメイン名
  • DNS FQDN名
  • IPアドレス
  • ネットマスク
  • ルーティング情報(デフォルトゲートウェイも含む)
  • DNSサーバ指定(複数指定されていればその全て)
  • DNSサーチドメイン名
  • NTPサーバ
の各項目を調べておいてください。「VNCコンソール」については当時ベータ版扱いでしたが、今では正式なサービスとなっているので、こちらを使うとよりイメージしやすいかもしれません。

カスタムOSインストールが便利


この記事を書く段階では「カスタムOSインストール」には Ubuntu 12.04 LTS がまだ用意されていなかったのですが、さすが LTS というだけあって、6/7 には利用できるようになりました。



試しに「カスタムOSインストール」でインストールしてみましたが、パッケージの選択が「さくらのVPS」の標準OSの CentOS に準拠して、最初から OpenSSH が立ち上がっている状態となりました。深いことは考えずにこれを利用してみるのもいいかもしれません。

ただし、普通のPCと違っていきなりインターネットに接続している(VPSですからあたりまえですよね)ので、即刻 ufw や OpenSSH の設定を見なおしておくと良いと思います。

この辺のノウハウは Ubuntu Magazine Vol.07 で徹底紹介していますので、参考にしてみると良いでしょう。

Ubuntu Magazine はもうすぐ最新号の Vol.08 が出る予定ですから、もうしばらくするとバックナンバーのPDFファイルが編集部で公開される予定なのでそちらをチェックしてみても良いかと思います(言うまでもないことですが、グラビアなどの公開されない記事もあるので実物を購入するのも選択としてアリです)。

ガチで最小構成でインストールする場合には


現在は「さくらのVPS」の「カスタムOSインストール」で 12.04 LTS がインストールできるようになりましたが、『ガチで最小構成でインストール』するためには、ネットワークインストーラーを入手し、Grub から起動する形でインストールを進めます(ただしネットワーク資源的にはミラーサーバーから必要なものを適宜ダウンロードするので「カスタムOSインストール」のほうが無難かもしれません)。

 

Ubuntu 12.04 LTS amd64 のネットワークインストーラーの入手


具体的にネットワークインストーラーを入手するわけですが、 12.04 LTS のコードネームは Precise Pangolin ですので、標準OSのCentOS上で、

# mkdir /boot/ubuntu
# cd /boot/ubuntu
# wget http://jp.archive.ubuntu.com/ubuntu/dists/precise/main/
       installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux
...
# wget http://jp.archive.ubuntu.com/ubuntu/dists/precise/main/
       installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz
(URLが長いので折り返しましたが、この部分は1行で続けて書いてください)

としてダウンロードします。 標準でインストールされる CentOS 6.2 構成でカーネルや initrd などを起動時に読み出す /boot パーティションを間借りするのがコツです。

設置したネットワークインストーラーの起動


この辺は以前の記事と同様の操作で、リブートして、Grub のコマンドラインから設置したインストーラーを起動することになります。

# reboot

として再起動し、Press any key to continue と出てくるので何かキーを押し、その後 Booting CentOS と出たところでも再度何かキーを押して、Grub のメニュー画面を表示させます。さらに Grub のメニュー画面では 'c' を押してコマンドラインモードに移ります。





Grub のコマンドラインでは

grub> root (hd0,0)
grub> kernel /ubuntu/linux
grub> initrd /ubuntu/initrd.gz
grub> boot

としてネットワークインストーラーを手動起動します。


以前の記事のくり返しになりますが、キーボードは us モードになっているので、一般的な日本語キーボードでは開き丸カッコは Shift + 9 、閉じ丸カッコは入力できないので root (hd0,0 とここまで入力したところで TAB キーを押して閉じ丸カッコを補完させます。また、kernel の部分についてはVNC コンソールを使う前提であれば、特にオプションを指定する必要はありません。kernel や initrd のところでもファイル名については TAB キーによる補完が効くので、適当なところまで入力した後に TAB キーを押してとっとと補完させておくのがスマートです。

うまくいくとインストーラーが起動します。

Ubuntu のインストール


あとは画面に従ってインストールを進めていくことになります。この辺はもういつもと同じ感じということで、Ubuntu Magazine Vol.07 を参考にしましょう。

コンソール環境の整備


ネットワークインストーラーからインストールした際にもコンソール環境の設定をしておくと、VNCだけではなく「リモートコンソール」からメンテナンスができて便利かもしれません。/etc/init/ttyS0.conf や、/etc/default/grub を必要に応じて編集し反映させておくといいでしょう。なお、以前記事で書いたような、/usr/sbin/grub-mkconfig や /etc/grub.d/00_header への修正は必要なくなったので、ご安心を。

/etc/init/ttyS0.conf

# ttyS0 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
 
start on stopped rc RUNLEVEL=[2345] and (
            not-container or
            container CONTAINER=lxc or
            container CONTAINER=lxc-libvirt)
 
stop on runlevel [!2345]
 
respawn
exec /sbin/getty -8 115200 ttyS0

/etc/default/grub

# If you change this file, run 'update-grub' afterwards to update               
# /boot/grub/grub.cfg.                                                          
# For full documentation of the options in this file, see:                      
#   info -f grub -n 'Simple configuration'                                      
                                                                                
GRUB_DEFAULT=0                                                                  
# GRUB_HIDDEN_TIMEOUT=0                                                         
GRUB_HIDDEN_TIMEOUT_QUIET=false                                                 
GRUB_TIMEOUT=5                                                                  
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`                
GRUB_CMDLINE_LINUX_DEFAULT="quiet"                                              
GRUB_CMDLINE_LINUX="nosplash console=tty1 console=ttyS0,115200n8r"              
GRUB_SERIAL_COMMAND="serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1"                                                                              
                                                                                
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
 
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
GRUB_TERMINAL="serial console"
 
# The resolution used on graphical terminal
(以下省略)

なお ntp や OpenSSH、 ファイヤーウォールなどの設定についてはUbuntu Magazine Vol.07以前の記事を参考にすると良いでしょう。

2012年6月5日火曜日

Google Code Jam 2012 結果ご報告

ご無沙汰しております。引越し後の東京の生活にもようやく落ち着いてきたところでございます。

といっても仕事以外の部分で引き続き半死半生な感じでありますが、それに耐え得るだけのものを身に着けたい今日この頃です。

さて、今年も Worldwide な Google Code Jam 2012 に参加いたしました。参加日程に詳しい方はこのエントリを今の段階で書いている段階で結果はもうお分かりかと思いますが、Round 2 まで進むことができました。内容というよりも開催時期が引越しをやろうという時期に重なって非常にしんどかったです。今となっては予選のあたりは遠い昔の出来事にも思えるのですが、だらだらと振り返ってみたいと思います。

予選 4/14(土) 8:00 ~ 4/15(日) 9:00 (25時間, 以下時刻はすべて日本時間)

身辺整理タスクが積み上がり、落ち着いてコードを書けるような状態ではなかったのですが、予選で時間も余裕があり、気分転換もかねてゆるい感じで取り組み、45 ポイント 6876 位で通過できました。「全部解けるくらいでないとお話もならないよな」とも思いましたが変に追い込むと心が折れそうなのでこれでよしとしました。

Round 1A 4/28(土) 10:00 ~ 12:30 (2時間半)


Round 1 は 1A, 1B, 1C の3回に分けて開催され、それぞれの上位 1,000人が勝ち抜け、合計3,000人が Round2 に進出できる仕組みです ( 一度勝ち抜けが確定すると他のラウンドには参加できません )。 過去2年間、イベントなどとバッティングして不戦敗してしまうということが続いていたのですが、今年も案の定、ニコニコ大会議にぶつかってしまいました。ニコニコ大会議のエンジニアトラックを冷やかし、necomimi を入手するため、 1A は不戦敗になりました。

Round 1B 5/6(日) 1:00 ~ 3:30 (2時間半)


ということで、勝ち抜けるためには、1B、1Cのいづれかという状況になりましたが、ゴールデンウィークは引越し元の事務処理などの都合で出先のビジネスホテルでの参加を余儀なくされました。時間帯的にも深夜で厳しいのですが、43 ポイント 693位で通過。ここまでくると時間内に問題を全部解くには力が届かなく、なんとか Problem C を Small Large 両方通し勝ち抜けることができました。

Round 1C 5/6(日) 18:00 ~ 20:30 (2時間半)


1B で通過してたので 1C は不参加ということになりますが、この日は竜巻の被害が出た日で交通機関は大混乱となる状況でした。結局ふたをあけれてみれば 1B のワンチャンスをなんとか拾った形となりました。

Round 2 5/26(土) 23:00 ~ 25:30 (2時間半)


ということで、自己ベストの Round 2 ですが、問題も難しくなり、また手強いライバルがひしめくなか、上位500位で勝ち抜け、1,000位でTシャツ獲得という条件でしたが、全く程遠い結果となりました。かろうじてボウズになることは避け、5 ポイント 2,082 位となり、ここで脱落となりました。

今年の挑戦を通じてふりかえってみると、コンディションが整っている状況とはお世辞にも言えないなか、泥沼的にくらいついてなんとか絞りだしたシリーズだった気がします。「あの時、あの問題をもうちょっと勉強していれば解けたかもしれない」問題があった気もしますので、今後の課題にしていきたいと思います。

こんなへっぽこ野郎でしたが、折にふれ、陰ながら応援して下さった皆様にこの場を借りて感謝申し上げます。