タグ

関連タグで絞り込む (249)

タグの絞り込みを解除

CodeReadingに関するraimon49のブックマーク (220)

  • オワコンであるVectorとListの同期の話 - プログラマーの脳みそ

    JJUG Night Seminarへ行ってきました - 虎塚にあったjava.util.Vectorの話。 java.util.Vectorは随分前にオワコン化していて、今、新たにVectorを使ってコードを書く人がいたら優しく諌めてあげるべきシロモノ。 「VectorとArrayListだとArrayListの方が同期化されていなくて速いです!」と習った人も多いのではないかと。 public synchronized E get(int index) { if (index >= elementCount) throw new ArrayIndexOutOfBoundsException(index); return elementData(index); } これはJDK7u7のVectorのコードのうちget()の部分の抜粋なのだけど、synchronizedメソッドになってる。s

    オワコンであるVectorとListの同期の話 - プログラマーの脳みそ
  • ブラウザのしくみ: 最新ウェブブラウザの内部構造 - HTML5 Rocks

    Preface This comprehensive primer on the internal operations of WebKit and Gecko is the result of much research done by Israeli developer Tali Garsiel. Over a few years, she reviewed all the published data about browser internals and spent a lot of time reading web browser source code. She wrote: As a web developer, learning the internals of browser operations helps you make better decisions and k

    ブラウザのしくみ: 最新ウェブブラウザの内部構造 - HTML5 Rocks
    raimon49
    raimon49 2012/09/15
    レンダリングフロー、DOMツリーとスタイル解析、リフローの概要
  • 「いいから黙ってコメント書け」という話 - miauのブログ

    めずらしく釣りっぽいタイトルだけど、ちゃんと主張しておきたいので。 きっかけはこちらの記事。 極論すると、コメントが無いと読めないコードはダメ - かおるんダイアリー ここから色々リンクを辿ってみたけど、ほとんどの人が コメントを書かなくてもいいよう、十分明確なコードを書く 関数やメソッド名として切り出せば、その名称で示すことができるからコメントは要らない 処理からでは読み取れない情報(意図)や、複雑な処理のみ例外的にコメントを書く あたりに結論づけているのにちょっと危機感を覚えました。もちろん「コメントを書かなくても読み取れるようなコードを書く」というのはコーディングする上で大切なことだけど、じゃあ実際にコメントを書かなくてもいいのか、というと別問題でしょう。 私のスタンスは表題のとおり「いいから黙ってコメント書け」というもの。結論としては、 コードコメントに書くべきは「意図」 - プロ

    「いいから黙ってコメント書け」という話 - miauのブログ
    raimon49
    raimon49 2012/09/14
    良く分かる主張。きちんと意図を記述されたコメントは初めてコードを読む人の理解へのショートカットにもなる。イディオムにも流行り廃りはあるので、未来の自分に説明するつもりでコメント入れてる。
  • 2012 年 7 月 1 日のうるう秒挿入時に発生した Linux カーネルの不具合に関する情報

    更新履歴 2012-08-28: URL 公開 2012-08-29: futex、hrtimer、MySQL の発生条件、NTP SLEW モードに関する @odhrfm さんからの情報、キーワード更新、その他いろいろ細かい修正 2012-08-30: 参考リンク追加 2012-09-01: LKML まとめシートの thread#50 を追加 2012-09-03: SLES カーネルの更新情報、per-cpu についての記述、blockdiag によるブロック図を追加 2012-09-11: LKML まとめシートの thread#52, #53 を追加 2012-09-12: LKML まとめシートの thread#54 〜 #58 を追加 はじめに 日時間 2012 年 7 月 1 日 9:00 にうるう秒が挿入されましたが、その際 Linux カーネルに起因する不具合により、

  • Software Design 2012年9月号 | 技術評論社

    定価 1,341円(体1,219円+税10%) 発売日 2012.8.18[在庫なし] 判型 B5 頁数 184ページ 概要 第1特集 理解の壁を乗り越えるFinal Answer! C言語のポインタは必要ですか? C言語のプログラミングで誰しも最初にぶつかるのがポインタの壁です。うまく理解できなくても自分には必要がないもの、と通り過ぎていませんか? 今はスクリプト言語が便利な時代だから関係ないよね、Javaだってポインタはないから要らないよね、と自分を納得させていませんか? でも、理解できないことが、わかるようになると世界がいっきに広がります。まず基礎の基礎の復習をしましょう。そして機械語・アセンブリ言語まで視野を広げて、ポインタの概念をリセットして新しい視野を得ましょう。Linuxのソースコードに現れるポインタの使われ方を知り、最後にネットワークプログラミングでポインタが必須である理

    Software Design 2012年9月号 | 技術評論社
  • Sign in - Google Accounts

    Not your computer? Use a private browsing window to sign in. Learn more about using Guest mode

  • アンテナピクト問題・セルスタンバイ問題とは何か

    2013/9/25追記 アンテナピクト問題・セルスタンバイ問題を回避する事ができるSMS対応SIMの提供を始めます。 2013/11/6追記 この件についての追加の調査を行っています。Android・iOS・MVNOネットワーク (IIJmio meeting #1資料公開)セッション2も合わせてご覧下さい。 実はこの原稿、随分前から書き始めたのですが、色々あって塩漬けになっていました。正直に告白すると、調査が行き詰まったのです。状況証拠は押さえられたのですが、それが当に原因なのか、最終的なとこまでは突き止められませんでした。ただ、今でもこの現象は発生していますし、不思議に思われている方もいらっしゃるようですので、わかっている話だけでもまとめておこうと思います。 MVNO通信サービスだとアンテナが立たない? IIJの提供するIIJmio高速モバイル/Dを初めとして、MVNOの無線データ通

    アンテナピクト問題・セルスタンバイ問題とは何か
    raimon49
    raimon49 2012/08/09
    データ通信専用で提供されているSIMカードを挿して使った場合、一部の機種でPSが使えてCSが使えないときは異常だと判断され、バッテリ消費が早くなる。ドコモが提供するデータ通信SIMではCS許可されておりこの限りでない
  • いま読みたいRuby on Rails3アプリ 10選:Rails Hub情報局:エンジニアライフ

    ITエンジニア向けの質問・回答コミュニティ「QA@IT」で、「RSpec のテストがたくさんついたオープンソースの Rails3 アプリはあるでしょうか」という質問に対して回答したところ、少しはてブが付いたりしたようです。Railsに限らないかもしれませんが、ちょっとしたサンプルコードや簡易なアプリというのはたくさんあるのですが、そこそこの規模のアプリ、あるいは実運用されているアプリで参考にできるソースコードとなると、意外にパッと思い付かなかったりします。「Railsアプリなら、これを読め」というべきアプリのリストがあればいいのにと、よく思ったりしています。 そんなわけで、いま読むべきだと私が勝手に考えてGitHubのウォッチリストに入れているRails3アプリを、10個ほどリストアップしてみたいと思います(全部で11個ですが)。ほかにオススメなどがあれば、ぜひコチラで情報をお寄せください

    いま読みたいRuby on Rails3アプリ 10選:Rails Hub情報局:エンジニアライフ
    raimon49
    raimon49 2012/07/29
    知名度の高いプロダクトが結構ある。
  • Big Sky :: 最近の GNU CoreUtils を使っている限り rm -rf / は --no-preserve-root 付けないと / は消せない

    何に関連して記事を書こうと思った訳でもないです。たんなる一人コードリーディングです。 GNU CoreUtils に入ってる rm を読みました。 GNU Project Archives http://ftp.gnu.org/gnu/coreutils/ 読んだのは coreutils-8.17.tar.xz に入ってる src/rm.c preserve_root 変数は 203行目にある main で int main (int argc, char **argv) { bool preserve_root = true; struct rm_options x; true に初期化されていて319行目 if (x.recursive && preserve_root) { static struct dev_ino dev_ino_buf; x.root_dev_ino = get

    Big Sky :: 最近の GNU CoreUtils を使っている限り rm -rf / は --no-preserve-root 付けないと / は消せない
    raimon49
    raimon49 2012/07/15
    最近のは安全側に振ってある
  • pixiv の javascript のコメントが面白い - Dlog 隔離館

    イラスト コミュニケーションサービス[pixiv(ピクシブ)] お絵描きサイト、pixiv! 何気なく、pixivjavascript のソースを眺めてみると、いろんなコメントがありました。 ニョーン ... 7686: // マウスオーバーでおすすめタグをニョーンと出す 7687: var timer = null; ... マジ天使 ... 452: selectCover: function(c) { 453: // [IE マジ天使] 送れないので遷移させる 454: if ($.browser.msie) { ... pixiv.group.js http://source.pixiv.net/source/js/pixiv.group.js なげえw ... 248: if (handler) { 249: // TODO 引数再考。なげえ 250: handler =

    pixiv の javascript のコメントが面白い - Dlog 隔離館
    raimon49
    raimon49 2012/06/22
    同じ会社の中なのにソーシャルコーディング的になってて面白い。vimのモードラインは別に良いじゃないか!
  • chrome-life.com - このウェブサイトは販売用です! - chrome life リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    chrome-life.com - このウェブサイトは販売用です! - chrome life リソースおよび情報
  • WEB+DB PRESS Vol.69 | 技術評論社

    定価 1,628円(体1,480円+税10%) 発売日 2012.6.23[在庫なし] 2014.12.23 判型 B5 頁数 192ページ ISBN 978-4-7741-5104-5 978-4-7741-6901-9 概要 特集1 詳解GitHub ~はじめよう! ソーシャルコーディング Pull Requestが織りなす効率的ソフトウェア開発~ 分散バージョン管理システムGitの普及と並行して、GitHubを利用するプログラマが増えています。GitHubは単なるGitのリポジトリホスティングサービスではありません。「ソーシャルコーディング」という理念を持ち、それを実現するために数々の機能が実装されています。特集では、GitHubに用意されている機能の使い方から、「ソーシャルコーディング」を象徴するPull Requestを使った開発フローまで丁寧に解説します。 特集2 JUni

    WEB+DB PRESS Vol.69 | 技術評論社
  • オープンソース化されたDoom3のソースコード解析 - YAMDAS現更新履歴

    Doom や Quake といったゲームで知られる id Software は、そのゲームエンジンのソースコードを、それが旧世代になったところで定期的に GPL で公開してきたが、昨年11月には Doom 3 のソースコードを GitHub で公開している。 そして、それからおよそ半年経ち、そのソースコードを解析した全五部作(+ジョン・D・カーマックのインタビュー集)のページが公開された。 Doom3 Source Code Review: Introduction Doom3 Source Code Review: Dmap preprocessing Doom3 Source Code Review: Renderer Doom3 Source Code Review: Profiling Doom3 Source Code Review: Scripting VM Doom3 Sou

    オープンソース化されたDoom3のソースコード解析 - YAMDAS現更新履歴
  • JSX のアレな所 - ぐるぐる~

    注意!このエントリは既に古いので、JSX の進化速度が半端ない - ぐるぐる〜もあわせて読んでください。最新のコードを参照するのが手っ取り早いです。 JSX なる言語がリリースされました。 この言語が謳っているのが、 高速 安全 簡単(生産性が高い、とも) という 3 点です。 高速と安全はまぁいいでしょう*1。 問題は、はたしてこの言語は簡単なのか?という点です。 簡単かどうかは人によるのでアレなのですが、まぁ一部の人にとっては簡単とは言えない (というか書く気がしない) 書き方を強制されるのです。 関数型 数値を受け取って文字列を返す関数を表す型は、JSX では以下のように書きます。 function(:number):string これ単体で見ると分かりやすそうな気配はします。 では、これ読めますか? function f(g: function(:number):number):

    raimon49
    raimon49 2012/06/04
    functionキーワードの複雑さ こういうのがさらっと指摘できるのすごいな
  • エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type

    エンジニアtypeは、各種エンジニアをはじめ「創る人たち」のキャリア形成に役立つ情報を発信する『@type』のコンテンツです。

    エンジニアtype 技術者のキャリアを考えるWebマガジン - 転職@type
    raimon49
    raimon49 2012/05/20
    >『コードを書くよりも読むことが大切』
  • Server::Starterから学ぶhot deployの仕組み - $shibayu36->blog;

    以前http://tech.naver.jp/blog/?p=1369の記事を読んだのだけれど、それまでにprocessの知識が無かったりして、まったく理解できませんでした。そこでWorking with UNIX ProcessesやServer::Starterの中身を呼んでようやくhot deployの仕組みを理解できた(気になっている)ので、Server::Starterの実装を追いながら、それをまとめてみます。 hot deployとは hot deployとは「再起動の時にリクエストの処理を続けながら、変更の内容を反映するための手段」です。 通常serverをrestartさせるときは、stop -> startの流れになると思いますが、この場合stopしてから、start出来るまでの期間にリクエストを処理できない期間が発生します。その期間なしにdeployする仕組みがhot

    Server::Starterから学ぶhot deployの仕組み - $shibayu36->blog;
    raimon49
    raimon49 2012/05/08
    すごい解説力。
  • gitoliteはどうやってユーザを判別しているか - SELECT * FROM life;

    ちょっとしたコネタの紹介 gitリポジトリを複数人で共有する時に、AさんはこのリポジトリにコミットできるがBさんはダメ、といった風にアクセス制御をしたくなるが、それを実現するソフトウェアでgitoliteというモノがある。 gitoliteを`host`に`git`というユーザ名でインストールし`reponame`というgitリポジトリを登録すると`ssh://git@host:reponame.git`でアクセス制御をすることができる。 当然ながらこれは`host`に`git`というユーザ名でSSH接続することを意味する。 で、不思議なのはgitoliteは一体どうやってユーザの判別をしているのか、ということだ。 なんせgitoliteはサーバ上にインストールされているのだから、gitoliteから見たらどのアクセスも`git`というユーザなのだ。どうやってgitoliteは「このアクセ

    gitoliteはどうやってユーザを判別しているか - SELECT * FROM life;
    raimon49
    raimon49 2012/04/21
    gitoliteユーザのauthorized_keys command
  • GNU Global

    GNU Global ソースコードタグシステム GNU Global は、ソースコードに索引付けを行うことで、大規模システムのハックやレビューを効率化するソフトウエアです。 ソースファイル中の指定したシンボルを高速に見つけ出し、素早くその場所に移動することができます。多くのサブディレクトリからなり、#ifdef や main() 関数を沢山含んでいるような、いわゆる巨大なプロジェクトをハックするのに役立ちます。 ctags やetags に似た働きをしますが、エディタには依存せず、emacs, vi, less等の様々な環境でご利用になれます。ハイパーテキスト化してブラウザで読む事もできます。 最新の機能については、「新機能の御紹介」をご覧ください。 GNU Globalは GNU GPLv3 にもとづいた 自由なソフトウエア です。 Download: ftp site 動機 次の二つの

    raimon49
    raimon49 2012/04/16
    対応言語が
  • GNU GLOBALとvimで巨大なコードでも快適にコードリーディング

    人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 これまでも、多くの記事にされていて、恐らくKernelや巨大なコードを読んでいる人にとっては当たり前なのかもしれませんが、あまりに快適だったのとこれをきちんとやれてなかった事に自戒をこめて記事にしようと思います。grepとかscreenを駆使していた時間を返してほしい! 対象者 僕がLinux大好きなので、Linux上での動作を前提にしています。対象者はLinux KernelやApache HTTP Server等、数万から数十万、さらには数百万行のコードをじっくり読んでいきたいと考えている人におすすめしたいと思います。巨大なコードを何のツールも使わずに読むのはかなりきついはずです。しかし、今回はGNU GLOBALと呼ばれるソースコードタ

    raimon49
    raimon49 2012/04/16
    キーマップ例 前にも話題になってるのを見たけど全然使いこなせていない
  • なぜ CoffeeScript がよいか - 0xff.toBlog()

    なぜ CoffeeScript がダメか - 冬通りに消え行く制服ガールは✖夢物語にリアルを求めない。 - subtechについて。 いや、当はこのタイトルにするほど CoffeeScript 推しているわけではないのですが、まあそういう建前で書きます。 CoffeeScript のメリット 簡潔に書ける 簡潔であるということは、ソースコードにおいて、質ではない部分を書かなくてよいということで、逆に言えば必要なことだけが書かれている状態に近くなります。少し慣れればむしろ読みやすくなる(と思います)。 JavaScript の罠を回避できる var を忘れた変数がグローバル変数になるとか、変数のホイスティングとか、オブジェクトリテラルの最後のカンマとか、 JavaScript の for in は prototype を辿ってしまう問題とか、JavaScript の等価演算子が曖昧すぎて

    raimon49
    raimon49 2012/04/03
    ECMAScriptとの立ち位置から。