ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

go-linqを触ってみた

GolangでC#のLINQのようなデータ操作をできるgo-linqを触ってみました。 GitHub - ahmetb/go-linq: .NET LINQ capabilities in Go使い方は公式のREADMEにそのまま書いてあるので改めてここには書きませんが 便利そうなので備忘録として残しておきます。GoのS…

ginとendressを使ってGraceful Restartを実装してみた

GolangのWeb Frameworkであるgin、"Zero downtime restarts"を行うためのendressを使って タイトルにあるようにGraceful RestartするWebのサンプルを作ってみました。https://github.com/gin-gonic/gin https://github.com/fvbock/endless サンプルソース ソ…

Microsoft TypeScript Vue Starter を vue-loader 15系でやってみた

github.com3カ月くらい前ですが、TypeScriptの雰囲気を知るため、こちらにあるMicrosoftのTypeScript Vue Starterを途中までやってみました。 チュートリアル形式でREADMEが書かれているので、そのまま進めたのですが、途中で躓いたところがあったのでメモ代…

Visual Studio CodeのRemote DevelopmentでWSL内のGolangを書いてみる

ちょっと前(だいぶか?)Visual Studio Codeでリモートで接続して編集できる「Remote Development」が登場して気になっていました。 Visual Studio Code Remote Development登場したときは正規のVisual Studio Codeではなく、プレビュー版?のVisual Studio…

Terraformを初めて触ってみた

タイトルにあるようにTerraformに初めて触ってみました。 やったこととしては、 インストール AWSにEC2インスタンスを立てる 立てたインスタンスを削除 です。もう何番煎じの記事になるのか分からないですが、自分への備忘録として残しておきます。 インスト…

survey を使ってインタラクティブなプロンプトを作ってみた

GitHub - AlecAivazis/survey: A golang library for building interactive prompts with full support for windows and posix terminals.タイトルにあるように、surveyを使ってインタラクティブなプロンプトを作ってみました。 どんなことが出来るかやイメ…

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

「Goならわかるシステムプログラミング」の一連の記事をゴールデンウィーク中に読んでました。 https://ascii.jp/elem/000/001/235/1235262/単純にコーディングしているだけでは意識することが少ない、低レイヤーの話が分かりやすく書かれており、必要になっ…

「UNIXという考え方」を読んだ

平成最後の日、UNIXという考え方 を読みました。 shop.ohmsha.co.jp著者自身が書いているように分かりやすい口語体で書かれているので、内容が気になる方は本書を読むことをお勧めします。以下、本書を読んで感銘を受けたところについて備忘録として纏めてお…

Serverless Frameworkを使ってLambdaでPDFを出力するサンプルを作ってみた

久しぶりにAWS と Serverless Frameworkを使い、LambdaにてDynamoDBからデータを取得し、PDFをS3に出力するサンプルを作ってみました。CloudWatchなどで定期的にLambdaを起動することを考えると、割と実案件ではありがちな要件かと思われます。今回作ったサ…

Go Moduleでローカルパッケージを作成する

Using Go Modules - The Go BlogGo Moduleについての上記の公式サイトではhello.go、それのテストであるhello_test.goを GOPATHの外に実装する方法について書いてあります。ですが実際にプログラムを作るときには、ローカルに幾つかのパッケージを作ることが…

AWS SAMでLambdaのみのFunctionを作成してみた

前回に引き続き、AWS SAMネタです。 sam init コマンドで作成されてるのはAPI Gateway + Lambdaという構成のテンプレートなのですが Lambda単体で動かしたい or Lambdaと別のイベント(S3とかDynamoDBとか)を切っ掛けに動かしたいこともあるかと思います。な…

AWS SAMによるテンプレートプロジェクト作成~ローカルでの実行

