いしぐめも

プログラミングとかしたことを書きます。

Streamlit component APIに入門する

「StreamlitってReactっぽいよな~~~」って思いつつ、書けば使えてしまうので何となくで使ってきたStreamlitですが、Streamlitの動作に対して理解を深めるべく Streamlit Componentに入門してみたいと思います。 Streamlitとは Streamlit Component API 自…

【Azure Functions】ローカル開発でもカスタムコンテナーを使いたい!

Azure Functionsを利用するアプリ開発(≠Azure Functionsの開発)において、どのようにローカル開発を行うかというのは大きな課題です。 一番ベタなのは azure-functions-core-tools を使用しての開発かなと思いますが、Functions自体はコンテナ化しておきた…

えっ?!全部の受信ポートを拒否しながらVSCodeでリモート開発を?!【ConoHa編】

「できらぁ!!!!」 というわけで、この記事は、ConoHa Advent Calendar 2022 20日目 の記事です。急遽20日目が空いたので、急いで書きました。 はじめに 以前、Visual Studio Code(以下、VSCode) がRemote Tunnelという新しいリモート開発方法を提供開始…

Visual Studio Code の Tunnel 機能が便利

Visual Studio Code に新しいリモート開発「Tunnels」が追加されました。 これが便利すぎるので、是非とも使っていきたいなと思うんですが、同時に懸念点もあるのでそこらへん書きたいなと思います。 Remote Tunnels とは Visual Studio Code (以下、VSCode)…

【VSCode】コンテナを利用した開発環境の構築について【devcontainer】

Dockerコンテナを使った開発が結構便利で人にもオススメできるレベルになってきたのでご紹介します!正直コンテナって聞いただけで「ウッ」となってしまう方もいると思うので、極力メリットとかも書いてみたいと思います。 Dockerコンテナ×開発環境 そもそも…

Windows 8.1 でも VSCode で Remote - Containers したい!

Visual Studio Code の Remote - Containersですが、Remote - SSH と組み合わせることで、リモートのDockerホストを用意すればクライアント側にdockerが入っていなくてもdevcontainerを使用することができるようになりました。 詳細は以下に記事にしたのでそ…

Java 8 から Java 17 への移行メモ

私が携わっているOSS「Personium」のJava 8からの移行に係るトラブルに対しての対処を書いていきます。Personiumでは Java 8 → Java 11 → Java 17 というステップで移行を進めていく方針になっていて、今回は「Java 11 → Java 17」を行った際のメモです。よ…

JDKアップデートしたらsecureValidationでテストがコケたので暫定対処をしました

JDK17へ移行しようとテストコードを流していたらRSA-SHA1を使用している部分で以下のエラー。 It is forbidden to use algorithm http://www.w3.org/2000/09/xmldsig#rsa-sha1 when secure validation is enabled どうもsecureValidationが有効な状態だと、…

Azure Functions の開発にはdevcontainerを使うと便利だった

Pythonを使用したAzure Functionsの開発に Visual Studio Codeのdevcontainerを使用しようというお話です。 はじめに どうも、devcontainer大好きdevcontainerおじさんです。 最近Azure Functionsで普段は使用しないpythonを使って開発してみようと思い触っ…

devcontainer × docker-compose で共有サーバーで複数人開発を行う

Visual Studio Code の devcontainer (Remote Containers拡張機能)を使用した共有サーバーでの開発について書きます。 課題感 プロジェクトで共通のサーバーを用意してみんなで使いまわそう!みたいになった時、ミドルやDBの管理はどのようにしていますか? …

いつの間にかVSCode の Remote - Containersが超絶パワーアップしていた件【docker client 不要】

以前、「Docker Desktop for Windows」無しで Visual Studio Codeで「Remote - Containers」を使用するために Docker client を手動ダウンロードするお話を書きましたが、それがもはや不要だそうです。 yoh1496.hatenablog.com はじめに なんとなく Remote -…

プロキシ環境下でのVisual Studio Code Remote SSH の導入

プロキシ環境下で改めて Visual Studio Code の Remote SSH を使おうと思ったらドハマリしたのでメモ。 はじめに 以前はそんなことなかったと思うんですが、VSCodeの便利な拡張機能「Remote SSH」を使用しようとしたらリモート側のサーバー .vscode-server …

Webサーバーで公開していた資材(html, js)をTAURIで配布する

HTMLやJSで構成されたXHRを行うWebアプリをローカルで実行できるようにGitHub Actionsでtauriで固めて配布するという話です。 TAURI とは Webのフロントエンド技術を使ってデスクトップアプリケーションを作れるフレームワークです。 今までであれば、Electr…

Docker DesktopをアンインストールしてもVSCodeでRemote Containersしたい!(Windows10 + Remote Docker host)

Dockerクライアントを使いたいがためにDocker Desktopを入れていたのですが、今回それが使えなくなって困ったので対処したメモ。 背景 困窮した背景を書きます。 開発環境の構築にDocker使ってます Personiumの開発ではよくVSCode + Dockerを使って開発しま…

新型コロナワクチン接種証明書の署名をpythonで検証する

SMART Health Cards (SHC) はJSON Web Signature (JSON Web Signature) という形式で表されてからQRコード化されるため、そのQRコードを読み取った人が「接種証明書に記載されている発行元が発行したものか」「発行されてから改ざんされていないか」を検証で…

