やがて君になるの読了感想と恋愛表現考察云々

注:R15レベルの話、出ます 読了感想なので多少のネタばれ、出ます

  もちろんその前にゾーニングしますが。

 

緊急でブログ書いてます。

なんて言ってみたかった、HonokaNoです。最近はパスワードマネージャのデータが全部消えて困ってます。なんて。

 

あまり余計なことを離さないうちに本題に行きましょう。

やっと、やがて君になるを読みました。今までアニメは見てたんですけどね。

何で急にこのタイミングで熱が入ったかっていうと、少し自分語りが入りますが。

ふと縁があって、TSx百合な小説を書くことになりました。その時の資料集め、それ以上に自分と向き合った時に出てきた作品の一つがそれで。そしてアニメをAbemaで見返したら一気に熱が入っちゃったわけです。挿入歌の好き、以外の言葉でも最高でした。

 

話がぶんぶんしてますが...要するにとても読みたくなったので買った、以上!

ここまでだったら、ただのオタクの好きな作品紹介でした。もちろん、とても素敵な作品だったし、誰かにおすすめとかするかもしれない。というかすでにしてるけど。

 

ここから、ちょっと作品とかへのネガティブな話、R15な話、多少のネタバレとか出てきます。いやな人はここでブラウザバックしてね。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

これくらいスクロールすれば大丈夫かな。ここから本題である話とかに踏み込んでいくわけですが。

この作品、最後の方で性的な表現、っていうとおおざっぱすぎますけど体の関係、って言い方でいいんでしょうか。そういう感じの描写が出てきます。

実はこれが、一つもやっとした部分で。読者には作品を選ぶ権利はあるけど話を変える権利がなくて―とかいう話ではあるんだけどステイ。

私、いろいろあってそういう描写が苦手で、上の作品ではあえてそういうのを書かないようにする、っていうのが裏テーマにあったくらいで。

恐らく世間一般の恋愛、っていうといろいろなところから指摘が入りそうですが、大抵の場合は片思い->両想い->告白->恋のABC->そこからどれだけ長続きするか、みたいな流れが普通とみられているような気がします。そしてそれは、同性が恋愛する作品とかでも本質的には変わらないわけで。

...長くなるだけなって肝心の部分をずっと口に出さない悪い癖が出てますが、一言で言ってしまうと"恋愛の最上級表現が体の表現なの?"っていう話なわけです。

もちろん、それ自体に否定があるわけじゃなくて、ある意味では創作としてのゾーニングというか、恋愛観っていう難しい関係のボーダーを明確につける一つのエッセンスだったり、一つの答えだったり、そういうのではあると思うんです。

でも、それ以外に表現はないのかなって。理系だし、でも表現者だし、そんなことをずっと考え続けています。

 

って、お話でした。

Goでソースコードを分割するメモ

初めに書いておくとこれは

1つのディレクトリに全部まとめるタイプのソースコード分割

をやるときのメモです

Goで一般的であるパッケージを分けるタイプのものはいくらでもあるのでそっちをどうぞ

雑にまとめると
・packageはmainのままでOK
・go runなどをする際にすべてのファイル名を指定する
この2つをする、以上!

 

 

もうすこしちゃんとまとめます
たとえば

package main

import "fmt"

func hoge() int {

  return 1
}

 

func main() {

  hoge()

}

こんなソースコードがあった時に

package main

import "fmt"

func Hoge() int {

  return 1

}

(hoge.go)と

package main

func main() {

  Hoge()
}

(main.go)に分割して

go run main.go hoge.go

こんな感じでコマンドを実行すれば動きます
javaはたしかMain指定だけで動いたのに...

という個人まとめでした

今更a.outバイナリを出したかった備忘録

Dockerか仮想環境下で適当な環境を作って(x86だとgccも古くなりやすかったりでおすすめ、Dockerならconanio/gcc49-x86、仮想環境ならDebian9が(たぶん)おすすめ)

そしたらa.outに変換するときに邪魔な.comment,.eh_frameを削除する

stripでも行けるかもしれない

gcc -fno-unwind-tables -fno-asynchronous-unwind-tables -Qn

そしたら最後にリンク
この時--oformatを使いそうになるがそっちではなくmオプションを使う

ld -m i386linux

終わり!

P.S.
どうやら私が試したld(2.24)だと、NMAGIC,OMAGIC,QMAGICは吐けるみたいだけど、

欲しかったZMAGICだけ吐けないかもしれない

 

OSSの意義とは

この文章は私個人の意見であり、所属しているグループなどとは全く関係ありません。
...言いたかっただけです。そこはごめんなさい。

