yikegaya’s blog

yikegayaのブログ

マークダウンをHTMLに変換するツールをいくつか試してみた

Gitのレポジトリにコミットされているマークダウンで書かれたドキュメントがあって、それをCI/CDパイプラインの中でHTMLに変換してBASIC認証かけて公開したい。。 というタスクを業務で振られたんでマークダウン をHTMLに変換するツールをいくつか試した。そ…

Vue +GoでPocketの記事にまとめてタグ付ができるサービスを作った

Pocketに記事をどんどん放り込んでいて整理できてない。。というモヤモヤがありPocketのAPIを使ってうまいこと整理できないかと考えてた。 https://ikeyu0806.hatenablog.com/entry/2021/05/09/113856 で、整理するならとりあえず記事にタグ付けできる機能が…

curlでPocketのアクセストークンを取得する

あとあと読みたいネットの記事のURLをPocketにどんどん放り込んでたんだけど、未読がたまっていく一方だったりして少し整理したりいい感じに管理できるプログラム作れないかな。。と思ってとりあえずPocketのAPI叩いてクリップした記事を取得してみた。 Pock…

iOS開発に少しだけ手を出してみた感想

仕事で使うとかモバイルエンジニアにキャリアチェンジしたいとかではないんだけど、iOS開発環境少し触ってみたので感想書いてみる。 現状 ここ数年Webの開発エンジニアポジションで直接のモバイル開発経験なし。モバイルに渡すサーバサイドのAPIとかWebView…

フリーランス1年目の確定申告振り返り

フリーランスになって初の確定申告があった。税理士には頼まずに自力でやってみたんでその記録。 確定申告に向けての準備 フリーランスなりたての時にやったこと クラウドの会計ソフトに登録する。自分の場合はfreeeのスタータプランに登録した。 事業用の口…

Kindle Unlimitedで技術書いろいろ読んでみた

Amazonの技術書眺めてたら割とKindle Unlimitedで読みたい本あるな。。と思い加入していろいろ技術書読んでみた。 使ってみた感じ、買ったら3000円くらいする技術書が月1000円で読み放題で思ったよりいい本もあるんで結構良い気がしている。 以下読んだ本の…

terraformでRDSに接続するAPIサーバをECSにデプロイする

terraformでGoのAPIを動かすECSを作ろうとした時、DBの接続で結構手こずった。 初回のterraform実行でRDS構築してさらにECR(コンテナのレジストリ)からdockerイメージをpullしてECS内にコンテナを立ち上げるんだけど、その時に以下の2点がうまくできずに…

public access可能なRDSをterraformで作成した時のメモ

実運用ではダメだけどちょっと試したいことがあってpublic access可能なRDSをterraformで作った時のメモ 必要なこと RDSのpublicly_accessibleをtrueにする VPCのenable_dns_supportとenable_dns_hostnamesをtrueにする RDSに紐づいているsubnetのaccessをpu…

document.execCommandの代替(クリップボードへのコピー)

javascriptでdocument.execCommandを使ってクリップボードにテキストをコピーしているプログラムがあったんだけど最近のブラウザだとこのメソッド使えないらしく代わりになるものを探した。 クリップボードAPIってものがあってこっちを使えばいいらしい。ク…

terraformで AWS acmの取得、破棄を繰り返してたら上限超えたので緩和申請した

httpsを使いたくてterraformからAWS Certificate ManagerでSSL/TLS 証明書を発行してたんだけど使ってる個人AWSアカウントだと上限が10だったらしくてterraform applyとdestroyを繰り返してたら超えて発行できなくなってしまった。 対応 AWSのサポートセンタ…

ECS環境に必要な最小限のリソース

ECS用のterraform思っていろいろ調べたりいじったりしてみたんだけど、AWSのいろんなサービスと絡んでいて最低限必要なリソースがよくわからないのでまとめてみる。 とりあえずterraformでECS環境構築してnginxにブラウザからアクセスできるところまでやって…

最近読んだ技術書

エリック・エヴァンスのドメイン駆動開発 ずっと積読になってたのをやっと読んだ。 技術だけ追ってても完成度の高いソフトウェアを作るのは厳しくてドメイン知識を開発に落とし込む努力が必要。ってのが500ページ以上使って実例を交えて紹介されている。著者…

GoでDBの接続情報をyamlに切り出した時のメモ

Goで作ったサービスで環境ごとにDBの接続先を切り替えたいと思ってこんな感じ↓でyamlに書いた接続情報を読み込んだ時のメモ。 driver: mysql development: user: root password: "pass" protocol: "tcp(movie_mysql:3306)" db_name: "movie_info" これがベス…

ポートフォリオのデプロイどうするか考えた

ポートフォリオ(Next.js+Goの映画情報提供Webサービス)作ったは良いけどローカルで動作確認しただけで実際公開するところまではやってなかった。 けど、せっかくだしインフラ作ってコード化するところまでやってしまおうかと思った時にどの技術を使うかを…

IoTのオンライン講義受けてみたので軽くメモ

IoT

別に仕事で必要とかじゃないんだけどもしかしたら個人開発で面白い物作れるかな。。と気になってたのでUdemyでIotの講義視聴してみた。一旦手は動かさず。 【IoT101】知識ゼロから作って学ぶIoT入門 | Udemy 軽く内容メモ ArduinoとRaspberry Piっていうのが…

React Nativeに入門した

React Native触ってみたかったのでUdemyで講座買って受講してみた。 React Native入門:ニュースアプリを作りながら覚えよう/Hooks対応版 | Udemy 感想 ほぼWeb開発のReactのコードと変わらなそう。Reactが書ければ割とすぐ開発できそう。 見た目の調整も普…

