タグ

ブックマーク / nishiohirokazu.hatenadiary.org (30)

  • 「キャリア戦略論 - 人・生き方・働き方の多様性」講義資料を公開しました - 西尾泰和のはてなダイアリー

    10月19日に灘校土曜講義にて、キャリア戦略に関して多様性にフォーカスして1時間半の講義をしました。講義資料を一部公開します。 参加者のみなさんがアンケートに書いてくれた感想は、全部目を通しました。一点、僕がうまく伝えられてなかったらしきところがあるのでここで補足します。 「マジック・ザ・ギャザリング」と「プログラミング」のどちらがよいか 「マジック・ザ・ギャザリングに時間をさくよりプログラミングを学ぶべきという趣旨か?」という質問がありました。いいえ、違います。 中学高校時代の時間を投資する対象として「マジック・ザ・ギャザリング」(MtG)が「プログラミング」よりも劣ると主張したようなとらえられ方をしてしまったようですが、そう主張したいわけではありません。僕がプログラミングに時間を投資したのは「将来役に立つ」とおもったからではなく、単にそれが楽しかったからです。MtG投資している人も、

    「キャリア戦略論 - 人・生き方・働き方の多様性」講義資料を公開しました - 西尾泰和のはてなダイアリー
    gologo13
    gologo13 2017/02/11
    知識への投資が最も効果が高い
  • Scalaのtraitはmixinか? - 西尾泰和のはてなダイアリー

    Rubyのmixin(モジュール)、Squeakのtrait、Scalaのtraitそれぞれについて: Q1: メソッドの実装を持てる? はい、はい、はい Javaのクラスは「はい」、インターフェイスは「いいえ」、C++Pythonのクラスは「はい」 Q2: クラスがそれを複数個継承できる? はい、はい、はい Javaのクラスは「いいえ」、インターフェイスは「はい」、C++Pythonのクラスは「はい」 Q3: インスタンスを作れる? いいえ、はい、いいえ C++Pythonのクラスは「はい」 Q4: 複数個継承した際に名前が衝突しました、どうなる? しれっと上書き、エラー(*)、エラー (*) Squeakはクラス定義時には例外を投げず、衝突したメソッドを「衝突した旨の例外を投げるメソッド」に置き換える。ユーザが衝突に気づくのは、クラスブラウザでメソッドを確認した時か、そのメソッド

    Scalaのtraitはmixinか? - 西尾泰和のはてなダイアリー
  • 「原稿を書いては消ししている」という状況を解決するには - 西尾泰和のはてなダイアリー

    「原稿を書いては消し書いては消ししていて全然進まない」という話をよく聞きます。 これって「よくない精神状態」にハマり込んでいると思います。 考えてみましょう。人間が脳内で保持できる情報はどれくらいでしょう?原稿に文章Aを書いて、しっくりこないので消して、文章Bを書いた後で、文章Aのことをどれくらい覚えていますか?文章Aを書いている時に何を伝えることが重要だと考えていたか覚えていますか? 「書いて消して」を繰り返している間、時間は消費されていますが、何も蓄積されていません。何も蓄積されないのであれば、問題はやさしくなったりはしません。ずっと同じ難易度のまま、あなたの前に立ちふさがり続けます。 原稿と戦っているうちに視野が狭くなって、自分が「よくない精神状態」にハマり込んでしまっていることを自覚できなくなるのは怖いことです。さらにはTwitterで愚痴ったり、ネットサーフィンをしてこんなサイト

    「原稿を書いては消ししている」という状況を解決するには - 西尾泰和のはてなダイアリー
  • Javaでヒープ領域を余らせたままOutOfMemoryErrorを出す方法 - 西尾泰和のはてなダイアリー

    先日、こんな問題を見かけたのだけども、JavaのGCにはあまり詳しくないので答えがわからなかった。 OutOfMemoryErrorが発生しました。(中略)ヒープメモリは足りているようです。原因として何が考えられますか? http://d.hatena.ne.jp/iad_otomamay/20130318/1363596244 なんでだろうなぁと思っていたところid:moriyoshiが「Permanent領域があふれたんじゃないの」と一言。「Permanent領域」で検索してみると、なるほど、そういうことなのかー。 というわけで早速それを再現させるコードを書いてみた。ヒープの大部分ががら空きなのにPermanent領域だけ99%になっているのがわかるかと思う。 Exception in thread "main" [Full GC [Tenured: 515K->515K(56896K

    Javaでヒープ領域を余らせたままOutOfMemoryErrorを出す方法 - 西尾泰和のはてなダイアリー
  • 「めんどくさい」「やる気がでない」時のチェックリスト - 西尾泰和のはてなダイアリー

    「めんどくさい」「やる気がでない」にも色々なパターンがあります。そこで質問に答えていくと解決策にたどりつくようなチェックリストを作ってみました。 追記: このエントリーの内容を元に平均10問の質問に答えるだけであなたの状況に合わせたアドバイスをする人工知能を作りました。オススメです。 Q1: やる気がでないのは今日に入ってからですか? 数日やる気がでない状態が続いているのですか?それとも今日に入ってからかですか? 今日に入ってから→Q2 数日続いている→Q8 Q2: 最近なにか新しい情報が明らかになりましたか? たとえば計画段階では知らなかった事実が明らかになって、今までやってきた作業が無駄になったとか。何らかの情報が最近明らかになりましたか? はい→状況が変わったのであれば、計画の通りに実行することが必要とは限りません。状況の変化に合わせて計画を変更したり中止したりしてはいけないのですか

    「めんどくさい」「やる気がでない」時のチェックリスト - 西尾泰和のはてなダイアリー
  • 「自信がない」は自信の持ちすぎ - 西尾泰和のはてなダイアリー

    「原稿書かなきゃいけないんだけどなぁ」とか言いながら現実逃避で読んでいた「心は病気―役立つ初期仏教法話〈2〉」に心に刺さる言葉があったのでここに書いておく。 正確な引用ではないので、正確な言葉が知りたければP.60から3ページくらいを読むとよい。 人間が自信をなくす原因は、自信の持ちすぎである。 自分が「この程度の仕事サクッと終わらせられる」と思っているのに、実際にやるとうまくいかないとき、人は自信をなくす。 「抜群のスピーチをしよう」と思って、実際にはうまく喋れなくて、自信をなくす。 妄想の中の自分が事実に反して素晴らしすぎるから、その「妄想の中の素晴らしい自分」が振る舞うように振舞おうとして、できないので苦しむ。 「自分の仕事に自信がない」というのは、奇跡的な成功を頭で妄想しているせい。現実の自分ができるようにしかできない。できることをすればよい。「自分は精一杯やった」と思える状態を

    「自信がない」は自信の持ちすぎ - 西尾泰和のはてなダイアリー
  • Bloom filterのシンプルな実装 - 西尾泰和のはてなダイアリー

    Bloom filterは指定されたものがリストに含まれるならばTrue、含まれないならばFalseを返すようなデータ構造である。もちろん、単純にリストを保持するだけでもリストに含まれるかどうかの判定は可能だが、Bloom filterのメリットはオリジナルのリストを保存しておく必要がないという点にある。そのためメモリの消費量を格段に節約することができる。しかし、そのメモリ効率の代償として多少正確性が失われる。Bloom filterは指定されたものがリストにない場合でもたまにTrueを返すのだ。しかし、間違ってTrueを返す確率はあらかじめ計算することができるので、誤差が許容できる範囲であれば問題なく使うことができる。 下記はアルゴリズム勉強用のシンプルな実装である。 SIZE = 1987 def hashes(s): xs = [0, 0, 0] for c in s: o = or

    Bloom filterのシンプルな実装 - 西尾泰和のはてなダイアリー
  • 遺伝子をモチーフにした言語「Genomy」を作りました - 西尾泰和のはてなダイアリー

    最近、3年くらい前に書いた「そろそろ例のプロジェクトについて言及するか」についてTwitterで言及があったので思い出しました。「条件を満たしたものをすべて呼び出す」という設計思想でプログラムが書けてしまうという点について意外とみんなピンと来ないみたいだからコンセプトプルーフを実装してみようと思っていたんでした。 という訳で作りました。https://github.com/nishio/genomy 解説 「遺伝子はタンパク質の設計図」というところまでは教科書などでもよく言及されます。でも、その設計図には「どういう状況になったら作るべきか」「どういう状況では作るべきではないか」という情報も書かれています。 この「作るべきではない」(発現の抑制)がどう実現されているか、ザックリ説明しましょう。体の中にあるタンパク質があると、これがある遺伝子の周辺にへばりつき、その遺伝子からタンパク質を作る過

    遺伝子をモチーフにした言語「Genomy」を作りました - 西尾泰和のはてなダイアリー
    gologo13
    gologo13 2011/12/27
    i can't understand...
  • gitをテキトーに使って生産性を向上したユースケース - 西尾泰和のはてなダイアリー

    バージョン管理とかgitとかが「おおげさでめんどくさいもの」だと思う人は多い。でも、それは生産性向上のチャンスを逃していると思う。特に業務として多人数で開発している人たちの「変更前にはまずトピックブランチ」というやり方が、それはそれでよい方法なんだけど、いかにもめんどくさそうで尻込みさせてしまうのではないか。 先日の日曜日に、テキトーなgitの使い方をして、とても役に立ったのでユースケースとして報告しておこう。ただし、若干特殊な環境なのでここでやった方法が直接そのまま皆さんの所で使えるとは限らないが。 まず環境の説明。プロジェクトは「次の日曜日、新感覚シューティングゲームを展示します」で紹介している、テーブル型ディスプレイで動くシューティングゲーム。メインは @tokoroten で、ソースコードをバリバリ変更している。土曜日にとりあえず動くところまでは行った。改善点は山積みだ。使える時間

    gitをテキトーに使って生産性を向上したユースケース - 西尾泰和のはてなダイアリー
    gologo13
    gologo13 2011/12/16
  • やる気が出ない人の心理学 レバレッジメモ - 西尾泰和のはてなダイアリー

    このは人間の絶望・無気力・おっくうの原因の解説書ではない。無気力になる傾向を持つ人が、どうやってそこから抜けだして元気に生きられるかというである。無気力になる傾向を持つ人には私も入っている。 この記事は筆者の『「やる気がでない人」の心理学』を読んだ際の読書メモです。 追記: このエントリーの内容を元に平均10問の質問に答えるだけであなたの状況に合わせたアドバイスをする人工知能を作りました。オススメです。 セリグマン人が書いた(の翻訳)としては世界でひとつだけの幸せ―ポジティブ心理学が教えてくれる満ち足りた人生とかがいいのかな。 前回、同じ著者(加藤諦三)の不安のしずめ方 40のヒント(レバレッジメモ)を読んで意外とよかったので別のを買ってみた。「やる気がでない人」の心理学 セリグマンの論文から引用しつつ、人間が無気力になる原因などについて解説した。セリグマンの元々の実験の話が明

    やる気が出ない人の心理学 レバレッジメモ - 西尾泰和のはてなダイアリー
  • セプキャン2011の案内 - 西尾泰和のはてなダイアリー

    「セプキャン」でぐぐっても公式サイトがヒットしないって言われたので公式サイトに「セプキャン2011」でリンクを張る: セプキャン2011 あとは僕のTweetなど: アピール書ききれないならtxt形式という話 ところで応募用紙の余白でアピールポイントを書ききれない場合にはどうすでばいいですか? っていうか用意されている応募用紙がPDF一択なのですけどどうやって記入してメール添付するんですか? なんでテキスト形式がないの今年 →テキスト形式追加されました!いっぱいアピールを書いてもメールで送れて郵送費ゼロ! 申込用紙の難易度にギャップがある話 セキュリティ&プログラミングキャンプに申し込もうと思っている人に一言。諸般の事情でセキュリティ側には難しめの質問事項がついてプログラミング側にはそれが付いていないけど、別にプログラミング側の採択基準が優しいわけではなく各組10人ずつなので勘違いしないよ

    セプキャン2011の案内 - 西尾泰和のはてなダイアリー
    gologo13
    gologo13 2011/07/12
    Linux組なくなったのか。。。OSも
  • もっとよいGitチートシート - 西尾泰和のはてなダイアリー

    世の中にGitのチートシートはいくつかあるけど「Gitを知らない人に渡して最初に読んでもらうのに適したもの」が見つからない。チートシートじゃなくてチュートリアルと呼ぶべきかもしれないけど、とにかく印刷してA4で1枚になるくらいの資料が必要だ。Gitに触れた技術者が軒並み同じ落とし穴でコケるのは正しい状態ではない。「Gitには、indexっていう『コミットする前にワークツリーで行った変更のうちのどの部分をコミットするか整理するための場所』があるんだよ」とか「git revertはsvn revertと違っていきなりリポジトリに変更を加えるから気をつけて」とか最初に言ってもらえればもっとスムーズに進めたはずだ。 というわけでどういうチートシートが必要かに関して考えてみる。 登場人物 http://www.ndpsoftware.com/git-cheatsheet.html このチートシートが

    もっとよいGitチートシート - 西尾泰和のはてなダイアリー
    gologo13
    gologo13 2011/04/20
  • gitまとめ - 西尾泰和のはてなダイアリー

    いろんな異なるバージョンのプログラムを管理したい、というわけで、gitを使うことにしました。cvsやsvnやhgやgitはいままで長いこと使ってきていたけども、ブランチをたくさん作るスタイルで使ったことはなかったもので。案の定つまずきまくりなので自分が後で参照するためにここにまとめていくことにする。入門Gitが手元にないので調べられない…あのにこういう問題にぶち当たったときの解決方法が書いてあった気がするのに〜 ブランチfoo上で、来ブランチbarで編集するべきa.pyを編集してしまう ブランチfoo上で、来ブランチbarで編集するべきa.pyを編集してしまい、ブランチbarをcheckoutしてそこで反映しようにもfooとbarでa.pyの内容が違うため「error: You have local changes to 'a.py'; cannot switch branches.

    gitまとめ - 西尾泰和のはてなダイアリー
    gologo13
    gologo13 2011/04/09
  • 最小限VM - 西尾泰和のはてなダイアリー

    手元にWEB-DB Press vol.60の「言語設計の基礎知識」がある人はP.28を参照ください。ここにあるような「カウントダウンをするwhile」、原稿ではC言語で説明していますけど、当は機械語とかにもふれたかったのですよ。紙面と時間の都合でできていないのですけど。 で、生の機械語はそれはそれで色々説明しないといけないから大変かな、と思ってwhileを実現するために最小限の仮想機械を作ってみました。 # -*- encoding: utf-8 -*- """ mini-VM 解説のための最小限のVM 最小限とは?最小限である必要があるか? チューリング完全である必要があるのか? jump pos : PCをposに変更 if_eq a1 v1 pos : mem[a1] == v1 ならjump pos print a1 : mem[a1]をprint set a1 v1 : me

    最小限VM - 西尾泰和のはてなダイアリー
  • 同じ値がN個入っているリストの作り方 - 西尾泰和のはてなダイアリー

    Twitterより転載: atsuoishimoto: .@t2y http://htn.to/qWhHgD [0 for i in xrange(len(seqs))] みたいな書き方たまに見かけるけど、正解は [0]*len(seqs) だと思う。 とても正しいツッコミだけど、若干不親切だと思うので勝手に補足。 たとえば「0がN個入っているリスト」を作るのは[0] * Nだ。 >>> N = 5 >>> [0] * N [0, 0, 0, 0, 0] この書き方は0に限らず「同じものがN個入ったリスト」を作ることに使える。 >>> ['a'] * N ['a', 'a', 'a', 'a', 'a'] じゃあ、「空のリストがN個入ったリスト」を作りたい場合は?うん、その場合ももちろん同じように書ける。 >>> [[]] * N [[], [], [], [], []] しかし、これが「

    同じ値がN個入っているリストの作り方 - 西尾泰和のはてなダイアリー
  • なんでマネジメントを勉強するのか - 西尾泰和のはてなダイアリー

    なんで独立する気も中間管理職になる気もないのに君はマネジメントを勉強しているのか?って質問に対する答えとしてちょうどいいものをドラッカーBotがつぶやいていたので転載する。 知力や想像力や知識は、あくまでも基礎的な資質である。それらの資質を結果に結びつけるには、成果をあげるための能力が必要である。知力や想像力や知識は、限界を設定するだけである。 プログラミング能力とか英語力とか色々なアイデアとかは、必要条件であって十分条件ではない。成果に結びつけるためにはそれらを組み合わせて運用するためのメタな知識が必要である。プログラマならもっとわかりやすいたとえができるだろう。タイピング能力とかライブラリに対する知識とかがあっただけではよいプログラムは書けない。「プログラミング能力」っていうメタな知識が必要である。マネジメントはもう一段メタな知識なんだ。

    なんでマネジメントを勉強するのか - 西尾泰和のはてなダイアリー
    gologo13
    gologo13 2011/02/06
    「成果に結びつけるためにはそれらを組み合わせて運用するためのメタな知識が必要である。」知識を運用するためのメタな知識.いい表現だ.
  • wgetでBASIC認証の掛かっているファイルを取ってくる方法 - 西尾泰和のはてなダイアリー

    --http-userと--http-passwordを指定すればいいだけだった。簡単にできた。

    wgetでBASIC認証の掛かっているファイルを取ってくる方法 - 西尾泰和のはてなダイアリー
    gologo13
    gologo13 2011/02/05
    wget.おおぉこんなことできるのか.
  • 首都圏で引っ越す人が知らないともったいない情報 - 西尾泰和のはてなダイアリー

    「引越れんらく帳」にお客さまのお名前や引越先のご住所などを登録しておけば、電気・水道・ガスなどの引越に関する手続きで何度も同じことを入力する手間が省けます。他にも、NHK、クレジットカード、損害保険等々、主要な企業の住所変更などにも対応しています。 東京電力 引越コンシェルジュ すごい、こんなものがあったなんて。1回住所や電話番号、メールアドレスなどを入力したら、東京ガスや水道局は違うウェブサービスなのにちゃんとデータが引き継がれてさくさく入力できる。12分くらいで電気とガスの手続きを完了した。水道はお客様番号をメモしてこなかったので後でやろう。

    首都圏で引っ越す人が知らないともったいない情報 - 西尾泰和のはてなダイアリー
  • 未踏ユース現役生に贈る言葉 - 西尾泰和のはてなダイアリー

    未踏ユースには、分野をまたいだ横方向のつながりを作るために未踏ユース採択者が一堂に介して「自分はこれから何々をする!」と発表しあう「ブースト会議」がある。そして、各年度ごとの横のつながりを作るだけではなく、縦にもつながりを作って網目を作ることも重要だ。だから例年何人かのOBが呼ばれて発表をすることになっている。僕も未踏ユースの1期生(平成14年)として、なんども参加させてもらった。 ところがだ、当然ながらOBの数はどんどん増加する。時間は有限だ。会場も有限だ。どうしても初期のように時間制限無し・人数制限なしで自分がやったこと、今関心を持っていること、現役生に伝えたいことを発表する、ってのが難しくなってくる。そこで気づいたんだが、当に「発表」というフォーマットである必要はあるのか? 年度をまたいで未踏ユース採択者同士のつながりを作る、という目的のためには発表である必要はない。伝えたいことを

    未踏ユース現役生に贈る言葉 - 西尾泰和のはてなダイアリー
    gologo13
    gologo13 2011/01/17
    プログラミング言語でいうなら、自分という一つのクラスにたくさんのメソッドを全部実装するのではなく、自分よりうまく実装されているクラスへの参照を持つ設計のほうが効率がよい。すごくいい話だな
  • Pythonで5分で便利なことをするレシピ - 西尾泰和のはてなダイアリー

    5分でわかる Python を知らない人が Python の便利さを学べる記事をかいたよ | HIROKI.JPが、Pythonの説明なのにところどころ「Rubyでは」になっていたり、そもそも無理やりPHP的なことをしようとしていていまいちなのでTwitterでひどいなぁと言っていたら @bellonieta: ここは是非とも@nishioさんに正しい5分記事を書いてもらいたいところ… と言われてしまった。まー、ぼやくのは生産的じゃないからねぇ。Pythonを使ってて色々便利なことはあるけど、一番手軽そうなものを軽く説明してみよう。たとえばなんか書類をつくっているとするじゃない、こんな感じの。 社長: 山田太郎 支社長: 田中一郎 部長: 山川三郎面倒なので3人分しか書いてないけど当はもっとたくさん30行くらいあるとしよう。さー書けた、と思ったらそこに上司が来て「あーあー、そうじゃないよ

    Pythonで5分で便利なことをするレシピ - 西尾泰和のはてなダイアリー