最近の記事

macOS で入力言語を切り替える際のアニメーションを減らして誤操作を減らす方法

背景macOS にて英語と日本語の入力ソースを頻繁に切り替えるような使い方をしており、言語切り替えのたびに表示されるアニメーションは視覚的にわかりやすく便利ですが、時としてその遅延が誤操作を引き起こすことがあります。もちろん他の可能性も模索しましたが、現状最も効果があったのはアニメーションの無効化で、本当はシステム側の他の仕組みが加わっている可能性は否定できませんが、こちらのアニメーションが出てこなくなるのでここでは便利上アニメーションの無効化と呼んでます。 設定Syste

    • ChatGPT と一緒に肉を焼いてみた

      ふと無性にサムギョップサルを食べたくなってきたのですが、あいにく手元にレシピが無かった。人気のレシピサイトで検索しても良かったのですが、せっかくなので ChatGPT と一緒にレシピから作ってみました。 想定読者ChatGPT に興味がある方 肉が好きな方 環境ChatGPT 3 フライパン一つ との他は一般的なご家庭でもよく見かける材料のみ レシピを生成してみるChatGPT はプロンプト(質問内容)によって精度が結構変わるので、まずは全体的なテーマを定義して回

      • Datomic Cloud を一年半運用してきた感想

        こんにちは。トレタの CTO の鄧(でん)です。今回はトレタ Advent Calendar 2022 12 月 4 日分の記事で会社の主力サービスの運用の話です。 はじめに トレタでは O/X (Order Experience) という名で飲食店向けのモバイルオーダーエントリーシステムを提供しており、将来的には POS レジまで作る予定となっております。もちろんお客さんにとってかなり重要な業務なので、その裏側ではデータの変更履歴や監査ログを重要視して Datomic

        • Datastream for BigQuery で Incremental な分析環境を作ってみた

          こんにちは。トレタの CTO の鄧(でん)です。今回はトレタ Advent Calendar 2022 12 月 3 日分の記事でデータ基盤と分析環境の話です。 トレタでは約 1,944 GiB (RDS バックアップサイズ) のデータベースを扱っており、一般的な daily バッチ式の ETL では時間がかかり過ぎるため、元々 Debezium ベースの内製ツールを使って AWS にあるプロダクション環境 (MySQL) と GCP BigQuery で構築された分析環境

        macOS で入力言語を切り替える際のアニメーションを減らして誤操作を減らす方法

        • ChatGPT と一緒に肉を焼いてみた

        • Datomic Cloud を一年半運用してきた感想

        • Datastream for BigQuery で Incremental な分析環境を作ってみた

          Datomic Cloud を半年運用した感想

          こんにちは、株式会社トレタで Clojure を書いている鄧(でん)です。 2021 年 7 月より新規事業をして飲食店向けのセルフオーダーシステムを開発しており、そのバックエンドに Datomic Cloud と Clojure を採用しました。 採用理由は幾つかありますが、主に履歴、監査ログ、変更通知周りの機能要件がマッチしていると考えており、現状 Datomic と親和性が最も高い Clojure も共に採用しました。 良かったところ、気に入ったところ直感的なデータ

          Datomic Cloud を半年運用した感想

          [TLA+] 分散システムを設計する際に形式仕様を導入してみた

          こんにちは、トレタの鄧(でん)です。 今回はトレタ社内でシステムを設計する際に導入した形式仕様(formal specification)、あるいは形式手法(formal method)についてお話したいと思います。 なぜ形式仕様が必要なのか?モバイルアプリや Web アプリ、またはマイクロサービスなどの普及により基本分散型のサービスが主流になりつつあると思いますが、その分散型のシステムを設計する際に複数のシステムの状態推移や整合性を担保するシステム設計はそのシステムの複

          [TLA+] 分散システムを設計する際に形式仕様を導入してみた

          Datomic Cloudで実現するデータ指向アプリケーションデザイン

          これは何かClojure Advent Calendar 2020の記事です。職場でDatomic Cloudを使ってプロトタイピングした経験かTipsとかを淡々と書き下ろした内容となっております。長文ですが、これを機にDatomicに興味を持って頂けると嬉しいです。 データ指向アプリケーションとは ここで言うアプリケーションはデータ(実績やファクト)を蓄積、表示、加工、運用、場合によっては分析につなげることを価値として提供しているものを指しております。少し広めの定義ですの

          Datomic Cloudで実現するデータ指向アプリケーションデザイン

          まとめ、アンインストール方法

          (これは「week-of-datomic」最終日の記事です) これまで schema 管理、アプリケーションロジック、デプロイ、分析などいろいろな視点から  Datomic Cloud を使ってみましたが、今回は後片付けをしたいと思います。 Datomic Cloud は基本 CloudFormation で管理されていて、CloudFormation Stack を削除することでほぼ消えるのですが、手順と幾つか注意点をご紹介します。 CloudFormation St

          まとめ、アンインストール方法

          Datomic Analytics

          (これは「week-of-datomic」四日目の記事です) 前回はアプリケーションロジックをデプロイするところまで作りましたが、このままだどアプリケーション側に蓄積されたデータがサイロ化するので今回は分析基盤と繋げてみようと思います。 アーキテクチャー Datomic は内部のデータを SQL(Apache Presto)のインタフェースを通じて外部に公開することが可能です。 Access Gateway が Presto Coordinator の役割を兼務しており

          Datomic Analytics

          アプリケーションロジック(Ions)

          (これは「week-of-datomic」三日目の記事です) 前回ではデータベースのテータ構造(Schema)を定義するところまで作りましたが、今回は API を公開して外部からアクセスできるようにしたいと思います。使っているデータセットは「MusicBrainz」、音楽業界のアーティストと曲のデータベースです。 アーキテクチャーDatomic Cloud は独自の最適化されたアーキテクチャーで構成されています。一つのアプリケーションは複数の Ion(Lambda みたい

          アプリケーションロジック(Ions)

          データモデリングとスキーマ管理

          (これは「week-of-datomic」二日目の記事です) 一般的なリレーショナルデータベース(以下 RDBMS)はデータ定義言語(DML)とデータ操作言語(DDL)という二つの異なる文法で操作するのですが、Datomic の世界ではデータとデータ構造(以下 schema)を区別しておらず、すべてデータとして扱います。もちろんトランザクションもデータですのでビジネスドメインのメタデータを追加したり、データの変更が発生した当時のトランザクションメタデータも検索できます。

          データモデリングとスキーマ管理

          week-of-datomic

          久しぶりに集中できる時間があったので、念願の Datomic を触てみようと思います。日記もかねて内容を advent calendar 形式で公開しようと思います。 スケジュール● 12/3 (火) - Datomic Cloud のシステム構成とインストール方法 ● 12/4 (水) - データモデリングとスキーマ管理 ● 12/5 (木) - アプリケーションロジック(Ions) ● 12/6 (金) - Datomic Analytics ● 12/7 (土) -

          week-of-datomic

          Datomic Cloud のシステム構成とインストール方法

          (これは「week-of-datomic」初日の記事です) Datomic は単体で動く「on-prem」とクラウドで動かす「Datomic Cloud」がありますが、今回は自分の AWS アカウント上で Datomic Cloud を動かしてみようともいます。 Datomic Cloud のインストール方法について まずは AWS Marketplace ではなく、公式の Cloud Formation(Split Stack)テンプレートを使って作成します。 AWS

          Datomic Cloud のシステム構成とインストール方法

          Datomic Cloud Analytics を使ってみた

          アプリケーションのデータ分析や障害対応、または会計監査の際に、過去の状態を完全に再現できたらいいなと思ったことありませんか?またはデータの関係性を変更する(一対多 → 多対多)際に、もっとシンプルに出来ないかと考えてことはありませんか? Datomic Cloud はデータの構造、粒度、キャッシュ、それと「時間の巻き戻し」も含め、全てきめ細かく管理できるように設計されたアプリケーションアーキテクチャです。 MySQL などのリレーショナルデータベースは正規化の粒度やインデ

          Datomic Cloud Analytics を使ってみた

          Steve Yegge の Google とプラットフォームに関するぶっちゃけ話

          元 Google 元 Amazon エンジニアの Steve Yegge が 2011 年に「Stevey's Google Platforms Rant」というタイトルで発表したブログがありました(日本語訳がありましたのでよかったらこちらからどうぞ)。中身は当時のクラウドプラットフォームに対する愚痴ですが、その中で当時の Amazon が SOA (今時の言い方だとマイクロサービス) 化を進めてきた理由と遭遇した課題など面白い知見がありました。 2011 年といえば Ku

          Steve Yegge の Google とプラットフォームに関するぶっちゃけ話

          現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ

          これは何か和田卓人さん(🦁)の「現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ」を Clojure で挑戦しました。 お題: 現在時刻が関わるテスト* 問1: 時間に応じて異なるあいさつをする関数を作成する(テスタブルに) * 問2: ロケールによって異なるあいさつに対応させる(テスタブルに) この解答例の大きな目的* 関数とプロトコルによる問題のモデリング過程 * 責務の分割とはどういったことか 問題を解くポイント 今回のお題には大きく二つのテーマがありま

          現在時刻が関わるユニットテストから、テスト容易性設計を学ぶ