AWS SAMを使い、テンプレートのプロジェクトを作成してローカルで実行するまでの 流れについて纏めてみました。既に色々なサイトで書かれてはいますが、今後の自分のために書いておきます。 前提として AWS SAMの実行環境が用意されていること 動作確認は(Wi…

AWS CLI、GolangでS3のPre Signed URLを取得してみる

AWS CLIとGolangで、それぞれS3にあるオブジェクトのPre Signed URLを取得してみました。 やってみた背景としては、リクエストがあった時にS3に配置したオブジェクトを安全にリクエスト元へ渡したい、みたいな要件を耳に挟み Pre Singed URLを作ればいいんじ…

Windows Subsystem for Linux上にAWS SAMの実行環境を構築する + Golangの開発環境を用意する

タイトルにあるように、Windows Subsystem for Linux上でAWS SAMを実行する環境を構築してみました。 単純にLinux上にAWS SAMの実行環境を構築するだけと思いきや、細々と調べながら進めることになったので その結果をメモ代わりに書いておきます。 Windows …

gbのテストで特定のものを実行する、結果を色付けする

タイトルにあるように、gbのテストで 特定のパッケージ、メソッドを実行する テストの結果の詳細を表示する、結果を色付けして分かりやすくする 方法についてです。 ただgbだけでなく、普通の「go test」でも使えるかと思います。 (go testの場合は「gb」を…

ビルドツールのgbをVisual Studio Codeで使ってみる

Golangのビルドツールのgbを試してみました。 私は普段Visual Studio Codeを使っているので、こちらでエラーとならないよう設定もしました。gbを使うメリットとしては 自分が作成したpackageをimportする際にGopathからのフルパスを書かなくていい 使用する…

AWSのロードバランサーについて調べてチラシの裏書きw

AWSのロードバランサーについて、今更ながら調べてみました。 とはいっても既に様々なサイトで情報が公開されているので、詳細についてはそれらを参考にした方がいいかと思います。 (公式のドキュメントもかなり充実しているし)なのでここではチラシの裏書…

「増補改訂Pythonによるスクレイピング&機械学習開発テクニック」を読んだ

増補改訂Pythonによるスクレイピング&機械学習開発テクニック(クジラ飛行机) | 書籍 本 | ソシム を読みました。以下、その短い感想になります。本のタイトル通り、Pythonによるスクレイピングや機械学習の本なのですが 開発環境の構築 機械学習とはなん…

DockerにてPythonの開発環境を作成するためのコマンド

タイトルにあるように、DockerにてPythonの開発環境を作成するためのコマンドのメモです。 ホストOSはWindows 10、Docker for Windowsはインストール済という状態からです。 ローカルイメージ確認~イメージダウンロード~起動 Python3.6のイメージをダウン…

cal-heatmapを使ってGithubの草を再現してみる

Githubの草、去年は結構話題だったかと思います(いや、Githubが出来てからずっとか?w) 遅ればせながら、あの「草」をどのようにすれば作れるのかを調べてみました。結論としてはcal-heatmapというライブラリを使えば出来ることが分かりました。 https://c…

Microsoft To-Do のタスクをGolangで取得してみる

前回の記事で、Microsoft To-Doのタスクをcurlで取得してみました。 Microsoft To-Do のタスクをAPIで取得してみる - ソースコードから理解する技術-UnderSourceCode今回はGolangでタスクを取得するコンソールアプリを作ってみました。 ビル…

Microsoft To-Do のタスクをAPIで取得してみる

MicrosoftのTo-Doというアプリを使って、普段は日々のタスクを管理しています。 このTo-DoのタスクはOutlookのAPIを使って操作できるなので、やってみました。まずはお試しなので、curlでタスクを取得するところまでです。 手順について 1. アプリの登録 API…

goqueryでスクレイピングする

Golangでスクレイピングしようと思い、いくつかのライブラリを検討しました。 それらの中でjQueryライクに扱うことができるgoqueryを使ってみたので、メモ代わりに書いておきます。GitHub - PuerkitoBio/goquery: A little like that j-thing, only in Go.と…

go-wkhtmltopdfでPDFを出力してみる

GolangでPDFを出力するためのライブラリとして GitHub - SebastiaanKlippert/go-wkhtmltopdf: Golang commandline wrapper for wkhtmltopdf があります。単純な使用例は上記のGithub内にもあるのですが 今回は実案件で使用することを想定し HTMLをPDFに変換…

gb環境下で定義ジャンプができない?

普段はVisualStudioCodeを使ってGolangの開発を行っているのですが 定義へジャンプができないことがありました。gbを使ってビルドしており、ライブラリなどはプロジェクト直下のvendor/に配置されます。 このvendor内のソースへジャンプできないようです。。…

EchoとVue.jsでCRUDを、、、、作りかけた

EchoとVue.jsを使いTodoをCRUDするサンプルを作り始めました。 「始めました」と書いているのは、サーバ側のCRUDは実装したのですが クライアント側は一覧の表示だけしか実装していないからです。まあ、EchoとVue.jsを組み合わせたサンプルの一つにはなるか…

Windows10 ドライブを削除できない?

Windows10 でCドライブを拡張するために、一旦隣のDドライブを削除しようとしました。「管理ツール」-「コンピュータの管理」- 「記憶域」配下の「ディスクの管理」からDドライブを選択し 右クリックから「ドライブの削除」を使用とすると選べません。結局、…

「現場で役立つシステム設計の原則」を読んで - その2

「現場で役立つシステム設計の原則」を読んで - ソースコードから理解する技術-UnderSourceCode 前回の記事の続きとなります。こちらの本を読み終えました。 最後まで読んだ感想としては、オブジェクト指向やドメイン駆動開発を如何に実践的…

libgdx をVisual Studio Codeで開発してみる

libgdxをVisual Studio Codeで開発できるかを試してみました。Visual Studio Codeには(プラグインを入れることで)Javaの入力補完やコンパイルエラーの表示があるので Javaの入力補完や定義元へのジャンプができる コンパイルエラーが表示される などコーディ…

「現場で役立つシステム設計の原則」を読んで

現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法:書籍案内|技術評論社こちらの本を読みつつ、写経をしてみました。 現時点で5章まで読んだのですが、今更ながらドメイン駆動について腑に落ちた気がします。以下、チラシ…