プログラミング

Windows10でHaskell開発環境を構築する(Stack, HIE, VsCode)

概要 環境 注意点 手順 Stackのインストール Stack Setup HIEのビルド 前準備 clone Haskell Language Server (VSCodeの拡張)をインストール 試す プロジェクトを作成する ビルド 実行 参考 概要 Windows10でHaskell開発環境を構築する手順を示す。 環境 以…

F#でT4の実行時テキスト生成を使用する

概要 T4 (Text Template Transfomration Toolkit) を利用して実行時テキスト生成をF#にて行う。 T4がサポートする言語はC#, VisualBasicのみだが、C#プロジェクトでテンプレートを作成し、別のF#プロジェクトからそれを参照するという形でF#でもT4を利用する…

Office 365 Teamsにoutgoing webhookが来たのでbotっぽいものを作ってみた

Twitterを眺めていたらMS TeamsにOutgoing Webhookが導入されたという情報が流れてきたので早速これを利用してbotを作成してみた。 docs.microsoft.com システム構成 WebHookの通知を受けるAPIはServerlessFrameworkを利用して作成する。 ServerlessFramewor…

Apache IgniteでバックエンドにH2 Databaseを利用して永続化する

概要 Apache Igniteはインメモリデータグリッドを実現するミドルウェアであるがデータを永続化したいことがある。 永続化の方法としてディスク領域に保存するNative Parsistenceと外部のデータベース等に保存する3rd Party Persistence機能があり、 この記事…

Akka Remoteを利用したServer, Clientの簡単なActor通信するサンプルで動作確認した

概要 akka remoteを使ったリモート間のActorプログラムに慣れるために、client -> server構成の単純なプログラムを作成して動作を確認した。 作成したプログラムは以下 github.com 動作環境 Windows 10 Pro 1709 JRE build 1.8.0_151-b12 scala 2.12.6 akka-…

ServerlessFrameworkでS3の静的サイトのホスティングをする

概要 S3に静的サイトのホスティング機能がある。静的ファイル(HTML, js, css等)をS3に配置すると、それらのファイルをウェブ公開してくれる機能だ。 ウェブホスティング用のS3バケットを作成したり、静的ファイルをS3にアップロードしたりするのをServerle…

API GatewayでAPIキー認証付きのHTTP APIを作る

やりたいこと 以下の記事で作成したAPIは誰でも呼び出せる状態なので、ある特定のクライアントからしか呼び出せないように認証をかける API GatewayのAPIキー認証を利用する hkou.hatenablog.com serverless.ymlを編集する providerの項目にAPIキーと使用量…

ServerlessFrameworkでHTTP API (API Gateway + Lambda (Node.js) )を作成&デプロイする

やりたいこと serverless frameworkを利用してHTTP APIを作成、デプロイする。 HTTP APIはAWSのApiGateway + Lambdaの構成で作成する。 環境 Windows 10 Pro node.js v6.10.3 npm 4.0.5 aws-cli/1.11.149 Python/2.7.9 Windows/8 botocore/1.7.7 serverless …

Groovy, Spockを使ってJavaのテストを作成する

Gradleをインストールする プロジェクト作成 テスト対象のクラスを追加 Specificationを追加 テストを実行 テストが通るように実装 例外のテスト テストレポート Gradleをインストールする 公式のインストールガイドを読むと、Chocolateyでインストールでき…

docker stopしたときにjavaのShutdownHookが呼び出されない

概要 以下の記事で作ったプログラムをdockerコンテナ上で実行して、docker stopしたときにShutdownHookが呼ばれない現象が発生した。 hkou.hatenablog.com 以下のDockerfileでイメージを作成, プログラムはシェルスクリプト経由で実行している。 FROM java:o…

ShutdownHookがどのシグナルで呼び出されるか確認した

やりたいこと JavaプログラムでaddShutdownHookに指定したThreadがどのシグナルで終了したときに呼び出されるのかを確認する。 Runtime (Java Platform SE 8) 確認方法 以下のJavaプログラムを実行する 起動したプログラムにkillコマンドでシグナルを投げて…

AWS SESのバウンス・苦情メールをSNS経由で通知する(2017/12版)

概要 AWS SESのバウンス・苦情を管理したい。 これらを放置して一定の基準を超えてしまうとSESが停止されてしまうためである。詳細は以下のリンクを参照。 docs.aws.amazon.com SESにはバウンス・苦情があった場合の通知機能があり、SNSを経由して他のサービ…

【WPF】 Bool型プロパティを反転してBindingしたい

ViewModelに定義したBool型のプロパティを反転(否定)してBindingしたくなった。 例えば処理中を表すプロパティがtrueの場合にボタンなどの各種コントロールをDisable状態にして触らせないようにしたい。 こんな変数をViewModelに定義して private bool _Ex…

DOMで遊んでみる

