タグ

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

  • エッジは誰のもの? - ゆーすけべー日記

    CDNの文脈でいうエッジコンピューティングはフロントエンドのものとされることが多い気がするけど、そうじゃない。フロントエンド技術を使ったバックエンドである。 フロントエンド? ユーザーに近いところで実行されるという意味ではフロントエンドかもしれない。あと、VercelNext.jsのように、フロントエンドフレームワークのファンクションがエッジで動くからフロントエンドでしょというのはある。そしてエッジのファンクションはたいていフロントエンドで使われているJavaScriptもしくはTypeScriptで書く。そうするとツールチェーンも、例えば「Vite」と聞いてそれが何であるか?を答えられる人はフロントエンドやってる人の方が多いだろう。 2つのユースケース エッジには2つのユースケースがある。 CDNの機能を拡張する。オリジンありき。 サーバーレスコンピュート。オリジンそのものになる。

    エッジは誰のもの? - ゆーすけべー日記
    honeybe
    honeybe 2024/07/04
  • 最近のCloudflare Workers - ゆーすけべー日記

    最近のCloudflare Workersについて、知らない方向けにざっくばらんに書いてみます。 連絡事項 自己紹介しておくと、僕はCloudflareのDeveloper RelationsチームにいてDeveloper Advocateをやってます。 一方で、HonoというCloudflareのみならずDenoBun、Fastly等で動くWebフレームワークを開発してます。 Cloudflare Workersとは? 題に入る前に、そもそも「Cloudflare Workersとは?」を簡単に紹介しておきます。 Cloudflare WorkersとはCloudflareのエッジで動くサーバーレス環境です。 基的にJavaScript/TypeScriptでアプリケーションを書きます。 V8というJavaScriptエンジンの上でアプリを動かすのですが、これはWebブラウザのGo

    最近のCloudflare Workers - ゆーすけべー日記
    honeybe
    honeybe 2024/02/20
  • 速さはDX - ゆーすけべー日記

    「速さはDX」 日語がおかしいですが、ようは「速いことはDeveloper Experienceの向上につながる」という意味です。 それについて書きます。 Bun 「速さはDX」という標語はBunの作者のJarred Sumnerが似た趣旨のことをひたすらXでつぶやいていたのをみて思いつきました。 以下のそのひとつです。 performance is mostly about DX. Waiting for things costs time & focus — Jarred Sumner (@jarredsumner) September 4, 2023 そう、誰だって「待ちたくない」です。 Bunのv1.0が出る前後にBunを使うユースケースとして「パッケージインストールするのにbun installが速いからCIでそこだけ使う」というものがありました。 Bunの使い道、パッケージイ

    速さはDX - ゆーすけべー日記
    honeybe
    honeybe 2023/11/21
  • OSSで世界と戦うために - ゆーすけべー日記

    「日人」を理由にしたくないし、「コードは全世界共通語」なのは分かっているけど、自分が日人で日語を母国語としていることはOSSにおいて不利になる。 この2年間のHonoの開発をしてきた経験で分かったことだ。 そこに目を瞑ってはいけないし、自覚することで世界と戦えるかもしれない。今回はそのことについて書こうと思う。 8k 現在、HonoのGitHubスター数は8,000を超えた。 これはとんでもない数字なんだけど、もっと伸びるべきで、早く1万を超えなくはいけない。 npmのダウンロード数は週間「46,000」とこれは相対的に低く、こちらも伸びるべきである。 数字が全てではないが、こうした数字は昨今のOSSにとって「一番の」指標であることは確かだ。 だから戦うことはこの数字を伸ばすことである。 なぜ「戦う」のか なんで「戦う」というおっかない言葉を使い、そして戦わなくてはいけないのか。 ま

    OSSで世界と戦うために - ゆーすけべー日記
    honeybe
    honeybe 2023/11/01
  • ChatGPTにBlogを書かせる - ゆーすけべー日記

    昨日、ワークショップの講師をしました。 華やかなものを作ってもらうはずが色々ありまして、 超簡易なブログのWeb APIが最終形になってしまいそうでした。めっちゃ地味です。見た目JSONです。 このまま終わると地味な印象で終わってしまうのがヤベーってなってその場で思いついたのが「ChatGPTにそのAPIを使わせるChatGPTプラグインを作る」です。 それをライブコーディングしたら湧いたのでその話をします。 ワークショップ ServerlessDay Tokyo 2023というイベントの一環で「Cloudflare WorkersとHonoのワークショップ」をやりました。 驚くべきことは「13時から17時」4時間という長丁場なことです。 未知です。 特にネタが尽きるの怖かったので、小粒な例題をいくつもつくっておきました。 想定外 いざ開始。 すると、別のワークショップとの会場が近く、声が

    ChatGPTにBlogを書かせる - ゆーすけべー日記
    honeybe
    honeybe 2023/09/25
  • Cloudflareに入社しました - ゆーすけべー日記

    日4/17日(月)付でCloudflareに入社しました。ロールはDeveloper Advocate、日法人との契約ですが、日に限りません。入社へのプロセスではUS、ヨーロッパのメンバーとやりとりをして、入社後のボスはUSになります。「Developer Advocate」は日はもちろんアジアでは初、Cloudflareの中でも新設される部です。扱うのは主にWorkers製品で、Honoなどのフレームワークやユースケースを示すアプリケーションの開発と、製品と開発者をつなぐことをやります。 経緯 Hono 僕がユーザーとしてCloudflare Workersに触れたのは、一昨年、2021年の10月です。ブログ記事を書いています。 Cloudflare Workers 面白い - ゆーすけべー日記 そして、同年の12月には、Cloudflare Workers向けのフレームワーク「

    Cloudflareに入社しました - ゆーすけべー日記
    honeybe
    honeybe 2023/04/17
  • 1KBのWebフレームワークをつくる - ゆーすけべー日記

    1KBのWebフレームワークをつくりました。 名前は「Pico」。 minifyしてビルドした模様。 コードはこれだけ。依存なし。ほんとにこれだけです。 Cloudflare WorkersとDenoで動きます。 今回はこのPicoというフレームワーク、 それに必要不可欠なURLPattern、実装について、 そして僕がつくっているもう一つのフレームワークHonoとの関係などを紹介します。 Hello World text/plainでレスポンスを返す、“Hello World"相当のコードは4行で書けます。 import { Pico } from "@picojs/pico"; const app = new Pico(); app.get("/", (c) => c.text("Hello Pico!")); export default app;

    1KBのWebフレームワークをつくる - ゆーすけべー日記
    honeybe
    honeybe 2022/12/06
  • 500点出す! - ゆーすけべー日記

    「Web Speed Hackathon 2022」という「非常に重たいWebアプリをチューニングして、いかに高速にするかを競う競技」があります。 リモート参加で11月1日から27日まで開催されています。 ここで言う「高速」とはCore Web Vitalsのスコアが高いことを言い、Lighthouseのスコアをベースにした500点満点の争いです。 ISUCONのフロントエンド版ですね。 以前にも同じ課題で「学生向け」と「社内(サイバーエージェント)向け」が行われたらしく、まだ500点を出した人はいません。 そこで僕は「満点を出したい」と思い、初日から、いやむしろフライングしていたからその前から頑張ってきました。 そして、先日(17日)、ついに500点満点を出しました! たぶん、レギュレーションはクリアしている、はずです(もし違反してたらすいません…)。 自動で行われる「Visual Re

    500点出す! - ゆーすけべー日記
    honeybe
    honeybe 2022/11/21
  • 作者冥利に尽きる - ゆーすけべー日記

    会社の朝会で話す番が回ってくる。 メンバーが入れ違いで自己紹介をするんだけど、 それに加えて「自分なりのこだわり」みたいなことを話す流れになっている。 自分の場合、つくってきたもの紹介とそれから学んだこと、みたいなのはどうだろうか。 結局こういうキーワードが出た。 作者冥利に尽きる。 今まで原動力になっていたのは、 プロダクトを使ってもらって嬉しい反応をもらうことだ。 なので「もしよろしければ、みなさんも(一緒に、じゃなくてもいいけど)作者冥利に尽きる体験をしましょう」 という流れにしようかと。上からだけど、まぁありでしょう。 で、作者冥利に尽きるにはどうすればいいか。メモを残す。 つくってきたもの いわゆる「個人開発」というものをやってきた。 特にWebサービスをたくさんつくってきた。数えたらエロ含めて70個、除いて48個だった。 以下のスライドで全部網羅してある。 僕がつくった 70個

    作者冥利に尽きる - ゆーすけべー日記
    honeybe
    honeybe 2022/10/31
  • 動的コンテツをエッジのKVにキャッシュする - ゆーすけべー日記

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

    動的コンテツをエッジのKVにキャッシュする - ゆーすけべー日記
    honeybe
    honeybe 2022/10/13
  • Cloudflare Workersのランタイム「workerd」を触ってみた - ゆーすけべー日記

    昨日、Cloudflare WorkersのランタイムがOSSとして公開されました。 その名も「workerd」。「ワーカー・ディー “worker dee”」と発音するらしいです。 Introducing workerd: the Open Source Workers runtime 早速触ってみました。では、上記ブログ記事とGitHubのリポジトリに書いてあるworkerdについての説明を一部抜粋して紹介しつつ、動かしてみた件について紹介します。 一部DeepLで翻訳して加工した部分があります。 3つの特徴 workerdには3つの使い方があるよーと言ってます。 アプリケーション・サーバー - Cloudflare Workersをセルフホストできます。 開発ツール - テストとかサーバーをローカルでできます。これまでCloudflare WorkersをWranglerでローカルエ

    Cloudflare Workersのランタイム「workerd」を触ってみた - ゆーすけべー日記
    honeybe
    honeybe 2022/09/28
  • How I/we got 2k stars - ゆーすけべー日記

    Honoという僕が作っているWebフレームワークのGitHubスター数が2,000に迫ってきた。これまで作ってきたOSSのソフトウェアでは最高で revealgo の221、次点で gh-markdown-preview の134だ。それが一気に2,000である。 もちろん、スターの数がソフトウェアの良し悪しを決めるものではない。 それに2,000はとりわけ多いわけではない。 でも、以前の自分には遥か彼方に見えていた数を獲得できたのは、とても嬉しいことだ。 去年12月から作り始めて9ヶ月間、552コミット。 今や使ってくれる人も増えた。 cdnjs のAPI Serverのバックエンドにも使われているし、 HonoをきっかけにGitHubスポンサーをしてくれている企業や人も現れている。 なにより、いろんなことを勉強させてもらった。 今回はHonoというプロダクトがどうやって2,000のスタ

    How I/we got 2k stars - ゆーすけべー日記
    honeybe
    honeybe 2022/08/22
  • 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もいいぞ! - ゆーすけべー日記
    honeybe
    honeybe 2022/05/13
  • フリーのWeb API、Ramen APIを作った - ゆーすけべー日記

    TL;DR Ramen APIを作った REST APIGraphQLにも対応している 登録・認証いらず、完全無料 プロトタイピングやテストに使える 店ごとのラーメン写真が手に入る 現在、26店舗登録されている 例えば、Reactを勉強する時に使う GitHubリポジトリにてコンテンツを追加できる 詳しくはGitHubリポジトリを見てもらいたい Base URL: // GET https://ramen-api.dev/shops/yoshimuraya?pretty { "shop": { "id": "yoshimuraya", "name": "吉村家", "photos": [ { "name": "yoshimuraya-001.jpg", "width": 1200, "height": 900, "authorId": "yusukebe", "url": "https:

    フリーのWeb API、Ramen APIを作った - ゆーすけべー日記
    honeybe
    honeybe 2022/04/18
  • Fastlyを検討する - ゆーすけべー日記

    Fastly の導入を検討している。検討しているだけで、導入していないので、参考にならないかもしれないし、間違っているかもしれないが、メモ。 動機 Varnish を使っていて、最初は Varnish の冗長化をしたい!だった。 まあそうなるよねえ。で、Fastly!となった。 ちなみに、Varnish を使ってる理由としては、以前も Jamstack を検討する - ゆーすけべー日記 Varnish で Stale-While-Revalidate を実現する - ゆーすけべー日記 で触れたとおり、 なるべく手間手前で、なるべく少ない箇所でキャッシュしたいからである。 Fastly でできること・したいこと Fastly でできることはたくさんあるので、その中でもしたいことを列挙。リバースプロキシ、ロードバランサの機能も含むのが便利。特に、パスごとに制御できる。なので、とあるパスはキャッ

    Fastlyを検討する - ゆーすけべー日記
    honeybe
    honeybe 2021/09/10
  • Twitter以前のWebの言葉たち - ゆーすけべー日記

    ぼくは大昔からインターネットを使っている。 だからインターネットで起こったことはたいてい知っている。 これは誇れることではないかもしれないけど、 最近は「インターネット老人会」なんて呼ばれていて、 少し救われた気分になっている。 誰でも同じ境遇の仲間をみつけるとホッとするものだ。 とりわけ僕が知っているのはWebについてだ。 具体的にはBlogとかWeb日記が好きだった。主に技術的な事柄だ。 Webという言葉はとても広い意味なのでふさわしくないかもしれないが、 ぼくはWebという言葉の響きがとても好きなので、使わせてもらう。 ここに書いていることはぼくのとても個人的な文章だから、 何をどう表現しても自由だと思う。 ぼくは2007年4月からTwitterをはじめた。 2007年というとだいぶ昔のことだと世の中の人はいうかもしれない。 でも、ぼくにとって2007年は最近のことな気がする。 だか

    Twitter以前のWebの言葉たち - ゆーすけべー日記
    honeybe
    honeybe 2020/08/18
  • 君はPornhubを知っているか - ゆーすけべー日記

    Pornhubをご存知だろうか。 答えは当然Yesだろう。 ところがその当の実態について我々は理解しているだろうか。 WikipediaのPornhubページには興味深い事柄が書いてある。 YouTubeに次ぐ世界第2位の動画共有サイト 360度動画を提供しており、PlayStation VRで視聴できる 上下運動で発電できるリストバンドを発明した 宇宙空間でポルノを撮影すると発表した VPNHubというVPNサービスを開始した これらのいくつかを恥ずかしながら私は知らなかった。 この恥ずかしさがモチベーションとなり、私はPornhubのポルノ以外のことを調べた。 出てくるものはアダルトコンテンツばかりだったが、 以下の3つのページに出会うことができた。 Pornhub Insights :: Digging deep into the data Interview with a Por

    君はPornhubを知っているか - ゆーすけべー日記
    honeybe
    honeybe 2020/01/21
  • ゆーすけべー日記

    つい先ほど「参加者が1,000人に達した!」という快挙を達成したらしいエンジニアのお祭りYAPC::Asia 2013。僕も編でトークをしたりトークを聴いたりするわけですが、今回は非公式のイベント「大人のYAPC」というモノが開催されます。 大人のYAPC - YAPC for Grown-ups | PeaTiX / 募集ページ 2013/09/20 (金) 19:00 - 21:00 慶應義塾日吉キャンパス協生館内 多目的教室2 タイトルからご想像付くように編では喋りにくい話題、まぁ、端的に言ってエロとかエロとかおっぱいとかおっぱいとかブラックな話を、参加者の同意のもと、やってしまえというYAPC体とは全く関係の無い野良的イベントです。某氏と話していて盛り上がったので僕も登壇者の方へのお声がけとか司会的な立ち位置の役回りになります。なおかつ、キーノートも勝手にやらせてもらいます。

    ゆーすけべー日記
    honeybe
    honeybe 2013/08/09
    オトナ…!?
  • ゆーすけべー日記

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

    ゆーすけべー日記
    honeybe
    honeybe 2013/07/24
  • ゆーすけべー日記

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

    ゆーすけべー日記
    honeybe
    honeybe 2013/05/14