f_syumaiのブックマーク (224)

  • 手書きブログサービス「綴る」をリリースした - 暮らしの技術

    しました。 *1 5月ごろにiPad Pro と Apple Pencil を買って、それからしばらくメモアプリに色々書き込みながら過ごしていただけれど、しばしばこのままオンラインで公開したいな〜と思う瞬間があった。 同時に、お絵描きツールを自分で作ってメンテしたいという気持ちが昔からあったのを思い出し、じゃあ作るかということで形にした。 コメント機能とかもないし、色々と不足はしているけれど、最低限の機能は出来上がったのでリリースすることとした。 基的に PC+ペンタブ か、タブレット+スタイラス での使用を想定しているけれど、PCの場合マウスでも書き込めるようになっている。 スマートフォンの場合、タッチ操作に対して編集画面のスクロールなのか線の描画なのか区別がつかない、という素朴な理由で使うことができなくなっている。 マイクロブログサービスのような気軽に投稿、という方向性のサービスでは

    手書きブログサービス「綴る」をリリースした - 暮らしの技術
    f_syumai
    f_syumai 2024/09/02
  • OBSのブラウザソースで動くものを作るあなたへ

    MacOSのみ一部バージョンが異なるのは26.1.1リリースのタイミングでブラウザソースがクラッシュする問題が発生し、hotfixとして26.1.2リリースのタイミングでMac版のみアップデートがなされたためです。 このようにバージョンアップのタイミングはまちまちで、XSplitに関しては最近までChrome 68系、OBSについても最新版の30.xでもChrome 103系と執筆現在(2024/04/22)での最新バージョンであるChrome 124から21バージョン遅れをとっている状況です。 これらのアップデートが進まないことの背景には、OBSがCEF経由でページの表示をテクスチャとして使用するためにテクスチャ共有を利用しながら、ゲームなどの他のソフトウェアやキャプチャを使用するためにもテクスチャ共有を利用していることと、CEFがOffscreen Rendering(OSR)時にハー

    OBSのブラウザソースで動くものを作るあなたへ
    f_syumai
    f_syumai 2024/08/31
  • Playwrightでライブプレビューツールを実装する - ベースマキナ エンジニアブログ

    こんにちは、yebis0942です。 先日、@basemachina/bm-view-previewというツールをnpmで公開しました。ベースマキナのビュー機能のソースコードをローカル環境で編集しながら、Next.jsのnpm run devのようにライブプレビューで動作を確認できるツールです。 ライブプレビューはPlaywrightによってコントロールされたChromiumで表示しています。PlaywrightをE2Eテストや自動化以外の用途で使うのは珍しい事例かと思いますので、その背景と実装の裏側についてご紹介します。 ビュー機能とは ローカル環境で開発したい bm-view-previewの内部構成 ライブラリとしてのPlaywright ブラウザを人の手で操作できるようにする ウィンドウを表示する ウィンドウのリサイズに対応する ダイアログを自動で閉じない できなかったこと アプリ

    Playwrightでライブプレビューツールを実装する - ベースマキナ エンジニアブログ
    f_syumai
    f_syumai 2024/08/30
  • 前編:YARD から rbs-inline に移行しました - Timee Product Team Blog

    タイミーでバックエンドのテックリードをしている新谷(@euglena1215)です。 タイミーのバックエンドはモノリスの Rails を中心に構成されています。そのモノリスな Rails に書かれていた YARD を rbs-inline に一通り移行した事例を紹介します。 前編では、rbs-inline の紹介と rbs-inline への移行理由について触れ、後編では実際の移行の流れや詰まったポイント、今後の展望について触れる予定です。 rbs-inline とは RBS 活用推進の背景 移行理由 1. YARD(sord) よりも rbs-inline の方が表現力が高い 2. YARD は書いていたが yardoc は使っていなかった 3. rbs-inline が今後言語標準の機能になっていく rbs-inline とは まずは rbs-inline について簡単に紹介します。

    前編:YARD から rbs-inline に移行しました - Timee Product Team Blog
    f_syumai
    f_syumai 2024/08/23
  • Cloudflare WorkersのCron Triggersでリリース当番通知botを作った話 - ベースマキナ エンジニアブログ

    こんにちは、syumaiです! ベースマキナでは、現在Cloudflare WorkersのCron Triggersを活用したリリース当番通知botを社内で運用しています。このbotは、リリース対象日の朝にリリース担当メンバーにメンションを行います。実装はTypeScriptで行われています。 今回の記事では、 なぜリリース当番通知botを作ることにしたのか なぜCloudflare Workersを使ったのか Cloudflare Workersによる定期実行Workerの実装例 などについて紹介させていただきます。 なぜリリース当番通知botを作ることにしたのか もともと、ベースマキナでは、リリース担当のメンバーを特に決めていませんでした。リリース担当が決まっていないと、自然と「直近機能開発を行ったメンバー」がリリースを自主的に行うようになります。すると、タスクの持ち具合によって、設

    Cloudflare WorkersのCron Triggersでリリース当番通知botを作った話 - ベースマキナ エンジニアブログ
  • GopherがRust入門したので違いをまとめてみた

    はじめに ウホウホ。 Rustを使い始めてちょうど2年くらい経って、すこしRustのことがわかってきたので、改めてGoRustのそれぞれの違いを整理したいなと思いこの記事を書きました。 筆者はウェブ開発の経験しかないので、ウェブを中心にまとめています。 気づいたらかなりな量になってしまったのとGopher向けにRustを紹介するような記事になってしまいましたが、よければ読んでみてください。 筆者について Goを使い始めて7年ほど経っていて、これまでCLI/TUIツールをいくつか作ってきました。 スペシャリストではないですが、プロダクトでGoを書く分には特に問題ないレベルかなと思います。 Rust2022年夏ころから使い始めてちょうど2年ほど経ちました。 なにかツールを作ったわけではないですが、勉強がてらにいくつか作ったもの・書いたがあります。 普通にRustを書く分には問題ないですが

    GopherがRust入門したので違いをまとめてみた
    f_syumai
    f_syumai 2024/08/13
  • Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog

    情報を発信する人のところに情報が集まることを日々実感しているので、Linuxのメモリ管理に特に詳しいわけではないのですが最近遭遇した問題について自分の理解を書いておきます。ざっと調べても同じことを書いている人を見つけられなかったので、公開には意義があると考えています。識者の方がフィードバックをくださると嬉しいです。 ※ AIの出力をベースに書いているのでいつもと少し文体が違います。 背景 要約 調査 再現の難しさ Goアプリケーションの調査 pprofによる分析 GCログの調査 Linuxの調査 Goランタイムの調査 GoのGCとTHP khugepagedの問題 Goランタイムにおける回避策 回避策の削除 max_ptes_noneのデフォルト値について MADV_NOHUGEPAGEをやめた理由 調査内容まとめ 解決策 検証 C言語 Go言語 まとめ 背景 Go言語で書かれたOSSのア

    Goで解放したメモリが少しずつ戻ってくる現象 - knqyf263's blog
    f_syumai
    f_syumai 2024/08/07
  • 2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ

    最近はお客さんとの勉強会でDockerのドキュメントをつまみいして読むというのをやっていますが、改めて最新版を読んでみて、いろいろ思考が整理されました。2020年の20.10のマルチステージビルドの導入で大きく変わったのですが、それ以前の資料もweb上には多数あり「マルチステージビルドがよくわからない」という人も見かけるので過去の情報のアンラーニングに使っていただけるように改めて整理していきます。 仕事Pythonコンテナをデプロイする人向けのDockerfile (1): オールマイティ編で触れた内容もありますが改めてそちらに含む内容も含めて書き直しています。 エントリーの執筆には@tk0miya氏から多大なフィードバックをいただきました。ありがとうございます。 基的なメンタルモデル現代的な使い方を見ていくために「Dockerを使ってビルドする」というのはどのようなものか考えを整

    2024年版のDockerfileの考え方&書き方 | フューチャー技術ブログ
    f_syumai
    f_syumai 2024/07/26
  • TypeScript/JavaScriptの不要なコードを削除するツール「Knip」の紹介 - ベースマキナ エンジニアブログ

    こんにちは、taroです! 今回は、ベースマキナのTypeScriptプロジェクトで不要なコードの検知・削除で使用しているKnipについて紹介します。 Knip とは Knipは、TypeScript/JavaScriptのコードベースの不要なコードを検出するCLIツールです。 以下が検出できる不要なコードの例です。 package.jsonのdependencies/devDependenciesの中で使われていないpackage exportされているがどこからもimportされていない変数、関数、型など 使用していないファイル その他、検出できる内容の一覧はこちらで確認できます。 またExperimentalな機能(2024年7月現在)として不要なコードの自動削除も可能です。 ちなみにTypeScript/JavaScriptの不要なコードの検出するツールではts-pruneも知ら

    TypeScript/JavaScriptの不要なコードを削除するツール「Knip」の紹介 - ベースマキナ エンジニアブログ
    f_syumai
    f_syumai 2024/07/25
  • Goで0秒待つとどうなるか - ベースマキナ エンジニアブログ

    こんにちは。yebis0942です。GoTypeScriptを書いています。夏祭りのおみくじで「待ち人来る」を引いたので、最近のちょっとした待ち事例についてご紹介します。 Goでタイムアウト時間を指定する関数を呼び出したとき、待機時間を0秒にすると何が起きるのか?という点が社内のレビューで少し話題になりました。 気になって調べてみたところ、同じ0秒のタイムアウト処理でも、内部の実装によって振る舞いが異なるケースがあることが分かりました。 よく見るタイムアウト処理 Go言語では、一定時間だけあるchannelを待つというタイムアウト処理は以下のように time.After() を使って書くことができます。 func timeAfter(c chan int, duration time.Duration) { select { case <-time.After(duration): //

    Goで0秒待つとどうなるか - ベースマキナ エンジニアブログ
    f_syumai
    f_syumai 2024/07/19
  • 第810回 Ubuntu 24.04 LTSの変更点 | gihyo.jp

    adwaita-icon-theme, baobab, evince, gdm3, gnome-bluetooth-3-common, gnome-calculator, gnome-characters, gnome-clocks, gnome-control-center, gnome-disk-utility, gnome-font-viewer, gnome-initial-setup, gnome-keyring, gnome-remote-desktop, gnome-session-bin, gnome-settings-daemon, gnome-shell, gnome-system-monitor, gnome-text-editor, gnome-user-docs, mutter-common, nautilus, orca, tecla, ubuntu-sessi

    第810回 Ubuntu 24.04 LTSの変更点 | gihyo.jp
    f_syumai
    f_syumai 2024/04/25
  • Node.js v22 で変わること

    2024/04/24 令和トラベルで発表した Node.js v22 で変わることの話です。

    Node.js v22 で変わること
    f_syumai
    f_syumai 2024/04/25
  • Fragment Composition of GraphQL

    Practical Tips and Tricks to Improve Your Compose Previews (Android Worldwide July 2024)

    Fragment Composition of GraphQL
    f_syumai
    f_syumai 2024/04/25
  • 権限管理は大事で、難しい。特に、管理画面においては。|Seiji Takahashi@ベースマキナ

    ありがたいことに継続的にご利用者様の数・ご活用頂く業務の幅が増え、積み上がるご要望に日々追いつくべく開発に邁進しております。 今回は先日ベースマキナがリリースした「ロール機能」に付随するお話です。 ベースマキナでは、以前から管理画面上で呼び出す処理ごとに、ユーザーやユーザーのグループ単位で実行を許可する機能があるなど、ガバナンス要求に答える機能を揃えてきました。 今回修正が行われたのはそれとは別のレイヤーで、ベースマキナ上の管理者向けの設定(接続先のデータベースやAPIの情報や、処理の登録、ユーザー追加など)を行う権限を細分化 & グルーピング設定を紐づけられるようにした、というものです。 この機能は成果物で見るとシンプルなのですが、権限管理にまつわる設計・開発はいつも魔物に立ち向かうようなもので、混迷を極めます。 そして、こと管理画面開発となるとその難易度は他の開発よりも高い、というのが

    権限管理は大事で、難しい。特に、管理画面においては。|Seiji Takahashi@ベースマキナ
    f_syumai
    f_syumai 2024/03/25
  • Keep a Changelog

    Version 1.0.0 # Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [1.1.1] - 2023-03-05 ### Added - Arabic translation (#444). - v1.1 French translation. - v1.1 Dutch translation (#371

    f_syumai
    f_syumai 2024/03/08
  • SaaSがオワコン化した2023年

    過去最速のスピードでユーザーも売上も獲得したChatGPTは、SaaSのGTM通念を根から覆した。当ニュースレター含め、業界の老害たちは「いやいやProduct Led Growthとかカッコイイけどね、結局はエンタープライズをやるなら営業組織を作らな…えええFortune 500企業の9割がもうChatGPT使ってるの⁉︎」と泡をうこととなった。 そんなChatGPTにもハプニングがあった。製造元OpenAIが11月に前代未聞のお家騒動を引き起こし、コーポレートガバナンス的アキレス腱を露呈した。キッシンジャー元米国国務長官も、11月末大往生する直前までAIが孕む地政的リスクを懸念していたが、技術の製品化スピードに、それ以外の側面が追いついていないことは明々白々である。EUはいち早くAIを規制する包括的法案を可決したが、その保守的すぎる姿勢は、引き続きシリコンバレーにおいて嘲笑の的とな

    SaaSがオワコン化した2023年
    f_syumai
    f_syumai 2024/01/02
  • 【翻訳】Prettier の新しい三項演算子のフォーマットを試してみてください

    この記事はAlex Rattrayさんの A curious case of the ternaries を、人の許可を得て翻訳したものです(タイトルは大幅に変えてしまっていますが)。 記事の最後にあるように Google Forms から新しい機能についてのフィードバックを求めています。私以外のメンテナーも読めるようにできるだけ英語で書いてほしいですが、「日語でなら書いてもいいよ」という人がいたら日語で書いてもらっても大丈夫です。 三項演算子のフォーマットは長年の課題でした。Prettier の v3.1.0 では新しいフォーマットのスタイルを導入することで、ついにこれを解決しました(訳注: 後述の通り、まだ experimental なので、--experimental-ternaries をつけたときのみ有効になります)。 このブログ記事では、これまでの経緯と背景、実際に触って

    【翻訳】Prettier の新しい三項演算子のフォーマットを試してみてください
    f_syumai
    f_syumai 2023/12/30
  • (オフライン)プログラミング仲間が欲しい - たにしきんぐダム

    ここ一年、自分の仕事がニッチな分野なこともあり(ビルドシステムやコンパイラ)基的に一人で仕事をすることが多い。さらにオフィスが国外にあるため出社ができずだいたいは物理的にもプロジェクト的にも一人で仕事をしている。 オフィスなどでコーヒーなどを淹れに席を立ったタイミングで多少似たような仕事をしている人と雑談するみたいな体験が恋しい。 (最近は近所のローソンで偶然あった友人WasmGCの話で盛り上がったのが良い体験だった) 同じ方向を向いている人と気軽に雑談できる空間っていいな、なんとかしてそういう場を作れないものか(オフィスのある会社に就職する以外で)

    (オフライン)プログラミング仲間が欲しい - たにしきんぐダム
    f_syumai
    f_syumai 2023/12/30
  • ECMAScript Record & Tuple polyfill はどのようにして実装されているのか | Wantedly Engineer Blog

    Record & Tuple とはRecord & Tuple は ECMAScript (JavaScript) に対する提案段階の機能で、構造化データのためのプリミティブ型を提供するというものです。RecordはObjectのプリミティブ版、TupleはArrayのプリミティブ版にあたります。 プリミティブとオブジェクトJavaScriptにおける値はプリミティブとオブジェクトの2種類に分けられます。 プリミティブはイミュータブルで、値の同等性にもとづいて比較されます。既存のプリミティブとして、null, undefined, number, string, boolean, bigint, symbol が存在しています。オブジェクトはデフォルトでは書き換え可能で、参照の同一性にもとづいて比較されます。これまで、複数のスカラー値をまとめて構造化データとして扱うには、オブジェクト (主

    ECMAScript Record & Tuple polyfill はどのようにして実装されているのか | Wantedly Engineer Blog
    f_syumai
    f_syumai 2023/12/29
  • IT系コミュニティをタダ飯狙いの不審者からどう守るべきか。あるイベントで発生した深刻な事案と提言

    タダ飯狙いでIT系コミュニティのイベントなどに入り込む人たちがいる、ということが少し前から話題になっている中で、実際に不審者がイベントに入り込もうとした事案がまた明らかになりました。 12月11日と12日の2日間、都内で開催されたコミュニティ主催の技術系カンファレンスで、おそらくは無料の事を目当てにした不審な人物らが侵入しようとした出来事が発生していたことがイベントの当事者の発言で示されています。 スタッフとして不審者に対応した一人である鍋島理人氏は、「勉強会参加者や運営に危害が及ぶほどの脅威であり、必要なのは不審者対策そのものだと認識を改めた。というか僕はそれぐらい怖かった」とポストし、今回の事態の大きさを吐露しました(鍋島氏は以前、翔泳社でDevelopers Summit(通称デブサミ)のオーガナイザーを勤めたこともある、イベントやコミュニティの運営に関して十分な知見を備えた人物で

    IT系コミュニティをタダ飯狙いの不審者からどう守るべきか。あるイベントで発生した深刻な事案と提言
    f_syumai
    f_syumai 2023/12/19