自作カレンダーの開発の進捗振り返り

ポートフォリオとしてVueとGo言語で作ったカレンダーサービスの開発が進んだので振り返ってみる。 GitHub - ikeyu0806/vue-calendar: Vue.jsで開発中の自作カレンダー 最近実装したもの GraphQLで予定の登録、更新、削除をできるようにした。 ユーザ登録でき…

「Goならわかるシステムプログラミング」の17章を読んだ(Go言語とコンテナ)

コンテナ 仮想化は、使いたいサービスだけでなくOSも含めてまるごと動かすことが前提の仕組みです。そのため、たとえばゲストOSとホストOSが同じLinuxであればカーネルやシステムのデーモンを重複してロードすることになり、無駄にメモリを消費してしまいま…

「Goならわかるシステムプログラミング」の16章を読んだ(時間と時刻)

OSが使う時間の仕組みは歴史的経緯などもあって少し複雑な構成をしており、たくさんの種類のタイマーやカウンターがあります。 リアルタイムクロック(RTC) システムクロック タイムスタンプカウンター(TSC) 各種タイマーデバイス 時間に関するシステムコ…

「Goならわかるシステムプログラミング」の15章を読んだ(Go言語のメモリ管理)

「Goならわかるシステムプログラミング」を前章に続いて気になったところ抜粋+コード写経しつつ、15章を読んだ 物理メモリと仮想メモリ 今、メモリが8GBのマシンがあり、そのうちの1GBをOSが消費しているとします。 残り7GBを使って、1GBずつのメモリを消費…

「Goならわかるシステムプログラミング」の14章を読んだ(並行・並列処理の 手法と設計のパターン)

並行・並列処理の手法のパターン まず、複数のコアを使って重い処理・ブロックする処理を効率よくさばく方法につ いて、Go言語に限らない一般的な基礎知識を解説しておきます。 並行・並列処理の実現手法には、おおまかに区分すると、マルチプロセス、イベン…

「Goならわかるシステムプログラミング」の13章を読んだ(並列処理)

複数の仕事を行うことを表す言葉には並行(Concurrent)と並列(Parallel)の2つがあります。 並行:CPU数、コア数の限界を超えて複数の仕事を同時に行う ほんの少し前まで、コンピューターに搭載されているCPUはコア数が1つしかないものが普通でした。その…

「Goならわかるシステムプログラミング」の12章を読んだ(シグナルによるプロセス間の通信)

シグナルには、大きく2つの用途があります。 プロセス間通信:カーネルが仲介して、あるプロセスから、別のプロセスに対してシグナルを送ることができる。自分自身に対してシグナルを送ることも可能 ソフトウェア割り込み:システムで発生したイベントは、シ…

「Goならわかるシステムプログラミング」の11章を読んだ(プロセスの役割と Go言語による操作)

前章に続いて写経しつつ「Goならわかるシステムプログラミング」の11章を読む。 現在起動中のプログラムの絶対パスを表示 package main import ( "fmt" "os" ) func main() { path, _ := os.Executable() fmt.Printf(" 実行ファイル名 : %s\n", os.Args[0]) …

「Goならわかるシステムプログラミング」の10章を読んだ(ファイルシステムの最深部 を扱うGo言語の関数)

前章に続いて「Goならわかるシステムプログラミング」の10章を写経しつつ読んだ。 ファイルの変更監視 開発言語や環境によらず、プログラムでファイルを監視する方法には、次の2種類があります。 監視したいファイルを OS 側に通知しておいて、変更があった…

「Goならわかるシステムプログラミング」の9章を読んだ(ファイルシステムの基礎と Go言語の標準パッケージ)

「Goならわかるシステムプログラミング」の9章(ファイルシステムの基礎と Go言語の標準パッケージ)を写経しつつ読んだのでメモ。 ファイルシステムとは コンピューターにはさまざまなストレージが接続されています。ハードディスクやSSD、取り外し可能なSDカ…

「Goならわかるシステムプログラミング」の8章を読んだ(Unixドメインソケット)

「Goならわかるシステムプログラミング」の8章を読んだ。8章はUnixドメインソケットについて。 TCPとUDPによるソケット通信は、外部のネットワークにつながるインタフェースに接続します。 これに対し、Unixドメインソケットでは外部インタフェースへの接続…

「Goならわかるシステムプログラミング」の7章を読んだ(UDP)

引き続き「Goならわかるシステムプログラミング」の7章を写経しつつ読んでみる。 前章はTCPだったけどこの章はUDP。TCPより機能が少なくシンプルなプロトコル UDPはTCPと同じトランスポート層プロトコルですが、TCPと違ってコネクションレスであり、誰とつな…

「Goならわかるシステムプログラミング」の6章を読んだ(TCPソケット通信)

6章 ソケット通信について 6章からソケット通信についての内容で6章はTCP。前章までに比べてサンプルコード多め。 写経して動作確認しながら読んでみた。 ソケットとは プロセス間通信の一種です。ソケットが他のプロセス間通信と少し違うのは、アドレスとポ…

「Goならわかるシステムプログラミング」の4章、5章を読んだ

「Goならわかるシステムプログラミング」の4章を読んだのでメモ。4章はチャネル、5章はシステムコールについて 4章 チャネルとは何か 本文から引用 ソフトウェアの世界には、キュー(queue)と呼ばれるデータ構造があります。 キューは、最初に投入したデー…