ねぎ嫌い

始業前に学んだことを小出しに。最近はHacker Newsの人気記事をまとめてみたり。

serverless framework x localstackでSNSトリガーなLambdaを動かす

動機 serverless frameworkを使ってSNSトリガーで動作する関数の実装をしていたがローカルで動作確認したくなった serverless-offilne-snsを使っても良いのだけれど、リソースが増えるたびにプラグインを増やしたくなかった 環境 Mac OS 14.3 Docker v24.0.6…

rrule.jsでJSTを扱いたい!!

背景 前回の記事 でGoogle Calendarの繰り返し予定の扱いについて書いたが、これを解釈してDBに突っ込む必要があった。 rruleはRFCで定められた仕様なのでライセンスが許せば、OSSのライブラリを活用できるはずで、実際実装してくれている有志がいる。 ref. …

Google Calendarの繰り返し予定を理解した

背景 Google Calendarと相互にデータの送受信を行うアプリケーションを実装しており、繰り返し予定の扱いが非常に難解だった。 パッと言葉だけ見てもあんまり理解できなかったので動かしながらメモした中身を残しておこうと思う。 前提 Google Calendarから…

BitBucket PipelineでAWS Organizationsの各アカウントに対応したterraformの構築がしたい!

背景 CI/CDのツールとしてBitBucket Pipelineを使う必要があった AWS Organizationsにより環境ごとにAWSアカウントが分かれていた 方針 可能な限り余計な情報を持ちたくないので、OIDCを用いた仕組みを構築したい 手元での実行もありうるが変にロックを掛け…

Docker Volumeが削除できない!

背景 ローカルマシンのDocker VolumeのMount先を変更しようとしたときに、Volumeが消せなくなって困った 環境 macOS Monterey 12.1 Apple M1 Docker Desktop 4.4.2 (73305) エラーメッセージ Cannot remove volume XXX. Reason: Error invoking remote metho…

Docker Desktop (M1 Mac) でVolumeが作れない

課題 docker compose up を実行すると、以下のエラーが発生する ERROR: for postgresql Cannot start service db: error while mounting volume '/var/lib/docker/volumes/postgresql_db/_data': failed to mount local volume: mount /tmp/postgresql/data:…

社内システムの認証にOktaを使って楽をする

背景 社内システムを使うのにアカウントの管理が面倒だった ちょうどOktaを使い始める風潮があったので相乗りしたかった 前提 Oktaを導入している やること Oktaのアプリを登録する フロントエンドでOktaのSSOを実装する バックエンドでアクセストークンの検…

CoverityとJIRA CloudをIntegrationする

背景 Coverityで発見された脆弱性をJIRAに起票したい 大したことは書かないけどちょっと詰まったので脳から消す意味でも書き残す 参考 チュートリアルの動画 Unable to connect Coverity Connect to a cloud Jira instance 環境 Coverity Platform やること …

Cloud Run x Cloud SQLでGrafanaをTerraformで立てる

背景 プロダクトの監視に安くダッシュボードを作りたい 運用コストをあんまり上げたくない => (フル)マネージドな環境でGrafanaを立てればええやん TL;DR github.com 前提 GCPのプロジェクトがセットアップされている 構築手順 Terraformを記述する Deploy…

Slack Botの実装をbolt x typescript x cloud functionsで実現する

背景 Slack上の特定のコマンドやアクションに引っ掛けて、チャンネル作成や通知をしたい 特にチャンネル作成の権限がシステム管理者や特定の役割を持った人に集中している場合に、彼らを通さずに実現したい TL;DR boltに関しては日本語訳あるので、公式を読…

S3からShift JISファイルを取り込んで処理をする(Node.js)

