Tumgik
genzouw · 6 months
Text
Bashの組み込みコマンド "bc" を使ってみる
はじめに Bash でコマンドを実行しているときにコマンドをうち間違えたことは何度もありますよね。 間違えただけではなく、過去に実行したコマンドのスペルを忘れてしまったり、引数やオプションを忘れてしまったりも一度ならず何度もあるはずです。 Bash にはヒストリ機能があるため上矢印キーや下矢印キーで過去に実行されたコマンドの履歴をたどることができますが、 fc コマンドを利用することで過去に実行したコマンドの再利用が更にはかどります。 今回は fc コマンドの使い方について紹介します。 検証環境 $ uname -moi aarch64 aarch64 GNU/Linux $ head -n 3 /etc/os-release PRETTY_NAME="Ubuntu 22.10" NAME="Ubuntu" VERSION_ID="22.10" $ bash -version |…
Tumblr media
View On WordPress
0 notes
genzouw · 6 months
Text
シェルスクリプトで標準出力と標準エラー出力を入れ替える
はじめに あまり利用する機会はありませんが、今回はシェルスクリプトを使って、標準出力と標準エラー出力を入れ替える方法についてお話しします。 検証環境 $ uname -moi arm64 unknown Darwin $ bash -version | head -n 1 GNU bash, バージョン 5.2.15(1)-release (aarch64-apple-darwin22.1.0) 解答 珍しく解答を掲載した後、ブログ記事を書きます。 次のコマンドはどちらを使っても標準出力、標準エラー出力を入れ替えることができます。 $ echo "Hello" 3>&2 2>&1 1>&3 $ echo "Hello" 3>&1 1>&2 2>&3 解説 ファイル記述子 ( ファイルディスクリプタ ) について ファイル記述子 ( ファイルディスクリプタ )…
Tumblr media
View On WordPress
0 notes
genzouw · 6 months
Text
Github Copilot in the CLI を使ってみる
はじめに 先日Githubからメールが届きました。 You have been granted access to GitHub Copilot in the CLI. ようやく Github Copilot in the CLI が利用できるようになりました。 今までは Vim 環境でだけGithub Copilot を使うことができましたが、コマンドライン環境からCopilotの力を利用できることになるのでしょうか?と思い早速試してみました。 検証環境 $ uname -moi arm64 unknown Darwin $ bash -version | head -n 1 GNU bash, バージョン 5.2.15(1)-release (aarch64-apple-darwin22.1.0) 作業の流れ ( 作業ログ…
Tumblr media
View On WordPress
0 notes
genzouw · 7 months
Text
生物の進化から学ぶシステムの進化 - Timee Advent Calendar 2023
はじめに 今の組織には話がうまいエンジニアばかりです。 僕は自分のことを語るのが苦手です。 そんな僕にも「アドベントカレンダーの記事を書いてほしい」というお願いがありました。 記事を書かなければならないということで、今までエンジニアという仕事を通じて僕が感じてきた「システムの進化」と「生物の進化」の似ている点について書いてみることにしました。 お断りしておくと、このエントリで述べる内容は多分に自分の体験・主観に基づいたものとなっており、現職の組織を代表するものではありません 。 「生物の進化とシステムの進化を同じように考えるのは短絡的だ」という意見が上がるだろうということは予想されますが少しでも興味があればお付き合いください。 収斂進化 :…
Tumblr media
View On WordPress
0 notes
genzouw · 11 months
Text
OIDCを使ってGithub ActionsからAWSにアクセスする仕組みについて理解を整理してみた
はじめに Github Actions から AWS クラウドリソースを操作するためにACCESS_KEY、SECRET_ACCESS_KEYを使う方法はもう古い、OIDCを使うのが一般的といわれましたが理解していなかったため整理しました。 検証環境 今回取り上げる CI/CD ( ビルド ) パイプライン は Github Actions に限定しています。 クラウドプロバイダー に関しても、 AWS に限定しています。 ただしアーキテクチャはCI/CDパイプラインがCircleCIやCloudBuild、クラウドプロバイダーがGCPやAzureに置き換えられたとしても適用可能なものと考えられます。 パスワードやアクセストークンを使ってGithub Actionsか���クラウドへ認証する方法の問題点 Github ActionsのようなCI/CDパイプラインから、クラウド環境 (…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Github Actions入門その5-式と関数
はじめに 以下のエントリに引き続き、Github Actions を学習して学んだことをまとめて見ました。 Github Actions 入門その 1-概要と用語の整理 | ゲンゾウ用ポストイット Github Actions 入門その 2-簡単なワークフローを作成してみる | ゲンゾウ用ポストイット Github Actions 入門その 3-アクションを探す・使う・自作する | ゲンゾウ用ポストイット Github Actions 入門その 4-環境変数/スクリプト/Artifacts を使う | ゲンゾウ用ポストイット 今回は Github Actions の学習シリーズの第 5 弾として、ワークフローの YAML…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
ローカルPC内でGithub Actionsを実行する - 'nekos/act'
はじめに Github Actions の設定ファイルを記述した後、正しく動作するかを確認するために毎回リモートリポジトリにプッシュするのが面倒だなと思ったので���い方法が無いかと調べてみました。 すると、ローカルで Github Actions の実行が可能なツールが見つかったので、検証してみました。 検証環境 $ uname -moi arm64 unknown Darwin $ bash -version | head -n 1 GNU bash, version 5.2.15(1)-release (aarch64-apple-darwin22.1.0) 見つけたツール : nektos/act 利用するツールは以下になります。 GitHub – nektos/act: Run your GitHub Actions locally…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Github Actions入門その4-環境変数/スクリプト/Artifactsを使う
はじめに 以下のエントリに引き続き、Github Actions を学習して学んだことをまとめて見ました。 Github Actions 入門その 1-概要と用語の整理 | ゲンゾウ用ポストイット Github Actions 入門その 2-簡単なワークフローを作成してみる | ゲンゾウ用ポストイット Github Actions 入門その 3-アクションを探す・使う・自作する | ゲンゾウ用ポストイット このエントリでは、カスタマイズのテクニックについて触れていきます。 変数の使用方法、スクリプトの実行方法、ジョブとジョブの間をつなぐための方法により、カスタマイズが可能です。 ワークフローの中で変数を使う Github Actions では、ワークフローが実行されるたびに 割り当てられるデフォルトの環境変数…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Github Actions入門その3-アクションを探す・使う・自作する
はじめに 前々回、前回と Github Actions に登場する用語の整理した後、実際の YAML 設定ファイルの各項目と用語の対応を見てきました。 Github Actions 入門その 1 ( 概要と用語の整理 ) | ゲンゾウ用ポストイット Github Actions 入門その 2-簡単なワークフローを作成してみる | ゲンゾウ用ポストイット アクション ( Action ) は1つ以上のステップで構成されたブロックです。 ワークフローは、1つ以上のジョブを持ち、ジョブは1つ以上のステップを持ちます。 ( 詳細は以下を参照 ) Github Actions 入門その 1 ( 概要と用語の整理 ) | ゲンゾウ用ポストイット ステップは独自のシェルコマンドを記述しても良いのですが、アクションを指定できます。 アクションは Github…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Github Actions入門その2-簡単なワークフローを作成してみる
はじめに 前回は Github Actions の概要と用語の整理をしました。 Github Actions 入門その 1 ( 概要と用語の整理 ) | ゲンゾウ用ポストイット Github 上で実行できるワークフローを構築するためのサービスです。 Github 上でのソースコードの変更をトリガーにして、自動的にビルドやテストなどのワークフローを実行できます。 Unbutu、Windows、macOS などの環境で実行でき、必要なリソースを設定することで、ビルドなどのタスクを実行できます。 今回は、サンプルコードを触って Github Actions を実際に操作してみます。 簡単なワークフローを作成してみる Github Actions では、ワークフローの設定を YAML 形式で記述します。 それぞれのワークフローは YAML 形式のファイル 1 つで表現されます。 その…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Github Actions入門その1(概要と用語の整理)
はじめに 今の組織で CICD のプラットフォームとして Github Actions メインに切り替えています。 今後更にこの流れが進みそうなので Github Actions について一から学びなおしてみようと思いました。 Github Actions とは Github が提供している CI ( continuous integration ) と CD ( continuous delivery ) を実現するためのプラットフォームです。 CI/CD パイプラインとは CI とはビルド、テスト、静的解析などの開発パイプラインを示します。 過去には各作業者の PC 内で実行していましたが、環境差異による実行結果の違いや実行忘れなどの問題があることから、現在のほぼすべての開発組織で導入されている仕組みです。 CD とは CI…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Gitで最新のタグを取得する方法
はじめに Git のローカルワークスペース内で最新のタグを取得するコマンドを紹介します。 検証環境 $ git version git version 2.40.0 git describe --tags コマンドを使う 結論からいうと、 git describe --tags コマンドを使うことで最新のタグを取得できます。 実際に試してみる ローカルに Git のローカルワークスペースを作成し動作を確認してみます。 まずは git init でワークスペースを作成します。 $ git init Initialized empty Git repository in /Users/genzouw/work/.git/ 適当なファイル(ここではtest.txt)を作成し、内容を編集した後、コミットします。 それぞれのコミットタイミングでタグを付与しておきます。 ( それぞれ 1 、 2 、…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Go言語で簡単にDBアクセスを実現!GORMを使ってORMを体験しよう-Create編(2)
はじめに 以下の 2 つのエントリで Go 言語で利用可能な O/R マッパーである GORM の概要、導入方法、基本的な使い方とデータの登録方法について学びました。 Go 言語で簡単に DB アクセスを実現!GORM を使って ORM を体験しよう-導入編 | Go 言語用ポストイット Go 言語で簡単に DB アクセスを実現!GORM を使って ORM を体験しよう-Create 編 ( 1 ) 今回は前回のデータ登録 Create で説明しきれなかった登録機能とアソシエーション(テーブル同士の関連)の設定されているデータの登録方法を学びます。 また、 default キーワードを使ってカラムを作成したときにハマるケースについても説明します。 「Belongs To」アソシエーションと関連モデルの登録方法 belongs to…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Go言語で簡単にDBアクセスを実現!GORMを使ってORMを体験しよう-Create編(1)
はじめに 前回は GORM の導入方法と基本的な機能を紹介しました。 Go 言語で簡単に DB アクセスを実現!GORM を使って ORM を体験しよう-導入編 | Go 言語用ポストイット gorm.Open 関数を呼び出した結果、取得される gorm.DB インスタンス ( インスタンスと呼んでいいのか Go 言語の思想がわからませんが ) のメソッドを使って様々な操作を行うことができます。 今回は Create (登録処理)に関するさまざまな機能を紹介します。 Create ( 登録 ) gorm.DB#Create() を使います。 サンプルコードを以下に記載します。 package main import ( "fmt" "time" "gorm.io/driver/sqlite" "gorm.io/gorm" ) type User struct…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Go言語で簡単にDBアクセスを実現!GORMを使ってORMを体験しよう-導入編
はじめに Go 言語上で SQL を発行せずに DB アクセスを実現するための GORM というライブラリを触ってみます。 GORM は Go 言語上で SQL を発行せずに DB アクセスを実現するための O/R マッパー ライブラリです。 特徴として、アソシエーション機能、イベントフック、トランザクションなどが提供されています。 本記事では、GORM の基本的な使い方を紹介し、次回以降に登録・更新・削除操作に踏み込んで行きたいと思っています。 検証環境 $ go version go version go1.20.2 darwin/arm64 $ grep 'gorm.io/gorm' go.mod gorm.io/gorm v1.24.6 // indirect GORM とは? 名前から推測できる通り、GO 言語で使える O/R マッパー ライブラリです。 特徴 O/R…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
Go言語の標準ライブラリを触ってみる-"strings"
はじめに こんにちは!今回は Go 言語の標準ライブラリライブラリである "strings" について紹介します。 皆さん、文字列操作で頻繁に使うライブラリといえば何が思い浮かびますか? Go 言語では、標準パッケージに含まれる "strings" が文字列操作に特化したライブラリです。 "strings" を使いこなせば、文字列操作がより簡単便利になること間違いありません。 この記事では、様々な関数をサンプルコードとともに解説していきます。 標準ライブラリ的な検索や置換から、正規表現を使った高度な操作まで、幅広くカバーしています。 また、ライブラリの使い方だけでなく、実際にコードを書いてみることで理解を深めることができます。 この記事を通して、Go 言語の文字列処理ライブラリを扱うスキルアップを目指しましょう! それでは、早速 "strings"…
Tumblr media
View On WordPress
0 notes
genzouw · 1 year
Text
ChatGPTをVimから利用するためのプラグイン"vim-chatgpt"を触ってみる
はじめに Vim から ChatGTP の恩恵を受けたいと思ったので、良さそうなプラグインを探してみたところ以下のようなプラグインを見つけたので、検証を兼ねて調べてみました。 GitHub – CoderCookE/vim-chatgpt: Vim Plugin For ChatGPT 検証環境 $ uname -moi arm64 unknown Darwin $ nvim --version NVIM v0.9.0-dev-3548+gaa04efcf5-dirty Build type: Release LuaJIT 2.1.0-beta3 Compiled by [email protected] Features: +acl +tui See ":help feature-compile" システム…
View On WordPress
0 notes