タグ

2021年3月17日のブックマーク (8件)

  • 文字コード地獄秘話 第2話:聖母マリアよ、二人を何故別々に? | ALBERT Engineer Blog

    はじめに 二人を最初から一つにしておけば、何も問題など起こらなかったのだ。 一つのものを二つに分けたその時から、長い物語が始まる。 おや?また会いましたね。どうも、文字コードおじさんです。 もう半年近くも前になりますが、前回の投稿はだいぶ反響があったようで驚いております。ありがとうございます。 今回も文字コードネタですが、Unicodeにおける結合文字列を取り上げてみようと思います。 高度に発達した文字コードは地獄と見分けがつかない 次の画像はTwitterの投稿フォームですが、おかしな点があります。わかりますか? そうです。4文字しか入力していないはずなのに 5文字分とカウント されていますね。おかしいと思いませんか?あなた? 改行とかスペース入れてるんじゃねーだろうな?とか言わないで下さいね? さらに次の画像を見てみてください。 こちらは4文字とカウントされていますね。先のものとは一体

    文字コード地獄秘話 第2話:聖母マリアよ、二人を何故別々に? | ALBERT Engineer Blog
  • 普通のUnicodeはNFCなのか – ものかの

    「普通のUnicodeはNFC」というおかしな風説が流布されています。文字っ子にしてみれば「なに言ってんの?」となるのですが、この風説のどこがおかしいのかを説明しようとすると途方に暮れます。もうどこから突っ込んでいいのか分からない。 一番難しいのは「普通のUnicode」自体が何を指しているのか分からないことです。Unicodeに「普通」とか「普通じゃない」なんて区別はありません。でも区別してそう言っている。どこで区別しているんだろう? zrbabblerさんがブログ記事「“普通のユニコード”は NFC なのか」を公開されました。ここでは「普通のUnicode」を「レガシーエンコーディングから変換して得られたUnicode文字列」としています。実証的な説明をするにあたってこれしかないというくらいに秀逸ですし、説得力があります。 ただ、「普通のUnicode」と言っている人たちは、そういう意

    普通のUnicodeはNFCなのか – ものかの
  • ヒープに関する話題 - Web/DB プログラミング徹底解説

    VirtualAlloc 系ではページ単位でメモリを操作する。このため(アクセス権の設定の面で)柔軟であるが小さなメモリブロックの割り当てに向かない。一 方 HeapAlloc 系では、予めある程度 の仮想メモリ 領域を予約しておき、プログラムから要求がされ次第、その予約された領域からメモリを切り出してきてメモリブロックを確保する。小さなメモリブロックを多 数割り当てるにはこちらの方法のほうが効率が良い。Windows のヒープマネージャはこのような動作を実現できるように、プログラムと仮想メモリマネージャの間に入りメモリ割り当てを高速に行う。 DEPWindows XP SP2 から HeapAlloc によって割り当てられるメモリ (ページ) の属性が変わり、割り当てられるメモリブロックでは実行可能ではなくなった。もし実行しようとするとアクセス違反が発生する。このテクノロジを Data

    ヒープに関する話題 - Web/DB プログラミング徹底解説
  • APIより効率的なCランタイムルーチンを活用する方法がわかりたい

    戻る MS-DOSやUNIXでは、Cランタイムルーチンを介してシステムコールを実行して いました。 Windowsプログラミングでは Win16, Win32 API がシステムコールとなっています。 このため、以前と比較してCランタイムルーチンは日陰の存在になっていますが、 CランタイムとAPIを必要に応じて使い分けることにより、パフォーマンスの向上 などに役立てることができます。 そこで、ここでは、Cランタイムルーチンの有効な活用法を考えてみます。 10-1 Cランタイムルーチンとは ○Cランタイムルーチンの用途 いわゆるC言語の関数と呼ばれるもの、例えば printf や scanf など は、Cランタイムルーチンに含まれます。 これらの関数は、OSや言語のメーカなどによってもサポートが異なり、また、Windows の中心的なAPIとなっているWin32 API は、Win16 AP

  • Delphi 2009 と Unicode : 番外編 (結合文字列)

  • Java, MySQLをKotlin, PostgreSQLに移行した - k0kubun's blog

    7年前にGitHub Rankingというサービスを作り、APIを叩きすぎてGitHubからの風当たりが強くなって*1からはデータの更新を止めていたが、KubernetesGraphQLの時みたいに技術を試す砂場用に惰性で動かし続けていた。 Issueの機能要望対応が段々面倒になってきて、サーバー代節約のために潰すかと考えていたのだけど、毎日1000PVくらいあるので試しにGoogle Adsenseを設置してみたところ1日平均 $1 くらいは入ってて黒字になりそうだったので、ちょっとメンテしやすくしてデータの更新再開するかー、ということで今回いろいろ綺麗にした。 DB: MySQL → PostgreSQL なぜPostgreSQLにしたのか 個人的には多くの用途ではMySQLとPostgreSQLどっちでもいいと思っているんだけど、今所属してるチームがメンテしてるサービスのDBの多く

    Java, MySQLをKotlin, PostgreSQLに移行した - k0kubun's blog
  • リモートの Linux サーバを開発環境にする

    これまで Macbook Pro を開発環境としていたんだけど、価格は高いし Docker for Mac は重いしでいいことないなということで Linux の開発環境に移ることにした。前職の最初の数年はすべて VM(当初は jail)にログインして開発していたのでその頃に戻った感じ。ただ GUImacOS が何かと楽なので Intel NUC を購入して自宅に置いてリモートでログインして使っている。Core i7、メモリ 64GB で10万ちょいと安いのにめちゃくちゃ快適でさいこう。 ここからは備忘録としてリモートを開発環境とするうえで実施した作業を残す。あと作ったものもあるので宣伝。 外部からログインしたい自宅以外からも使うだろうということで(最近京都からリモートで働くこともあり)、VPN サービスとして Tailscale を導入した。 Best VPN Service for

    リモートの Linux サーバを開発環境にする
  • 形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta

    JAWS Festa 東海道 2016 の発表スライドです。モデル検査器 Alloy を用いて AWS のリソースをモデル化し、仕様からインフラ設計を自動で生成する流れをお見せします。Read less

    形式手法と AWS のおいしい関係。- モデル検査器 Alloy によるインフラ設計技法 #jawsfesta