タグ

ブックマーク / zentoo.hatenablog.com (5)

  • Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール

    最近、Robert Love先生のを暇な時にダラーと読んでいたりするわけですが、それの中にLinux Kernel内部で使われているLinked Listの実装が書いてあって面白かったので共有。 まず、Linked Listの一個一個のエントリを表すstructを定義します。 struct list_head { struct list_head *next, *prev; }; いやいやいやいや。いかにC力の低い僕でも流石にこれはあきません。騙されませんよ。前後のエントリへのポインタは確かにあるけれども、これにはデータを指すためのポインタがないじゃないの。おじいちゃんまたデータ忘れてきちゃったの?いやあねえ。 おじいちゃんは言った。「それはお前の短見というものじゃ。このLinked Listは以下のコードのようにデータ構造に埋め込んで使うものなんじゃよ。」そしてそれは正しかった。 st

    Linux KernelのLinked Listの実装が面白い件 - 愛と勇気と缶ビール
    uk-ar
    uk-ar 2012/12/12
  • Gruntをようやく使ってみた - 愛と勇気と缶ビール

    Gruntってアレですね、JSでホゲホゲっと設定ファイルを書いてJSとかCSSのファイルをminify/unifyとかするヤツです。 最近よく聞くので、機会があったら使ってみようと思っていたのですが、最近とあるウェッブページをPlay!Frameworkで作ってみたりしていたので、それのJS/CSSのビルドに使ってみました。 もろもろやりたいことを実現したらこんな感じに。当はもうちょっと綺麗に書けるのではないかと思います。 https://gist.github.com/3738650 僕のやりたかったことは、 JS/CSSのunify JS/CSSのminify JS/CSSのgzip (for Play!) timestampをつけたファイル名の生成 作成されたfileどものclean conf, templateの文字列置換。@@timestampをtimestampに置換するなど

    Gruntをようやく使ってみた - 愛と勇気と缶ビール
    uk-ar
    uk-ar 2012/09/19
  • プログラミング言語について語るときに僕の語ること - 愛と勇気と缶ビール

    僕はしばらく前までプログラミング言語についての議論を戦わすのが好きな人間だった。 今でもそういう会話が嫌いではないとはいえない。というか好きか嫌いかで言うと好きな方かもしれない。今でもそういった会話、「何とか言語はこういうとこがいけない」「それに比べると(俺の使っている)○○言語はうんたらかんたら」というトークは、茶飲み話としてはそうとう楽しいと思う。酒の席で語るにはもってこいの話題だ。でも、それは職業としてエンジニアをやるいい大人がツバを飛ばして語るような話題ではない、と思う。 なぜそう思うか、と問われれば答えは明快で、その言語を使うコンテキストを無視して言語の優劣を語ることには意味がないと思うからだ。 非常に大雑把な括りをさせて貰えば、いわゆるスクリプト言語および動的な型付けを行う言語は、「少数の一定水準を越えたチームが最大限の効率を発揮するために設計された言語」だと思っている。 例え

    プログラミング言語について語るときに僕の語ること - 愛と勇気と缶ビール
    uk-ar
    uk-ar 2012/04/15
  • JavaScriptのテストについて本気出して考えてみた(1) - 愛と勇気と缶ビール

    一週間のうちまる一日くらいは、「あーあのJavaScriptコードのテストってどうするのがいいかしら?」と考えている。 嘘です。多分45分くらい。 考えている時間の長さはどうでもいいんだけど、JavaScriptのテストは場合によっては中々ややこしい問題に成り得る。DOMなどの外部リソースにタッチすることのない「純JavaScript(オレオレ用語です)」であればブラウザ上であろうとRhino上であろうとNode JS上であろうと(理論上は)テストを動かせるのだが…。 JavaScriptであろうとなかろうと、外部のリソースに依存している(外部のリソースを操作する)コードはそうでないコードよりテストが面倒になる。ファイルR/WやDBの操作などIO系は勿論そうだし、どこかのサーバに何かしらのプロトコルで話しかけるようなコードもしかり。 JSのテストがややこしくなるのは、JavaScript

    JavaScriptのテストについて本気出して考えてみた(1) - 愛と勇気と缶ビール
    uk-ar
    uk-ar 2011/01/26
    とはいえやっぱりブラウザポチポチはやってらんないので、モノホンのブラウザを使いつつ自動化したい!と思うのが人の情である。このような試みには 1. JsTestDriver (http://code.google.com/p/js-test-driver/) 2. JSTAPd (http://search.cp
  • JavaScriptのテストについて本気出して考えてみた(2) - 愛と勇気と缶ビール

    前回からの続きで。 DOMエミュレーションの戦略 一方で、物のブラウザを使わずに何らかのJavaScript実行環境でDOMをエミュレートして、その上でテストを走らせよう、という戦略もある。 この分野の大御所はEnv.js(http://www.envjs.com/)ということになっているのだけど、Env.jsのイヤンなところは導入がめんどくさい所である。何がめんどくさいって、antでビルドしなくちゃいけない。テストのためにどの程度の環境構築コストをかけられるかは状況において違うだろうが、例えばJSをメインでやっているエンジニアが「ちょっとテスト環境整えたい」っていう時にantから入れて頑張るだろうか?Javaの経験や、こういうビルドツールの導入/利用の流れに慣れている人だと全然問題ないレベルなんだけど。 というわけで、Env.jsは結構力を入れて開発されたものではあるのだろうけど、僕に

    JavaScriptのテストについて本気出して考えてみた(2) - 愛と勇気と缶ビール
    uk-ar
    uk-ar 2011/01/26
    あとこれは余談だけど、Env.js発起人のJohn Resigエバンジェリストが "JavaScript Testing Does Not Scale" (http://ejohn.org/blog/javascript-testing-does-not-scale/) という記事で、「jQueryのテストにはRhino + Env.jsを使っていたころもあるけど、今はもう
  • 1