おひとり

できる限りひとりで楽しむための情報やプログラミング情報など。

プログラミング

【Set Delimiter】MustacheでMustacheのテンプレートを生成

MustacheのSetDelimiterを使って、MustacheでMustacheのテンプレートを作成します。 これを使えば、特定のプレースホルダ(変数)のみ処理し、それ以外を無視することができます。

【Go】アーキテクチャを考慮してWebAPIサーバのサンプルを作ってみました

なるべくクリーンな設計になるようにGoのWebサーバのサンプルを考えて見ました。 何か新しいサーバを書く際は、この構造を元にライブラリを追加するとか、レイヤーを削るとかの調整を行えるものを目指しました。 この記事では、今回作成いたサーバを解説しま…

【macOS】TerminalからGitHubのリポジトリをブラウザで開く

Terminalからコマンド1つでGitHubのリポジトリを開く方法です。 GitHubのページと書いていますが、リモートリポジトリのWebページにアクセスする方法です。 なお、macOSに対応した情報ですが、他OSでも似たようなコマンドでできるかと思います。

正規表現の「.+」とキャプチャを組み合わせて繰り返しを含むパターンを作る

正規表現の「.*」とキャプチャ「()」を組み合わせることで、繰り返しのパターンを定義できます。図解で解説します。また、実際にエディタ中で使う例も紹介します。

【サーバーレスバッチ処理ハンズオン】5章 リファクタリングしてテストを実装

複数のLambda関数に共通する処理をLambdaレイヤーとして切り出したてリファクタリングします。さらに、テストを追加します。この記事は「AWSでサーバーレスなバッチ処理を作るハンズオン」の5章です。

pandasのstackとunstackの図解

pandasのstack()とunstack()を図解で紹介します。 stack、unstackの各処理対象となるレベルの考え方も紹介しています。

SQLでやってたことをpandasではこうやる

pandasへの入門として、SQLでやっていたJOIN、GROUP BYなどをpandasでやるにはどうすれば良いか書きました。 SQLの知識があるとpandasの学習コストが少し下がります。

【Kubernetes】SkaffoldとHelmを使った開発環境の構築

この記事では、Kubernetes + Helm + Skaffoldを使って開発環境を構築する方法を解説します。 docker composeのようにコマンド1つで関連するサービスを起動し、ソースコードを保存したらすぐに反映(ホットリロード)して動作確認できるようにします。

【git rebaseハンズオン】他のブランチの変更を統合、コンフリクト(衝突)の解決、複数のコミットを1つにまとめる方法

git rebaseコマンドを使った「他のブランチの変更を取り込む(conflictの解決)」と「複数のcommitをまとめる」ハンズオンです。 実際に手を動かしながら--continueや--abortなども理解していきます。

GoでGraphQLのSubscriptions(サーバ)の実装。RedisのPub/Subを使って複数サーバ構成に対応

この記事では、GraphQLのSubscriptionをGoで実装してみます。ただし、複数台のサーバを用意する構成を意識するため、RedisのPub/Subを使います。

GoでGraphQLのSubscriptions(サーバ)のシンプルな実装

この記事では、GoでGraphQLのSubscriptionsを実装(gqlgen利用)する方法を紹介します。 非機能要件やモジュール化を極力抑え、必要最小限のサンプルを作ってハンズオンします。

Clean Architectureについてと、スーパーエンジニアに学んだこと

クリーンアーキテクチャの概要と、それを用いたサンプルアプリの実装を紹介します。 幸運にも話を聞くことができたシリコンバレーのスーパーエンジニアに学んだことも合わせて紹介します。

【図解】SQLウィンドウ関数の使い方

SQLのウィンドウ関数の動作について、よくあるユースケースに図を付けてまとめます。 OVER、PARTITION BYの使い方などを知ることができます。 またRANK()やLAG()などの関数の動作についても説明します。

【Go】何か処理をしながらタイムアウトをチェックする

Goでリアルタイムな処理をしながらタイムアウトを検出する方法を紹介します。 チャンネルとcontextを使った2種類の方法を解説します。

iTerm2で「option+delete」による単語の削除が効かない時の対処方

人気のターミナルアプリ「iTerm2」上では、option+deleteによる単語の削除が動作しない場合があるようです。 ここでは、iTerm2でoption+deleteによる単語削除を有効にする方法を紹介します。

【Go】スライス変数の仕組み -スライスヘッダについて

golangのスライス変数についてまとめます。スライスヘッダに含まれる情報や、関数に渡した時の概念図を示します。 スライスを関数に渡したけど呼び出しもとに反映されない、、、といったトラブルシューティングのヒントになる知識です。

Fetch APIでHTTP PATCHリクエストだけが失敗するバグの解決策

JavaScriptのFetch APIでHTTP PATCHリクエストを送信した際に、レスポンスが空になったりするエラーの解決方法を紹介します。

Goによる排他制御 ~ RWMutexによるRLockとLock

GoのRWMutexを使った排他制御(RLockとLock)についてサンプルコードと図を交えて書きます。

【図解】INNER JOINとOUTER JOINの違い

忘れがちなINNER JOINとOUTER JOINの違いを図を図を使って紹介します。この際に覚えよう。

【合法】OSSのFritzingを無料でダウンロードする方法

このページでは、Fritzingを無料でダウンロードする方法を紹介しています。 公式サイトでは有料となったFritzingですが、依然として無料でダウンロードする方法があります。もちろん、合法。ただし、一部未確認な点があるのでご了承を。

コンピュータ科学における抽象化とは何か

コンピュータ科学における抽象化について書きます。ここでは初心者向けに、コンピュータの全体像、インターネットの仕組み、プログラミングの3つの「抽象化」の具体例を見ながら、抽象化とは何なのか考えていきましょう。

【Mac】特定のポートを使っているプロセスを終了させるコマンド

Macで特定のポートを利用しているプロセスを停止させます。ターミナルをのコマンドをつかってみます。

xargsにテキストファイルのデータを行ごとに渡して反復処理する方法

テキストファイルの各行の文字列をそれぞれxargsに渡し、テンプレート文字列的にコマンドを作って実行する方法を紹介します。

PHPにおける静的解析ツール(リンター)、ユニットテストの開発環境の構築

PHPのComposerを使って、PHPUnit, phpcs, PSR-12の開発環境を構築する方法を解説します。

Golangでリアルタイムにstdoutに出力された文字列を取得する方法

Golangから*.shのシェルスクリプトを実行するさい、実行中の結果をリアルタイムに取得したかったので、試行錯誤してみました。言い換えれば、実行完了を待たずに、途中結果を取得する方法です。

Golangでtarを作成する方法

Golangでtarファイルを作成する方法です。変数に格納されたデータ、ディスク上のファイル、それぞれをtarに詰める方法を紹介します。

【Swift 5】文字列を数値として処理(map)し、また文字列に戻す方法

この記事では、Swiftで文字列(String)を数値(UInt32)としてmap処理し、また文字列(String)に戻す方法を紹介します。 関数型スタイルにて、相互変換のサンプルを書いてみます。

【Swift 5】ピンチでTableViewのCellの高さを動的に変更する

この記事ではTableViewCellの高さを、ピンチに応じて動的に変更する方法を解説します。

【Swift 5】文字列をテキストファイルに保存、読み出し、新規作成、存在確認のサンプル

Swiftにて、テキストファイルの作成、読み出し、保存、ファイルが存在するかどうかの確認をする方法を紹介します。

【Swift 5】catchで捕捉したエラーの内容を表示する方法

swiftでのdo ~ catchで、全ての種類の例外に関する情報を出力する方法