動かざることバグの如し

近づきたいよ 君の理想に

2024-01-01から1年間の記事一覧

自動化を制する者は共同生活を制す

自動化を制する者は共同生活を制す 結婚した。そして共同生活がスタートした。 しかしこれまでの一人暮らしの生活スタイルをそのまま続けると、円滑な家庭生活の維持が困難だと思った。 そこで家事の効率化と生活の質の向上を図った。 ここではこの自動化を…

ChatGPT用文章リライトプロンプト

llm

やりたいこと ワイの書いた稚拙な日本語文章をそれっぽく仕上げたい。ただ文章の事実内容や文体は変えてほしくない。 プロンプト 入力された文章を情報を変更したり削ぎ落としたりせずに、文章構成を変えて流暢な日本語文章にリライトしてください。 # 手順 …

Re:VIEW記法チートシート

技術書典ではMarkdown記法ではなくRe:VIEW記法で書くことになった。自分用のメモなので、詳しくは公式ドキュメントを見てくれ。 見出し = 章のキャプション == 節のキャプション === 項のキャプション リスト * 野菜 ** にんじん ** じゃがいも * フルーツ *…

deep01GPUアップデートメモ

TDPについて TDP≠消費電力 i7-13700F: ベース65W ターボ219W RTX4080: 320W RTX4090: 450W ちなみに筆者はRTX 2070 Superを8ピンの補助電源1本、6ピンの補助電源1本だけで起動させたことがあります。 RTX 2070 SuperはTDPが215Wですので、75+150+75で300W供…

python mise

venvを自動的にアクティベート化させたい [tools] python = "3.12" [env] _.python.venv = { path = ".venv", create = true } # create the venv if it doesn't exist

IPからリモートホストを調べるgethostbyaddrをDockerで動かす

php

環境 Docker PHP 8.x gethostbyaddrとは PHPではgethostbyaddr関数というのがある。指定したIPのリモートホスト名を取得することができる。 gethostbyaddr('66.249.66.1'); これをDocker使ってワンライナーでやりたい。 結論 これでワンライナーで実行できる…

ChatGPTにJavascriptをTypescriptに変換してもらうためのプロンプト

llm

ChatGPTにJavascriptをTypescriptに変換してもらうためのプロンプト Act as an expert programmer in Javascript and Typescript. You Translate code from Javascript to Typescript. - Add types to all variables and functions (string, boolean etc.) -…

実家から古いデジカメを発掘した

古いデジカメが人気らしい 今、若者の間で2000年代の古いデジカメが流行っているらしい。最近のスマホは綺麗に撮れすぎているので一周回ってアナログ的な画質の粗さが評価されてるっぽい。 「Z世代に中古コンデジが人気」は本当だった!香港の中古店は若…

mdxで特定のコンポーネント以外は消すスクリプト

mdxで特定のコンポーネント以外は消すスクリプト import { unified } from 'unified'; import remarkParse from 'remark-parse'; import remarkMdx from 'remark-mdx'; import remarkStringify from 'remark-stringify'; import { visit, SKIP } from 'unist…

JSONのAPIリクエストコマンドを楽にするjoという奴

やりたいこと 最近のAPIは猫も杓子もJSONをContent-Typeとして受け付けるのがほとんどである。別にそれはいいのだがJSONは人間には優しくない。特にターミナル上でJSONを記述しようものなら死ぬ。 ターミナルで編集させる気が1ミリも感じさせないcurlコマン…

Railsバリデーションで全角カタカナ入力だけを許可する方法

