codehexのブックマーク (636)

  • Cloudflare Workers で Dependency Injection

    NOT A HOTEL ではガッツリ Cloudflare Workers の上でアプリケーションを動かしています。 格的にアプリケーションを開発しようとすると、ある機能 A を作成するために、それに依存する機能 B、機能 C を事前にセットアップしなければいけません。これらをスッキリさせる手法として Dependency Injection(以下 DI)があります。 環境変数もセットアップに必要な機能です。うちではどのように DI を行なっているか、一つの事例として紹介します。言語は TypeScript です。 ディレクトリ構成 di.ts を worker.ts と同じ階層に作成しています。 di.ts の中身 以下のようなコードを書いています。 使う時は new DIContainer(env, req) もしくは new DIContainer(env) と記述して利用できます

    Cloudflare Workers で Dependency Injection
    codehex
    codehex 2023/10/24
    Cloudflare Workers での DI について書きました!
  • htmx is not a typo

    https://hackers-champloo.org/2023/program.html のLT、「htmx is not a typo」のスライドです。 スライド内で紹介した情報やリンクは以下のとおりです。 https://htmx.org https://www.thoughtworks.com/radar/languages-and-frameworks/htmx https://github.com/kimihito/hcmpl23-htmx-demo https://hypermedia.systems/book/contents/ https://htmx.org/essays/#memes https://alpinejs.dev/

    htmx is not a typo
  • Synchro - タイムゾーン型安全な Go ライブラリを開発している

    synchro と呼ばれる Go でもタイムゾーンを含めて型比較できるようになるライブラリを開発し始めました。スターください。 こんな感じで使えます。 package main import ( "fmt" "time" "github.com/Code-Hex/synchro" "github.com/Code-Hex/synchro/tz" ) func main() { utcNow := synchro.Now[tz.UTC]() jstNow := synchro.Now[tz.AsiaTokyo]() fmt.Println(utcNow) fmt.Println(jstNow) // Output: // 2023-09-02 14:00:00 +0000 UTC // 2023-09-02 23:00:00 +0900 JST fmt.Println("------") d

    Synchro - タイムゾーン型安全な Go ライブラリを開発している
  • コーヒー2杯と水で9500円、観光客相手のぼったくり横行 イタリア

    イタリアのメディアが、観光地の飲店などでの便乗値上げやぼったくりを報じている/Stefano Montesi/Corbis/Getty Images ローマ(CNN) 2023年夏のイタリア旅行は史上最も高くつくかもしれない。観光地の飲店などで便乗値上げやぼったくりが相次ぎ、外国人観光客にも国内からの観光客にも影響が出ている。 例えばコモ湖を訪れたカップルは、サンドイッチを半分にカットする代金として2ユーロ(約300円)を請求された。ローマの海沿いの街オスティアでは、若い母親が子どもの哺乳瓶を電子レンジで温めてもらうために2ユーロを支払った。 サルディニアのホテルでコーヒー2杯と飲料水の小さなボトル2に60ユーロ(約9500円)を支払ったという観光客もいる。ただ、経営者はCNNの取材に対し、料金は明記してあり、主に港を見晴らす眺めの良さの対価だと説明している。 北部ポルトフィーノ近郊

    コーヒー2杯と水で9500円、観光客相手のぼったくり横行 イタリア
    codehex
    codehex 2023/08/22
  • はじめに - Writing an OS in 1,000 Lines

    書では、小さなOSをゼロから少しずつ作っていきます。 OSと聞くと腰が引けるかもしれませんが、OS (特にカーネル) の基機能は案外単純です。巨大なオープンソースソフトウェアとしてよく挙げられるLinuxでさえ、バージョン0.0.1はたった8413行でした。様々な要求に応えるために次第に肥大化していっただけで、当初は大変素朴な実装になっていました。 書では素朴なコンテキストスイッチ、ページング、ユーザーモード、コマンドラインシェル、ディスクデバイスドライバ、ファイルの読み書きをC言語で実装します。これだけ様々な機能が詰め込まれているのに、コードは合計でたった1000行未満です。 「1000行なら1日でできそう」と思うかもしれませんが、初学者には少なくとも3日はかかるでしょう。OS自作のハマりポイントは「デバッグ」です。アプリケーション開発とは違うデバッグ手法・能力を習得する必要があり

    はじめに - Writing an OS in 1,000 Lines
    codehex
    codehex 2023/08/05
  • ChatGPT - Azure OpenAI 大全

    ChatGPTとAzure OpenAIサービスについて纏めた132ページ資料です。 一部デモ動画が含まれる部分は動きませんがご容赦ください。 随時更新していきます。 データサイエンティスト協会での発表動画はこちら。 https://youtu.be/l9fpxtz22JU Build Japanでの発表はこちら。 https://youtu.be/UEZzx6a005g?si=Ot8EO2bv8yhQQEcy 2023/7/28 体裁修正、余計なページを削除 1. GPTの全体像 GPT とは何なのか ~チャットAIを例にした動作イメージ~ GPT によって実現されたサービス Microsoft の GPT 活用 GPTに期待される用途の簡易マッピング GPTに関するFAQ GPT単体の弱点を理解 GPTは嘘をつく? ~不正確性をカバーするアイディア~ 外部情報を取得し文脈として与える考

    ChatGPT - Azure OpenAI 大全
    codehex
    codehex 2023/07/22
  • GraphQL Server on Edge

    Workers Teck Tolks #1

    GraphQL Server on Edge
    codehex
    codehex 2023/07/20
  • このブログがFediverseに対応しました

    Twitter が日々壊れゆくなか、周りの人が MisskeyMastodon や Threads に住居を移すようになりました。 私も移住先を検討してみたものの、移住先のプラットフォームだっていつまで持つか分からないし、複数のプラットフォームにアウトプットを分散させるのも良くないなぁと思い、 最終的にマイクロブログがだめならブログでいいじゃんと自分を納得させるに至りました。 せっかくなら ActivityPub に対応して、Fediverse の人からリモートフォローできるようにして、反応が見れたら嬉しいよねということで色々と調べて対応させることができました。 ブログは「@blog.tyage.net@blog.tyage.net」でリモートフォローすることが可能です。 このブログは hugo で生成しており、静的ファイルのみ配信しています。 それは変えたくなかったため、Acti

    このブログがFediverseに対応しました
    codehex
    codehex 2023/07/18
    これは真似したい
  • Linux Storage Stack Diagram - Thomas-Krenn-Wiki-en

    The Linux Storage Stack Diagram shows the layout of the the Linux storage stack. Downloads Diagram for Linux Kernel 6.2 Linux Storage Stack Diagram v6.2 (for Linux Kernel 6.2 and 6.1): Linux I/O Stack Diagram v6.2 (20230309): ZIP (includes .drawio and .svg) PDF PNG Diagram for Linux Kernel 4.10 Linux Storage Stack Diagram v4.10 (for Linux Kernel 4.10): Linux I/O Stack Diagram v4.10 (20170310): SVG

    codehex
    codehex 2023/06/26
  • ただ個人開発してもどうせ誰にも使われないので集客から始めてみた

    自分の作ったサービスでっていく。 僕みたいに、大した技術力もなければフォロワーも少ないような個人開発者が自分のサービスを広めるために、集客に気で取り組んでいる過程をまとめていく。 まだっていくには程遠いが、想定に近い動きをできているため、ここで思考を整理しつつアプローチをシェアする。 僕が運営しているサービス いま僕が運営している『はいしんツールキット』はライブ配信者(ゲーム実況・VTuber etc.)向けのツール集だ。 YouTubeなどでライブ配信を見る習慣がある方には馴染み深いであろう、配信画面に視聴者のコメントを表示していたり、DiscordのアイコンがPOPに表示されていたり、ライブ配信活動に便利なツールを使えるのが主な機能となる。 Zennのユーザには縁遠いサービスなのは残念だが、いつどの時間でもYouTubeやTwitchを開けば、うちのサービスを使った配信者さんを簡

    ただ個人開発してもどうせ誰にも使われないので集客から始めてみた
    codehex
    codehex 2023/06/26
  • 畳み込みの視点から見たforall(every)とexists(some): 空集合に対するforallは常にtrueになる - Lambdaカクテル

    こういうツイートが話題になっていた。 「配列のすべての要素が条件を満たすならtrueを返す」関数を定義するとき、空の配列を渡したらfalseを返すかtrueを返すかが、良いプログラマかどうかの一つの境目だ— ふみ a.k.a.DJ Monad (@fumieval) 2023年5月29日 つまりScalaで言うと次のようなコードが何になるか、というものである。 val xs = Seq.empty[Int] xs.forall(_ == 42) 結論から言うと、このような関数は常にtrueを返す。 なぜだろう?その理由をこれから説明する。 ちなみに他に以下のような意見があった: 仕様による 例外を投げるべき いずれもまぁありえなくはないが、やめておいたほうが良いと思う。もし仮にfalseを返すような仕様があった場合、それは数学から乖離しているのでいずれ仕様内部で矛盾する可能性が高いし*1、

    畳み込みの視点から見たforall(every)とexists(some): 空集合に対するforallは常にtrueになる - Lambdaカクテル
    codehex
    codehex 2023/05/31
    面白い!名前は知らなかったけど all 系はループ中に異常が見つかれば false を返して、ループが終われば true が返るから空配列だと必ず true の認識だった
  • Python 初心者が始める AI 時代の Docker を使ったアプリ開発

    最近の AI 技術の進歩は目覚ましく、OpenAI による ChatGPT などの API の提供は沢山のアプリケーション開発者にとって Python を使った開発を始めるきっかけになったのではないでしょうか。筆者もそのうちの 1 人です。 効率的かつ再現性の高い開発環境は必要不可欠であり、それを実現するためのツールの一つが Docker です。Docker はアプリケーションを容易に再現可能なコンテナ内で動作させることができ、開発から番環境まで一貫した環境を提供します。これで「僕の環境では動いているんですけどねぇ...」といった問題[1]を避けることができます。 記事では、AI 時代に立ち向かうべく筆者が Python 初心者なりに取り組んだアプリケーション開発の方法の一つを解説します。 ディレクトリ構成 このような形を目指していきました。 . ├── .devcontainer │

    Python 初心者が始める AI 時代の Docker を使ったアプリ開発
    codehex
    codehex 2023/05/31
    Python 初心者ですが頑張って環境構築についてまとめました!
  • jq が jqlang organization に移譲されました - プログラムモグモグ

    JSONを操作するコマンドラインツールであるjqは、これまでオリジナル作者であるStephen Dolan氏 (@stedolan)のリポジトリ(github.com/stedolan/jq)で管理されていました。 メンテナンスはNico Williams氏 (@nicowilliams)とWilliam Langford氏 (@wtlangford)の二名が行なっていましたが、近年は活動が減っておりメンテナンスが滞っていることが度々指摘されていました。 最新のリリースは2018年11月に行われた1.6であり、その後に様々なバグ修正やパフォーマンス改善、新機能の実装が行われているのにリリースされておらず、またissueやPRも放置されがちになっていました。 さらにCI (AppVeyor)は常に落ちるので、簡単なドキュメント修正でもCIが通らず苦情が来る、数か月放置されたPRは作った人が諦

    jq が jqlang organization に移譲されました - プログラムモグモグ
    codehex
    codehex 2023/05/30
    素晴らしい!原作者降臨の下りで安心した
  • LLM(GPT, PaLM等) with MLOps LT大会!!!に参加してきた - 天の月

    mlops.connpass.com こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。(後続に予定があった関係で懇親会は非参加でした) 会の概要 会の様子 GPT、Langchain、Faiss、FastAPI等を組み合わせた検索システム開発 by澁井さん LLMを活用した推薦システムの改善: 課題と初期導入のアプローチ by樋口 心さん LangChain Toolsの運用と改善 by藤さん LLMのオープンソース化とDatabricks by阿部さん NOT A HOTEL AIコンシェルジュ「Kevin」とキャッシュ by codehexさん LayerX Biz Boost〜Whisper+GPTによる音声文字起こし要約の取り組み〜 by白井さん 会全体を通した感想 会の概要 以下、イベントページから引用です。 今注目が集まっているLLM(GPT, P

    LLM(GPT, PaLM等) with MLOps LT大会!!!に参加してきた - 天の月
    codehex
    codehex 2023/04/25
    まとまってる。ありがたやー
  • https://note.com/wakinchan/n/n3af6dc2088f2

    こんにちは。NOT A HOTEL でソフトウェアエンジニアをしているきんちゃん。(@wa_kinchan) です。 今回、この note では、2021年頭から徐々に設計・開発、2022年10月に初めてリリースをした、NOT A HOTEL のスマートホームの過程と開発における裏側のについて、より深く掘り下げ、エンジニア目線での立ち上げ話から、設計と運用で出てきた様々の課題、システム設計のやや技術的な話も含め、ありのままのお話したいと思います。エンジニアのみならず、NOT A HOTELのスマートホームについて理解ができるかと思います。 また、スマートホームを一緒につくってくれる仲間を募集しており、この記事を通して、ワクワクが届けば嬉しいです。 スマートホームのより踏み込んだシステム開発の話(バックエンド・インフラの設計寄り)は、次の note に投稿予定です。エンジニアの方は、事前にこ

    https://note.com/wakinchan/n/n3af6dc2088f2
    codehex
    codehex 2023/04/19
    凄い DX だ...!! "お風呂が実装完了しお湯はりが出来たときには、足湯をして、元気を取り戻しました。"
  • Supabase SQL | Curated list

    Basic Aggregrate Functions Set of functions to perform calculation on a set of values. The return is a single summary value. (Except for "round()")

    Supabase SQL | Curated list
    codehex
    codehex 2023/04/15
    Supabase が運営する PostgreSQL 向けの npm だったり cpan みたいなパッケージマネージャー テーブル作成とかのクエリがパッケージとして配布されるっぽい!
  • ChatGPT を Slack で動かすのが楽しい

    僕は NOT A HOTEL という会社で働いている。 先日社内イベントとしてアイディアソンを行った。ここで僕と CTO の @okbtks と@mamiracle__ は運営をやっていて、その片手間で @okbtks と一緒にハッカソンをしていた。 そこで作ったのがこの「kevin」ボット。 まず 2 人ハッカソンのテーマとして Slack に GPT-4 の AI アシスタントを導入できるように作ってみようなった。会社には既に ChatGPT Playground も存在していたが Slack へ導入した理由はいくつかある。 ChatGPT を使うためのハードルを下げたい ShareGPT のように ChatGPT でどうやりとりしているのかを共有したい 個人情報保護の観点で内製の ChatGPT を使ってもらいインシデントを防ぐ[1] スレッドの今北産業(要約機能)が熱望されていた

    ChatGPT を Slack で動かすのが楽しい
    codehex
    codehex 2023/04/14
    書きました
  • 【第3回】CTOはWeb技術のトレンドに何を見てきたか | GeeklyMedia(ギークリーメディア)

    を代表するブログサービスをはじめ、近年ではサーバ監視サービスMackerelでも知られる株式会社はてな。日におけるWeb開発の黎明期から現在に至るまで、新旧さまざまな技術スタックが混在する環境で、CTOであるmotemenさんこと大坪弘尚さんはどのような心構えで技術選択に挑んでいるのか。初代はてなCTOでもある株式会社一休CTOの伊藤直也さんが聞き出します。 ・伊藤 直也さん / 株式会社 一休 執行役員 CTO 新卒入社したニフティ株式会社でブログサービス「ココログ」を立ち上げ、CTOを務めた株式会社はてなでは「はてなブックマーク」などの開発を主導。グリー株式会社では統括部長としてSNSを担当した。2016年4月、一休に入社し執行役員CTOに就任。 ・大坪 弘尚さん / 株式会社はてな CTO 2008年、東京大学大学院情報理工学系研究科を中退後、アプリケーションエンジニアとして新

    codehex
    codehex 2023/04/05
    やっぱりみんな命削ってるんだw
  • Postgres: The Graph Database You Didn't Know You Had

    Postgres: The Graph Database You Didn't Know You HadPostgreSQL (Postgres), is a powerful relational database that can store a wide range of data types and data structures. When it comes to storing graph data structures we might reach for a database marketed for that use case like Neo4J or Dgraph. Hold your horses! While Postgres is not generally thought of when working with graph data structures,

    Postgres: The Graph Database You Didn't Know You Had
    codehex
    codehex 2023/04/01
  • 「カブトクワガタ」は日本のゲームアクセシビリティの革命である

    3行で 「カブトクワガタ」に搭載されている読み上げ機能によって、画面を見ることができない全盲のプレイヤーがゲームを楽しめるようになっています。 視覚に障害を持つプレイヤーだけでなく、未就学児や、文字を読むことに困難を抱える人など、色々な属性の人がプレイできるようになっていると思います。 システム面・技術面の両方において、「カブトクワガタ」は日ゲームアクセシビリティに革命をもたらすポテンシャルがあり、その事実が、開発者を含めた多くの人に知られることを臨みます。 ※最終更新: 2023/03/21 カブトクワガタってなんやねん カブトクワガタ は、Nintendo Switchゲームです。クワガタやカブトムシを育てて戦うRPGです。2023年3月15日にリリースされました。 なにがすごいのか ほぼ全ての文字を読み上げる このゲームは、画面に表示されるほぼ全ての文字を読み上げてくれます。

    codehex
    codehex 2023/03/21
    アクセシビリティを考慮できたプロダクトは本当に素晴らしいと思う。カブトクワガタやってみたい