TakesxiSximada

しむどん三度無視

しむどん三度無視
Updated at Created at

インターネットの片隅に秘密基地を作る

TL;DR 秘密基地と称してマイクラのようなゲームMinetestのサーバを構築した。 知人数人を集めてプライベートな遊び場とし、毎日定時に集まって開発している。 Minetest楽しい。 秘密基地 「秘密基地」大なり小なり誰しもがみな幼少期もしくは10代の頃に一度は構築を試みる。選ばれた人しか入ることを許されない領域だ。いい大人であっても、この言葉に少しだけ心を動かされる。現実は厳しい事情や状況が多い。だからこそ...

しむどん三度無視
Created at

すこしやすまないと。もうがんばれなさそう。しっかり息をしないと。

しむどん三度無視
Created at

文書の校正を工夫する

textlint これらの記事を参考にtexlintの整備をする。 https://mako-note.com/ja/textlint-emacs/ https://blog.piyo.tech/posts/2018-10-10-textlint-on-emacs/ https://zenn.dev/eggc/articles/1f8f1a095e87c3 それぞれ記述している内容はほとんど同じ内容だ。ここでやったことはそれらの記事の内容をほぼそのまま行っている。ファイル名やファイルパスなど微妙に変更したが、概ね同じ方法になっている。 まずはtextlintをインストールする。 npm install -g textlint 次に校正ルールをインストールする。ここでは技術文書向けの校正ルールを用いる。 npm install -g textlint-rule-preset-ja-technical-writing textlint-rule-preset-ja-spacing npm install -g textlint-rule-unexpanded-acronym textlint-rule-write-good textlint-rule-ginger textlint-rule-alex textlint-rule-common-misspellings textlint-rule-en-max-word-count Org-m...

しむどん三度無視
Created at

Netlifyでビルド用イメージとして使用していたUbuntu Xenialのサポートが切れるためFocalにアップグレードする

このブログの継続的デプロイのパイプラインはNetlifyで稼動している。記事整形はHugoという静的サイトジェネレータを使用しており、パイプラインで生成した静的ファイルをNetlifyでホスティングするという形式になっている。いわゆるJAM Stackと呼ばれる構成だ。 しばらく前からNetlifyの管理画面上に警告が出ていた。どうやら継続的デプロイのパイプラインにビルドイメージとして使用していたUb...

しむどん三度無視
Created at

判断を間違えないということ

どのような行動を取るのかというのは、その瞬間の判断の結果だと思う。 判断力や思考力が落ちていると、適切な判断ができずその結果として間違った行動を取る、 もしくは期待する行動を取らないということになる。この状態の連続によって生活が成立する。 何の話をしているかというと、大きな話をしているわけではなくて、 例えば毎日決まった時間に家を出たり、決まった時間に働いたり、休んだりする。 そういう小さな判断の話だ。 そう...

しむどん三度無視
Created at

MinetestサーバーにエレベーターModを導入した

ここ1ヶ月ほど毎朝、オンラインで同時プレイできるマイクラ風のゲームMinetestのサーバを用意して複数人でプレイしている。 数人のプレイヤーがいるため、作業はそこそこのスピードで進む。 穴を掘り始めるとそれなりの深さまで到達する。深度-5000に到達すると、上下の移動に時間がかかるようになった。 そこでエレベーターmodを導入することにした。 MinetestのModのインストールは非常に簡単で、Mod...

しむどん三度無視
Updated at Created at

Google Identity Servicesを用いてGoogleのOAuth2ログインを利用する

GoogleでのOAuth2ログインを用いるためにこれまで使用していたJavaScriptプラットフォームライブラリが2023年3月31日に廃止される。そのためこの機能を利用しているなら、Google Identity Servicesに移行する必要がある。既存のクライアントIDは影響を受けないが、新しく作成されたクライアントIDは古いプラットフォームライブラリを使用できない1。また2022年07月29日以前に作成...

しむどん三度無視
Created at

1週間の自分の行動を振り返る

期間がかなりあいてしまったが直近一週間の自分の行動を振り返り、問題箇所を探してみることにした。 目標 今回は得にそれぞれのプロジェクトに対する比重を調整することを目指す。 その値は今後1週間のタスクの割り振りに反映することを想定している。 データ 2022-09-10から2022-09-16までのデータを集計する。 wakatime 7:35 over the Last 7 Days from Yesterday. type coding 4:45 (62.75%) planning 1:59 (26.24%) write docs 0:50 (11.01%) system Linux - 7:35 (100.00%) language Python - 4:27 (58.65%) Org - 0:50 (11.01%) magit-process-mode - 0:39 (8.61%) essay-mode - 0:26 (5.87%) Dired - 0:15 (3.36%) kubernetes-overview-mode...

