タグ

programmingに関するetopirika5のブックマーク (44)

  • ソフトウェア特論 情報システム工学研究室(JSK)

    サイトに掲載の記事・写真の無断転載を禁じます. Copyright(C) 2005 JSK. All rights reserved. No reproduction or republication without written permission. お問い合わせ等はまでお願いします.

  • プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ

    プログラミングを始めてから今日に至るまで、 様々なタイプのプログラマーと開発を共にしてきたが、 驚くべき速度で高い品質のソフトウェアを作り上げるプログラマーには、 一つ共通の特徴があるように思える。 それは、「はまる」時間が極端に短い、ということである。 風のプログラマー」を指向しており、開発速度を重要視している。 例えば平成14年未踏ソフトウェア創造事業「PICSY」では、 発表直前に知人でプロジェクトリーダーの鈴木健にレスキュー隊として呼ばれて 2,3日でGUI全般と、クライアント/サーバー通信部分の設計と実装を終わらせたのだが、 このときなどは、大体の要件を口頭で聞いた後は、 ほぼまったく手が止まらずコードを書き続ける感じで開発をしていた。 「はまる」時間の長さは開発速度に直結するわけだが、 プログラマーが「はまる」場合にはある程度の傾向があると思うので、 今日は「はまる」プログラマ

    プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ
  • きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません

    「構造のきれいなプログラムを書けるようになるためにはどうすればいいのか?」という質問を受けたので、「はて?どうしているだろうか?」と考えてみました。あ、形式知にきちんとなっているようなテクニックみたいなもんじゃなくて、モノローグなので、あまり凝ったものは期待しないように。 http://blog.shibu.jp/article/28983162.html 自分なりにもっと凝縮版を。渋川さんが言っている事全体もその通りとは思うけど*1、もっと簡単で、しかも射程が広い、と自分が思っている事。 渋川さんはちょろっと触れてるだけだけど、自分はこれが最も基的で汎用的、かつ、ソースをきれいにする原動力となる上にバグをも減らしてコードの汎用性まであげる、コーディングのエンジンみたいなものと思ってる。それは、 「すべてに正しい名前を付けて、そして、正しい名前であることを維持する」という鉄の意志 クラス

    きれいなソースコードを書くために必要な、たったひとつの単純な事 - よくわかりません
  • エンジニアがタイトル買い、著者買いすべき本 - Fight the Future

    著者買いすべき! ファウラー、ジョエルは知名度もあり、改めて僕がどうこう紹介する必要はないと思うけど、ここではスティーブ・マコネルを特に推したい。 読んだ人には非常に高い評価を得ているけれど、その分厚さや価格もあってなかなか広まっていない。 特にCode Completeはすべてのエンジニアが必ず読むべきだと思ってる。 これを読んで理解する/しないが(職業プログラマとしての)初級と中級の境界だと言えるくらい。 タイトルにはCodeとあるけど、別にコーディングをターゲットにしたではない。 設計、テストも含めてコーディングを考えている。当たり前だがコーディングだけではコーディングはできないからだ。 上下巻1,200ページの大作だし、2冊で12,000円だがその価値は大いにある。 スティーブ・マコネル ソフトウェア見積り―人月の暗黙知を解き明かす 作者: スティーブマコネル,久手堅憲之,S

    エンジニアがタイトル買い、著者買いすべき本 - Fight the Future
  • 猫科研究所 - wxWidgetsのススメ

  • Circle Calculator

  • 直線のアルゴリズム 円のアルゴリズム

    これも色々あるのですが多いのは 1)線分の始点終点で出来る長方形が交わるか? 2)線分が収まる円を描いて円同士が交わるか? 3)片方の端点から線分との距離2組みを求めて短い方 の3つくらいかな? 1)は判断を並べれば良いだけ しかし、分岐が入るとCPUは遅いので、 アセンブラレベルで大小比較結果(CF)を集めてまとめて比較するような工夫が必要です。 2)円同士が交わるかは、中心同士の距離を求めて双方の円の半径の 和(線分の長さ合計/2)との大小比較します。 hypotenuse を荒く、誤差分を安全側に判定れば(分岐予測のミスでペナルティを払うCPUでは) 1)より高速です。 3)は線分の交差判定の初段と実は同じ計算をします。 これ使うなら素直に交差判定した方がマシ GUIの為に、必要な処理です。 マウス座標をp0 線分が点p1,p2を通るとして rx:=p1.x-p0.x , ry:=p

  • ソフトウェア開発の「自由の悲劇」 : 小野和俊のブログ

    クリエイティブな仕事というのはある意味で残酷だと思う。 なぜなら、 つくりあげたものが評価に値しないものだった場合に、 自由にできる環境があったのに、 この程度のものしかできなかったのかという批判が 人に対して直接的に向けられやすいからだ。 というような話を耳にすることがあるのだが、 「誰でもいいからお金を出すので好きにつくってよい」 という状況はほとんど考えられないわけで、 もし人の希望がかなった結果、 大したものを生み出すことができなければ、 自分には新しいものを生み出す才能がないのではないかという 悩みに直面することになる。 もちろん、中には自分自身でソフトウェアを次々と開発して、 ダウンロード数やアクセス数、メディアで取り上げられた記事などを印刷し、 この企画を会社の事業として採用しないか、 と持ちかけてくるような強者もいる。 だがそういう人でさえ、注目を浴びたソフトウェアの影

    ソフトウェア開発の「自由の悲劇」 : 小野和俊のブログ
  • Python入門 ~Pythonのインストール方法やPythonを使ったプログラミングの方法について解説します~ | PythonWeb

    Python を使ってプログラミングの学習を開始される方を対象とした Python 入門です。 Python の開発環境をローカル環境に構築する手順や、 Python を使ったプログラムの記述方法や実行までをサンプルを使いながら順に学習していきます。

    Python入門 ~Pythonのインストール方法やPythonを使ったプログラミングの方法について解説します~ | PythonWeb
  • 論理的思考の放棄 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記

    僕は、1 日に少なくとも 3,000 行程度、多く書くときで 10,000 行以上のプログラムを書くことができる。その結果、多い月で 10 万行 / 月くらいである。なお、言語は書くソフトウェアの性質上、大半が C 言語である。 また、プログラミングにはバグが付き物だが、ここ 2、3 年の間は、発生するバグの数を極めて少なく保つことに成功している。 とても大きく複雑で、かつレイヤ的に OS に近い処理をたくさんやるプログラムを書く場合は、プログラミングをするときでも、事前の設計が極めて重要となる。設計をうまく行わないと、後になって全面的に書き直しをしないといけなくなったり、パフォーマンスが低下したりする原因となり、開発者の苦痛の原因となる。 当然のことながら、これまで書いたいくつかの大きく複雑といえるソフトウェアの大半の設計も、自分で行った。いかなる場合でも、設計は、最初の 1 回目で確定

    論理的思考の放棄 - 登 大遊@筑波大学情報学類の SoftEther VPN 日記
  • C++ Style Guide

    Benjy Weinberger Craig Silverstein Gregory Eitzmann Mark Mentovai Tashana Landray This style guide contains many details that are initially hidden from view. They are marked by the triangle icon, which you see here on your left. Click it now. You should see "Hooray" appear below. Hooray! Now you know you can expand points to get more details. Alternatively, there's an "expand all" at the top o

  • マルチスレッドを使用したアプリケーションについて

    マルチスレッド対応OSにおけるプログラム実行の単位のことで、Windowsはマルチスレッドをサポートしています。 プログラム(プロセスとも呼ぶ)の中で複数のスレッドを実行することができ、実行すると(プロセスを実行する)最低1つのスレッドが作成されます。このスレッドを特にプライマリスレッド(primarythread)と呼びます。 マルチスレッドを利用することにより、長時間かかる処理を実行してもプライマリスレッド等に影響を及ぼさない、また同時に複数のスレッドと同期を取りながら処理することが出来ます。 デメリットとしては、終了処理が少々面倒、また同期処理にバグがあるとデッドロックの発生、リソース競合発生の可能性があり、最悪の場合プログラムを強制終了させる必要が発生したり、例外関連のエラー等で処理がストップする可能性があります。

  • Loading...

  • http://ocw.kyoto-u.ac.jp/jp/engineering/course07/index.htm

    国際交流センター 日語入門初級 日仏交流150周年・京都大学創立111周年国際フォーラム 国際フォーラム ビデオ→ 動画で見る京都大学 ・What is Life? The Next 100 Years of Yukawa's Dream Nishinomiya-Yukawa International & Interdisciplinary Symposium 2007 October 15(Mon)〜20(Sat) 2007 CO-OP Inn Kyoto Conference Hall →詳細 →シンポジウム詳細PDF →シンポジウム ビデオとPDF OCW関連講義 全学共通科目 生命とは何か?(村瀬雅俊准教授) 京都大学オープンコースウェア総長懇談会 日時2007年10月30日(火) 場所:京大会館

  • Support Vector Machine

    最近よく巷で耳にするモノ. SVM, Support Vector Machine, さぽーとべくたーましん. これっていったい,どんなもんなんでしょう. なにやら便利そうなモノらしいので,ちょいと調べて要点をまとめてみようかな,なんて. でも,ただまとめただけだとそのへんの記事を読むのとなんにも変わらないので, コーディングするために必要な知識を中心にまとめてみることにします.

    etopirika5
    etopirika5 2008/02/07
    パターン認識で使われるアルゴリズムらしい。
  • Matzにっき(2008-02-04) - 初心者向けの言語|ソフトウェア開発における初心者

    << 2008/02/ 1 1. [言語] 「ハッカーと画家」の著者が新しいLisp系言語「Arc」を公開 | エンタープライズ | マイコミジャーナル 2. 「セキュリティ、なめんなよ!」 なめねこも一緒に情報セキュリティ強化宣言 | ネット | マイコミジャーナル 3. 「サイオステクノロジーはグルージェントの未来技術に期待し子会社化」:ITpro 2 1. [Ruby] Nimble Method: Garbage Collection is Why Ruby on Rails is Slow: Patches to Improve Performance 5x; Memory Profiling 2. [言語] LuaJIT roadmap 2008 3. [Ruby] What will Matz do? 4. [Ruby] EURUKO 2008 − European Ruby

    Matzにっき(2008-02-04) - 初心者向けの言語|ソフトウェア開発における初心者
  • 机の上に紙とペンを広げられるかで勝負が決まる - ひげぽん OSとか作っちゃうかMona-

    そういえば昨日の飲み会で誰かが言っていて同意したのがプログラマの机の話。 机の上に紙とペンをどれだけ広げられるかで勝負が決まる。 せまい机に押し込まれて隣の人と触れ合うほど、近かったりするともうだめ。 デュアルディスプレイで得られる効率はコーディングの効率なのだけど、机に広げたノートで得られるのは考えをまとめる効率。 脳の中に展開できない何かをノートに展開ですよ。 紙とペンとか言うと、うげー古いぜとか思うかもしれないですが僕より若い優秀なエンジニアは良く紙に何か描いているなあ。(上の世代は言うまでもない)。 今使っているノートとペンを教えてくれたのは僕よりずっと若い id:kambara氏 だし。

    机の上に紙とペンを広げられるかで勝負が決まる - ひげぽん OSとか作っちゃうかMona-
  • コーディングや設計で難所に出くわした時にすること - higepon blog

    仕事趣味でコードを書いているとき、設計をしているときに難所に出くわすことがあります。 そんなときに僕が意識的に心がけていることを紹介します。 もっと良い方法があったらぜひ教えてください。→皆様。 難所に出くわす前に「もうすぐ難所だな」と気づいているときは、すでに冷静な状態で心構えができています。 この場合はきちんと対処ができることが多いです。 何度も考えがループしていたり、難しすぎて他の事に逃避しているときは集中力がないか、難所にさしかかっているサインなので、難所の場合は以下の5つを順番に試しています。 絵を描く 人に言葉にして説明する 思考の流れをテキストにする 散歩する 次の日に持ち越す 絵を描く 設計やコーディングに関して、分かっていることを絵や図にあえて描いてみます。 分からないところは箱を描いて中に? とでも書いておけば良いです。 絵を書く過程で、自分がどこが分かっていないかが

    コーディングや設計で難所に出くわした時にすること - higepon blog
  • 悪い意味でマニアさん - ++C++; // 管理人の日記

    http://hagi.is.s.u-tokyo.ac.jp/ade/ ↑ちょっと前に話題になってたやつ。大学2年生の課題にしちゃレベル高すぎないかっての。 ようやく目を通してみたけど、これはひどいなぁ。「勘違い君に現実を知って1度絶望してもらおう」って意図以外ではまるで役に立たなさそう(どうも、実はそれがメインの目的らしいけど)。あっ、これに付いてこれる学生を青田買いするのにも使えるかな。 レベルの問題じゃなくてね。それ以前の部分で微妙。 まずもう、「Javaで出しても採点しない」とか「課題はEmacsで書け」とか書いてるのが駄目。大学の授業ってのは、アルゴリズムとデータ構造とか、いわゆる情報工学の部分に重きを置くもので、言語やらエディタやらを制限するとかありえない。言語しぼらないと採点が大変ってのはわかるけど、C++Javaくらいは認めてもいいのに。エディタ指定の方は論外。 大体、デ

    悪い意味でマニアさん - ++C++; // 管理人の日記
  • Research

    etopirika5
    etopirika5 2008/01/21
    ポリゴンの衝突判定、GJKアルゴリズム