アプリケーションのテストなどで利用できる、リアルな架空の個人情報データ(疑似データ)を生成するツールです。
この本では、無料で公開しているnoteの内容をさらに丁寧に分かりやすく、体系化させてアップデートした内容となっています。 noteの内容を立ち読みだと思ってもらい、より丁寧に学びたい場合は是非書籍を読んでもらえると嬉しいですmm これからSQLを学びたいと思っている方向けに作成したSQL勉強会の資料を公開します!(以下の方向けの勉強会資料です) SQLをこれから学びたい人 仕事でSQLを触り始めたけどイマイチよくわからない人 データ集計やデータ分析をエクセル使ってやってる人 資料こちらから最新の資料をダウンロードして下さい。 (※「Source code (zip)」からダウンロードして下さい) 資料の構成は以下の通りです。 docs PDF資料 演習問題など含めて全部で約200ページくらいあります data ハンズオン用テストデータ csvファイル3つ script ハンズオン用テストデ
はじめに タイトルのとおり、RDBのデータモデリング・テーブル設計を行う際に参考にしている考え方と関連資料をまとめました。 P.S. なんと本記事内でいくつか参考として挙げさせてもらっている増田さん・かとじゅんさん・奥野さん・そーだいさんからコメントいただくことができました。 本当にありがとうございます。 前提 RDBを採用するのは事実を無駄なく正しく記録するため 正規化、トランザクション、制約とデータ整合性 基本的には始めに理想として集合論・リレーショナルモデルに基づいて正規化を考え(論理設計)、パフォーマンスなどの現実問題に対して折り合いをつけていく(物理設計) 制約を最大限利用する cf: ↑P91〜 ↑P.29,41 ↑P56〜 ↑5章 ↑P347~ 情報とデータ データ:単なる事実の値→これを永続化して蓄えるものがRDB 情報:データから生み出される意味や目的のあるもの→RDBか
こちらのReddit投稿 (https://www.reddit.com/r/sysadmin/comments/eaphr8/a_dropbox_account_gave_me_stomach_ulcers/) の和訳記事です。本番環境でやらかしかった人シリーズが盛り上がっていたので波に乗って(?)Twitterにヤバすぎる恐ろしい話が流れてきたのをすかさず和訳してみました。やらかしちゃった人というよりはやらかされちゃった人目線ですがいずれにせよそこら辺の怪談話よりよっぽど怖いです。 Dropboxのアカウントのせいで胃潰瘍になった。 皆は誰もが触れたがらない、会社を靴紐やガムやクリップでつなぎとめている「例のアレ」を見つけたことってある?そういうのって往々にして大型連休前の金曜午後4:45に落ちるし、般若のような様相を呈した上司が「このままだと第二のスターリングラード攻防戦が勃発するぞ
Dockerの概念や仕組みまではなんとなく理解できるもののDockerfileを書こうとするとスムーズに書けなかったり、そもそものDockerの基礎、あるいはコンテナ技術というものの基礎が抜け落ちていてDocker環境に移行できていないところも多いのではと思い、この記事を翻訳しました。 Source:The Docker Handbook by Farhan Hasin Chowdhury(@Twitter) 本記事は、原著者の許諾のもとに翻訳・掲載しております。 コンテナ化の概念自体はかなり古いですが、2013年にDocker Engineが登場したことで、アプリケーションのコンテナ化がはるかに簡単になりました。 Stack Overflow Developer Survey-2020によると、 Dockerは#1 最も望まれるプラットフォーム、#2 最も愛されるプラットフォーム、および
こんにちは。エンジニアの谷井です。 フォルシアでは、Spookと呼んでいる技術基盤を用いて、主に旅行業界やMRO業界に対して、膨大で複雑なデータを高速検索できるアプリケーションを提供しています。 今回はその高速検索のノウハウのうち、特にDBの扱いに関連する部分について、ベテランエンジニアへのインタビューを通してそのエッセンスをまとめてみました。 一般的なベストプラクティスだけでなく、検索性能を高めることに特化しためずらしいアプローチもあるので、ぜひご覧ください。 フォルシアにおける検索DBについて まず前提としてフォルシアで扱うデータについて軽く説明します。 扱うデータの複雑さ たとえば、旅行会社向けのアプリケーションであれば、宿泊素材の情報としては ホテルの情報「〇〇ホテル」(~約2万件) プランの情報「朝食付き・ロングステイ△△プラン」(0~1500件/施設) 客室の情報(~100件/
メリークリスマス!heyでCTOをやっている藤村です。ということで、これからエンジニアになる・いまエンジニアをしているみなさんに個人的に読んでほしい本をご紹介します。これを読んでおけばソフトウェア・エンジニアとして網羅的な基礎が身につく、とかいうセレクトではなく、あくまで個人的に読んでもらえると嬉しいな!というものを選びました。 ソフトウェア開発基礎編リー・コープランド『はじめて学ぶソフトウェアのテスト技法 』 テストの本です。昨今RSpec、XUnit系など自動テストのツールはすっかり普及し、ソフトウェアにテストコードをつけるのは当たり前の世の中になりました。しかし!テストケースをどう設計するか、何をテストすべきか、について体系的に学んだことがない、という方も実はいらっしゃるのでは。 この本はそういったソフトウェア・テスト一般についての教科書です。ここの知識はソフトウェア・エンジニアとし
新しいプログラミング言語やライブラリ、フレームワークを学ぶには、実際にそれらを試して挙動などを見てみることが大事ですが、実行環境を用意するのは手間がかかります。 そこで役立つのが、いわゆる「プレイグラウンド」と呼ばれる、Webブラウザでプログラミング言語やライブラリ、フレームワークをすぐに試すことができるサービスです。 主要なプログラミング言語の公式サイトには、実際にその言語をすぐに試せるプレイグラウンドが用意されていることも多く、また公式サイト以外にもネット上にはさまざまなプレイグラウンドがあります。 プレイグラウンドを使えば、気軽にいろんなプログラミング言語やライブラリ、フレームワークを試せます。 この記事ではそうしたプレイグラウンドをまとめてみました。ここで紹介したプレイグラウンドの他にも、あなたのお気に入りのプレイグラウンドがあればX/Twitterやブックマークのコメント、メール
個人でWebサービスを継続的に運用するのは金がかかってかなわんという問題がある 「個人開発」だと定義が曖昧なので自己資金かつ赤字のプロジェクト(Webサービス)ということにする。 そういうプロジェクトではプロダクトオーナー=自分、開発者=自分、予算管理者=自分というロールになるので予算管理者としてコストを図る必要がある(ここでいうコストはWebサービスを実現するアプリケーションのランニングコストのこと)。 通常はみんな自分の人件費を0として計算していると思う(逆にいうとそれが負債という考え方もできると思う)。 ただしメンテナンス時間とコストのトレードオフもあるので、人件費0ではあるけど有限の時間は別軸として管理しているのが普通だと思う。極端な例だと「コスト削減できるけどメンテナンス時間10倍になる」というのは避けられる。 仮に個人開発のプロジェクトの予算を月数千円から高くても1万円ぐらいか
本項は「C# Tokyo オンライン「世界一わかりやすいClean Architecture」他」による発表の登壇原稿となります。過去に発表した.NET版の記事はこちらにアーカイブしています。 本稿のサンプルコード・PPTはこちらで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 github.com また動画を以下で配信しています。よろしければご覧ください。 世界一わかりやすいClean Architecture はじめに まず初めに、クリーンアーキテクチャの誤解されがちな二つのことについてお話させていただきます。 その上で、クリーンアーキテクチャの本質とは何か?押さえておくべき、本当に重要だと考えている三つの事について、お話しします。 注意事項 さて本題に入る前に、少し注意
最近は個人開発は自分のOSSのメンテで手がいっぱいになってしまったのでサービス開発のようなものは普段あまりやらないのだが、大学院*1で今学期、何作ってもよいという感じの授業を取ってWeb/iOS/Androidアプリ*2を全て作るという体験をする中で、たまたま個人開発のコストを抑える活動をしたので、その時に調べたり考えたりしたことを書いておく。 Herokuで無料にする Herokuでは毎月550時間free dynoが使え、クレジットカードを登録しておくと更に450時間、合計1000時間無料で使える。Herokuは30分アクセスがないと一旦停止するが、今回授業で作ったサービスでこれを使い切らないことは明らかだったので最初はこれでセットアップした。セットアップも簡単だし、PostgreSQLも無料でついてくる。 ただ、コールドスタートに10秒くらいかかり、これがこのサービスではUX的に致命
usagimaru ⌘ @usagimaruma 日本人が想像するよりかなり広い範囲で日本語文字が中華フォント化している現象。CJK処理系における日本語の扱いに対する問題としてそろそろ何とかしていかないと、ソフトウェアの中の日本語が死んでいく危機感がある。そもそもなんでChineseに分類されるフォントにフォールバックされるのかって。 2022-09-28 16:03:32 usagimaru ⌘ @usagimaruma 前も調べたけど、言語環境の言語優先度設定で“わざわざ”日本語を優先言語にしておかないと、日本語の文字の多くは簡体中国語の奇妙なフォントで描画される。バグではなく仕様。わざわざ日本語を優先している民族なんて日本人しかいないから、世界のほとんどはきっと中華フォントで日本語を眺めている。 2022-09-28 16:07:52
Disclaimer 当記事はNewSQL開発ベンダの技術ブログや各種論文、その他ニュースサイト等の内容を個人的にまとめたものです。 そのため、理解不足等に起因する誤解・誤認を含む可能性があります。更なる理解が必要な方はリファレンスに挙げた各種文献を直接参照下さい。技術的な指摘は可能であれば取り込み修正しますが、迅速な対応はお約束できません。 NewSQLの解説は二部構成 当記事は前編でNewSQLの概要編となる。 全体の目次は下記である。 NewSQLとは何か NewSQLのアーキテクチャ NewSQLとこれまでのデータベースの比較 NewSQLのコンポーネント詳解 1章から3章までの内容を当記事で解説する。 4章はさらに詳細な技術的解説となり、後編の「NewSQLのコンポーネント詳解」で記述している。 こちらも合わせて一読いただきたい。 1. NewSQLとは何か NewSQLとは、海
クレジットカード決済基盤を提供するメタップスペイメント(東京都港区)は2月28日、同社のデータベースから最大で46万件のクレジットカード番号、有効期限、セキュリティコードなどが流出したと発表した。サーバへの不正ログイン、SQLインジェクション、バックドアの設置などさまざまな攻撃を受けていたことが調査で分かった。 流出した恐れがあるのは2021年8月2日から22年1月25日までに決済で使われたクレジットカードの番号、有効期限、セキュリティコードなど46万395件、21年5月6日から22年1月25日までに実行された決済情報593件、加盟店情報38件。「実際に流出した情報を特定できない」(メタップスペイメント)ため、数値は考えられる最大値という。 同社は21年12月14日に、サービスの提携先からクレジットカードの不正利用が懸念されているとの連絡を受け調査を開始。22年1月中に、外部からデータベー
この記事で言いたいことは、まとめると以下のような内容になります。 ・「面倒くさくて複雑」といフローは、例外もあるものの、基本的には不適切であるか、そのフローが必要とされる前提の方がおかしい ・けれど世の中には、「面倒で複雑なフロー程正しいし価値がある」と考える人が案外多い ・「面倒くさい」と言える人は貴重なんだけど冷遇されがち ・不要なJOIN句は敵だし、JOIN句の使い回しなど絶対してはならない よろしくお願いします。 さて、言いたいことは最初に全部言ってしまいましたので、後はざっくばらんにいきましょう。 先日、Twitterでこんなことを呟きました。 エンジニアをしていると「面倒くさいやり方は大抵間違っているか、あるいはそのやり方を必要としている前提の仕組みの方がおかしい」という思考は割と普通だと思うんだけど、どうも世間的には「面倒くさければ面倒くさい程正しい、ないし価値がある」と思っ
はじめに 本稿では分析用クエリをスラスラ書けるようになるまでの勉強方法や書き方のコツをまとめてみました。具体的には、自分がクエリを書けるようになるまでに利用した教材と、普段クエリを書く際に意識していることを言語化しています。 想定読者として、SQLをガンガン書く予定の新卒のデータアナリスト/データサイエンティストを想定しています。 勉強方法 基礎の基礎をサッと座学で勉強してから、実践教材で実際にクエリを書くのが望ましいです。 実務で使える分析クエリを書けるようになるためには、実務経験を積むのが一番良いですが、だからといって座学を御座なりにして良いというわけではありません。SQLに自信がない人は、一度基礎に立ち返って文法の理解度を確認した方が良いと思います。 書籍 SQL 第2版: ゼロからはじめるデータベース操作 前提として、SQLに関する書籍の多くがデータベース運用/構築に関する書籍がほ
WEB+DB PRESSは,2023年8月発売のVol.136をもって隔月刊誌としては休刊させていただきます。物価上昇による製作費の高騰など諸般の事情により,今回の決定に至った次第です。 突然の休刊案内にてたいへん恐縮ではございますが,何卒ご理解を賜りますよう,お願い申し上げます。 22年以上の長きにわたり,絶大なご支援をいただきましたことを,厚く御礼申し上げます。 弊誌で扱っていた分野のコンテンツは,今後も弊社刊行のSoftware Designやgihyo.jp,書籍などで提供させていただきます。また,必要な場合には「特別号」の編集・刊行なども検討してまいります。 最後に,皆様の一層のご活躍を心より祈念しております。
この記事の目的 自分は、とある会社様の元でソシャゲの API 開発をさせていただいています。 ソシャゲは、リリース時やイベント時などに集中アクセスされやすく、負荷軽減の知識がない状態で開発を行ってしまうと、運用時に緊急メンテ祭りになりやすいジャンルかなと思っています。 これまで培ってきた MySQL の知識ですが、脳内メモリ量の関係上、暗記できないのでメモしておこうというのが主目的です。 ここ数年ほどソシャゲ開発しかしていないため、偏っている感がある内容ですのでご注意ください。 概要 ストレージエンジンは InnoDB。メインで扱っている MySQL バージョンは 5.6。 記事の内容ですが、これらのキーワードを見て、おおよそ分かる方は読む必要はないかと思います。 インデックス系 クラスタインデックス カバリングインデックス EXPLAIN で注意するべき値 トランザクション系 MVCC
はじめに タスク管理はクリエイターの永遠の課題だと思います。 普段の案件に関するタスクはもちろんですが、案件とは関係ない事務作業やデータの整理、後で読みたい記事、試してみたい技術など、私たちには様々なタスクがあります。 膨大なタスクを管理する方法を日々模索し続け、ようやく自分の中で「これ!」というのが固まってきたので、私なりのNotionを用いたタスク管理方法を解説していこうと思います。 Notionとは 様々な情報やドキュメントを一元管理できるサービスです。公式サイトに書かれている通り、様々なドキュメント管理ツールをひとつに集約したのがNotionになります。 日々の業務は「案件に関するタスク」と「案件とは関係ないタスク」の2つに分けられます。 「案件に関するタスク」は期日や案件の詳細情報、自分の担当範囲などを分かりやすく管理することが重要です。「案件とは関係ないタスク」は業務改善や事務
最近「ああ、これ前職でも前々職でもやったことあるなぁ」という仕事があった。データエンジニア(やその関連職種)として働き始めて約5年、3社でフルタイムとして働いてきて「このスキルは業界や組織規模が変わってもデータエンジニアとしてスキルを求められることが多いな」と感じたものをまとめてみることにした。棚卸し的な意味はあるが、特に転職用などではないです。 前提 どこでも必要とされたスキル データマネジメントに関する概要レベルの知識と実行力 セキュリティや法令に関する知識 事業ドメインに関する興味関心 他職種とのコミュニケーション能力 コスト管理 / コスト削減のスキル ソフトウェアエンジニアとしてのスキル DataOpsやアラートのハンドリング能力 分析用のSQLを書く力 古いテーブルやデータパイプラインを置き換えていくスキルや胆力 あるとやりやすいスキル 関連部署の動きを何となく把握しておく力
本当にあったやらかしDB設計シリーズをまとめてみました SQLアンチパターンで書かれているほど高尚な問題ではなく、もっと初歩的な、でもありがちな問題を取り上げています 初心者を脱出したと思っている人に是非読んでもらい、正しく設計してもらうことを目的としています もしここに載っていないパターンを経験したことのある方がいたら是非教えてください 本当にあったやらかしDB設計①【R無しRDB】 本当にあったやらかしDB設計②【囚人番号テーブル】 本当にあったやらかしDB設計③【ロジカルクエリー】 本当にあったやらかしDB設計④【テストチューニング】 本当にあったやらかしDB設計⑤【第三正規化病】 本当にあったやらかしDB設計⑥【見えない削除フラグ】 本当にあったやらかしDB設計⑦【ステートフルDB】 本当にあったやらかしDB設計⑧【ファンクションDB】 本当にあったやらかしDB設計⑨【文字列日付】
まだ検証足りないけど、マジで想像通りのブツなら魂震えるかもしれん…。 Announcing D1: our first SQL database Cloudflare D1 = Edge SQLite Cloudflare D1 は Cloudflare Worker で、つまり CDN Network 上で sqlite が動きます。これだけなら普通の sqlite ホスティングなんですが、もちろん Cloudflare が出すからにはそれだけではなく、CDN Edge 上に Read Replica がバラ撒かれた sqlite になります。ヤバくないですか? 僕はヤバいと思いました。 このヤバさを知るために、Cloudflare が開発した基盤についていくつか抑えておく必要があります。 Durable Objects は CDN 上の Actor モデルを構築できます。この Acto
こんにちは。 苦しんでプログラミングを学んだ柴犬こと、「くるしば」と申します。 元々コンサルタントの仕事をしていましたが、独学でプログラミングを学習し、Webサービスを作って起業しました。 その後個人で開発したサービスを売却したり、また別のIT系の会社を創業、経営したりしています。 去年の8月から下記のTwitterにてプログラミング学習に関して発信し始め、ありがたいことに10000人以上の方々にフォローして頂きました。 プログラミング初心者に絶対覚えてほしい、ググる時の効率が10倍上がるコツ pic.twitter.com/hK1ZhNavwh — くるしば | 読めば10倍効率が上がるプログラミング学習の教科書 (@shiba_program) September 13, 2022 技術書、Webサービス、QiitaやzennのWeb記事など、最近は本当にプログラミングを学習できるコン
※2021年 3月28日 更新※ たくさんの方にご一読いただき、ありがとうございます。お読みいただいた方からご指摘を賜った点をもとに記事を修正いたしました。修正・追記箇所は末尾をご確認ください。 サーバ周りの仕組みについて、初心者でも最低限知っておくべきだと感じた内容を整理しています。 ここでいう「最低限」とは、プログラミング言語を勉強し、何かしらアプリケーションを作成して、ユーザが利用可能な状態にし(デプロイ)、公開するうえで必要になる知識のことです。 「サーバ」とは何か ユーザの要求(リクエスト)に応じて、サービスを提供(レスポンス)するコンピュータやプログラムのことを「サーバ」と言います。 例えば、ユーザが「このWebページを閲覧したい」とリクエストしたら、サーバはそのWebページの表示に必要な処理を実行し、ユーザに返します。これによってユーザが使用しているブラウザに、Webページが
最近、パーフェクトRuby on Railsの増補改訂版をリリースさせていただいた身なので、久しぶりにRailsについて書いてみようと思う。 まあ、書籍の宣伝みたいなものです。 数日前に、noteというサービスでWebフロント側に投稿者のIPアドレスが露出するという漏洩事故が起きました。これがどれぐらい問題かは一旦置いておいて、何故こういうことになるのか、そしてRailsでよく使われるdeviseという認証機構作成ライブラリのより良い使い方について話をしていきます。 (noteがRailsを使っているか、ここで話をするdeviseを採用しているかは定かではないので、ここから先の話はその事故とは直接関係ありません。Railsだったとしても恐らく使ってないか変な使い方してると思うんですが、理由は後述) 何故こんなことが起きるのか そもそも、フロント側に何故IPアドレスを送ってんだ、という話です
@tkanayama_です。「SQLアンチパターン *1」 という本を読みました。「ポケモンを題材に因果推論を実践してみる」のように、仮想的なストーリ上で実際に使ってみた感を出すことにより、自分の記憶に定着させることを狙います。 前提として、何をアンチパターンとするかは状況(ベンダーフリーである必要があるかどうか、どの程度の頻度で更新されるか・・・など)によって大きく異なるので、下記で紹介するアンチパターンは実は状況によっては問題にならないケースもあるかと思います。この投稿はあくまで「SQLアンチパターン」に忠実に従うことが目的です。 www.oreilly.co.jp 追記 登場人物 ストーリー フシギダネへの対応 ヤミカラスへの対応 ディグダへの対応 誤登録でポケモントレーナーになってしまったユーザーの削除 最後に 謝辞 追記 このブログを公開後、「外部キー制約はレコードロック周りのト
全世界同時リリースする『マリオカート ツアー』の DB に Amazon Aurora を採用 高い品質が求められるゲーム配信基盤の運用工数を、大幅に削減 世界的ゲームメーカーである任天堂株式会社。2015 年ごろからスマートデバイス向けゲームアプリの開発をスタートした同社は、株式会社ディー・エヌ・エー(以下、DeNA)との協業により、全世界で 4 憶ダウンロードを超える『Super Mario Run』、『ファイアーエムブレム ヒーローズ』、『どうぶつの森 ポケットキャンプ』などにおいても、ゲームサーバーを含む各種機能を AWS 上に構築・運用してきました。2019 年に『マリオカート ツアー』をリリースするにあたり、データベースとして Amazon EC2 上で運用する MySQL から Amazon Aurora を採用。ユーザーが快適にプレイするために必要なパフォーマンスとスケーラ
2019年11月5日、トレンドマイクロは同社従業員(当時)の内部不正行為で一部の顧客情報が流出し、その情報が同社のサポートになりすました詐欺電話に悪用されていたと発表しました。ここでは関連する情報をまとめます。 トレンドマイクロの発表 blog.trendmicro.com www.trendmicro.com 2019年8月上旬、ホームセキュリティソリューション利用者の一部がトレンドマイクロサポート担当者になりすました詐欺電話を受けている事実を把握。 詐欺犯が保持している情報を受け、同社が組織的な攻撃を受けている可能性を考慮。 顧客情報の流出は外部からのハッキングではなく、同社従業員による内部不正行為が原因であることを確認。 徹底的な調査は即行われたが、2019年10月末まで内部不正行為によるものと断定できなかった。 同社は洗練されたコントロールを行っていたが、計画的犯行により突破されて
このサイトでは、SQL を高速化するためのちょっとしたパフォーマンス・チューニングの技術を紹介します。と言っても、『プログラマのためのSQL 第2版』の受け売りがほとんどなので、この本を読んでいただければ、本稿を読む必要はありません。 最初に、パフォーマンス・チューニングに関する全体の方針を述べておくと、それはボトルネック(一番遅いところ)を改善することです。当たり前ですが、既に十分速い処理をもっと速くしたところで、システム全体のパフォーマンスには影響しません。従って「処理が遅い」と感じたら、最初にすることは、SQL やアプリの改修ではなく、「どこが遅いのか」を調査することです。いきなりあてずっぽうで改善をはじめても効果は出ません。医者が患者を診るとき最初にすることが検査であるのと同じです。病因が何であるかを突き止めてからでないと、正しい処方はできないのです。 その基本を承知していただいた
私の愛しいアップルパイへ はじめてNotionを使い始めたときは「Evernoteよりもエディタがリッチ」くらいの感想しかなかったのですが、3ヵ月ほど前から改めて本格的に使い始めてようやくNotionのすごさが分かってきました。 身近のNotionを使い込んでいる方の話を聞いたり、メディアで活用事例を見ていくうちに、NotionはEvernoteとはまったく違う概念で情報を整理していけることに気がつきました。 それは、Evernoteよりもずっとパワフルな情報整理機能を備えていたのです。 プログラマーならきっと感動すら覚えるではないでしょうか。私自身、Notionのすごさがストンと腹落ちしたときには、ツツーと頬をつたう涙のような暖かさで体中が満たされました。 鍵は「データベース」です。Notionは単なるノートアプリケーションというより、直感的な操作に対応したデータベース管理システムなので
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く