並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 43件

新着順 人気順

文字列比較の検索結果1 - 40 件 / 43件

  • OSS 観光名所を貼るスレ - ぽ靴な缶

    これは はてなエンジニアアドベントカレンダー2023 2日目の記事です。 はてなエンジニア Advent Calendar 2023 - Hatena Developer Blog はてなエンジニアのカレンダー | Advent Calendar 2023 - Qiita トップバッターは緊張するけど、順番が回ってくるまで長い間ソワソワするのも嫌、という理由で例年2日目を狙うようにしている id:pokutuna です。今年も成功しました。 観光名所とは 目を閉じれば思い出す、あのコード... あの Issue... あなたが Web 系のエンジニアであれ、趣味で開発している方であれ、必要に応じてライブラリやフレームワークのコードを読むのはよくあることでしょう。公開の場で開発されているソフトウェアは、ソースコードだけでなく、開発コミュニティでの議論やバグ報告なども見ることができます。 リポ

      OSS 観光名所を貼るスレ - ぽ靴な缶
    • 【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita

      結果は順にtrue、true、falseです。 これがPHP7までの非厳密な比較(等価)演算子だったわけですが、まあおかしいよねってことで、この挙動がPHP8.0で変更になることになりました。 よもや今さら基本中の基本である比較演算子の動作を弄ってくるとは思わなかったぞ。 以下はSaner string to number comparisonsの日本語訳です。 PHP RFC: Saner string to number comparisons Introduction ==やその他の非厳密な比較演算子を用いた文字列と数値の比較は、現在は、文字列を数値にキャストし、その後整数か浮動小数の比較を行っています。 この結果、多数の不可解な結果が得られますが、中でも注目すべきは0 == "foobar"がtrueになることです。 このRFCでは、文字列が実際に数値型文字列である場合にのみ数値型

        【PHP8.0】非厳密な比較演算子`==`の挙動が今さら変更になる - Qiita
      • はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog

        この記事は、はてなエンジニア Advent Calendar 2023の2024年1月17日の記事です。 はてなエンジニア Advent Calendar 2023 - Hatena Developer Blog id:hagihala です。先日、はてなブログの DB を RDS for MySQL 5.7 から 8.0 へアップグレードしたので、工夫した点などを共有します。 Aurora MySQL 3.x にしなかった理由 MySQL 5.7 -> 8.0 で対応した変更点 character set や collation のデフォルトが変更される explicit_defaults_for_timestamp がデフォルトで有効になる SQL mode の変更 デフォルトの認証プラグインが caching_sha2_password になり、 mysql_native_passw

          はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog
        • 本当に役立つFAQ検索システムを目指して - Nota TechConf

          Nota Tech Conf 2021 Spring 3日目の発表資料です 2021/3/11 こんばんは daiizdaiiz.iconです Helpfeelの検索技術の話をします 開発、運用チーム プロダクトオーナー daiiz.icon プロジェクトマネージャー akix.icon Webディレクター akix.icon など テクニカルライター カスタマーサクセス エンジニア、デザイナー rakusai.iconakix.icondaiiz.iconshokai.icontakeru.iconTiro.icon 予測検索 Helpfeel CTO /masui/増井俊之.iconの展開ヘルプをベースとするFAQ検索システム PayPayフリマ様 FAQ テキパキと高速に検索できている クエリの表現に合わせて柔軟に結果が提示される Agenda いかにして探すか 1. 入力に対して遅

            本当に役立つFAQ検索システムを目指して - Nota TechConf
          • フルスクラッチして理解するOpenID Connect (1) 認可エンドポイント編 - エムスリーテックブログ

            こんにちは。デジカルチームの末永(asmsuechan)です。 この記事では、OpenID Connect の ID Provider を標準ライブラリ縛りでフルスクラッチすることで OpenID Connect の仕様を理解することを目指します。実装言語は TypeScript です。 記事のボリュームを減らすため、OpenID Connect の全ての仕様を網羅した実装はせず、よく使われる一部の仕様のみをピックアップして実装します。この記事は全4回中の第1回となります。 なお、ここで実装する ID Provider は弊社内で使われているものではなく、筆者が趣味として作ったものです。ですので本番環境で使用されることを想定したものではありません。なんなら私は ID Provider を運用する仕事もしておりません。 1 OAuth 2.0 と OpenID Connect 1.1 用語の

              フルスクラッチして理解するOpenID Connect (1) 認可エンドポイント編 - エムスリーテックブログ
            • N予備校開発でのRSpecの書き方指針 - ドワンゴ教育サービス開発者ブログ

              はじめに テストコード一般の考え方 壊れにくいテストを書く 実装した通りに動作することではなく、仕様通りに動作することをテストする テストコードはシンプルにわかりやすく書く 失敗の原因がわかりやすくなるように意識する RSpecの書き方 テストケース名をitの引数で明記する letよりもlet!を使う 通常の変数と同じ方針に基づいてlet!を利用する subjectを使わない 不要なcontextでのネストを避ける matcherを適切に使い分ける factoryのデフォルト値に依存しないテストを書く 参考にしたブログ記事等 付録:RuboCop設定 We are hiring! サムネイル画像 はじめに テストコードを書く習慣も、近年ではかなり一般的なものになってきました。 ドワンゴ教育事業のバックエンドチームでも自発的にテストコードを書く文化は根付いており、実際に計測はしていませんが、

                N予備校開発でのRSpecの書き方指針 - ドワンゴ教育サービス開発者ブログ
              • Apple Silicon 搭載 MacBook Pro 買った日記 - polamjaggy

                Apple Special Event とかいう通販番組を見てたらテンションが高まってしまってうっかり 20 万円くらいの構成のやつを買ってしまったけど、全然後悔してない。 総評 M1 搭載マックのおもちゃ度まじで最高に高い、まともにうごく場面だと早すぎておもしろい、アーキテクチャ変わりすぎてるので細かいところで全く違う動きになってる場所がたくさんあるのもおもしろい、たまに動かないものがあるのもおもしろい— 12/5 #RTF_DJ 配信やりました (@polamjag) November 20, 2020 とりあえず 10 万円 (あるいは 10 万円台) で買えるパソコンのなかではウェブブラウザが世界最強レベルで快適に動くことはわかってて、それだけでも普通に価値ある— 12/5 #RTF_DJ 配信やりました (@polamjag) November 20, 2020 まだ matur

                  Apple Silicon 搭載 MacBook Pro 買った日記 - polamjaggy
                • WindowsイベントログをPowerShellを用いて扱う (1/2)

                  前回(「Windowsで発生したことを確認できるWindowsイベントログを解説する」)、Windows Terminalの機能確定版が出た場合はそちらを紹介予定と記したが、12月17日にWindows Terminalの1912版が出るかと思いきや、17日になって12月31日に延期された。クリスマス休暇に入っちゃったのかと思ったが、いまだに開発は進行しているようである。まあ開発には計画変更が付きものなので、ゆっくりと待つことにしよう。今年はまだ1週間以上残されている。 githubのWindows Terminalの進行状況を示すページ。12月版のWindows Terminal(Terminal-1912)は、いまのところ50%の完成率。いまだ作業は進行しているようだ さて、今回は前回の続きで、Windowsのイベントログを扱う。PowerShellを使って、実際に記録されているログか

                    WindowsイベントログをPowerShellを用いて扱う (1/2)
                  • Big Sky :: Go で型がインタフェースを実装している事を保証するには

                    « C++ な WebServer 実装 crow と TensorFlow Lite を使って Object Detection の API サーバを書いた。 | Main | Go で大文字小文字無視の文字列比較ベンチマーク » Go は Ducktype をサポートしたプログラミング言語です。interface で宣言されたメソッドを型に強制したり問い合わせたり出来ます。メソッドの実装を保証する為に以下の様に struct に interface を embedded する事も出来ます。 package main type I interface { doSomething() } type foo struct { I } func (f *foo) doSomething() { } func callSomething(i I) { i.doSomething() } func

                      Big Sky :: Go で型がインタフェースを実装している事を保証するには
                    • Black Hat USA 2019: 今注目すべき Web セキュリティ関連トピックの解説 - Flatt Security Blog

                      はじめに BlackHat USA 2019 株式会社 Flatt Security でセキュリティエンジニアをしている米内(@lmt_swallow)です。私は 2019/8/3 から 2019/8/8 で開催された Black Hat USA 2019 と、続いて開催された DEFCON 27 に参加してきました。本記事では、特に Black Hat USA 2019 で印象的だった以下の 4 つの発表について、簡単な紹介と解説をしたいと思います。 HTTP Desync Attacks: Smashing into the Cell Next Door API-Induced SSRF: How Apple Pay Scattered Vulnerabilities Across the Web Denial of Service with a Fistful of Packets:

                        Black Hat USA 2019: 今注目すべき Web セキュリティ関連トピックの解説 - Flatt Security Blog
                      • 保険証認証のためのデータ交換基準に関する研究(総括研究報告書) | 厚生労働科学研究成果データベース

                        保険情報の誤りや不正使用は、全国で年間600万件にも上っており、その処理のための経費は1000億円を越えると推定されている。これは、クレジットカードの様な認証システムを導入すれば解決することである。本研究は、保険者の持つ被保険者データのデータベースと医療機関等をインターネットを介して結び、保険証の有効性を即時的に認証を行うシステムの開発である。しかし、健康保険情報はその安全管理に十分注意を払う必要があり、慎重な準備と技術的な検討が必要である。本研究は、実用可能なシステムの要件を整理して、システムの設計を行い、システムの動作検証を行う。 本研究は主として次の4ステップについて行った。 1. センターと全保険者との接続を想定した方式の確立。 認証センターと保険者のデータを結ぶ方法として、保険者から提供された被保険者等に関する情報をセンターのDBに集録して、これを認証に使う「事前登録型認証」と、

                        • PHP 8 の新機能を使ってコードを書いた雑感 - Shin x Blog

                          PHP カンファレンス 2020 の登壇のために PHP 8 で JSON パーサを書いてみました。 https://github.com/shin1x1/php8-toy-json-parser いくつか PHP 8 の新機能を使ったのでその雑感です。 Constructor Property Promotion Named arguments Union Types Match expression Attribute さいごに Constructor Property Promotion https://www.php.net/releases/8.0/en.php#constructor-property-promotion TypeScript のようにスッキリ書けるのが良いです。 コンストラクタ仮引数にアクセス修飾子を足すだけなので、慣れないと一瞬戸惑うかもしれません。以前 T

                            PHP 8 の新機能を使ってコードを書いた雑感 - Shin x Blog
                          • GitHub Copilot にいいコードを書いてもらう方法 - GMOインターネットグループ グループ研究開発本部(次世代システム研究室)

                            D.M.です。 AI とともにプログラミングをしてみた体験記です。 モチベーション 2022年11月、 ChatGPT が登場したことにより、今の学生は AI にレポートを書かせるというような話が普通に出るご時世になりました。 ChatGPT は例えばプログラミングのお題を投げると AI がかなり高精度なプログラムを書いてレスポンスしてくれたりします。この技術は将来的に Google 検索を脅かす存在になるのではというほどの注目を集めています。 ペアプログラマー Github Copilot よりプログラミングに特化した AI サービスとして、 GitHub Copilot があります(ギットハブ コパイロットと読む)。 2022年6月に正式リリースされています。 このツールには以下のような特徴があります。 ・ソースの流れやコメントに合わせて次に書くべきコードをサジェストしてくれる。 ・V

                              GitHub Copilot にいいコードを書いてもらう方法 - GMOインターネットグループ グループ研究開発本部(次世代システム研究室)
                            • とあるプロジェクトにGraphQLを導入してみた話|NISSAN NAKAME BLOG | 日産ナカメブログ

                              こんにちは。日産のルークスルークです。 バックエンド&Webチームで、PoC (Proof of Concept) プロジェクトのバックエンド(Go言語)を担当しています。 この技術noteでは、GraphQLを使ったことのない私のチームが、PoCプロジェクトで初めてGraphQLを採用してみた経験、その中でエンジニア個人として面白かったこと、良かったこと、大変だったことなどを話していきたいと思います。 GraphQLとは API向けに作られたクエリ言語Webのサーバとクライアント間のやり取りとして、RESTがよく用いられると思いますが、GraphQLはそのRESTの代わりとなるものです。 1つのエンドポイントに対してquery(データ取得リクエスト)やmutation(データ変更リクエスト)を投げて、知りたい情報の取得や、データの変更ができる仕組みです。 自分の所有している車の情報を取得

                                とあるプロジェクトにGraphQLを導入してみた話|NISSAN NAKAME BLOG | 日産ナカメブログ
                              • PostgreSQLのRow Level Securityを使ってマルチテナントデータを安全に扱う - HRBrain Blog

                                こんにちは、サーバーサイドエンジニアーのユキチです。 SaaSの開発を行う上では複数の企業様のデータを扱うことになります。 そういったマルチテナントのデータ設計を行う上で、弊社ではPostgreSQLのRow Level Securityという機能を使って実装しました。 今回はPostgreSQLのRow Level Security(以下RLS)という機能を使ってマルチテナントのデータ操作を安全に扱う方法を紹介していきたいと思います。 マルチテナントデータベース設計 主に3パターンの設計手法が考えられます。 Multi Tenants in 1 Database:複数企業のデータを一つのデータベースで管理 1 Tenant in 1 Database:テナントごとにデータベースを分けて管理。物理的なインスタンスは同じ。 1 Tenant in 1 Instance:テナントごとにデータベ

                                  PostgreSQLのRow Level Securityを使ってマルチテナントデータを安全に扱う - HRBrain Blog
                                • リダイレクト URI の前方一致 - Qiita

                                  はじめに OAuth 2.0 の認可レスポンスは、登録済みの『リダイレクト URI』宛に返却されます。詳細は『OAuth 2.0 の認可レスポンスとリダイレクトに関する説明』を参照してください。 複数のリダイレクト URI が登録されている場合、どのリダイレクト URI に認可レスポンスを返して欲しいかを、認可リクエスト時に指定する必要があります。この目的のために、redirect_uri リクエストパラメーターが用いられます。 認可サーバーは、redirect_uri リクエストパラメーターで指定された URI が、事前登録されたリダイレクト URI のいずれかに一致するかどうかを確認します。この「一致」について、「前方一致のサポートは可能か?」との質問を受けることが稀にあるので、見解を述べさせていただこうと思います。 OpenID Connect のケース ID トークンを発行するなど

                                    リダイレクト URI の前方一致 - Qiita
                                  • Big Sky :: Go で大文字小文字無視の文字列比較ベンチマーク

                                    Go の標準パッケージのコードには稀に意図的にそうなっているのか分からない、速度に寄与するのかどうか確かめたくなる物が入っている事があります。 先日も見つけました。まだマージされてないですが、os.Mkdir に NUL という文字列を渡した時にファーストパスでエラーを返す変更です。 186139: os: return an error when the argument of Mkdir on Windows is os.DevNull https://go-review.googlesource.com/c/go/+/186139/5/src/os/file.go#563 ここで出てくる以下のコード。 func isDevNull(name string) bool if len(name) != 3 { return false } if name[0]|0x20 != 'n' {

                                      Big Sky :: Go で大文字小文字無視の文字列比較ベンチマーク
                                    • 「PHP 8」が正式リリース、JITやユニオン型など多数の新機能

                                      ウェブサイトなどで利用されているオープンソースのプログラミング言語・PHPのメジャーアップデート「PHP 8.0.0」がリリースされました。コードの実行時間短縮が見込める実行時コンパイラ(JIT)や複数の型に対応できるユニオン型など、多数の新機能が実装されています。 PHP: PHP 8.0.0 Release Announcement https://www.php.net/releases/8.0/en.php ◆JIT PHP 8で新しく搭載された機能のひとつが、、頻繁に実行されるコードをコンパイルしておくことでプログラムの実行速度を向上させるJITです。PHP 8にはトレーシングJITと関数単位のJITの2種類のJITが組み込まれており、トレーシングJITを使った場合のパフォーマンスはJITなしの場合と比較してベンチマークでおよそ3倍、実行時間が長いアプリケーションでおよそ1.5~

                                        「PHP 8」が正式リリース、JITやユニオン型など多数の新機能
                                      • MySQL 8.0 でも utf8mb4_general_ci を使い続けたい僕らは - mita2 database life

                                        このエントリーは MySQL Advent Calendar 2020 の 12/7 のエントリーです。 照合順序(COLLATION)とは 照合順序は文字列の比較やソート順のルールのことです。各キャラクタセットごとに照合順序が定義されています。 -- SHOW COLLATIONS で一覧が見れる mysql> SHOW COLLATIONS; +----------------------------+----------+-----+---------+----------+---------+---------------+ | Collation | Charset | Id | Default | Compiled | Sortlen | Pad_attribute | +----------------------------+----------+-----+-------

                                          MySQL 8.0 でも utf8mb4_general_ci を使い続けたい僕らは - mita2 database life
                                        • 「JS体操」のすゝめ 〜その②〜 - KAYAC engineers' blog

                                          このエントリは【カヤック】面白法人グループ Advent Calendar 2023 の25日目の記事です。 本記事は昨日公開の 「JS体操」のすゝめ 〜その①〜 の解説記事です! まだご覧になっていない方は先にこちらをご覧くださいね!! techblog.kayac.com 1. はじめに 2. 問題(再掲) 3. 考え方 4. ロジックを解く 4.1. 改行が必要なときに改行だけをしてみる 4.2. 固定長の半角スペースを入れてみる 4.3. 半角スペースの数を可変にしてみる 4.4. map() ではなく replace() にしてみる 4.5. 値の文字列中に {、}、[、]、,、: がある場合を考慮する 4.5.1. 文字列内の記号は無視する 4.5.2. 文字列を表す正規表現 4.6. エスケープされたダブルクオーテーションの対応 4.7. エスケープされたバックスラッシュの対

                                            「JS体操」のすゝめ 〜その②〜 - KAYAC engineers' blog
                                          • 音声で脅迫するランサムウェア「Mazeランサムウェア」の内部構造を紐解く | 調査研究/ブログ | 三井物産セキュアディレクション株式会社

                                            7月中旬、Mazeランサムウェアの被害を受けたと思われる日本国内の企業のデータが攻撃者のWebサイトで公開されたことが一部で話題になりました。 Mazeランサムウェアは過去にChaChaランサムウェア(暗号アルゴリズムのChaChaを使用することからの由来)と呼ばれていたランサムウェアの亜種であり、2019年5月に初めて存在が確認され、感染経路としてはこれまでにスパムメールへの添付や脆弱性の利用、ネットワーク侵入などの経路が確認されています。 Mazeランサムウェアを操る攻撃者の大きな特徴は、ランサムウェアによって暗号化を行う前にすでに被害者端末からデータを盗み出しており、身代金支払いの要求に応じない場合はそれらの窃取データを実際に公開するという点です。最近はMaze以外の他のランサムウェアを用いた攻撃においてもこの流れが見られており、ランサムウェア感染と情報流出の2点は切り離せないものと

                                              音声で脅迫するランサムウェア「Mazeランサムウェア」の内部構造を紐解く | 調査研究/ブログ | 三井物産セキュアディレクション株式会社
                                            • gRPCでエラー詳細を渡す方法 - Carpe Diem

                                              概要 以前 christina04.hatenablog.com こちらの記事で、アプリケーション内でのレイヤ間のエラーハンドリングについてまとめました。 ではマイクロサービス間でそのエラーコードを伝播していくのはどうすれば良いのか、というのが今回の主題です。 課題 gRPCはレスポンスコードを持っています。 しかしこれだけでは下記のようなケースをハンドリングできません。 フォームのvalidationエラーを伝える際に、どのフィールドの不備が原因か カード決済時のエラーで、カードの何が問題でエラーが起きているのか このような詳細なエラーをクライアントに伝えられない場合、クライアントは抽象的なエラー文言しかユーザに出せず、結果としてユーザは問題を解決することができなくなります。 解決案1) エラー文言をparse gRPCは以下のようにレスポンスコード以外にもメッセージ(文字列)を返すこと

                                                gRPCでエラー詳細を渡す方法 - Carpe Diem
                                              • STORES 予約 のリファクタリング(前編) - STORES Product Blog

                                                STORES 予約 で Webアプリケーションエンジニアをしています。ykpythemindです。 STORES 予約 では機能開発する際に積極的にリファクタリングを行っています。今回は実際の例からその手法を前後編に分けて紹介します。 想定読者はWebアプリケーション開発をしているすべての方を対象にしています。 リファクタリング、いつやる? リファクタリングとは、「外部から見た挙動は変えずに、プログラムの内部構造を整理すること」です。システムを開発、運用していく上でコードの変更容易性は重要ですので、リファクタリングはアプリケーションエンジニアの仕事の1つだと考えています。 とはいえ、事業のための機能開発との兼ね合いがあるので、STORES 予約 では「プロダクト開発の質とスピードが最大化するのであればリファクタリングを選択する」ことにして、通常のSprint backlogにタスクとして積

                                                  STORES 予約 のリファクタリング(前編) - STORES Product Blog
                                                • PHP 8の新機能(新機能、改善点、およびJITコンパイラー)

                                                  PHP 8の新機能(新機能、改善点、およびJITコンパイラー) PHP 8が2020年11月26日に正式にGAリリースされました! 今回の新しいメジャーアップデートでは、多くの最適化と強力な機能が導入されます。本記事では、より良いコードを書き、より堅牢なアプリケーションを構築することができる最も興味深い変更点をご紹介します。 PHP 8.0のリリース発表 PHP JIT(ジャストインタイム・コンパイラー) PHP 8の最も高く評価されている新機能は、ジャストインタイム(JIT)コンパイラーです。 JITとは何でしょうか? RFC提案では、JITについて次のように説明しています。 PHP JITはOPcacheの一部として、しかしほぼ独立したものとして実装されます。PHPのコンパイル時に有効無効を設定します。有効にした場合、PHPファイルのネイティブコードがOPCacheの共有メモリに保存さ

                                                    PHP 8の新機能(新機能、改善点、およびJITコンパイラー)
                                                  • 第5回(最終回) PHPの脆弱性 ~型混同~ | gihyo.jp

                                                    はじめに いよいよ本連載も今回で最終回です。最終回ということで、近年報告件数が増加傾向にある「型混同の脆弱性」[1]を取り上げたいと思います。具体的には、2016年にPHP にて発見されたCVE-2016-3185を解説します。PHPは前回(本誌2021年5月号)も取り上げましたが、今回はそれとはまったく別の種類の脆弱性になります。その点を頭の片隅に入れつつお読みください。また補足になりますが、今回の脆弱性はすべてPHP 7.0.3で検証・解説しています。 今回の脆弱性:CVE-2016-3185 CVE-2016-3185はPHPのインタプリタ内に実装されているmake_http_soap_request関数の中に存在する型混同の脆弱性です。前回のおさらいになりますが、PHPのインタプリタ自体に脆弱性が存在した場合、不正なPHPのプログラムを解釈・実行させるとその脆弱性が発現します。 実

                                                      第5回(最終回) PHPの脆弱性 ~型混同~ | gihyo.jp
                                                    • GitHub AppsでPithubを使うためのモジュールGitHub::Apps::Authと使った黒魔術の紹介 - ぱいぱいにっき

                                                      こんにちは、おげんきですか。最近体がバキバキなので良い整体を探しております。川崎近辺でお願いします。 この記事は、Perl Advent Calendar 2019の14日目の記事です。13日目はomokawa_yasuさんのTie::Fileで大容量ファイルを処理する - Qiitaでした。今回もtieの話を少しします。 GitHub Appsって何? なんで使いたいの? 同日の会社のAdvent Calendarに記事を書いたのでこれを読んでほしい。 techblog.kayac.com つまり、要約すると、 GitHub APIを叩くときに、管理とか諸々の理由で個人のGitHub Token使うやつから、GitHub AppsのTokenを使いたい 個人のGitHub Tokenと違ってGitHub AppsのTokenは1時間で有効期限が切れる よりセキュアであると言えるし、たぶん

                                                        GitHub AppsでPithubを使うためのモジュールGitHub::Apps::Authと使った黒魔術の紹介 - ぱいぱいにっき
                                                      • Uniform Resource Identifier (URI): 一般的構文

                                                        Studying HTTP > RFC-Translations related HTTP この文書は、 T. Berners-Lee, R. Fielding, L. Masinter: Uniform Resource Identifier (URI): Generic Syntax (RFC 3986), January 2005. を 橋本英彦 が日本語訳した物です。 この文書の取り扱いについては、[Studying HTTP] の RFC 日本語訳を利用するにあたってに従って下さい。 Network Working Group Request for Comments: 3986 STD: 66 Updates: 1738 Obsoletes: 2732, 2396, 1808 Category: Standards Track T. Berners-Lee W3C/MIT R.

                                                        • 忘れがちなカルチャー依存問題

                                                          今日は、「Globalization Invariant Mode」に変更したら、意外と忘れがちなところで差が出たみたいな話。 Globalization Invariant Mode 以前に1回ブログに書いてるんですが、 .NET の文字列 API にはカルチャー依存なものが多くて、 例えば 1.2.ToString() すらカルチャー依存です。 大陸ヨーロッパだと小数点を , にすることが多く、そのあたりの OS でこの ToString を実行すると "1,2" になります。 一方で、カルチャーごとの書式情報みたいなのは結構データ量が多いので、 WebAssembly みたいなフットプリントを小さくしたい環境では「そのデータを除外したい」要件があったりします。 そこで導入されたのがGlobalization Invariant Mode。 CultureInfo.CurrentCul

                                                            忘れがちなカルチャー依存問題
                                                          • .NET の文字列比較でカルチャー未指定を検知する

                                                            先日の C# 配信で、 「これはブログに書いておくと助かる人がいるんじゃないか」と言われたものをブログ化。 背景: カルチャー依存問題再び うちのブログでも何回か書いてるんですが、 .NET の文字列比較は、カルチャー依存比較するものと Ordinal (文字コード通り)比較するものが混在していて、なかなかにやばいです。 .NET のカルチャー依存 API 問題 忘れがちなカルチャー依存問題 例えば以下のようなやつ。 using static System.Console; // 正規化すると同じ文字になる、文字コード的には別の文字。 var s1 = "a\u0301"; // á = a + ́ var s2 = "\u00e1"; // á // これは false。Ordinal 比較。 WriteLine(new Dictionary<string, int> { { s1,

                                                              .NET の文字列比較でカルチャー未指定を検知する
                                                            • MT4でEA自作しちゃお~

                                                              MQL4リファレンストップ Build 600でのMQL4更新 基本 構文 コメント 識別子 予約語 データ型 整数型 整数型 [char, short, int , long] 文字定数 日付時刻定数 [datetime] カラー型 [color] ブーリアン型 [bool] 列挙型 [enum] 実数(浮動小数点数型) [double, float] 文字列型 [string] 構造体 [struct] クラス [class] 動的配列 型変換・キャスト void型 , NULL定数 [void , NULL] オブジェクトポインタ 参照:&修飾子とthis 演算子・式 式 算術演算子 代入演算子 関係演算子(比較演算子) ブーリアン演算子(論理演算子) ビット演算子 他演算子 優先順位ルール 処理 重文処理 式の処理 return処理 [return] if-else条件処理 [if

                                                              • 第62回 Perl歴史散策 ―インタプリタの実装と、構文の進化をたどる(1) | gihyo.jp

                                                                本連載では第一線のPerlハッカーが回替わりで執筆していきます。今回のハッカーは清水隆博さんで、テーマは「Perl歴史散策」です。Perl 1.0から現在までのバージョンを、実装と構文の両面から追っていきます。 Perlのバージョン Perlは、最初のリリースである1.0から現在に至るまで、数々のバージョンの遍歴を経ています。みなさんが現在利用しているのは、ほとんどがPerl 5のいずれかのバージョンでしょう。Perlはバージョンが上がるにつれて、構文はもちろんのこと、C言語によるインタプリタの実装もさまざまな改良や変更が行われてきました。そこで本稿では、最初のリリースから現在までの代表的なPerlのバージョンについて、Perlの構文とC言語による実装の両方の側面から追っていきます。 Perlインタプリタのソースコード Perlの最初のリリース時にはGitは存在していませんでした。当時のP

                                                                  第62回 Perl歴史散策 ―インタプリタの実装と、構文の進化をたどる(1) | gihyo.jp
                                                                • とほほのperl入門 - とほほのWWW入門

                                                                  とほほのperl入門 トップ > とほほのperl入門 概要編 Perlとは インストール 実行方法 引数指定 ファイル指定 自己完結型 標準入力読み込み型 基礎知識 簡単な実行例 これだけは覚えて strictモードと警告モード 関数の括弧 定数 数値 文字列 エスケープシーケンス(\) 数値と文字列 真(true)と偽(false) バイナリデータ 変数 変数宣言(my) スカラ($XXX) 配列(@XXX) ハッシュ(%XXX) 変数名に使える文字 定義済変数みと未定義変数 省略時の変数($_) 環境変数($ENV{'XXX'}) コマンド引数($ARGV) シグナル($SIG{'XXX'}) その他の特殊変数($X) 演算子 代入演算子 算術演算子 ビット演算子 数値比較演算子 文字列比較演算子 条件演算子 正規表現マッチング 文字列連結 文字列置換 繰り返し演算子 範囲演算子 フ

                                                                  • 機密情報に関わる文字列の比較は == ではなく secure_compare を使おう

                                                                    はじめに パスワードハッシュやトークンなどの文字列を比較する際には、== ではなく Rack::Utils.secure_compare を使ったほうが良いということを学んだので、勉強の記録として共有します。 == での文字列比較の危険性 Rack::Utils.secure_compare を知るまでは、まさか == に危険性があるとは思いませんでした[1]が、パスワードハッシュやトークンなどを比較する際には == は使用しないほうが良いです。 その理由は、Timing Attack (タイミング攻撃) と呼ばれる攻撃によって機密情報である文字列を推測されてしまう可能性があるからです。 タイミング攻撃とは、機密情報となる文字列を左から見ていったときに、どこまで合っているかを、文字列比較の処理時間 (false が返ってくるまでの時間) を利用して、推測するという攻撃手法です。 この説明だ

                                                                      機密情報に関わる文字列の比較は == ではなく secure_compare を使おう
                                                                    • Bash で文字列を比較する方法

                                                                      様々な比較演算子を使って文字列を比較し、正規表現を使って文字列に部分文字列が含まれているかどうかを調べます。 Bash での文字列比較 文字列比較とは、与えられた文字列が同じかどうかを調べることです。2つ以上の文字列が同じ長さで、同じ文字列を含んでいれば同じです。 条件に応じて真または偽を返す様々な文字列比較演算子を使用します。広く使われている文字列比較演算子には、以下のようなものがあります。

                                                                        Bash で文字列を比較する方法
                                                                      • M5StickCで天気通知システムを作る - Qiita

                                                                        きっかけ 筆者は普段外出前に天気予報を確認する癖がなく、玄関先で空が晴れていたらそのまま家を出る、雨が降っている or 雨が振りそうなら傘を持って出る、という生活をしています。 このため、出かけるときは晴れていたけど昼方・夕方に突然雨が降り出すという状況には為す術なく濡れて帰宅することになります(最近雨多いし…)。 これを防ぐために玄関先でスマホを取り出し、画面を数ステップ操作して天気を確認するのも一つの手ですが、その日の天気予報がプッシュ通知的に表示されていれば一目で確認できより便利だと考えたので、小型IoTガジェットとしてコスパの高いM5StickCで通知システムを作りました。 完成品 まずは、完成品ですがこんな感じです。M5StickCはWiFi経由でインターネット接続ができるため、数時間置きに天気情報を提供するWebAPIを叩いて天気を取得してきて、一日の天気をアイコンによって「晴

                                                                          M5StickCで天気通知システムを作る - Qiita
                                                                        • アセンブリ言語を読むための基礎知識

                                                                          アセンブリ言語について勉強したときの備忘録です。レジスタとアセンブリの命令とその意味について説明します。 レジスタ CPUにはレジスタが含まれており、アセンブリの命令の処理結果を保存したりするために使用します。 EAX Accumulator Register 関数の戻り値を格納するために使うことが多い 命令の引数で指定しなくても使うことがある 各レジスタ名: RAX (Register AX) : 64bit EAX (Extend AX) : 32bit AX : 16bit AL : AXの最下位8bit (右側) AH : AXの最上位8bit (左側) EBX Base Address Register 相対メモリ空間を表すときに、基準(ベース)となるアドレスが格納されることがある 各レジスタ名: RBX (Register BX) : 64bit EBX (Extend BX)

                                                                            アセンブリ言語を読むための基礎知識
                                                                          • F# Programming

                                                                            WHAT'S NEW 2022/07/23 F# Junk Scripts: 二分木と Lisp のリストを追加 2022/07/18 F# Junk Scripts: 哲学者の食事を追加 2022/07/17 F# 入門: 並行プログラミングに排他制御を追加 2022/07/03 F# 入門: 並行プログラミングにタスク式を追加 CONTENTS 2022/03/06 はじめに .NET SDK のインストール、hello, F#!!、dotnet fsi、簡単なベンチマーク 2022/03/19 F# Junk Scripts 2022/03/06 参考文献・URL 2022/03/06 権利・免責事項など 2022/03/06 F# の基礎知識 使ってみよう、整数と実数、算術演算子、文字と文字列、比較演算子、論理演算子、条件分岐、変数、タプル、関数、局所変数と大域変数、軽量構文、コメ

                                                                            • .NETで全角/半角・大文字/小文字を考慮した文字列比較 - Qiita

                                                                              掲題の通りですが、コードの書き方はあれど結果をまとめてあるものが見当たらず毎回コードを動かして確認しているので、備忘録としてまとめます。直感と異なる挙動もあり覚えるのも容易ではありません。 環境:.NET ver 6.0.300 3行で 大文字小文字を区別する/しないならStringComparisonを受け取るオーバーロードに明示的に指定 全角半角の区別する/しないは癖が強く挙動に一貫性がないので注意が必要 .NETのバージョンによって挙動が異なりそうなので要実運用環境テスト 参考 文字列を比較する方法 .NET での文字列の比較に関するベスト プラクティス 2つの文字列が等しいかを調べる 大文字小文字、半角全角、ひらがなカタカナの区別をしないで文字列を比較する string.Equals 等しければTrue、異なればFalse StringComparison.Ordinal "tes

                                                                                .NETで全角/半角・大文字/小文字を考慮した文字列比較 - Qiita
                                                                              • VSCodeでファイルを保存せずにテキスト比較(diff)できる機能が便利!

                                                                                エディタを使用していてよく使う機能の一つのdiff 通常は保存済みのファイル同士で差分を比較しますが、特定の文字列だけを比較したくなることもありますよね。 そんな時に便利な方法が以下になります。 VSCodeの標準機能で文字列で比較する方法新規に2つのファイルを作成する新規に2つのファイルを作成し、比較元、比較先の文字列をそれぞれのファイルに書き込みます。 文字列の比較設定を行う エクスプローラーを開き、未保存の2つのファイルを選択肢、右クリック「選択項目の比較」を選択します。 文字列の比較が行われます。 文字列比較を簡単にする拡張機能以下の拡張機能を入れるとファイル内での文字列比較が可能になります。 Partial Diff 上記のように比較結果を表示する画面は通常と同じ横並びで表示され、異なる箇所がハイライト表示されます。 他にもクリップボード内にあるテキストと比較できる機能もありとて

                                                                                  VSCodeでファイルを保存せずにテキスト比較(diff)できる機能が便利!
                                                                                • Power Automate のフローに対する [アイテムの取得] と [ファイルの取得] SharePointアクションの詳細な分析

                                                                                  Power Automate のフローに対する [アイテムの取得] と [ファイルの取得] アクションを使用すると、それぞれリストおよびライブラリからアイテムを取得できます。 これらは異なるアクションですが、両方のアクションの機能は同じです。 ここでは、これらの操作の実行方法について説明します。 リストまたはライブラリを操作する場合の決定 まず、主な考慮事項として、[アイテムの取得] アクションはリストでのみ機能しますが、[ファイルの取得] アクションはライブラリでのみ機能します。 アイテムの制限 既定のアイテムの制限は 100 で、アイテムも既定でページ分割されます。 既定のオプションを使用していて、サイト アドレスとリストまたはライブラリ名を指定するだけの場合、Power Automate はリストまたはライブラリから 100 個のアイテムを返します。 大規模なリストで作業している場合

                                                                                    Power Automate のフローに対する [アイテムの取得] と [ファイルの取得] SharePointアクションの詳細な分析