[時間割:C言語]『はじめてのC言語完全入門』
2008/08/19 23:40 posted by kunkichi
火曜日は「C言語」です。
C言語は大学の最初の頃に習ったんだけど、それ以来ほんと触ることなくて、PerlとかPHPとかのインタプリタ言語を触るようになってからはますます疎遠になってました。なので気分的には1からやり直す感じで。カーネルのソースコード読めるようにがんばります!
ということで、引っ張りだしてきたのは以前に買ってたCの入門書。塚越さんの本は読みやすくて好きなんだよね、Perlの本も良かったし。
塚越 一雄
技術評論社
売り上げランキング: 420963
1〜4章
- コンパイル時のステージ。全部gccで一発でやってくれるけど一応。
- ソース書く(*.c)
- プリプロセス(gcc -E *.c > *.i)
コンパイルの前処理。外部ファイルの読み込みとかマクロの置換とか。
- コンパイル(gcc -S *.c か *.i → *.s)
アセンブラコードへの変換。
- アセンブル(gcc -c *.c か *.i か *.s → *.o)
オブジェクトファイル(バイナリ)へ変換
- リンク(gcc *.o)オブジェクトファイルとライブラリをリンク
- Cは外部宣言(宣言と関数定義)の集合。
- 関数定義が一つ必要、かつ関数名はmainである必要がある。
- nmコマンド初めて知った。オブジェクトやライブラリに含まれている関数とかを表示する。
- リンク後の実行ファイルには作成した関数以外にもスタートアップモジュールが追加される。これがmainを呼び出す。
実はCの文法とかというよりも、こういう点が一番勉強したかったところ。バイナリアンになりたい。
Category: C, Programming, Book | コメント&トラックバック(0)
ライアン・アダムス流Lifehacks
2008/08/19 01:10 posted by kunkichi
いやーこんなところでライアンに出会うとは。

