Data Engineering Study #20「10年戦えるデータ分析入門」回・前半の発表資料です。
![Data Engineering Study #20 "Introduction to Data Analytics with SQL" Book](https://cdn-ak-scissors.b.st-hatena.com/image/square/529a7e5db06dfa10def8cf8c297bcc797fad13fa/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Fa3d67b6ea03f455ebdce82fdabab5699%2Fslide_0.jpg%3F26204820)
Data Engineering Study #20「10年戦えるデータ分析入門」回・前半の発表資料です。
はじめに 2023年8月9日(日本の場合)Go1.21がリリースされました🎉。Go1.21ではさまざまな変更点や追加機能が加わります。その中でもGo標準ライブラリに導入される構造化ロギングパッケージlog/slog(以下、slog)を楽しみにしている方は多いのではないでしょうか? 本稿では、slogを実際に触りつつ、機能の解説をしていきます。 TL;DR 本稿の概要をスライドにもまとめているので、ご参考にして下さい。 従来のlogパッケージについて slogの説明に入る前に、Go標準のlogパッケージについて簡単に紹介する。logパッケージを用いると、 io.Writer インターフェースを実装する任意の型にログメッセージを書き込むことができる。しかし以下のような制限があった。 ログレベルをサポートしていない ログレベルはほとんどのログパッケージの定番機能の一つだが、logパッケージには
はじめに アプリケーションレイヤーでトランザクションを考慮した実装をどのようにすればいいのか悩んでいる人が多いことに気がつきました。オニオンアーキテクチャ等でアプリケーションコードを関心ごとのレイヤーに分離するときに、トランザクションを開始するためのDBとのコネクションの作成をどのレイヤーで実施するのか悩んでいる人が多いそうです。 本記事ではDDD+オニオンアーキテクチャ+Repositoryパターンを使う前提で、私がよく使うトランザクションを考慮した実装について説明しようと思います。 トランザクションを考慮した実装 私はトランザクションを開始するためのDBとのコネクションの作成はUsecase層で実施します。 私がよく書く実装ではDDDでいうEntityを定義します。そしてRepositoryではEntityのCRUDのみ行うように実装し、Repositoryをトランザクション境界にしま
こんにちは, プロダクト開発部の今村です. ここ一年ほど, 主にグノシーのプッシュ通知基盤の部分的なリプレイスや機能追加をしていました. この記事ではプッシュ基盤の構成を紹介したいと思います. 概要 FCMのAPIを呼び出す部分 サーバーのスケーリング 送信対象の読み込み 送信の流れ その他の工夫 重複配信の防止 パフォーマンス調整 おわりに 概要 まずはプッシュ通知の種類を整理します. 今回扱うのは, 多数のユーザーに同じ内容を送るような通知です. 重要なニュースが発生したときに送る速報や, キャンペーン情報の通知などが該当します. 対照的に, ユーザーごとに異なる内容を送る通知もあります. 例えば社内で定時プッシュと呼ばれている機能では, ユーザーごとにパーソナライズされた記事を毎日決まった時間に送ります. このような通知はこの記事では (ほぼ) 扱いません. プッシュ通知基盤に求めら
PHP で「文字列に特定のキーワードが含まれているか」や「文字列中に特定の文字列を含むか」を確認したい場合、どのようなコードを書くだろうか? もし、あなたが strpos()やstrstr()を使う方法を思いついたのなら、これだけは覚えて帰ってほしい。 文字列検索には str_contains() を使え。 結論:文字列検索には str_contains() を使う サンプル 昔はstrpos()やstrstr()などを使っていた strpos() や strstr() ではダメなのか? strpos() を使うべきでない理由 strstr() を使うべきでない理由 preg_match()を使うべきでない理由 「いや、キーワードが先頭にあるかを知りたいんだ」という人は 「日本語でも使えるの?」との疑問について もっと詳しく? これでわかっただろう 結論:文字列検索には str_conta
Wayback Machineやウェブ魚拓など、特定時点のウェブページのデータを保存するサービスは多数存在しています。そうしたアーカイブサービスのうち、「ArchiveBox」はオープンソースで開発されており、セルフホストすることで自分だけのデータを保存可能になるサービスとのことなので、実際に使い勝手を確かめてみました。 ArchiveBox/ArchiveBox: 🗃 Open source self-hosted web archiving. Takes URLs/browser history/bookmarks/Pocket/Pinboard/etc., saves HTML, JS, PDFs, media, and more... https://github.com/ArchiveBox/ArchiveBox ArchiveBoxのセットアップ方法はパッケージマネージャーを
こんにちは、Azure Identity サポート チームの 高田 です。 本記事は、2023 年 6 月 20 日に米国の Azure Active Directory Identity Blog で公開された The False Identifier Anti-pattern を意訳したものになります。ご不明点等ございましたらサポート チームまでお問い合わせください。 本日は、ID の世界における危険なアンチパターンである 偽の ID (識別子) のアンチパターン を取り上げます。アンチパターン とは、繰り返し発生する問題に対する一般的な対応策のことで、こういった問題は多くが悪い結果をもたらし、想定と反対の結果をもたらすリスクとなるものです。パスワードのアンチパターン も聞いたことがあるかもしれません。本日お話しする内容は、もしかしたらより危険なパターンかもしれません。 偽の ID (
はじめに みなさんは、スクラムでストーリーポイントを付けるときどのような基準でつけているでしょうか? ストーリーポイントの基準は時間にすべきではないと言われています。 しかしながら、 スクラムを初めて導入して今まで時間対の工数見積もりに慣れていたチームや請負型の社外パートナーが入ったプロジェクトなど、現実的には時間を基準にしてストーリーポイントを運用しているプロジェクトも多いでしょう。 また、ストーリーポイントの見積もりを付け始める際の最初の基準として「4時間 = 1ストーリーポイント として考えよう!」というように知らず知らずのうちにそのような運用になっているケースもあると思います。 私は経験から、ストーリーポイントの基準を時間にするのは、プロジェクト管理に大きい悪影響をもたらすアンチパターンであり、すべきではないと結論づけています。 私が経験してきたプロジェクトで、ストーリーポイントの
こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは RDB に Amazon Aurora MySQL 2(MySQL 5.7 互換)を使っています(以下 Aurora MySQL と略します)。 ある日、社内の Slack で「𠮷」などの文字列が登録できないのではないかという話が出ました。これを聞いて「あー」と思った方も多いでしょう。 MySQL で有名な UTF-8 の 4 バイト文字問題で、歴史的な理由から MySQL 5.7 以前では utf8 の文字セットは utf8mb4 ではなく utf8mb3 を指しています。 dev.mysql.com カミナシのアプリケーションは 4 バイトの文字列が入力された場合はシステムエラーを返す実装になっていますが、エラーの内容をユーザーにわかりやすく伝えることは難しいためユーザー体験としても良くない
[ 星暁雄の仕事はこちら ] 2023年7月1日、日本でもTwitterの不調、不具合を訴えるツイートが増える様子を見た。「API制限のメッセージが出て閲覧できない」「自分のツイートも見られない」などの内容だ。今回の機能不全に関して、メモを残しておきたい。一言でいえば、Twitterの経営判断ミスと技術的ミスの積み重ねにより、ユーザーに迷惑がかかる結果となった。その背後には組織の弱体化があると考えられる。 Twitterのオーナーであり、CTO(最高技術責任者)を名乗るイーロン・マスク氏は7月1日(現地時間)、Twitterユーザーが感じている不調の理由は「異常なスクレイピング(注:Webサイトから機械的にデータを取得すること)の負荷に対応するため、閲覧できるツイート数を制約したため」と説明した。 いくつかのアカウントが機械的に大量のツイートを収集する挙動をしているため、全ユーザーに対して
はじめに Streamlit vs Gradio Gradioの設計思想 Interface 入出力に応じたUI Interface String Shortcut 入力データのサンプルのセット ドキュメンテーション テーマの変更 タイムアウトへの対処 中級者への第一歩、デモを作る際に知っておきたい処理 Gradioが担当する前処理について プログレスバー もろもろの出力結果を保存するには? 認証認可(というか認可) その他、解説しないが需要の有りそうなもの まとめ 追記 : 動画になりました。 はじめに 機械学習系のデモアプリを作成することがしばしばありStreamlitを使用していたが、パラメーターなどをいじるたびに処理が最初から走るなどといった挙動に悩まされていた。 同僚がGradioというのを使っていたのでサーベイがてらメモしていたらブログが出来上がってしまった。 本ブログでは、G
はじめに Obsidianという素晴らしいプロダクトが登場してから、デジタルノート術は活発化したと思います。私もその1人で、今日も楽しくObsidianを使っています。 しかし、その一方であまりノート術にこだわりが強くない方や深く理解するほど価値を感じていない人の中ではまだまだ単なるメモ帳として使われている現状があります。 そこで、今回は「がんばらない」Obsidianノート術として、「こだわりすぎない」「多様な原理原則がない」形で『書く』習慣を付けるためのノート術を書きました。 そんなノート術であったとしても、今後ノートを分解していけるような構造にしておくことで、今後の拡張性を残しています。ぜひ「難しくて挫折しまった」という人はチャレンジしてみてください。 『書く』ことで整理術は生きる Personal Knowledge Managementはの概念やLYTといった考え方は斬新で、とて
?「プロジェクトでよく使うコマンド Makefile に書いたろー」 ?「docker compose up -d --wait っと…」 👮♀「 Makefile警察 だ!」 👮♀「 Makefile は、ソフトウェアのビルドプロセスを自動化するためのファイルだ!」 👮♀「多目的なタスクランナーとして使うな!」 ?「せやったんか。誠にごめんなさい。」 Makefile は広く使われていますが、時々目的外に使われてしまうことがあります。しかし、そのような使い方にはより適した代替手段が存在します。この記事では、 Taskfile というツールについて解説します。 Makefile のつらみ Makefile は主にビルドプロセスを自動化する目的で生まれましたが、様々なコマンドをまとめて実行する便利さから多目的なタスクランナーとしてもよく使われます。しかし、次のような問題があります
コードを書く仕事をしてると、読むことも多い。読んでる時間のほうが多いかもしれない。いま書かれてるコードを読むことも、もちろん多いし、何年も前に書かれたコードを読む機会も割とよくある。 コードを読むと、そのコードを書いた人の考えや、そのときの状況が感じられて、おもしろい。特に、何年も前に書かれたコードを読むときは、コーヒーを片手に(そのときはこんな感じだったんだろうなぁ)って想像しながら読んで楽しい。 ふと、どういうコードから、自分がどういうことを想像するのかを書いてみようと思った。 前提 今、目の前で書かれているコードを読んでレビューしてるときの話じゃなくて、何年も前に書かれたコードを読むときの話をしようと思う。だから、そのコードが良いとか良くないとか、こうするべき「だった」とかは考えない。今後の自分がどう書きたいかなぁ?くらい。 また、そのコードを書いた人が良いとか良くないとかでもない。
オラクルはLinuxカーネルのパラメータを、ワークロードに合わせて継続的に自動チューニングするツール「bpftune」をオープンソースで公開しました(GitHubのページ)。 bpftuneは「BPF」(Berkeley Packet Filter)と呼ばれる、Linuxカーネル内のさまざまな機能をフックして機能拡張が可能な仕組みを利用し、継続的にLinuxカーネルのきめこまなかレベルで監視を行い自動チューニングを実現しています。 オラクルはbpftuneを開発した背景として、クラウドに代表される大規模なサーバ展開が可能なインフラにおいて、以前よりも個々のサーバのチューニングについて注意が払われることがほとんどなくなったこと、チューニングされるとしても静的に適切な設定があると考えられることが一般的であることを挙げています。 bpftuneによる自動チューニング対象の項目 bpftuneは現
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く