気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

NAT64とは

特殊なIPv6アドレスを利用することでIPv6アドレスを持つ端末から、IPv4アドレスのみを持つサイトへアクセスを可能とする技術です。 この技術により、混雑している従来のIPv4/PPPoE接続方式を使わず、IPv6/IPoE方式で大容量化されたネットワークに接続でき、…

スクラム勉強会

どうしたら、効率的に作業を進められるか? 見積もり 相対見積もり。ざっくりでもストーリーポイントを出すことが望ましい チームの目的によって取りうる選択が変わる ベロシティ(チームが作業を進める速度。開発効率)を上げたいのであれば、ストリートポイ…

ブラウザ操作でもvimっぽく扱う vimvim ショートカット

vim

以下のChrome拡張のショートカットで使いそうなものを記載しておきます。 chrome.google.com これ以外にもありますので、知りたい方はvimiumを追加した状態で?を入力してください。helpが表示されます。 Vimiumはコマンドの繰り返しをサポートしているため、…

Kotlin Coroutineの概念を理解する

以下でCoroutinの使い方をざっくり理解しました。 https://tamata78.hatenablog.com/entry/2021/09/06/174235 上記で理解を進める中でわからなかった概念を補足する情報を記載していきます。 CoroutineScope CoroutineScopeは、コルーチンビルダー関数である…

Javaバージョンを切り替えるjEnvの基本コマンド

jenvのインストール brewでインストール brew install jenv 設定 Bashを使っている場合 echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile echo 'eval "$(jenv init -)"' >> ~/.bash_profile Zshを使っている場合 echo 'export PATH="$HOME/.j…

Brewfile関連の基本コマンド

Mac OSの環境構築を自動化するツールの基本コマンドを記載していきます。 パッケージを探す brew search # caskのパッケージも探せる mas search パッケージのアップデート $ brew upgrade $ brew upgrade --cask $ mas upgrade インストール済みパッケージ…

Mac OS 開発環境初期設定

ターミナル brew install /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" brew install cask クライアントアプリ アプリランチャー、コピペアプリ、 エディタ、docker、メニューカレンダー表示、ブル…

Mybatis キャッシュ設定

Mybatis キャッシュ設定 同じクエリを複数回呼ぶ場合、キャッシュ設定を入れると高速に処理できる可能性があります。 mybatis: configuration: cache-enabled: true # デフォルト有効だが、明示的に記載。 default-executor-type: reuse PreparedStatementを…

Kotlin Coroutineの使い方

以下を写経しつつ、理解をしていきます。 Kotlin の Coroutine を概観する - Qiita Coroutineとは? 軽量なThreadのようなもの 他の処理をブロックせずに並列処理を行える Threadは無視できないコストがかかるが、Coroutineは気にしなくてもよいレベルのコス…

MySQL ギャップロックとは?

現場でギャップロックという聞き慣れない用語を耳にしたので、 以下の記事を参考に理解する。 MySQLのギャップロックとネクストキーロック - 41から始めました MySQLロック ロックの種類 排他ロック DML実行時にトランザクションで最初に取得されるロック ロ…

気になる監視ツール

Sentry フロントエンドエラー可視化 New Relic アプリ監視ツール

Java8 ラムダ式でよく利用する関数型インターフェース

関数型インターフェースとは? 単一メソッドを持つインターフェース群 ラムダ 式で利用するのに都合がいい SE8からjava.util.functionパッケージに追加された ラムダ式を引数として取る場合に、関数型インターフェースを指定して受け取る。 ラムダ式の種類毎…

Pythonの負荷テストツール Locust

Pythonで負荷テストコードを記載するLocustについて記載します。 特徴 シナリオを Python で記述 分散&スケーラブル Web ベース管理画面 高いカスタマイズ性 本家サイト Github:GitHub - ktanakaj/locust-example: Example scripts for Locust Github/examp…

MacOS Python3系インストール

Pythonバージョン管理ツールのpyenvを入れて、3系のPythonをインストール&適用させていきます。 pyenvをインストール brew install pyenv pyenvの設定(シェルがzshの場合) echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc echo 'export PATH="$PYENV_R…

JSON用のgrepみたいなjqコマンド

JSONを便利に編集できるjqコマンドできる基礎的なことを書いておきます。 マニュアル、参考URL 公式マニュアルをみておくと幸せになれる。 jq Manual (development version) ここに書いていることでメモしておきたいことを書いていきます。 jq コマンドを使…

Kotlin 正規表現

