スキップしてメイン コンテンツに移動

多分週刊チラシの裏 (Oct 04 - 11, 2020)

Hacktoberfest が低品質 Pull Request 祭に

DigitalOcean が例年開催している Hacktoberfest は GitHub 上にある公開レポジトリへの PR 4 個毎に特典 T シャツを 1 枚進呈するという OSS 活動参加促進キャンペーンだが、今年は事情が違ったらしい。

大量のスパマーがこれまた大量の低品質 PR を其処此処のプロジェクトに送りつけたために大混乱が生じたとのこと。 問題は GitHub 上の全公開リポジトリが対象である点で、あらゆるプロジェクトがスパムの標的になる可能性がありながら各リポジトリメンテナの取れる手段がオプトイン / オプトアウトの別を問わず存在しなかったことである。

GitHub は当座の対策として非コントリビュータからの PR 作成を一時的に制限する機能を実装した。

DigitalOcean は混乱について謝罪し、同キャンペーンへの参加をリポジトリメンテナがオプトイン方式で選択できるように改めた上、メンテナが “hacktoberfest-accepted” とラベル付けした PR のみをキャンペーンの有効な業績と見做すように変更を行った。1

これらの対策により現在は混乱も鎮静化しているが、これまで広く円滑に行われてきた行事が外乱によって厳密な方向へ向かうのは牧歌的な時代の終わりを感じさせる。

日本でトロツキスト狩りが進行中

政府から独立した諮問機関である日本学術会議が推薦した会員 105 名の内 6 名の任命を菅義偉首相が拒否したという事件。

日本学術会議の根拠法である日本学術会議法 7 条 2 号は会員の任命について「会員は、第十七条の規定による推薦に基づいて、内閣総理大臣が任命する。」としている。「—任命できる。」ではない。

菅は拒否権の根拠のみならずその動機についても説明を拒否しているが、内閣府から具申があったとのことなのでつまり本人に動機はないか、あるいは同意して盲判を押したようである。 拒否された学者はいずれも学術会議一部 (人文系) に属するはずだった以外はコネクションが見られず、過去に安倍政権の政策に反対意見を唱えたことがあるのが目をつけられたのではと推測されている。

日本学術会議側からは事務局長談話として抗議が出ている他、米論文誌である Nature / Science および欧米の大手マスメディアでも日本における学問の自由の危機が懸念を集めている。

タイムゾーンでやらかしたバグ 4 つ

アプリケーション開発で経験したタイムゾーン周りのバグについてのショートストーリィ。 tzdata が古くて一部地域の DST 変更が反映されていなかった、OS のタイムゾーン設定が違った、DBMS のタイムゾーン設定が違った、ユーザ毎のタイムゾーン設定の扱いを間違えた、の 4 本。

「ソフトウェア開発は難しい。タイムゾーンは難しい。ソフトウェア開発でタイムゾーンを扱うのは? そう、もっと難しい」とのこと。

OSIRIS-REx がもうすぐ Bennu 表面に接地の見込み

自律制御で小惑星の表面に接地してサンプルを採取し地球に持ち帰るという、どこかで聞いたことのあるミッションを遂行している NASA の OSIRIS-REx 探査機が 4 年の飛行を経てついに目標の小惑星 Bennu に到達した。地表への降下は 10 月 20 日の予定。

少なくとも 57 g のサンプルを採取できると見られ、これは Apollo 以来最大のサンプルリターンになるとのこと。地球への帰還は 2023 年になる。

ちなみに Wikipedia によると OSIRIS-REx ミッションはこれまた現在進行中で今年 12 月に地球帰還予定である JAXA の Hayabusa2 ミッションと協力関係にあり、得られたサンプルの一部は交換される予定である。月の石よろしく日本でも拝める日が来るかもしれない。


  1. https://hacktoberfest.digitalocean.com/hacktoberfest-update↩︎

コメント

このブログの人気の投稿

OCaml で Web フロントエンドを書く

