ときどきの雑記帖 RE* (新南口)
目にはさやかに見えねども
チャージ
ローソン銀行ATMで交通系ICや楽天Edyの現金チャージが可能に | マイナビニュース
セブンイレブン以外でもできるようになるのはありがたい (ファミマは知らない)
←↑→↓
こんな入力ができたのか
「やじるし」って打ってない?【iPhone】なら“ワンフリック”で時短入力できるよ〜! | TRILL【トリル】
いざという時には忘れているような気もするが😓
ダイクストラ選択
[B! go] Goで関数の引数に、union型っぽくstruct Aもしくはstruct Bのどちらかを受け取れるようにしたい - $shibayu36->blog;
Cのunion型(共用体)は、型を一度選ぶとダイクストラ選択不能になるから、ホーア・データ構造化できずに直和ではなくなる。 PASCALのcase文を用いた可変レコード型(後からcase文で型を選択できる)よりも劣化するのはなぜだ?
『ダイクストラ選択』ってなんだっけ? な状態だったので調べた。
データ構造化理論の型選択演算子によるダイクストラ選択 - 構造化プログラミングの覚え書きその3 - dhrnameのブログ
「劣化」云々はまあ…
35周年
- [B! PC] 【大河原克行の「パソコン業界、東奔西走」】 FM TOWNS誕生から35周年。初のCD-ROM標準搭載パソコンを振り返る
- 【大河原克行の「パソコン業界、東奔西走」】FM TOWNS誕生から35周年。初のCD-ROM標準搭載パソコンを振り返る - PC Watch
富士通は、1989年2月28日に、世界で初めてCD-ROMドライブを標準搭載したPC「FM TOWNS」を発表した。それからちょうど35年の節目を迎えた。
名前
Hell: Shell scripting Haskell dialect
とほほさん
2024年2月10日(日)
「YAPC::Hiroshima 2024」で講演してきました。資料は「yapc-2024-tohoho.pdf」
とあったのでスライド資料を見てみた。 以下印象に残った部分をいくつか
- 1DD?のフロッピーディスクを裏表ひっくり返して使っていた
- 磁気ディスクを信用しない教授の授業はフロッピーディスク使用禁止
- MicroVAX
- すべてのコマンドで –jsonオプションサポートして欲しい
search
窓辺の小石(155) The Search for Windows! | マイナビニュース
メモその2。
自責/他責
営業トラブル「これって私のせい?」 他責を主張する際に注意すべき3つのポイント
つい最近、会社内でも遭遇してびっくりしたんだけど、 この手の記事でも出てくるということは こういう「自責」や「他責」の使い方をする人がそれなりにいるってことか。
なんか意思疎通できる自信がない😓
自責(じせき)とは? 意味・読み方・使い方をわかりやすく解説 - goo国語辞書
プログラマーのためのCPU入門
[B! CPU] 「プログラマーのためのCPU入門」は入り口として丁度よい! のコメントに
なんかアセンブリレベルでしか解説がないとレビューがあるぞ。あんまりプログラマーのためになってないのでは…
というのがあったので(ry
これかな?
私はCPUのマルチプロセッシングについて気になっていて、スレッドやミューテックス・チャネルなどのプログラミング機能が CPUにどのように反映されるのかの答えを期待して読み進めていました。
しかし本書では、CPUの各技術がどのようにプログラムで実現されるかはアセンブリレベルで解説され、C/C++のコードに紐付けられない為、 CPUで実行される技術とプログラミングで表現する技術を紐付けることが自分の中ではできませんでした。
これらを理解するためには、スレッドやミューテックスなどがアセンブリレベルでどのような命令に対応するか等の 知識を事前に知っている必要があると感じました。
うーん…
「CPUにどのように反映されるのか」 というのをどういう意味で言っているのかが読み取れない (わたしの読解力不足もあるだろうが)
Julia
閏年バグ?
うるう年起因で色々あったようで。
運転免許システム障害、「うるう年」が原因 4県警で一時発行できず | 毎日新聞
各県警の運転免許センターなどにある免許作成機の日時を管理する機能で、うるう年の設定をしていなかったことが原因という。
「初めて迎える『うるう日』だった」 スギ薬局、システム障害を謝罪 - ITmedia NEWS
29日の開店時にレセプト(診療報酬明細書)コンピュータと呼ばれる調剤管理システムが「完全に止まった」。
時間の取り扱いにはうるう日以外にもいろいろな落とし穴があるそうです。以前担当したこちらの書籍で、1章を費やして高い熱量で語られていますので、今回の報道でご不安を覚えられた向きはぜひお手に取っていただけたらhttps://t.co/qkzbfviDUa
— akihiro takizawa (@turky) February 29, 2024
- Ask HN: Did you encounter any leap year bugs today? | Hacker News
- うるう日にしか発生しないバグ
- 閏年(うるうどし)の閏日(うるうび)にログ転送のエラーが大量発生した話
- 【1年後の1年前は今日ではない!】Go でうるう年に落ちるテストがあった話 #Go - Qiita
- うるう年の最古の記録は2200年前、微妙な違いをどう知ったのか | ナショナル ジオグラフィック日本版サイト
GNU
sed
includeするファイルの指定を変更
- maint: avoid syntax-check failure: use <>, not "" for system headers
- maint: avoid syntax-check failure: use <>, not "" for system headers
--- a/sed/sed.c
+++ b/sed/sed.c
@@ -17,7 +17,7 @@
#include "sed.h"
-
+#include <getopt.h>
#include <inttypes.h>
#include <limits.h>
#include <stdio.h>
@@ -25,12 +25,12 @@
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
+
#include "binary-io.h"
-#include "getopt.h"
#include "progname.h"
+#include "selinux/selinux.h"
#include "version.h"
#include "xalloc.h"
-#include <selinux/selinux.h>
#include "version-etc.h"
gnulib
nonnullって使うとまずい名前だったっけ?
xalloc: Don’t use identifier ’nonnull’.
--- a/lib/xmalloc.c
+++ b/lib/xmalloc.c
@@ -30,7 +30,7 @@
#include <string.h>
static void * _GL_ATTRIBUTE_PURE
-nonnull (void *p)
+check_nonnull (void *p)
{
if (!p)
xalloc_die ();
awk
gawk
Some small fixes pulled in from minrx changes.
diff --git a/builtin.c b/builtin.c
index 15ca3a7..a066257 100644
--- a/builtin.c
+++ b/builtin.c
@@ -3219,7 +3219,7 @@ do_sub(int nargs, unsigned int flags)
if (flags & GENSUB) { /* gensub, behave sanely */
if (isdigit((unsigned char) scan[1])) {
int dig = scan[1] - '0';
- if (dig < NUMSUBPATS(rp, target->stptr) && SUBPATSTART(rp, tp->stptr, dig) != -1) {
+ if (dig < NUMSUBPATS(rp, target->stptr) && SUBPATSTART(rp, target->stptr, dig) != -1) {
char *start, *end;
start = target->stptr
target
とすべきところをtp
としていたという話なんだろうけど、
これだけみてもよくわからんな(笑
OTA
区切り区切りでタグ打ってくれというお願い。 なるほど何かのパッケージに入れるときにそういう情報がないと困るよね
Please keep tagging releases at some sort of interval · Issue #222 · onetrueawk/awk
goawk
Release v1.26.0 · benhoyt/goawk
What’s Changed
- Fix rare race in pipe-to-command close() result test by @juster in #213
- Fix #190: FS regex [^,]* fails on empty field by @fioriandrea in #214
- Fix issue #79: Incorrect parsing of complex ++ expressions by @fioriandrea in #215
- Allow optional newline between “do {}” and “while” by @benhoyt in #220
- Distinguish between /regexp/ and “regexp” in stringified output by @ypdn in #222
新刊近刊
コマンドラインの黒い画面が怖いんです。
なんか興味を惹かれるタイトル
コマンドラインの黒い画面が怖いんです。 新人エンジニアのためのコマンドが使いこなせる本 電子書籍|翔泳社の本
↓と著者が同じかと思ったら違った
コードが動かないので帰れません! 新人プログラマーのためのエラーが怖くなくなる本 | 桜庭 洋之, 望月 幸太郎
pandas & plotly
pandas & plotly 2D/3D データビジュアライゼーション実装ハンドブック
発売日 : 2023/04/07
著者/編集 : 大川洋平
出版社 : 秀和システム
ページ数 : 300p
死因の人類史
『死因の人類史』
— 草思社 (@soshisha_SCI) February 27, 2024
(アンドリュー・ドイグ著 秋山勝訳)
疫病、飢餓、暴力、そして心臓、脳血管、癌…歴史において「死因」は変化しつづけてきた。
人の死に方には、その時代・社会の人間の生きざまが反映されている。死因の変化を追いかけることで世界史の見方が変わる。https://t.co/ZTbRRqkN64
The art of
『統計学の極意』、基本的に読み物だけど、扱ってる事例とその説明の粒度が教養の統計の講義で紹介するのにちょうど良いレベルなのでさっそく来年度の講義に取り入れたい pic.twitter.com/bxecHSB5E3
— kota matsui (@matsui_kota) March 1, 2024
White House urges developers to dump C and C++
前にも似たような話題があったよなあと思ったけど、 発言主(?)が違うのね。
- White House urges developers to dump C and C++ : r/programming
- [B! 言語] ホワイトハウスが開発者に対しC++やC言語からRustやJavaなどのメモリ安全性に優れたプログラミング言語への移行を勧める
- ホワイトハウスが開発者に対しC++やC言語からRustやJavaなどのメモリ安全性に優れたプログラミング言語への移行を勧める - GIGAZINE
- [B! security] 米ホワイトハウス「将来のソフトウェアはメモリ安全になるべき」と声明発表。ソフトウェアコミュニティに呼びかけ
- 米ホワイトハウス「将来のソフトウェアはメモリ安全になるべき」と声明発表。ソフトウェアコミュニティに呼びかけ - Publickey
- ホワイトハウス、開発者にRustなどメモリの安全性考慮した言語への移行促す | TECH+(テックプラス)
ところで
米ホワイトハウス「将来のソフトウェアはメモリ安全になるべき」と声明発表。ソフトウェアコミュニティに呼びかけ - Publickey
Memory safety vulnerabilities are coding errors affecting software’s memory management code in which memory can be accessed, written, allocated, or deallocated in unintended ways. Types of memory-related coding errors mentioned in the CSI include buffer overflow, use after free, use of uninitialized memory, and double free. Exploiting these vulnerabilities could allow malicious actors to access or corrupt data, or run arbitrary malicious code with the same privilege as the system owner.
メモリ安全性の脆弱性とは、ソフトウェアのメモリ管理コードに影響するコーディングエラーのことで、 メモリが意図しない方法でアクセス、書き込み、割り当て、または割り当てが解除される可能性があることを指す。 CSIで言及されているメモリ関連のコーディングエラーの種類には、バッファオーバーフロー、メモリ解放後の使用、 初期化されていないメモリの使用、二重のメモリ解放などがある。これらの脆弱性を悪用することで、 悪意のある行為者がデータにアクセスしたり、データを破壊したり、 システム所有者と同じ権限で任意の悪意のあるコードを実行したりすることが可能になる
の
Memory safety vulnerabilities are coding errors affecting software’s memory management code in which memory can be accessed, written, allocated, or deallocated in unintended ways.
部分の翻訳がちょっとよろしくないんじゃなかろうか。
意図しない方法(in unintended ways)で
- memory can be accessed
- memory can be written
- memory can be allocated
- memory can be deallocated しちゃう(されちゃう)のがまずいということだから、
アクセス、書き込み、割り当て、または割り当てが解除される
としちゃうとの最初の三つの意味がとりづらいと思う。
もうひとつ別の記事から
ホワイトハウス、開発者にRustなどメモリの安全性考慮した言語への移行促す | TECH+(テックプラス)
レポートでは、メモリの安全性にまつわる脆弱性を「メモリーが意図しない方法でアクセスされたり、 書き込まれたり、割り当てられたり、割り当て解除されたりする脆弱性」と定義している。
こっちは同じ部分をよりわかりやすい訳文にしているんだけど…
宇宙関連システムのような高度な安全性が求められるソフトウェアのプログラミング言語については、他に考慮すべき制約が存在する。 ソフトウェアおよびハードウェアの双方と対話できる言語でなければならない。さらに出力タイミングが一貫しており、 「ガベージコレクタ」が存在せず、「オーバーライド」できてはならない。
ここ、「どういうこっちゃ?」になったので 例によって原文に当たってみたところ
The space ecosystem is not immune to memory safety vulnerabilities, however there are several constraints in space systems with regards to language use. First, the language must allow the code to be close to the kernel so that it can tightly interact with both software and hardware; second, the language must support determinism so the timing of the outputs are consistent; and third, the language must not have – or be able to override – the “garbage collector,” a function that automatically reclaims memory allocated by the computer program that is no longer in use. These requirements help ensure the reliable and predictable outcomes necessary for space systems
という文章だった。 うーん…「『オーバーライド』できてはならない」ってのは違うんじゃない?
「ガーベジコレクターを持っていない」か、「ガーベジコレクターをoverrideできなければならない」 ということなのでは。
とは言え「ガーベジコレクターのオーバーライド」というのがよくわからなかったので ちょいとググると、あまり数はないもののいくつか見つかった
世代のサイズを選択する方法は1つではありません。アプリケーションによるメモリーの使用方法とユーザー要件によって、 最適な選択が決まります。そのため、仮想マシンによるガベージ・コレクタの選択が必ずしも最適とはかぎらないので、 コマンド行オプションを使用してオーバーライドできます(「ガベージ・コレクションのパフォーマンスに影響する要因」を参照)。
サーバ VM を実行しているサーバクラスマシンでは、ガベージコレクタ (GC) が、 これまでのシリアルコレクタ (-XX:+UseSerialGC) からパラレルコレクタ (-XX:+UseParallelGC) に変更されました。 このデフォルトは、-XX:+UseSerialGC コマンド行オプションを使用して java コマンドにオーバーライドできます。
How to Override Java Garbage Collector on Red Hat Openjdk S2I image - Red Hat Customer Portal
この辺のことを言ってるんですかねえ>元記事のoverride
You’ve just inherited a legacy C++ codebase
- You’ve just inherited a legacy C++ codebase, now what? : r/programming
- You’ve just inherited a legacy C++ codebase, now what? | Hacker News
- gaultier.github.io/blog/you_inherited_a_legacy_cpp_codebase_now_what.html
preprocessor
つづき。 入力テキストを
#define F(a) a G
#if defined(FUNCSTYLE)
#define G(a) a F(a)
#else
#define G(a) a F
#endif
F(7)(8)(9)
のようにして、gccでいろいろやってみた。 ちょーーーーっと古いgccなんでアレですが
$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=C:/Strawberry/c/bin/../libexec/gcc/x86_64-w64-mingw32/8.3.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: (省略)
Thread model: posix
gcc version 8.3.0 (x86_64-posix-seh, Built by strawberryperl.com project)
$ gcc -E -UFUNCSTYLE macrotest.c
7 8 9 G
$ gcc -E -DFUNCSTYLE macrotest.c
7 8 8 G(9)
ここで、入力の最後を
F(7)(8)(9)(10)
として
$ gcc -E -UFUNCSTYLE macrotest.c
としてみるとその結果は
7 8 9 10 F
それではと入力を
F(7)(8)(9)(10)(11)
として同様にプリプロセッサにかけると
7 8 9 10 11 G
となった。さらにさらに
F(7)(8)(9)(10)(11)(12)
でやってみるとその結果は
7 8 9 10 11 12 F
ところで-E
オプションを指定せずにコンパイラーにかけると…
$ gcc -DFUNCSTYLE macrotest.c
macrotest.c:8:3: error: expected identifier or '(' before numeric constant
F(7)(8)(9)
^
macrotest.c:1:14: note: in definition of macro 'F'
#define F(a) a G
^
$ gcc -UFUNCSTYLE macrotest.c
macrotest.c:8:3: error: expected identifier or '(' before numeric constant
F(7)(8)(9)
^
macrotest.c:1:14: note: in definition of macro 'F'
#define F(a) a G
ん?
シェルスクリプトで16進数2桁のフォルダ名を作成する方法
Qiitaだったらあの人がコメントつけるだろうなあなどと思いつつ。
この記事 シェルスクリプトで16進数2桁のフォルダ名を作成する方法 で
bash -e <<\EOF
mkdir -p /tmp/aaa
arr=(0 1 2 3 4 5 6 7 8 9 a b c d e f)
for i in "${arr[@]}"; do
for j in "${arr[@]}"; do
mkdir -p /tmp/aaa/$i$j
done
done
EOF
というのを書いているのだけど、 わざわざこんなことせんでもbrace expansionでいけるんじゃなかろうか
kbk@toybox4:~$ echo {0..9,a..f}
0..9 a..f
kbk@toybox4:~$ echo {0..9}
0 1 2 3 4 5 6 7 8 9
kbk@toybox4:~$ echo {0..9}{a..f}
0a 0b 0c 0d 0e 0f 1a 1b 1c 1d 1e 1f 2a 2b 2c 2d 2e 2f 3a 3b 3c 3d 以下略
kbk@toybox4:~$ echo {0..f}
{0..f}
kbk@toybox4:~$ echo {{0..9},{a..f}}
0 1 2 3 4 5 6 7 8 9 a b c d e f
kbk@toybox4:~$ echo {{0..9},{a..f}}{{0..9},{a..f}}
00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 11 12 13 14 15 以下略
kbk@toybox4:~$
わかりやすく(?) printfコマンドを使って
printf "%02x\n" {1..255}
というのもありかもしれない
(255の部分を計算式にしたかったけど無理?)。
外部コマンドを使ってもいいならseqとか、 いっそperlみたいな「飛び道具」を(ry
Hugo メモ
なんか今回はやたらと細かいアップデートが続くなあ
- Release v0.123.4 · gohugoio/hugo
- Release v0.123.5 · gohugoio/hugo
- Release v0.123.6 · gohugoio/hugo
- Release v0.123.7 · gohugoio/hugo
昭和
#昭和生まれっぽい発言をしろ
— まるも『きゃぴ』Kindle版発売中! (@marumo_516) February 27, 2024
マイコン(ΦωΦ) pic.twitter.com/vai4DM1pJ7
友人に頼まれて、その友人が入力しようとするプログラム(BASIC)を 隣で読み上げるというのをやったことがあるのだけど、 当時記号類の読みを二人ともよく知らなかったので 大混乱した記憶(遠い目)
Cat 8
皆さん勘違いされてますので注意喚起ですが、Cat7はその通りなのですがCat8はRJ-45に対応してる規格です。なので、Cat 8に関しては間違った話がよく流れてますので注意してくださいhttps://t.co/8QkLjjDTRU
— 松浦圭佑 / Matsuura Keisuke (@valoser12345) February 22, 2024
メモ
春望
国破れてサンガリア
— 何でもええねん私財法 (@NIKAIDO_KIJI) February 29, 2024
工場春にして草木深し
時に感じてはライムにも天然水を注ぎ
誘致に沸いて炭酸にも心を驚かす
労働は三月に連なり
ストロングは萬金に抵る
睡眠欠いて更に短かし
渾べて通勤に勝えざらんと欲す https://t.co/mlGkJUq61h
そういや「春望」ってワープロソフトあったよね
円盤
ビックカメラの店舗でBDやDVDの取扱い終了してたなんて知らなかった。 pic.twitter.com/zbjj9Xdxo5
— ゆきの (@yukino112) February 26, 2024
まったく扱わなくなるということではなく、 通販は買えるとは言え…だなあ