/ 最近 .rdf 追記 設定 本棚

脳log[2018-11-14~]



2018年11月14日 (水) 「円周率=4」を証明してみせましょう。“3.14…”を覆す新理論(?)に驚愕する声多数! 理数系学生「反論思いつかなくて草」」■この図なら区分求積法に持ち込んで不等号で上と下から挟む式になると思う。だからこの証明は上半分だけで途中。■そもそも弧の長さをどこでも近似していない。ただ 4 = 4 と言っているだけ。


2018年11月13日 (火) #世界ふしぎ発見 で「銀ブラ」の語源をクイズに出題し、三省堂国語辞典で誤りとされた説を正解として紹介する - Togetter」■モーガン・フリーマンの名前を冠した NHK の教養番組っぽいものが種々雑多な言説をフラットに取り上げていて、それはつまり業界の共通認識と異端児1人の言っていることの取り扱いに差がないということで、その回の放送内容のほとんどすべてを聞きかじっていた分野だからそういう判断ができたけど、それ以外で普通に「へーそーなんかー」と感心していては危険な番組だと思った。

最終更新: 2019-04-12T22:47+0900

[Git] GitHub でプルリクエストを出した後の作業手順

プルリクエストの元になったブランチは、自分の GitHub リポジトリにプッシュしたものが即座にリクエスト先にも反映される点で、公的なブランチだといえる。

プルリクエストに対する修正を事前に私的にテストするために、プルリクエストを意図せず Work in progress 状態にしないために、どういう手順をとるか。

前提として AppVeyor といった CI が自分の GitHub リポジトリと連動しており、GitHub にプッシュしなければテストが完了しないという事情がある。

元になったブランチから私的実験ブランチを派生させるのがいいと思う(これって常識?)。実験して結果を確かめたものを公的ブランチにマージし、必要ならリベース(並べ替え・併合)し、プッシュする。あるいは実験ブランチの段階でリベースによりコミットの取捨選択と整理を行っておき、公的ブランチにはマージとプッシュだけをしてもいい。

最終更新: 2019-04-12T22:47+0900

[Git] Git のサブコマンドについて

操作対象で分かれてるよね。そんで fetch, pull, push 以外はオフラインと考えていい。

remote
外部リポジトリ名
rebase
コミット
branch
ブランチ
checkout
ワーキングツリー
reset
refs/heads [インデックス] [ワーキングツリー]
fetch
refs/remotes
merge
refs から refs へ
pull
リモートからローカルのブランチへ
push
ローカルからリモートのブランチへ

rebase の用途は主にマージの1手段としてと、ブランチの付け替えと、コミットの整理とがあるけど、やってることはコミットオブジェクトの書き換え(※)であると。

※これは概念的な理解であって、もちろんコミットオブジェクトは名前に対して不変であるし、実際には refs/heads の書き換えも行っているはず。

ローカルブランチの削除は branch で行うけど、リモートリポジトリにあるブランチの削除を行うのは push であると。

git pull --all とかやっちゃうと操作対象はブランチだから、現在のブランチにマージコミットが追加されておろおろしてしまうと。git fetch --all にしよう。

もちろんオプションによりブランチだった対象がタグになったりするし、branch サブコマンドでリモート(※ローカルのリポジトリにフェッチ済みのリモート)にあるブランチを表示したりもできる。あくまでも基本の対象ではある。


2018年11月10日 (土) AppVeyor が便利すぎて、酷使しすぎていて、月に1万円以上は払っておかないと今後の扱われ方に不安を覚えるほど。


2018年11月09日 (金) 【悲報】Amazon社「コミュ力?それ最悪。個の力が高ければいいんだよ。」 : 暇人\(^o^)/速報 - ライブドアブログ」■社員同士のコミュニケーションって要は非同期作業を同期する行為でしょ。同期同期同期ではパフォーマンスはスケールしませんよ。アムダールの法則が見えるところまで行ってください。


