コンピュータシステムの理論と実装の11章のコンパイラ#2:コード生成を実装しました

前回の続きです*1。今回はコンピュータシステムの理論と実装(以下、nand2tetris本)の11章のコンパイラ#2:コード生成をC言語で実装してみました。 今回のコード 概要 シンボルテーブル SymbolTableモジュール CompilationEngineモジュール コード生成 最小…

コンピュータシステムの理論と実装の10章のコンパイラ#1:構文解析を実装しました

前回の続きです。今回はコンピュータシステムの理論と実装(以下、nand2tetris本)の10章のコンパイラ#1:構文解析をC言語で実装してみました。 今回のコード 概要 トークナイザ main.c (JackAnalyzerモジュール) JackTokenizerモジュール パーサ 式を含まな…

コンピュータシステムの理論と実装の7章と8章のバーチャルマシンを実装しました

前回の続きです。今回はコンピュータシステムの理論と実装(以下、nand2tetris本)の7章と8章のバーチャルマシンをC言語で実装してみました。 今回のコード 概要 7章(スタック操作) スタック算術コマンド main.c Parserモジュール CodeWriterモジュール メ…

コンピュータシステムの理論と実装の6章のアセンブラを実装しました

前回の続きです。今回はコンピュータシステムの理論と実装(以下、nand2tetris本)の6章のアセンブラをC言語*1で実装してみました。 今回のコード 概要 シンボルを含まないプログラムのためのアセンブラ Parserモジュール Codeモジュール main.c シンボルを…

CloudFront/WAF/API GatewayのアクセスログをS3保存するようにしてAthenaで確認できるようにしてみた

関連記事で実装しているサーバレスWebアプリのサンプルのアクセスログ確認をAthenaでお手軽にしたいと思いました。そこでCloudFront/WAF/API Gatewayのアクセスログをデータレイクとして用意したS3バケットへ保存するようにしてみました。 今回のコード アク…

SPA/サーバレスAPIのCodePipelineにlint/ユニットテスト/E2Eテストを加えてみた

関連記事で実装していたサーバレスWebアプリのサンプル向けのSPA/APIのCodePipelineに対して、lint/ユニットテストを行うステージとStaging構築ステージのE2Eテストを行うアクションを追加して自動でテストが実施されるようにしてみました。 関連記事 今回の…

EC2/Laravel+Code4兄弟による継続的デプロイ環境のCloudFormationをAWS CDKに置き換えてみました

AWS CDKがGAになったので前回記事で構築したEC2/Laravel+Code4兄弟による継続的デプロイ環境をAWS CDK化して試してみました。 今回のコード 環境構成 構築手順 CodeCommitを構築 Laravelプロジェクトのビルドに必要なECR環境を構築 VPC/サブネット環境とECイ…

EC2/Laravel環境とCode4兄弟による継続的デプロイ環境をCloudFormation/Ansibleでコード化してみました

AWS CLIでの構築手順だけだとインフラのメンテナンス大変そうだなと思ったのでAWS CLIでCode4兄弟によるEC2+nginx+Laravelの継続的デプロイ環境を構築するで作ったの環境をCloudFormationとAnsibleでコード化してみました。 今回のコード 環境構成 構築手順 …

コンピュータシステムの理論と実装の1〜5章のハードウェアを実装しました(ネタバレ注意)

たまには低レベルなこともしたくて*1コンピュータシステムの理論と実装(以下、nand2tetris本)を始めてみました。nand2tetris本はNANDゲートのみ*2からCPU/OSなどを実装していく素敵な書籍です。今回は1〜5章のハードウェア部分を実装してみたので忘れっぽ…

忙しいソフトウェアエンジニアにお勧めする友人の作り方

とある仕事関連のイベントでLTをさせていただきました。 ミッションだった下記を達成できたのでよかったです。 LTのトップバッターとして場を和ませる*1 勤め先の制度としてエンジニアの自己研鑽のための補助制度を検討事項にしてもらう *1:最後のスライドを…

AlphaZero風オセロにFlaskでWebUIを追加しECS/Fargateで動かしてみた

前々回、前回とAlphaZero風オセロの強化学習環境を作っていましたが、今回はFlaskでWeb化したゲーム部分を追加してECS/Fargateで動かしてみました。*1 今回のコード FlaskによるWebUI 実行方法 実装概要 ECS/Fargateで動かす 構築の手順 ECS/Fargateのオセロ…

AWS Batch環境でのAPV-MCTSのセルフプレイによる強化学習をGPU化してみた

前回の記事で作成したAPV-MCTSのセルフプレイによる強化学習のAWS Batch環境をGPU化して動かしてみました。 今回のコード 環境の概要 GPU化の実装 nvidia-docker2に対応したAMIの作成を行うCodeBuildを追加 セルフプレイの新モデル作成時のトレーニングをGPU…

AWS Batch環境を作ってAPV-MCTSのセルフプレイによる強化学習を動かしてみた

以前の記事で作成したAlphaZeroもどきオセロのAPV-MCTSのセルフプレイによる強化学習をAWS Batchで動かしてみました。 今回のコード 環境の概要 環境構築の手順 VPC環境 ECR関連 AWS Batch関連 セルフプレイ方法 まとめ 今回のコード 下記、タグv0.0.1になり…

Try Ruby on Rails on AWS Lambda and API Gateway by Serverless Framework

This article is a translation of the original article. In November of last year, AWS Lambda's Ruby runtime support was announced and a demo code to run Sinatra was released. I tried running Rails API with reference to these, so I will summ…

Ruby on Rails on AWS Lambda and API Gateway by Serverless Frameworkを試してみた