要旨 フロントエンド開発に Elm は堅くて速くてとても良いと思う。昨今の Flux 系アーキテクチャは代数的データ型と相性が良い。ところで工数を減らすためにはバックエンドも同じ言語で書いてあわよくば isomorphic にしてしまいたいところだが、Elm はバックエンドを書くには現状適していない。 OCaml なら js_of_ocaml でエコシステムを丸ごとブラウザに持って来れるのでフロントエンドもバックエンドも無理なく書けるはずである。まず The Elm Architecture を OCaml で実践できるようにするため Caelm というライブラリを書いている。俺の野望はまだまだこれからだ (未完) Elm と TEA について Elm というプログラミング言語がある。いわゆる AltJS の一つである。 ミニマリスティクな ML 系の関数言語で、型推論を持ち、型クラスを持たず、例外機構を持たず、変数の再代入を許さず、正格評価され、代数的データ型を持つ。 言語も小綺麗で良いのだが、何より付属のコアライブラリが体現する The Elm Architecture (TEA) が重要である。 TEA は端的に言えば Flux フロントエンド・アーキテクチャの変種である。同じく Flux の派生である Redux の README に TEA の影響を受けたと書いてあるので知っている人もいるだろう。 ビューなどから非同期に送信される Message (Redux だと Action) を受けて状態 (Model; Redux だと State) を更新すると、それに対応して Virtual DOM が再構築されビューがよしなに再描画され人生を書き換える者もいた——という一方向の流れはいずれにせよ同じである。 差異はオブジェクトではなく関数で構成されていることと、アプリケーション外部との入出力は非同期メッセージである Cmd / Sub を返す規約になっていることくらいだろうか。 後者は面白い特徴で、副作用のある処理はアプリケーションの外で起きて結果だけが Message として非同期に飛んでくるので、内部は純粋に保たれる。つまり Elm アプリケーションが相手にしないといけない入力は今現在のアプリケーションの完全な状態である Model と、時系列イベ

多分週刊チラシの裏 (Oct 12 - 18, 2020)

プログラミング言語のエネルギィ効率性 おなじみ Computer Language Benchmark Game にある言語のうちプロプライエタリな Smalltalk を除く 27 言語の、時間効率性と空間効率性に加えて「エネルギィ効率性」を検証したという研究。 結果は大方の予想を外れない (コンパイラ言語 - VM 言語 - インタプリタ言語の序列) のだが、言語毎によって単位時間あたりのエネルギィ効率 (換言すると CPU 最適化性能) が異なるので「速ければより省エネ」とは必ずしも言えないことや、最大メモリ消費量は言語のパラダイムによって大方が決まり、エネルギィ効率とはほとんど相関がない (ので Java でもエネルギィ効率は高い) ことなど面白い事実が見られる。 『アメリカのインターネット』の終焉 1994 年に Netscape が設立されたとき、世界にはおよそ一億台の PC があり、その半数は合衆国にあった。 WWW はスイスで開発されたしコンピュータは英国の発明だが、インターネットは米国製だった。 米国の企業がその課題を与え、重要な製品とサービスを作り、規制や言論は米国の立場、文化、法が支配した。 (引用者訳) 合衆国政府による TikTok 分割騒動に寄せての現在と未来のインターネットの話。 今日のインターネットの利用者のうち 80 - 90% は米国外の住人である。中国のスマートフォン台数は米国と欧州を合わせたよりも多く、ソフトウェア・スタートアップの半数はシリコンバレーの外で起きている。 テクノロジーは規制産業になったが、その規則はもはや合衆国の一存では決まらないのである。 まつもとゆきひろのツイッターを見てRuby使うのをやめようと思った Ruby の原開発者にして「寛大なる就寝独裁官 (BFDL)」の Twitter における言動が差別主義とは言えないまでもマイクロアグレッションに満ちていたので製品としての Ruby にも悪印象がついたという話。 不要に攻撃的な人やコミュニティから距離を置く理性は心身の健康のためにも重要である。 FTP のフェードアウト Chrome をはじめとする Web ブラウザにおいてファイル転送プロトコル (FTP) のサポート終了が迫っていることに寄せて、半世紀に渡ってインターネットの

部分継続チュートリアル

この文書について これは Community Scheme Wiki で公開されている composable-continuations-tutorial (2010年09月30日版)の日本語訳です。 誤字脱字・誤訳などがありましたらコメントあるいはメールで御指摘いただけると幸いです。 本訳は原文のライセンスに基づき Creative Commons Attribution-ShareAlike 2.0 Generic の下で公開されます。 Original text: Copyright© 2006-2010 Community Scheme Wiki Japanese translation: Copyright© 2011 SATOH Koichi 本文 部分継続(Composable continuation)は継続区間を具象化することで制御を逆転させるものです。 ウンザリするほど複雑な概念を表す長ったらしいジャーゴンのように聞こえますが、実際はそうではありません。今からそれを説明します。 reset と shift という2つのスペシャルフォームを導入するところから始めましょう [1] 。 (reset expression) は特別な継続を作るなりスタックに目印を付けるなりしてから expression を評価します。簡単に言えば、 expression が評価されるとき、あとから参照できる評価中の情報が存在するということです。 実際には shift がこの情報を参照します。 (shift variable expression) は目印のついた場所、つまり reset を使った場所にジャンプし、その場所から shift を呼び出した場所までのプログラムの断片を保存します; これはプログラムの区間を「部分継続」として知られる組み合わせ可能な手続きに具象化し、この手続きに variable を束縛してから expression を評価します。 組み合わせ可能(Composable)という語はその手続きが呼び出し元に戻ってくるため、他の手続きと組み合わせられることから来ています。 Composable continuationの別名として例えば限定継続(Delimited continuation)や部分継続(Partia