2018年11月08日 (木) Firefox 52.9.0 がおそらく GitHub に切り捨てられた。スクリプトによる付加機能が軒並み無反応。アップデートしようにも「最新バージョンはご使用のシステムに対応していません」だもんなあ。■Vivaldi はインストールできたし、GitHub も使用できた。■Windows Vista は発売直後に買ったけど、10 はいらないんだよなあ。ほら>「【Windows 10】「勝手にLINEがインストールされていた」の声が増加中(2018年11月11日) | LINEの仕組み」■かくいう Vivaldi も背後のウィンドウとの境目がわからないフラットデザイン(デザイナー仕事しろ!)だけどな。■枠が欲しけりゃ「通常のウィンドウを使用する」という設定が Vivaldi にはあるんだよ。でも、右上のコントロール(_□✖)のサイズが設定とは異なり小さすぎるし、Aero Glass でない単色の青だしで、全然「通常のウィンドウ」ではない。


2018年11月07日 (水) [C++] g++ で -Og -g オプションを付けると if (this) {} else {} みたいなコードが通らなくなる。ヌルポインタかどうかを確かめることには問題がないし、仮想関数を呼び出そうとしたりしない限りは C++ 的にも許されている雰囲気を感じていたのだけど、デバッグ情報が this 付近にあると期待されていたりしてそれが問題につながるんだろうか。■ -g オプションだけなら OK だった。■ -Os でもアウトだったから問題は -Os, -Og という最適化オプションにある。許されてはいなかったのか……。■「C++ の標準としては未定義動作です


2018年11月06日 (火) バス運転手、指導員に逆上し運行中止 淡路で乗客放置 徳島の海部観光 (徳島新聞) - Yahoo!ニュース」■安全運転の責任を負ってる運転手にギア選択の指示まで出すのは越権行為だと思うんだよな。それが職人気質のドライバーだったならなおのこと受け入れられないだろう。とはいえ、観光バスは排気量とトルクに余裕があり、それが乗客の快適性に繋がるから、高めのギアを使いこなせるのがいいドライバーだという指摘はしてもいいと思う。■■■@2018-11-07 周辺情報「「新聞はいいように書かれている」高速バス運転手が指導員に逆上し運転拒否し乗客放置されたニュースに実際に乗っていた人が反論 - Togetter」 乗客に対する責任を負わない指導員。嫌いな風潮だけどブコメのひとつにあるように、介護タクシーでないタクシーの運転手による介護のまねごと(介助。ただ手を差し伸べることを禁止するどんな理由があるのかは知りたくない。どうせ事なかれ主義のコンプライアンスの縄張り争いだろう)が許されない(らしい)ように、指導員は自分の責任範囲を言い逃れに使うのかもしれない。だったらそれはブーメランとなって、責任が持てない部分に関しては口を噤んでろって話になる。

本日のツッコミ(全1件) ツッコミを入れる

べる運転手運転拒否で客放置


2018年11月02日 (金) [C++] .o と .a の違い。.a の順序依存性。■「静的ライブラリのリンク時にundefined referenceエラーが出る(gcc)」「static link について - 兼雑記」■リンカってバカだな。ハードウェアリソースが少なかったんだな。■指示されたことを指示されたとおりにしか実行しないというのは道具として望ましい特性ではあるが、お客様気分では使えないわな。


2018年11月01日 (木) AI が何度目かで流行している今あらためて読みたい『O嬢の物語』。自分たち小さな人間が奴隷になりたい存在であることを自覚するところから機械との関係を考えよう。自分は同時に天邪鬼なので、そういう傾向があると知ればそこに甘んじること大多数と同じであることには満足できない。アンチとシンパが自分がないという点で表裏一体だと肝に銘じながら。