しむどん三度無視
Created at

作業を可視化して力の分散を抑える

TL;DR Minetestでのワールド内やシステムの成長速度が遅いため協力体制を取りやすい環境を整備することにした。 Github projectsを導入し、運用ルールを整備した。 力が分散している 2022年08月頃から仲間内の数名でMinetestというゲームをプレイしている。これはマインクラフトのようなゲームで、その世界の中で物資を採掘したり、素材からツールを合成し、建物を建てたり、道を作ったりして、世界の要素を増や...

しむどん三度無視
Created at

[WIP] fluentbitを使う

docker run -it --rm \ --workdir="/workdir" \ --volume "$(pwd):/workdir" \ --name="fluentbit" \ fluent/fluent-bit:latest

しむどん三度無視
Updated at Created at

oauth2-proxyで特定のアクセス方法の場合に認証をバイパスする

oauth2-proxyで特定のアクセス方法を使用した場合の認証のバイパスの設定方法について調べた。 特定のドメインをホワイトリストとして指定してバイパスする 特定のドメインからのリクエストの認証をバイパスするには --white-list-domain を指定する。 IPアドレスを指定してバイパスする ドメインではなくIPアドレスをバイパスしたいときもある。 その場合は --trusted-ip オプションにIPアドレスを指定する。 oauth2_proxyをリバースプロ...

しむどん三度無視
Created at

今は振り返る時間も取れない。別に自分が能力的に優れているのではなく寧ろその逆で あって、要領や効率が悪かったり、一部のどうでもいいようなこだわり、怠け癖や甘え や不誠実さといった弱い部分によって、このせっぱつまった状態が発生している。でも 今は本当に時間を取れないから、目の前のことに集中して、時間に余裕ができてから 振り返りを行うことにする。

しむどん三度無視
Created at

Djangoのbulk_updateの挙動を確認する

DjangoのORMの更新処理用にbulk_update()というメソッドが用意されている。 これは基本的にはSQLのUPDATE文を発行するのだが、通常とは違いCASE、WHEN、 THENを用いて複数の種類の値に対して1度UPDATEで更新できるようなSQLを発行 する。例えば次のようなSQLとなる。 UPDATE `fruits` SET `kind` = CASE WHEN (`fruits.id` = 1) THEN 'orange' WHEN (`fruits.id` = 2) THEN 'apple' WHEN (`fruits.id` = 3) THEN 'grape' WHERE (`fruits`.`id` IN (1, 2, 3)) これは実際に発行されたSQLではないが、...

しむどん三度無視
Created at

やりきるためには、どうなったらやりきったと言えるのかという完了を具体的かつ客観的な指標で定義する必要がある。 何事もやりきったほうがよい。せめて今日は、具体的かつ客観的な指標で完了を定義して、それらをやりきって1日を終えようと思う。

しむどん三度無視
Updated at Created at

GoでDynamoDBを操作する

