「ワンライナー」とは、たった1行だけのプログラムです。PerlやRubyを使うと、1行だけでもかなりの仕事ができます。 プログラムを書きたいが、エディタを起動するほどの手間はかけたくない、というときに威力を発揮します。達人ともなると、ちょっとした文字置換や計算をするワンライナーを、即興で作って使い捨てることもあります。PerlやRubyは、ワンライナーを書くために役立つオプションを豊富に持っています。
誤ってグローバル環境など別の環境にライブラリをインストールしたとき、依存関係でインストールされるものもあるので一つづつ削除するのは面倒です。 そこで、次のコマンドで一括で削除できます。 pip list --format json | jq '.[] | select((contains({name: "pip"}) | not) and (contains({name: "setuptools"}) | not)) | .name' | xargs pip uninstall -y 詳細 1. JSON形式でライブラリ一覧を表示 pip list --format json [{"name"…
故あってAWS環境のお掃除をすることがあり、その時にめんどくさい思いをしたのでメモです。Windows環境(コマンドプロンプト)で実施しています。 1.tr;dr (※Lambdaレイヤー全バージョン一括削除ワンライナー) 2.えるしっているか Lambdaレイヤーは1バージョンずつしかけせない 3.AWS環境のお掃除について(ポエム) 1.tr;dr (※Lambdaレイヤー全バージョン一括削除ワンライナー) for /l %i in (1,1,100) do (aws lambda delete-layer-version --layer-name 【Lambdaレイヤー名】 --vers…
ども。またもや懸念材料がどっさりしてますね。多分またVirtualDOMの世界に行かねばならないようです。バックエンドはほぼlaravel決まりフロントエンドに踏み出したところ懸念した通りlaravelでblade書いてからvue.jsをインジェクションしろとのお達しが。と言うことはRIOTで苦しめられたECMAScriptとの再会かなと思いながら調べて行ったらvue3が更なる進化でフルTypeScriptに変わってるじゃないですか💦。でもいいや。型推論しっかりしてるしECMAScriptに比べたらワンライナー出来なさそうだし。ECMAScriptって型推論よりはダイナミックに書いてそれの良し…
「Docker コンテナによる自動的なファイル同期」ができるような Docker イメージの作成は、打ち切ることとする。 費用対効果が悪いので、別のアプローチの方がよさそうだ。 ツールを使った場合と同等以下の同期速度になるような Linux 用スクリプトを作成して、 KABU+ の運営の人に許可をもらう あまり可能性は高くないかも 初回を除いて多数のファイル同期は必要ないのではないか 日々の差分は、各ディレクトリ毎に1ファイルで取得できる 「Docker でワンライナーで取得&更新ができれば便利」と思っていたが、便利であっても需要がないかもしれない
内容を整理していて気づいたが、本記事には (A) k3sでprivateなコンテナレジストリを使う (B) Github Package Registry (GPR)からGithub Container Registry (GHCR *1 )へ移行する という2つのトピックが混ざっていることに気が付いた。備忘録も兼ねて先にアウトラインを示しておく。 (A) k3sでprivateなコンテナレジストリを使う k3sとは一言で表せばシングルバイナリの軽量Kubernetes エッジ環境やCIなどリソースが限られた状況を想定して作られている Rancher(kubernetesのめんどくさい設定をま…
仕事で、Python2.7しかない環境でちょっとした修正をしなくてはならなくなり、 手元にインストールする。 pyenvを使う。 今は、3.8しか入ってない。自分はPythonといえばこれしか使ったことがないRuby野郎である。 > pyenv version 3.8.5 (set by /Users/tambara/.pyenv/version) pyenv install --listして入れるバージョンを決める > pyenv install --list Available versions: 2.1.3 2.2.3 2.3.7 2.4.0 2.4.1 (以下略) 2.7の最新は2.7…
ども。転職から3ヶ月目遂に自分でも久方ぶりのリリース立ち会いなどもありドタバダしていた12月。今の職場で感じることは今のJavaScripterのワンライナーは理解できないことが多いことに気がつきました。今の職場は電算システムさんなんですが非常にコードが綺麗。ワンライナー使っていてもコードの流れがわかるんです。どれだけやってもJavaScriptのワンライナーが理解できないはずです。正直言ってガリガリ書いていても分かるリーダブルコード。これこそが本来自分たちが書かないといけないコードなんです。リーダブルコードは若手どころかベテランも進化させれると思いましたね。競技プログラミングだとアピールする…
Githubのリポジトリ名サジェスト機能のように、ランダムな英単語をふたつ組み合わせて出力したくなったので、シェルスクリプトでワンライナーを書きました(macOS以外では動かないかも)。 $ cat /usr/share/dict/words | sort -R | head -2 | tr '[:upper:]' '[:lower:]' | paste -d '-' - - multilocation-misallotment 2単語以上出力したい場合は、headコマンドのオプションを変えてpasteコマンドの - をその数だけ繰り返します。 $ cat /usr/share/dict/wo…
環境変数にPythonのパスが通っていれば、コマンドラインインターフェイス(CLI, CUI)でzip圧縮やzipファイルの展開(解凍)をワンライナー (one liner)で簡単にできます。 ▼zip圧縮する場合例えば、テキストファイル3つ「test1.txt」「test2.txt」「test3.txt」をファイル名「aaa.zip」にzip圧縮したい場合、コマンドラインオプション-c(createの略称)を用いて次のようにする。 python -m zipfile -c aaa.zip test1.txt test2.txt test3.txt ▼zipを展開する場合ファイル名「aaa.z…
やりたいこと 頻繁に利用するgitコマンドの使い勝手を向上する.具体的には以下を達成したい. ローカルブランチをブランチ一覧からインタラクティブに選択しチェックアウトする リモートブランチを〃 ローカルブランチの一覧を表示し,インタラクティブに選択して削除する 環境 macOS Mojave (10.14.6) zsh fzfコマンドをインストール済み 参考 [ターミナル]fzfを使った自作インタラクティブアプリを作ってみよう!〜git addを快適に〜 本記事はこちらで紹介されたやり方そのまま上記を達成するために利用している 実装 ローカルブランチをブランチ一覧からインタラクティブに選択しチ…
C++ のライブラリをローカルの開発環境でインクルードできるようにしたい。また #include <aws/dynamodb> のように、相対パスではなく <> でインクルードしたい。 正しいインクルードパスにヘッダファイルを配置してあげればいいはずだが、そのインクルードパスを忘れてしまった。過去に同じ作業をしたことはあるはずなので、マシン上のどこかにあるのは確かなのだが、どこにあるだろうか…。 次のワンライナーが教えてくれる。 gcc -x c++ -v -E /dev/null 出力はこうなる。 /usr/local/include が目的のパスであった。 Apple clang vers…
はじめに ネイティブアプリの内部テストを円滑にすすめるために、Firebase App Distributionを使ってアプリを配信する仕組みを触る機会があったので手順をまとめておきます。 Visual Studio App Centerを使ったアプリ配信の仕組みについては以前まとめたこちらをご確認ください。 takamii.hatenablog.com Firebase App Distributionとは Firebase App DistributionはFirebaseに含まれるアプリ配信機能です。モバイルアプリ開発において、Push通知機能やCrashlytics・Analytics…
GolangCI-LintとCircleCIで静的解析チェックを自動化してみました。 そもそもLinterとは? GolangCI-Lintとは GolangCI-Lintのメリット 1. Linterを一括で導入することができる 継続的インテグレーション(CI)にも簡単に導入することができる 2. Linterのルールを設定ファイルとして記述できる 3. Linterの実行速度が早い 主要なGo言語のLinterのご紹介 gofmt golint govet GolangCI-Lintをセットアップする MacにGolangCI-Lintをインストールする GolangCI-Lintを実行す…
はじめに Tektonを利用したCI/CDの中でPipelineが失敗した際に詳細メッセージを確認する流れを記載しました。 $ kubectl get pipelineruns NAME SUCCEEDED REASON STARTTIME COMPLETIONTIME test-pipeline-run False Failed 100s 92s 環境情報 Windows 10 Cygwin tekton: v0.19.0 Kubernetes 1.19 詳細ログ確認方法 止まっているTaskは $ kubectl describe pipelineruns test-pipeline-ru…
今回は case analysis と呼ばれる関数の話です1。 data D a b c = C0 a b | C1 c 例えば上記のようなデータ型があった場合 case analysis 関数は次のようになります。 d :: (a -> b -> d) -> (c -> d) -> D a b c -> d d f _ (C0 a b) = f a b d _ f (C1 c) = f c 値構築子の数だけ関数を引数とし、対象のデータを最後の引数とします。それぞれの関数の型は値構築子の型に似ます。 C0 :: a -> b -> D a b c C1 :: c -> D a b c d ::…
こんにちは。永和システムマネジメントの内角低め担当、はたけやまです。 作成したプログラムが想定していた速度で動かず困ってしまうこと、ありますよね? パフォーマンス改善を行う場合、プロファイラなどを使ってプログラムを計測し、どこがパフォーマンスのボトルネックとなっているかを見つけることが重要です。 Ruby プログラムをプロファイリングするための方法はいくつかありますが、今回は stackprof を使った方法をご紹介します。 stackprof https://github.com/tmm1/stackprof stackprof を使ったプロファイリングは以下の手順で行います。 計測対象のプ…
はじめに 一般的に機械学習においてカテゴリ変数は、前処理として数値化する必要があります。 本記事ではその前処理の方法と違いについてまとめです。 データの種類と意味 下図のように変数は4つの尺度に分けられます。 今回説明するのは名義尺度と順序尺度に関する前処理の方法です。 引用:人工知能プログラミングのための数学がわかる本 データ まず、簡単なデータを以下のコードで準備します。あるユーザがある飲み物を買ったときの値段、サイズ、飲み物の種類が記載されています。 このデータでは、sizeデータはL>M>Sの関係にあるため順序尺度、drinkデータは大小関係がないため名義尺度になります。 import…