DOMについて DOM(Document Object Model) プラットフォームに中立的なイベント・ノードツリーのモデル DOMの仕様 W3C DOM4 W3C DOM4 DOM Standard ( “DOM4” ) 日本語訳 DOM Standard 日本語訳 DOMとHTML HTMLはツリー構造でありDOMで表現できる。例えば…

ScalaでSlack botを作った

某社のチャット上で動作する勤怠システムを見て、自分も欲しくなったので作ってみた。 ソースコードは以下に配置した。 github.com とりあえず勤怠の記録、参照する部分を作成したがまだまだ全然できていない。 AWSかAzureで運用するつもり 以下備忘録 構成 …

SwaggerでAPI作って、Scala.jsでAPIにアクセスするまで

手順メモ Swagger Editorインストール dockerでも配布されていたのでdocker経由でインストール Swagger Tools Docs docker run -p 80:8080 --name swagger-editor swaggerapi/swagger-editor http://localhost/にアクセスする。swagger-editorが表示された。…

TFWH_問題解いてる(1.6~2.8)

Haskellの文法地味に忘れている gist.github.com gist.github.com

「Haskellによる関数プログラミングの思考法」買った

今読んでいる。 買いましたわ〜 pic.twitter.com/zH2gcHDpNk— マコー (@BPK_t) 2017年3月2日 最初の方の練習問題を少しやった。 stackで最新のHaskell環境を落としてきてやっているが、最新のghciは関数定義するときにletしなくてもよくなっているようで少し…

SFTPサーバーをさくっと立ち上げる

開発用にSFTPサーバーが必要になり、とりあえずの接続確認程度が出来れば良かったのでDockerでサクッと構築した。以下その時のメモ Docker image これを利用させてもらう。 https://hub.docker.com/r/atmoz/sftp/ 以下コマンドで実行 SSH鍵を使わずにユーザ…

Rust1.14でWebAssemblyを出力する(Windows10)

つい先日、Rust 1.14がリリースされた。 1.14の大きな変更点としてWebAssemblyのコンパイルが出来るようになった。 「experimental support for WebAssembly」とのことなのでまだまだ実験段階みたいな感じらしいがとりあえず試してみた。 blog.rust-lang.org…

Windows10にRustの開発環境を構築する

Rustのインストール 以下のサイトから「Windows (GNU ABI †) (.msi)」の64bitバージョンをダウンロードする。 https://www.rust-lang.org/en-US/downloads.htmlwww.rust-lang.org 現在のバージョン:rust-1.13.0-x86_64-pc-windows-gnu.msi VC版は別途「VC++…

Dell XPS15 9550購入

仮想環境とか触る機会が増えて手持ちのMacBookProのスペックがだいぶつらくなってきた(主にメモリ)ので新しいPCを購入することにした。 以下の要求を満たすスペックのノートを探していた。 15インチ メモリ16GB以上 CPU 4Core以上 本当はMBP2016を考えてい…

仕事が終わりました。あと読んだ本の整理

8月末をもって入社してからずっと携わっていた仕事が終わることになった。 約1年半ぐらいになるのだろうか、それなりに長いので終わった時はすこし感慨深いものを感じた。 この1年半は今までの人生の中で一番技術書を読んだような気がする。何せ仕事で利用す…

パケットキャプチャを作ってみる

概要 最近、仕事でインフラ周りを見ているのだが、突然コネクションが切れるという問題が発生し、Wiresharkを使ってパケットキャプチャし原因を調査していた。そこで思いの外ネットワークの基礎知識が忘れかけていたので、ネットワークの復習も兼ねてパケッ…

DockerでさくっとRabbitMQ3.6.2の検証環境を作る

RabbitMQ3.6.2の動作検証がしたくなったので環境用意しようとしたがめんどくさくなったのでDockerで環境作ることにした。 準備 自宅のMacにはDockerが入ってないのでインストールから始める。 Docker Tool BoxをDownloadしてインストーラにしたがってポチポ…

RabbitMQメモ

対象 RabbitMQ 3.6.2 AMQP 0-9-1 RabbitMQを構成するもの Publisher メッセージを送信するアプリケーション MessageBroker(RabbitMQ) メッセージを仲介する VirtualHost ExchangeやQueueをグループ分けする Exchange Publisherから受け取ったメッセージをBin…

ActorでZundoko書いた

Actorの状態遷移でcontext.becomeで書くと良いよと教えてもらったので練習がてらzundokoを書いてみた。 gist5c77dc0472d1ff796d1a

NLog使い方メモ

インストール Nugetでインストールする。 PM> Install-Package NLog.Config インストールするとプロジェクトフォルダ配下にconfigファイルが配置される。 ログ出力 class Program { private static Logger logger = LogManager.GetCurrentClassLogger(); sta…

FP in Scala 第7章 Exercise

証明問題は分からなかった… gistda58b68883fd1702f270 gist19148b055d63faae831b

FP in Scala 第6章 Exercise

FP in Scala Exercise 6.1 -6.11