下記の例を貼らせて頂きました。 Kotlinの正規表現の使い方 | 寝室コンピューティング // a,b,cのうちいずれかにマッチ val regex = Regex(pattern = "[abc]") // Raw Stringはエスケープ不要 """\d""" // 普通の文字列だとエスケープが必要 "\\d" // 文字列…

Mockito 基礎文法

Mockitoでパッとわからなかった書き方について書いていきます。 戻り値なしメソッド 何も返さないメソッドが指定インスタンスと引数のときにMock化されます Mockito.doNothing().when(モックインスタンス).メソッド(任意の引数); privateメソッド、staticメ…

ホスト名からIPを調べる方法(host, dig)

host -a ANSWER SECTIONのところにIPが表示される % host -a stg.sample.com Trying "stg.sample.com" ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21689 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECT…

現場システム開発の進め方を考えてみる

システム開発を効率的に進めるための優先順位や力を抜く部分、効率化についての整理をしてみます。 前提 開発機能:なんとなくこんな機能というイメージはあるが、コードは読んだことがない 言語:Javaでの開発は慣れているが、新たに使うKotlinについては未…

Kotlin 基礎学習

Kotlin とは? オンライン実行環境 Javaとの違い null関係 スコープ関数 演算子 値比較、参照比較 文字列 文字列中に埋め込み文字 改行入り文字列 型 キャスト 関数 function 基本の書き方 名前付き引数 関数オブジェクト ラムダ式 制御文 if for while 配列…

Github Actions 補助機能メモ

Github Actionsで使える補助的な機能についてメモしておきます。 補助的な機能 CIをスキップする コミットメッセージに[skip ci]を含める。どこに書いてもいい。 ドラフトPR 修正途中のPRをWIPとして作成可能。マージできないPRとなる。

Jenkins Pipelineとは

Jenkins pipelineを使ったデプロイジョブが動作不良になった経緯があり、基本概念を調べてまとめておきます。 Pipelineとは Jenkins2.0においてPipeline Pluginが標準装備になりました。 Pipelineは、デプロイのパイプライン(ステージ毎の工程)を可視化する…

MySQL 実行計画(EXPLAIN)

MySQLにおける実行計画の見方について記載します。 EXPLAIN 結果確認 クエリコストをみたい場合 format=jsonをつけてexplainを実行する。 explain format=json 【クエリ】 結果Json query_costの箇所にコストが表示される { "query_block": { "select_id": 1…

JMeterの出力結果の見方

JMeterの出力結果の簡単な読み方について記載します。 Jmeterの出力結果の見方 $ apache-jmeter-5.3/bin/jmeter.sh -n -t test.jmx summary + 2297 in 00:00:24 = 95.4/s Avg: 1176 Min: 1 Max: 16483 Err: 15 (0.65%) Active: 113 Started: 120 Finished: 7…

ssh時はローカルのlocaleを接続先に引き継いでしまう

ssh

タイトルの通りだけど、ssh時はローカルで設定したlocaleを引き継いでしまい、 接続先はen_USだったはずなのに、ja_JPになるということがある。 ssh -v でデバッグすると、接続先にロケール情報を引き継いでいることを確認できる。 [接続元]$ ssh -vi ***.pe…

Bitbucket ソース共有時のオプション

以下のパラメータを付与するとブランチや色付け行数を指定可能 【URL】?at=master#lines-190:191 ブランチ:at=【ブランチ名】 行数色付け:#lines-【開始行数】:【終了行数】

IntelliJ IDEA ショートカット(MacOSX)

便利なショートカットを記載しておきます。 カテゴリ コマンド 概要 詳細 ナビゲーション command + option + 左右キー ナビゲーションのUndo/Redo 検索 Shift + Shift 全て検索 プロジェクト内のファイル名、クラス名、シンボル名(変数、メソッド等)をイン…

Mac OSX 日常で使う便利なアプリ

Macに入れておくと業務効率化や、便利に使えるアプリを追記していきます。 メニューバーにカレンダー表示_無料 https://jittodesign.org/itsycal-18947/ Macのメニューバーに表示する日付表示は、クリックしてもカレンダーが見れるわけではないので不便。 無…

httpとhttpsのポート番号

httpのポート番号:80 httpsのポート番号:443 ポート番号の80と443は、ドメイン名の後ろについているけど、それが省略されている ポート付けた場合と付けない場合は同義となります。 http://aaa.co.jp:80 → http://aaa.co.jp https://aaa.co.jp:443 → https…

Git pushできない幾つかのパターンと解決方法

タグが既にある 特に更新していないタグが原因でpushが拒否されることがあります。 [rejected] example_tag -> example_tag (already exists) そんなときはタグを更新してみます。 git pull --tags 競合が発生した場合、ローカルにあるものを上書きして解決…