2018年10月29日 (月) [C++] if 文が嫌いである。その感覚の出所(でどころ)を考えてみた。■if 文というのは低いコードカバレッジへとつながる、実行コードの分裂である。if 節と else 節には無制限に無関係なコードを書くことができる。その無秩序さが許容できない。■if 文やループといった制御構造自体が無秩序なジャンプを飼い慣らしてプログラムを構造化する過程で生まれてきたと思うが、今はもう if を飼い慣らす段階なのだということ。■if が嫌いということは分岐が嫌いということと同じではない。CPU の分岐予測を無用のものにする実用コードが書けるわけではないし、パターンマッチングは有用だし、再帰関数の終了条件だって書かなければいけない。if 文に代えて条件演算子を使用することを擁護する根拠がここにあると思う。条件演算子では型を逸脱した無秩序なコードを分岐のそれぞれに書くことができない点で、飼い慣らされた if の側面があるからだ。■考えたきっかけはこれ>「pull/553#pullrequestreview-165680225」 実行効率を犠牲にしてまでそう書く理由。wmemchr の戻り値の仕様を矯正してまで最初からそういう風に書くつもりがなかった>「pull/553#pullrequestreview-165133091」 その理由。■コードの分裂を避ける。変数の定義を変えない。変化するのは変数の値だけそれも変数の定義時に一意に定まる、というようなコードを書きたいということ。状態の管理をしたくないから、クラスとアクセス制御で管理をオブジェクトに任せる。関数の内部でも、条件に応じて組み代わる関数の内部構造の変化に注意を払いたくない。変化するのは変数の値だけで手一杯。■値としての関数? 値が変化する=関数が変化する? 型が保たれているからいいんじゃないでしょうか。よう知らんけど。■さっきの PR に含まれていたコードのこの部分に心残りがある>「sakura_core/types/CType_Tex.cpp#L258-L266」 当然のように条件演算子で書こうとしたのだけど、条件演算子が嫌われやすいということがあり、他の場所でヨーダ記法が嫌われていたということもあり、控えてしまった。


2018年10月22日 (月) GitHub の障害。書き込みは基本的に通ってるみたい。でも参照が安定しない。ログインしているのに(※これは事実)、ログインしていないときのページが表示されたり、最新版ではないページ(※過去の版のいずれか)が主に表示される。リロードして運がよければ最新版。■@2018-10-23 報告「October 21 Incident Report | The GitHub Blog


2018年10月21日 (日) ちょっと何を言っているのかわからない。「栃木県警が、夜間運転でのヘッドライトの上向き使用(ハイビーム)についてドライバーに行った意識調査で、 「原則ハイビーム使用」を「知っている」との回答が7割を超えたにもかかわらず、実際に行っている人が5割あまりにとどまっていることがわかった。 実践しない理由では「まぶしくて他の車に迷惑をかけるから」との回答が多かった。 道交法では、他の車に影響しないよう、こまめにロービームなどに切り替えるとされているが、県警は「多くのドライバーが『常時』ハイビームと誤解している」とみて、さらに広報活動を進めることにしている。」■ドライバーの半数以上が「原則ハイビーム」を知っていて、でも「まぶしくて他の車に迷惑をかけるから」ハイビームにしていないという(※程度・頻度について言及がない)。■ドライバーは原則を知ったうえで適切に状況を見極めてロービームを使用していると考えられるのだが、栃木県警に言わせるとそれは「多くのドライバーが『常時』ハイビームと誤解している」せいだかららしい。■何をアホなことを言っているのか。お前らが「常時ハイビーム」だと誤解させたがっているというだけのことではないか。歩行者、自転車、車、何が見えてもロービームにしろ。ドライバーだけが見えていればいいってもんじゃない。そんなパトカーがいたら眩しくて目の前によろめき出てやるからな。


2018年10月18日 (木)

最終更新: 2021-05-12T04:21+0900

[Git] Git, GitHub 初期設定

