「ソースコード」タグアーカイブ

Linuxのソースコードコメントからf*ckを消してhugにしようと提案するパッチが議論を巻き起こす

ヤルコ・サッキネンさん(Jarkko Sakkinen)がリナックスDRM開発者メーリングリストに提案した33行のパッチは、コメント中の”fuck”を”hug”に置き換えるというだけのもの。提案の変更箇所は以下となり、変更内容はたとえばこんな感じです。


In order to comply with the CoC, replace **** with a hug.

Jarkko Sakkinen (15):
MIPS: replace **** with a hug
Documentation: replace **** with a hug
drm/nouveau: replace **** with a hug
m68k: replace **** with a hug
parisc: replace **** with a hug
cpufreq: replace **** with a hug
ide: replace **** with a hug
media: replace **** with a hug
mtd: replace **** with a hug
net/sunhme: replace **** with a hug
scsi: replace **** with a hug
inotify: replace **** with a hug
irq: replace **** with a hug
lib: replace **** with a hug
net: replace **** with a hug

Documentation/kernel-hacking/locking.rst | 2 +-
arch/m68k/include/asm/sun3ints.h | 2 +-
arch/mips/pci/ops-bridge.c | 24 +++++++++----------
arch/mips/sgi-ip22/ip22-setup.c | 2 +-
arch/parisc/kernel/sys_parisc.c | 2 +-
drivers/cpufreq/powernow-k7.c | 2 +-
.../gpu/drm/nouveau/nvkm/subdev/bios/init.c | 2 +-
.../nouveau/nvkm/subdev/pmu/fuc/macros.fuc | 2 +-
drivers/ide/cmd640.c | 2 +-
drivers/media/i2c/bt819.c | 8 ++++---
drivers/mtd/mtd_blkdevs.c | 2 +-
drivers/net/ethernet/sun/sunhme.c | 4 ++--
drivers/scsi/qlogicpti.h | 2 +-
fs/notify/inotify/inotify_user.c | 2 +-
kernel/irq/timings.c | 2 +-
lib/vsprintf.c | 2 +-
net/core/skbuff.c | 2 +-
17 files changed, 33 insertions(+), 31 deletions(-)

--
2.19.1

「抱きしめるな(don’t hug with this)」とか、「メモリコントローラーを困らせないよう(avoid hugging up the memory controller)」といった置換結果で、コメントが伝えたかったことが通じるのかどうか…

背景

リーナス・トーバルズ氏の謹慎と反省からの復帰もあり、他者への言葉遣いや態度について気を配ろう、という機運が盛り上がっている linux 界隈、インテルの技術者であるサッキネン氏は、アムステルダムからポートランドまでの10時間のフライト中にLinuxの新しい行動規範(Code of Conduct, CoC)を読み込む機会があり、そこからこの「言い換え」を思いついたそうです。

「罵倒・攻撃的・下品な言葉遣いを避ける(use of abusive, offensive or degrading
language)」というCoCの部分を提示していますが、なにしろ開発者のメーリングリストですので、検閲であるとか、まったくlinuxの機能を改善するものでもなんでもないとか、いろいろな反対意見が出てきました。

Code of Conduct には、それをどう解釈すべきかというガイド文書も有り、こちらには「CoCが作られるより前から存在するものには影響しない(Content that already exists predating the Code of Conduct will not be addressed now as a violation.)」という一文があることがメーリングリスト参加者から示され、今回の提案者は引き下がったようです。

行動規範 – The Linux Foundation (和訳)

via Phoronix

ソースコードコメント – 引継ぎ者への警告


// Dear maintainer:
//
// When I wrote this code, only god and
// I knew how it worked.
// Now, only god knows it!
//
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
//
// total_hours_wasted_here = 25


// 引き継いだ人へ:
//
// これを書いたとき、なぜこれが動くのか理解してるのは神と自分だけだった。
// そして今、知っているのは神だけだ!
//
// このコードを「最適化」 しようとし、それがどんなに愚かな間違いだったか
// 気づいたときは、下のカウンタを増やして次の担当者への警告とすること
//
// ここで_無駄にした_時間 = 25

こんなコメントの入ったコードが回ってきたら嫌だなあ。

GitHub に、このtotal_hours_wasted_here が含まれるソースコードが結構あって、書かれてる時間も1から200超までいろいろとあるようです。

via QDB and reddit

Untrusted – JavaScriptをいじって先へ進むRogueライクゲーム

ローグライクゲーム、というジャンルがあります。Rogue(ローグ)を代表とする自動的に生成される迷路・迷宮から脱出するというゲームで、日本で有名なものでも、ネットハック、トルネコの大冒険、チョコボの不思議なダンジョンなど多数あります。

