タグ

2009年9月22日のブックマーク (5件)

  • #PHP でもutf8_decodeは使ってはならない

    (Last Updated On: 2009年9月22日)Twitterで書いた方が良いようなエントリですが、たまには良いでしょう。 #perl – utf8::decode()ではなくEncode::decode_utf8()を使うべき理由 という記事がありました。PHPにも似た関数、utf8_decodeがあります。PHPでも使ってはなりません。日人というよりマルチバイト圏で使っている人はほとんどいないはずです。理由はコードを見れば一目瞭然です。 /* All the encoding functions are set to NULL right now, since all * the encoding is currently done internally by expat/xmltok. */ xml_encoding xml_encodings[] = { { "ISO-

    #PHP でもutf8_decodeは使ってはならない
    ockeghem
    ockeghem 2009/09/22
    『マルチバイト圏で使っている人はほとんどいないはずです。理由はコードを見れば一目瞭然』<コードを見るまでもなく、マニュアルによると『シングルバイトのISO-8859-1に変換する』関数なので使う機会は少ないでしょう
  • ぜひ押さえておきたいコンピューターサイエンスの教科書

    僕はバイオインフォマティクスという生物と情報の融合分野で研究を行っています。東大の理学部情報科学科にいた頃は同僚のマニアックな知識に驚かされたものですが、そのような計算機専門の世界から一歩外に出ると、それが非常に希有な環境だったことに気が付きました。外の世界では、メモリとディスクの違いから、オートマトン、計算量の概念など、コンピューターサイエンスの基礎知識はあまり知られていませんでした。コンピューターサイエンスを学び始めたばかりの生物系の人と話をしているうちに、僕が学部時代に受けた教育のうち、彼らに欠けている知識についても具体的にわかるようになってきました。 バイオインフォマティクスに限らず、今後コンピュータを専門としていない人がコンピューターサイエンスについて学ぶ機会はますます多くなると思われます。そこで、これからコンピューターサイエンスを学ぼうとする人の手助けとなるように、基礎となる参

    ockeghem
    ockeghem 2009/09/22
    体系的に情報科学を学んでいないので本はずいぶん買いました。Introduction to Algorithmsはずいぶん前に買って、MITの学部学生の教科書と知って驚愕した記憶が。ドラゴンブックはCabezon作る時にずいぶんお世話になりました
  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.25 高精度計算

    MySQL では、精度計算がサポートされます: 数値の処理によって非常に正確な結果が得られ、無効な値をより詳細に制御できます。 高精度計算は、次の 2 つの機能に基づいています。 サーバーが無効なデータの受け入れまたは拒否に関してどの程度厳密かを制御する SQL モード。 固定小数点数演算のための MySQL ライブラリ。 正確な計算: 厳密値数値の場合、計算に浮動小数点エラーは導入されません。 代わりに、正確な精度が使用されます。 たとえば、MySQL は .0001 などの数値を近似値ではなく厳密値として処理し、それを 10,000 回合計すると 1 に「近い」だけの値ではなく、正確に 1 の結果が生成されます。 適切に定義された丸め動作: 厳密値数値の場合、ROUND() の結果は、ベースとなる C ライブラリの動作方法などの環境要因ではなく、その引数に依存します。 プラットフォーム

  • MySQL :: MySQL 8.0 リファレンスマニュアル :: 12.3 式評価での型変換

    演算子が別の型のオペランドとともに使用されると、オペランドの互換性を保つために型変換が発生します。 一部の変換は暗黙的に発生します。 たとえば、MySQL は必要に応じて文字列を数値に自動的に変換し、その逆も行います。 mysql> SELECT 1+'1'; -> 2 mysql> SELECT CONCAT(2,' test'); -> '2 test' また、CAST() 関数を明示的に使用して、数字を文字列に変換することもできます。 CONCAT() 関数では文字列の引数が要求されるため、使用すると暗黙的に変換が発生します。 mysql> SELECT 38.8, CAST(38.8 AS CHAR); -> 38.8, '38.8' mysql> SELECT 38.8, CONCAT(38.8); -> 38.8, '38.8' 文字セットの数字から文字列への暗黙的な変換につい

    ockeghem
    ockeghem 2009/09/22
    浮動小数点数 ( または浮動小数点数に変換される値 ) を使用する比較は、それらの数字は不正確であるため、概算になります。そのため、一貫性のない結果が導き出される場合があります :
  • 型変換

    ockeghem
    ockeghem 2009/09/22
    [for:sql][for:postgresql]