Lifehackersに『ミュージシャン ライアン・アダムスの成功の秘密』と題したエントリが載ってました。ライアンとLifehacksってどう考えてもつながらないんだけどなー(笑)でもちょっと面白そう。とあるテレビでファンからの質問に答えた様子。
Q) ライアンはここ8年で平均1年で1枚のアルバムリリース、1年で3枚リリースした年もあり、またそれ以外にも他のアルバムやサウンドトラックに参加しているという超ハイペース。どうやってこれだけの曲を書いているのか?
A) ミュージシャンの仕事は単に週2、3曲の曲を作る。これが全て、だからやるだけ。これ以外の何者でもない。これをやらないミュージシャンは単にさぼっているだけ。
でLifehackers のまとめは以下。
- 自分のゴールを考えて、それに必要な「アクション」を取ること。
- かつ、これを「継続的」にやること。
- この二つがなければ「ゴール」つまり「成功」はない。
うーん、深読みし過ぎじゃね?(笑)
でも、一時期の不安定な感じから、ここ数年の安定した(というかそんなレベルじゃ追っ付かないw)製作ペース、それとシンプルで落ち着いた曲調が増えていることを考えると、あながち外れてもない気がする。
まあリスナーとしては順調にアルバムをリリースしてもらえれば言うことなしです、はい、笑
Category: Music News, Life Hacks | コメント&トラックバック(0)
[時間割:Python]『みんなのPython』開始
2008/08/17 22:55 posted by kunkichi
週末は「復習」の予定なのだけど、今週末は多忙&体調不良でダウン、、、木曜日の「Python」の時間のまとめだけもう書いていたのでアップします。
ちなみに、前にも初めてのPython 第2版で勉強したことがあったのだけど、途中で軽く挫折、、、orz。
どうも完璧主義的にやろうというのはよくないね。多少なりともプログラミングやってればある程度わかってることでも、「きちんとまとめないと」という気持ちから実例入れたりしてちゃんとまとめようというのはやっぱり無理。ブログに書くだけでも時間かかって面倒で続かないなー、僕の場合。
ということで、今回は気になったところだけまとめるっていうのを全体的な方針としてやってます。
気分一新、本も買えました。オライリーのが悪いわけではなくて、気分的な問題。初めてのPython 第2版は持ち歩くのも大変だし(笑)
Chapter1から。
数値
- 整数同士の計算は整数で返される(例:1/2は0)
- 整数と浮動小数点数を組み合わせて計算すると精度の高い方、つまり浮動小数点数で返される(例:1.0/2は0.5)
- ++とか–は使えない。+=とか-=使う。
文字列
- 複数の文字の配列みたいな感じ。Cっぽい。
- マルチバイト文字を使う場合はunicode文字列を使う。
- シングルクォート、ダブルクォート、トリプルクォート。
- どの場合でも変数展開されない。
- トリプルクォートがヒアドキュメントみたいな感じ。
- 連結は+、繰り返しは*。数値演算みたく書ける。
- int()、float()、str()とかで型キャスト。
- 関数とメソッド。
- 配列みたくインデックスで文字を取り出せる。
- でも配列みたく置き換えれない。文字列は配列じゃないから。replaceメソッド使う。
同じこと勉強するにも本によって流れが違うし、片方だけではわからなかったこととか、両方読んですっきりすることもあるね。「多読」がいいのはこういうことか。
Category: Python, Programming | コメント&トラックバック(0)
[時間割:読書]『チーム力をつくる3ステップ』
2008/08/14 22:30 posted by kunkichi
昨日作った時間割のうち「読書」の時間用に1冊買ってきました。で早速今日読んだところで個人的に気になったところだけ簡単にまとめておきます。アウトプット重要。
1章
- 相手がいるときはうまくいくとは限らないという認識をもつ。それをうまくいかせるためにはどうするか?を考える。
- 話すときはなるべく目線を同じ高さに。
- 発言することのインセンティブを。成功体験重要。
- 2:8の法則でいうような、大半の「普通の人」をいかに動かせるかが大事。あとはついてくる。
2章
- 自分自身の「当たり前」はみんなの「真実」ではないことを認識する。
- 同じイメージを共有するために「標準化」。でも「標準化」できないことの方が多くて当たり前。
- 「伝わったか?」を確認するために質問・相談といったコミュニケーションが必須。
- 質問しやすい雰囲気作り。緊張させない、質問のタイミングを作る、小さなグループ、恥をかかせない。
- これを繰り返して「標準化」を目指す。
- 全体の一部をそれぞれがやるのだから意識違いは当然。だからコミュニケーション。
- 個々の興味をそれぞれ違うのだから意識違いは当然。だからコミュニケーション。
身につまされるなぁ、苦笑。いいチームはつくるためには、独りよがりになってないかを常に意識しないと言うことだね。
Category: Book | コメント&トラックバック(1)
時間割を作ってみた
2008/08/14 01:09 posted by kunkichi
最近、勉強熱がかなり高まってて、かなりのペースで本を買ってるのだけど、さすがにあれもこれもと欲張っちゃった結果、積読になっちゃったり中途半端な感じになったり。
さすがにこれじゃまずいということで、少し「量より質」を重視する方に移行しつつ、でも今まで通り幅広く勉強する、というのをでためにちょっと調べてみたところ、『時間割』を作ってみるのがなんか良さげ。
ライフハック・プラクティス ~仕事の生産性を上げる習慣~:プラクティス:10「時間割を作る 」 | エンジニアマインド … 技術評論社
時間割は,
「日々の勉強をリズミカルに進めていくためのレール」
のようなものです。
仕事をする上でもこのレールを引いてリズミカルに仕事を進めることで,時間に対する意識も高まり,余計なことを考えることなく「やるべき仕事」に集中することができるのです。
ということで早速始めてみます。実際に時間割をどうやって作っていくかは、僕と同じIT系エンジニアの方が書かれている以下のサイトが参考になりました。
上記の方の時間の割り振り手順は以下。
- Googleの「20%ルール」を参考に、1日8時間×5日(月〜金)×20%=8時間を、自分のやりたいことをやるための時間として時間割に組み込む方針で。
- やりたいことをとりあえずリストアップ。
- これを「教科」に分類して、時間割に組み込む。
で僕が考えた教科が以下。僕の場合、本当にやりたいことか?今必要なことか?をイメージしてリストアップしたので、結果として今の仕事でもっとスキルを積みたいっていうようなものがほとんどになりました。こうやってみるとどれも関連し合ってるし、ある程度自分の中での優先度が見えるので、「教科」っていうほど大きな分類ではないですね。
言語系
- Perl
運用の中で使うちょっとしたスクリプトをもっと早く効率よく書けるようになりたい。
- C言語
オープンソース系の主要なアプリはほとんどCで書かれているので、行き詰まったりしたときにソース読んで解析・修正できるようになりたい。あとカーネルのソース読むのにも必須だし。
- Python
これは個人的に興味があるっていうのと、オブジェクト指向を学ぶにはよいかなと。
サーバ系
- OS(カーネル)
24svr-TechMTG であったように、根拠のない対処療法ではなくて、カーネルに対する理解を深めて、ちゃんと根拠に基づいた対応をできるようになりたい。
- サーバ
これざっくりな感じになっちゃったなw。というのもサーバ運用とかサーバアプリとかサーバ関連のトピックを「いろいろ」勉強する時間にしようと思ったので。まずはちょっと進んでいないCobblerのドキュメント翻訳をまた再開する予定。
- 自宅サーバ・開発
上が勉強・研究的な意味合いなのに対して、こっちは実践的な位置づけ。ひとりWebサービスを開発と、そのサービスを動かす、自宅サーバとはいっても「本番」としての運用をやっていくためのいろいろな時間。
一般
- 絵の勉強
絵画とかっていう意味ではなく、ちょっとしたイラストなんかをかけるように。写真とかに比べるとイラストはやっぱり個性を出せるポイントになると前から思っていて、サイトのデザインとかブログのコンテンツとしてさらっと挿絵とかかけるといいなぁということで。
- 統計学
これはちょっとサーバ運用とも関連するのだけど、ログ解析とかサービス稼働状況の分析とかに、統計学の知識があればもっと便利かなと。
これで一通り「教科」は出そろったのだけど、これらとは別にちょっとした味付けを入れてみました。
- ちゃんと時間を区切って、休憩もきちんと取るのが、本来のやり方みたいなのだけど、業務上、割り込みも多いし、作り込みすぎると達成できないような気もするので、あまり細かくしない方針。
- ビジネスとかLife Hacksとか、一般的な話題は、その時々で興味が出たり、話題の書籍が出たり、みたいなトリガーが多いので、そういうのは、朝・晩の通勤時に読書の時間を設けることで対応。
- ビジネスとかLife Hacksとか、一般的な話題は、その時々で興味が出たり、話題の書籍が出たり、みたいなトリガーが多いので、そういうのは、朝・晩の通勤時に読書の時間を設けることで対応。
- この年になると1回読んだだけとかではなかなか頭に残らないので(笑)ちゃんと脳に定着させるために、ゆっくりと落ち着ける週末に「復習」の時間を用意。
- あと、仕事を円滑にこなすためのHack的な時間は毎日きちんと用意。
ということでできたのがこれ↓。

