tcardgenでBlogのOGP画像を生成する

BLOGのアーティクルにOGPイメージは必要と思えたので、Hugo の OGP 画像を自動生成できる「tcardgen」を試したを参考にしています。実際、yamlの設定などは全く同じですし。違うとすれば、Windows環境なのでスクリプトをCMDのバッチファイルにしているくらいですね。 使用しているスクリプトはcovergen.batいう名前で内容は以下の通りの簡単なものです。 tcardgen -f tcardgen\fonts\ -o static\images\ogp\ -t tcardgen\template.png %1 OGP画像の配置先とか、そんなくらいですね、違うのは。テンプレートの画像は適当に作ったものです。

12月 22, 2025 · 1 分 · 14 文字 · gorn

実践Julia入門 ”貪欲”な言語の特徴を詳解

2023年にリリースされた書籍「実践Julia入門」は、科学技術計算の領域で注目を集めるプログラミング言語 Julia の包括的な解説書です。本記事では、この書籍のレビューを通じて、Juliaがなぜ「 貪欲な言語 」と称されるのか、その魅力と強力な機能について探っていきます。 なぜ今、Juliaなのか? Pythonの 手軽さ とC言語のような 実行速度 を両立させることを目指して開発されたJuliaは、特にデータサイエンス、機械学習、数値計算の分野でその真価を発揮します。動的言語でありながら、JIT (Just-In-Time) コンパイラによって高いパフォーマンスを実現。それでいて、数学的な記法に近い直感的な構文は、研究者やエンジニアがアイデアを素早くコードに落とし込むことを可能にします。 本書は、そんなJuliaのポテンシャルを最大限に引き出すための知識が凝縮された一冊です。 書籍「実践Julia入門」の概要 本書は「入門編」「基本編」「実践編」の3部構成となっており、初学者から実務でJuliaを活用したい中〜上級者まで、幅広い層を対象としています。以下にその広範な内容を示す目次を掲載します。 【入門編】 第1章 Juliaのインストールと開発: Juliaの基本的な特徴から、REPL、JupyterLab、各種エディタでの開発環境構築までをカバーします。 第2章 Juliaの基本文法: 変数、演算子、関数、制御構文といったプログラミングの基礎を学びます。 【基本編】 第3章 Juliaの標準ライブラリ関数: 豊富な標準関数やライブラリの使い方を解説します。 第4章 型システム: Juliaの柔軟かつ強力な型システムの概要、パラメトリック型、ユーザ定義型などを掘り下げます。 第5章 多重ディスパッチ: Juliaの最たる特徴である多重ディスパッチの概念と、ポリモーフィズムや演算子オーバーロードといった実用例を詳解します。 第6章 イテレーション: Juliaにおけるイテレーションの仕組みと、カスタムイテレータの実装方法を学びます。 第7章 ブロードキャスティング: . 構文を用いた効率的な要素ごとの演算(ブロードキャスティング)の仕組みと応用を解説します。 第8章 メタプログラミング: マクロや生成関数など、コードを生成するコードを書くための高度なテクニックを紹介します。 第9章 並行・並列処理: タスク、スレッド、マルチプロセスを活用したハイパフォーマンスコンピューティングへの道筋を示します。 第10章 パッケージマネージャ: 依存関係の管理や環境の再現性を保つためのパッケージマネージャの利用法を解説します。 【実践編】 第11章 数値計算: NLsolve.jl や DifferentialEquations.jl を用いた、非線形方程式や常微分方程式の解法を実践します。 第12章 データ解析: CSVやDataFrames.jlを使ったデータの読み込みから、基本的な統計処理までの一連の流れを追体験します。 第13章 機械学習: MLJ.jl や Flux.jl といったフレームワークを使い、Juliaでの機械学習パイプライン構築を学びます。 Juliaの”貪欲さ”を支える核心機能 本書の白眉は、単なる文法解説に留まらず、Juliaを特徴づける核心的な概念に深く踏み込んでいる点です。特に「基本編」で解説される以下の機能は、Juliaの”貪欲さ”、すなわち 表現力とパフォーマンスの両立 を理解する上で欠かせません。 ...