環境 Rails 7.x やりたいこと 全角カタカナのみを受け付けるバリデーションを実装したい。個人情報入力フォームの「ヤマダタロウ」みたいな。 コード class User < ApplicationRecord validates :name, format: { with: /\A[\p{katakana}ー-]+\z/, message:…

apkをデコンパイルしてjavaソースコードを解析する

やりたいこと 拾ってきた野良apkをデコンパイルしてJavaのソースコードを解析したい apkの仕組み Androidアプリのパッケージ形式 APK(Android Package)ファイルは、Androidアプリを配布・インストールするためのパッケージ形式だ。アーカイブファイルであ…

ギャルモードで会話するプロンプト

llm

ギャルモード あなたは重度のギャル語を使う明るくて楽観主義な女子高校生ギャルです。 以下の制約条件を厳密に守ってギャルモードを実行してください。 # 制約条件 - 「〜じゃん」「〜っしょ」などの語尾を多用する - 「マジ」「超」「めっちゃ」などの強調…

AS番号から紐づくIP帯域を全取得する

環境 Python 3 やりたいこと AS番号を渡したらIP帯域をCIDR形式で全部取得したい。 コード import requests import json def get_ipv4_ranges(as_number): url = f"https://ipinfo.io/widget/demo/{as_number}?dataset=asn" response = requests.get(url) da…

無知フクロウ二次創作をAIに作ってもらう

llm

無知フクロウとは 無知フクロウは、あにゃ氏が生み出した「無知」をテーマにしたユニークなフクロウのキャラクターである。名の通り大抵のことを知らない。 例えばこの漫画 ムチフク、次から気をつけてね。 pic.twitter.com/PsTUo6CYQb— あにゃ (@_12939) No…

脱curl コマンドラインからChatGPTを簡単に使う方法

llm

やりたいこと コマンドラインでChatGPTを使いたい。 curlで叩くのが正攻法だが、コマンド長くて毎回このコマンド用意するのはダルいし、パラメーターの変更も面倒 curl http://0.0.0.0:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{"…

Ruby Time.parseよりTime.newの方が高速

環境 Ruby 3.3 結論 Time.parse より Time.new の方がメチャクチャ速い ベンチマーク require 'benchmark' require 'time' # テスト用の ISO8601 形式の時間文字列 time_string = "2024-07-31T12:34:56+09:00" # 繰り返し回数 n = 100_000 Benchmark.bmbm do…

LLMのContext lengthとMax tokenの違い

llm

LLM触っていてContext lengthとMax tokenの違いが一瞬わからなくなったのでメモ Context length (コンテキスト長) モデルが一度に処理できるトークンの最大数。 モデルの「記憶」や「注意の範囲」を表す。 入力と出力の合計トークン数の上限を決定。 モデル…

シェルスクリプトの対話式入力を自動化する方法

やりたいこと 例えば以下のようなシェルスクリプトがあったとする。 #!/bin/bash # ユーザーからの入力を受け取る read -p "aを入力してください: " input_a read -p "bを入力してください: " input_b read -p "cを入力してください: " input_c if [ "$input…

Linuxでエクセルが読めるCSVに変換する方法

環境 Linux やりたいこと エクセルではシフトJIS(CP932)のCSVしか読めないので、UTF-8のCSVは悲しいことに文字化けしてしまう。 文字コードを変換したい コマンド cat users.csv| nkf -s --cp932 --fb-subchar=0x3013 > users_cp932.csv cat users.csv: user…

ペルソナ像を作成するプロンプト

llm

ペルソナ像を作成するプロンプト あなたはマーケティングの専門家です。 ターゲットオーディエンスとして「ぴえん系女子」という特定のペルソナ像を作成してください。 「外見」「性格・内面的特徴」「行動パターン」「過去」の項目について、それぞれ5つの…

TypeScriptで配列から指定数ランダム抽出するメソッド

やりたいこと 例えば以下のような配列があったとする。 const fruits = [ "りんご", "バナナ", "オレンジ", "いちご", "ぶどう", "メロン", "パイナップル", "マンゴー", "スイカ", "さくらんぼ" ]; この中から重複せずにランダムに3つ取得したい。 コード …

LLMモデル別にトークン消費量を簡単に比較できるサイト

LLMはモデルごとにトークン数が異なる。簡単に比較できるサイト見つけたのでメモ Tokenizer Arena - a Hugging Face Space by eson

TypeScriptで複数行文字列のインデント問題を解決するts-dedent

環境 Nodejs v22 やりたいこと 複数行の文字列を変数として持っておきたいので、ここではテンプレートリテラルを使う。テンプレートリテラルは、JavaScript(およびTypeScript)の便利な機能で、複数行の文字列を簡潔に扱える。この機能の主なメリットは以下…

RailsでThread.new実行する場合は注意が必要

環境 Rails 7 Ruby 3.3 概要 例えば以下のように配列に対してmapで全要素に対して特定の処理を行いたかったとする。 def check(x) # 例えば3秒かかるとする sleep 3 x.even? end a = [1, 2, 3] results = a.map do |x| check(x) end p results ただこれだと…

Pythonのpycacheディレクトリ等を一括削除するコマンド

環境 Linux やりたいこと カレントディレクトリ以下のPythonキャッシュゴミファイルを一括削除したい 死んでもgitに入れたくない コマンド find . -type d -name '__pycache__' -exec rm -rf {} + find . -type f -name '*.pyc' -delete find . -type d -nam…

GPUの負荷テストツール「gpu-burn」

環境 Ubuntu Docker やりたいこと GPUの負荷テストを行うためには、CPUやディスクの負荷テストで使われるstressコマンドとは異なり、GPU専用のツールが必要になる。 そこで見つけたのがgpu-burnというツールだ。gpu-burnは、NVIDIAのGPUに対して特化した負荷…

Docker multi-stageビルドの中間イメージをdocker runしたい

環境 Docker 26 やりたいこと 例えば以下のようなマルチステージビルドのDockerfileがあるとする。 FROM golang:1.21 AS builder WORKDIR /app COPY . . RUN go build -o myapp FROM alpine:latest COPY --from=builder /app/myapp /myapp CMD ["/myapp"] で…

Ubuntuでマルチバイト文字の文字数を確認する際には注意が必要

環境 Ubuntu 24.04 問題 以下のうち、正常に文字列(5)が取得できるのは次のうちどれか。 echo -n あいうえお | awk '{ print length($0) }' echo -n あいうえお | LC_ALL=ja_JP.UTF-8 awk '{ print length($0) }' echo -n あいうえお | gawk '{ print len…

llama-cpp-pythonをDockerで動かす

llm

環境 Docker24 llama-cpp-python 0.2.79 やりたいこと ローカルのLLMを自宅のGPUサーバー上で動かすことを目指す。ChatGPT互換APIを使用すると、その利便性が向上する。llama cppを使用するとシンプルだが、llama-cpp-pythonのserverを使用すると、ChatGPT互…