![http://atnd.org/events/447](https://cdn-ak-scissors.b.st-hatena.com/image/square/4fc46a07cee3ced2f3e340a559aad417e3296d46/height=288;version=1;width=512/https%3A%2F%2Fatnd.org%2Fevent_images%2F0000%2F0730%2F20061129194083_original.jpg)
2009年1月、Cyan設計者 林拓人氏とLispの伝道師 竹内郁雄氏との対談「Cyanを設計した高校生、5カ月で5つの言語を習得」が大きな反響を呼んだ。その原因の1つは、竹内氏が発したひと言「わたしの持論ですが、国語ができる(=日本語できちんとした文章が書ける)人じゃないとプログラムは書けない」だ。これについてネットでは同意する意見が多かったものの、記事中で根拠が明らかにされていなかったため議論が紛糾した。そこで編集部は竹内氏に詰め寄り、「わたしの持論」について詳しく説明してもらうべく寄稿をお願いした。国語力とプログラミング力には本当に相関関係があるのだろうか。 事のいきさつ~Cyan設計者 林くんとの対談で発してしまったひと言が思わぬ反響を呼ぶ Cyan言語で経済産業大臣賞を受けた開成高校の林拓人くんと対談(「Cyanを設計した高校生、5カ月で5つの言語を習得」)しているうちに、つい調
村上春樹さんの「正論原理主義」 村上春樹さんのインタビューが、文藝春秋四月号に掲載された。そのインタビューの中で語られている「正論原理主義』という言葉が、インターネットのあちこちで波紋を呼んでいるようだ。 引用しておくと、正論原理主義という言葉は以下のような文脈で使われている。 ネット上では、僕が英語で行ったスピーチを、いろんな人が自分なりの日本語に訳してくれたようです。翻訳という作業を通じて、みんな僕の伝えたかったことを引き取って考えてくれたのは、嬉しいことでした。 一方で、ネット空間にはびこる正論原理主義を怖いと思うのは、ひとつには僕が1960年代の学生運動を知っているからです。おおまかに言えば、純粋な理屈を強い言葉で言い立て、大上段に論理を振りかざす人間が技術的に勝ち残り、自分の言葉で誠実に語ろうとする人々が、日和見主義と糾弾されて排除されていった。その結果学生運動はどんどん痩せ細っ
こないだのシンポジウム論文集(*1)を読んでて気がついた。清水順一郎という元JAXA筑波センター長(ようするに,ISSミッションの親玉)の論文なんだけど,月と地球の間に宇宙ステーションを作るならL1点がイイ。という話。L1ってのはいわゆるラグランジュ点の月と地球の中間(重力ポテンシャル的)にあるやつ。 これがアポロミッションだと,8の字軌道の交差するあたりにあるのがL1点。そんな月往還ロケットがビュンビュン飛び交ってそうな場所のどこがいいのか・・・ と思ったんだけども,丸2日ほど経ってから気がついた。よく考えてみると,月や地球の周回軌道(LLO,LEO)から,L1点目指して飛ぶと,ちょうどL1点に着いたところで静止する。そういう飛行ルートが設定可能なのね。どちらからでも。 で,L1点のメリットは,というと,そこから月に向かうにしても地球に向かうにしても増速量としてみてペナルティが無いこと。
なんかロードしたクラスが古いっぽい。 > あれれー。あったはずのメソッドがないよー? 的な問題であったり、ロード済みのJarをリストアップしてハッキングは地獄だぜフゥーハハーだったりしたい時に何気に便利でなにげにどこにも書かれてなかったりするJarファイルの探し方。 ロードしたのはClassLoaderなんだからClassLoaderに聞けばいいんじゃね? ということでさらりとClassLoader先生に聞いてみる。 // こいつがJarを探す元になるクラス Hoge hoge = new Hoge(); ClassLoader classLoader = hoge.getClass().getClassLoader(); URL classURL = classLoader.getResource(hoge.getName()); このURLが > jar:file:/opt/hoge/
実装方法をすぐ忘れるので、メモ書き。 Map<String, String> m = new HashMap<String, String>(); m.put("aaa", "bbb"); m.put("aaa1", "bbb"); m.put("aaa2", "bbb"); m.put("aaa3", "bbb"); for (Iterator<String> i = m.keySet().iterator(); i.hasNext();) { if (i.next().endsWith("2")) { i.remove(); } } System.out.println(m); こういうショボイコードを見ると本当に泣ける。 ダメダメな例 Map<String, String> m = new HashMap<String, String>(); m.put("aaa", "bbb");
ひがさんだけにメールするのもなんなのでこっちに。 シリアライズ可能にするには、Serializableをimplするのが手っ取り早いです。 オブジェクトをシリアライズして、デシリアライズすると、 クラスローダーが違ってもClassCastExceptionが発生しません。 (簡単に言うとファイルに保存してるのと一緒) なので、S2やS3は、ObjectOutputStream、ObjectInputStreamを使ってシリアライズ・デシリアライズしてます。 S2だと、この辺に失敗すると、元のクラスローダーでロードされたオブジェクトをそのまま返すので、ClassCastExceptionになります。 S3は最新だと例外投げるようになってます。 だけど、シリアライズ、デシリアライズの間で、クラス構造が変わると、デシリアライズできません。(例外になる) privateフィールドが増えただけでです
Java言語仕様はまとまってなくて情報が点在している気がする。 ということでメモ。 トップレベル型宣言 クラス型の宣言は書いたとおり 列挙型の宣言は書いたとおり ただし、クラス本体を有さない列挙定数が一つも存在しない場合、暗黙にfinal 明記するとエラー (abstractかどうかは仕様に明記されていない) インターフェース型、注釈型の宣言は暗黙にabstract わざわざ書いてもよいが推奨されない クラス型、列挙型宣言中に出現する型宣言 列挙定数は暗黙にpublic, static, final 明記するとエラー メンバとしてのクラス型の宣言はトップレベル型宣言のルールと同等 クラス型以外のメンバ型宣言は、トップレベルの列挙型宣言のルール+暗黙にstatic わざわざ書いてもよい staticでないメンバクラス型中に、staticであるメンバ型を宣言できない*1 他は書いたとおり 下記
患者の胸に着ける心電図の携帯型発信器。異常があるとナースステーションにあるモニター(奥)が情報を受け取り、警告音を出す(横浜市立脳血管医療センターで)=林陽一撮影 入院患者の容体急変を知らせる医療アラームを病院側が聞き逃し、その後に患者が死亡したケースが2000年以降、少なくとも30件に上ることが、日本看護協会(久常節子会長)の調査でわかった。 警告が出る設定などに問題があり、異常がないのに鳴る「無駄鳴り」が頻繁に起き、警告の聞き逃しにつながっているとして、協会は月内にも対策をまとめ、国に提言する。 調査は、アラーム聞き逃しが医療事故や訴訟などとなった病院から聞き取りしたり、報告書を入手するなどして行った。患者死亡の30件は、急変を見逃して救命が遅れたといずれも病院が認めているものだが、死亡との因果関係は判断していない。 横浜市立脳血管医療センターでは07年7月、50歳代の男性患者の不整脈
ひとことどころか、バグ管理について367ページにわたって書いてしまいました。「実践バグ管理」です。なでしこなどで有名なid:kujirahandさん(クジラ飛行机さんのブログ)との共著です。 実践バグ管理―プロジェクトを成功に導くための 作者: クジラ飛行机,あかさた出版社/メーカー: ソシム発売日: 2009/03メディア: 単行本購入: 6人 クリック: 148回この商品を含むブログ (21件) を見る 本書の特徴 本書の特徴を伝えることには非常に苦労しています。「バグ管理なんて何について書くの?」とかよく言われるわけです。バグ管理のやり方なんてあたりまえ・・・なのかもしれませんが、大抵のプロジェクトに参加すると以下のような現象に遭遇するものです。 Tracなどの運用を始めると、「バグレポートに何を書けばいいのか?」と質問される バグレポートに書かれている内容が意味不明 とある案件では
Multiple Boundsを日本語にするとなんだろう?多重境界? Java Generics and Collections: Speed Up the Java Development Processの「3.6 Multiple Bounds」の章に次のコードがあります。 public static <S extends Readable & Closeable, T extends Appendable & Closeable> void copy( S src, T trg, int size) throws IOException { CharBuffer buf = CharBuffer.allocate(size); int i = src.read(buf); while (i >= 0) { buf.flip(); trg.append(buf); buf.clear(
下のエントリにつづいてもう1つジェネリクスねた。 上限境界と下限境界を持つワイルドカードはおもしろいなぁと思いました。 ? super を使ってパラメータ化された型はObjectしか返せないと思っていたのですが、その型の上限があらかじめ決まっているならその型で戻せるんですね(下のサンプルコードで言えばBクラスとして戻せるということ)。 public class BoundsTest { @Test public void testBounded() throws Exception { BoundedHolder<? super C> holder = new BoundedHolder<C>(); holder.value = new D(); B b = holder.value; // OK これがおもしろい } @Test public void testNotBounded()
Slim3では、ルートパッケージ直下がagileパッケージとfirmパッケージに分かれます。agileパッケージには、agileに開発する必要のある機能要件に応じたクラスが入ります。firmパッケージには、ユーザの要件には直接関係しない非機能要件に応じたクラス(一般的にはインフラストラクチャ層のクラス)が入ります。 例えば、ルートパッケージがtutorialの場合、次のようになります。agileとかfirmの名前はもちろん自由に選べます。 tutorial root package tutorial.agile agile package tutorial.agile.action agile package for action tutorial.agile.xxx agile package for xxx tutorial.firm firm package tutorial.fir
じぶんめも。 列挙型のコンストラクタ privateのみ 明示的親コンストラクタ起動(super();)を書けない チェック例外をスローできない*1 throws RuntimeException と書く分にはOKなので、構文自体はクラスのコンストラクタと同様 デフォルトコンストラクタ クラス(列挙型でない)がコンストラクタ宣言を保持していない場合、デフォルトコンストラクタが自動的に提供される パラメータを受け取らない チェック例外をスローできない 親クラスの引数をとらないコンストラクタを起動するだけ デフォルトコンストラクタの可視性(public, protected, ...)はクラスの可視性と一致する 列挙型がコンストラクタ宣言を保持していない場合、デフォルトコンストラクタが自動的に提供される パラメータを受け取らない java.lang.Enumの引数をとらないコンストラクタを起動
3月18日、米IBMがサン・マイクロシステムズの買収に向け交渉中とWSJ紙が報じた。写真はコロラド州のサン・マイクロシステムズ。2006年6月撮影(2009年 ロイター/Rick Wilking) [18日 ロイター] 18日付の米ウォールストリート・ジャーナル(WSJ)紙は、関係筋の話として、IBMIBM.Nがサン・マイクロシステムズJAVA.O買収について交渉していると伝えた。 買収価格は少なくとも65億ドルになる見込みとしている。これは、サン・マイクロ株の17日終値に約100%のプレミアムを上乗せした水準。 WSJによると、サン・マイクロはここ数カ月、複数の大手ハイテク企業に身売りを打診。ヒューレット・パッカード(HP)HPQ.Nは断ったという。 WSJは、IBMがサン・マイクロとの協議に関しコメントを拒否したとしている。 現在のところ、IBM、サン・マイクロのコメントは得られていな
Seasarカンファレンスで「プログラムが組めるようになるためには何を教えればいいですか?」と聞かれて、「創るJava」も絶版だし、どうしようかと思いつつ、「教える」というときに考えないといけないことが書いてある本を紹介しますね、と言ったので、その本の紹介。 あと、そのときに言ったこと。 教育するときに大切なことは、「情報を与える」という観点でカリキュラムを構築してはダメで、「脳みそを構築する」という観点でカリキュラムを作らないといけない、というようなことをまずは伝えた。 つまり、たとえばJavaでWebアプリを作れるようにするというときに、必要な情報を分解してHTMLとデータベースとサーブレットとJavaの文法が必要だとなって、その情報の依存関係を洗い出して、最初にJavaの文法をからとか順番を決めて、依存部分の少ないものから提示していくという、そういう単なる情報の提示だけでは教育にはな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く