あまり書かれていないことだけ。

 ローカルリポジトリ

  • (クローンしたなら)リモート名 origin を削除する。git remote
    • 余計な自動化も自分が管理しない名前もない方がまし。
  • 自分の GitHub リポジトリをはじめ、外部リポジトリの URL に名前を付ける。git remote
    • ブランチ名とひと目で区別できるように、リモート名は @ を付けたり大文字にしたりしようかな。
  • 自分のではないリモートリポジトリへのプッシュをできなくする。git remote set-url --push <remote> ""
  • 新しく作成したブランチが自動的に設定する、分岐元との繋がりを断つ。git config --global --add branch.autoSetupMerge false
    • --no-track を既定値にするということ。git branch のみならず git checkout -b においても。
    • 最新版の取得がチェックアウト&プルでは済まなくなるはずだが、読み取り専用にするつもりのブランチなら --ff-only なマージで済むはず。でもマージする範囲が自動ではわからないかも。なら毎回新しくチェックアウトするとか。
      • プルできないのが面倒なら、<remote> へのプッシュ不可設定を徹底することにして、この設定はしなくていいかも。
    • 変更を加えたブランチは、最初に必ず自分の GitHub リポジトリにプッシュする。git push [-u] <myRemote> localBranch[:remoteBranch]
      • -u オプションを付けて一度プッシュすれば、以降は引数なしのプッシュ、プルが可能。
      • タイプ頻度が高いローカルブランチだけ短い名前にしようかな。
        • [Tips] localBranch の部分を HEAD にするとチェックアウト中のブランチ名を意味するみたい。※コミットオブジェクトへの参照(refs)ではなく、refs への参照ってこと?
        • [Tips] 単独のコロン(:)はローカルとリモートにおける全ての同名のブランチの組を指すらしい。ローカルにだけ短い名前を付けると対象から外れてしまうし、それがリモートに存在する無関係のブランチと同じ名前だったりしたら……(考えるだに恐ろしい)。
  • [Tips] チェックアウトしているブランチを削除したければ git checkout --detach してから。これでひとつのブランチも残しておかなくて済む。
  • [Tips] おそらく一番タイプするコマンドのエイリアス。

    [alias]
    	co = checkout
    	st = status --short --branch

 GitHub の自分のリポジトリ

  • フォークする。
    • GitHub はフォークツリーをメンテナンスしており、プルリクエストを出すためには GitHub 上でフォークしたという事実が大事。他に方法がないとは限らないが、Web での操作に苦労したくないなら、そう。
  • フォーク元とは別のリポジトリ名にする。
    • リポジトリを削除するときにはリポジトリ名の入力が要求されるのだが、アカウント名は省略できる。リポジトリの名前が同じならフールプルーフは機能しない。
  • フォークしたときに作られた master を巻き戻して、空のブランチを作る。git reset, git push
  • デフォルトブランチを空のブランチにする。
  • 空のブランチだけを残して、クローンしたときに作られたブランチをすべて削除する。git push <remote> --delete <remoteBranch> (--delete の代わりにコロンでも同じ。:<remoteBranch> 空のブランチを push = 削除)
    • 自分の GitHub リポジトリにコピーブランチはいらない。ローカルの作業リポジトリで git fetch --all して <remote>/master などと参照すればよい。

すべては自分のリポジトリを表示したときに、他人の作業の成果があたかも自分のものであるかのように表示されるのが嫌だから。あとは一見したページの印象がそっくりだと、自分のリポジトリを削除するつもりでフォーク元のリポジトリを削除してしまうことがあるから。

 根底にある考え

自分にとって3つのリポジトリの関係は「本家―ローカル―フォーク」として捉えられている。でもひょっとしたら「本家―フォーク―ローカル」の想定もあるのかもな、と考えてみた次第。でも自分で GitHub にフォークリポジトリを持たなくても「本家―ローカル(フォーク)」の2者間でもフォークは成り立つので、中心に GitHub 上のフォークリポジトリを置くのは、GitHub の中の人の立場としてならともかく、個人としては順序が違うと思う。メンタルモデルはひとつで十分だ。そのとき GitHub 上のフォークリポジトリは3番目に位置するオプショナルな存在となる。