プロプタイエタリに誘導してる感はありますが、だいたいの主張は感覚的にあいます。Linuxの開発にアクティブに関わっているのがたったの160人っていう数字には驚きましたが。
総務省の見解が良いですね。「オープンな標準は、国際規格 (ISO) や日本工業規格 (JIS) だけではなく、その他の公的規格や業界団体による規格も含まれる概念であるため、国際規格 (ISO) や日本工業規格 (JIS) に該当していない製品等がただちに排除されるという理解は誤りである」
プロプタイエタリに誘導してる感はありますが、だいたいの主張は感覚的にあいます。Linuxの開発にアクティブに関わっているのがたったの160人っていう数字には驚きましたが。
総務省の見解が良いですね。「オープンな標準は、国際規格 (ISO) や日本工業規格 (JIS) だけではなく、その他の公的規格や業界団体による規格も含まれる概念であるため、国際規格 (ISO) や日本工業規格 (JIS) に該当していない製品等がただちに排除されるという理解は誤りである」
Debianの中でも既に時代遅れなので、情報がねーw
つーことで簡単だけどメモ。
ここから自分の環境にあった(32bit/64bit)tar.gzを拾ってきて解凍します。解凍されたlibflashplayer.soを/usr/lib/mozilla/pluginsにコピーするだけで、chrome君は盗み読みして動いてくれます。インストールされたか確認したい場合は、ロケーションバーにabout:pluginsと入力しましょう。
今使ってますが、64bit版凄く安定した気がします。
cppllを眺めていると、デバッグ出力用のコードを無効化にする話が議論されていました。[cppll:13624]
コード自体はいろいろあったのですが、その中の一つが次のコード。
#ifdef DEBUG #define DOUT std::cout #else #define DOUT 0 && std::cout #endif DOUT << "debug" << std::endl;このコードのうまいところは、0 &&の残りが評価されないところらしい[cppll:13648]。dead-code eliminationというらしい。
何が凄いって、次のコードがgcc 4.4.5で-pedantic-errors -O0オプション付きでコンパイルできた。
bool f(); // 宣言だけ int main() { if (false && f()) { } else { std::cout << "きえたよ" << std::endl; } }皆いろんなノウハウ持ってるなぁ...。
GPL、シェア減少の傾向
ソフトウェア開発を仕事にしてると、GPLが時に神に見えたり、悪魔に見えたりしますよね。
2011/06/14 追記
知り合いをミスリーディングしてしまったので補足。
オープンソースの中で、GPLという公開を義務付けるライセンスが減っているという話です。オープンソースの減少に直結しません。
オライリー・ジャパンが災害支援としてEbook Storeの商品をすべて半額に #jishin
おぉ。
この手の支援ってwin-winでいいなぁ。
[24時間365日] サーバ/インフラを支える技術 ‾スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)
hatenaの中の人が執筆した本。具体的アプリケーション名をあげながら、止めることができないサーバまわりをどう構築するか書いている。ネットワークやサーバの教科書的な用語や概念は知っていないと、理解するのは少し難しいかもしれない。改訂されない限り、時間がたつと内容が一部古くなってしまうことが予想される。早めに読んだほうがいい(もっと早く読めば良かった…)。
個人的に面白かったなぁと思う点は2点。1. linux系OSでの負荷の調べ方(なんとなくしか理解できていなかった)。2. サーバ機を汎用的に運用する方法(サーバ機をネットワークブートにして、アプリケーションサーバ、リバースプロキシー、ロードバランサーなどに起動時に自由に変更できるようにする。また、そういう運用が可能なネットワークを組む。そうすることによって、それぞれの用途毎に予備機を用意する必要がない)。
貴重な運用ノウハウがこの値段で提供されているのは素晴らしい。全然触れたことがない世界なので、刺激的だった。いいなぁ、こういう仕事してみたい。
LLな言語を使う開発者は、どうにもIDEを使わないイメージがあるのですが、標準ライブラリにトレースバック機能 があるんですねぇ…。
#!/usr/bin/ruby def foo p caller(0) # ["caller.rb:4:in `foo'", "caller.rb:11:in `bar'", "caller.rb:14"] p caller(1) # ["caller.rb:11:in `bar'", "caller.rb:14"] p caller(2) # ["caller.rb:14"] p caller(3) # [] end def bar foo end barファイル名、行番号、メソッド名を出力しています(参考)。
breakはもっとも内側のループを脱出します。ループとは
ほっほー。試しに下記を実行するとfirstが出力された。つまり、2つ目からのwhenはifではなくelse ifなんですね。
a = 1 case a when 1 p "first" when 1 p "second" # never come here else p "else" # never come here end
2011/05/11 追記:
動物本を見るとelse ifという表現はあまりよろしくない気がしました。
他の言語のswitch文は、単純に適切なcaseラベルの先頭に制御を移すだけである。そこから制御は継続され、他のcaseラベルに「落下」することもある。この落下の動作により、複数のcase節が同じコードブロックを参照できるのである。Rubyでは、個々のwhen節にカンマ区切りの複数の指揮を並べられるようにして、同じ目的を達している。Rubyのcase文は落下しない。
def hasValue?(x) # hasValue?という名前のメソッドを定義する case x # xの値に基づく多方向条件分岐 when nil, [], "", 0 # nil===x || []===x || ""===x || 0===xなら false # メソッドの戻り値はfalse else # そうでなければ true # メソッドの戻り値はtrue end end
多重代入は複数の式または配列から同時に代入を行う。左辺の最後の式の直前に*がついていると、対応する左辺のない余った要素が配列として代入される。余った要素が無い時には空の配列が代入される。
foo, bar = [1, 2] # foo = 1; bar = 2 *foo = 1, 2, 3 # foo = [1, 2, 3]
ここまでは便利だなぁーと思うのですが、次の仕様がどう有効活用するのかよくわからない...
特に最後の単体の*はメソッド呼び出しにおいて引数を完全に無視したいときに使用できます。
def foo(*) end foo(1,2,3) # ok def bar() end bar(1,2,3) # in `bar': wrong number of arguments (3 for 0) (ArgumentError)
何か有効活用する意味があると思うんですが、思いつきません...
参考: Rubyリファレンスマニュアル
ローカル変数のスコープは、宣言した位置からその変数が宣言されたブロック、メソッド定義、またはクラス/モジュール定義の終りまでです(参考)。
2.times { p defined?(v) # 2回ともnilなことに注意 v = 1 p defined?(v) # "local-variable" }
select sum(length(col)-length(replace(col, 'a',''))) from hoge;
2010/01/01〜2010/12/31までのアクセス状況を振り返ってみました。
総セッション数13,886でした。
2010年の人気のあるコンテンツは以下の順位でした。
1. C#のコードを高速化するための方法
2. EnterキーでTabキーのようにフォーカスを移動させるJavaScript(prototype.js使用)
3. Mabinogi on Wine
4. CentOS 4.7のネットワーク設定をDHCPクライアントにする方法
5. MRTGでYAMAHA RT57i/RT58iの転送量を監視
6. C#って遅いのか
7. Windowsタスクマネージャとパフォーマンスモニタの見方
8. VMWare guest OS(CentOS 5)の解像度変更
9. KAKASI - 漢字→かな(ローマ字)変換プログラム
10. 64bit対応Adobe Flash PlayerをIceweaselにインストール
オリジナリティがある程度あるトップ3がぶっちぎりで、そのうち2つが2009年のコンテンツでした。ロングテールと言えば響きはいいが、そういえば今年はあんまり家で生産的なことしてなかったなぁと反省です。来年はもう少し更新しようと思います。
Webページ右に用意しているラベルのクリック率を見ると、Windowsなどが全くクリックされないのに対して、ブラウザ(4.0%)、仮想化(2.2%)でした。旬が何かわかりやすいと共に、Windowsはもう浸透してしまって調べる対象じゃないんでしょうねぇ。
閲覧してくれた方のOSはまだまだぶっちぎりでWindowsが多いです。仕事でMacユーザをメインターゲットにしてる私としては少し複雑な気分です。iPodやスマートフォンも現れ始めました。
検索キーワードは下のようになり、ついに日めくり美人がトップの座を明け渡しました。そろそろ技術系ブログを名乗れそうですwクリックしてもらうとわかりますが、いろんなキーワードでグーグルの上位にサクッと表示されて結構びびります。
1. C# 高速化
2. centos dhcp
3. 日めくり美人
4. javascript enter フォーカス移動
5. vmware 時計が狂う
6. c# 遅い
7. ubuntu マビノギ
8. centos dhcp クライアント
9. c# 共有メモリ イベント
10. ruby nameerror
それでは今年もよろしくお願い致します。