toyama_gfのブックマーク (16)

  • UIの色を変えただけで大量のクレームを頂戴してしまった話|のなと

    Webプロダクト開発をしていると様々な諸事情によりUI構成を変えたり機能を増やしたり減らしたりすることが多々あると思います。そんな時に避けられない事態として「UI変更に対するお怒りがユーザーからわんさか届いてしまう」ということがあります。今回はUI上の1要素の色を変えただけで虎の尾を盛大に踏んでしまった事件の話をしようと思います。差し当たりどういうUIをどう変えたのかを明示しておきます。変える前がこちら↓↓ beforeUIほんで変わった後がこちら↓↓ afterUIご覧の通り「作業カード」と呼ばれるコンポーネントの色を「緑&黄」から「緑塗り&緑枠線」に変更しました。「え、それだけ?」という声が聞こえてきそうですがそうなんです。それだけなのです。しかしここはレガシードメインのtoB SaaS。toB SaaSではUIの変更がユーザー業務への影響に直結するので軽微な変更を加えるのもハードルが

    UIの色を変えただけで大量のクレームを頂戴してしまった話|のなと
    toyama_gf
    toyama_gf 2024/04/17
  • 【翻訳】テスト駆動開発の定義 - t-wadaのブログ

    このブログエントリでは、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent BeckがTDDの定義を改めて明確化した文章を、許可を得たうえで翻訳し、訳者の考察を沿えています。 きっかけ 2023年の年末、テスト駆動開発(TDD: Test-Driven Development)の考案者Kent Beckは、substackにTDDに関するポストを連投して論戦を繰り広げていました。TDDはその誕生から20年以上が経ち、その間に「意味の希薄化」が発生して議論が噛み合わなくなっていました。意味の希薄化(Semantic Diffusion)とは、新しく作り出された用語が広まる際に来の意味や定義が弱まって伝わる現象です。 私(和田)はTDDと関わりの深いキャリアを歩んできました。Kent Beckの著書『テスト駆動開発』の翻訳者であることもあり、TDDの正

    【翻訳】テスト駆動開発の定義 - t-wadaのブログ
  • はじめに | ちいさな Web ブラウザを作ってみよう

    はじめに | ちいさな Web ブラウザを作ってみよう
    toyama_gf
    toyama_gf 2024/03/20
  • インデックスを理解したい - Qiita

    はじめに みなさんはDBのインデックスを正しく使えていますか? 私はなんとなく「DBのパフォーマンスを向上するためのもの」という認識はあったのですが、 どのような場面で使うものなのか、逆にどのような場面では使うべきでないのかなど 明確に理解できていませんでした。 今回はそんなインデックスについての理解を深めたいと思います。 インデックスとは インデックスとは、その名の通り「索引」です。 表現の仕方と変えると、(x, a)という形式の配列であるとも言えます。 xというキー値とそれに結びつくaというデータ情報があり、 これを利用することですべてのデータを網羅して見ることなく、 まさにの索引のように目的のデータにたどり着くことができます。 インデックスはSQLのパフォーマンスを改善するための非常にポピュラーな手段であり、 理由としては下記の3点が挙げられます。 アプリケーションのコードに影響を

    インデックスを理解したい - Qiita
    toyama_gf
    toyama_gf 2024/03/20
    これは分かりにくいブクマタイトルを自動設定してるはてブさんサイドにも問題が… (Qiita側は記事タイトル+先頭タグをtitle要素にしててgoogle検索一覧では『インデックスを理解したい #SQL』表示で特に紛らわしくない)
  • SQLインジェクションが通った原因は“静的解析ツールのバージョンアップ” 「自動修正機能」に気をつけるべき理由

    「静的解析ツールで生まれたSQLインジェクション」というタイトルで登壇したのは、小川 氏。「面白かった脆弱性」について解説し合い、脆弱性に関する知識を深めるためのイベント「Security․Tokyo #2」で、静的解析ツールによって生まれたSQLインジェクションの事例について発表しました。 登壇者の自己紹介 小川氏:小川と申します。「静的解析ツールで生まれたSQLインジェクション」というタイトルで発表いたします。よろしくお願いします。 自己紹介を簡単に。経歴ですが、昔学生の時にWebアプリ開発のバイトをしていて、就職後は10年ぐらいぜんぜん違う、製造業で働いていました。ずっとパソコンを見ていたら目が悪くなるかなと思ってほかの業界に行ったのですが、結局ずっとExcelやWordを見ていて、あまり変わりませんでした。 結局やはりITだなと思って、最近root ipという会社に転職して、Bto

    SQLインジェクションが通った原因は“静的解析ツールのバージョンアップ” 「自動修正機能」に気をつけるべき理由
    toyama_gf
    toyama_gf 2023/10/25
  • 私がthrowを使わない理由

    この記事について JavaScriptではthrow文という文を使うことで例外を投げることができます。 このthrow文ですが、私はレビューなどで例外を投げないでくださいというコメントをするのですがその理由とどのようにコードを変更すればよいのか、ということを書いておこうと思いました。 前提条件 この記事の内容は下記の条件を前提として書き進めていきます。 TypeScriptを採用していること フロントエンド開発の場合 Node.jsを利用したサーバーサイドのコードやCLIツールの開発、各種ライブラリの開発については記事の対象に含まれないことをご了承下さい。 結論 先に結論から書いておくとTypeScriptを利用している場合例外はカスタムエラーを返却するか、Result型を利用するのがよいと思っています。 次の章からサンプルコードを用いながらthrow文を使った実例と、代替え案について記

    私がthrowを使わない理由
    toyama_gf
    toyama_gf 2023/09/29
  • 処理速度の遅いcurrentTimeMillis() – 前編 | POSTD

    今日はJavaライブラリの中でも非常に基的でよく使われるメソッド、 System.currentTimeMillis() を見ていきましょう。 このメソッドはミリ秒単位の精度で現在時刻を知らせます。このことから、このメソッドの処理能力は重要ではないと思う人もいるかもしれません。計測間隔が100ミリ秒や500ミリ秒なのであれば、現在時刻を取得するのに0.1や0.2ミリ秒かかったからといって誰も気にしないでしょう。しかし、やはり頻繁にこのメソッドを呼び出したいケースがありそうです。下記に例を挙げます。 異常に長い実行時間を検知し知らせる場合。例えば、HTTPリクエストを実行するのにかかる時間を計測するケースを考えます。この場合、1ミリ秒以下が計測されると思われることでしょうが、実際にはこのメソッドを使えばゼロが出力されることに注意して下さい。しかし時間が異常に長い(例えば100ミリ秒以上)場

    処理速度の遅いcurrentTimeMillis() – 前編 | POSTD
    toyama_gf
    toyama_gf 2023/09/27
  • Go言語で高速JSONライブラリをメモリ安全にしたらさらに速くなった話

    はじめに こんにちは。Sugawara Yuutaです。"Go言語で最速のJSONデコーダーを作った話", "それでも僕はGoで最速のJSONデコーダーを作りたかった"...以来の方はまた読んでいただきありがとうございます。まだの方は、経緯を伝えやすくなると思うので、そちらの方も読んでいただけたら幸いです。 その後 Go言語チームのメンバーが取り組んでいる新しいバージョンのJSONライブラリであるgo-json-experiment/jsonというレポジトリを発見しました。(厳密に言うと、知ってはいたのですが中身等は見ていない状態でした。) そこで学んだことが少しでも役に立てばとissueを提出したところ、そのときのJSONデコーダーに足りないものが見えてきたため、今回は僕の見つけた課題と、どのように解決しようとしたか・したかを話せればと思います。 見つけた課題 パフォーマンスも重要ですが

    Go言語で高速JSONライブラリをメモリ安全にしたらさらに速くなった話
    toyama_gf
    toyama_gf 2023/09/25
  • JavaとMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク1、はてなブックマーク2)。 備忘のため転載いたしますが、この記事は2008年12月22日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 今年のBlack Hat Japanには、はせがわようすけ氏が「趣味と実益の文字コード攻撃」と題して講演され話題となった。その講演資料が公開されているので、私は講演は聞き逃したが、資料は興味深く拝見した。その講演資料のP20以降には、「多対一の変換」と題して、UnicodeのU+00A5(通貨記号としての¥)が、他の文字コードに変換される際にバックスラッシュ「\」(日語環境では通貨記号)の0x5Cに変換されることから、パストラバーサルが発生する例が紹介されている。 しかし、バックスラッシュと言えばSQL

  • イミュータブルデータモデル - kawasima

    CRUDのうちUPDATEがもっともシステムを複雑化する。更新には複雑なルールが伴うからだ。業務的に複雑なルールが存在するのは仕方ないこともあるが、システム、設計で複雑さを更に増さないようにしたい。UPDATEに着目し、その発生をできるだけ削ることによって複雑さをおさえるためには、まずデータモデルをそのように設計しておかなけれなならない。このイミュータブルデータモデルは、それを手助けする手法で、手順に沿って実施すればある程度のスキルのバラつきも吸収できるように組み立てられている。

    イミュータブルデータモデル - kawasima
    toyama_gf
    toyama_gf 2023/09/02
  • 「悪い方が良い」原則と僕の体験談|Rui Ueyama

    ソフトウェアの世界には「悪い方が良い」原則という有名なエッセイがある。キレイにレイヤ分けされた一貫性のある良いデザインよりも、一見手抜きの悪いデザインのほうが実は良いときもあるという話だ。この逆説的なデザイン原則を僕は身をもって体験したことがある。それについてちょっと書いてみようと思う。 僕はlldというリンカの現行バージョンのオリジナル作者だ。リンカというのはコンパイラと組み合わせて使うもので、実行ファイルやDLLを作るのに使用される。lldはプロダクトとしてはかなり成功していて、標準のシステムリンカとして採用しているOSがいくつかあったり、GoogleやFacebookなど皆が知っているような大規模サイトの中で広く使われていたりする。 現在のlldは2世代目で、第1世代のlldは僕がプロジェクトに参加する前から存在していたのだけど、数年前にそれを捨てて一から書き直すということになった。

    「悪い方が良い」原則と僕の体験談|Rui Ueyama
    toyama_gf
    toyama_gf 2023/08/27
  • タイムゾーンを考慮した日時の扱いのベストプラクティス - エムスリーテックブログ

    こんにちは、server-side kotlinterraform を書くことが多い、エンジニアリングGの矢崎(id:Saiya)です。 タイムゾーンや日時の扱いについての話題がホットな昨今ですが、 そういった日時の扱いについて例えば以下のようなお話を受けることが少なからずありました: とりあえず日時は UTC からの時差情報付きで扱えばいいんでしょ? DB に保存するときもタイムゾーン情報付きで入れておけばいいんでしょ? こういったお話を振られた際に、思うところを一言でサッと説明できずもやもやする事もあり、 また web サービスにおいて日時・タイムゾーン・オフセットをどう扱うべきか?納得の行く説明をあまり見つけられなかったため、 筆者なりに考えをまとめてみました。 国家的祭典のために急にサマータイムが導入されるといった話に限らず、 クラウドサービスが UTC+0 の日時になってい

    タイムゾーンを考慮した日時の扱いのベストプラクティス - エムスリーテックブログ
    toyama_gf
    toyama_gf 2023/08/09
  • 徐々に高度になるリングバッファの話 - Software Transactional Memo

    リングバッファのイメージ図 1. リングバッファとは何か 機能的にはFirst In First Out (FIFO)とも呼ばれるキューの一種であるが、リング状にバッファを置いてそれの中でReadとWriteのインデックスがグルグルと回る構造をとる事によって容量に上限ができることと引き換えに高速な読み書き速度を得たものである。キューを単に実装するだけなら山ほど方法があって線形リストを使ってもいいしスタックを2つ使っても原理的には可能だ。その中でもリングバッファを用いた方法の利点はひとえに性能の高さでありメモリ確保などを行わないお陰でシステム系の様々な場所で使われている。 これの実装自体は情報系の大学生の演習レベルの難度であるが少し奥が深い。まずリングバッファのスタンダードなインタフェースと実装は以下のようなものである。 class RingBuffer { public: explicit

    徐々に高度になるリングバッファの話 - Software Transactional Memo
  • 「このクマ、どっかおかしいんじゃねえのか?」北海道で31頭の牛を殺した謎のヒグマを追うリーダーが感じた“違和感” | 文春オンライン

    唯一の目撃証言は4年前 “最初の事件”は2019年7月16日午前4時、世界自然遺産・釧路湿原の北に位置する標茶町オソツベツ地区の牧場で発覚した。牧場関係者が放牧中の牛1頭の姿が見えないことに気付き、捜索したところ、森の中で無惨な姿で殺されている牛の死骸を発見したのである。その関係者が思わず声をあげると、20メートルほど離れた藪の中から1頭のクマが飛び出し、逃げていった。後々まで、これがこのヒグマに関する唯一の目撃証言となる。 写真はイメージ ©iStock.com 以来、8月5日に8頭、8月6日に4頭、8月11日に5頭……といった調子で連日牛が襲われるようになり、その被害は2ヵ月で実に28頭に及び、現場に残された体毛のDNAにより「同一犯」によるものと推測された。この頃になると、最初の事件が起きた地区の名前「オソツベツ」と、現場に残された足跡の幅が「18センチ」とされたことから、このヒグマ

    「このクマ、どっかおかしいんじゃねえのか?」北海道で31頭の牛を殺した謎のヒグマを追うリーダーが感じた“違和感” | 文春オンライン
    toyama_gf
    toyama_gf 2023/07/14
  • Ajaxから始まった一つの時代の終わり

    最近の流れを見ていての感想文なので、ideaとして投稿します。筆者のバックグラウンドとしては、Remixの商業記事を書いたり、App Routerの商業記事を書いたりしている人です。 さて、筆者は2022年の秋から、社内システムではありますがRemixをプロダクション運用しています。また、Next.jsのApp Routerについても、パラダイムとしてはRemixにインスパイアされた部分が多い[1]おかげで、順調にキャッチアップできています。 RemixとApp Routerは、ルーティングとデータフェッチを高度に統合しており、Progressively Enhanced SPA(PESPA)と呼ばれることもあるそうです。PESPAについては、次の記事が話題になりましたね。 このPESPAであるRemixを実運用する中で、フレームワークの手触りが近年触ってきたものと大きく違っている点があっ

    Ajaxから始まった一つの時代の終わり
    toyama_gf
    toyama_gf 2023/07/12
  • 「反対するなら代案を出せ」という言葉の暴力は村上 春樹流思考で回避しよう #さくマガ - さくマガ

    さくらインターネットが推進する働き方の多様性を実現するための取り組みとは? >>詳細を見てみる 反対するなら代案を用意しろと言われたことはありませんか? ミーティングや打合せの席で「反対するなら代案を出せ」という言葉を耳にしたことはないだろうか。 「この計画でいきたいと思う!」 「反対!」「断固反対!」 「反対するなら、代案を出せ!」「代案がないやつに反対する権利はない!」 こんな光景がいまこの瞬間も日のどこかで繰り広げられているとなんともいえない気分になる。 僕は 30年近く会社員をやっているけれども、数えきれないほど「代案を出せ」という言葉を耳にしてきた。「意見を言え」「対案はないのか」といったバリエーションまでカウントしたら、数百回にはなるはずだ。 「耳にした」「その場に居合わせた」だけではない。僕自身、そう言われてきた。一方で僕自身も「代案を出せ」的な言葉を言ってきた。事前に何も

    「反対するなら代案を出せ」という言葉の暴力は村上 春樹流思考で回避しよう #さくマガ - さくマガ
    toyama_gf
    toyama_gf 2023/07/01
    『出せるわけがない。事前に話を聞かされていないのだ。不可能だ』←なんでこんな状況に限定されてるんですかね……。対案として「建設的な会議したいなら事前に課題の共有しろ」て感じで書き直すのを提案しときます
  • 1