GoでDynamoDBを操作する。ライブラリとしてはaws-sdk-goを使用する。 dynamoなどの 便利なラッパー が開発されているが、 そのようなラッパーを使用していると実際に行っている操作が見えにくくなる。 そのため今回は使用しない。 テーブル定義 以下のテーブル定義を用いる。プライマリーインデックスにcodeという属性、 セカンダリインデックスにexternalCodeという属性を指定している。 table-definition.json:: { "AttributeDefinitions":...

しむどん三度無視
Created at

[WIP] アクターモデルの歴史を再考する

https://eighty-twenty.org/2016/10/18/actors-hopl https://blog.mookjp.io/memo/history-of-actor/

しむどん三度無視
Updated at Created at

GoのHTTPリクエストライブラリRestyを使う

GoのHTTPライブラリにRestyというものがある。しばしばこのライブラリを使 用する機会があるため、調べたことを備忘録的に記述する。そのため網羅的な 内容ではない。 RestyでHTTPリクエスト送信のリトライ処理を行う 何度失敗すれば諦めていいのか、これは人生にとって重要な問題だ。 1度の失敗で諦めていいのか、もしくは無限に諦めず挑戦しつづけてもいいのか、これを判断するのはとても難しい。 この難しい問題...

しむどん三度無視
Updated at Created at

aiohttpを無理やりmockする

Pythonの非同期HTTPライブラリにaiohttpというものがある。とても完成度の 高いライブラリではるが、aiohttpを使用しているコードに対してテストを実 装しているとHTTPリクエストの送信処理に対しmockを適応できなくてもどかし い思いをすることがある。今回はaiohttpを無理やりmockする方法について考える。 送信処理をダミーに差し変える まずはよくあるケースとして、HTTPリクエスト...

しむどん三度無視
Updated at Created at

PythonのHTTP関連ライブラリ

urllib.request 標準ライブラリに含まれている。 import urllib.request resp = urllib.request.urlopen("http://example.com") return type(resp) <class 'http.client.HTTPResponse'> requests ほぼデファクトとなっている。ただし非同期IOには対応していない。 import requests resp = requests.get("http://example.com") return type(resp) <class 'requests.models.Response'> aiohttp https://docs.aiohttp.org/ 非同期IO用のHTTPライブラリ。 サーバーとクライアントの両方を提供している。 import asyncio import aiohttp.client async def main(): async with aiohttp.ClientSession() as client: return await client.get("http://example.com") return type(asyncio.run(main())) <class 'aiohttp.client_reqrep.ClientResponse'> TODO trace_configオプションを有効にする SCHEDULED: <2022-08-16 Tue> CLOCK: [2022-08-16 Tue 18:19]–[2022-08-16 Tue 21:10] => 2:51 リクエストの送信ログを取得する方法としてt...

しむどん三度無視
Updated at Created at

手本にしているWebサイト

自分が気に入っていて手本にしているWebサイトをリストアップしておく。 全体的にとてもシンプルで無駄がない。画像もほとんど使用していないため、 古いブラウザでも最新のブラウザでも、簡易な実装しかしていないブラウザで も、テキストエディタでも、常に正しく表示できそうだ。息の長い技術によっ て殆ど保守をしなくても良い形で作成されている。 通常のブラウザで表示させる時の左側のナビゲーションは、ewwなどで表示さ せ...

+++  · 1 min read

しむどん三度無視
Created at

早朝開発タイム

「朝活」などと称して、朝カフェに出向いてはそこで作業をしていた。もうこ こ数年ずっとだ。たくさんのカフェ代を使用して、作業時間を捻出してきた。 「家でやればいいじゃん」と言われそうだが、それは違う。家でできないから 外でやっている。家で様々な誘惑に晒された状態で集中することはとても難し い。「意識高い系」と小バカにする人もいたが、ここ数年ほぼ毎日カフェに通っ ていることを考えると、意識高い系もあながち侮れな...

しむどん三度無視
Updated at Created at

Cloudflare Tunnelを使う

開発中のやWebサーバーなどの機能を公開する時、これまでNgrokを使用してい た。ローカルで実行するngrokコマンドはNgrokのサーバーとトンネルを確立し、 Ngrokが保有するドメインへのアクセスをトンネル経由でローカルへと転送す る。ngrokコマンドまで到達した通信は、ngrokコマンド起動時に指定した先へ とさらに転送される。Ngrokにはいくつかプランが用意されている。無料であ るフリープラ...

しむどん三度無視
Updated at Created at

Stripeで決済機能を実装する

今回はこの機能について調べた。 Stripe CLI Stripeは開発のためのいくつかの機能をCLIとして提供している1。 インストール Homebrewからインストールできる。 brew install stripe/stripe-cli/stripe またその他のインストール方法についてもドキュメントに記載されている。 ログイン stripe-cliをインストールするとstripeコマンドが使えるようになる。 まずはstripeコマンドをログイン状態にする。 stripe login 実行するとURLが表示される。...

しむどん三度無視
Updated at Created at

DynamoDBのデータ更新処理方法をいくつか検討する

AWSが提供するフルマネージドNoSQLデータベースサービスであるDynamoDBには、 データ更新の方法が複数ある。DynamoDBを気軽に導入していくと、ビジネスの 要求によってはDynamoDBに向かないデータ更新を選択せざるを得なくなること になってしまう。そういった状況に陥いらないためには、どのような要求が有 り得るのか、もしくはどういった要求は有り得ないのかといったことを、事前 に洗い出して検討...

しむどん三度無視
Created at

臨戦体制

6日間、緊急事態での臨戦体制で過した。締め切りに追われることはしばしば あれど、緊急事態の状況になることはしばらくなかった。久しぶりに舌がピリ ピリした。もしかしたら6日間という長期間を臨戦体制で過すという経験自体 実は初めてだったかもしれない。6日間と言えばほぼ1週間だ。何度もワークア ラウンドをした。傷だらけになった気がする。でも貴重な体験をしたと思う。 自分自身の成長も感じられた。落ち着いたら、このこ...

しむどん三度無視
Updated at Created at

Emacs Lisp Tipsと雑多に考えたこと

Emacsはテキストエディタであり、以前はViに並んで一時代を築いていた。現 在は、Visutal Studio Codeに押され、NeoVimに押され、その他のIDEに押され、 一時期の勢いはないように感じるかもしれない。ただまだまだ根強い人気があ り開発も活発だ。最近ではEmacs 28がリリースされた。しばらく前からEmacs はWebkitを飲み込んだため、ブラウザとして完全なるWebブラウザとしても使 用できるよ...

しむどん三度無視
Updated at Created at

[WIP] Reactについて考える

仕事ではReactを用いてフロントエンドを開発することが多いが、きちんと理 解できているかと問われると疑問なところだ。そのため情報を整理して、理解 を深めていこうと思う。 create-react-app でReactアプリケーションを作る ディレクトリ構成はこのようになります(node_modulesは省略しました)。 sample ├── README.md ├── package.json ├── public │ ├── favicon.ico │ ├── index.html │ └── manifest.json ├── src │ ├── App.css │ ├── App.js │ ├── App.test.js │ ├── index.css │ ├── index.js │ ├...

しむどん三度無視
Created at

[WIP] Webhookのテストにはmitmproxyを使う

辛いことや苦しいことから逃げないためには、武器を使って戦う必要がある。 素手で戦おうとしても辛いことや苦しいことに打ちのめされて終りだ。今取り 組んでいることに全力を出しているか?何度も何度も自分に問いかけて、それ を支えてくれる武器をたくさん見つけてほしい。今回はその武器として mitmproxyを使うことにした。 ちなみにMITMとはMan In The Middleの略称だ。ハッキングの技術の1つに中間 者攻撃(M...

しむどん三度無視
Updated at Created at

[WIP] GoでSQSを操作する

Webサービスを開発しているとSQSのようなメッセージキューを使用したくなるシーンはとても多い。遅延タスクの管理に用いたり、ユーザーのメッセージを処理するための一時的なデータストアにしたりと様々だ。更に最近ではGoを用いてサーバーサイドの実装をするケースも多い。そこで今回はGoでSQSを操作する方法を確認する。 Queueの作成 まずはQueueを作成する。Queueの作成はGoで実施することはあまり...

しむどん三度無視
Updated at Created at

各種SaaSの関連サーバーをDockerで起動する

昨今のWeb関連のシステムでは様々なSaaSと連携して、実装や運用が行われる。 ログ、監視、クレデンシャル、データストアまたは実行環境もサーバーレスと いった携帯でSaaSを利用することがある。ローカル環境でそれらを使用するこ とも可能だが、ローカル環境であればローカルで閉じた環境で実行させた方が、 開発効率が上がる。幸いDockerなどを用いるとローカルで実行可能な環境をそ れほどの労力をかけることなく構...

しむどん三度無視
Updated at Created at

GNU Emacsのインストール方法を考える

GNU Emacsをインストールする方法はいくつもある。絶対的に正しいやり方な ど存在しないから、思い思いの方法でインストールすればよい。行いたいこと によっては、特定のインストール方法を用いた方が良いこともある。今回は Emacsのインストール方法について考えてみたい。ただし、あくまで自分にとっ てどのような方法が適切かを考えるのであって、インストール方法を網羅した りするつもりはない。 注意 :: 特別な断りなくEm...

しむどん三度無視
Updated at Created at

Emacs 28系がリリースされた

2022年04月04日にEmacs 28系である28.1がリリースされた。 主な修正内容は以下である1。 Lispファイルのネイティブコンパイル HarfBuzzを使用したテキストの整形とCairoを使用した描画 セキュアコンピューティングフィルターのロードのサポート 絵文字と絵文字シーケンスの表示が大幅に改善されました 機能のグループを文書化するための新しいシステム コンテキストメニューのマイナーモード モード固...

+++  · 3 min read

しむどん三度無視
Created at

今日も限界まで進んだ。できることをできる範囲でやった。得に目立った成果 はない。いつもの様に仕様を考え、実装し、プルリクエストを作り、テストし、 コードレビューし、リリースする。朝、夕にはスタバに行っていつものように 一時代前の意識高い系になる。そんな1日を毎日過ごす。僕にできる仕事があ るうちは、その仕事に全力で取り組む。もし僕の能力がオワコンになったら、 田舎に帰ってひっそりバイトでもして暮らす。もし求...

しむどん三度無視
Created at

ただの日々の所感

決算が終わり税理士の先生と打ち合せをした。「この売り上げを一人で5年以 上も維持しているのは凄い」とお褒めの言葉を頂いた。税務のプロからそのよ うなお言葉をいただいて、少し嬉しい気持になった。普段そういう機会はない からだ。もちろんこの結果は自分一人の力ではなく周囲のいろんな人や環境や 状況が、僕の行動を縛り監視し、そして支えてくれているから実現できたこと だと思う。 孤独で息苦しいと思うこともあるし、もっと...

しむどん三度無視
Created at

「100人のトロール」を読んで考えたこと

https://laiso.hatenablog.com/entry/2022/05/08/just-be-friendsを読んだ。 ブログなどWebで公開する日記やエッセイのような文章の読者には、ある割合 で批判することを目的としている人が読み批判する状況となるという内容だ。 文中では批判することを目的としている人のことをトロールと呼び、このトロー ルとの向き合い方について述べている。 トロールとのやりと...

しむどん三度無視
Updated at Created at

macOSのデスクトップにファイルを表示させない

デスクトップは不要 デスクトップはよく使うファイルやアプリケーショのショートカットを配置し 作業効率を高めるためののもだ。しかしデスクトップにはどうしてもファイル が溜まっていく。たまにデスクトップいっぱいにファイルが表示されている人 も見かける。デスクトップに大量のファイルが表示されていては、もはやその 役割を果たしていない。 デスクトップは表示回数が多いため視界に入りやすい。その度に今集中してい る事以外の...

+++  · 2 min read

しむどん三度無視
Created at

[WIP] HMACについて考える

HMACについて考えることにした。言葉は知っている。どんな時に使用されるも のかも何となくわかる。どんなライブラリを使えば、結果を得られるのかもわ かる。でも、どうやったらそれを計算できるのかを知らない。 考えれば、そういう勉強を今までたくさん省略してきた。省略したほうが、効 率良く学べるからだ。何かを作る時、アルゴリズムを知らなくても、アルゴリ ズムを実装したライブラリとその使い方さえ知っていれば、サービ...

しむどん三度無視
Created at

PCを壊してしまったので中古のMac Book Proを購入した

不注意でMac Book ProにType-Cのケーブルの端子を挟み込んでしまった。ヒビ こそ入らなかったものの液晶に線が入るようになってしまい「修理に出す必要 がありそうだな」などと考えながらPCを再起動すると、起動してこない状態に なっていた。林檎のマークさえ表示されない。予想以上に深刻なダメージを受 けていたようだ。 問題なのはこのPCは仕事で使用しているメインマシンであることだ。サブ機は 1ヶ月ほど前に知人に譲...

しむどん三度無視
Updated at Created at

[WIP] WireGuardを使う

インストール https://www.wireguard.com/install/に各環境のインストール手順が記述されている。 macOS brew install wireguard-tools Ubuntu sudo apt install wireguard デモ環境への接続 vagrantの環境を起動して既に用意されているデモ環境に接続できることを確認する。 接続のための手順はDemo Serverをそのまま実施した。 vagrantを起動する。 $ vagrant status Current machine states: default poweroff (virtualbox) The VM is powered off. To restart the VM, simply run `vagrant up` Process vagrant: In /opt/ng/symdon/pages/posts/1615012512/ finished $ vagrant up Bringing machine 'default' up with 'virtualbox' provider......

しむどん三度無視
Created at

[WIP] Celery Workerを安全に停止させる方法を考える

しむどん三度無視
Created at

入院のおとも

入院のお供について考える必要が出てきた1。期間は2週間程度。入 院の退屈を消滅させ、かつ退院した後にちゃんと普段の生活に戻ってこれるよ うにするには何がよいのかを考えることにした。 基本的には縛りが厳しくなく、自由度が高く、創意工夫の余地のあるものを集 めることにした。ただしそんな環境だけでは息がつまるから、シンプルに Amazon Primeでダウンロードした動画のうち、長そうなものを含めたがここで は省略する。 まずは...

しむどん三度無視
Created at

最近、netlifyでホスティングしているblogが良く落ちる。 前段にCloudFlareを配置していて以下のような構成になっている。 +---------+ +-------------+ +-----------+ | | (1) | | (2) | | | Client +-------->+ CloudFlare +------->+ Netlify | | | | | | | +---------+ +-------------+ +-----------+ この(2)の疎通が上手くいかずダウンしているようだ。理由は良くわかってい ない。構成としてはいわゆるJAM Stackなのだが、GithubのPushのタイミング に連動してデプロイさせており、またブランチ運用などして...

しむどん三度無視
Created at

手元のEmacsを今日時点の最新のソースコードを取得し、ビルドしなおした。 emacs-versionは29.0.50となっている。開発版にはだいたい .0.50 という バージョンが付番されている。なにかルールがあるのだろう。 特にビルドも問題なくでき、起動も何度か失敗しながらだが起動できた。 unicode-escape だけが最後まで上手くインストールできず、常に使ってい るパッケージでもないことから、コメントアウトすることで対処した。余裕...

しむどん三度無視
Created at

毎日、全力で目の前の仕事に取り組んでいる。複数の種類の異なるタスクがあっ て、それを早く高い品質で、手から離れるように取り組んでいる。 記憶力の低下、混乱、発作などと向きあいながら、なんとかやってきた。 今は少しだけ調子が良くなってきたようにも思う。 そんななかで取り組んでいることが何なのかということを考ると、 集中することの練習をしているように思う。 雑念は常に湧いてくる。人間はそもそも長時間の集中に耐えら...

しむどん三度無視
Created at

https://speakerdeck.com/mokuzon/after-da-fang-chu 明日読む。

しむどん三度無視
Created at

自分はまだ未熟であると認識しているし、もっと学ぶ必要があると感じる。 たまに調子にのってしまいそうな言葉をかけてくださる方がいらっしゃる。 ありがたいことではあるが、それに驕らずしっかりと学んで、 学んだ事をきちんと現実の世界に反映していきたいと思う。

しむどん三度無視
Created at

過去やったことを思い出すことに時間がかかったり、思い出せなかったりといったことが良くある。 特に問題になるのは継続性が必要な時で、以前の方針とは全く異なる方針を取っていたりする。 もうずっとこんな状況な気がする。 会話中に考えがまとまらなくなるということもある。 やばいなぁと思えば思うほどやばくなる気がする。 外での作業でマシになったかなぁと思ったが、気のせいだったのだろうか。

しむどん三度無視
Updated at Created at

心の不安定さとちゃんと向き合う

心が不安定な状態の時に、その状態をなんとかするために行った生活上のチューニングをまとめていく。内容を変更しながら、継続的に更新している。 状態 ずっと精神的に安定しない。何もやる気がせず、活力を失っていたり、イラついていたり、激しく孤独感を感じたり、焦燥感に襲われていたりする。混乱状態の時にはいつもどおりの行動が難しく、衝動的な行動を取ってしまう。ずっとその状態というわけではないが、継続的にそういう状...

しむどん三度無視
Created at

読んだ。GitLabがどのような取り組みを行っているのかとても勉強になった。 内容を読んでいて、納得できる部分と、これは違う見方もあるのじゃないかな という部分とがあった。余裕があったら文章化して、自分の身の周りにも適応 してみたい。 https://learn.gitlab.com/c/gitlab-presentation-developers-summit?x=JBqxmQ

しむどん三度無視
Updated at Created at

gofpdfを使う

Goを用いてPDFを操作する機会があったため、gofpdfの使い方についてまとめる。 gofpdf とは https://github.com/jung-kurt/gofpdf/ gofpdfはPDFを生成するgoのライブラリ。テキスト、図面、イメージを実装し ている。READMEに実装している機能が記載されている。 Features Choice of measurement unit, page format and margins Page header and footer management Automatic page breaks, line breaks, and text justification Inclusion of JPEG, PNG, GIF, TIFF and basic path-only SVG images Colors, gradients and alpha channel transparency Outline bookmarks Internal and external links TrueType, Type1 and encoding support Page compression Lines, Bézier curves, arcs, and ellipses Rotation, scaling, skewing, translation, and mirroring Clipping Document protection Layers Templates Barcodes README.md抜粋...