タグ

celt69cobraのブックマーク (8,523)

  • kubernetes knative でサーバレス Vim

    はじめに 半月ほど前に、ようやく自分の VPS 環境で動いているものすべてを kubernetes クラスタに移行しました。とても満足感が高くやって良かったと思っています。 ウェブサーバ、メールサーバ、Nostr のリレーサーバや Nostr/Bluesky/Twitter で動かしている各種 bot もすべて kubernetes です。 昨日は knative を導入したので、GoRustRubyPython や、いろんな言語のクラウドネイティブアプリを簡単に実行できる様にしました。 knative 便利 残念ながら knative は helm パッケージとして提供されていません。ArtifactHub でそれっぽい物が公開されていますが、ほぼ手作業と変わりません。 おおよそ以下の手順でインストールできます。knative ではネットワークレイヤとして以下の3つが用

    kubernetes knative でサーバレス Vim
  • Swiftで複数の非同期処理の完了時に処理を行う - Qiita

    非同期処理1: ----->完了 非同期処理2: ----------->完了★全ての処理が終わったココで何かしたい! 非同期処理3: -->完了 利用例 ある画面で複数のAPIの非同期通信処理が必要で、全てのAPIレスポンスを取得した後に画面を更新したい (複数種類のAPIのレスポンスデータを取得後、UITableViewをreloadData()を1回だけ呼ぶ等) SDKでデータの取得処理が非同期になっており、for文で全ての複数データを取得してからデータ整形したい (Photos frameworkのrequestImageメソッド等) 実装例(並列①) 各非同期処理の開始時にstart、完了時にendを出力するプログラムです。 GCD(Grand Central Dispatch)のDispatchGroupを作成し、async(group:qos:flags:execute:)メ

    Swiftで複数の非同期処理の完了時に処理を行う - Qiita
  • Kotlin の require, check, assert 関数の使い分け - プログラムを自動生成したい

    いきなりまとめ 関数 用途 require 関数の引数のチェックに使う。 check 関数の引数以外のチェックに使う。 assert どこに使ってもよい。 実行時の VM 引数として -ea (-enableassertions) が必要。 背景 Kotlin には、引数として Boolean 型を取って、その引数が false であるときプログラムの実行を中止するような関数として require, check, assert の3つが存在する。記事ではこれらの違いを述べる。 ついでにこれらの関数が何のために存在するのかも述べる。 "表明" という概念 プログラミングの重要な概念として「表明 (assertion)」という考え方がある。 ざっくり言うと、表明とは、プログラムの実行時に変数が満たすべき条件をコードとして表現することである。 たとえば「変数 i は負でない」とか「配列 a と

    Kotlin の require, check, assert 関数の使い分け - プログラムを自動生成したい
  • TypeScript 関数型スタイルでバックエンド開発のリアル

    TSKaigi 2024 のスライドです

    TypeScript 関数型スタイルでバックエンド開発のリアル
  • 要件定義、基本設計、詳細設計の流れを総復習

    はじめに 📘 この記事は ラクス Advent Calendar 2023 の7日目の記事になります。 要件定義から基設計、さらに実装や保守運用に至るまでの一貫した経験を何度か積んできましたが、毎回 「要件定義って具体的に何の項目が必要だっけ?」 「基設計との違いって何だったっけ?」 「基設計と詳細設計の区別って?」 といった疑問が頭をよぎってきました。 そんなわけで、これまでの経験を振り返りつつ、開発プロセスについて1からまとめていくことで頭の中の大掃除を行なっていきたいと思います🧹 この記事の対象者 🎯 開発プロセスについて学びたい方 要件定義の基を学びたい人 要件定義と基設計の違いがわからない人 一緒に開発プロセスについて復習したい方 前提 記事中の一部(特に要件定義や基設計、詳細設計のサンプル)を自動生成で作成してます。一貫性の無い内容があるかも知れませんが、あく

    要件定義、基本設計、詳細設計の流れを総復習
  • CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?

    CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?

    CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?
  • 大文字時代のTHEE MICHELLE GUN ELEPHANT【25曲】 - ブンゲイブ・ケイオンガクブ

    前期について書いたので、今度は後期について書きます。当に便利な時期にバンド名が小文字表記から多文字表記に変わったもんだ。具体的には1998年の『G.W.D』*1から2023年の最終作『エレクトリック・サーカス』までの作品を後期とします。 前期であるところの小文字のthee michelle gun elephant(1996年〜1997年くらい)についての記事はこちら。 ystmokzk.hatenablog.jp それにしても、後期になるとサムネ等に充てる画像が実に探しやすいこと。世間的にはやっぱり『ギヤ・ブルーズ』から後がこのバンドなんだなあ。チバがサングラスしたりオールバックになったりしてからがこのバンドなんだな。まあその後の彼の作風とかルックスとかと地続きなのは確かに後期だけども。 大文字時代のバンドの特徴 メジャー調の楽曲が僅かになる ハードコアかグランジかみたいな、リフゴリ押

    大文字時代のTHEE MICHELLE GUN ELEPHANT【25曲】 - ブンゲイブ・ケイオンガクブ
  • 小文字時代のthee michelle gun elephant【25曲】 - ブンゲイブ・ケイオンガクブ

    チバユウスケが死んでしまって、悲しいとか何とかよりも「あっ、死んでしまったんだな」みたいなぼんやりした感覚だけあって、何とはなしにとりあえず彼の代表バンドであろうthee michelle gun elephantを聴き返してたら、前期と後期で好きな曲を集めたプレイリストができたので、それを元に、この亡くなったボーカリスト兼ソングライターがどのように異質であったか、そしてバンドがどれだけ素晴らしいものだったかをぼんやりと見ていく記事です。 タイトルにあるとおり、今回は小文字時代、つまり“thee michelle gun elephant”表記だった時代の分を見てきます。大体メジャーデビューの1996年から1997年までの、よく見たらたった2年の時期に、彼らはアルバムを3枚と多数のシングルをリリースしています。カップリングに多数のトラックがあり後に編集盤『RUMBLE』に纏められるほどに曲

    小文字時代のthee michelle gun elephant【25曲】 - ブンゲイブ・ケイオンガクブ
  • [Kotlin] isEmpty(), isBlank()などの違い早見表 - Qiita

    背景 そもそも、なぜこの記事を書こうと思ったのかと言うと、PHPのメソッドの早見表はあるのに、Kotlinが無いな・・・。って思っただけです。 文字比較の早見表 書き方のフォーマットは、この記事参考にしてます。「PHP isset, empty, is_null の違い早見表」 値 isEmpty isNotEmpty isNullOrEmpty isBlank isNotBlank isNullOrBlank orEmpty

    [Kotlin] isEmpty(), isBlank()などの違い早見表 - Qiita
  • Maximum call stack size exceeded について解説

    "Maximum call stack size exceeded" というエラーに関する解説を書きます。JavaScript を前提に解説しております。 ざっくり解説 Uncaught RangeError: Maximum call stack size exceeded これは、関数が何度も深く深く呼ばれてしまった場合に出るエラーです。 大抵は、間違って自分自身の関数を呼んでしまった、もしくは再帰の終了条件をミスった場合に発生します。 ここに検索で来た方は、自分自身を呼んでいたり、関数同士が循環的に呼びあっていたりするミスを犯していないか確認してください 。 図にすると、こんな感じです ちなみに、関数呼び出しがなければこのエラーは発生しません。ただの無限ループでは決して発生しないエラーです。以下、解説を書きます。 「関数を深く呼ぶ」とは? ここでは、関数からリターンせず再度関数を呼び

  • Kubernetesがいかに自動化の考え方を変えたか? | SOTA

    先日Japan Container Days v18.12の基調講演で話をさせていただく機会があった.内容としてはMercari のMicroservices Platformの基盤として「なぜ」Kubernetesを選択したか?ついて現状や今後の展望を踏まえて紹介をした. Microservices Platform on Kubernetes at Mercari 「なぜ」の回答としては,CRDやAdmission webhookといった拡張機構を使うことで今後起こりうる様々なWorkloadに特化したPaaSや抽象化レイヤーを書いていけるExtensibilityの高さとそのBuilding BlockとしてのEcosystemの強さを挙げた. このトークのExtensibilityの文脈で話したくて時間がなかったのが「Kubernetesがいかに我々の自動化に対する考え方を変えたか

  • Promise や Context から値を読み取る use React フック

    use フックは 2024 年 4 月現在、React の Canary および experimental チャンネルでのみ利用可能です。 use は、Promise や Context から値を読み取るための React フックです。以下のコードのように Promise の値を同期的に読み取ることができます。 import { use } from "react"; const fetchUsers = async () => { const response = await fetch("/api/users"); return response.json(); }; const Users = () => { const users = use(fetchUsers()); return ( <ul> {users.map((user) => ( <li key={user.id}>

    Promise や Context から値を読み取る use React フック
  • You don't need Node.js

    Node.jsはいらない場合がある、むしろいらない場合の方が多いかもしれない、 そしてDenoBunを使い分けて代替する方法を説明するという記事です。 Post Node.js ランタイムの登場 Node.js のあとにできたランタイムがいくつも登場しています。 Deno Bun WinterJS LLRT この中でも、人気であるDenoBunを中心に考えていきます。 DenoBunに変えるメリット これがなければNode.jsから変える必要はないと思います。 私は、以下の3つが、2ランタイムに共通して言える大きなメリットだと思います: ネイティブTypeScriptサポート 高速 Web標準 ネイティブTypeScriptサポート 現在、JavaScriptを記述するときは、TypeScriptを利用することが多いと思います。 Node.jsでTypeScriptを使うとき。tsc

    You don't need Node.js
  • XStateを支える概念と実装方法について - STORES Product Blog

    最初に STORES 予約 の開発をしているTak-Iwamotoです。 STORES 予約 は元々 Coubic というサービス名でリリースされ、heyにジョインしたタイミングで STORES 予約 としてリブランディングされました。 ただ、今でもエンドユーザーさまが予約する画面は Coubic の名称となっています。 この CoubicNext.jsで作られており状態管理のライブラリはReduxを使用しているのですが、良くないReduxの使い方によって改修に時間がかかったり、コードの見通しが悪い箇所があります。 詳しくはこちらの記事をご覧ください。 そういった背景があり、状態管理のリファクタリングの一環でRedux -> XStateへの移行を検討中です。(ただ、優先順位の都合でまだ格的に移行はできていません。) この記事ではXStateのコアとなる概念、Coubicで抱えている

    XStateを支える概念と実装方法について - STORES Product Blog
  • テーブルの仮想スクロールとスクリーンリーダー向けのアクセシビリティ

    Webアプリケーションで、大量のデータを表示したいときに使われる、「仮想スクロール」と呼ばれるテクニックがあります。 大量のデータを素直にDOMに挿入してしまうと、レンダリングの処理に非常に負荷がかかり、場合によってはブラウザをフリーズさせてしまったりします。そこで使われるのが「仮想スクロール」です。スクロール位置に応じて、視覚的に見える範囲のデータのみをDOMに挿入することで、レンダリング処理を最小限にするというものです。 この仮想スクロールについて、直感的にスクリーンリーダーでの閲覧に耐えられるのかの不安を感じました。しかし、あまりテーブルを仮想スクロールする場合についてのまとまった情報をWeb上で発見することができませんでした。 そこで、実際に仮想スクロールを採用した検証用のWebアプリケーションを作成し、スクリーンリーダーでの動作を確認してみることにしました。 「日郵便番号」ア

    テーブルの仮想スクロールとスクリーンリーダー向けのアクセシビリティ
  • GraphQL schema design: the viewer field

    You can find the viewer field as one of the query root fields in a lot of GraphQL-based APIs such as the GitHub API v4. Its definition and usage can lead to some issues, though, especially when we have to decide which subfields have to be exposed in the viewer field and which ones have to be available at the root level. In GraphQL, the viewer concept appears to have been introduced in Relay, which

    GraphQL schema design: the viewer field
  • JavaScriptがブラウザでどのように動くのか | メルカリエンジニアリング

    実際にコードを用いてスタック領域とヒープ領域の概念を説明します。 person オブジェクトを宣言した時、JavaScript エンジンはオブジェクトの実体をヒープ領域にメモリ割り当てを行い、ヒープ領域にある実体への参照をスタック領域にメモリ割り当てを行います。 const person = { name: 'Taro', age: 24 }; 次のように新しい変数(newPerson)に再代入をすると参照がコピーされ、newPerson も person もヒープ領域に割り当てられた同じ実体に対する参照を持ちます。 const newPerson = person; Object.assign を使って新しいオブジェクトを生成するのは、参照コピーをしないための方法の一つで、よく使われる手法の1つです。 function getName(person) { return person.na

    JavaScriptがブラウザでどのように動くのか | メルカリエンジニアリング
  • You Don't Need Next.js | ドクセル

    [beta] Next.jsクイズ2 • <p>にはなにが表示されるでしょうか? /app/page.tsx "use client"; import { useCallback, useEffect, useState } from "react"; export default function Home() { const [date, setDate] = useState(); const fetchDate = useCallback(async () => { const response = await fetch("/api"); const data = await response.json(); setDate(data.date); }, []); useEffect(() => { fetchDate(); }, [fetchDate]); return ( <

    You Don't Need Next.js | ドクセル
  • メルカリ 小泉さんからのエグい学び|Shota Horii

    ありがたいことに年末にメルカリの小泉さんとランチをご一緒させてもらいました。 CTO(@yutadayo)が作成した過去の失敗スライドに、リプライをいただいのがきっかけだったのですが、長らく競合事業(現ラクマ)をやっていたこともあり、きちんとお話ししたことがなく、とても学びが深かったので、ご人に許可をいただいて、メモした内容と学びをシェアさせていただきます。 なんでメルカリに?噂ではフリルにも入社してもらえる可能性もあったとか?2007年よりミクシィに入社し、2012年の退任までCFOを務めていた その後、1年以上は他の会社の社外取締役をしたりフリーランスをしていた フリルは2012年夏リリース、メルカリは2013年春リリース 小泉さんは2013年冬にメルカリ入社 フリルのことは入社前から知っていて、2012年冬のIVSでコミュニティファクトリーの松さんに「フリル知ってる?紹介してよ」

    メルカリ 小泉さんからのエグい学び|Shota Horii
  • 【AI動画生成】Sora 要素技術解説

    もう全部OpenAIでいいんじゃないかな はじめに 月間技術革新です。 ということで、昨日OpenAIから発表された新しい動画生成AI「Sora」が非常に話題となっていますね。 圧倒的な一貫性の保持と1分間に及ぶ長時間動画が生成可能という事で、現状の動画生成技術を圧倒的に凌駕する性能を持っているようです。 在野エンジニアの小手先テクニックなど一笑に付すような圧倒的性能を Soraの凄さは色んなエンジニアやインフルエンサーがたくさん語っているのでそちらを見てもらうとして、この記事ではSoraを構成する各技術について簡単に解説していければと思います。 Soraの技術構成 論文が公開されているわけではないですが、OpenAIが要素技術の解説ページを公開してくれているため、そのページを参考にしていきます。 原文を見たい方はこちらからどうぞ 全体構成 Soraは以下の技術要素で構成されているとのこと

    【AI動画生成】Sora 要素技術解説