タグ

programmingに関するiga_kのブックマーク (63)

  • サディストのための Ruby メトリクス計測入門 - たかみやの日記

    ふぬけたコードをきたえるRuby で書かれたソースコードのまずい部分をメトリクス計測ツール (reek, roodi, flog, flay) を使って機械的に発見しましょうというお話です。それぞれのツールは次のことをチェックしてくれます。 reek: リファクタリングできそうな部分を発見 roodi: (reek とは別の指標で) リファクタリングできそうな部分を発見 flog: 複雑すぎる部分を発見 flay: 重複している部分を発見ポイントは、さまざまなチェックを rake コマンド一発でビシッとできるようにすることです。こうすることによって、その日の気分に左右されることなく一貫した厳しいチェックが繰り返しできるようになります。なおこの日記は、この記事を一部参考に書きました。ありがとうございます。 使い方コマンド一発で計測できます。 % rake quality もしコードにまずい部

  • d.y.d. 2倍だけじゃない

    10:01 10/07/20 それでも2倍だ 先日のvectorの伸長度合いの記事に関して 当に1.5倍のほうがメモリ効率がよいのか という反応をいただきました。とても興味深い。みんな読みましょう。 自分の理解メモ: 「再利用ができるから嬉しい」等の議論をするなら、 今までに確保したメモリ (1 + r^1 + ... + r^k) のうち、 有効に使えてるメモリ r^{k-1} (バッファ拡大直後) や r^k (次のバッファ拡大直前) の割合で評価してみようじゃないかという。 まず簡単のために再利用をしない場合を考えると、この割合はそれぞれ (r-1)/r^2、 (r-1)/r になります(途中計算略)。 この利用率が最悪になる瞬間 (r-1)/r^2 を最善にしよう、 という一つの指標で考えてみると、式を微分なりなんなりしてみると r = 2 で最大(25%)となることがわかります

    iga_k
    iga_k 2010/07/06
    Array拡張時1.5倍の秘密
  • TPCI - TIOBE Programming Community Index

    Let op! Internet Explorer wordt niet meer ondersteund. Hierdoor kan de website mogelijk niet goed functioneren, gebruik een alternatieve browser om optimaal gebruik te maken van deze website. Klik hier om een alternatieve browser te downloaden. Home » TIOBE Index TIOBE Index for April 2024 April Headline: Is PHP losing its mojo? PHP hit its lowest position ever in the TIOBE index this month. When

    iga_k
    iga_k 2010/05/23
    Delphiって人気なんだね。
  • Cheat-Sheets.org

    All cheat sheets, round-ups, quick reference cards, quick reference guides and quick reference sheets in one page. The only one you need.

    iga_k
    iga_k 2010/02/21
    各種言語のcheatsheetリンク集。すごい。
  • 第1回 Hudsonの導入 | gihyo.jp

    継続的インテグレーションとは Hudsonの具体的な紹介に入る前に、まず簡単に「継続的インテグレーション」(⁠Continuous Integration、以下CI)のおさらいをしましょう。CIは、Extreme Programmingに端を発し、Martin Fowlerによって広められた概念で、狭義には、別々に開発された部品を持ち寄ってお互いの動作を検証する「統合テスト」を早い段階から恒常的に行うことを指します。この当初の概念には必ずしも統合テストの自動化という考え方は含まれていませんでしたが、最近では、CIは単に統合テストだけではなく、広くビルド及びテスト全般を恒常的に行うことを指すようになり、またこれを現実的な工数で実現するための必須の手段として、ビルド・テストの工程を極力自動化する、という事が重要なポイントの一つになってきました。 この考え方の背景の一つには、コンピュータの高性能

    第1回 Hudsonの導入 | gihyo.jp
    iga_k
    iga_k 2008/10/20
    ○○をトリガーに○○
  • lucille development blog » Blog Archive » LLVM および自動最適化の勉強会を開きたいなと考えています

    (追記: LLVM 勉強会,やります) LLVM の勉強会、また自動最適化の勉強会みたいなのを開こうかなぁと考えています. LLVM 勉強会 LLVM については、まずはなんだかみんなまだよく知らないようだしちょっと誤解しているみたいなので, これを機会にしっかりと知るといいんじゃないかな、というのがある。 (ただ、私は LLVM コミッタとかではなくて、外野にいる一ユーザです) 加えて、私としては自動最適化ともからんでくるけど実行時最適化(JIT, partial evaluation)を 自分のプログラムに取り入れたいときに LLVM コンパイラインフラがすでにある物としては practical で十分な feature を持っているので使っていこうかなと思っていて、 そのためにそこらへんをもう少しよく知って共有したいから. 次に自動最適化の勉強会. もう手作業で最適化の時代

    iga_k
    iga_k 2008/07/14
    面白そう!だけどまったく知らないので講義形式じゃないとつらいなぁ。
  • グーグル、また基盤技術の1つをオープンソース化 − @IT

    2008/07/08 グーグルは7月7日、同社の基盤を支える要素技術の1つ「Protocol Buffers」をオープンソースで公開した。Protocol Buffersはさまざまな構造化データを言語に非依存な形で定義し、利用するためのソフトウェア。JavaC++Pythonで利用でき、定義したデータは各言語のクラスライブラリにコンパイルされるという。例えば、いくつかの32ビット整数やストリングからなるデータ型を「.proto」というファイルで定義しておけば、このデータ型で定義されるメッセージストリームを、各言語から利用できるという。 オープンソース化を担当した同社ソフトウェアエンジニアのケントン・バーダ(Kenton Varda)氏によれば、Protocol Buffersは、XMLやIDLで満たせないニーズを満たすものだという。「XMLは優れているが、グーグルで扱うデータ量はXML

    iga_k
    iga_k 2008/07/10
    YAMLとかと比べてどうだろ?
  • 変電工 - Google C++スタイルガイド日本語訳

    国产亚洲欧美日韩在线一区二区三,AV蜜桃,中文乱码人系列一区二区,乱中年女人伦视频国产,男女性高爱潮是免费国产,国产成人精品三上悠亚久久,果冻传媒AⅤ毛片无码

    iga_k
    iga_k 2008/07/03
    参考にしよ。
  • Animated Sorting Algorithms

    Discussion These pages show 8 different sorting algorithms on 4 different initial conditions. These visualizations are intended to: Show how each algorithm operates. Show that there is no best sorting algorithm. Show the advantages and disadvantages of each algorithm. Show that worse-case asymptotic behavior is not the deciding factor in choosing an algorithm. Show that the initial condition (inp

    iga_k
    iga_k 2008/06/28
    ソートアルゴリズム動作の見える化。素晴らしいページだ。
  • ちょっと草植えときますね型言語 Grass

    _, ._ ( ・ω・) んも〜 ○={=}〇, |:::::::::\, ', ´ 、、、、し 、、、(((.@)wvwwWWwvwwWwwvwwwwWWWwwWw wWWWWWWwwwwWwwvwWWwWwwvwWWW 作ってみたwwwww とりあえず公開wwwwwwwっうぇ 日語版はてきとーです.きっと英語版のほうが詳しいです. 実装 インタプリタ Interpreter written in Standard ML (accept US-ASCII only) by UENO Katsuhiro Interpreter written in Ruby by UENO Katsuhiro Interpreter written in ニコスクリプト Interpreter written in Prolog by zick Interpreter written in Java b

    iga_k
    iga_k 2008/06/09
    スゴス!!wWwwWwWWw
  • 言語のGC機能と参照カウント (前編) - moriyoshiの日記

    たまにはちゃんと書いたほうがいいかなと思って書いてみる。 あらまし 原始的な参照カウントベースのガーベジコレクションは、循環参照が発生すると、その参照に含まれるオブジェクトを回収できないという厄介な問題を抱えている。循環参照とは、1つ以上のオブジェクトが環状の参照関係を形成している状態のことで、このような参照を持つオブジェクトは、やがてルート (ある時点で言語ランタイムが管理しているすべてのスコープと考えてもいい) から辿りつけなくなって、解放されずにリークしてしまう。 この問題はいろんな LL 言語に見られる。 Perl の場合 use Devel::Peek qw(Dump); sub make_circular { my $foo = {}; my $bar = {}; my $baz = {}; $foo->{'bar'} = $bar; $bar->{'baz'} = $baz;

    言語のGC機能と参照カウント (前編) - moriyoshiの日記
  • オブジェクト指向プログラムでgetter/setterメソッドを使わなければならない10の理由

    オブジェクト指向プログラムで getter/setterメソッドを使わなければならない 10の理由 福盛 秀雄 fukumori at m.ieice.org JavaC++などのオブジェクト指向言語でプログラムを書いているときに、単純なメンバ変数を参照したり操作するために anObject.getX() [以後これをgetterメソッドと呼ぶ] とか anotherObject.setY(y) [以後これをsetterメソッドと呼ぶ] と書くのはなぜだろうと思ったことはないだろうか? int型の変数ひとつを操作するのになぜわざわざメソッドを定義するのだろう? 単純に代入を使えばいいじゃないか? この文章はそんなあなた(かつての僕も含む)が、getter/setterメソッドを使うべきである理由についてまとめたものである。 ということで早速論へ。 1. クラス内部のデータ表現を変えた場

    iga_k
    iga_k 2008/04/07
    きれいにまとめてある
  • 八角研究所 : Flashで覚えるアセンブラ・スタックマシン入門(Flasm)(1) - Flashのアセンブラ Flasm を使ってみよう

    Flashで覚えるアセンブラ・スタックマシン入門(Flasm)(1) - Flashのアセンブラ Flasm を使ってみよう

  • ちょっとしたコードの共有に便利そうな『TextSnip』 | 100SHIKI.COM

    エンジニアだったら「このコードを見て欲しいのだけど・・・」というシーンはよくある。そういうときはメールやIMを使うときが多いが、それだとインデントが崩れてどうにも見づらい。 そこで使えそうなのがTextSnipだ。このサイトで他の人に見せたいコードを貼り付けると表示用のURLを生成してくれる。 このURLを開けばきちんとフォーマットされたコードを見る事ができ、なおかつきちんと関数名などが色分けされた状態になっている。 行番号もついてくるので、そのページを見ながら「12行目のコードだけどさ・・・」といった議論もできて便利そうだ。 エンジニア仕事をする人なら知っておいても悪くないですね。あ、ただ日語は文字化けするので注意が必要ではある。

    ちょっとしたコードの共有に便利そうな『TextSnip』 | 100SHIKI.COM
    iga_k
    iga_k 2008/03/11
    コードをブログに表示
  • 最もタメになる「初心者用言語」は Brainf*ck! - TAKESAKOのはてな出張所

    まず、世界中のプログラマが誰でも一番最初に作るであろう「Hello, world!」を標準出力に表示するプログラムを書いてみましょう。 C言語 2006-12-19 char main[]= "QVWUZ%@@@@% P^JJJJJJJJJJJJJJJJJJJJJJJJ3B PVXH, PTXHHHH!0Z_18R_)8)8)8)8" ")8)8)8)8WV_38WX_)8)8)8@)8@@@@)8)8)8T_VXOOOOOOOOOOOOOOOOOOOOOOOOWYVX!75Hel" "lVP^17^GGGGVX!75o, wVP^17^GGGGVX!75orldVP^17^GGGGVX!75aJ@@5@@@@VP^17^VXP[" "PZBBBBBBBBBBBBBBC@@@@AHI@AHI@AHI@AHI@AHI@AHI@j__^Y`"; このプログラムを hello.c という名前で保

    最もタメになる「初心者用言語」は Brainf*ck! - TAKESAKOのはてな出張所
    iga_k
    iga_k 2008/02/05
    おもしろす!
  • 並列プログラムの作り方メモ

    「並列プログラムの作り方」を西那須野町図書館経由宇都宮市立図書館より借りました。返す前にメモを残そうと思います。(その後、結局手元に置きたくなって購入しました。) Rinda2 How to write Parallel Programs - A First Course 並列プログラムの作り方 N. Carriero/D.Gelernter 共立出版 読んだことないけど気になる おすすめがあったら教えて下さいな。 並列計算法入門 Linuxで並列処理をしよう―SCoreで作るスーパーコンピュータ 並列プログラミング入門―ネットワーク結合UNIXマシンによる並列処理 PCクラスタ構築法―Linuxによるベオウルフ・システム 協調作業のための基パラダイム パラダイム 結果並列法 (result parallelism) 手順並列法 (agenda parallelism) 専門家並列法

  • Practice of Programming, The | InformIT

    By Brian W. Kernighan, Rob Pike Published Feb 4, 1999 by Addison-Wesley Professional. Part of the Addison-Wesley Professional Computing Series series. Book + eBook Bundle Your Price: $56.09 List Price: $95.98 We're temporarily out of stock, but order now and we'll send it to you later. Includes EPUB and PDF About eBook Formats This eBook includes the following formats, accessible from your Account

    iga_k
    iga_k 2007/10/14
    ベアプロ原文
  • まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro

    プログラムの高速化はプログラマにとって永遠の課題です。しかし,そこには知られざる暗黒面が隠れています。そもそも高速化に意味があるのかを調べなければなりません。次に,どの部分をどの程度高速化するのかが重要です。アルゴリズムの効率にも目配りが必要です。 コンピュータの処理速度は驚くべき勢いで向上しています。現在私たちが使っているパソコンは一昔前のスーパーコンピュータをしのぐ性能を備えていますし,半世紀前に登場したばかりの計算機と比較すると数十万倍の性能に相当します。 このように高速なコンピュータを持っているにもかかわらず,人間の欲望は限りがないものです。プログラムの実行速度はプログラマにとっての永遠の課題のようです。プログラムを高速化していると,「そんなに急いでどこに行く」という気になることもあります。 今回は,プログラムの高速化にまつわるさまざまな「秘密」と「限界」,そして「戦略」について解

    まつもと直伝 プログラミングのオキテ 第13回 プログラムを高速化する:ITpro
  • http://bearmini.net/blog/View.aspx?bid=1&aid=97

    iga_k
    iga_k 2007/08/30
    コーディングスタイル
  • http://bearmini.net/blog/View.aspx?bid=1&aid=73

    

    iga_k
    iga_k 2007/06/02
    興味深い考察。