茶トラ猫エンジニア

フリーランスとして働く、先が見えないエンジニアのメモ帳

エンジニアが定着しやすい会社について思うこと(オン・ボーディング)

先日、衝撃の記事を読みました。 珍しく、自分が求めていた環境に近いものでした。 mirai.doda.jp これを、Google やメルカリが採用していること自体知りませんでし、このシステムがあることに感動しました。 今回は入社間もないエンジニアの社員さんや、外…

pipのコマンド操作とオプション一覧

最近、pip や pipenv のコマンドを使う機会が増えてきたので pip コマンドについてまとめてみました。 pip は依存関係に引っ掛かることも多いですが、ここは慣れですね。 ヘルプ バージョン確認 インストール済みのパッケージ一覧 インストール可能なパッケ…

JavaScriptで特定の範囲の整数の乱数を取得する

前回、Python で乱数を取得して前ゼロ(ゼロパディング)する方法を紹介しました。 www.saratoga.jp 今回は、Chrome 拡張の Postman の「Pre-request Script」で同じくランダムな値を生成したかったのでやり方を紹介します。 Postman と Newman を利用した自動…

Pythonで特定の範囲の整数の乱数を取得する

どの言語を使っていても遭遇するのが乱数の生成。 ビジネスロジック以外でも、シナリオテストや負荷試験のロジックを書く機会が増えてから使う場面も増えました。 今回は Python で特定の範囲の整数の乱数を取得する方法を紹介します。 負荷テストは以前紹介…

pythonでRedisサーバに接続する方法

python のスクリプトから Redis サーバへ接続して操作する必要性に迫られ試してみました。 最初に候補として思い浮かんだのは以下の 2 つです。 Redisクライアントのコマンド実行pythonのRedisモジュール 今回はどちらが使い勝手とパフォーマンスが良かった…

MacでRedisクライアントを使用してDockerのRedisサーバへ接続

ローカルで Redis サーバを利用したい用途があったので、Docker で Redis サーバを起動し、Mac のターミナルから Redis クライアントで操作できるようにしてみました。 Redisクライアント Mac の場合は brew でインストールします。 $ brew install redis バ…

エンジニアが腸内環境を整えるために実践していること

最近、周りのエンジニア仲間にも健康を意識する人が増えてきました。 疲れが抜けにくくなった 年齢を感じるようになった これくらいはまだかわいいものですし、ちょっと言ってみただけ的な感覚ですよね。 そもそも 30 歳を超えたくらいで言うんじゃないよっ…

のぞみ新幹線の無料Wi-Fi「Shinkansen Free Wi-Fi」の設置車両

新幹線の無料 WiFi サービスが少しずつ拡大していますが、まだまだ多くはありません。 前回、出張が増えてきたこともあり「のぞみ新幹線で喫煙者が隣に座ってこない確率の高い席」の記事をお届けしましたが、今回は新幹線の無料 WiFi が付いた車両に乗るため…

のぞみ新幹線でタバコ喫煙者が隣に座ってこない確率の高い席

最近、新幹線による出張が増えています。 といっても、週に 1 回往復する程度なので体力的な疲労はそれほどありません。 しかし、新幹線の席に恵まれなかった時は最悪。 半端ないストレスが襲ってきます。 今回は隣の席の人がタバコ臭い場合の予防法について…

DockerでNginxとPHPを連携させてサクっと動かす

Docker に少しずつ慣れてきましたが、今回は動的なことをしたいモックサーバを急遽使いたかったので、ローカルの Docker で Nginx と PHP(php-fpm)が動作するコンテナを作成してみました。 それぞれのサーバの要件は以下の通り。 Nginx コンテナ上では80番ポ…

Macで応答なしになったアプリを強制終了する方法(ショートカットキー)

Mac

Mac 初心者だと仕事中にも時間が取られる現象に遭遇することもしばしば。 先日、データベースに接続する GUI アプリ(Sequel Pro)を使っていたのですが、データベースサーバのサービスを落とした状態で操作していたら「応答待ち」の状態が続いてアプリの終了…

Linuxのコマンドの結果をパイプで次のコマンドの任意の位置に使う方法

タイトルだけ見ると何を言っているのかよくわからないかもしれませんが、要は Linux や Mac のターミナル上で以下のようなことがしたいわけです。 複数行のテキストデータから 1 行目を取り出し、その 1 行から最初の空白までの項目を curl コマンドのリクエ…

Dockerコンテナ上のファイルをローカルにコピーする

コンテナのビルド時に、コンテナ上のサーバにファイルを配備するには Dockerfile を利用すると楽です。 RUN でコマンドを定義できますし、ENV で環境変数の設定もできます。 今回はコンテナ上の C 言語で書かれたプログラムを gcc でコンパイルして、そのコ…

【Kotlin入門】sha256で文字列からハッシュを作成する

Kotlin で文字列をハッシュしようと思ったら、それっぽい関数やクラスが見当たらなかったので調べてみました。 少し前までは md5 や sha1 が主流でしたが、最近は sha256 が無難なところでしょうか。 sha256でハッシュする sha256でハッシュする もし PHP で…

PHPのステータスコード別のheader関数の引数

PHP

PHP で意図的に特定のステータスコードでレスポンスを返そうと思う場面がときどきあります。 フレームワークによってはフィルタで設定したり、目的のコントローラ内に定義したり作法はそれぞれですが、通常のシンプルな PHP スクリプトであれば header() 関…

