ときどきの雑記帖 RE* (新南口)
曲がらねば世は渡れず
教えてしずえさん
JR東日本の一部路線の車内で見られる #大人の60秒講座 - Twitter検索 / Twitter が結構好きなんだけど、 先週(3/29~)のお題は「make a toastって(日本語では)どういう意味?」でした。 こういうの見ると「翻訳ムズイ」となるよなあ (「make a toast」が実際どういう意味なのかは各自でお調べください😄)。
そういや昨年の秋ぐらいに出題者がそれまでマリオからしずえさんに変わった(@南武線)のは 何故なのか疑問だったんだけど JR東日本の電車内で流れる雑学クイズ動画がリニューアル。任天堂ホームページでもご覧いただけるようになりました。 | トピックス | Nintendo この辺に関係あるのかな。
それと京浜東北線もマリオだったと思うけどあっちも変わったんだろうか。
閉店
秋葉原asterisk(*)α : 「TokyoFoodBar秋葉原店」さん内の「銀座梅林」さんが閉店(2021/03/31)
まーじーでー。 年に数回程度だけどあそこのヒレカツ丼食べるの楽しみだったんだが。
広告
適当な検索キーワードを見つけられず、正体がわからずでイライラしてたのだけどまさかの結果だなあこれ。
画面遷移に差し込んでくる悪質な広告。去年の秋頃から見かけるようになったけど、まさか広告配信側の公式機能だったとは・・・ https://t.co/9H2PCkBtY2
— UNAGI (@unagix) March 31, 2021
PCでのブラウズでは コントロールキー+クリックでの「新しいタブでリンクを開く」というのを多用しているのだけど、 これが挟まると(広告のポップアップを消した後で)元のタブでリンク先を開いてしまうので 一回「戻る」して再度同じ操作をする羽目になって面倒なんだよね (さすがに「毎回」広告をさしはさむほど「邪悪」ではない模様ではある)。
「○○に当選しました。おめでとうございます」って画面いっぱいに出てきてリンクさせようとする アレと同類かと思ってたわ。
Excel のスクロール
CとCOBOLとRustとGo
MITテクノロジーレビュー[日本版] Vol.3
以前書いた MITテクノロジーレビュー[日本版] Vol.3だけど、今月(2021年4月)出る模様。
- 楽天ブックス: MITテクノロジーレビュー[日本版] Vol.3/Spring 2021 Innovation Issue - MITテクノロジーレビュー編集部 - 9784049110531 : 本
- MITテクノロジーレビュー[日本版] Vol.3/Spring 2021 Innovation Issue MITテクノロジーレビュー編集部:雑誌・ムック | KADOKAWA
後者によれば、特集は「発表!日本発の35歳未満のイノベーター」
マサチューセッツ工科大学発のテクノロジー・メディア「MITテクノロジーレビュー」日本版 Vol.3では、 IU35日本版受賞者たちの顔ぶれと活動内容を豊富なインタビューと写真で詳しく紹介。
また、IU35グローバル版の2020年受賞者インタビュー、MITテクノロジーレビューが注目する先端テクノロジー分野のレポート記事も掲載しました。 日本と世界のイノベーションの最新情報がまとめて得られる1冊です。
マスターアルゴリズム
マスターアルゴリズム 世界を再構築する「究極の機械学習」 | ペドロ・ドミンゴス, 神嶌 敏弘 |本 | 通販 | Amazon
- ビル・ゲイツもAI分野の必読書と推した『マスターアルゴリズム』邦訳が原著刊行から5年以上の時を経て出る - YAMDAS現更新履歴
- [B! AI] ビル・ゲイツもAI分野の必読書と推した『マスターアルゴリズム』邦訳が原著刊行から5年以上の時を経て出る - YAMDAS現更新履歴
- [B! アルゴリズム] マスターアルゴリズム ー 世界を再構築する「究極の機械学習」
原著が数年前のものだから…という意見もあるみたいだけど(確かにもっともな意見だとは思う)、 翻訳をされた方の記事を読んでみて時期的な問題はあるにしろ mother tongue で読めるのはありがたいことであろうと思った。
とは言え実際に読んでみたらまた意見が変わるかもしれない(笑) (今月は他にも買おうか悩んでいる本が何冊もあるのですぐに買う(買える)かどうかがわからんけども)
マスターアルゴリズム ー 世界を再構築する「究極の機械学習」
計算機科学の専門家以外に向けた内容ですが,機械学習の適用事例を表面的に挙げただけにはとどまりません. 本書の目的は,自動車を用いるにはブレーキを踏むと止まるといった,技術を用いるときに必要な知識である概念モデルを, 機械学習に関して説明することです.そのために,機械学習技術の背後にある概念を明らかにし, それに伴う根本的な制限や課題について紹介しています.そしてこれらの制限は,予測をするということに伴うものなので, 実は私たち人間の思考もその制限を受けていることを説明しています.
技術的特異点は,スコア関数を人間が与える機械学習のパラダイムでは不可能というのは,ほぼ全ての研究者が同意するだろう. 一方で,雇用については,失われる職業もあれば,新たに生まれる職業もあるという,新美南吉の『おじいさんのランプ』が,今後も続くと私は思う.
翻訳のお話をお引き受けしてから約4年かけてしまい,本書の邦訳を待たれていた方々をお待たせしてしまったことは申し訳なく思う.
- 書評|機械学習の考え方を理解する|The Master Algorithm by Pedro Domingos【2018年夏休み読書週間】 - カタパルトスープレックス
- [B! machineLearning] 書評|機械学習の考え方を理解する|The Master Algorithm by Pedro Domingos【2018年夏休み読書週間】 - カタパルトスープレックス
- 一般向け機械学習本の決定版 - The Master Algorithm by Pedro Domingos - 未翻訳ブックレビュー
- [B! AI] 一般向け機械学習本の決定版 - The Master Algorithm by Pedro Domingos - 未翻訳ブックレビュー
追加
-Wtautological-overlap-compare
gccとclangのワーニングの違い で知ったのだけど、clangはこういうのも見つけて警告出すんですねえ。
sample.c:10:12: warning: overlapping comparisons always evaluate to false [-Wtautological-overlap-compare]
if(i <= 2 && i >= 7){
~~~~~~~^~~~~~~~~
gcc にはない模様 Warning Options (Using the GNU Compiler Collection (GCC))。
-Wtautological-compare
というのはあって、一瞬同じ(ようなもの)と思ってしまったのだけど
こちらはこういうもの。
-Wtautological-compareWarn if a self-comparison always evaluates to true or false. This warning detects various mistakes such as: int i = 1; … if (i > i) { … } This warning also warns about bitwise comparisons that always evaluate to true or false, for instance: if ((a & 16) == 10) { … } will always be false. This warning is enabled by -Wall.
git
ということで git のソースコードを眺め始めた。
- .cや.hがsrcやincludeの下ではなくプロジェクトの基準ディレクトリ直下にある(例外あり)
- ファイルの数が多い
- Windows用のリソースファイル(git.rc)があるgit/git.rc at master · git/git
といったところかな。rcファイルなんて見たの何年ぶりだろう。
野生のカンでmainがある(全体の入り口)があるのは git/git.c at master · git/git だろうと踏んで中を見てみたが外れ。
じゃあどのファイルだろうと検索してみると
common-main.c:26:int main(int argc, const char **argv)
compat/mingw.c:2817: * We implement wmain() and compile with -municode, which would
compat/mingw.c:2818: * normally ignore main(), but we call the latter from the former
compat/mingw.c:2823: * argv into UTF8 and pass them directly to main().
compat/mingw.c:2825:int wmain(int argc, const wchar_t **wargv)
git/common-main.c at master · git/git のようだ。ところで mingw版はwmainからなんですな。そういえばあったなそういうの (wmain の使用 | Microsoft Docs、 wmain の使用 | Microsoft Docs)。
common-main.c は短いので丸ごとペタリ。
#include "cache.h"
#include "exec-cmd.h"
#include "attr.h"
/*
* Many parts of Git have subprograms communicate via pipe, expect the
* upstream of a pipe to die with SIGPIPE when the downstream of a
* pipe does not need to read all that is written. Some third-party
* programs that ignore or block SIGPIPE for their own reason forget
* to restore SIGPIPE handling to the default before spawning Git and
* break this carefully orchestrated machinery.
*
* Restore the way SIGPIPE is handled to default, which is what we
* expect.
*/
static void restore_sigpipe_to_default(void)
{
sigset_t unblock;
sigemptyset(&unblock);
sigaddset(&unblock, SIGPIPE);
sigprocmask(SIG_UNBLOCK, &unblock, NULL);
signal(SIGPIPE, SIG_DFL);
}
int main(int argc, const char **argv)
{
int result;
trace2_initialize_clock();
/*
* Always open file descriptors 0/1/2 to avoid clobbering files
* in die(). It also avoids messing up when the pipes are dup'ed
* onto stdin/stdout/stderr in the child processes we spawn.
*/
sanitize_stdfds();
restore_sigpipe_to_default();
git_resolve_executable_dir(argv[0]);
git_setup_gettext();
initialize_the_repository();
attr_start();
trace2_initialize();
trace2_cmd_start(argv);
trace2_collect_process_info(TRACE2_PROCESS_INFO_STARTUP);
result = cmd_main(argc, argv);
trace2_cmd_exit(result);
return result;
}
なんとなくではあるけど、全体的な処理の大きな流れがわかるような気がしますね。 パイプ経由でサブプログラムとやり取りというのは言われてみれば納得だけど 知らなかった(気がつかなかった)。
他では、git.c にあるオプションハンドリングの部分が面白かった。 getoptのライブラリを使っていないのはまあそういうこと(謎)なんだろう。
static int handle_options(const char ***argv, int *argc, int *envchanged)
{
const char **orig_argv = *argv;
while (*argc > 0) {
const char *cmd = (*argv)[0];
if (cmd[0] != '-')
break;
細かく潜っていくのはこれから。
Rust
ZDNet の翻訳記事も微妙に読みにくさがあるよなあというのはさておき
midorism64 のブックマーク / はてなブックマーク
リーナスはRust人気が出てきた頃「Modula-2やAdaよりはずっと良さそう」と言ってたはずで、 この件についてだけ言えばリーナスが変わったというよりRustは彼にとって比較的受け入れやすかったという話では
というのが気になったので調べてみたのだけどこの辺の発言だろうか。
- Linus’ opinion on Ada (vs Rust): > We’ve had the system people who used Modula-… | Hacker News
- Linux at 25: Linus Torvalds on the evolution and future of Linux | InfoWorld
What do you think of the projects currently underway to develop OS kernels in languages like Rust (touted for having built-in safeties that C does not)?
That’s not a new phenomenon at all. We’ve had the system people who used Modula-2 or Ada, and I have to say Rust looks a lot better than either of those two disasters.
I’m not convinced about Rust for an OS kernel (there’s a lot more to system programming than the kernel, though), but at the same time there is no question that C has a lot of limitations.
To anyone who wants to build their own kernel from scratch, I can just wish them luck. It’s a huge project, and I don’t think you actually solve any of the really hard kernel problems with your choice of programming language. The big problems tend to be about hardware support (all those drivers, all the odd details about different platforms, all the subtleties in memory management and resource accounting), and anybody who thinks that the choice of language simplifies those things a lot is likely to be very disappointed.
UTF-8(のBOM)
ほぼタイミングを同じくしてこの二つの話題を見てしまったことにシンクロニシティを感じてしまう今日この頃。
Not only is the Internet dead, it’s starting to smell really bad.:2021年04月04日分
そんなことよりもだね、デフォルトがBOM無しになったことでShift_JIS(Windows-31J)とUTF-8(BOMなし)の自動判定がアレになって文字が化けよることがママあるのよな。
- 「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話 - Qiita
- [B! 文字コード] 「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話 - Qiita
- [B! 文字コード] 「ASCIIをUTF-8にして」それが『できない』ことを理解してもらえなかった話 - Qiita
Hugo メモ
ref
Hugo では見出しに対して(指定がなければ見出しの文を元に)自動的にidを振ってくれるのだけど
見出しが空白を含んでいるときの動作というのはどこかに明記されてるんだろうか。
変換結果を見る限りでは機械的に-
に置き換えているようだけど。
Links and Cross References | Hugo
全然可愛くない事を言ってくるボンドルド#メイドインアビス pic.twitter.com/KRUmSL6N7l
— ドゥビドゥバ (@gerogero00001) April 2, 2021