はしくれエンジニアもどきのメモ

情報系技術・哲学・デザインなどの勉強メモ・備忘録です。

Bing Chatとペアプロできる時代がきた

Bing Chatとペアプロできる時代がきた

世間はChat-GPT4で持ち切りですが、Bing Chatでもいい感じのコードを生成してくれるぞという成功例メモ。 今のBingChatは最大15ターン150回まで利用できるようになった。 個人的には、

  • 無料
  • APIキー必要なし
  • モバイル利用OKは

かなりのメリットだと思っている。

今回は、doctestを使ったときにmodule単位でなく、 doctest.run_docstring_examples()あたりを使ってクラス単位でテストして、(失敗数, try数)である集計結果を得る方法はないのか聞いてみた。 (なぜかdoctest.run_docstring_examples()TestResultを返り値で返してくれない。)

一応、事前のやり取りで、doctest.DocTestRunner`を使うと良さそうというアタリは付けている。

で、(私が少し手直ししているが)できたコードはこんな感じである。🎉

import doctest
def doctest_objAll(obj, verbose = True, optionflags = 0):
    finder = doctest.DocTestFinder()
    runner = doctest.DocTestRunner(verbose = verbose, optionflags = optionflags)
    tests = finder.find(obj)
    for test in tests:
        runner.run(test)
    return runner.summarize()

ちゃんとこのコードは動き、しかも公式ドキュメント(https://docs.python.org/ja/3/library/doctest.html)に そっくり載ってるコードでないところが重要ポイントである。(なぜドキュメントにサンプルコードないねんと言いたいところだが)

このコードはできるまでの流れを、(スマートではないが)以降に残しておく。

環境・事前準備

  • Windows11 64bit
    • Edge バージョン 110.0.1587.69 (公式ビルド) (64 ビット)
    • WSL2
    • Docker Desktop 4.17.0 (99724)
    • jupyter
      • python 3.10(生成コードの確認)

続きを読む

Pythonで循環リスト(circular list; 初期位置リセット可)を作る

Pythonで循環リスト(circular list; 初期位置リセット可)を作る

いい感じの循環リストがなさそうなので作ってみようというメモ

環境・事前準備

  • Windows10 64bit
    • WSL2
    • Docker Desktop 4.17.0 (99724)
    • jupyter

続きを読む

Mesonの使い方メモ

Mesonの使い方メモ

Mesonの情報無さすぎるということでメモ。 触ってみた所感としてcmakeより楽なんだろうけど、どのbuitinオプションがどの引数を制御してるかなどがわかりにくい.. (ver0.61なので今後変わりそうですが)

The Meson Build system

mesonではビルド方法を2種類に分けている

  • native build: build machineとhost/target machineが同じ
  • cross build: build machineとhost/target machineが別

今回はnative buildを中心にまとめる。

環境・事前準備

今回はDocker上にMesonをインストールした状況を想定してる。 Mesonはpipからインストールできる。

$ pip3 install meson
  • Windows10 64bit
    • WSL2
    • DockerDesktop 4.5.1 (74721)
      • base image: Debian 11
        • Meson 0.61.2

続きを読む

はてなブログでmermaidの図を描く

はてなブログでmermaidの図を描く

Githubでもサポートされたmermaidをはてなブログでも描けないか試したところ多少なんとかなったのでメモ。

 ```mermaid
graph TB
  H["Hatenaで"]
  M["mermaid"]
  H-->M
 ```

👇上のmarkdownコードがこうなる

graph TB
  H["Hatenaで"]
  M["mermaid"]
  H-->M

続きを読む

emscriptenでよくみるoption-flagをまとめる

emscriptenでよくみるoption-flagをまとめる

emcc --helpしても出てこないオプション(e.g. clang由来のものとか)もあってよくわからんとなったのでメモ。

環境・事前準備

今回はDocker上にemscriptenをインストールした状況を想定してる。

  • Windows10 64bit
    • WSL2
    • DockerDesktop 4.5.1 (74721)

続きを読む

DockerでExited(139)が出たときの対処

DockerでExited(139)が出たときの対処

doker runしたときにコンテナが立ち上がらずExited(139)で終了してしまうときの対処メモ。

この終了コードはDocker Desktop上でも確認できる。

f:id:cartman0:20220307003209p:plain
Exited(139)

環境・事前準備

  • Windows10 64bit
    • WSL2
    • DockerDesktop 4.5.1 (74721)

続きを読む

Docker+VSCodeのRust環境を作る

Docker+VSCodeのRust環境を作る

RustがCとPythonの間(C寄り)の中級型言語でCより書きやすく速度はCと大差ないらしいということで、触りたくなったのでWindowsでの環境構築を調べたメモ。

GUIアプリを作るようなケースでなければ以下の方法で問題ないはず。

  • .devcontainerを使わない方法(1ファイルのみのコンパイル・実行なら可能)
  • .devcontainerを使う方法(ワークスペース・パッケージ単位のビルド、1パッケージのデバッグ、補完やらが可能。基本的にはこっち)

環境・事前準備

VSCode(+拡張機能RemoteContainer)とDockerDesktopはインストール済みを想定

続きを読む

Jupyter上にGraphvizの図をSVGで描画する

Jupyter上にGraphvizの図をSVGで描画する

Jupyter上にGraphviz(.dot)の図をSVGで描画することに成功したのでメモとして残す。(※拡張機能としてはまだ作れていない)

Viz.jsのおかげでJavaのインストールすら不要になった..!

dotファイルのコードを書いてあげればこうなる👇

f:id:cartman0:20220211190623p:plain
jupyter上にGraphvizの図を描画

gist上では表示されないがnbviewerを通せば図も表示される。

https://nbviewer.org/gist/Cartman0/5a7cfadc2f367869f2df506577ace525

また、IPythonのカーネル周りの挙動もドキュメントがなく分かりづらいのメモとして残す。

試した環境

DockerDesktopはインストール済みを想定

  • Windows10 64bit
    • DockerDesktop 4.4
      • scipy-notebook Image

続きを読む

畳み込み積分は結局何を計算してるのかメモ

畳み込み積分は結局何を計算してるのかメモ

畳み込み積分フーリエラプラス変換で周波数領域にすると積の形にできて便利だよねくらい雑に理解してたので、 時間領域でどんな計算してるのかメモとして残す。

この記事で出てくる式や図はgistにまとめている。

convolution_integral.ipynb · GitHub

続きを読む