12月 8, 2025 · 1 分 · 113 文字 · gorn

SingularityのWSL2への構築

SingularityコンテナをWSL2上に構築しました。構築環境はSingularityの公式サイトの記述に基づき、Ubuntu 22.04上とします。 参考となるドキュメントは https://docs.sylabs.io/guides/latest/admin-guide/installation.html#installation-on-windows-or-mac に存在します。このドキュメントに従えば、Singularity 4.0.0がインストールされます。 手順としては以下の通りになります。 wget https://github.com/sylabs/singularity/releases/download/v4.0.0/singularity-ce_4.0.0-jammy_amd64.deb sudo apt install ./singularity-ce_4.0.0-jammy_amd64.deb まず、Singularity 4.0.0のUbuntu 22.04用のdebファイルを取得します。しかる後に、debファイルをaptコマンドでインストールします。当方で実行したときにはいくつか気になるメッセージが出力されていましたがインストール自体は行われているようです。以下のメッセージの表示理由等は未解明です。 N: Download is performed unsandboxed as root as file ‘/home/gorn/singularity-ce_4.0.0-jammy_amd64.deb’ couldn’t be accessed by user ‘_apt’. - pkgAcquire::Run (13: Permission denied) さて、Singularityがインストールできたので確認してみます。 以下のファイルをex001.defとして作成します。 Bootstrap: docker From: ubuntu:22.04 %post apt-get -y update apt-get -y upgrade %runscript echo "Hello, Ubuntu" 以下のコマンドでビルドします。 singularity build ubuntu.sif ex001.def Ubuntu 22.04のイメージとなります。 Shellでコンテナの中に入ってみます。 singularity shell ubuntu.sif とりあえず、動きは確認できました。

12月 19, 2023 · 1 分 · 66 文字 · Me

Dotnet Interactive で分析する

本稿は基本的には執筆中のC#とJupyter Notebookによるデータ分析クックブックからの抜粋になります。フルバージョンは技術書典で。 .NET Interactive とは .NET Interactiveはデータサイエンティスト向けにJupyter Notebook上に.NETの所謂REPLを提供してくれる仕組みです。 基本的には、以下の構造からなります。 Notebooks: Jupyter, nteract, and Visual Studio Code Code bots Devices like Raspberry Pi Embeddable script engines REPLs 環境の構築 本稿ではWindows 10 (201909)上に構築された、WSL上のUbuntu 18.04に環境を構築することを前提としている。 環境が異なる場合には、異なる設定がいるかもしれないことをあらかじめ記述しておきます。202010で現在、再検証中です。 Anaconda環境の構築 pyenvをインストールする git clone https://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc echo 'eval "$(pyenv init -)"' >> ~/.bashrc source ~/.bashrc Anacondaをインストールする pyenv install -l | grep ana pyenv install anaconda3-yyyy.MM pyenv rehash pyenv global anaconda3-yyyy.MM conda update conda conda init bash source ~/.bashrc .NET 5環境の構築 wget -nv https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo add-apt-repository universe sudo apt update sudo apt install apt-transport-https -y sudo apt install dotnet-sdk-5.0 -y .NET InteractiveとJupyter Kernelのインストール dotnet tool install -g --add-source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" Microsoft.dotnet-interactive dotnet interactive jupyter install Jupyterでの分析の実施 パッケージのロード まず、nugetから必要なパッケージを導入します。 ...

12月 22, 2020 · 1 分 · 177 文字 · Me

Windowsでdotfilesの世界をパクリんぐする