Dockerコンテナのビルド時にvi(vim)をインストールする

以前、Docker コンテナ上のファイルをローカルにコピーする記事を書きました。 www.saratoga.jp その際、コンテナ上の Linux では vi でプログラムを書いてコンパイルしたのですが、実は以下の Docker のイメージには最初から vim(vi)が入っていませんでした…

【Kotlin入門】関数のオーバーロードで引数違いの使い分け

前回、「クラスの基本構造(変数、関数、継承)」でクラスの作成や継承について紹介しました。 www.saratoga.jp その中で、メソッド(関数)のオーバーライドを使いましたが、今回はオーバーロードについて触れておきたいと思います。 引数違いの同一関数名 ポリ…

RestTemplateでクライアント証明書の認証を突破する

SpringBoot のフレームワークを使った環境下で、別のサーバと http や https で通信する場合、RestTemplate のライブラリが便利です。 どの言語、フレームワークでも似たような機能は用意されていますが、やはり PHP に比べると利用するまでが比較的面倒です…

PHP+ApacheのDockerコンテナをSSL通信に対応させる

以前「Dockerコンテナ上のファイルをローカルにコピーする」で紹介した、PHP と Apache がセットになった Docker イメージ。 www.saratoga.jp サクっと PHP が動作するサーバを立てるなら、Nginx と php-fpm を導入するよりは楽です。 そこで今回は、このコ…

【Kotlin入門】クラスの基本構造(変数、関数、継承)

Kotlin のクラスは他の言語と同じような構成なので多く語ることはありません。 しかし、少しだけ書き方に特徴のある部分もあるのでそこだけチェックしておきます。 プロパティ(フィールド変数) メソッド 継承 サンプルプログラム プロパティ(フィールド変数)…

【Kotlin入門】配列の中身を繋げるJoinと文字列を分解して配列にするSplit

「SpringBootのCharacterEncodingFilterで特定のURLパスの文字コードを変更する」の記事で、String 型の配列に入れている文字列を「|」の記号で繋げる処理を書きました。 www.saratoga.jp これは、パターンマッチングの OR の条件のためでしたが、配列の中身…

SpringBootのCharacterEncodingFilterで特定のURLパスの文字コードを変更する

Kotlin と Sprint Boot の組み合わせでアプリを作っていて、外部から Shift_JIS(SJIS)の文字コードでリクエストを受け付けないといけないケースが発生したので対応。 以前「SpringBoot(Thymeleaf)でレスポンスの文字コードを指定する」でも書いた通り、レス…

【Kotlin入門】例外処理のハンドリング(try,catch)

Java や PHP でもお馴染みですが、Kotlin にも例外処理をハンドリングする仕組みがあります。 構文も同じく try, catch を使います。 今回は Kotlin で例外処理のポイントを紹介していきます。 アプリは致命的なエラーを見せたくない 例外発生のプログラム …

【Kotlin入門】正規表現で文字列の部分置換をする

以前「フォーマットされた文字列に動的な値を差し込む」で、固定文字列の一部に動的な値を埋め込む方法を紹介しました。 www.saratoga.jp 今回は、文字列の中で不要な文字を除去したい場合や、一部の文字を別の文字に置換したい場合の対応をしたいと思います…

iPhoneからターミナルアプリで公開鍵を使ってssh接続する方法

EC2 で Web サーバを構築して、自宅や会社などから SSH でアクセスしたいケースは多いと思います。 会社の場合はセキュリティの制約が厳しいので、社外から直接目的の EC2 にアクセスするケースは少ないかもしれません。 しかし、プライベートで使っているサ…

【Kotlin入門】Base64でエンコードとデコード

暗号化するほどのデータでもないけど、なんとなく生で流すのが嫌なデータってありますよね。(通信経路の暗号化とは別の話です) そんな時は簡易的に情報を Bse64 でエンコードして、送信先でデコードしてもらう手段も検討されます。 逆に相手からエンコードさ…

Macでスクリーンショットを撮る方法(ショートカットキー)

Mac

Windows なら「PrintScreen」キーを押すと画面全体のスクリーンショットが撮れます。 また起動中のアプリケーションがある場合は、「Alt + PrintScreen」キーで特定のダイアログのみのスクリーンショットが撮れます。 Mac ではどうやるんだろうって調べてみ…

Macのbrewでインストールしたアプリを削除(アンインストール)する

Mac

ローカルで簡易的に Web サーバが必要になって nginx を brew からインストール。 $ brew install nginx ついでに動的なコンテンツを返す必要も出てきたので、php7.2 も入れちゃいます。 $ brew install php72 しかし、せっかく Docker が動く環境なので Doc…

CircleCIでGitのソースを自動ビルドして継続的インテグレーション

最近、ビルドを伴うプログラム言語で開発しています。 ソースは GitHub で管理していますが、まだリリース前ということもあり稀にビルドが通らないソースコードがプッシュされることも。 そこで、CircleCI を使って GitHub と連携し、プルリクエストをマージ…

MacのターミナルでCPUのコア数を確認する方法

Mac

何気に Mac のターミナルで uptime コマンドを実行したら 1 分平均のロードアベレージが 3 を超えている・・・。 確かに、IDE やら Docker やら開発環境系は色々と動かしているけど、15 分平均を見ても 2 は超えている模様。 メモリ 16GB 積んでるし動作は快…