タグ

tkawaのブックマーク (3,783)

  • ActiveRecord::EnumのI18n

    ActiveRecordのenumにI18n用の機能を提供するgemをつくった。 https://github.com/r7kamura/activerecord-enum_translation どういうものか Userがenumを利用したstatusというカラムを持っているとすると、I18n用の辞書としてこういう風なデータを用意しておけば… ja: activerecord: attributes: user: name: 名前 status: active: 利用中 inactive: 停止中 次のようにメソッドを呼び出すことで、翻訳された辞書が利用できるようになる、というやつ。 user.human_enum_name_for(:status) #=> "利用中" 技術的な難題の解決とかは全く狙っていなくて、どちらかと言うと、この手の仕組みにルールが無くてアプリ内のいろんなところに

    ActiveRecord::EnumのI18n
    tkawa
    tkawa 2022/02/18
  • Active RecordでRow Level Securityを使って安全にテナント間のデータを分離する - SmartHR Tech Blog

    従業員データベース機能の開発を担当している渡邉です。最近公開したGemであるactiverecord-tenant-level-securityの紹介をします。 SmartHRにおけるマルチテナントの現在 私たちが開発するSmartHRはお客様ごとに1つの環境を提供する、マルチテナント型SaaSです。サービス全体で1つのデータベースを持ち、複数のテナントのデータが混ざらないように、SQLで問い合わせを行います。 1つの環境ごとに1つのデータベースを持つ方式は安全性の面で優れていますが、スキーマの保守やマイグレーションにかかる時間の増加など、多くの技術的な困難をもたらします。この選択の背景については、2018年に書かれた以下の記事もご覧ください。 tech.smarthr.jp とはいえ、常にテナントごとのWHERE句を意識しながらコードを書くのは大変ですし、不具合の温床になります。幸い、私

    Active RecordでRow Level Securityを使って安全にテナント間のデータを分離する - SmartHR Tech Blog
    tkawa
    tkawa 2022/02/17
  • 音声入力でメモを書けるウェブアプリを書いた、x-callbackを使ったアプリケーション連携

    voicodという音声入力でメモを書けるシンプルなウェブアプリケーションを書きました。 音声入力でメモができるシンプルなアプリケーションを書きました。https://t.co/EHSKnNKNaL x-callbackを使ってショートカット.app 等と連携すれば、入力内容をNotionに保存したりできます。 Note: SpeechRecognitionに対応したブラウザ(ChromeやSafari)が必要 Source: https://t.co/NnzXVjlGnF pic.twitter.com/yzoA3VIzzl — azu (@azu_re) February 10, 2022 SpeechRecognitionというウェブブラウザで音声認識をするAPIを使っているので、このAPIに対応しているブラウザが必要になります。 具体的にはGoogle ChromeやSafariなど

    音声入力でメモを書けるウェブアプリを書いた、x-callbackを使ったアプリケーション連携
    tkawa
    tkawa 2022/02/11
  • Rubyの静的型検査を利用した開発手法の現状まとめ

    Leaner 開発チームの黒曜(@kokuyouwind)です。 先週はBurikaigi2022で登壇させていただきました! 今回はリモート開催でしたが、来年は現地でブリしゃぶをべられると良いですね! Burikaigi ではRBSから始める静的型付け生活と題して、 Ruby の静的型検査の概要や開発手順などについて登壇しました。 入門的な内容ではありますが、今回は発表内容を大まかにまとめた記事をお届けします。 なお記事の構成上、発表内容から一部割愛している話がありますがご容赦ください。[1] Ruby 静的型検査の概要 TypeScript の台頭や Python 3.5 での型注釈記法の導入など、動的型付けの言語においても静的型検査の仕組みを導入する動きが近年活発です。 Ruby においても 2020 年 12 月にリリースされた Ruby 3.0.0 において RBS と Typ

    Rubyの静的型検査を利用した開発手法の現状まとめ
    tkawa
    tkawa 2022/02/06
  • セブン&アイ、そごう・西武を売却へ コンビニに集中 - 日本経済新聞

    セブン&アイ・ホールディングスが、傘下の百貨店事業会社、そごう・西武を売却する方向で最終調整に入った。複数の投資ファンドや事業会社が候補になる見通し。不振が続いていた百貨店事業を切り離し、海外を中心に成長を見込むコンビニ事業に経営資源を集中する。近代小売業の礎を築いた百貨店は、消費者の価値観の多様化や大型化する総合スーパーなど新たな小売りの登場で勢いを失った。新型コロナウイルスでも大打

    セブン&アイ、そごう・西武を売却へ コンビニに集中 - 日本経済新聞
    tkawa
    tkawa 2022/01/31
    最初からシナジーなんかなくて池袋渋谷の一等地店舗目当てでしょと思ってたし、地方店舗を閉店しまくっただけだった。業界厳しいとはいえもっとやる気があるところが経営していればなあ
  • Komesan: 指定したURLに関連するはてなブックマーク、Twitter、HackerNewsのコメントを表示する

    Komesan: 指定したURLに関連するはてなブックマーク、Twitter、HackerNewsのコメントを表示する Komesanというはてなブックマーク、Twitter、HackerNewsをまとめて表示するサイトを作りました。 https://komesan.pages.dev/?url=https://pages.cloudflare.com HackerNewsはオプショナル: https://komesan.pages.dev/?url=https://pages.cloudflare.com&service=hackerNews ブックマークレットで実行する場合は、次のようなURLのブックマークを利用します。サイトの下部に同じものがおいてあります。 javascript:void(window.open("https://komesan.pages.dev/?url="+e

    Komesan: 指定したURLに関連するはてなブックマーク、Twitter、HackerNewsのコメントを表示する
    tkawa
    tkawa 2022/01/30
  • Free Postgres Databases

    Free Postgres Databases Author Name Kurt Mackey @mrkurt @mrkurt Author Name Chris Nicoll @beepcat @beepcat Image by Annie Ruygt Postgres on Fly.io is now free for small projects. The hard part about free Postgres is storage, so this post is also about free storage. Read about it here, or try us out first. You can be up and running in just a few minutes. We like building side projects and also hate

    Free Postgres Databases
    tkawa
    tkawa 2022/01/21
  • Rails 7.0 + Ruby 3.1でゼロからアプリを作ってみたときにハマったところあれこれ - Qiita

    Ruby on Rails Advent Calendar 2021の枠が空いていたので、あとから登録しました はじめに 個人的なプロジェクトになりますが、僕が翻訳しているRSpecの入門書「Everyday Rails - RSpecによるRailsテスト入門」を2022年前半にRails 7.0バージョンにアップデートしようと考えています。 そこでこのの中で使っているサンプルアプリケーションをRails 7.0でゼロから作り直してみました。フロントエンド周りを中心に結構考え方が変わっている部分があったので、「ここでハマった!」とか「こういうポイントを押さえておくといいかも」という点をあれこれ書いてみます。 なお、Rails 7.0版のサンプルアプリケーションはまだ公開できる状態ではないので、公開はもうしばらくお待ちください🙏 今回作成したサンプルアプリケーションはこちらで公開してい

    Rails 7.0 + Ruby 3.1でゼロからアプリを作ってみたときにハマったところあれこれ - Qiita
    tkawa
    tkawa 2022/01/03
    link_toでdeleteしてしまうのは(JSであっても)誤りなので、できないようにすべきだよね。 だいぶ昔のscaffoldからおかしかったんだけど。
  • Welcome | bentojs.dev

    Bento is an easy to use component library that helps you achieve a great page experience. Bento works great with frameworks and CMSBento components are packaged as React or Preact components for seamless integration with those frameworks, but they're also provided as Web Components, so that they can be used anywhere else. Framework guides Great page experience with BentoOffering users a great expe

    tkawa
    tkawa 2021/12/10
  • Web のセマンティクスにおける Push と Pull | blog.jxck.io

    Intro 筆者は、 Web のセマンティクスに対する実装の方針として、大きく Push 型の実装 と Pull 型の実装 があると考えている。 もっと言えば、それは実装方法という具体的な話よりも、開発者のセマンティクスに対する態度を表現することができる。 この話は「Push よりも Pull が良い」などと簡単に切り分けられる話ではない。 「自分は今 Push で実装しているのか、 Pull で実装しているのか」この観点を意識するかしないかによって、セマンティクスに対する視野が広くなり、その応用として、たとえば今自分が行っている実装が、将来の Web においてどのような互換性の問題を生じるかなどを想像できるようになるだろう。最近問題になる Ossification を、こうした視点の欠如の結果とみることもできる。 (エントリでの Ossification は、一般に言われている Pro

    Web のセマンティクスにおける Push と Pull | blog.jxck.io
    tkawa
    tkawa 2021/12/08
  • Replacing Select2 with Tom Select + Stimulus · Cool Request

    tkawa
    tkawa 2021/12/08
  • HTMLのdialog要素とフォーム機能 - Hatena Developer Blog

    こんにちは、id:nanto_viです。この記事ははてなエンジニアAdvent Calendarの1日目の分です。 Webアプリケーションでモーダルダイアログを実現しようとして苦戦したことはないでしょうか? 自前でHTMLCSSJavaScriptを組み合わせて実装していくと、フォーカスやスクロールの制御が大変ですよね。そんな悩みを解決してくれるのがHTMLのdialog要素、Webブラウザ組み込みのモーダルダイアログ実装が利用できるという優れものです(モードレスダイアログとしても利用できます)。 dialog要素を使うことで、モーダルダイアログに要求されるJavaScript機能をブラウザが肩代わりしてくれるので、アクセシビリティの確保も簡単になります。 2021年12月現在、ChromeやEdgeはすでにdialog要素に対応しています。FirefoxやSafariの開発版でも対応

    HTMLのdialog要素とフォーム機能 - Hatena Developer Blog
    tkawa
    tkawa 2021/12/03
    polyfillもあるし使って良いのでは https://github.com/GoogleChrome/dialog-polyfill
  • マジックリンク認証の落とし穴

    TL;DR 主にモバイル端末からの利用において、ユーザーが手間取ることが多い エンジニアなど、リテラシーが高いユーザー層を対象にした場合にのみ利用したほうが良さそう マジックリンク認証、使ってますか? マジックリンク認証とは、メール内に記載されたリンクを踏むことで認証が完了する認証方式です。パスワード流出のリスクが無いことから、パスワード認証に比べてセキュアな点が特徴です。 Slackが採用しているため、ユーザーの立場で使ったことがある人は多いと思います。 筆者は一時期Firebaseを多用していたのですが、Firebase Authenticationを使用すると簡単にマジックリンク認証を実装することができ、またパスワード設定/変更/忘れ等を考慮する必要がないことから実装の手間を省けると考え、個人開発のプロダクトで採用しました。 実際開発は短期間で終わり、最小限のコード量で済んだことから

    マジックリンク認証の落とし穴
    tkawa
    tkawa 2021/11/16
    1はREST(HTTP)の原則から考えてもGETでのログインはNG。フォームを出してPOSTさせることで回避できる
  • 新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog

    新しいHTTPメソッドを定義する「The HTTP QUERY Method」という提案仕様が議論されています。 もともとは、SEARCHメソッドという呼び名が候補としてあげられていましたが、長い議論ののち、一旦QUERYと呼ぶ方向となっております。最終的なFixについては、この draft 02の公開とともに改めてコンセンサスを求めた後に行われます。 QUERYメソッド 「GETリクエストにボディを付けたいという」という質問は長らく有りました。しかし、GETやHEADリクエストでボディをつけることは非推奨となっています (参考URL)。 そのような要望のなかで、リクエストでボディを含められる冪等性の保証された新しいHTTPメソッドが検討されました。それがQUERYメソッドです。冪等性があるため、ブラウザやProxyは自動でリトライすることができます。(なお、POSTはセマンティクス上冪等

    新しいHTTPメソッド、QUERYメソッドの仕様 - ASnoKaze blog
    tkawa
    tkawa 2021/11/11
    既存のProxyが対応するかどうかは別問題
  • カスのプレバト〜俳句の才能査定ランキング〜 - 六代目:生活の困難

    こんにちは。こばると(https://twitter.com/428sk1_guardian)です。 前回の記事では、友達に「連歌会」と称した訳のわからないゲームに参加させられ、訳も分からず優勝の座を奪われました。 umector.hatenablog.jp 終わった後に連歌のルールをきちんと調べてみたら、マジで何もかも全部もれなく違っていて愕然としました。これを友達に知らせようとしたのですが、「ルールを知らないままの自分でいたい。邪魔しないで」と言われ拒否される始末です。訳がわかりません。 今回はそんな彼らに、真の教養を叩き込みます。そう、俳句によって。 俳句のイメージ画像 皆さんは、俳句をご存知ですか? 五七五の調べに乗せて情景を紡ぐ、日の伝統文芸の一つです。 昨今では「プレバト」などのバラエティ番組でも、美しい日語の表現力の資金石としてその知名度を高めていますね。 www.mbs

    カスのプレバト〜俳句の才能査定ランキング〜 - 六代目:生活の困難
    tkawa
    tkawa 2021/11/09
    笑ったw
  • Spectre の脅威とウェブサイトが設定すべきヘッダーについて

    長い記事なので先に結論を書きます。 Spectre の登場で、ウェブサイトに必要とされるセキュリティ要件は増えました。具体的に必要な対策は下記の通りです。 すべてのリソースは Cross-Origin-Resource-Policy ヘッダーを使って cross-origin なドキュメントへの読み込みを制御する。 HTML ドキュメントには X-Frame-Options ヘッダーもしくは Content-Security-Policy (CSP) ヘッダーの frame-ancestors ディレクティブを追加して、cross-origin なページへの iframe による埋め込みを制御する。 HTML ドキュメントには Cross-Origin-Opener-Policy ヘッダーを追加して popup ウィンドウとして開かれた場合の cross-origin なページとのコミュニ

    Spectre の脅威とウェブサイトが設定すべきヘッダーについて
  • ruby/debugのChrome Devtools連携をRailsで動かす|TechRacho by BPS株式会社

    morimorihogeです。涼しくなってようやく生きていける感じになって何よりです。 今回はruby/debugに新しく導入されたChrome Devtools連携リモートデバッグ機能を動かしてみたので、そちらを紹介してみようと思います。 ことの起こり 新しいRuby標準デバッガとして開発が進んでいるruby/debugですが、先日こんなTweetがありました。 debug.gem and Chrome browser integration. Thanks Ono-san! pic.twitter.com/3aUdH2zbEo — _ko1 (@_ko1) October 14, 2021 なにこれすごくない!?と思い、今回の記事を書くに至りました。 動きとしては、デバッガのコンソールで open chrome コマンドを実行するとURLが表示され、そのURLにChromeでアクセスす

    ruby/debugのChrome Devtools連携をRailsで動かす|TechRacho by BPS株式会社
  • 裕福な頃「貧乏人は努力不足」と思っていたが、成人してからずっと貧乏が続いたことで、そんな簡単なものじゃないと分かった人の話「人間は自分が経験した痛みしか理解できない」

    牛帝 @gyutei_4koma 幼いころは実家が太かったので、貧乏人は努力不足じゃないのくらいのことまで思ってた気がしますが、成人してからずっと貧乏が続いたことで、そんな簡単なものじゃないと分かったし、人間は自分が経験した痛みしか理解できず、恵まれた奴は人の痛みが想像できずにサイコパスムーブしがちだと分かった 2021-10-24 10:29:44

    裕福な頃「貧乏人は努力不足」と思っていたが、成人してからずっと貧乏が続いたことで、そんな簡単なものじゃないと分かった人の話「人間は自分が経験した痛みしか理解できない」
    tkawa
    tkawa 2021/10/26
    謙虚であれ。他人のことをどうこう言うな。それぐらいで十分。
  • JSON Schema で複雑な仕様の入力フォームの実装に立ち向かった話

    Ruby on Rails を用いたシステム上で入力フォームを実現する際、Rails が提供しているフォームヘルパーを利用した実装や、ReactVue によるコンポーネントの自前での実装が一般的に行われます。 ここで、職業で学生を選択した場合は学校名と学年、会社員を選択した場合は役職と年収を入力する...といった、条件分岐が大量に生まれる入力フォームを想像しましょう。 一般的な実装手法では、あるフォームの入力値が他のフォームに影響を与えるような、複雑で動的な入力フォームの実現をするために、大量の if 文を書く必要があります。 また、ユーザから送信された入力値の正しさをバリデーションするために、バックエンド側に同様の if 文を大量に書く必要が出てきます。 そこで私は、複雑な仕様の入力フォームの実装のための JSON Schema 活用方法および事例について紹介します。入力フォームの

    JSON Schema で複雑な仕様の入力フォームの実装に立ち向かった話
    tkawa
    tkawa 2021/10/23
    react-jsonschema-form はすごい https://rjsf-team.github.io/react-jsonschema-form/
  • SMS OTP form best practices  |  Articles  |  web.dev

    SMS OTP form best practices Stay organized with collections Save and categorize content based on your preferences. Asking a user to provide the OTP (one time password) delivered via SMS is a common way to confirm a user's phone number. There are a few use cases for SMS OTP: Two-factor authentication. In addition to username and password, SMS OTP can be used as a strong signal that the account is o

    tkawa
    tkawa 2021/10/20