最後にこれはあくまで書き溜めです。

さて、私の知り合いにライセンスなどに詳しい方が何人かいて、
その方がブラウザのソースコードに関してこのようなことを言っていました。

DRMだとか特許だとかのせいでOSSだとしても自由に改造もできない。

そして開発側だけの秘密のツールがあって...

あまり深く言いすぎると本人にも関わるのでやめておきますが。

それを見て私も疑問を抱いたわけです
OSSとはいったい何なのか、と。

そんなわけでまずwikipediaを見てみます。それによると、

オープンソースソフトウェアは、ソフトウェアのソースコードが一般に公開され、商用および非商用の目的を問わずソースコードの利用・修正・再頒布が可能なソフトウェアと定義される[1]。

つまり、chromiumfirefoxOSS、と言って何ら問題はないわけですが。
それで結論付けるだけではつまらないので、もう少し話を広げたいと思いまして。

話が飛びますが、昨今はOSSというのを押し出すソフトウェアなどを比較的よく見る気がします。私だけでしょうか。
そこでなぜOSSというのを押し出しているのか、というので少し考えてみたいのです。

OSSを押し出した場合、どのような印象になるかを考えてみた場合、
ソースコードが公開されている=安全性が高い
・自由に使える=便利
このあたりが出ると思います

そんなわけではあるのですが、私が今回注目したいのは上記のものではなく、
OSSは何かすごい
という印象です。

恐らくこれを読んでいる方の大半は技術者でしょうから、いやいや、と思うかもしれませんが、それが世間一般でもでしょうか?

つまり、OSSというのはそれだけで人から見た評価を上げることができるわけです。

さて、上でちらっとブラウザの例を出したので戻ってみます。
firefoxを例に出した場合少しややこしくなってしまうので、chromium、braveあたりを例にしましょうか。
chromiumOSS、とされていますが実際にビルドした場合特許などの問題が大きく付きまといます。
ソースコードが公開されてこそいるのでOSSではありますが、自由に再配布とかはできないわけです。(そうした場合逮捕こそされないでしょうが。)
そんなソフトウェアをOSSというべきか。まぁ答えは上の定義の通りOSSではあるのですが。
...chromiumとかの批判がしたいわけじゃないんですけどね。

結局長くなっちゃったので最後に言いたいことをざっくりまとめます
OSS、って言ってるけどそれ本当に自由ですか?
OSSであるべき本当のメリット、ちゃんとありますか?

x86のCPU命令"POPAD"が曲者だった話

気づいたら100日ブログ書いてませんでした
最近はXinu本読んでるほのかのです

そもそもなんで今更POPADが出てきたかと言いますと
最近読んでいるXinu本がx86想定であり、そこでPOPADが出てくるわけです
ましてや、コンテキストスイッチの部分なので、ちゃんとレジスタを保存しつつ特定の場所へジャンプしなければいけないわけです

というわけで覚書

POPADは7つのレジスタを保存します
もう一度言います
ESP以外の7つのレジスタを保存します
ESPはどうなるかというと、それらをpopした後POPADの前のESPに+32します
つまり8つ値をPOPした後のESPの結果と一緒です

因みにPUSHADはESPもpushしますので注意が必要です
ただしこっちのESPも少し特殊でPUSHADする前のESPをpushするみたいなので注意

応用
x64ではPUSHA、POPA(PUSHAD/POPADはDとつく通り32bit用なのです)は廃止されました
多分レジスタが増えたのと上のESP(x64ではRSP)の特殊な仕様のせいだと思いますが便利だったのでちょっとショックです
そんなわけでx64でPUSHAとPOPAを再現するとこうなります
(x64の全レジスタを保存する場合下の例だとr9が保存されないので何かしら工夫してね)

/* pusha */
movq %rsp,%r9 ; save rsp
pushq %rax
pushq %rcx
pushq %rdx
pushq %rbx
pushq %r9   ; push rsp
pushq %rbp
pushq %rsi
pushq %rdi

/* popq */
popq %rdi
popq %rsi
popq %rbp
popq %rax ; trash rsp
popq %rbx
popq %rdx
popq %rcx
popq %rax

ではでは(?)

[編集履歴]
・gasの文法にnasmのコメントが入ってたので直したよ
・pushaのサンプルにバグがあるのでそれに関して追記したよ

今、話したい誰かがいる/乃木坂46 のサビがすごい好きって話

お久しぶりです
最近はプログラム以外に熱を入れ始めたせいであまり書くことがありません
そんなわけでプログラム以外にも書いてみようかなと思って。

というわけでタイトルの通りです
多少音楽理論が出てきますが極力そういうのわからない人にもわかりやすいように...頑張ります。