昨年の11月にAWS LambdaのRubyランタイムサポートが発表されSinatraを動かすデモコードが公開されました。これらを参考にしてRails APIを動かしてみたので手順をまとめておきます。 作ったもの デモコードの使い方 Rails on Lambdaプロジェクトの作り方 作っ…

オセロをランダムからChainerを使ったAlphaZeroもどきへと進化させながら実装してみた

これはChainer/CuPy Advent Calendar 2018の25日目です。パーソルキャリア Advent Calendar 2018の25日目でもあります。 クリスマスにオセロしてくれる相手が欲しかったので簡単なオセロゲームを実装してみました。 今回のコード 遊び方 実装概要 オセロ 人…

Angular+Serverless Framework+AWSな構成のサーバレスWebアプリにAmplify+API Gateway Lambda AuthorizerでCognitoユーザ認証を組み込んでみた

これはServerless Advent Calendar 2018の15日目です。 インフラ構築、Backend API、Frontend SPAと実装してきたサーバレスWebアプリのサンプルにAWS AmplifyとAWS API Gateway Lambda Authorizerを使ってCognitoユーザ認証を組み込んでみました。 今回のコ…

AWS CLIでCode4兄弟によるEC2+nginx+Laravelの継続的デプロイ環境を構築する

これはパーソルキャリア Advent Calendar 2018の4日目です。 AWS CLIを使ってEC2+nginx+Laravelな環境をCode4兄弟(CodeCommit, CodeBuild, CodeDeploy, CodePipeline)で継続的デプロイできるようにする手順をまとめてみました。 構築する環境 構築の手順 最…

Angular6でマテリアルデザイン/ReduxアーキテクチャなSPAフロントエンドを作ってみた

前回、前々回の引き続きでサンプルの空っぽのフロントエンドを動くように実装してみました。 何を作ったのか 使い方 docker環境で動かす 単体で動かす方法 aws-sls-spa-sample-apiを使う方法 AWS環境で動かす 実装 マテリアルデザイン Reduxアーキテクチャ H…

Create a Clean Architecture REST API with Serverless Framework and TypeScript

This article is a translation of the original article. I implemented an empty API of sample prepared in the previous article*1 so that it works. Specification of API Architecture Final goal (but I can not get it...) This article Implementa…

Serverless FrameworkとTypeScriptでClean ArchitectureライクなREST APIを作ってみる

前回のTerraformでAWSサーバーレスなサービスのインフラ構築をコード化する - Inside Closure - にへろぐではサンプルとして空っぽのAPIを用意しました。せっかくなのでこのサンプルを動くように実装してみました。 何を作ったのか アーキテクチャ 目指した…

TerraformでAWSサーバーレスなサービスのインフラ構築をコード化する

最近、TerraformでAWSサーバーレスなサービスのインフラ構築をコード化する機会があったので理解を深めるためにプライベートでも作ってみました。 AWSサーバーレスなサービスの全体像 インフラ構築の流れ セットアップ用のCodeBuild サービスの環境を構築す…

Chainerでサクッとニューラル英日翻訳を試してみた

これはChainer Advent Calendar 2016の6日目です。 qiita.com Chainerによる実践深層学習がとても読みやすくて面白かったので8章の翻訳モデルを参考に英日翻訳するプログラムを組んで遊んでみました。 今回の環境 今回は下記のMacBook Airで実施しました。 O…

TensorFlowの手書き数字認識チュートリアルからざっくりディープラーニングを勉強してみました

手書き数字画像の認識を行うTensorFlowのチュートリアルであるMNIST For ML Beginners[日本語訳]およびDeep MNIST for Experts[日本語訳]を通してディープラーニングについて勉強したので理解した内容をまとめてみました。的な話です。 TensorFlowとディープ…

PHPで「1時間以内に解けなければプログラマ失格となってしまう5つの問題」の問題4と5を改めて解いてみました

PHP

前回、解いた 1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に ですが、さすがにあんまりな内容だったので問題4と5の答えを改めてそれっぽい感じにつくってみました。 主に次のページを参考にしました。 http://qiita.com/tanakh/ite…

プログラマ失格になりました

プログラマになりたいなぁと思って、 1時間以内に解けなければプログラマ失格となってしまう5つの問題が話題に 解いてみました、PHPで。 トータル1時間半ちょいかかってしまいプログラマ失格になってしまいました。 残念。 解き方が全くスマートで無く、関…

D言語でMVarしだした

前に参加したHaskellによる並列・並行プログラミングの読書会にて、 #heyhey_haskell 7.5の無制限チャネルはC言語みたいなポイント操作が素敵でした— にへまk (@nihemak) January 24, 2015 ×ポイント操作 ◯ポインタ操作— にへまk (@nihemak) 2015, 1月 24 で…

Pythonにロジスティック回帰で画像を学習させてみました

今回はロジスティック回帰で画像とラベルの対応関係を教師付き学習させて画像分類の精度を検証して遊んでみました。 ちなみに前回は画像を教師なし学習のk-means法でカテゴリ分けしました。 Pythonで画像の簡単なカテゴリ分け - Inside Closure - にへろぐ …

珠玉のアルゴリズムデザイン19章の数独ソルバー読みました

関数プログラミング 珠玉のアルゴリズムデザインの第19章の"単純な数独ソルバー"のアルゴリズムを追いました。 各効率化の戦略を読み解くのが大変だったので後でまた読むときのために概要だけメモを残します。 お題は数独ソルバー 数独を解くアルゴリズム…

モンティ・ホール問題をGoで確かめてみました

少し前に参加した続・わかりやすいパターン認識の読書会でモンティ・ホール問題について知ったので”司会が正解を知っているか否かによる結果の違い”について、ちょうど触ってみたかったGoで確かめてみました。(Go触りたかっただけ) モンティ・ホール問題って…