Parrots in captivity seem to enjoy video-chatting with their friends on Messenger
世はまさにハイパーメディア時代。何をするにも視覚的なキャッチがないとやっていけない時代です。ブラウザのスクリーンショットを撮ることも多いでしょう。しかしプライベートな内容もそこに映り込んでしまうこともありがち。かといって画像をいちいち加工するのも面倒……というわけで、DOM操作によってテキストを隠す拡張を作りました。 GitHub - motemen/webextension-obfuscate-texts 2022-07-20 追記: Chrome Web Store に出ました Obfuscate texts - Chrome ウェブストア Manifest V3 で作ったせいでほかのブラウザは未対応。 スクリーンキャスト Chrome extension: Obfuscate texts - YouTube ページ内の要素を選択し、「Obfuscate」することで▗▝▌▏▇
もし、上の対応方針で頑張ることを決めた場合「文字数制限」との兼ね合いが発生します。 もし20文字制限のInputFieldに対して「🏴🏴🏴」という文字が入力された時にあなたのアプリはどうなっていてほしいですか? 絵文字合字 👨👩👧👧 はあなたのUIではどう表示されていて欲しいですか?また、何文字と判定されていて欲しいですか? 👩❤️👩はZero Width Joinerを使った合字です。どう表示されていて欲しいですか?また、何文字と判定されていて欲しいですか? アラビア文字 右から左に表示されるInputFieldはあなたのUIの中ではどう見えていて欲しいですか? ﷽ ﷽は「慈悲あまねく慈愛深きアッラーの御名において」という一文字です。 もし20文字制限のInputFieldに対して「﷽」と
Python がテキストファイルを開く時のデフォルトエンコーディングがUTF-8でないことは、多くのWindowsユーザー、特にプログラミング初心者にとって障害になっています。 UnicodeDecodeError で検索すると、多くのWindowsユーザーが問題に遭遇しているのがわかります。 https://qiita.com/Yuu94/items/9ffdfcb2c26d6b33792e https://www.mikan-partners.com/archives/3212 https://teratail.com/questions/268749 https://github.com/neovim/pynvim/issues/443 https://www.coder.work/article/1284080 https://teratail.com/questions/2713
法務省トップ 検索条件入力 文字検索 ←利用の前に必ず「使い方」を御確認下さい。 検索条件を指定して[検索]ボタンを押して下さい。 読み AND検索 入力したキーワードのすべてを含む語を検索します OR検索 入力したキーワードのいずれかを含む語を検索します 画数 画 ( 範囲: 画 ) 部首 部首選択1 (クリア) 部首選択2 (クリア) 部首選択3 (クリア) 子の名に 使える漢字 人名用漢字 常用漢字 JIS水準 文字コードを入力する場合は、その他の検索条件は指定できません。 文字コード 戸籍統一文字番号 UNICODE シフトJIS (C)Copyright Ministry of Justice
こんにちは、晴れて2020新卒になったmipsparcです。最近は趣味の鉄道技術系同人誌の新版が出来上がって喜んでいます。 本記事では、入力値には必ずと言っていいほど混入する不必要な制御文字への対処方法をご紹介します。ユーザーに文字列を入力してもらうことのあるすべてのサービスで活用できる話かと思います。 不要な制御文字が入ることで生じる問題 前提として、この記事は制御文字類が必ずしも邪魔と言いたいわけではありません。 制御文字は多言語対応(特に右から左方向に記述する言語)などで重要なときもありますが、今回は問題が発生しうるケースのお話をします。 「腐向け」 「メリークリスマス」 「ゾンビ」 なんの変哲もない3つのイラストタグですが、どれも不可視の制御文字が混入しています。 $ php -r "var_dump(json_encode('腐向け'));" string(26) ""\u2
初めまして、2019年8月にヤフーのデータプラットフォームチームのインターンシップに参加した山添です。今回はインターンで検証を行ったカラムナフォーマットにおけるエンコーディング方式について紹介します。本ブログでは、特に数値型のエンコーディング方式について、データ圧縮率への効用を確認します。 カラムナフォーマットとは 昨今のデータ社会では、ログデータや購買データ、位置情報データなどさまざまなデータがものすごいスピードで生み出されています。企業ではそのような大規模なデータを蓄えておく必要があります。 私たち学生の間で最も親しみのあるファイルフォーマットは、JSON や CSV などのテキストフォーマットだと思います。これらのフォーマットは、データ保存時にスキーマを必要としない、人間からの可視性が高いなどの利点がありますが、データの圧縮効率が低いことや、処理性能の低さなどのデメリットもあります。
目次 ハイフンに似た文字参考ソースコードを読んでいたら、既存処理にとある文字列変換処理があった。 例 (ソースはイメージです) const convert = (arg) => { return arg.split('ー').join('‐'); }; いざテストをしようと思って、「—」を入力したら期待値が出なかった。 なぜならば、この処理は「ー(全角長音)」を「‐(全角ハイフン)」に変換しているので、「—(全角ダッシュ)」はスルーされるからだ。 ハイフンに似た文字 気になったので色々調べたら、少なくとも以下の文字があることがわかった。 -(全角ハイフンマイナス) -(半角ハイフンマイナス) ‐(全角ハイフン) −(全角マイナス) ‒(フィギュアダッシュ) —(全角ダッシュ(emダッシュ)) –(二分ダッシュ(enダッシュ)) ―(ホリゾンタルバー) ー(全角長音) ー(半角長音) ─(罫
最近 ratatui という crate に Small String Optimization を利用した最適化を入れたので,その話を書きます. 目次 Small String Optimization (SSO) とは(SSO を既に知っている人は読み飛ばして大丈夫です) Rust で SSO を適用した文字列型を提供する crate 比較 SSO を利用して ratatui のメモリ効率と実行効率を最適化した話 compact_str crate の実装の最適化の話 インラインストレージに24バイト全てを使える理由 隙間最適化のための工夫 説明を簡潔にするため,特に断りが無い場合 64bit アーキテクチャを前提とします. Small String Optimization (SSO) とは Rust の可変長文字列型 String は文字列バッファへのポインタ,文字列の長さ,バッフ
Unicodeの異体字セレクター(variation selectors)を使い、ユニコード文字列内に隠し情報を埋め込む方法です。 異体字セレクターとは 異体字セレクターは、文字の字体を詳細に指定するモディファイアのようなもの 異体字セレクターは16種類のコードポイントがある(FE00~FE0F) 仕組みの概要 隠したい文字列(hidden)を文字単位にバラす (例: js → j, s) 文字ごとに16進数に変換する (例: j → 6A) その16進数をひと桁ずつ異体字セレクターのコードポイントにマッピングする (例: 6→FE06, A → FE0A) 異体字セレクターの配列をひとつの文字列にまとめなおす 最後にそれを埋め込み先の文字列(body)に混ぜ込んで隠す。 よくあるユニコードステガノグラフィーとの違い ゼロ幅文字を使ったステガノグラフィー 次のようなゼロ幅空白文字を用いたス
拙著『[改訂新版] プログラマのための文字コード技術入門』(技術評論社,2018)についての感想で,初版にAppendixとして入っていたSKKとEmacsによるJIS X 0213対応の話が無くなっていることを惜しんでくれているものがありました。 これは初版執筆時に著者(私だ)がEmacsとSKKを使ってEUC-JIS-2004のプレーンテキストとして原稿を書いていたことを紹介し,当時の一般的な日本語入力環境が抱えていた問題点をこれによって解消できることを説明したものです。 当時の日本語入力環境というのは,おおまかにいえばJIS X 0208の第1・第2水準漢字に制約されており,それ以外の文字は入力できないか,できたとしても単漢字変換や文字パレットのような使いにくい方式によるしかないというものでした。そういう状況を改善し,現代日本で使われている文字は第1・第2水準漢字に限らず,分け隔てな
本記事は 【Advent Calendar 2023】 17日目の記事です。 🎄 16日目 ▶▶ 本記事 ▶▶ 18日目 🎅 こんにちは。 2年目の草野です。年末が近づいてきましたね。 今回はAdvent Calendarの執筆に参加ということで、2023年の業務の中で印象深かったUnicodeについて少しお話したいと思います。 そもそもUnicodeとは サロゲートペア文字 突然ですが…… 異体字セレクタとの出会い 異体字セレクタって? 全く同じ意味を持つ文字、異体字 異体字セレクタの誕生 具体例 結局私の名字はどう書くの? おわりに そもそもUnicodeとは みなさんご存じの通り、Unicodeは文字を表すための国際的な標準規格の1つです。 一般的には [U+91CE] のように、16進数で表記されます。 常用文字は [U+0000] ~ [U+FFFF] の16進数4文字=2バ
ARCHIVE THIS SECTION CONTAINS EMOJI DATA FROM PREVIOUS YEARS The Most Frequent Emoji — 2019 How does the Unicode Consortium choose which new emoji to add to the Unicode Standard? One important factor is data about how frequently current emoji are used. Patterns of usage help to inform decisions about future emoji. The Consortium has been working to assemble information about how frequently various
既存アプリやライブラリへの影響が大きく、この変更に対してネガティブなフィードバックも多かったためリバートされました。 github.com 概要 表題の通り、Rails v7.1.0 で APOSTROPHE (U+0027) が SINGLE QUOTATION MARK (U+2019) に変わります。 github.com 既存のRailsアプリをアップグレードする際に影響が大きそうなので、記事を書きました。 影響範囲 テストでエラーメッセージを検証していた場合、Rails v7.1.0 のアップグレードによって検証に失敗するようになります。 Expected: "can't be blank" Actual: "can’t be blank" 今回の変更を知らない場合、このテストのエラーメッセージだけで ' と ’ の違いを見分けるのは厳しそう。 SINGLE QUOTATION
Windows 10の初期設定を行う際、何らかのテキストエディタをインストールして、「.TXT」や「.LOG」といった拡張子に対する関連付けを「メモ帳」アプリから変更している人も多いことだろう。そのため、Windows 10に標準装備されている「メモ帳」アプリをほとんど使ったことがないという人もいるかもしれない。 ただ、好みのテキストエディタが使えない環境の場合など、「メモ帳」アプリの使い方を覚えておくと便利だ。そこで、本Tech TIPSでは「メモ帳」アプリの少し便利な使い方を紹介する。 時刻と日付を入力する 現在の時刻と日付を入力したい場合、「メモ帳」アプリで[編集]メニューの[日付と時刻]を選択すればよい([F5]キーを押してもよい)。すると、その時点での時刻と日付が現在のカーソル位置に入力される([例]13:34 2020/02/12)。 また、文書ファイルの1行目に「.LOG」と
物事の順位付けをするとき、松竹梅という雅な表現がよく使われる。自分もよく使う。 blog.3qe.us コンピュータにとってもそうなのだろうか?そう考えた私は実際にソートしてみることにした。 % echo $LANG ja_JP.UTF-8 % sort --version sort (GNU coreutils) 9.3 Copyright (C) 2023 Free Software Foundation, Inc. ライセンス GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permit
ima1zumi ESM, inc. Ruby on Rails engineer irb, reline, rurema contributor Learning about character codes out of curiosity 2 [1] 1. Japanese Ruby Reference Manual: https://docs.ruby- lang.org/ja/latest/doc/index.html Reason for talking The bug fix in reline Bug Fix※ ※Some terminals will not display correctly. 😢 Because ZWJ(U+200D) is sometimes not supported. 1. https://github.com/ruby/reline/pull/
本日のアップデートで ALB および CLB が HTTP Desync 緩和モードをサポートするようになりました。 Application and Classic Load Balancers are adding defense in depth with the introduction of Desync Mitigation Mode 何がうれしいのか HTTP Desync 攻撃とは このアップデートの何が嬉しいのかを理解するには、まず HTTP Desync 攻撃 について知る必要があります。 近年では Web アプリケーションでは CDN やプロキシをフロントエンドに配置し、バックエンドのサーバーにリクエストを転送するような構成を一般的にとられているかと思います。まず大前提として HTTP Desync 攻撃は、このようなフロントエンド、バックエンド構成において成り立ちます
先日以下の記事を書きました。 ここでUTF-8の最初の文字かどうかの判定を以下の自作した関数で実装していました。 const ( t1 = 0b00000000 tx = 0b10000000 t2 = 0b00000110 t3 = 0b00001110 t4 = 0b00011110 ) func isUTF8LeadByte(tmp byte) bool { if tmp&tx == t1 { return true } tmp >>= 3 if tmp == t4 { return true } tmp >>= 1 if tmp == t3 { return true } tmp >>= 1 if tmp == t2 { return true } return false }
こんにちは!サイボウズ株式会社フロントエンドエンジニアの おぐえもん(@oguemon_com) です。 先日開催された社内イベントCybozu Frontend Day 2023にて私が発表した絵文字の仕様策定に関する紹介を、当時の時間的制約から泣く泣く割愛した内容を加えた上で文章の形にまとめました。 また、情報は全て2023年8月1日現在のものです。 はじめに 今や「ぴえん🥺」や「おじさん構文」などの様々な形で老若男女を問わず私たちの生活・文化に深く根ざしている絵文字。ところで、そんな絵文字たちにも生みの親がいることを意識したことがありますか? 例えばこちらの絵文字にも生みの親がいます。 🥱は、Jay Petersさんが2017年9月に提案しました。 Jay Petersさんの職業はニュース編集者。決してデザイン事務所やGAFAなどのエンジニア・デザイナーではありません。 このよう
はじめに JavaScriptにて文字数をカウントする方法に関する記事をいくつか目にする機会があり、今回実際に記事を参考に調べてみました。 簡単そうに見えて意外と難しいです。 String.length Googleなどで「JavaScript 文字数 カウント」とかで検索すると真っ先に出る方法です。 MDN公式ではString.lengthに関して以下のように説明されています。 length プロパティは String オブジェクトの文字列長を UTF-16 コードユニットの数で表します。 length は、 string インスタンスの読み取り専用データプロパティです。 UTF-16 コードユニット ざっくりと説明するならUnicodeで割り当てられた番号をUTF-16 という文字コード方式で割り当てられた各文字に対応するIDを指します。 難しい単語がいくつか出てきているので1つずつか
こんにちは!アルダグラムのKANNAの開発お手伝いをさせて頂いているoubakiouです。 本記事は株式会社アルダグラム Advent Calendar 2023 6日目の記事です。 この記事を読めば以下のTypeScript(JavaScript)のテストコードがなぜこけるのかが分かったような気持ちになります。また最後に「細かい理屈はいいからいけてる感じに動くlengthやtruncateがほしい!」という方向けの付録もついています。 it('surrogate pair', () => { // 2 expect('😊'.length).toEqual(1) }) it('variation selectors', () => { // 4 expect('👍🏿'.length).toEqual(1) }) it('combining character', () => { //
世界中の文字を収集して文字コードを付与する規格「Unicode」では、バージョンアップごとに次々と絵文字が追加されたり、画像じゃなく文字で出力するためコピー&ペーストが可能なカレンダーを作成できたりと、文字を使ったさまざまな表現を使うことができます。そのようなUnicodeの「目に見えない文字」はどういった種類があってどのように利用できるのかをまとめた「Invisible Characters」では、目に見えないUnicode文字をコピペして使えたり、テキスト内に含まれる目に見えないUnicode文字を検出したりすることができます。 Unicode characters you can not see https://invisible-characters.com/ 人気のオンラインマルチプレイヤーゲーム「Among Us」では、プレイヤー名を設定する際に空白のままにしたり、空白スペース
UTF8文字列生成を最適化するライブラリ Utf8StringInterpolation を公開しました 2023-10-13 Utf8StringInterpolationという新しいライブラリを公開しました!UTF8文字列の生成と書き込みに特化していて、動作をカスタマイズした文字列補間式によるC#コンパイラの機能を活用した生成と、StringBuilder的な連続的な書き込みの両方をサポートします。 Cysharp/Utf8StringInterpolation 基本的な流れはこんな感じで、Stringを生成するのと同じように、UTF8を生成/書き込みできます。 using Utf8StringInterpolation; // Create UTF8 encoded string directly(without encoding). byte[] utf8 = Utf8String
Text Rendering Hates You Rendering text, how hard could it be? As it turns out, incredibly hard! To my knowledge, literally no system renders text “perfectly”. It’s all best-effort, although some efforts are more important than others. I’ll be assuming you want to support arbitrary text provided by users with custom fonts, colors, and styles with line-wrapping and support for text-selection. Basic
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く