ユユユユユ

webエンジニアです

2020-05-01から1ヶ月間の記事一覧

デザインを知らないエンジニアによるウェブデザインの工夫

jnsato.com で自己紹介ページをホストしている。 jnsato.com いろいろ工夫はしているのだけれど、自分がどういう意図で何をどう工夫したのか、いずれ自分でも忘れてしまいかねないから、ここに書き残しておく。 いくつかの記事に分割して書くことにする。ひ…

Lambda + API Gateway + DynamoDB で Go の小さなアプリを作った

なにか作ってみようとなったときにサーバーレスで簡単にホストできるのは嬉しい。 パブリックなプロダクトではないし、ソースコードもプライベートレポジトリにおいてあるので、具体的にどう、という話が書けないのは残念だが、せめてやったことのアーカイブ…

AWS Amplify でコンテンツ管理ダッシュボードを実装して得た10個の手応え

AWS

AWS Amplify というフレームワークについて、 Developers.IO の記事を筆頭に、名前を見かけることがここ数ヶ月でグンと増えた感覚がある。 CLI で簡単にサーバーレス構成を立ち上げられてとても楽らしい、など漠然とした印象を持つだけだったが、小さなプロ…

コロナ時代のGraphQL

GraphQLのチュートリアル、 How to GraphQL をやった。どんな技術であるのかについて、概論やイメージは浸透しているだろうから、この記事はあらためてそれを紹介するというよりも、初めて実装に触れた学習者の立場から手応えを交えて書く。すなわち、GraphQ…

2^n 通りのbit全探索を m^n 通りの深さ優先探索に一般化する

以前の記事で bit 全探索を利用して冪集合を作った。 jnsato.hateblo.jp これは任意の有限集合の各要素について、部分集合に含めるか含めないかを表すフラグの組み合わせを総当たりする方法であった。各要素が 0 or 1 の二元のいずれかに振り分けられるため…

『Real World HTTP 第2版』でHTTPの歴史的文脈と最新動向を俯瞰する

Goの学習を進めるにあたって、A Tour of Goを終え、簡単なAPIの実装を経て、『改訂2版 みんなのGo言語』を読んだ。書評を記事として残すこともした。 jnsato.hateblo.jp 読了後は、同書執筆陣の技術ブログの過去記事を乱読していた。それだけ信頼できる書き…

任意の集合のすべての部分集合を列挙する

任意の集合について、すべての部分集合を列挙したい。これはつまり、ある集合から冪集合を作りたい、と言い換えられる。 たとえば 3 つの要素からなる集合 X = {1, 2, 3} に対してP(X) = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3} }であるような写…

自己証明書で通信するコンテナスイートの実装と、いまさらそれを学ぶ意味について

Go

自己署名した証明書について、オレオレ証明書と揶揄する呼び方が浸透して、自己署名のリスクという側面はおおいに宣伝されている。一方で、ではどのような手順を踏めば証明書に署名し、発行できるのか、という実態について、知る機会を持つことはなかった。 …

深さ優先探索と std::next_permutation でそれぞれ n! 通りの順列を生成する

長さ n の順列 [1, 2, ..., n] を並べ替えて n! 個の順列を作りたい。 2<=n<=8 程度として、二通りのやり方を試してみた。 深さ優先探索 与えられた順列を末尾の要素から再帰的に swap して前通りの組み合わせを試す。ループごとに添字が 1 ずつ増えていくの…

ループイテレータの型を思考停止で int 型にしてはならない

y = f(x) = x^5 となるような写像 f を作ろうとして次のようなコードを書いてハマった。 unsigned long long N[1000]; for (int i = 0; i < 1000; i++) { N[i] = i*i*i*i*i; } Nは unsigned long long と定義しているが、 i^5 の i を int としてしまってい…