新型コロナワクチン接種証明書アプリで発行されたQRコードをPythonで読んでみる

接種証明書アプリ、PINを入力してマイナンバーカードをかざすだけで問い合わせ、発行ができてとても便利ですね。国の省庁が個人に対してこんなにサクッと証明書を発行できるという前例を作れたのはとても良いことだと思います。 発行される Credential は Ve…

プロフィールムービー用に顔の正規化を行うスクリプトを書きました

PythonとOpenCVを使って、顔写真の目と口の位置を合わせる処理「正規化」のスクリプトを組んでみました。 顔写真は撮った時のタイミングによって角度だったり、人物だったりが異なるわけですが、それを両目の位置、口の両端を手動で選択することで一定の位置…

はてなブログの記事にJSON-LDで構造化データを入れる

最近JSON-LDの勉強を始めて、どこかで実践できる場はないかな?ということで、自分のブログの記事ページに対して、JSON-LDで記述した情報を記載してみることにしました。 この内容は既に実践されている方がいて、以下の記事を大変参考にさせていただきました…

Personium上のファイルを操作(ダウンロード・アップロード・アクセス制御)してみよう

本記事では、PersoniumのBox上のファイルを操作する方法をコードサンプルと共に書いてみます。 CLI編 PersoniumのBoxは、WebDAVという、HTTPを拡張した仕様によってファイルの読み書きを行うことができます。 「WebDAV」という言葉自体、個人的には馴染みが…

Personium の access token をデコードして理解する

この記事では、Personiumの動作の理解を深めるためにアクセストークンについて調査を行った内容を記載しています。本調査を行うことで、Personiumを運用する上での理解を深めていきたいと思います。 なお、本記事の記載内容は、2021年9月現在GitHubで公開さ…

Personiumでよく使う用語集

Personiumでよく使う用語 セル(Cell) ボックス(Box) Personiumでよく使う用語 Personiumの用語、Personium自体が汎用的な作りになっていることもあり、かなり含みを持たせたような説明になっているので例とかを交えて紹介してみます。 理解への一助にな…

WebDAVをマウントするための代理で認証を行うプロキシを書いた

PersoniumのBox(データ保存領域)はWebDAVという仕様を踏襲しており、 単純なファイル操作などはWebDAVのライブラリを流用することができます。 リモートのWebDAVサーバーをあたかもローカルのファイルのように振舞わせるようなクライアントアプリが世の中に…

devcontainerを導入したら開発(主にテスト)が楽になった【Visual Studio Code】

Javaで開発しているOSSにおける Visual Studio Code の devcontainer 使用について以前記事を書きましたが、いったん便利に使えるようになってきたので記事にまとめたいと思います。 yoh1496.hatenablog.com このような方におすすめ 今回の記事はこんな方に…

devcontainerを別リポジトリで管理することにした

先日、開発にdevcontainerを使用するという以下の記事を書きました。 yoh1496.hatenablog.com とても便利なんですが、作ってみたはいいものの、「devcontainer」という機能自体がVisual Studio Codeの1機能に過ぎないので、 複数人が様々な環境で開発するオ…

VSCode の DevContainer で JDK 1.8 の開発環境を作る

自分が開発に参加しているOSS「Personium」では、adoptopenjdk8 を使用して開発を行っています。正直、Java歴が浅く、JDKのバージョンとかよくわかっていないんですが、OpenJDK 1.8の開発環境です。 devcontainer使用に至ったわけ 「devconteiner」は、vscod…

mavenのresources pluginでバイナリファイルが壊れてドハマりした件

起こったこと テストでバイナリファイルを使用しようとして、 InputStream is = ClassLoader.getSystemResourceAsStream("testBar.bar"); というようなことをしていましたが、どうも変な挙動を示し、テストが通らん通らん!となりました。 このbarファイルと…

Personium実行環境構築メモ(Oracle Cloud Infrastructure / aarch64編)

Oracle Cloud Infrastructure の aarch64な無料VMを使って、Personiumを構築してみたのでメモ。無料VMについては前回記事を参照してください。 yoh1496.hatenablog.com VMの作り方は、相変わらずキャパシティが足りないようなので気合、気合です。 使用したO…

Reactでも使用できるWYSIWYGエディタ「Editor.js」を使ってみた

はじめに みなさん、ブラウザで使えるWYSIWYGエディタ Editor.js をご存知でしょうか? editorjs.io 私は国産のパーソナルデータストアOSS「Personium」の開発コミュニティに参加しているんですが、簡単な記事投稿アプリを作ってみたくなり、今回EditorJSに…

Oracle Cloud InfrastructureにDockerでPersoniumを建てる

はじめに OCI(Oracle Cloud Infrastructure)でARM(aarch64)なVMのインスタンスを作れるようになりました。わーい(作れるとは言ってない。後述) japan.zdnet.com 詳細はいろいろプレスが打たれていて、記事も出ているのでそちらを参照いただくとして… …

SPAのURLどうなってるの問題とPersonium

はじめに みなさん、SPA(Single Page Application)作ってますでしょうか? SPAとは 従来はWebサイトでURLがリクエストされたときに、リクエストされたURLに応じてサーバーサイドでHTMLを生成し、返すような方法がとられていました。 それに対し、SPAではWe…