Untrusted は、そのようなローグ風ゲームのバリエーションなのですが、JavaScriptのコードを操作することでパズル的な迷宮を解き、先へ進むというのが最大の特徴です。

untrusted-3

画面左の迷宮で、自分のキャラクター”@”を、階段”□”まで、カーソルキーを使って導かなければいけません。しかし、普通に上下左右に移動しただけでは、出口にたどり着くことはできなくなっています。

そこで、右側のコードに書かれた、迷宮を生成するJavaScriptのコードのうち、書き換えて良いという黒地の部分を変更し、Ctrl+5 で実行するとあら不思議、壁や出口の場所を書き換えてしまうことで、次の階へと進むことができるようになるというわけです。

いかだを使ったり鍵を探したりと、面ごとに違う趣向の障害が配置されています。

その階がどういうトラップなのか、どんな障害が設けられているかというヒントがJavaScriptのコメントとして書かれているので、解く際の参考になるでしょう。

untrusted-2

壁を描画している部分の位置を書き換えるとか、出口の場所を移動するとか、で解ける面もありますが、後の面ではそれらを防ぐようなバリデーション・コードが追加されたりして、同じ手は2度使えないようになっています。

UntrustedのソースコードはオープンソースとしてGitHub上で公開されています。ソースコードを見れば現在のダンジョンが何階あるかはわかってしまうのですが。

# HackerNewsで紹介されたせいで、現在ゲームはちょっと重かったり、正しく動かなかったりすることがあるようです。その場合は、footerにリンクのあるミラーサイトで遊んだり、オープンソースですから自分のところで動かしたりということもできます。

via HackerNews

Googleコード検索の日本語インタフェース

[更新 2018] 2012年にサービス終了しています。

via Google Code Blog

Googleコード検索の日本語インタフェースが出たそうだ。

まあ、プログラマー向けのツールだし、UI部分もほとんどないので、あまりインパクトはないかもしれないけど。新人とかに使わせるためのしきいが下がったかもしれない。

あと、”lang:”で指定できる検索対象の言語も、AppleScript, COBOL, ColdFusion, Haskell, Modula-2, Modula-3, OCaml, R, Rebol, SML, VHDLと増えている。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません

Googleがソースコード検索Google Code Searchを公開

[更新 2018] 2012年にサービス終了しています。

噂になっていたGoogleのコード検索サービスGoogle Code SearchがGoogle Labsから公開された。

codesearch_logo_sm.gif

例: “Romaji”でソースコード検索

上の検索結果からすると、Camel Notation中の単語も探してくれるみたいだ。
IsProgrammerDifferentFromSE()みたいなネーミングからも単語を切り出してインデックスしているということで、これはありがたいかも。

見つかったコードをクリックすると、キーワードハイライトされたソースコード全文、同じディレクトリ内にある他のコードのリスト、パッケージやコードのGoogleキャッシュ(!)、パッケージのダウンロードリンク、などが表示される詳細画面に移る。

検索では、トップページ下にも説明がいくつか書かれているが、言語、ライセンス、パッケージ形式やファイルの拡張子などを指定しての検索ができるようになっている。また、さすがプログラマー向けというか、正規表現による検索指定ができる。

例: Apache2のC言語ソースから”gzip”で検索

レスポンスも、まだほとんど誰もアクセスしてないからかもしれないけど快適。まあ他のGoogle検索を見ても、ユーザが増えたからといってそんなに遅くなることはないだろうし。

ソースコード検索といえば、Kodersとかcodefetch{が先行しているけど、ソースコードを含めてGoogleは元から膨大な量をクローリングしているわけだし、競合者達はここでもたいへんかもしれない。

[追記]

各ニュースサイトのニュースも揃ってきた

Internet Watch

ロイター → ITMedia

CNET → CNET Japan

internet.com → japan.internet.com

日経IT Pro

[追記]

しつこくregist という英語は無いに”regist”の検索結果を追加した。


[追記][リンク無効化 2018]

Now Japanized!

[更新 2018]

コメント欄指摘、当該サービスが終了していることを追記しました。文中の類似サービスについてもサービス終了やサイト応答無しのためリンクを外しました。

この記事は移転前の古いURLで公開された時のものです

  • ブックマークが新旧で分散している場合があります。
  • 移転前は現在とは文体が違い「である」調です。(参考)
  • 記事の内容が古くて役に立たなくなっている、という場合にはコメントやツイッターでご指摘いただければ幸いです。最新の状況を調べて新しい記事を書くかもしれません