アドベントカレンダーに参加しています。 dotfiles Advent Calendar 2019 Windowsでdotfilesの世界をパクリんぐする話をします。 Windowsにおける設定情報 Windowsにおいては昨今、設定情報はかなり混沌と設定している、今となってはレガシー化しつつある、レジストリ情報に加えて、*NIX風のdotfilesをUser Profileの直下に置くパターンなどいくつものパターンがある。一旦、整理してから話を進めたい。 レジストリ情報 dotfilesの方向性としては異なるが整理のため、触れることにする。レジストリ情報はHKEY_LOCAL_MACHINEなど各種の階層で格納されているが一般にユーザごとの情報はHKEY_USERSの下にあり、実際にはそれがHKEY_CURRENT_USERにリンクされているものと考えられる。ただ、これは知っての通りバイナリデータとしてユーザにはコントロールしにくい形で存在していること、また、dotfilesの形とは言い難いため議論はここまでとする。 User Profilesの下に置かれるdotfiles User ProfileはデフォルトのインストールではUsers\<ユーザ名>に置かれるファイル群である。この中にはHKEY_USERSに置かれているレジストリも含まれている。昨今では特に*NIXからポーティングされたツールを中心にここに.で始まるファイルや_などで始まるファイル群を展開するものが散見される。例えば、scoopでvimをインストールした場合、_vimrcはUser Profileの直下に格納される。 User ProfileのAppData以下 User Profileには一般にAppDataとDocumentsが格納されている。標準的なデザインとしてはユーザにその存在を認識させるファイルはDocumentsにその存在を認識させなくてもいいファイルをAppDataに格納し、さらにAppDataの中で移動プロファイルでローミングするファイルはRoamingにマシン固有のファイルはLocalに置かれることになっている。例えば、ConsoleZの設定情報はAppData内のRoamingにConsole\console.xmlという形で格納されている。また、Visual Studio Codeの設定情報はRoamingのcode以下に格納されている。 UWPのLocalState 狭義のUWP (U先のniversal Windows Platform)アプリケーションにおいては、先のAppDataのLocalの下にあるPackagesディレクトリの下にアプリケーションごとにディレクトリを作成しその中にある、LocalStateディレクトリ内に格納されることが多い。たとえば、WindowsTerminalにおいては、少なくとも現時点においてはPackages内のMicrosoft.WindowsTerminal_8wekyb3d8bbweディレクトリにLocalStateが存在している。 WSL WSL1の場合は、ファイル群はdevfsとdrvfsと考えられるが、一般にdevfsの構造はWindowsから見ると深いディレクトリに置かれていること、また、Windows側からdevfsのファイルを操作すると、metadataを損壊することになるため、注意を要する。従って、WSLの設定情報については現状、Windowsのdrvfsにレポジトリをおいて、適時シンボリックリンクを張っているが、後述する、Windows上でのgitの特性から、WSL上で独自にdotfilesをコントロールしたほうがいいかもしれない。 dotfilesによる設定情報のコントロール dotfilesでコントロールしやすいもの 先までに上げたものの中で、dotfilesによるコントロールに適するのは基本的にはレジストリを除いたものであると考えられる。レジストリはバイナリデータとして格納されているため、*NIX的な管理はし辛い。 dotfilesによるコントロールのサンプル dotfiles風にコントロールの容易なものとして、以下に例をあげる。 vimrc Windows Terminal git nyagos ConsoleZ WSLのdotfiles これらを分類すると以下のようになる。 名前 種類 vimrc User Profile Windows Terminal UWP LocalState git User Profile nyagos User Profile ConsoleZ AppData WSL dotfiles WSL シンボリックリンクの活用 レポジトリから各ファイルへはシンボリックリンクを用いる。シンボリックリンクは開発者モードでは一般ユーザでも作成できる。ただし、開発者モード以外ではシンボリックリンクの作成には管理者特権が必要であるため、シンボリックリンクの構築スクリプトをPowerShellで作る場合、以下のような構造になるであろう。 $userProfile = $env:USERPROFILE if($PSVersionTable.PSVersion.Major -gt 4) { if (([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(` [Security.Principal.WindowsBuiltInRole] "Administrator")) { } else { Write-Warning "管理者権限が付与されていません" exit 1 } } else { Write-Warning "PowerShellのバージョンが条件を満たしていません" } PowerShellのバージョンを確認するのはPowerShellでシンボリックリンクが作成できるようになったのは、Windows PowerShell 5.xからであり、それ以下の場合には構築できないだけでなく、削除をした場合にリンクが削除されるだけでなく元のファイルまで消えてしまうためである。したがって、バージョンを確認する必要がある。 ...

12月 24, 2019 · 2 分 · 383 文字 · Me