タグ

programmingに関するcactusmanのブックマーク (54)

  • Undo,Redoの実装って何十回もやってる気がする - あしあと日記

    undo,redoの実装って何十回もやってる気がする。毎回同じパターンだ。undo,redoが登場するような編集ソフトは大体同じパターンに落とせる。フレームワークも作った。ブログにそういう内容を書きたいが面倒くさい。需要があれば面倒でも書くんだけどなあ http://twitter.com/youpychan/status/994486992 という発言をしたら何人か反応を頂いたので書いてみることにする。 需要があるなら書こう。undo,redoだけじゃなくてグラフィカルな編集ソフト全般の話をいつかまとめたいと思っていたので、ちょいとシリーズで書いてみようかとおもう http://twitter.com/youpychan/status/994636764 書こうと思う。 まずUndo,Redoについて。 Unod,Redoってみなさんどういう風に実装しているでしょうか? 私はコマンドパタ

    Undo,Redoの実装って何十回もやってる気がする - あしあと日記
  • プログラミングの常識を疑え!

    プログラミングとは何か プログラミングと聞いて、みなさんはまず何を連想するでしょうか? 狭義の意味では、人間の意図をプログラミング言語によって記述すること(コーディング)ですが、より広い範囲、ソフトウエア開発全体を連想する人も多いかと思います。 狭義の意味だけに絞ったとしても、プログラミング言語にはさまざまなものがありますし、記述する内容や書き方のスタイル(プログラミングパラダイム)にもいろいろなものがあります。 例えばCやC++のようなコンパイラ言語は、OSを初めとした、さまざまなシステムやアプリケーションを作るのに向いた言語と言われています。これらの言語で書かれたプログラムは、コンパイラに対して細かな指示を与え、効率的な実行可能ファイルを生成するための記述です。 それに対してShellやPerlのようなスクリプト言語は、その名の通り、システムの動作内容などを台のように記述します。そし

  • 正規表現エンジンを作ろう (1)

    はじめに こんにちは。hirataraです。 私が初めて正規表現を使ったのは、PerlによるCGIでの文字列処理でした。それから私はPerlを使い続け、今では正規表現なしのコーディングは考えられないほど、正規表現を当たり前の機能として日常的に使っています。昔は標準では正規表現をサポートしていなかったJavaも、今では正規表現をサポートするようになりました。Javaだけではなく、今日ではほとんどの高級言語にとって、正規表現はなくてはならない機能であると言っても過言ではないほどメジャーな機能となっています。 記事では、この正規表現の舞台裏に光を当てます。一見すると作ることが難しそうな正規表現エンジンですが、その根底には数学的な概念があり、その概念さえ知っていれば基礎となる機能の実装はそんなに難しくありません。この連載ではその数学的な概念をPythonを使って表現しながら、実際に動作する正規表

    正規表現エンジンを作ろう (1)
  • プログラミングのスピードを上げる方法 - teruyastarはかく語りき

    http://q.hatena.ne.jp/1203667934 ソフトウェア開発やプログラミングのスピードを上げる方法はありませんか? プログラマーとして生きていこうと決めたのですが、いつも見積もりの3倍時間がかかってしまいます。 そのため いつもつらい思いをしています。 環境を良くしようとHHKLite2を使い、カスタマイズソフトでホームポジションから離さずにプログラミングしています。 マウスもゲーム用の高精度のものを使っています。 調べ物にもタブブラウザを使い、拡張し続けて効率化をしています。 DualCoreマシンを使いメモリもたくさん積み、障害がないように心がけがけています。 出始めのころから効率化のためにエクストリームプログラミングも取り入れていました。 単体テスト、リファクタリングも当然行いますが、余計に開発速度が落ちています。 しかし開発速度は効率化とは無縁だとすら感じてい

  • プログラミングの教育には読書感想文が無いと思ったので書いてみる - 404 じゃばてないわー Not Found(一部X-RATED)

    これは完全に思いつきと主観に基づいて書いています。プログラムも一種の「言葉を書く」というものだとするならいろんな機能の使い方を覚えて、いろんなプログラムを書いて、表現力豊かになっていくという方向がいいのかなーとか思ってるんですが、国語の教育で子供達の文章表現を豊かにするには、「読む」というのがそれなりの地位を占めている訳で。じゃぁ、プログラムの教育ではそういった「読む」という行為がカリキュラムに含まれているんだろうか?と。例えば「xxという機能を実装せよ」という課題が出て、こういう結果が出たらOK!みたいなんで終わってないだろうか。私のいた学校ではここで終了してた。プログラムの読書感想文的なものがカリキュラムにあるといいんでない?とか直感的に思ったのでこのエントリーを書いているんだけど、例えば、「このソースコードを読んで感想を書け」みたいな課題はありじゃないかと思う。この人はここでnull

    cactusman
    cactusman 2008/08/28
    どう読む.orgはid:hymzが1kspで話たことある内容。
  • GoogleのMapReduceアルゴリズムをJavaで理解する

    GoogleMapReduceアルゴリズムをJavaで理解する:いま再注目の分散処理技術(前編)(1/2 ページ) 最近注目を浴びている分散処理技術MapReduce」の利点をサンプルからアルゴリズムレベルで理解し、昔からあるJava関連の分散処理技術を見直す特集企画(編集部) いま注目の大規模分散処理アルゴリズム 最近、大規模分散処理が注目を浴びています。特に、「MapReduce」というアルゴリズムについて目にすることが多くなりました。Googleの膨大なサーバ処理で使われているということで、ここ数年の分散処理技術の中では特に注目を浴びているようです(参考「見えるグーグル、見えないグーグル」)。MapReduceアルゴリズムを使う利点とは、いったい何なのでしょうか。なぜ、いま注目を浴びているのでしょうか。 その詳細は「MapReduce : Simplified Data Proc

    GoogleのMapReduceアルゴリズムをJavaで理解する
  • かな漢字変換エンジンの基礎 - nokunoの日記

    先日研究室で勉強会(通称サーベイ輪講)があったので、その資料をアップロードしました。うちは自然言語処理をやっている人は少ないので、内容的には当に基礎の基礎です。先生からは「わかりやすい」とお褒めの言葉を頂きました。 | View | Upload your own間違い等がありましたら遠慮なくご指摘下さい。

  • 大阪&大阪府下で勉強会に使える会場一覧 (会議室など) - snow-bellの日記

    実はあまり書く気がなかったエントリーなのですが関西では勉強会も増えて 会場探しにも一苦労するようになりました なので私が知ってる限りの会場の情報をまとめてみようと思います <大阪市内・ネット環境がある会場> 大阪産業創造館 (最寄り駅:大阪市営地下 堺筋線 鉄堺筋町駅) http://shisetsu.sansokan.jp/index.html (各部屋に1個有線LAN差し込み口が用意されてる) ここは常に予約がいっぱいのため2〜3ヶ月前からの予約をお勧めします 会場費が先払いなのでプール金がない勉強会には少し負担が大きいかもしれません 扇町インキュベーションプラザ (最寄り駅:大阪市営地下鉄 堺筋線 扇町駅) http://www.mebic.com/ (各部屋に1個有線LAN差し込み口が用意されてる) 土曜・日曜・祝日は使えませんが比較的予約がすぐ取れます (使用料当日支払い) エ

    大阪&大阪府下で勉強会に使える会場一覧 (会議室など) - snow-bellの日記
    cactusman
    cactusman 2008/05/09
    すばらしい!
  • デスマーチが起きる理由 - 3つの指標

    Your system administrator has blocked your computer or device. Please contact the system administrator.

    cactusman
    cactusman 2008/05/06
    『書きかけ・未テストのコードを減らし(在庫削減)、分納などで納品を早める(スループット増加)』
  • 極力ユニットテストを書かずに品質を確保する方法 - ひがやすを技術ブログ

    今日のテストサミットで、できるだけユニットテストを書かずに品質を確保する方法について、ディスカッションします。 やり方を簡単に紹介すると、最初は、Programming First Developmentで、機能を実装して、ユーザに動かしてもらうってことをユーザの要件が固まるまで繰り返します。このときは、基的にユニットテストは書きません。動かすことに集中します。 ユーザの要件が固まった(実装がほとんど終わった)ら、保守のためのドキュメントの一つとして、テストシナリオ(ユースケーステスト)を作って、テストを行います。そのテスト中に、バグが発見されたらその周辺のユニットテストを書いていきます。 これは、「バグは偏在(偏って存在)する」という特徴を利用して、一通り動かした後に見つかったバグの近くをテストしておけば、主なバグはつぶれるだろうという考えです。 これまでは、「ユニットテストは、できる

    極力ユニットテストを書かずに品質を確保する方法 - ひがやすを技術ブログ
    cactusman
    cactusman 2008/04/23
    UnitTest賛成派否定派との平行線の状態をなんとか交差させる方法。
  • アニメに学べ - ここにはいないボクへの伝言

    ご連絡はm-tam(at)mbp.nifty.comへ。Gmailが捨ててしまわないように気をつけてどうぞ 大塚康夫さんのインタビューの感想でも書いたことなんですが、システム開発(SI)の仕事とアニメ製作の仕事というのは似ています。もしかしたら、どんなプロジェクトでもある程度は共通した側面があるのかも知れませんが、私が聞いたことがあるのはこの2つの業界だけなのです(笑) さて、非人間的な労働が日常化し、低賃金で搾取され、労働は海外へ流出し、スケジュール管理が崩壊し、若者が次々に辞めている両業界(言っててつらくなってくるな)ですが、それでもアニメは毎週放送されていて、SIプロジェクトはサービスインがディレイしまくってます。 一つの理由には、システム開発の場合は横にクライアントがいるので簡単にダメだし、手直し、修正、ディレイの判断が出せてしまうという点があります。 ですが、システム開発のプロ

    アニメに学べ - ここにはいないボクへの伝言
    cactusman
    cactusman 2008/04/16
    システム開発はもっと他業種から勉強すべき。特にアニメや映画は共通点が多い。
  • ThreadとHashMapに潜む無限回廊は実に面白い? (1/3) - @IT

    ThreadとHashMapに潜む無限回廊は実に面白い?:現場から学ぶWebアプリ開発のトラブルハック(10)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) マルチスレッドのトラブルハックはさっぱり分からない… 対処が難しいトラブルといえば、GC(ガベージ・コレクション)とマルチスレッド処理に起因することが多い。 前々回(「肥え続けるTomcatと胃を痛めるトラブルハッカー 」)と前回(「JavaのGC頻度に惑わされた年末年始の苦いメモリ」)の2回にわたってGC、特にメモリ周りのトラブルを取り上げた。そこで今回は、マルチスレッド処理のトラブルの1つ、「レースコンディション(競合状態)

    ThreadとHashMapに潜む無限回廊は実に面白い? (1/3) - @IT
  • ユメのチカラ: ソースコードの読み方

    ソフトウェア工学の標準的なカリキュラムにソースコードの読み方というのがあるのかないのか知らないが、プログラマとして最も重要な資質の一つにコードの読解力というのがある。 ついでに言えば、大学や専門学校であまり教えられているとはいえないけど、実践では常に必要とされているものとして、テストの方法論、デバッグの方法論、性能向上の方法論、メモリなど各種資源の削減方法論などなどがある。国際化、移植性なども重要な単元であるがソフトウェア工学の中で教授されていると言う話はあまり聞かない。コードのハック一般についてどこかで議論されているのだろうか。経団連あたりで議論しているのだろうか? 閑話休題。 ソースコードの読み方ということで、最近では「コード・リーディング」というそのものずばりの教科書も出ているので状況は好転しつつある。コードの読み方はオープンソースの時代になり、間違いなく広く情報を共有できるようにな

  • ユメのチカラ: デバッグ方法論

    実践的なデバッグ方法論(デバッグの仕方、事例研究)も強く求められている。デバッガーというツール依存のTipsではなく、ソフトウェアのデバッグというプロセスそのものの形式化である。 人々は誰に教わるでもなく自分のデバッグのスタイルを持っている。自分なりな定石を獲得している。しかしそれを明示化して人に伝えようと試みる人は少ない。伝承がまったく不可能なような議論も少なくない。 わたしはオープンソースの時代こそデバッグの方法論を広く共有できるチャンスに満ちた時代だと考えている。いくつか事例を紹介しつつ解説する。 優れたプログラマは優れたデバッグ方法論を持つ。そのデバッグ方法論をぜひ共有化したい。そのためには情報公開が要である。 デバッグとはプログラムの不具合を修正するプロセスである。テストなどによって発見された何らかの不具合を期待する結果に修正する作業である。テストとデバッグの区別が十分ついていな