まずこの曲はここさけ、こと心が叫びたがってるんだ。の主題歌で、
作詞は秋元康さん、作曲はAkira SunsetさんとAPAZZIさんです

で本題に入るわけなんですが、サビの滑らかに下っていくメロディが大好きなんです!
...文章化するとあっさりしちゃいますね

とりあえず1回聞いてみてください(唐突の宣伝)

youtu.be
音楽理論的な話をするとメロディには重力があって、下がる方向に行くと安定、落ち着いた感じになるみたいな話があるのですが
まさにそれのいい例だと思います。(そんなあいまいだと理論ガチ勢に怒られちゃうけどね。)

で、まぁそのメロディだけじゃなくて、MVと歌詞、そして映画を合わせてのこの曲のすばらしさ、っていうのがあるんです
この曲は片思いの曲なんですが、映画でも主人公が好意を持っているような話が出てきて、でもその好きな相手には好きな相手がいて、みたいな
あとはタイトルも素晴らしいですね、映画では喋れない女の子が主人公なわけですが、だからこそのこのタイトル、エモい(小並感)

なんかオタク特有の早口っぽいのが出てますが。
何となく皆さんにも魅力が伝わったらいいなぁ...なんて。

Chromiumを改造したくなったので今話題のFLoCを削除してみたの巻

最近自作OSから逃げている人です。

今回はタイトルの通り、chromiumからFLoCを消していきます
Javascriptやhtmlの知識、精神力と強力なPCが必要なのでご注意ください。

事前知識
FLoCとは:googleが広告を出しつつユーザーのプライバシーを考えるために作った仕組み。いろいろと問題があって批判がいっぱい 詳しくはこの記事が詳しいよ


chromiumとは:googleが開発しているブラウザ(OSS) chromeの骨組みみたいなもの(雑な説明)

 

で今回の実装イメージとしては
・デフォルトでonになっているFLoCをoffにする
・設定画面を消す(実際は入れないようにするのほうが近い)

です

 

1つめをやっていきます
まずユーザー設定のファイルを探すところから

LocalAppData\User Data\Preferencesですね(Winの場合)

floc関係ならflocって入っているだろうなーと検索していくと、出てきました
floc_enabled
見るからにflocが有効かどうかのオプションです2

ここからデフォルトでFLoCをoffにするにはUser Data\Preferencesのfloc_enabledをfalseにすればよさそうと見当がつきます

ソースコードからfloc_enabledを検索していくと
src\components\privacy_sandbox\privacy_sandbox_prefs.ccに

RegisterBooleanPref(prefs::kPrivacySandboxFlocEnabled, true, ...);

関数名と引数の名前からこれっぽさそうですね
関数名から性質を考えて2つ目がデフォルト値っぽいです

RegisterBooleanPref(prefs::kPrivacySandboxFlocEnabled, false, ...);

 

変更しました

ビルド、起動して(User Dataディレクトリ内のデータを消さないと過去の設定が受け継がれてバグの原因になるので注意!)無事無効になったことを確認しました。
(私の今回の例ではその上のprefs::kPrivacySandboxApisEnabledもfalseにしています
 上にあったサンドボックスを有効化するかーみたいなあれですね)

2つめ
設定画面を消します(入れなくします)
設定画面は少し特殊で、いろいろと処理をしてから実際の設定のプログラムになっているっぽいのです。何が言いたいのかというと、直接設定のソースをいじる、ということはできないのです。(やっぱりうまく伝わらない)

 

そんな時に使うのが開発者ツール君です
どんなソースコードになっているのか、消したい対象がなんてidをしているのか一発でわかります。その代わり重い。めちゃくちゃ重い。


ですが根気良く調べていくと、

<cr-link-row id="privacySandboxLinkRow">

ってなコードが見つかります。

labelを見ると、おっこれだとなります。(プライバシーサンドボックス)

先述した通りこれはいろいろ処理をした後のソースコードです。
処理前のソースコードで検索すると、

src\chrome\browser\resources\settings\privacy_page\privacy_page.html
にありました。
というわけでFLoCを無効化するために設定に行けないようにします。
消してしまえば終わり。(私の場合はその下のaタグも消してます。)

そしてビルドすると...

画像

出来ました!

プライバシーサンドボックスという項目はなくなり、FLoCは無効化され、
FLoC嫌いな人が喜ぶ環境に!

こんな感じで改造してました。
雑な説明で申し訳ない。語彙力が欲しいところ。
なかなか環境整備は大変ですが、もし機会や環境があればぜひやってみてください。
面白いですし、かなりの勉強になりますよ。