サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 17
d.hatena.ne.jp/rintaromasuda
Java MemoPythonのPickleモジュールについて学んだので、ついでにJavaの場合を調べてみた。JavaではSerializableインターフェースというのを継承したクラスであれば、そのインスタンスをバイトストリーム化し、ソケットなどにも書き込めるようだ。簡単な通信テストのため、SerializeServer、SerializeClient、送受信するTransDataクラスを作成した。TranData.java import java.io.*; public class TransData implements Serializable { private int num1; private int num2; private String str1; private String str2; TransData (int num1, int num2, String s
Python Memo今回からはXSLT(Extensible Stylesheet Language Transformations)を使ってみることにする。まずいつもどおりWikipediaから(日本語版は情報少ないんで、英語版をリンクします)。Wikipedia : XSL TransformationsExtensible Stylesheet Language Transformations (XSLT) is a Turing complete XML-based language used for the transformation of XML documents.XSLTとは読んで字の如しなのだが、あるXMLファイルをHTMLやXHTMLや別の形式のXMLに変換する場合に利用する技術。その変換の方法をスタイルシートと呼ばれるXSLファイルに記述する(ちょっとややこしいが
Python Memo前回はDOMを使ってXMLのツリー構造をただ見ただけだったが、今回は実際にタグの名称などを指定して、XMLから簡単な文章を作ってみる。sample.xml Japan Tokyo Korea Seoul United States Washington D.C タグにid="1"のような記述があるが、これを属性(Attribute)という。これもタグと一緒で任意の名称で任意の個数、つまり自由に設定できる。このXMLファイルを以下のプログラムで読み込む。 from xml.dom import minidom, Node def scanCountry(node): print "CountryID%s" % (node.getAttribute("id")), for child in node.childNodes: if child.nodeType == Nod
Java Memo簡単なファイル転送プログラムを作ってみた。サーバ側のソースは以下。ソケットから受けとったバイト配列を、引数で指定したファイルのストリームに書き込んでいるだけ。特に理由はないが、32バイトずつその作業を行っている。 import java.net.*; import java.io.*; public class FileTranServer { public static void main(String[] args) throws IOException{ if (args.length != 2) throw new IllegalArgumentException("An argument should be port and filename"); int servPort = Integer.parseInt(args[0]); String filenam
Lifeこのブログのタイトルをどのように決めたのかはもう思い出せないが、「二十代は〜」と冠したからには三十歳になったときにはどうにかしないといけないだろうと漠然と考えていた。この二ヶ月ほどまったくエントリを書いていなかったのにはいくつか理由があったのだが、二十代の終わりが近づいているなか、三十歳になってからこのブログをどうするか、さらに言えばインターネットをどのように自分の生活に組み込んでいくべきかを色々考えていた、というのがひとつの理由だ。まあ正直に言うとiPhoneでWEBを視るようになったので、ブログに書き込むのが億劫になっていたという理由もある。で、本日三十歳になった。出した結論は「やっぱり僕はグローバルに生きたい」というものだ。だから基本的には日本で、もとい「日本語で」ブログ活動をするのは今後止めにしたいと思う。インターネットには国境はなく、いますぐにでもグローバルな活動を始めた
MaciPhoneは確かにフロントエンドもかなり革新的ではある。美しくてかつ使い易いあのUIは今やAppleのお家芸として世界が認めるところだろう。ただiPhoneが今までの携帯電話と比べて何がそんなに違うのか、何が革新的なのか、このデバイスの本質は一体何処にあるのだろうかと問えば、答えはフロントエンドにはない。バックエンドにある。携帯電話のバックエンドが携帯電話用の公式サイトや勝手サイトであるのに対し、iPhoneのバックエンドはインターネットだ。ここが最大かつ本質的な違いだと思っている。「あちら側」と「こちら側」に分けて考えなければならない。こちら側に着目したiPhoneの肯定意見も批判意見も多く目にするけれど、注目すべきは「あちら側」と「iPhoneというデバイスが如何にあちら側にアクセスしやすいのか」だ。僕はむやみに人にiPhoneを見せてはいるけれど、むやみに勧めたりはしない。僕
なんでもテレビ番組などでしばしば「科学ってこんなに面白いんだよ」的な実験を子供に見せ、楽しんでいる子供達を映しては「ほら、こうすれば子供達は興味を持ってくれるんですよ」というような結論にもっていく様を見る事がある。乱立するお笑い番組やクイズ番組などに比べれば質の良い番組だと思っているし、そういった番組を楽しく見ることもある。しかしながら、あのように教育をある意味エンターテイメント化することで、子供達はその学問に本当に興味を持ってくれるのかと考えるとかなり疑問がある。少なくとも恒常的な興味を持ってくれるだろうかと問えば、かなり疑問である。一時的な意味で、という事であれば、間違いなく興味を抱かせることには成功していると言えるだろう。しかしその一時的な興味で終わってしまっているのではないか、「楽しかった」「面白かった」までにしか到達できていないのではないか、従来の非エンターテイメントな授業と比べ
お仕事もしも絶対権力者である王が類い稀なる人格、能力、知見、その他の持ち主であれば、民主主義国家よりも王制国家の方が非常に効率的に物事が進むはずだから、素晴らしい国家が出来上がるのではないかと妄想したことが何度かある。その国では法案が無意味に行ったり来たりするこもなく、中途半端な折衷案も生まれない。時代遅れな法律を破棄する為に何年もかかることもないし、時代に即した取り組みを始めたと思ったら、もうその時代は終わっていたなんてこともない。ある人物や組織の面子を保つが為に不必要な予算が振り分けられる事もない。前述したように絶対権力者の能力が高いことが前提だけど、素晴らしい国家になるんじゃなかろうか。正直に言ってあまり政治にも行政にも強い興味はないし、上記のような妄想をいつもしている危険人物でもないのだけれど、Appleにおいて如何にジョブズの変質的とも言える拘りが実際の製品に反映されているか、と
Tech僕はプログラミング言語論争に首を突っ込む気は一切ない。好きな言語も嫌いな言語もあるし、各言語の長所や短所もある程度分かっているつもりであるが、結局どの言語を使うかなんていうのは、自分が勤めている企業や、自分の回りのエンジニアや、マーケットの状況によって決定されてしまう事がほとんどなので、決定されたものに自分をチューニングしていくしかないであろうと思っている。ただし「どの言語を使おう」とか「どの言語を学ぼう」といった視点ではなく「どの言語から何を学べるであろうか」という視点から考えると、プログラマの成長にとってプログラミング言語の選択というのは非常に大切であろうと思っている。以前勤めていた企業では、製品の多くの部分がCOBOLにて実装されていたので、相当量のCOBOLの実装やデバッグを僕も行っていた。COBOLと聞くと「COBOLプログラマなんて駄目だよ」とか「時代遅れだよ」というよ
模索上達について考えるとき、いつもこの「なんで自分の名前が上手に書けないのか?」について考えるようにしている。同姓同名の人は何人かいるだろうけれど、その人達を除けば僕ほど僕の名前を書いた事がある人はいない。なのに僕が書く僕の名前の字は、お世辞にも上手いとは言えない。これはどうしてなのだろうか。簡単に言えば、答えは「何も考えないで、ただ書いているから」である。今まで人生で何千回と自分の名前を書いてきていたが、その機会の一回ごとに「どう書けば、僕の名前はもっと美しく見えるだろう」というような事を意識して書いていたとすれば、今頃世界一の書き手になっていただろうと思う。これとまったく同じ事は世の中のほとんどの事に対して言える。スポーツの反復練習なんてのは(野球の素振りとか)まさにこの典型的な例である。でもプログラミングだって、接客だって、力仕事だって、何も考えずにただ「こなす」ことだけを考えていれ
英語ちょくちょくiTunes StoreでiTunes Uのコンテンツをダウンロードしては通勤時間に聴いている。一昔前を考えれば、米国の大学の講義や講演を手軽に、早く、そして無料で手に入れられるなんて事は奇跡に近い。特に米国の大学や大学院に留学することがひとつの夢だったりする僕にとってはこれはかなり嬉しいことでもある(ちなみにこの夢はまだ全然あきらめていない)。今所有しているiPodがMovieに対応していないので音声のみのものを聴いているが、iPodを買い替えた暁には映像付きの作品も積極的にダウンロードする予定。リンクが貼れないので紹介しづらいけれど、以下がお勧めのもの。どちらもタイトルをStoreで検索すれば見つかると思います。John L. Hennessy - Why Computer Science MattersStanford Universityの学長でもあり、パタヘネ本(
英語敢えてノンジャンルで、過去に読んだ洋書をいくつか推薦してみる。「英語で本を読んでみたい」と思う方は結構いると思うが、中々踏み出せないというのがありがちなパターンだと思う。そんな方の背中を一押し出来ればと思います。おそらくどの本も和訳が販売されているのではないかと思うので、分からない部分があったり、飛ばしてしまった部分があったりすれば、和訳版で補完するという手もある。お金は二倍かかってしまうが。The Google StoryThe Google Story作者: David A. Vise, Mark Malseed出版社/メーカー: Delta発売日: 2006/08/29メディア: ペーパーバックGoogleの誕生から成功までを描いた本。IT系の人であれば、知っている話が多いのではないかと思うので読み易いと思う。既に知っている話を英語で読む、というのは以外といい勉強になると個人的に
模索突然の話になるが、この2月末で現在勤めているソフトウェアベンチャー企業を退職し、来月から新たな場所で再びソフトウェアの開発に関わる事となった。いわゆる転職である。現在勤めている企業では開発技術や開発プロセスといった直接的なこと以外にも、多くの人がひとつのソフトウェアを開発することの難しさであるとか、新人をどのように育てていくべきなのかという貴重な考察や、どういったエンジニアがどういう仕事に向いているとか向いていないとか、ソフトウェアの開発にはどのような組織で挑めばいいのか等、とにかく様々な事を学んだように思う。非常に実りのある5年間であったと思うし、そのような5年間を僕に与えてくれた関係者にはこの場を借りて感謝の意を表したい。ドメスティックに事業を進めている現在の企業での職とは違い、次の職では海外のエンジニアと協力して開発を進める必要があり、かつ企業自体もグローバルに事業展開している為
TechこちらでGoogle Chinaの社長であるKai-Fu Leeが彼の母校であるカーネギーメロン大学で先日行った講演が紹介されていた。かなり興味深い内容であったので、こちらでも紹介したい。紹介して下さったshimaさんは実際にカーネギーメロン大学に留学中のようであるが、日本にいる私たちでも同じ講演を簡単に観る事が出来るなんて本当にいい時代なんだろうな、と思う。講演は一時間に及ぶものですが、普段あまり考えることのなかったことを色々と気づかせてくれる内容でした。特にアメリカ人と中国人ではインターネットに対する姿勢がまったく違うという内容は興味深い。姿勢が違えば市場も違う訳で、長期的な視点で中国については考えたいとEric Schmidtも言っていたようだが、中国市場である程度のプレゼンスを得る為にはまだまだ時間がかかりそうである。関連リンク中国の若者とGoogleとKai-Fu Lee
Python Memo実は恥ずかしながらクロージャというものがイマイチ何だか分からないというか、何の為に使うのか、何で便利なのかとかまったくもって分からなかったのだが、先日ハッカーと画家 コンピュータ時代の創造者たちの第13章「オタク野郎の復讐」のプログラム比較例を見ていたら突然理解が進んだ。以下はPythonの例として載っていたもの。 def foo(n): s = [n] def bar(i): s[0] += i return s[0] return bar これを実行すると以下のようになる。 >>> f1 = foo(5) >>> f2 = foo(7) >>> f1(6) 11 >>> f1(10) 21 >>> f1(25) 46 >>> f2(8) 15 >>> f2(40) 55 >>> f2(-4) 51 >>> この結果は僕にとって衝撃的だった。いや、結果が衝撃的なの
Python Memoでは前回書いた通りPythonでDOMを使い、ツリー上のデータ構造でXMLファイルの内容をメモリ上に読みこんでみる。今回読み込んでみるのは以下のXMLファイル。sample.xml Japan 120,000,000 Tokyo 12,645,525 Shinjuku で囲まれた部分はプロローグと呼ばれるらしく、このXMLに関する色々な情報を記述する欄らしいが、詳しくはまだ分からない。ここではXMLのバージョンと文字エンコードの指定をしている。二行目はコメント欄*1。ではこのXMLを、以下のプログラムを使って読みこんでみる。 from xml.dom import minidom, Node def scanNode(node, level = 0): msg = node.__class__.__name__ if node.nodeType == Node.ELE
お仕事基本的に商用言語って地頭が普通なら数ヶ月で覚えられるように出来ていて、逆にそうじゃなきゃ商売にならない。バッドノウハウを極めるには何年もかかるが、それこそ数年で廃れる技巧だし、会社に入って人柱として埋められてから積み上げれば済むことだ。大事なことはデータ構造とかアルゴリズムで、あとは社会に出てからの飲み込みを早めるに、オブジェクト指向っぽいCライクな言語*2をひとつぐらい覚えておけば良い。あとは大学なんだから、できるだけ世間で役に立たない才能の無駄遣い的な最先端技術に触れて、素晴らしい技術が流行るとは限らないことを思い知り、批判的な視座を持ちつつ頭を柔らかくしておいてくれることの方が重要だ。大学で身につけるべきは技能より教養だろ - 雑種路線でいこう今だから共感出来る文章だけれども、学生の頃というかちょっと前の僕でも共感が難しかったのではないかと思われる文章。この文面は主に大学批判だ
英語「英語喋れる?」とか「英語が喋りたい」とか「現代人は英語くらい話せないと不味いですよ」とかそういう話をよく耳にする。特に四月には英語の勉強をしだす人がどっと増えるし、五月は海外旅行のシーズンなので、こういった話を聞く機会も増えてくる。しかしあまり「英語読める?」とか「英語が書けるようになりたい」とか「現代人は英語くらい読めないとね」という話は耳にしない。何故なのか。理由を考えてみると、どうも以下の二点ではないかと思われる。「英語は読む・書くより話す・聞くほうが大事である」とみんな漠然と信じている 「学校で文法ばっかり勉強してきたので、読む・書くは既にそこそこ出来ている」と考えている1. について、個人的には英会話学校のマーケティング戦略が大成功した結果だと思っている。これ程社会に自社に有利な意識を根付かせた例を僕は他に知らず、「洗脳」と呼んでも過言ではないくらいに上手くいったのではない
Python Memo以前に作った簡単なソケット通信を改造して、サーバー側の処理をスレッドに処理させることにする。こうすることで、複数のクライアントからの要求を同時に受け付けることができる。simpleserver.pyを改造したthreadserver.pyを作成する。clientは引き続きsimpleclient.pyを作成する。simpleserver.pyの実行結果を見ると、途中から新たなクライアントが接続してきているのが分かる。各スレッドは、クライアントから空白文字列を受信すると廃棄されるようにする。threadserver.py import socket, threading, time host = '' port = 15000 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socke
Python Memoタイトル通りだけど、ほんとに単純なソケット通信をやってみる。本当は通信をする際には例外処理や終端文字指定、スレッド処理などたくさんやらなければならないことがあるのだが、それは少しずつ実装することにして、まず基本からやろう。今回はサーバ側とクライアント側を想定して二つのプログラムを作った。同じPC内でポート番号15000を使って通信をする。クライアント側はタイプされた文字列を次々にサーバ側に送り、サーバ側は受け取った文字列を表示するだけである。その内容は以下のようにしてみた。simpleserver.py import socket host = '' port = 15000 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.setsockopt(socket.SOL_SOCKET, socket.SO_R
Mac突然だが、MacBookを購入した。まだStoreで注文したばかりで届いていないのだが、商品到着後の準備として、インストールすべきアプリケーションの情報をまとめたいと思う。MacはOS8時代にはユーザーだったのだが、訳あってしばらくWindowsユーザとなっていた。OS8からいきなりLeopardなのでほぼ新人も同様だと思うが、それでもMacを使うということに関してはある種の懐かしさを覚える。今から楽しみだ。インストールするソフト一覧ウノウラボ Unoh Labs: Web系エンジニアの目から見たMac OS Xマックを買ってきたらインストールするソフト(マック入門のすすめ):江島健太郎 / Kenn’s Clairvoyance - CNET Japanno title新しいMacに、インストール必須の便利アプリ7つ:Goodpic Mac を(買ったら|インストールしたら)最初に
お仕事僕は「コミュニケーション能力が売りです」とか「エンジニアにもコミュニケーション能力が求められる時代」とかそういう意見があまり好きではない。勿論最低限のラインというものは存在するだろうし、第人数の聴衆を相手に自分の意図を明確に伝えれられるとか、相手がどんな人間であっても取り入ることが出来るだとか、そういう人より優れた能力を持っている人間もいるだろうと思う。でも1エンジニアとしては、世間一般でコミュニケーション能力なんて呼ばれて評価されるような人間の行動なんてのは以下の様などうでもいいことだろうと斜めに構えてしまう。例えばある事象Aが起きて、それを部長に伝えなければならないとする。社員Aの伝え方。社員A「部長、事象Aが起きました。詳細はメールで。」部長 「あぁ」社員Bの伝え方。社員B「部長、最近ゴルフの方はどうですか?」部長 「あぁ、あまり調子出なくてな」社員B「最近お忙しそうですものね
WEB2.0ネットイナゴについて何か書こうと思っていたら、各所で盛り上がりを見せているようで完全に出遅れてしまった。まあ別に他人より先に書いたからといってどうということはないのだけれども。一方、はてなブックマークでの厳しい一言で人が傷ついたりしているのを見かけます。誰かがちょっと間違ったということを指摘するのに、バカとかアホとか、そんなことを書く必要は本当にあるんだろうか、自分の思う正しい回答を丁寧に示すだけでよいのではないか、と思います。 はてなブックマークのコミュニティについて - naoyaのはてなダイアリーこういう「誰かが傷ついた」的なミクロな話に向かうのは意外だったというか、ちょっと方向性が違うのではないかと思う。結局のところWebが皆にとってどの様な場所になるべきなのか、どの様な場所になると嬉しいのか、というマクロな話が今問題になっているんだと認識している。その意味では池田信夫
英語何か自慢するようであれなのだが、僕は今まで英語系のテストで以下の様な成績をとってきた。多分大半の人からすれば十分な点数なのではないかと思う(ちなみに大半では無い人とは、英語を自分の一番の武器としてやっていこうとしているような人)。テスト点数満点受験時期受験回数TOEIC9409902002年2回。1回目は810。TOEFL(PBT)6206672002年4回。530→550→580→620。TOEFL(CBT)2533002002年1回。ただしPBT3回を受けた後。IELTS(General)7.592007年2回。1回目は2004年で6点。おそらく何らかの目的で上記のテストを受けている方はたくさんいると思うが、その様な方々と勉強方法のシェアが出来ればと思い、このエントリを書くことにした。「この勉強方法を実践しただけで点数が○○点上がる!」といった怪しげなものではなく、「結局当たり前の
模索追記。あと、なぜそう誤読するのかなと不思議に思うけど、「何でも褒めろ」なんて言ってないよ。いいなぁと思ったら(つまり心の中で褒めているときは)、以心伝心とか思って胸のうちに置いておかず、カジュアルにそれを言葉にしたらどうかと言ったのです。それだけで全体の雰囲気がずいぶん変わるでしょと。僕だって、褒めたいところがぜんぜんないのに褒める、なんてこと絶対にしないよ。 嵐のような反応を読んで - My Life Between Silicon Valley and Japan以前のエントリ自然言語、いと難し - 二十代は模索のときブログで言いたかったことなのだが、1対1で話すにしろ、ブログのエントリにしろ、新聞や雑誌の記事にしろ、公演でのスピーチにしろ、人に自分の考えを理解してもらうには、どんなに厳密に言葉を選んでも、どんなに明快なロジックでも、どんなに素晴らしい声だったとしても、一回や二回で
抽象的な問題にばかり口を出すのは危険信号 お仕事 日々起きる問題にも色々な抽象度のものがある。例えば「現在トップページからのリンクが平均2秒掛かっているが、これを0.5秒以下に抑えたい」という問題ならば非常に具体的であるし、「最近、社内の雰囲気が悪い」とか「今年の新人はやる気がイマイチ」という問題であれば非常に抽象的である。どちらのタイプの問題も問題であることには変わりないし、どちらのタイプの問題が重要とかそういう議論をする気はないのだが、もし自分が後者の「抽象的な問題」にばかり口を出すようになっていたら危険信号だと思った方がいい。 大抵抽象的な問題というのはどんな人間でも意見を述べることが可能である。どんな人間でも可能というのは、知識も経験も頭の良さも無くてもという意味である。例えば例示した「今年の新人のやる気がイマイチ」という問題であれば、何かしらの意見を誰でも述べることが出来るだろう
そういえばチャットはどこに行ってしまったんだろう なんでも CNET Japan Blog - 江島健太郎 : グーグルが無敵ではないことはエンジニアだけが知っている チャットはただのチャットだとみんなが思っているけれど、ぼくはチャットが検索と同じぐらいウェブのコア・ライフスタイルのひとつになるということを本気で信じている。 これ読んで、僕がインターネットを始めた時代の最大の疑問を思い出した。 僕はもともとパソコン通信にどっぷり使っていた人間で、NIFTY SERVEにもう夜な夜なのめり込んでいた。当時ダービースタリオンの大ファンだった僕は、その辺のゲーム雑誌よりも遥かに高いレベルで物事が進んでいるNIFTY SERVEに最新の情報を掲示板などに求めていたんだけれど、最終的に居つくようになったのは、いくつかの常連達と繰り広げる「チャット」の世界だった。ここでのチャットは本当に面白かった。最
アメリカ国歌斉唱集 なんでも シリコンバレーからの手紙 : グーグルとテレビ局の権利交渉の本質 「私がいままでに聞いたアメリカ国歌の中で、スティーブン・タイラーが球場で歌った国歌がいちばん素晴らしかったのよ」 YouTubeで見てみたら、ホントすげぇ。この人が歌うと国歌でもロックになっちゃうんだもんな。こういう人間をロックンローラーって言うんだろう、きっと。 ついでだったんで、他の歌手による国歌斉唱も探してみた。 Steven Tayler Destiny's Child Beyonce Aaliyah Billy Joel Jessica Simpson Carrie Underwood Stevie Wonder Marvin Gaye Christina Aguilera Mariah Carey Faith Hill Whitney Houston 小柳ゆき Bruce Sprin
Python MemoSAXにてXMLの階層構造を扱う際、あるタグの内部に入ったことをフラグにて判断する方法があると思う。例えば以下のようにフラグを用いることで、hogeタグの内部に入ったのか入っていないのかを判断できる。 class SimpleHandler(ContentHandler): def __init__(self): self.inHoge = False def startElement(self, name, attrs): if.name == "hoge": self.inHoge = True def endElement(self, name): if.name == "hoge": self.inHoge = False ただこれ、もうちょっとスマートに出来ないものかと、ContentHandlerを動的に変更することができないかどうか試してみた。それが出来
次のページ
このページを最初にブックマークしてみませんか?
『二十代は模索のときブログ』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く