タグ

プログラミングに関するd14aのブックマーク (79)

  • 魔法遣いに大切なこと - みねこあ

    JavaBlackさんち経由、Shibu's Diary: これから魔法使い(プログラマー)になる、新卒者のみなさんへ わたしは JavaBlackさんほど反感を覚えなかったのですが、それはわたしが厨二病を拗らせて慢性化させているからでしょう*1。スレイヤーズあたりを魔法の認識の礎のおいている痛い人間としては、プログラミング = 魔法 にあんまり違和感を覚えません。L様系の呪文はバグってるバージョンではパフォーマンスがイマイチだったりとか。あと魔法がクラウドだったりとか(Ruby-Eye AppEngine みたいな)。 「魔法遣い」と言われるには、普通の人が普通の人の常識ではデタラメに見えるくらいの手腕でなにかを現実にする技術を持っている必要があります。・・というかそういう相対的視点での超絶技巧が「魔法」と呼ばれるのでしょう。逆に何かが魔法に見えるということは、その何かに対して「素人」で

    魔法遣いに大切なこと - みねこあ
    d14a
    d14a 2011/03/08
    すごくよかった
  • プログラミングに最適なConsolasとかInconsolataとか - os0x.blog

    でInconsolataだけが紹介されているので、おまけ情報を少々。 Inconsolataというのは、Windows Vista/7 に標準で付属しているConsolasフォントに感銘を受けた作者がConsolasを意識して作ったフォントです。 ConsolasのほうはVista/7だけでなく、Visual Studioに付属してたりもします。一応、こちらからダウンロードもできるようです。 Download: Consolas Font Pack - Microsoft Download Center - Download Details Windows(少なくとも7では)ではConsolasのほうがより(ClearTypeの効きが)綺麗だと思います。というか、InconsolataはWindowsだとどうも今一つ…、ただMacLinuxではWindowsでのConsolasと同じくら

    プログラミングに最適なConsolasとかInconsolataとか - os0x.blog
  • トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター

    トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター:最強最速アルゴリズマー養成講座(1/4 ページ) プログラミングにおける重要な概念である「探索」を最速でマスターするために、今回は少し応用となる探索手法などを紹介しながら、その実践力を育成します。問題をグラフとして表現し、効率よく探索する方法をぜひ日常に生かしてみましょう。 まだまだ活用可能な探索 前回の「知れば天国、知らねば地獄――『探索』虎の巻」で、「探索」という概念の基礎について紹介しました。すでに探索についてよく理解している方には物足りなかったかと思いますが、「問題をグラフとしてうまく表現し、そのグラフを効率よく探索する」というアルゴリズマー的な思考法がまだ身についていなかった方には、得るものもあったのではないでしょうか。 前回は、「幅優先探索」と「深さ優先探索」という、比較的単純なものを紹介しましたが

    トップクラスだけが知る「このアルゴリズムがすごい」――「探索」基礎最速マスター
  • SW開発で火を噴くパターン - プログラマの思索

    【1】SW開発ではいつも結合テスト以降で火を噴く。 設計、開発、単体テストまで順調であっても、結合テストから受入テストに至るまでに致命的な問題が発覚する。 例えば、下記のような問題がいつでもどこでも噴出するのではないか。 設計書には、複数の画面遷移による業務フローが考慮されていなかった。 業務のインターフェイスがシステムとして整合性が取れていなかった。 シナリオに従ってテストしたら、設計時には気付かなかった業務フローが見つかったり、想定しなかったデータが作られて、その対応が漏れていた。 つまり、設計漏れ。 実際に結合テスト環境で動かそうとすると、そもそも動かない。 実は、DB環境にViewやプロシージャがもれていた。 あるいは、帳票出力やPDF出力、バッチ処理などに必要なサードパーティのライブラリがテスト環境に無かった。 モジュールをビルドして、Webサーバーを再起動する作業が手順化されて

    SW開発で火を噴くパターン - プログラマの思索
  • プログラミングテクニックのまとめ - プログラミング日記

    とりあえず思いついたもののまとめ。 まずは、ベーシックなものから。 変数のスコープをなるべく狭くしろ 他はグローバル変数を使うなとか、モジュール化と界面を意識せよなど。とにかくスコープは重要かつ意外と奥が深い。スコープに関係する機能は、モジュール(パッケージ)、クロージャ、ローカル関数、ローカルクラス、変数の種類、アクセス制御など。 同じロジックのコードを2度以上書くな 他はDRY原則、コピペをするななど。自分の場合、2度書く方がシンプルになる場合、2度書くこともある。特に、ifやswitchなどのロジックの中で同じコードが2度現れる場合、ちょっとしたコードでわざわざ別のところで関数やブロックにまとめて、それを参照するのは面倒。但し3度以上現れる場合は関数などにまとめるケースが多いかも。 汎用コード内で条件分岐コードを減らせ 他はifをポリモーフィズムによりなくせなど。条件分岐は汎用性を損

    プログラミングテクニックのまとめ - プログラミング日記
  • プログラミングの効率的な学習の為に必要な環境についての考察(いわゆる高速道路?) - monjudoh’s diary

    想定 プログラミング入門者は脱している 初級者から中級者に向けての長いプログラマ坂をマッハで駆け上りたい 具体的には何らかのプログラミング言語について習得したい あるプログラミング言語について当に習得出来たと言えるなら、その言語がフォローしているパラダイムは身に付いているはずなので問題ないはず これの実現に役立つ環境とは何かについて、JavaScript坂を上っている最中の経験をもとに考察してみる。 独習に役立つ環境 言語全体を網羅した良書 例:サイ 何度でも立ち返るぶれない基として1冊あると安心感が違う。 実践は大事だけど座学も疎かにしてはいけない。 手軽にtry&errorを繰り返せる実行環境 例:Firebug ちょっと書いては実行というのを手軽に何度もできると慣れやすいと思う。 Firefox+Firebugの場合はたくさんある既存のWebサイトについて、 JavaScrip

    プログラミングの効率的な学習の為に必要な環境についての考察(いわゆる高速道路?) - monjudoh’s diary
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • OOコード養成ギブス - rants

    Binstock on Software: Perfecting OO's Small Classes and Short Methods The Pragmatic Programmersシリーズの新しい、The ThoughtWorks Anthologyの中に 興味をそそるエッセイがある。Jeff Bayの"Object Calisthenics"だ。 これは良いオブジェクト指向の性質を実証する小さなルーチンを書く方法をマスターするための 詳細にわたるエクササイズだ。オブジェクト指向なルーチンを書く能力を向上させたい開発者がいるなら このエッセイに目を通すことを勧める。ここにBayのアプローチを要約してみよう。 彼は次にあげられる制約のもとに1000行のプログラムを書くことを勧めている。 これらの制約は意図的に過剰な制限となっているが、これは開発者を手続き的なやり方から脱却させるた

    OOコード養成ギブス - rants
  • Diary of 2005/11/22

    2005/11/22 火曜日 なんでもかんでもExcel症候群 何でもかんでもPowerPoint症候群の弊害を日記で書いたのだが、それよりも世の中に広く広まっている病的な物と言えば、なんでもかんでもExcel症候群であろう。とにかく通常の表だけに飽きたらず、提出書類から報告書まで何でもかんでもExcelなのである。つまり「何でもかんでもExcel症候群」とはExcelだけですべての仕事が完結してしまう恐ろしい病気なのだ。 その病巣の由来を簡単に予想するとすれば、子供の頃に升目の入ったノートで漢字の書き取りをやらされ(つまりカーニングとかに無頓着になる)、読書感想文などの類は原稿用紙で書かされ、漢字は少ない文字数で情報量を詰め込めることからすっきりとした表が書きやすく、何でもかんでも表にしないと気が済まないという日人の悲しい習性に由来する物であろうと思うのだ。 まぁUnixでEmacsし

  • Java用のPDF生成ライブラリiText1.3.3公開 - ツールが拡充 | エンタープライズ | マイコミジャーナル

    Bruno Lowagie氏らは24日(現地時間)、Java用のPDF(Portable Document Format)生成ライブラリであるiText 1.3.3を公開した。iTextはJavaプログラムにおいてPDF形式のドキュメントを出力するためのライブラリで、Mozilla Public License 1.1のもとオープンソースで公開されている。PDFだけでなく、HTMLやXML、RTF(Rich Text Format)形式での出力もサポートしている。またフォーマットの変換やPDFファイルを扱うためのツールとして利用できるクラスも充実している。 今回のリリースにおける変更点は既存のクラスの修正やバグフィックスが主だが、注目すべき点としてPDFファイルを扱うためのツールの拡充がある。これには、Bruno Lowagie氏がiTextに関する書籍を執筆中に思いついた様々なアイデアが

  • フリーのライブラリを使いPDFを生成する

    TIPSで紹介するiTextは、PDFJavaで扱うためのライブラリです。これを使えば、PDFファイルを作成したり、ブラウザにPDFを出力したりすることができます。しかもiTextはオープンソースで開発されており、使用に際してはMPLまたはLGPLのいずれかのライセンスを選択できます。 セットアップ iTextはjar形式のライブラリのため、必要なファイルをクラスパスへ追加するだけで利用できます。iTextの体は、itext-x.x.jaです。これを以下のURLよりダウンロードしてください。 ・ http://www.lowagie.com/iText/download.html ダウンロードできたら、このjarファイルをクラスパスへ追加します(最も簡単な方法は、Javaの拡張ディレクトリへjarファイルをコピーすることです)。 これだけでiTextは利用可能ですが、体には日語フ

    フリーのライブラリを使いPDFを生成する
  • 窓の杜 - 【NEWS】「Visual Studio 2005 Express Edition」日本語正式版の一般向け無償公開開始

    マイクロソフト(株)は15日、統合開発環境“Visual Studio”シリーズの最新版となる「Visual Studio 2005」日語正式版を“MSDN”会員向けにダウンロードでの提供を開始し、同時に、同製品の機能限定版である「Visual Studio 2005 Express Edition」日語正式版の、一般向けの無償公開を開始した。“Express Edition”は“MSDN”会員に限らず、誰でも同社ホームページからダウンロードして利用でき、使用期限はない。なお、“Express Edition”の一般向けの無償公開は1年間の期間限定となっている。 「Visual Studio 2005」は、「.NET Framework 2.0」をサポートしたWindowsアプリケーションの統合開発環境。今回、日語の無償版が公開されたのは、プログラミング初心者向けの機能を数多く搭載し

  • モノーキ〜デバッグパターン

    デザインパターンを勉強していて、ふとデバッグにもパターンがあるよな。 と思って作ってみました。 これって、どこかに協力を仰ぎたいけど、誰に頼むんだ? (結果的に協力してもらいました。thanks XPMLの皆さん、lemonさん) 何かおもいついた方はこちらへメールか、掲示板へ プログラマ用セキュリティホールパターンってのが欲しいな 例えばSQL injectionとかいうセキュリティホール。 こんなの知らないと絶対やってしまう。 OSとかの設定ではなく、プログラマの設計において注意するセキュリティホールのパターンが欲しい。 集計などはやってもいいので、どこかで有志を募って集めてくれませんかね? ○デバッグパターンについて ・デバッグパターンとはプログラマから観測できる現象とそれに対する原因と対策をパターンとして登録したものです。中にはアンチパターンという、やってはいけないパターンも存在し

  • http://bukuro.dyndns.tv/archives/2006/01/wxpython.html

  • 高度プログラミング演習(九州大学全学共通教育科目)の説明資料

    実践プログラミング CとC++プログラミングに関するいくつかの例題と解説. 単なるプログラミングテクニックや文法の解説ではなく, 背後にある考え方の習得(アルゴリズム,データ構造,数学など)を重視して いる. プログラムをじっくり眺めそこから技法を学び取る. 最大値 [HTML] 曜日の計算 [HTML] 平均値,分散 [HTML] 2次方程式の解 [HTML] 最小自乗法 [PPT], [HTML] 待ち行列シミュレーション [PPT], [HTML] アーランの即時式モデル [PPT], [HTML] 行列のLU分解 [PPT], [HTML] ニュートン法による非線型方程式の解 [PPT], [HTML] 数値積分 [PPT], [HTML] 2分探索木 [PPT], [HTML] ヒープソート [PPT], [HTML] クイックソート [PPT], [HTML]

  • プログラマが組込みに手を染めてみるべき5つの理由 - 脇見運転

    巻頭言 あなたがMacを使うべき10の理由 お前らがmacを使わないべき10の理由。 あなたがLinuxを使うべき10の理由 お前らがLinuxを使わないべき10の理由。 を読んだ後、少しずつそれに乗っかるエントリが増えていくのを見ていた*1。自分も書こうか書くまいかと迷っていたが、面白そうなのでやっぱり書いてみる。ま、軽い気持ちで。 オリジナルは「10の理由」なのだが、ここでは5つしかあげない。組込みプログラミングはスンゲェ面白いが、「xxはクールだから、それを使ってる俺ってクール」などという発想とは無縁だ。だから5つで十分。 組込みコンピュータはリアルな世界で動く 組込みプログラミングがワークステーションやサーバー、あるいはPCのプログラミングと決定的に異なるのは、それがリアルな世界で動くことだ。最近はサーバーどころかクライアントでも仮想化技術がかまびすしく語られている。だが仮想化を叫

    プログラマが組込みに手を染めてみるべき5つの理由 - 脇見運転
  • どのクラスで定義されたメソッドなのか : にぽたん研究所

    Perl のはなし。 弊社のあるエンジニアが、とあるクラスを継承している他のクラスで呼出可能なとあるメソッドについて、そのメソッドがそのクラス内に定義されていないので、んじゃどこで定義されてるのか?というのを調べるのに時間がかかってた模様。 そんなの @ISA 配列を再帰的に見て、シンボルテーブル + UNVERSAL::isa() の組み合わせで発見出来るだろうなーと思ったので、簡単なテストを書いたら、アッサリ発見出来た。 こういうモジュール欲しい!という人も多いんじゃないかと思ったので、どうせなら CPAN にうpしようかなと思いつつ、reinvent the 車輪なんじゃないかな?とかも思いはじめ、某 CPAN Author だらけの IRC チャンネルで識者の意見を賜ってみた。 「このモジュールで出来るよ!」 という話がなかったので、んじゃ、ちゃんとしたのを作って contribu

    どのクラスで定義されたメソッドなのか : にぽたん研究所
  • マウスジェスチャを実装する(Win32版):CodeZine

    はじめに 私はGUI環境で簡単にコマンドを送ることができるマウスジェスチャが大好きです。今回はそんなマウスジェスチャを作ってみましょう。なお、.NET版については別稿を参照してください。対象読者 C言語(またはC++言語)でWin32のプログラムを開発したことがある方。必要な環境 少なくとも32bitWindows環境が必要です。64bit環境でのテストはしていませんが大丈夫だと思います。設計 まずは構想を練らなければなりません。今回はサンプルなのでこちらで決めさせて頂きます。右ボタンが押されたら始まり、離されたら終わる。入力可能方向は4方向(斜め判定は無し)同じ方向への連続入力は無し(普通はこうすると思います)ある方向に動かすと反対側の移動量は0になる縦横の移動量を比較して多い方だけを考える(より自然な移動になる)ウィンドウの外に出てもしっかりと動作するようにする(これを行わないと変な

  • 窓の杜 - 【NEWS】プログラムのソースコードをWeb上で見やすく表示させるためのHTML生成ソフト

    C/C++/C#/Visual Basic/Java/JavaScript/SQL/XML/HTML/JSP/ASP/PHPに対応 各種プログラム言語のソースコードをWebページへ掲載するために、予約語やコメントを見やすく色分け表示したHTMLソースを生成できるソフト「SourceConverter」v1.0.0が、7日に公開された。Windows 2000/XPに対応するフリーソフトで、現在作者のホームページからダウンロードできる。動作には、.NET Framework 2.0が必要。 「SourceConverter」は、プログラムのソースコードをWebページ上で見やすく表示させるためのHTMLソースを生成できるソフト。予約語の色分けやインデントなどを、開発環境上での見た目と同じように表示できる。C/C++/C#/Visual Basic/Java/JavaScript/SQL/XML

  • 変更に耐えるシステム構造とモデルの関係(上) ― @IT

    今回は2回に分けて、要求を忠実に反映したシステム分析の方法と、変更に耐えるシステム構造を作る方法を解説します。前編である今回は、実際の分析作業を行う前に知っておくべき知識の整理をしておきます。 保守性の考え方 保守性とは、「予想できなかった機能変更・追加を最低限のコストで実施できること」です。では、予想できない機能変更はどんなときに起きると思いますか。わたしは大きく2つあると思います。すなわち、「使いにくい」「使えない」など、要求が正しく実現されていないとき、あるいは、使ってみると新たな要求が出てくるときです。これは、システムの機能とビジネス要求の乖離(かいり)が原因だと考えられます。このような場合、結局は、仕様変更を余儀なくされます。(広い意味での)バグと考えてもいいでしょう。 ビジネス環境が変化することで、構築したシステムに機能の追加が要求されたり、短時間で機能変更が要求される場合もあ

    変更に耐えるシステム構造とモデルの関係(上) ― @IT