タグ

Programmingとprogrammingに関するcoppieeeのブックマーク (303)

  • プログラミングの勉強を始めて1年間で買ったもの - Akinekoの日記

    今月がちょうどプログラミングの勉強を始めてから約1年になるわけなのですが、そのキリとしてこの1年間で買ったを自己確認も兼ねてまとめようと思います。 あと1年間勉強した感想とかも書こうかと。 先頭に付けてる印は下記の通りの意味となります。 ☆:読了 ○:途中まで読んだ等 □:頂き物 Java 入門書 ☆明解Java 入門編 ☆解きながら学ぶJava 入門編 ☆改訂第2版 Java言語プログラミングレッスン (上) ☆改訂第2版 Java言語プログラミングレッスン (下) 言語の深い知識とか ○プログラミング言語Java (The Java Series) ○Effective Java 第2版 (The Java Series) ☆Java並行処理プログラミング ―その「基盤」と「最新API」を究める― エンジニアのためのJavadoc再入門講座 現場で使えるAPI仕様書の作り方 実装パタ

    プログラミングの勉強を始めて1年間で買ったもの - Akinekoの日記
    coppieee
    coppieee 2010/02/22
    すっげーおおい
  • Twitterのクジラ解剖学、あるいは彼らがいかにサーバの処理能力を向上させたか

    Twitterを利用していると、ときどきクジラの絵の画面が表示されることがあります。これはTwitterの処理能力がパンクして一時的に利用不可になったときに表示されるお馴染みの画面。 2月9日にTwitter Engineeringブログにポストされたエントリ「The Anatomy of a Whale」(クジラの解剖学)では、Twitterエンジニアたちがこのクジラの内部に分け入ってどのようにTwitterサーバの処理能力を向上させたのか、という話が詳しく語られています。 彼らが行ったのは、まず詳細なデータを取得して原因がどの辺にあるのかを推測すること。そこから多数の無駄な処理を発見し、ソースコードの修正による性能の向上に成功します。 元記事は非常に長いエントリになっていますが、問題の調査から解決に至るアプローチについて多くのエンジニアの方の参考になりそうな内容が含まれていますし、T

    Twitterのクジラ解剖学、あるいは彼らがいかにサーバの処理能力を向上させたか
  • ロートルの嘆き、アジャイル開発って何 - 未来のいつか/hyoshiokの日記

    20数年前に大学を卒業しプログラマになって、この変化のとっても早い業界でまだ禄を得ている。最近でこそコードを書くことはないが(今でも職業としてコードを書きたいと強く思っている)、それでも、ソフトウェア開発について20数年前に得た知識、経験、スキルが役に立っているように思える。 日進月歩で日々新しいバズワードが登場し、若い人たちはそれをフォローするのにひーひー言っている。クラウドだアジャイル開発だなんだかんだ。 プログラマの一日は、会社に来て、テストを書いて、テストをして、不具合があればコードを修正し、またテストをして、問題がなければコード管理システムにチェックインする。その作業を淡々と日々こなす。この日常の流れというのは、使う道具立てこそ変わったとしても、基的に変化がないように思える。コードを書くのは20数年前も今もプログラマだし、テストを書くのもそうだし、テストを自動化することは20数

    ロートルの嘆き、アジャイル開発って何 - 未来のいつか/hyoshiokの日記
  • 2010-02-14 - 未来のいつか/hyoshiokの日記

    例えば、次の言葉の意味を知りたい、聞いたことがあるけどよく分かっていないプログラマにとって、お勧めの書籍だ。Unicode/UTF-8/UTF-16/USC-2/JIS X0208/JIS X0212/JIS X0213/SJIS/EUC-JP/CP932/ISO-2022-JP/ASCII/Latin-1/ISO 10646/ISO 8859-1/サロゲートペア/文字化け/機種依存文字/半角カナ/絵文字… JIS X0208やJIS X0213の解説などは圧巻である。書籍にはWebにない利点がある。Webには即時性があるが、文字コードの解説においては、即時性はそれほど求められない。字体ないし字形の差異についてWebではその字体ないし字形がなければ表現しようがないが、書籍であれば細部までこだわって表現できる。 例えば、包摂された「辻」という字の一点しんにょうと二点しんにょうの字体の差はWe

    2010-02-14 - 未来のいつか/hyoshiokの日記
  • そろそろUnicodeについて一言いっておくか - 未来のいつか/hyoshiokの日記

    文字コードの標準化について日記を書いたのだが、内容がいまいちだったのでボツにして気を取り直してUnicodeについて一言いっておくことにする。先日、といっても昨年(2008年)の10月なんだけど、その中でちょと文字コードの標準化について話をしている。*1 もう1つ自分の経験としてあるのが、漢字の文字コードがあるんですけど、番号で言うとJIS X 0208とか0212とか規格の番号で皆言うわけなんですけど、実は1988年にその日語の文字コードの改正の委員会にいたんですね。 その当時、私は 30歳ぐらいなんですけど、「富士通」とか「日立」とか「NEC」の部長さんぐらいの偉い人たちが来てて、私なんか外資系で且つ30前後のぺーぺーだから、全然格下なんですよ。 そういうところで議論の主軸を担ってるのは、「富士通」「日立」「NEC」「日IBM」「東芝」「沖」、外資でいえば「ユニシス」とかの錚々たる

    そろそろUnicodeについて一言いっておくか - 未来のいつか/hyoshiokの日記
  • 退職したSEだけどなんか質問ある?

    1 名前:以下、名無しにかわりましてVIPがお送りします:2010/02/12(金) 12:56:41.29 ID:nVm0xbnt0 無職歴1年だけど、特定されない程度に答えるよ 5 名前:以下、名無しにかわりましてVIPがお送りします:2010/02/12(金) 12:58:52.60 ID:8KWqyLR50 最高年収は? >>5 400万程度 まぁまだ若造だったし 161 名前:以下、名無しにかわりましてVIPがお送りします:2010/02/12(金) 20:35:11.72 ID:JL2mEh7aP 1さんは理系ですか? >>161 普通高校出て、専門で2年だけPGやってからの就職だから線引き難しいけど 一応文系です 9 名前:以下、名無しにかわりましてVIPがお送りします:2010/02/12(金) 12:59:57.34 ID:3aze5HBc0 デスマーチの実体 >>9 他

    coppieee
    coppieee 2010/02/14
    Perlがおススメで、Javaの市場が少ないって一体何年前の話だよ!!
  • cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成

    cmd.exe の引数の扱いがあまりにもカオスだったのでちょっと頑張って調べてみた。 来ならここは公式の資料に当たるのが正しいアプローチだと思うけど、どうしても公式の資料が見つからなかったので、色々試して推測してみることに。 断片的な資料は見付けたけど、完全じゃない。一応URL貼っておく。Windows Server 2003 のヘルプだけど、恐らくそんなに変わらないと思う。 コマンド シェルの概要 コマンド リダイレクト演算子を使用する なので、以下で述べる内容は間違いを含む可能性があります。というか正確さは一切保証されないのであしからず。 検証方法 以下のような引数をただ表示するだけの簡単な C のプログラムを用意した。仮に args.exe とでもしておく。 #include <stdio.h> int main(int argc, char const* argv[]) { in

    cmd.exe のコマンドラインの仕様を解析してみた - 永遠に未完成
  • Logo基礎文法最速マスター :接触編 - みねこあ

    流行のアレをLogoで。Smalltalk はなんだか他の方とかぶりそうだったので、斜め上を狙ってみました。 接触編 と 発動編の 二部構成でお送りします。接触編は、変態編もとい、概念編です。他のLisp言語をある程度知っている人はこれを読めば Logo の基礎をマスターして Logo 処理系を書くことができるようになります。・・たぶん。 Logo はカッコのない Lisp まず前提知識として、Logo は Lisp です。プログラムは「語(word、Lispのアトム)」と「リスト(list)」から成ります。 Logo と Lisp の最大の違いは、カッコが無いことです。例えば 以下の S式 (F 'x (G 'y 'z)) は Logo では、 F "x G "y "zと表現します。(Logo のクォートは 「"」 です) Lisp風 S式からカッコを取り除くルールは、 クォートされてい

    Logo基礎文法最速マスター :接触編 - みねこあ
  • ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記

    ラムダ計算は, 多くのプログラミング言語, とくに関数型言語の原形になっています. ラムダ計算について理解しておくことは, 多くのプログラミング言語の習得に役立つでしょう. ラムダ計算はチューリング完全で, 計算能力としてはふつうのプログラミング言語と同じです. ラムダ計算で計算を書く訓練をしておくことは, 任意の計算を関数のみを使って(他の制御構文を用いずに)書くときに役立ちます. ふつうに書いたら煩雑な処理を, 関数型言語のやり方で書くとすっきりすることが多々あり, コードを自由自在に書くためには必須の考え方と言えるでしょう. 項 ラムダ計算の式を項(term)と言います. 項は変数, 抽象, 適用のいずれかです. 変数 変数(variable)はふつう1文字で書きます. 変数には関数内の束縛変数(bound variable)か自由変数(free variable)かという区別があり

    ラムダ計算基礎文法最速マスター - 貳佰伍拾陸夜日記
    coppieee
    coppieee 2010/02/08
    ラムダぁあああああ!
  • Y コンビネータって何? - IT戦記

    このエントリの 親友へ。ブログを書こう。 - IT戦記 y がブログを始めたみたいなので、読んでみた。 で、最新のエントリを読んでみたら、 Y コンビネータというものについて書いてあったので、 Y Combinatorが凄すぎる! - yuji1982の日記 Y コンビネータって何ってところから、自分でもいろいろ考えてみた。 結局なんなのかさっぱり分からなかったんですが、自分が考えたことをまとめておく まず、フィボナッチ数を求める fib を定義する var fib = function(n){ return (n <= 2) ? 1 : (arguments.callee(n-1) + arguments.callee(n-2)); }; fib(10); おお! JS すげー!名前は n しか使ってねーよ! めでたし、めでたし。。。。じゃなくて! JS が素晴らし過ぎて話が終わってしま

    Y コンビネータって何? - IT戦記
  • Smalltalk基礎文法最速マスター(Squeak版) - Smalltalkのtは小文字です

    はてな的プログラミング言語人気ランキング - Life like a clown 流行りには乗っておくのが吉…と思いつつ、なかなか書き進められないので、とりあえず、クラスやメソッド定義より前のごく基礎的な部分について。思いついたときに断わりなく追記・修正することがありますので、どうぞあしからず。(さっそくですが、タイトルを他の言語のものにあわせて変更しました) ■基的な考え方 Smalltalk では「オブジェクトに対してメッセージを送る」という考え方のみでコードを書きます。「メッセージ式」と呼ばれる式のみを用います。 ▼メッセージ式 メッセージ式の基文法です。 receiver message ▼カスケード 式の終わりにセミコロン「;」を置くと、直前のメッセージのレシーバーに対して、続くメッセージを畳みかけるようにして送ることができます。これを「カスケード」と呼びます。 receiv

    Smalltalk基礎文法最速マスター(Squeak版) - Smalltalkのtは小文字です
    coppieee
    coppieee 2010/02/08
    なんかかっこいい。
  • Javaバイトコードの読み方 - プログラマーの脳みそ

    Javaのデバッグをしていて、ステップ実行中にステップインを繰り返したらソースコードのないところに行き当たったことがあるだろう。あるいはEclipseでF3キーでクラスやメソッド・フィールドの宣言元を辿っていってソースコードのないところに行き当たったことがあるだろう。 Eclipseの場合、"Class File Editor"というものが開く。そこにはJavaのバイトコードのニーモニックがズラズラと並んでいて、「これは読めないや、ワケが分からない」と投げ出してしまったりしていないだろうか。 怖がることはない。ちょっとコツを掴めばすぐに読めるようになる。 Class File Editorの開き方 自前のJavaクラスの場合、ビルドして出来上がったclassファイルを開く必要がある。"Package Explorer"だとclassファイルは隠されていて見えないのでWindow -> Sh

    Javaバイトコードの読み方 - プログラマーの脳みそ
  • さあ、Yコンビネータ(不動点演算子)を使おう! - よくわかりません

    前回、おとうさんにもわかるYコンビネータ!(絵解き解説編) - よくわかりませんというエントリで、Yコンビネータ(不動点演算子)と再帰の絵解き解説をしました。 Yコンビネータ自身は、結局のところ再帰を産み出してくれるだけです。関数(正確にはλという単純な文字列変換ルール)だけで出来て、プログラミングに関するいろんな原理の研究を可能にするのが凄い訳です。その辺のさわりを、きしださんが解説されています。しかし、単なる再帰なら、実際のプログラミングではYコンビネータなんて使わなくても出来ます。 じゃあ、Yコンビネータとか不動点とかは、偉い学者さんとかが研究に使えばいいもので、普通のプログラマには何の意味もないモノなのでしょうか? というわけで、今回はポジティブに、Yコンビネータや不動点で出てくる考え方を、理論だけじゃなく、実際のプログラミングに応用する例を見てみましょう。 今回、プログラムの例を

    coppieee
    coppieee 2010/02/06
    メモ化の話。理解できるまでなんどでも読む。
  • JavaScript変態文法最速マスター - 葉っぱ日記

    Java変態文法最速マスター - プログラマーの脳みそをリスペクト。 JavaScriptの変態文法・技法一覧です。あんまり使わないけど、知ってるとXSSとか攻撃したいのにWAFに妨害されるなど、いろいろ制約があるという場合に便利。 文字列の生成 引用符を使わずにさくっと文字列を作る。fromCharCode とか使ってもいいけどめんどくさいので、正規表現やE4Xを利用。 alert( /string/.source ); alert( <>string</> ) 空白文字を使わず記述 文脈上、スペースを書きたいけれどいろいろ制約があって書けない場合にはコメントで代替。実行するコードを作り上げてevalしてもいいけど大袈裟なので。 var/**/x=1; */ を含むコードブロックをコメントアウト コードの塊りをコメントアウトしようと思って /* */ で囲むと、コード内に string.

    JavaScript変態文法最速マスター - 葉っぱ日記
    coppieee
    coppieee 2010/02/03
    タンポポをのせる簡単なお仕事
  • Java変態文法最速マスター - プログラマーの脳みそ

    Java基礎文法最速マスター - いろいろ解析日記をリスペクト。 Javaの変態文法・技法一覧です。Javaの基礎をある程度知っている人はこれを読めばJavaの変態をマスターしてJavaを書くことができるようになっています。簡易リファレンスとしても利用できると思いますので、これは足りないと思うものがあれば教えてください。 1.基礎 エンクロージング型内部classの作成 外部classのインスタンスに紐付くインスタンスを生成します。外部クラスのインスタンス - 内部クラスのインスタンス間に、クラス - インスタンスのような関係を持たせることができます。 public class Outer { public class Inner { } } というようなクラスを作った場合、 Outer o = new Outer(); Inner i = o.new Inner(); となります。new

    Java変態文法最速マスター - プログラマーの脳みそ
  • はてな的プログラミング言語人気ランキング - Cube Lilac

    この記事で更新していた「基礎文法最速マスター」のまとめは,現在,プログラミング言語「基礎文法最速マスター」ランキング にて更新しています.この記事の更新は停止していますので,最新の結果はそちらを参照下さい. ここ最近,「○○○ 基礎文法最速マスター」と言う記事が流行っていたようです.この各記事の被ブクマ数を見ていると,プログラミング言語毎の(はてな界隈での)人気がよく表れているなーと思ったので被ブクマ数の多い順に列挙してみました*1.尚,調査する際には Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜 の「このエントリーを含むエントリー」と 基礎文法最速マスターぞくぞくキターーー! - 燈明日記 を利用しました. JavaScript 基礎文法最速マスター - なんとなく日記 PHP 基礎文法最速マスター - Shin x blog Perl 基礎文法最速

    はてな的プログラミング言語人気ランキング - Cube Lilac
    coppieee
    coppieee 2010/02/02
    エントリーの質にも依存しそうだけど。
  • Emacs Lisp基礎文法最速マスター - http://rubikitch.com/に移転しました

    基礎文法最速マスターブームにのっかってみる。Ruby基礎文法最速マスターをだいたいEmacs Lisp(elisp)に置き換えてみる。 Emacs LispはEmacsで使われているLisp方言のひとつだ。他の言語をある程度知っている人はこれを読めばEmacs Lispの基礎をマスターしてEmacs Lispを書くことができるようになるかもしれない。無保証ではあるが。 ある程度はCommon Lispにも応用できると思うよ。 更新情報 [2010/02/03] 注釈の誤りを修正。 let*について加筆。 基礎 対話的にEmacs Lisp式を評価する Emacsを起動したときに生成されている、スクラッチバッファ(*scratch*)を使うと、Emacs Lispの式を簡単に評価することができる。M-Tabで補完できるぞ。 式を書いたらC-jを押すと、式の値が出てくるぞ。 (+ 1 3) 4

    Emacs Lisp基礎文法最速マスター - http://rubikitch.com/に移転しました
  • 読書メモ+tips+日記:[Flash] ActionScript 3.0 基礎文法最速マスター

    巷で「○○基礎文法最速マスター」というのが流行っているので真似てみた。 (というノリで書くのをいちどやってみたかったんだよねー) というわけで。 ・ Perl基礎文法最速マスター - Perl入門〜サンプルコードによるPerl入門〜 ・ Ruby基礎文法最速マスター - Route 477 ・ PHP基礎文法最速マスター - Shin x blog ・ Python基礎文法最速マスター - D++のはまり日誌 ・ Brainf*ck基礎文法最速マスター - 医者を志すを応援する夫の日記 ・ Haskell基礎文法最速マスター - think and error ・ JavaScript基礎文法最速マスター - なんとなく日記 これらを真似て、ActionScript 3.0 版を作ってみました。 ActionScript 3.0 の文法一覧です。他の言語をある程度知

    coppieee
    coppieee 2010/02/02
    先こされた。暇があれば自分なりに書いてみよ。
  • Scala基礎文法最速マスター - ( ꒪⌓꒪) ゆるよろ日記

    面倒なのでここ見てください。 yuroyoro/scala-hackathon · GitHub Dropbox - 404

    Scala基礎文法最速マスター - ( ꒪⌓꒪) ゆるよろ日記
    coppieee
    coppieee 2010/02/01
    タイトルに釣られた。なんというボリューム、もとい手抜き。
  • RubyがPHPに勝つにはメソッド呼び出しのための新しい演算子が必要 - kなんとかの日記

    PHPerがRubyを触り始めて最初に不機嫌になるのは、空文字列が偽ではないことだ。つまり、PHPなら「if ($var)」で済むのが、Rubyだと「if !var.empty?」と書かなければならない。これでPHPerは不機嫌になる (まあ気持ちは分かる)。 if ($var) ... # PHP if !var.empty? ... # Rubyそれだけならいい。もし値がnilである可能性があるなら、Rubyでは「if var && !var.empty?」と書かなければいけない。この時点でPHPerは不機嫌どころかブチ切れる。なんでこんなに書かなきゃいけないんだ!? PHPなら「if ($var)」で済むのに!! SHIIIIT!! if ($var) ... # PHP if var && !var.empty? ... # Rubyここで、「空文字列が偽になるような言語仕様こそク

    RubyがPHPに勝つにはメソッド呼び出しのための新しい演算子が必要 - kなんとかの日記