ちょっとハマって悔しかったので。 node.jsがShift_JISの変換をうまいことやってくれない。 変換様のパッケージをインストールする。 npm i iconv-lite npm i -D @types/iconv-lite UTF-8であれば、以下のように楽に取り込める なお、Typescript import { S3…

Requested factory com.ctc.wstx.stax.WstxOutputFactory cannot be locatedで怒られる

wsdlファイルからClientを書こうとして、Eclipseでインポートするときに掲題のエラーが発生した。 いろいろいじった結果、wstx-asl-4.0.0.jarをWEB-INF/lib以下に配置し、eclipseを再起動することで解消。 Exception occurred during code generation for WS…

2017-10-23 Simple Ways to Be Better at Remembering

原文:www.nytimes.com 何かを思い出すための簡単な方法についてのお話。 平均的な1日では、人は47回もスマートフォンを確認している。 18歳から24歳に限って言えばその倍近くにも登る。 この状態は、何かを覚えておくのには難しい。 スマートフォンは歩行や…

2017-12-05 Introduction to logic programming with Prolog

原文:Introduction to logic programming with Prolog Prologと言う論理型言語についてのお話。 筆者は大学時代に言語とパラダイムについて研究をしていて、 その中で多くの言語に触れ、良し悪しを把握してきた。 そのなかで、論理型言語であるPrologを計量…

2017-10-22 C++ Tips of the Week

原文:abseil.io C++のtipsを週に一度書いていくウェブサイトのお話。 このウェブサイト自体はオープンソースのC++の標準ライブラリ Abseilで、 このページはその中で議論されているC++のTipsを転記していく。 もともとはGoogleで行われてたTips of the Week…

2017-10-19 DevDocs API Documentation

原文:devdocs.io 複数のAPIドキュメントをまとめたDevDocsのお話。 各言語のリファレンスが一覧性高く、速く、検索しやすいインターフェースで提供されている。 めっちゃ便利そう。

2017-10-18 Why we switched from Python to Go

原文:getstream.io PythonからGoを使い始めた経緯のお話。 既に経験のある言語から新しい言語に切り替えるのは大きなステップが必要になる。 streamでは主要なプログラミング言語をPythonからGoに切り替えた。 本記事では、なぜPythonからGoに切り替えたの…

2017-10-16 Why PostgreSQL is better than MySQL

原文:Why PostgreSQL is better than MySQL | PostgreSQLがMySQLよりも優れているお話。 どんな製品にもバグはつきものである。 PostgreSQLのコミュニティでは、発見されたバグは直ぐに修正されるだろう。 PostgreSQLのコミュニティでは常にバグをトラッキ…

2017-10-16 Efficient pagination of a SQL table with 100M records

原文:allyouneedisbackend.com 巨大なデータを持つテーブルを効率的に読み込む方法についてのお話。 1億行のレコードを持つテーブルからデータを読み込む時、どのように読むべきか。 1. 明らかに間違った解決策 SELECT user_id, external_id, name, metadat…

2017-10-14 Steve Wozniak announces tech education platform Woz U

原文:techcrunch.com Appleの共同創立者として知られるSteve Wozniak氏が オンライン教育のプラットフォーム「Woz U」をローンチした。 最初のカリキュラムはコンピューターサポートの専門家と ソフトウェア開発者がターゲットになっている。 また、データ…

Google API をJava経由で叩く時にログを出す

com.google.api.client.http.HttpRequest内でログレベルがLEVEL.CONFIGだったらログを出すとしている。 public HttpResponse execute() throws IOException { //省略 Logger logger = HttpTransport.LOGGER; boolean loggable = loggingEnabled && logger.is…

2017-10-10 A Data-Driven Guide to Becoming a Consistent Billionaire

原文:A Data Driven Guide to Becoming a Consistent Billionairetheartandscienceofdata.wordpress.com 億万長者の特性についてのお話。 Bill Gatesのように、常にForbesの億万長者ランキング上位にいる人もいれば、 里見治のように、3回もランキング…

2017-10-06 Programming Models for Distributed Computation

原文:github.com ノースイースタン大学の分散コンピューティング講座のお話。 本記事(リポジトリ)は分散システムを構築するための構造を解説している。 講座の目的は分散システムを構築するために使用するプログラミングモデルやフレームワークから一貫性…

2017-10-04 Interactive Vim tutorial

原文:Interactive Vim tutorial WEBから実施できるVimのチュートリアル。 ブラウザ上で一つ一つVIMのモードやコマンドを解説してもらいながら出来る。 Vimの勉強するのにとてもよろしい。

2017-10-03 Matcha – A framework for building iOS and Android apps in Go

原文:github.com プログラミング言語「Go」でiOSとAndroidアプリを生成するフレームワークのお話。 Matchaは、Goで書かれたiOS、Androidのビルドをするパッケージである。 ReactNativeのようなUIコンポーネントを提供し、JavaとObjective-Cのリフレクション…

2017-10-02 PopSQL – Modern, collaborative SQL editor for your team

原文:popsql.io PopSQLと呼ばれる新しいSQLエディタの話。 SQLのクエリのコラボレーションが実現可能で、 チャットやメールを介さずにクエリのやり取りが出来る。 また、データを自動で可視化してくれる。 MySQL, Postgresql, Cassandraなど、主要なデータ…

2017-09-29 Three Paths in the Tech Industry: Founder, Executive, or Employee

原文:blog.ycombinator.com テクノロジー系のキャリアについてのお話。 筆者がキャリアの相談に応じる時、多くのテック系の人には3つのパスがあると言う。 創業者 役員 従業員 創業者 メリット 情熱を注げる何かで働ける 世界に新しいものをもたらせる 高い…

2017-09-30 Google removes Catalan referendum app from Google Play after court order

原文:www.thespainreport.com Googleがカタロニア高裁の要請を受けてGoogle Playからアプリを削除したお話。 削除されたアプリは、現在地や街の名前・キーワードに最も近い投票所を示してくれるもの。 本アプリは裁判所からの要請で削除され、現在Spainから…

2017-09-28 Nuitka: a Python compiler

原文:nuitka.net PythonコンパイラであるNuitkaのお話。 PythonのアプリケーションをNuitkaに渡すとコンパイルして実行モジュールにしてくれる。 PythonをCに翻訳することで、CPythonよりも高速で動くとしている。

2017-09-27 Giving you more characters

原文:blog.twitter.com Twitterのツイート文字数の上限が広がるお話。 日本語・中国語・韓国語を除く全ての言語で140文字の上限から280文字に増加される。 日本語・中国語・韓国語のように1つの文字で意味を伝えられる言語と違い、 英語やスペイン語などは1…