内容的にはあんまり無理もしてないし、毎日コツコツとこなせていけそうなレベルで落ち着いたので、満足。
あとは、毎日の達成率の記録や、モチベーション維持のための記録手法を考えないと。とりあえず、これでしばらくがんばっていきたいと思います。
Category: Life Hacks, Diary | コメント&トラックバック(0)
[24svr-TechMTG]感想
2008/08/09 00:34 posted by kunkichi
ということで感想。
この本を書いたわけ(ひろせさん@KLab)
・こういう本を待ってました。
・情報発信することで横のつながりができる。やっぱりアウトプット重要。
Linuxカーネルの読み方(naoyaさん@はてな)
・「根拠のない対処療法」ってところにグッときた。
・GNU Global、App::Ack あとで試す。
・『linuxカーネル解析入門』チェックする。
・Linux Kernel Hack Japan ブクマ
・『本を読む本』
・やっぱりC重要。gcc拡張とか遠いけどがんばる。
・CPUというかハードウェアも勉強しないと。
・『64ビットがわかる』『初めて読む〜』
・writing a simple file system ブクマ
・理論的に攻めたい。
DSASのこれから(安井さん@KLab)
・tomcatなのか。
・悔しさオリエンテッド。なんとかしたいというモチベーション重要。
・たくさんの懸念はのためにやるべきことをすこしづつやっていく。
はてなのインフラ、いまむかし(田中さん@はてな)
・やっぱり少しずつ改善・成長が重要。
・MySQLマルチマスタ化は気になる。
・ディスクレス・オンメモリで疎結合。やらなきゃ。
・Hadoopはまだちょっと難しすぎると思ってたけど、確かにログ解析で悩み中。
・capistrano、puppet、seleniumもやりたい!
・PXEとか独自RPMレポジトリならCobbleもいいよ、とか言ってみる
Xenならkoanもあるし。っとドキュメント翻訳がんばらないと。
・「体力勝負」っていう「根性論」はなしとはおもうけど、「気合い」とか「男気」とか
っていうモチベーションとかチームの結束という意味での「根性論」は必要な気がする。
naoyaさんも言っていたけど、先人の苦労や工夫がこういう形で公開されることはほんとうにありがたいことです。いつかそっちの立場になって少しでも貢献できるようになりたい。
ということで、今から読みます。しかし、本を買ってその勉強会でまた買わなきゃいけない本が増えるとは、笑。でも楽しい。
Category: 24svr-TechMTG, Server | コメント&トラックバック(0)
[24svr-TechMTG]まとめ
2008/08/08 23:55 posted by kunkichi
ほぼリアルタイムで追っかけてみる→失敗、orz
この本を書いたわけ(ひろせさん@KLab)
・見逃した。
→ustreamあとで見れるの知りませんでした。
・本を作った訳
※会社返りに買ってきた!今から読む。
・mod_cidr_lookup
Linuxカーネルの読み方(naoyaさん@はてな)
過去の対応
・負荷が高いとき
・apacheアクセス過多
・IO高い
↓
・ググってみる
・変えてみる
→根拠のない対処療法
ソースを読んで根拠に基づいて統計から原因を特定
・『BINARY HACKS』とか『詳解Linuxカーネル』とか
・当初難しいと思っていた→ そうでもないよ
俺流読み方
・ツールで効率よく読む
・gnu global - ソースコードタグシステム
emacsで関数の定義場所と呼び出し場所を行き来できる
・app::ack
perlモジュール、grepよりも検索しやすい、コマンドでできる
・書籍
同じテーマで別の書籍を読む
『linuxカーネル解析入門』
・紙/ペン
コールスタックが深いと迷子になるので処理フローをメモ
・Linux Kernel Hack Japan(サイト)
コツ
・読む対象を絞る
隅々までよまない、テーマを決めて読む
・いきなり読まない
全体把握から。本の目次と同じ。
『本を読む本』
・概観を知った上で読む
本とかで概要をあらかじめ押さえてから読む。
・重要なデータ構造を把握しておく
プロセスとかよく出てくる構造体などのデータ構造は先にざっくり把握
しておくと楽。
・テストプログラムを活用
実際の動きを確認するために。
読んでわかった必要な知識
・C言語。gcc拡張部分とか。
・GNU開発ツール。libcとか。
・CPUの機能(x86)。CPUの細かい機能。01を計算してるだけじゃないよ。
『64ビットがわかる』『初めて読む〜』
・オブジェクト指向、template method とかかんたんなやつ
”writing a simple file system”(サイト)
・手を動かしてみる。カーネルモジュール開発。
まとめ
・読むコツをつかむ
・カーネルソース読むと負荷(分散)に強くなる
・OSの動作原理を知ることができる
その他
・知りたい動機が大切。
・次の興味は?→自然言語処理。
DSASのこれから(安井さん@KLab)
・DSASの紹介
動的にサイトごとのサーバ台数の割当を変更できる
・工夫
- 全サーバの構成は同じ。
- tomcat。
- ファイルの更新は専用ツールで一括転送。rsyncはNW/IO負荷高。
そのうち公開予定。
・ダイナミック→自動的、自立的
自動で故障対応とか増設とかやってくれる→わけない、悔しい。
↓
なんとかしたい!
・自動で追加するには?I
サイトごとのトラフィック推移を記録しないといけない
追加時にtomcat再起動しないといけない
→PVSモジュールを作る
・でもたくさんの懸念
→やるべきことをすこしずつやっていく
→ そのためにカーネル読んだり、モジュール書いてみたり、
・DRBDとの出会い
・インフラ楽しー
はてなのインフラ、いまむかし(田中さん@はてな)
・1000万UU/月、6000万PV/日
サーバ350台、仮想化して500台。14ラック。240Mbps。
・インフラ初期(2001〜2002年)
P3自作PC、apache+PostgreSQL、PerlCGI、オールインワン。
→ CGI重い→mod_perl入れる→mod_perl負荷高い→
→リバースプロキシ入れる→以下、略
こういうのの繰り返し
・インフラ拡大(2002年)
サーバケース自作、レプリケーション、mod_proxyでLB
・はてなダイアリー(2003年)
・東京移転(2004年2月)
mod_proxy_balancer
・サービスラッシュ(2005年)
はてなブックマーク、RSSとかマップとか。問題多し。
- SPOF多数、体力勝負
- 回線飽和
- 電力不足
・インフラ2.0(2006~2007年)
KLabとの出会い、LVSとの出会い
→SPOFの解消
→運用の効率化
・さくらiDCへ(2007年)
回線・電力の問題解決
インフラチーム発足
期間ネットワーク見直し→LVS+keepalived
OS更新、64Bit
・2007年半ば
- LVS三層構造
- 商用サーバ一部利用
- 64ビット→メモリ4GBの壁を突破
- キャッシュ→I/O負荷の低減
- MySQLマルチマスタ化
お互いにslave/slave、active/backup、keepalived
・2008/8現在
- インフラは足腰
- 仮想化(Xen)500台中150台
- 仮想→別ハードに移動可能、xenの移動機能は使わずddで。
- xenディスクレスサーバ、中央ファイルサーバ→オンメモリ上に展開して。
ファイルサーバに依存しない。
- Hadoopで分散ファイルシステム、並列クラスタ→ログ解析
- サーバ管理ツールは独自。他ツールと連携。Nagios、capistrano、IRC
- セットアップの簡略化、PXE、Puppet、独自RPMレポジトリ、Capistrano、
- selenium検討中
・課題
- 微妙に壊れるパターンはやっかい
- 日々のトレードオフを踏まえた上での適切な方策
・より強固なインフラを目指して
- インフラはクリエイティブ!
結論としては「インフラはクリエイティブで楽しい!」だな。
感想は別のエントリで。
Category: 24svr-TechMTG, Server | コメント&トラックバック(0)
[24svr-TechMTG]Ustreamはじまった
2008/08/08 18:59 posted by kunkichi
大阪なのでUstreamで。
くっそ、仕事が遅くなったのでDSASひろせさんのセッション見逃した、、、orz
スケジュールはこんな感じ。
18:30~18:35 オープニング
18:35~18:40 (5分休憩)
18:40~19:00 この本を書いたわけ ……ひろせまさあき(KLab㈱)
19:00~19:05 (5分休憩)
今この辺。
19:05~19:35 Linuxカーネルの読み方 ……伊藤直也(㈱はてな)
19:35~19:40 (5分休憩)
19:40~20:10 DSASのこれから ……安井真伸(KLab㈱)
20:10~20:15 (5分休憩)
20:15~20:45 はてなのインフラ,いまむかし ……田中慎司(㈱はてな)
20:45~20:55 Q&A
20:55~21:00 クロージング
Category: 24svr-TechMTG, Server | コメント&トラックバック(0)
08/09シーズンの海外サッカー放送予定局まとめ
2008/08/04 19:17 posted by kunkichi
さて、8月に入り、そろそろ08/09シーズンの開幕が近づいてきました。
ということで、各国リーグの放送予定局を調べてみた、2008/8/4時点のまとめ。主にCS中心。内容無保証。
プレミアリーグ
昨シーズンに引き続き、J SPORTS。試合はライブ・録画含めて週5試合程度、毎週土曜のプレビュー&毎週月曜のハイライト、そして、西岡さんのE.N.G. と去年とほぼ同じ。
スコットランド・プレミアリーグ
こちらも 昨シーズン同様、J SPORTS。ま、リーグっていうか毎週のセルティック戦のみってところも、昨年と同じ。
リーガエスパニョーラ
昨シーズン同様、WOWOW。WOWOW見れないので詳細不明。バルサに限っては、引き続き J SPORTS でバルサTVあるけど、カップ戦中心だったと。
ブンデスリーガ
あー、J SPORTS でやってた頃が懐かしい、泣。
とりあえず、昨シーズンに引き続き、CSフジで日本人所属チームの毎週1試合とその週のハイライト。CSフジ見れないので詳細不明。
あと、GAORA がバイエルン・ミュンヘンのクラブTV放映権を獲得したようで、バイエルンの試合は全試合(とりあえずリーグ戦のみはそうっぽい)、あと、情報番組として「バイエルン・ミュンヘンTVマガジン」というのがあるっぽい。
リーグ・アン
残念ながらJ SPORTSでの放送は無くなった様子。
その他
J SPORTS の Foot! は8/15からスタート。今年も特集というかロケ中心の様子で、初回は昨シーズンに引き続いて倉敷さん海外ロケでオランダらしい!
そいや、J SPORTS は MLS も多少あったような気がするけど、今年はどうなのかな?
あと、南米系はリーグ戦は相変わらず放送なしっぽい。唯一、昨シーズンはG+でコパ・リベルタドーレスあったけど、今年はどうなのかなぁ、とりあえず8月中は昨シーズンの再放送あるみたいだけど。
その他のリーグについては元々放送ないし、あと CL とかは省略。
しかし一時期に比べると寂しいラインナップだなぁ。セリエAないし。
とりあえず、直前のどんでん返しとか今年はなさそうな感じ。
Category: Soccer | コメント&トラックバック(0)
Page 6 of 26« First...«45678»...Last »
2008/11/06/ 07:02
2008/10/09/ 07:30
2008/09/16/ 12:08
2008/08/31/ 12:22
2008/08/25/ 21:10