タグ

ブックマーク / yusukebe.com (19)

  • 動的コンテツをエッジのKVにキャッシュする - ゆーすけべー日記

    Web APIのパフォーマンス向上に「Dynamic Content Storing = DCS」という戦略を考えている。 Web APIに限らず、サーバーサイドで動的に作られるコンテンツ全てへ適応できるものである。 番環境で運用したわけではないが、実際に動くモックを作ってみた。 背景とともに紹介しよう。 要点 「Dynamic Content Storing」とは「動的コンテンツをエッジのkey-valueストアに保存する」ことを言う。 ユーザーには(初回以外)KVストアから取得したコンテンツを返す。 有効期限もしくはコンテンツの更新をトリガーに新しくコンテンツを生成する。 どんなバックエンドにも適応できる「Incremental Static Regeneration」と考えることができる。 原理は「Stale-While-Revalidate」と同じだがこの場合はコンテンツがより永

    動的コンテツをエッジのKVにキャッシュする - ゆーすけべー日記
    clavier
    clavier 2022/10/13
  • Cloudflare R2もいいぞ! - ゆーすけべー日記

    CloudflareSQLデータベースD1をアナウンスして衝撃を受けましたが、「R2もいいぞ!」というお話。 R2はS3みたいなストレージエンジンで、Sの前「R」、3の前の「2」ともじってて、AWS対抗といえます。で、ちょうどD1がアナウンスされた昨日にベータオープンしました。 A New Hope for Object Storage: R2 enters open beta 「ただのストレージだろ」とたかをくくってたんですが、使ってみてだいぶよいです。 先にまとめると以下の3つのことが言えます。 安い DX(Developer Experience)がよい Cloudflareの他の製品を組み合わせるとヤバい 詳しく紹介します。 作ったアプリ R2を評価するために、以前S3をバックエンドにして作ったアプリケーションをR2に置き換えるというのをやりました。そのアプリケーションについては

    Cloudflare R2もいいぞ! - ゆーすけべー日記
    clavier
    clavier 2022/05/13
  • Jamstackを検討する - ゆーすけべー日記

    Jamstackを既存のシステムに導入するかを検討する機会があった。 紆余曲折したものの、未だに暫定的な結論しか出ていない。 とはいえ、わりと頑張った。 今回は Jamstackとはなんぞや? Jamstackの特徴 Jamstackの技術 弱みを解決する策 実際に検討した話 を雑に紹介したい。 個人的なメモなので、間違っているところがあるのを考慮願いたい。 Jamstackとは? JamstackのJamは以下の頭文字をとっている。 JavaScript APIs Markup まず、フロントエンドを持たないAPI群がある。APIはブラウザのJavaScriptから叩かれるかもしれないし、後述するようなSSG =「Static Site Generator」のフレームワークが叩くかも知れない。どちらにせよユーザーに配信されるのはSSGが出力した、Markup。つまりプリレンダリングされた

    Jamstackを検討する - ゆーすけべー日記
    clavier
    clavier 2021/06/26
  • ゆーすけべー日記

    ユーザーからのPOST等された入力値の妥当性をチェックする Validation をどこでやるか問題が個人的にありまして〜、DBを使わないケースならばいわゆるFomrValidator::*を使ってControllerでやればいいのですが、Modelを経由するようなアプリだとControllerだけじゃ不安よねぇ〜、Modelだけ使う時もあるし、Model単体のテストで再現出来ないよね〜なんて思ってます。で、実際の実装をControllerではFormValidator::Lite、Modelの一部にData::Validatorを使っているのですが、なんかコレも効率悪い感じしてたんで、ちょいと実験的に理想の一つを実装してみました。 こんな条件です。 エラーメッセージを簡単に設定したいのでValidationモジュールにはFormValidator::Liteを使う 色々錯誤していたらOR

    ゆーすけべー日記
  • ゆーすけべー日記

    ムフフなビデオも網羅的に扱うDVDや動画の提供サービス「DMM」のWeb APIがいつの間にか公開していたらしく、なにぶんノーマークだったもので昨日の夜知ってビックリした。というかDMMは一生API出さないだろうなんて決め込んでいたのが良くなかったですね。 ってことでとあるAV女優の商品一覧を出力するようなスクリプトを書いてみました。API固有の「癖」でいくつか実装する際の注意すべきポイントがあるのでそれをまず紹介します。Perlコードですが参考になるかもです。 リクエストパラメータにはタイムスタンプがいる リクエストのパラメータにはタイムスタンプが必須です。形式は 2013-05-14 08:03:16 というもの。僕はDateTime派なので、以下のコードで現在のタイムスタンプの文字列をつくっています(*ある方から指摘を受けてコードを修正させていただきました!)。 use DateTi

    ゆーすけべー日記
  • ゆーすけべー日記

    今週末の金曜日、3月15日に「JAWS DAYS 2013」のパネルディスカッションのパネラーとして呼ばれておりましてー。 風呂グラマーのmasuidriveさんとTreasure Dataの太田さんとお話をするらしく多少ビビってる僕です。 プログラム・スピーカー紹介 | JAWS DAYS 2013 | 2013/3/15(金)~16日(土)東京ビッグサイトで開催! 実はこのAmazon Web Serviceユーザーにおける祭典「JAWS DAYS」のイベントに呼ばれた前日。 ちょうどボケてを某さくらVPSからEC2含むAWSへせっせと移行していましてー。 ま、つまりは「AWSでこれからバリバリ運用始めるぜ!」ってタイミングでのお呼ばれでしたw イベント自体はおもろい事話せればいいなーとは思いつつ、AWSへ移行して、もしくはAWSへの準備の段階で得たTipsを箇条書きでまとめてみます。

    ゆーすけべー日記
  • Webアプリにおけるキャッシュ。オレオレ事例 - ゆーすけべー日記

    Webアプリにおいて、アクセスやデータ量が多く/大きくなってくると、 バックエンドのパフォーマンスが低下しがちです。 MySQLなどのRDBMSにデータを置いている場合は適切に クエリーを改善する、インデックスを張る、といった策で解決する場合もありますが、 キャッシュを効果的に利用することでより高負荷に対応できる可能性があります。 また、外部APIへの問い合わせなど、どうしてもネットワークや他のリソースのレスポンスタイムに 引きずられる部分に関しては情報を手元にキャッシュしておくと何かとよいでしょう。 今回はWebアプリケーションのレイヤーで最近僕がどのようにキャッシュを使っているのか? の事例を紹介しつつまとめてみたいと思います。 キャッシュについてとその基 そもそもキャッシュとは、簡単にふわっと表現するならば、 「一時的に情報を手元の近い場所に置いておいて利用する手法、もしくはその一

    Webアプリにおけるキャッシュ。オレオレ事例 - ゆーすけべー日記
  • iPhoneアプリの販売状況を知るための3つのサイト - ゆーすけべー日記

    iPhoneアプリを公開したらその販売状況が気になるところです。 いつ、どこから、何件ダウンロードされたか? もし有料アプリだったりアプリ内課金をしている場合、いくら収益が上がっているのか? 今現在、僕の知る限り以下の3つのサイトでその状況を知ることができます。 ということで(大人の事情で深く突っ込まない感じで)順に紹介していきます。 iTunes Connect Apple公式のサイトです。そもそも販売前のアプリ登録をここから行うので知らない人はいないでしょう。 「Sales and Trends 」っていう項目でグラフ化されたダウンロード数を見ることができます。 必要最小限ならこれで十分ですね。 僕の経験上だとだいたい日時間の夜の22時以降くらいから前日のレポートを見ることができるようです。 ちなみにiPhoneアプリもあって、これが優れもの。 レポートを見ることができるだけではなく

    iPhoneアプリの販売状況を知るための3つのサイト - ゆーすけべー日記
  • Webアプリのパフォーマンスアップ作戦 - ゆーすけべー日記

    予定している機能を実現するアプリが完成するだけでWebサービスが成り立つわけではありません。 運用の最中にパフォーマンスにまつわる問題が出てくる可能性があります。 それは突然大きなトラフィックがやってきたというような時だけではありません。 知識が無いうちですと、いざ運用に乗せてみるとずいぶんとサイトの読み込みが遅いといったケースが発生することもあります。 僕はいくつかのエロサイトを管理しているのですが、 その中に月間700万PVのアクセスをいただいている「サイトA」があります。 サイトAの場合、トラフィックもそこまで無かった当初からパフォーマンスに関する問題がいくつか発生し、 その都度調べては実践で試して対策をしてきました。また、できる限り少ないリソースでの運用を目指しています。 今回はWebアプリのパーフォマンスアップ作戦として、 サイトAでの運用経験からのいくつかの方針やTipsを紹介

    Webアプリのパフォーマンスアップ作戦 - ゆーすけべー日記
  • 全裸で学ぶMVC事始め - ゆーすけべー日記

    一般的なWeb Application Framework(WAF)ではMVCという設計及び実装における概念が取り入れられています。 MVCに従ってつくるのが全てではありませんが、 WAFを使うと共に、一度はMVCを用いたWebアプリの開発経験はしておいた方がよいと思います。 MVCはモデル(Model)、ビュー(View)、コントローラ(Controller)の3つの単語を組み合わせた言葉で、 この3つで概念が成り立っています。 クライアントがWebに対してリクエストをした時に、これら3つがそれぞれ連動して結果を返します。 一般的には以下のような処理経路をたどります。 クライアントがWebサイトにリクエスト コントローラがリクエストの処理を行い、モデルとビューを動かす 必要に応じてモデルを呼び出す 結果のデータをビューに渡す ビューがHTML化などをしたものをクライアントに表示する MV

    全裸で学ぶMVC事始め - ゆーすけべー日記
  • CSS Frameworkを持つ - ゆーすけべー日記

    例えば、Webサービスフロントエンドのコードを書き始める時にまず何をするでしょうか? デザインスケッチや画像を元にHTMLCSSを記述していくことになると思います。 少なくとも僕はそうですね。 理論的にはHTMLだけでもWebサービスを作ることはもちろんできますが、 見た目を少しでも調整したいとなるとCSSが必要になります。 例えばCSSを使わないHTMLの場合、いくら単純なレイアウトだとしても、 デフォルトのリンクの色を変えたかったり、フォントを変更したかったり、 要素ごとの余白をどうにかしかったりと最低限の要望が出てきます。 こうした最低限のCSSに対するニーズは共通化して自分なりのCSS Frameworkとして持っておくとよいと思います。 近頃、一からCSSを記述しなくなったのもこうした考え方のおかげです。 今Web上で配布されて利用可能なCSS Framworkが非常に増えて

    CSS Frameworkを持つ - ゆーすけべー日記
  • 月額980円のさくらVPSを個人用に使い倒す - ゆーすけべー日記

    Webサービスの運営用にVPSと呼ばれるバーチャル・プライベート・サーバを借りることは昨今よくあることだと思います。 VPSのサーバを借りればroot権限を持てることになるので、自由度が高いサーバ環境を構築することができます。 また、スペックによって価格が違っていて、低いスペックなものだと月額かなり低価格なものが存在します。 僕はその中でも月額980円のさくらVPSを借りていて、それを個人用に限って使っています。 これから紹介するような用途であれば980円でもかなりいけます。 ちなみに980円コースのスペックは2012年3月現在で以下のようなものです。 メモリ: 512MB HDD: 20GB CPU: 2Core(仮想) gitリモートレポジトリ 僕が現行で行っているWebサービスでもiPhoneアプリ開発でもバージョン管理は必要になってきて、 そのためのプライベートなレポジトリが欲しく

    月額980円のさくらVPSを個人用に使い倒す - ゆーすけべー日記
  • 30分、JavaScriptで作るWebサービスのモックアップ - ゆーすけべー日記

    Instagramは日のユーザーも多く、日常を切り取った写真がほとんどで、 またお洒落なものも混じっているのでたまに眺めると気持ちがホッコリしたりします。 特定のキーワードでInstagramの最新の写真を検索したい時があります。 例えば、みんなが今どんな「ご飯」をべているのか、今日の「日の出」はどのような具合なのか、 がInstagramの写真を通して分かるかもしれません。 Instagramの写真検索サービスを探してみると、 Instagram自身が検索機能を提供してないので他の第三者が作ったサービスがいくつか出てきます。 使ってみたところ、もう少し自分で見た目やら機能を変えてみたいなーなんて思いました。 そこで、「Instagramの今の写真を検索できるサービス」といういわばWebサービスを作りたい欲求にかられます。 今回はこのようなちょっとした欲求から考えた「Webサービスのモ

    30分、JavaScriptで作るWebサービスのモックアップ - ゆーすけべー日記
  • Markdownで文章を書こう! - ゆーすけべー日記

    みなさんはどのようなエディタでどのような記法で文章を書いていますか? 状況によるとは思いますが、WordとかMacのPagesで文章を書いているという方や Evernoteでメモを取っているという方、または、Blogの投稿フォームに綴っている方、 様々だと思います。 僕も書くものによってはPagesやEvernoteも使うのですが、一番文章を書く手法が「プレーンテキスト+Markdown」というものです。今もこの手法で書いています。Blogを書く時、雑誌の原稿を書く時、はたまたメルマガの原稿を書く時、全てにおいてこのやり方は今の僕にとってベストです。 プレーンテキストである利点 そもそもプレーンテキストとはWikipediaによると、 プレーンテキストには文字情報以外の情報は一切含まず、テキストデータのみで構成されている。バイナリデータや文字の整形情報を持たないので、最低限の機能しか持たな

    Markdownで文章を書こう! - ゆーすけべー日記
  • iPhoneアプリ公開1ヶ月経って「からの」箇条書き - ゆーすけべー日記

    ListTubeという自分にとっての初iPhoneアプリリリースから1ヶ月が経ちいろんな事が分かったり、頭の中で整理されたりしたので箇条書きしてみる。ほんとざっくばらんですが、今まで知らなかった気づきが多数あったので興味深い。 Objective-Cという言語自体は難しくない むしろ動画扱ったりしたのでプログラミングの基礎体力が問われた Mac一つあれば開発できるのは素敵すぎる(実機で動かすにはちょろっとお金かかる) けど、実機で動かした時の感動度は高い UIKitのFrameworkがほんとよく出来てる っていうかiTunes connectへの登録、つまりApple Storeへ出品するための準備まで一貫してXCodeでできるのもすごい とはいえ正規表現がめんどくさすぎる IDE使いたくなかったけどXCodeなら使えたぉ 3G回線を使った実機の検証がめんどくさい 海外というか英語圏のア

    iPhoneアプリ公開1ヶ月経って「からの」箇条書き - ゆーすけべー日記
  • jVideosのWebアプリケーション部分技術解説 - ゆーすけべー日記

    先日公開した「jVideos」という(エロ)サイト。 XVIDEOSをiPhoneで快適に見られる「jVideos」を作ってみた - ゆーすけべー日記 jVideos - iPhoneで日人好みのXVIDEOS (18禁) Webアプリとしての技術的な観点で言えば、クローラーが収集したデータをただデータベースから取ってきて表示するだけの簡単なものになっている。基的なところではJavaScriptも使ってない。そこで、「単純な上、構造がわかりやすい」いい題材と思ってこのjVideosを用いてWebアプリケーションの基的な技術を解説したい。 1. Perlを使っています まず、Webアプリケーションを含むバックエンドでは全てPerlを使っている。まぁ何故Perlかと今更聞かれると一番手になじむ言語だったということなんだけど、クローラーやWebのための要素は全てPerlで揃っているので問題

    jVideosのWebアプリケーション部分技術解説 - ゆーすけべー日記
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • ゆーすけべー日記

    サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ

    ゆーすけべー日記
  • 1