投稿

4月, 2023の投稿を表示しています

PlantUMLとおれおれマークダウン

おれおれマークダウンにPlantUMLの埋め込み機能を付けてみました。 elsif line.match(/^```exec plantuml/) then if mode == :normal then mode = :exec_plantuml exec_str = "" elsif mode == :exec_plantuml mode = :normal Open3.popen3("java -jar D:/app/plantuml.jar -pipe -svg") do |i, o, e, w| i.write exec_str i.close o.each do |l| puts l end e.each do |l| printf("<!-- stderr: %s -->\n", l) end printf("<!-- thread: %s -->\n", w.value) end end とかを付け加えることで動きました。 こういうコードを書いて #PlantUML ```exec plantuml @startuml Alice -> Bob: test @enduml ```exec plantuml 出力が Alice Alice Bob Bob test です。 とりあえず動いているので、細かいことはよし!

ChatGPTに差別について聞いてみた

ChatGPTに差別について聞いてみました。自分の定義は「社会的合理性の無い区別」なんですが、ChatGPTも「不当に区別すること」のようなのでほぼいっしょですね。この後は差別と区別の違いを探るべくいろいろ質問したのですが、うまくいきませんでした。ふんわりとした例を出してくることが多いですよね。聞いてないのに能力の評価の話をしだしたり。「公共の利益」と「個人の権利」という言葉が出てきたので、まあ、そんな感じなんだろうな。 差別とは? Q. 差別とはなんですか? A. 差別とは、人々を不当に区別することや、不平等な扱いをすることを指します。この不当な区別は、人々が所属する社会的なグループ、例えば人種、民族、性別、年齢、性的指向、宗教などに基づいて行われることがあります。 差別は、直接的にも間接的にも起こることがあり、場合によっては明示的に表明されることもあれば、暗黙的であったり、慣習的なものであったりすることもあります。差別は、個人的な感情や偏見に基づいて行われることもあれば、社会的なシステムや制度によってもたらされることもあります。 差別は、被差別者にとって不利益や苦痛をもたらすだけでなく、社会全体にとっても深刻な問題となることがあります。差別をなくすためには、教育や法律、社会的な取り組みなどが必要となります。 Q. 不当ではない区別にはどのようなものがあるでしょうか? A. 不当でない区別とは、人々を公正かつ合理的な理由に基づいて分類することを指します。以下は、不当でない区別の例です。 能力に基づく区別 : 人々を、能力や技能、経験、知識、業績、努力などに基づいて分類することは、公正であり、合理的な区別です。 必要性に基づく区別 : 人々を、仕事上や法律上必要な場合に応じて分類することは、合理的な区別です。例えば、年齢に基づく運転免許証の発行などが挙げられます。 個人の選択に基づく区別 : 人々を、個人的な選択に基づいて分類することは、不当な区別ではありません。例えば、服装や趣味などによる区別が挙げられます。 重要なことは、不当でない区別は、人々を不当に差別したり排除したりすることがないことです。そのため、不当な区別と区別するために、公正かつ合理的な理由に基づいて行われる必要があります。 Q. もっとないでしょうか? A. はい、不当では

おれおれマークダウン

おれおれマークダウンをRubyで書いてみました。単にhtmlを吐きながらちょっとだけ変換するだけですけど。こういうのはべたに強引に書いてしまうのがよい。ブログを書くのにも使えるようにヘッダの出し方を2種類用意しました。 書き始めに「こんなのはいらなくて、テキストでいいのではないか?」とも思いましたが、MathJaxで数式を書けるのはよいだろうということになりました。個人的な好みにより左寄せです。これで数学の勉強がはかどるはず。 2次方程式 \(ax^2+bx+c=0 \quad ( a \neq 0 ) \) の解は \[ x = \frac{-b \pm \sqrt{b^2-4ac}}{2a} \] 不等号 > $$a>b$$ \\lt $$a \lt b$$ ソースコード require 'optparse' mathjax = <<RUBY <script> MathJax = { chtml: { displayAlign: "left", } }; </script> <script type="text/javascript" id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"> </script> RUBY header1 = <<-RUBY <!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <script> MathJax = { chtml: { displayAlign: "left", } }; </script> <script type="

プログラムをhtmlに埋め込むための変換プログラム

プログラムをhtmlに埋め込むための変換プログラムをRubyで作りました。探せばもっと高機能なものがあるだろうけど、こういうものは自分好みのものを自作したほうが楽しいですからね。 xhtmlが流行っていればCDATAセクションを使えば楽なのに。 CSS関連をもうちょっとどうにかしないとだけど、それはおいおい。 filename = ARGV[0] header = <<~RUBY <pre><code> RUBY footer = <<~RUBY </code></pre> RUBY puts(header) File.open(filename, "r") do |i| i.each_line { |line| line.gsub!('&', "&amp;") line.gsub!('<', "&lt;") line.gsub!('>', "&gt;") puts line } end puts(footer)

ChatGPTにAIの発展について聞いてみた

遅ればせながらCharGPTデビューしました。うわさには聞いていましたがすごいですね。きちんと日本語になっている。ところどころ気になる表現のところはありましたが。単純な言語モデルというやつでできているとか聞いていましたが、それだけだと「以下のように」とか言って列挙するとは思えないので、なにか手が入っていますよね? 以下はAIの発展を邪魔する人たちにどうやって対抗していくかを聞き出そうとしたものです。しかし、ずれた答えをこちらの意図どおりに修正するのが大変でした。けっきょく、うまくいかなかったんですけど。正しい情報を提供していれば問題なく発展していくということらしいです。 途中から正しい情報の見分け方になったんですが、それには正しい情報源かどうかを確認しろとか言ってくるので、それの正しさはどうやって確認するのかと延々とつっこんだ結果、回答がループし始めたようなのであきらめました。なんとなくわかっていましたが、正しい知識を手に入れるためには正しい知識が必要なんですよね。 その他気になった部分は、途中で回答が切れたので、何らかの制限に抵触して終わったのかと思いましたが、そんなことはなく、続けて質問できました。英語を翻訳しているのか、オピニオンリーダーとすべきであろうところが意見リーダーになっていました。 AIの発展を安全に Q. AIが人類を滅ぼすと考える人たちがいます。そのような人たちに邪魔されずにAIが発展していく方法を教えてください。 A. AIの発展に伴い、人類が滅ぶ可能性があるという考えは、一定の根拠があるものです。しかし、AIの発展を止めることは不可能であり、AIが人類にとって有益なものとなるように発展させることが必要です。 AIが人類にとって有益なものとなるためには、以下のようなことが必要です。 AIの倫理的な規範の確立 : AIが人間を滅ぼすことのないように、倫理的な規範を確立することが重要です。AIの開発者は、AIの倫理的な枠組みを考慮に入れて、安全性を確保することが求められます。 AIの透明性 : AIが自律的に学習することができるため、開発者がAIがどのように意思決定を行うかを理解することができないことがあります。このため、AIの意思決定プロセスが透明であることが重要です。 AIの規制 : AIの発展を規制することは不可能ですが、

Microsoftにむかついた

最近のMicrosoft はひどくないですか?最近一番むかついたのはChromeのパスワードを含む情報を勝手にEdgeに移したことです。Edgeにはパスワードは記憶させないからと、ちょっと怪しいけど便利な拡張機能とか入れていたのに!Microsoft エディターを何度も断っているにもかかわらず宣伝してくることもむかつきます。 「昔はひどかったけど、最近は収益の柱がAzureに移ったからか、そんなにひどくない」とか言われていたけど、最近のEdge推しは目に余ります。Edgeを使わせてなにがしたいのでしょうか?Bingへの誘導?Bingが使われないのは詐欺サイトへの対策のあまさなど、サービスの品質が低いからじゃないですか。OSがデファクトスタンダードになっているから、それを利用して自社製品の売り込みとか、かつての嫌われていた頃の行いそのままではないですか。 Windows 11へのアップデート要件もむかつきました。要件を付けるのはかってにすればいいんですよ。でも、チェックすると具体的な理由を明示することなく、新しいパソコンへの買い替えを促すとかなんですか!TPMが話題になってたから調べちゃったじゃないですか。理由はCPUの世代が古いというだけだったのに。そもそも2023/04/02の時点でのシステム要件のページにもCPUの要件はちゃんと書かれていないし。昔からパソコンメーカーとぐるになって買い替えさせているのではないかとか噂があったんですよね。Officeとかどんどん重くなっていったし。 Officeと言えばExcelで個人情報漏洩とかさんざん繰り返しているのに放置ですよね。あれはAccessの機能制限版でもOfficeの標準セットに入れてしまえばいいんですよ。データベースを表計算ソフトでやってしまうから事故が起きるんです。ネ申エクセルもVisioを使えるようにすればだいぶ減るだろうに。もしくはWordの表がもっと使いやすければ。もしくはOLEが使いやすければ。 そういえば、OLEでOffice製品は相互に取り込めるようになるとか言っていたのに全然なっていないし。OLEだったのをActiveXとか言い出したりしてぐずぐずになっていったんですよね。まあ、ここら辺は最高潮に嫌われていた96年辺りの話ですけれども。 この頃はかなり嫌われていて、Windows Upd

データの同期と管理

英語でプレイしている原神でわからない言い回しをメモしていたファイルが消えてしまいました。「なんとなく動いているからいいや」と思いながらてきとうにrsyncで同期していたのが原因です。こうなる予感はしつつも、後回しにしていたらこれです。バックアップも取らなきゃと思いながらも、こっちも後回しにしていました。運用がてきとうだったというのもあるかもしれません。レンタルサーバ上のファイルがprimaryという認識は持ちつつも、パソコンにコピーしてきたファイルをディレクトリごといじったりしたものをrsync -av --deleteで反映させたりしていましたから。消えてしまったものはしかたがないので、今からちゃんとやりましょう。なぜ消えたのかの追求はめんどうなのでパスします。 まずレンタルサーバにあるファイルをprimaryとします。他のものは全部コピーです。そしてiPhoneの LiquidLogicから直接変更するのは基本の機能とします。iPhoneのローカルにコピーするという運用も考えられますが、ちょこちょこメモしたものをいちいち同期するのはめんどうです。 もう一つのアクセス方法はパソコンからです。そのうちLinuxに移行しようと思っているのですが、現状はWindowsなので、今の状況のみを考慮することにします。基本的にrsyncで同期したものをCygwin Terminal上のtmuxでvimで編集しています。sshでレンタルサーバにアクセスして直接変更してもよいのですが、タイムアウトして接続が切れるとめんどうなんですよね。 で、今回はrsyncでローカルにコピーしてファイル内容の変更だけではなく、移動削除を気楽にやってアップロードして反映したために消えてしまったと思われます。細かい原因は追及していないのでわかりませんが。 取るべき対策として、ファイルが消えないようにするのと、不具合が起きたときに原因がわかるようにするという2つがあると思います。 前者の対策としては、ファイルの移動などはsshでアクセスして、レンタルサーバ上のファイルを直接変更するようにするぐらいでしょうか?rsyncの--deleteを使わなければ消える心配が減りますので。抜本的な対策をするならばバージョンコントロールシステムの導入でしょうか?でも、あまりめんどうなのは勘弁願いたいところです