OSC 2011 Hokkaidoの発表で使用したスライド資料です。 弊社が「ブラウザ三国志」や「英雄クエスト」といったゲームを、PHP+MySQLで構築してきた上で、身につけたノウハウや、注意すべき箇所、指針などをまとめた資料となっています。
Webアプリケーションが攻撃者に付け込まれる脆弱性の多くは、設計者や開発者のレベルで排除することができます。実装に忙しい方も、最近よく狙われる脆弱性のトップ10を知ることで手っ取り早く概要を知り、開発の際にその存在を意識してセキュアなWebアプリケーションにしていただければ幸いです。 Webの世界を脅かす脆弱性を順位付け OWASP(Open Web Application Security Project)は、主にWebアプリケーションのセキュリティ向上を目的としたコミュニティで、そこでの調査や開発の成果物を誰でも利用できるように公開しています。 その中の「OWASP Top Ten Project」というプロジェクトでは、年に1回Webアプリケーションの脆弱性トップ10を掲載しています。2004年版は日本語を含む各国語版が提供されていますが、2007年版は現在のところ英語版のみが提供さ
NoSQLデータモデリング技法.markdown #NoSQLデータモデリング技法 原文:NoSQL Data Modeling Techniques « Highly Scalable Blog I translated this article for study. contact matope[dot]ono[gmail] if any problem. NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基本的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティック
爆速でセットアップを完了するため、極力コピペで設定できるようにしてみたよ(・∀・) 動作検証は、さくらのVPSで標準OSをインストールして行った。記事執筆時点ではCentOS6.6がインストールされたぞ。 # cat /etc/issue CentOS release 6.6 (Final) # uname -rs Linux 2.6.32-504.3.3.el6.x86_64 お知らせ 本記事の内容をFabric化したスクリプトを公開!ぜひ試してみてね。 → 超速でCentOS6.6(さくらのVPS)をセットアップする俺史上最強のFabricスクリプトをさらす rootのパスワード変更と作業用ユーザの作成 まずは、コンソールからSSHで接続しよう。 [localhost ~]$ ssh root@XX.XX.XX.XX なお、サーバを起動してない場合は、事前に管理画面からサーバを起動しよ
■ OECDガイドラインの8原則についてChatGPTに聞いてみた ChatGPTに色々聞いてみるテストは1月にTwitterに結果を報告していた*1が、GPT-4が使えるようになったということで、もう一度やってみた。ChatGPTは基本的に、質問者に迎合しようとする(質問者の期待に応えようとする)ので、ChatGPTが答えたといっても質問者の意図した答えになっているにすぎない(それゆえ、質問者の意図が明確にされず、ChatGPTも知らないことが問われると、全くの出鱈目を答えてしまうという現象が起きるようだ。)わけであるが、それでも、質問者が誘導しているわけでもないのに質問者が必要としていることを言葉の端々から察知して根拠を探してきてくれるような回答をする。以下は、できるだけ誘導しなように(といっても、後ろの方で明確に誘導しているところもあるがw)質問した例だが、最初のうちはChatGPT
はじめに 本連載では、PHPまたはプログラミング初心者の方を対象に、PHPを用いたWebアプリケーションの作成方法を説明していきます。今回は、データベースとSQLに関して、「おすすめレストラン一覧を閲覧できるWebサイトを制作する場合」を例にして、説明をしていきます。 対象読者 プログラミングが初めてでこれから学習する予定の方 プログラミングの経験はあるがPHPを初めて学習する方 この記事の内容 はじめに 対象読者 動作確認環境 データベースとは何か・・・データベースはどんな役割? データベース操作の基礎・・・データベース言語「SQL」とは SQL基礎:テーブルの作成・・・CREATE文を使ってみましょう SQL基礎:レコード追加・・・INSERT文を使ってみましょう SQL基礎:レコード検索・・・SELECT文を使ってみましょう SQL基礎:レコード更新・・・UPDATE文を使ってみまし
皆さんこんにちは、エンジニアの西尾です。 新しい機能・サービスを開発する際、私は特にデータベース設計に気をつかいます。 データベースはシステムの土台です。 土台が不安定だと、その上に積み上げていくアプリケーションコードがいびつなものになり、つらい思いをします。 また、一度動き出してしまったシステムのデータベース設計を変えるのは、容易なことではありません。 データベース設計には”これだ!”という正解はないと思っています。 サービスの特徴、システムの性質、toB向け/toC向け、Readが多い・少ない、Writeが多い・少ない。 その他もろもろの背景により、データベース設計の仕方も変わってきます。 このテーブルは正規化していないから駄目だ、この設計はいわゆるポリモーフィック関連だから使ってはいけない、などということはありません。 アンチパターンと呼ばれるものも時と場合によっては正解になります。
サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは本日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。
春は出会いと別れの季節。入学や就職で、新しい生活を始める人も多いだろう。それを機にPC環境もそろそろ大人への階段を上ってもいいかもしれない。ここでは、はてなという企業でプログラマーとして働くあの人の開発環境を紹介することで、プロが好む作業環境を考える。 わたしははてなという企業でプログラマーとして働いています。はてなは、ブログやソーシャルブックマークなどWeb上のサービスを提供する会社ですが、それらのほとんどはPerlで書かれており、LinuxやApache、MySQLをはじめとするオープンソースソフトウェアの上で動作しています。そんな理由から、開発環境も自然とオープンソースのツールを使うことになります。今回から2回に分けて、そんなわたしの開発環境を簡単に紹介させていただきたいと思います。 ノートPC1台で開発する 本題のツール類の話に入る前に、開発に使っているハードウェアの話を先にしてお
こんにちは、データ分析部の石塚です。 Gunosyではエンジニア以外の職種でもSQLを叩いて自らデータを集計・分析するという習慣と全社員が各サービスのログ*1に触ることができる環境があります。 例えば、ユーザー獲得を担っているプロモーションチームはエンジニアが0名のチームなのですが、実際にSQLを叩いています。 それによって、自分たちの獲得したユーザーはどのような行動をしているのかを確認したり、分析することができています。 これはGunosyのみの事例ではなく、AWSのRedshiftやAthena、GCPのBigQueryが台頭してきたおかげで、どの会社も低コストにログをSQLで集計・分析できる基盤が整ってきています。 個人的にはアプリやウェブの業界で働くマーケターにはSQLは必須の知識と言える時代になってきたと感じています。 そこで今回は特別プログラミングなどの経験が無い人でも、SQL
仕事やらなんやらでMySQLのクエリの良し悪しを判断する必要があるとき、EXPLAINの内容だけだとどのぐらい良くなったり悪くなったのか分からないので SET long_query_time = 0; してrows_examined (そのクエリでrows_sent行の結果を返すために何行に触ったのか)も一緒に提示するようにしている(少なくともMySQL 5.7時点ではrows_examinedはslow_query_logでしか確認できないはずperformance_schemaが有効ならevents_statements_historyやその仲間たちで確認できるとのこと*1 MySQL :: MySQL 5.6 リファレンスマニュアル :: 22.9.6 パフォーマンススキーマステートメントイベントテーブル)。 例: 上の例のBeforeは、もともとDBAが書いた温かみのあるSQLでO
エンジニアの佐野です。今日はカンムの決済システムでユーザの残高管理をどうやっているかについて書きます。 カンムの製品であるバンドルカードはプリペイド方式のカードです。ユーザによる入金、店舗での利用、運営事由の操作などによりユーザの残高が増減します。このような残高の管理について単純に考えると user_id と balance と updated_at あたりをもったテーブルを用意して balance と updated_at を更新していく方法があるかもしれません。しかしながらカンムでは残高を管理するテーブルを持たず、これらイベントの履歴のみで残高を管理しています。以下、本記事ではこれらユーザの残高が増減するイベントのことをトランザクションと呼びます。ここでは DB の Transaction Processing を意味しません。 本記事のポイントは 残高を管理をするテーブルは作らず、ト
一般社団法人データサイエンティスト協会(所在地:東京都港区、代表理事:草野 隆史、以下データサイエンティスト協会)は、構造化データの加工について実践的に学ぶことができる無料の学習環境「データサイエンス100本ノック(構造化データ加工編)」をGitHubに公開しました。 「データサイエンス100本ノック(構造化データ加工編)」は、データサイエンス初学者を対象に、データの加工・集計、統計学や機械学習を駆使したモデリングの前処理等を学べるよう、データと実行環境構築スクリプト、演習問題をワンセットにしています。 近年、データ活用の重要性についての認知が広がる中で、書籍やWebサイトなど、データ分析のスキル向上に役立つ情報源も多く提供されています。一方で、実践するための「データ」や「プログラミング実行環境」を持ち合わせていないことも多く、「実践力」を身につける機会が限られていました。特に、「構造化デ
たにぐちまことさんの書かれた『よくわかるPHPの教科書(以下、「よくわかる」)』を購入してパラパラと見ていたら、セキュリティ上の問題がかなりあることに気がつきました。そこで、拙著「体系的に学ぶ 安全なWebアプリケーションの作り方(以下、徳丸本)」の章・節毎に照らし合わせて、「よくわかる」の脆弱性について報告します。主に、徳丸本の4章と5章を参照します。 4.2 入力処理とセキュリティ 「よくわかる」のサンプルや解説では、入力値検証はほとんどしていません。しかし、入力値検証をしていないからといって即脆弱かというとそうではありません。徳丸本でも強調しているように、入力値検証はアプリケーション要件(仕様)に沿っていることを確認するもので、セキュリティ対策が目的ではないからです。 「よくわかる」の中で、私が見た範囲で唯一の入力値検証は、郵便番号のチェックをするものです。以下に引用します(「よくわ
ここ数年の大規模サービスのシステム運用について調べてみたので参照したページやファイル、本へのリンクをまとめておく。PDF へのリンクも多数含まれているのでご注意を。 時代が時代なら企業のノウハウとして隠されていたような情報がこれだけ公開してもらえているというのが非常にありがたい。公開してくれている各企業や公開してくれている人に感謝。 あとで気付いたが、Google や Facebook の事例も探しておけばよかった。Thrift とかあったのに。「こんな情報もあったよ」などあればぜひ教えてください。追記していきます。 youtube http://d.hatena.ne.jp/stanaka/20070427/1177651323 digg http://d.hatena.ne.jp/stanaka/20070427/1177651323 livedoor http://labs.cybo
DBの寿命はアプリより長い! 長生きするDBに必要な設計とリファクタリングを実践から学ぶ アプリケーションの寿命よりも長く、データの追加やテーブルの変更で成長し続ける「データベース」と、どのように付き合っていけばよいのでしょうか? 曽根壮大(soudai)さんによる寄稿です。 こんにちは。そーだい(@soudai1025)です。 新しいサービスを始めるとき、必ずと言っていいほどデータベースは利用されています。また今稼働しているサービスの多くでも、RDBMSをはじめ、いろいろなデータベースが利用されています。そんなに広く利用されているデータベースだからこそ、多くの問題の元になるのもまた事実です。 そこで今回は、Webサービスを中心にデータベースの選び方、設計についてお話していきたいと思います。そして私もまさに今、2011年から続くWebサービス「オミカレ」のRDBMSのリファクタリングに携わ
Twitter, GitHub, Qiita などのように root/(username) でユーザーページをルーティングするところが増えてきている. このルーティングを採用し, help などのユーザー名を許可すると, root/help が奪われてしまう. そこで, 登録時に validate で, ある程度排除するのが習わしになっていると思うが, 急に root 直下に置きたいページが増えたときなどに取得されていると悲しいことになる. また, サブドメインを利用するサービスだと, api などをうっかり取られてしまうケースが後を絶たない. http://api.hatenablog.com/ みたいに取られることによる面白みもあるが, おおむねつらい. 実際, twitter では search アカウントが取られていて, TweetDeck では twitter.com/searc
SQL、書いてますか? こと大規模データ処理の分野においてはSQLはもはや標準インターフェイスであり、 分析やらバッチやらに関わっている皆様は日々大量のSQLクエリーを生産していることと思います。 そこでちょっと気になるのが、 SQLのコーディングスタイルってどうするのが一般的なんだっけ……? という点です。 イマドキはSQLなんてO/R mapperに吐かせることが多いからなのか、 それともコードを広い範囲で共有することがそもそもないからか、 SQLのコーディングスタイルについて見聞きすることは他のプログラミング言語に比べるとだいぶ少なく、 いまいち決定版と言えるスタイルがないなと感じています。 そんなわけで本日は、SQLのコーディングスタイルについての意識を活発化させるべく、 クックパッドでわたし(青木)が使っているコーディングスタイルから特徴的な点を紹介したいと思います。 特に、分析
WindowsにRuby on RailsとMySQLを入れ環境を作り、その上で簡単なブックマークアプリケーションを作るまでを記録したムービー。編集ナシでホントに10分以内でアプリケーションを構築してます。 詳しくは、2005年11月18日発売の技術評論社 SoftwareDesign 2005年12月号で解説予定ですしました。 Rails+MySQLインストール編 アプリケーション編 追加情報 Web Developer Study @Sapporo - 2005/11/19 Rails + Selenium - OSC2006 Do 2006/07/15 更新情報 2006/07/15: OSC2006 Doで使った資料 Rails + Seleniumを公開 2005/11/19: Web Developer Study @Sapporoで使った資料を公開しています。 2005/1
Hadoopの時代は終わった、という言説をたまに見かけるようになりました。 もちろん終わってなどいません。しかし、Hadoopとその取り巻く環境が変化したのは事実です。 本記事では、この変化が何なのかを明らかにし、その上で、なぜHadoopの時代は終わったという主張が実態を正しく表していないのかを説明していきます。 DISCLAIMER 私はHadoopを中心としたデータ基盤を取り扱うベンダー、Clouderaの社員です。 中立的に書くよう努めますが、所属組織によって発生するバイアスの完全な排除を保証することはできません。 以上をご了承の上、読み進めてください。 要約 データ基盤は、Hadoopの登場により非常に安価となり、今まででは不可能だった大量のデータを取り扱えるようになりました。 Hadoopは、NoSQLブームの中、処理エンジンであるMapReduceとストレージであるHDFSが
みたいなタイトルの記事を Digg 経由で発見。チートシート代わりにと思い超訳。*1 A Software Architect PHP 最適化 ベストプラクティス! 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo '文','字'; (カンマ区切り)の方が、'文'.'字' (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require でファイルはフルパスで指定しよう。 09
この本では、無料で公開しているnoteの内容をさらに丁寧に分かりやすく、体系化させてアップデートした内容となっています。 noteの内容を立ち読みだと思ってもらい、より丁寧に学びたい場合は是非書籍を読んでもらえると嬉しいですmm これからSQLを学びたいと思っている方向けに作成したSQL勉強会の資料を公開します!(以下の方向けの勉強会資料です) SQLをこれから学びたい人 仕事でSQLを触り始めたけどイマイチよくわからない人 データ集計やデータ分析をエクセル使ってやってる人 資料こちらから最新の資料をダウンロードして下さい。 (※「Source code (zip)」からダウンロードして下さい) 資料の構成は以下の通りです。 docs PDF資料 演習問題など含めて全部で約200ページくらいあります data ハンズオン用テストデータ csvファイル3つ script ハンズオン用テストデ
今日はさくらVPSに載せているWordPressのパフォーマンスをチューニングして高速化に成功したので安心して眠れるという話をします。 2.5ページ/秒だったのが70ページ/秒と30倍高速化。 以前はDaily数千PVで重くなっていたサイトがDaily3.6万PVを余裕で捌けるようになりました。 #ちなみにproxy cacheという手法はwordpressでなくても動的コンテンツ全般に有効です。 ▼サーバ気にしなくて良くなったので今週末新宿御苑に花見に行けました☆。枝ぶりがいいさくらが多くてほんといいところだと思うの。 WordPressチューニング高速化結果http://hara19.jp/のサーバ環境と測定結果は以下のとおり。 WordPress稼働環境さくらVPS 1GB/CentOS5.5/PHP5.3/MySQL5.5/WordPress3.1。 WEBサーバはチューニングにあ
サーバ監視に超使える〜topコマンドのまとめ サーバを運用しているとよく使うtopコマンドですが、標準のtop以外にも色々便利なものがあるのでまとめてみました。 ボトルネックといえば、ネットワーク、ディスクIO、スワップ、CPU、メモリといったものが関連しますが、ツールで視覚化することでより分かりやすい対策がとれますね。 htop こちらも、通常のtopよりもさらに多数の情報を表示してくれるツール。 CPUやメモリの状態が視覚的にグラフで表示されていたり、複数CPUがある場合もそれぞれに利用率を表示してくれてわかりやすいです。 pstreeで表示するようなツリー+topコマンドのような表示も t を押せば切り替えられます。 公式サイト上にある128コア積んだマシンのhtop結果が面白い。 次のようにすべてグラフで表示されているため、128コアあったとしても瞬時に負荷が把握できますね。 io
マルチデバイス対応 OpenPNEはPCのみならず、スマートフォン、フィーチャーフォンに対応し、いつでも好きなときにログインすることができます。 自由のFREE、無償のFREE オープンソースのOpenPNEには2つのFreeがあります。 利用、配布、開発はすべて自由。しかも無償で使えます。
The domain av-jyo.com maybe for sale. Click here for more information. Av-jyo.com Related Searches: Cloud Service Providers Secure Internet Browser Computer Internet Security Web Designing Courses AVI DVD Player Privacy Policy|Do Not Sell or Share My Personal Information
Ywcafe.net This Page Is Under Construction - Coming Soon! Why am I seeing this 'Under Construction' page? Related Searches: Free Credit Report music videos Migraine Pain Relief Best Mortgage Rates Credit Card Application Trademark Free Notice Review our Privacy Policy Service Agreement Legal Notice Privacy Policy
はじめに タイトルのとおり、RDBのデータモデリング・テーブル設計を行う際に参考にしている考え方と関連資料をまとめました。 P.S. なんと本記事内でいくつか参考として挙げさせてもらっている増田さん・かとじゅんさん・奥野さん・そーだいさんからコメントいただくことができました。 本当にありがとうございます。 前提 RDBを採用するのは事実を無駄なく正しく記録するため 正規化、トランザクション、制約とデータ整合性 基本的には始めに理想として集合論・リレーショナルモデルに基づいて正規化を考え(論理設計)、パフォーマンスなどの現実問題に対して折り合いをつけていく(物理設計) 制約を最大限利用する cf: ↑P91〜 ↑P.29,41 ↑P56〜 ↑5章 ↑P347~ 情報とデータ データ:単なる事実の値→これを永続化して蓄えるものがRDB 情報:データから生み出される意味や目的のあるもの→RDBか
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く