はてなブックマークアプリ

サクサク読めて、
アプリ限定の機能も多数!

アプリで開く

はてなブックマーク

  • はてなブックマークって?
  • アプリ・拡張の紹介
  • ユーザー登録
  • ログイン
  • Hatena

はてなブックマーク

トップへ戻る

  • 総合
    • 人気
    • 新着
    • IT
    • 最新ガジェット
    • 自然科学
    • 経済・金融
    • おもしろ
    • マンガ
    • ゲーム
    • はてなブログ(総合)
  • 一般
    • 人気
    • 新着
    • 社会ニュース
    • 地域
    • 国際
    • 天気
    • グルメ
    • 映画・音楽
    • スポーツ
    • はてな匿名ダイアリー
    • はてなブログ(一般)
  • 世の中
    • 人気
    • 新着
    • 新型コロナウイルス
    • 働き方
    • 生き方
    • 地域
    • 医療・ヘルス
    • 教育
    • はてな匿名ダイアリー
    • はてなブログ(世の中)
  • 政治と経済
    • 人気
    • 新着
    • 政治
    • 経済・金融
    • 企業
    • 仕事・就職
    • マーケット
    • 国際
    • はてなブログ(政治と経済)
  • 暮らし
    • 人気
    • 新着
    • カルチャー・ライフスタイル
    • ファッション
    • 運動・エクササイズ
    • 結婚・子育て
    • 住まい
    • グルメ
    • 相続
    • はてなブログ(暮らし)
    • 掃除・整理整頓
    • 雑貨
    • 買ってよかったもの
    • 旅行
    • アウトドア
    • 趣味
  • 学び
    • 人気
    • 新着
    • 人文科学
    • 社会科学
    • 自然科学
    • 語学
    • ビジネス・経営学
    • デザイン
    • 法律
    • 本・書評
    • 将棋・囲碁
    • はてなブログ(学び)
  • テクノロジー
    • 人気
    • 新着
    • IT
    • セキュリティ技術
    • はてなブログ(テクノロジー)
    • AI・機械学習
    • プログラミング
    • エンジニア
  • おもしろ
    • 人気
    • 新着
    • まとめ
    • ネタ
    • おもしろ
    • これはすごい
    • かわいい
    • 雑学
    • 癒やし
    • はてなブログ(おもしろ)
  • エンタメ
    • 人気
    • 新着
    • スポーツ
    • 映画
    • 音楽
    • アイドル
    • 芸能
    • お笑い
    • サッカー
    • 話題の動画
    • はてなブログ(エンタメ)
  • アニメとゲーム
    • 人気
    • 新着
    • マンガ
    • Webマンガ
    • ゲーム
    • 任天堂
    • PlayStation
    • アニメ
    • バーチャルYouTuber
    • オタクカルチャー
    • はてなブログ(アニメとゲーム)
    • はてなブログ(ゲーム)
  • おすすめ

    大阪万博

『qiita.com』

  • 人気
  • 新着
  • すべて
  • Gitのコミット日付をまとめて書き換えるワンライナー - Qiita

    3 users

    qiita.com/saka1_p

    $(date -R)を書き換えれば現在時刻以外にもできます main...HEADを書き換えれば任意のリビジョンを選択できます 何回も流すときは-fを付けることになるみたい? どういう事をやっているスクリプトなのか おそらくGitに慣れている人にとっては大したことない処理だと思うのですが、要所についてまとめ直してみました。 author dateとcommitter date Gitの日付にはauthor dateとcommitter dateがあります。多くの場合に目にするのはauthor dateですがcommitter dateも記録されています。 そもそもauthorとcommitterは何が違うのだろうと思うところです。どうやらGitはその差分を作った人と実際にコミットする人が分離することも想定して作られているようです。『入門Git』 P.13にはこうあります。 多くのオープンソ

    • テクノロジー
    • 2021/08/16 19:12
    • 高速UTF-8バリデーションの世界 - Qiita

      4 users

      qiita.com/saka1_p

      参照: http://www.unicode.org/versions/Unicode6.0.0/ch03.pdf の "Table 3-7. Well-Formed UTF-8 Byte Sequences" アルゴリズムを理解する上で重要なUTF-8の特徴について述べます。 1コードポイントは1-4バイトのシーケンスで表現される 上位ニブル(1バイト8ビットのうち、上位4ビット)を確認することでシーケンスの情報が得られる そのバイトがシーケンス先頭バイトかどうかわかる もしそれがシーケンス先頭バイトだったなら、何バイトのシーケンスかわかる 先頭でないバイトは基本的に0x80..0xBFの範囲が許容されているが、何箇所か例外があるのでそれもバリデーションしなければならない 例外の箇所は表では太字で示した 例えば、表を見て分かるように、先頭バイトが0xE0のとき2バイト目は0xA0..0x

      • テクノロジー
      • 2021/08/13 21:23
      • Unicode
      • 2で割ることと3で割ること - Qiita

        408 users

        qiita.com/saka1_p

        この記事でお題にするのはCPUレジスタ上の整数除算です。以下、単に除算とも書きます。 除算は非常に高コストな演算なため、コンパイラは最適化によって、できるだけ整数除算を別の計算に置き換えようとします。 最適化ができる場合の一つとして、割る数が定数である場合があります。頭のいいコンパイラは、除算を乗算とビットシフト等を駆使した演算に置き換えます。この記事では、そういった最適化の背景にある理屈を部分的に解説します。 計算機環境としてはモダンなx86 CPUを仮定します。したがってレジスタは32/64ビットであり、負数は2の補数表現になっています。ある程度は他の命令セットでも通用する話になっているかもしれません。 そもそも整数の除算とは プログラミングにおける整数の除算の定義について確認します。整数$n$を整数$d$で割るとき $$ n = q \times d + r $$ が成り立つように除

        • テクノロジー
        • 2020/12/09 00:10
        • CPU
        • あとで読む
        • プログラミング
        • programming
        • アルゴリズム
        • algorithm
        • Qiita
        • 数学
        • 言語
        • コンパイラ
        • AVX-512を用いた、たぶん世界最速のBase64エンコード実装について - Qiita

          23 users

          qiita.com/saka1_p

          この記事で紹介するのは高スループットなBase64エンコードの実装方法です。 Base64は、Webの世界を始めとして、世界中さまざまな箇所で使われているエンコード方式です。とてもよく使われるので、高速化についてもしばしば研究されてきたようです。 高速化の最新成果として、2019年10月に、Wojciech Muła, Daniel Lemireによる新しい論文がarxivに投稿されました。なかなか強烈なタイトルが付いています。 Base64 encoding and decoding at almost the speed of a memory copy 論文の主張としては、x86 CPUの持つ最新の命令群を駆使することで、非常に高効率なBase64エンコード・デコードが実現できたというものです。このQiita記事では論文の内容の一部を紹介します。 Base64は問題としては単純に見え

          • テクノロジー
          • 2019/12/02 14:37
          • deffered
          • アルゴリズム
          • CPU
          • プログラミング
          • HotEntry
          • コンピュータ
          • Programming
          • qiita
          • あとで読む
          • JSONをgrepしやすくするコマンドラインツールgronの紹介 - Qiita

            4 users

            qiita.com/saka1_p

            Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

            • テクノロジー
            • 2019/06/29 10:18
            • UTF-8のコードポイントはどうやって高速に数えるか - Qiita

              60 users

              qiita.com/saka1_p

              UTF-8文字列からコードポイント数を計算するアルゴリズムについて紹介します。コードポイント数カウントは、シンプルに書くのはそれほど難しくないものの、高効率な実装は意外にややこしいです。 内容は二本立てです。 実践的な実装について、Ruby(CRuby)の内部実装(string.c)で使われているものを紹介します。 標準Cの範囲を超えて、SIMD命令(AVX/AVX2)を使った実装についても述べます 軽く検索する限りだと既知のアルゴリズムが見当たらなかったので、アドホックな実装をひねり出しましたが、そんなに効率は悪くなさそうです おまけで簡単な性能評価をやってみました。 なお、UTF-8文字列はバリデーション済み(不正なシーケンスでないことが分かっている)であるとします。 Rubyの内部実装だとどうやっているか まずは、それがコードポイントの先頭バイト(leading byte)かを判定す

              • テクノロジー
              • 2019/04/05 07:41
              • utf-8
              • あとで読む
              • ruby
              • algorithm
              • programming
              • 動画エンコーダ屋さんと会話して少しわかった画質の話(PSNR / RD曲線 / BD-rate) - Qiita

                9 users

                qiita.com/saka1_p

                動画コーデック/動画エンコード周りの話です。これは一例ですが、巷には「H.265はH.264と同等画質でデータ量が半分になる」みたいな言説が見られます。 H.264/MPEG-4 AVC以上に圧縮効率を高めて半分以下のビットレートを実現する。モバイルデバイスや、4K解像度などの超解像度ビデオにおける利用を想定している。 https://pc.watch.impress.co.jp/docs/news/585297.html たぶんより新しい技術だからすごいんだろうと思う一方で、画質・ビットレートに関する根拠というか考え方がさっぱりわかりません 画質と言われても何をどうやって測定しているのか どんな条件でもぴったり半分になるのか? さすがにそんなことはなさそう? よくわからなさすぎて困ったので、会社の自席の近くにいる動画エンコーダの専門家に基本的な事項について教わってみたので、その内容をまと

                • テクノロジー
                • 2019/03/21 10:24
                • tech
                • 動画
                • タイミング攻撃とDouble HMAC Verification - Qiita

                  3 users

                  qiita.com/saka1_p

                  Double HMACパターンというものの存在を最近知ったので、まとめました。 記事の前半では、文字列比較に関するタイミング攻撃の概要と、対策方法(特に定数時間比較について)をまとめます。後半では対策方法の一つであるDouble HMAC Verificationについて紹介します。 ……などと偉そうに書いてはいますが、筆者はセキュリティ専門家でもなんでもないので、記述内容を参照される方はその点ご留意ください。セキュリティの分野は本来、素人が実装をするべきではないとは思います。 読んだサイト Double HMAC Verification タイミング攻撃 サイドチャンネル攻撃という攻撃方法があります。処理にかかる時間・消費電力・電磁波など、その処理から漏れ出た情報を元に、本来入手できないはずの情報を得る手法です。 サイドチャンネル攻撃の一形態として、タイミング攻撃というものがあります。

                  • テクノロジー
                  • 2018/12/14 08:09
                  • GitHub Enterpriseとの付き合い方 - Qiita

                    10 users

                    qiita.com/saka1_p

                    https://help.github.com/enterprise/2.15/admin/guides/installation/installing-github-enterprise-on-vmware/#hardware-considerations しかしながら、表はかなり利用頻度が低い状況を想定しているようです。たぶん普通は、これだけのスペックでは足りません。 そもそもこの値は古代のGHE 2.1の頃から更新されていない様子がある上、特に最近はGHE 2.14からリソース消費が激しくなったように思います。 GitHub Enterprise 2.12 → 2.14 にしてパフォーマンスデグレしてると思うのでサポートに連絡しつつしぶしぶオーバーサイズなスケールアップをして、お話の結果「うん、スケールアップしてCPUに余裕出てるね^^」と言われて「は?」ってなっている。 — そらは

                    • テクノロジー
                    • 2018/12/02 10:43
                    • github
                    • Saved For Later
                    • *あとで読む
                    • SIMDプログラミング入門(AVX-512から始める編) - Qiita

                      33 users

                      qiita.com/saka1_p

                      最近、SIMD命令を使ったプログラミングというものに触れる機会があったので、どうやって入門していったかについてまとめます。この分野はどうしても「分かっている人向け」の記事が多くなりがちのようなので、基本的な知識についてまとめつつ、発展的な資料へのURL等も極力載せるようにしました。 ※ 記事で取り扱うSIMD命令はAVX-512を対象としますが、その他の命令体系(e.g. x86のAVX/AVX2やARMのNEON等)とも多少は共通点があるかもしれません 前提知識とスコープ C/C++のごく基本的な構文を理解している人向けの記述になっています 記事を読む上で、計算機の構造についての基本的な理解が必要かもしれません e.g. CPUがあってメモリがあって〜程度でたぶん大丈夫です 開発環境としてLinux上のClang 5.0.1を想定します(とはいえGCC等でも同じような話になるはずです)

                      • テクノロジー
                      • 2018/03/27 22:22
                      • SIMD
                      • プログラミング
                      • cpu
                      • programming
                      • C++
                      • WebサーバのHTTPS化において、SSL/TLS周りの各種設定はどう選択するべきか(2016年度版) - Qiita

                        43 users

                        qiita.com/saka1_p

                        公開HTTPSサーバを立てるときに悩む点の一つが、SSL/TLS周りの設定です。 SSL/TLSや暗号周りの知識がないと適切な設定を選ぶのは難しい そもそも設定が何を意味しているのか読み取れない 「推奨される設定」が各種サイトでいくつも、微妙に違うものが紹介されていて、どれが良いのか選べない とりわけ暗号が関連する選択肢は呪文めいていて、専門知識を持たないWebエンジニアにとっては、なかなか難しいものがあると思います。 筆者もSSL/TLSの専門家ではありません。 専門家でないなりに極力信頼できそうなソースや実例を参考にしつつ、まとめました。もともとは自分用調査資料集のような記事です。 すごく長くなってしまいました(若干力尽きている)。 TL;DR MozillaのTLS設定ガイドをひな形にして設定する。Config Generatorもある とりあえず従っていれば酷いことにはならない 現

                        • テクノロジー
                        • 2017/03/01 11:43
                        • TLS
                        • あとで読む
                        • openssl
                        • ssl
                        • セキュリティ
                        • Security
                        • WEBサービス
                        • *資料
                        • Scalable Bloom Filtersとは一体....? - Qiita

                          47 users

                          qiita.com/saka1_p

                          Wikipediaを漁っていたところScalable Bloom Filters(SBF)というデータ構造を発見してしまったので紹介します1。 参照した論文 http://haslab.uminho.pt/cbm/publications/scalable-bloom-filters Bloom Filter SBFの説明に入る前に、Bloom Filterについて簡単に紹介します。もっとも、日本語のWikipediaでも十分詳しい説明が載っていたりするのですが……。 ささっと説明 Bloom Filterはちょっと不思議な性質を持つデータ構造の一種です2。 いわゆるSetと同じ操作を提供する 要素を入れる操作と、ある要素が入っているかを調べる操作 どちらも時間計算量O(1)で実現できる ハッシュテーブルなどを用いて実装される同種のデータ型と比して、とても空間効率が良い その代わりに、ある

                          • テクノロジー
                          • 2015/12/28 07:50
                          • algorithm
                          • bloom filter
                          • bloomfilter
                          • filter
                          • アルゴリズム
                          • ruby
                          • Erlangを書きながら学んでいるRTMP入門(ハンドシェイク編) - Qiita

                            6 users

                            qiita.com/saka1_p

                            Erlangは数年前にほんの少し書いたことがあるだけなのですが、会社では同じフロアにErlangをガリガリ書く部隊1がいます。彼らにちょっと教わりつつ久しぶりに書いてみました。 はじめに 最近のマイブームは映像や音声の配信でおなじみRTMPなので、この記事ではErlangでRTMPを取り扱ってみようかと思います。本当はデータの中身をちゃんと取り扱う所までを書きたかったのですが作業時間があまりなく、対象をハンドシェイクと呼ばれるプロトコル初期のフェーズまでに限定します。 RTMPとは Adobe社が制定したReal Time Messaging Protocolのことです。その成り立ちからFlashと相性がよく、音声や動画の配信によく用いられる2プロトコルです。 RTMPは仕様が公開されているので、誰でもプロトコルを理解・解析することができます。 http://wwwimages.adobe

                            • テクノロジー
                            • 2015/12/19 18:01
                            • flash
                            • HAProxyを使い始めてみる - Qiita

                              37 users

                              qiita.com/saka1_p

                              HAProxy1とは何か? から始まり、基本的な使い方までを調べました。 HAProxyとは 多機能なプロキシサーバです。ソフトウェアロードバランサの一種でもあります。古くから開発が続けられ、非常に高速かつ堅牢で信頼性が高いことを売りにしているようです。 HAProxyが何であって何でないかは、 ドキュメントに箇条書きで記載 されています。 ざっくりまとめると、こんな感じのことが書かれています。 TCP接続のプロキシとして動作させ、アクセス経路を設定することができる HTTPリバースプロキシとしての機能を持ち、ルールに従ってリクエストを別のサーバに渡すことができる このとき、URLやヘッダの書き換えも行える SSLやHTTP圧縮を肩代わりできる TCP/HTTPの正規化器(normalizer)となる 不正なトラフィックからの防護を提供する 負荷分散機能を提供する ロギング機能を持つので、

                              • テクノロジー
                              • 2015/12/16 11:59
                              • HAProxy
                              • centos
                              • http
                              • TCP
                              • qiita
                              • Google Guiceについて、もうちょっと調べた - Qiita

                                5 users

                                qiita.com/saka1_p

                                前回の記事で紹介したのは、Google GuiceのDI機能のうちの一つ、Linked Bindingsだけでした。この記事はその続きです。 サンプルはScalaで書きましたが、例によってScalaっぽいコードが出てくるわけではないですね……Guiceをどう使えばScalaとよりよく連携できるようになるかは、まだよく分かっていません1。 さて、Guiceはもうちょっと色々な方法でDIができるので、それについても調べて紹介します。 以下では例示のために、前回も使用したServiceとその実装クラス2つを使います。 trait Service { def doSomething(): Unit } class FakeService extends Service { def doSomething() { println("FakeService") } } class RealServic

                                • テクノロジー
                                • 2015/12/02 22:04
                                • Guice
                                • DI
                                • scala
                                • qiita
                                • service
                                • DDDにおけるIdentifier/Entity/Repository間の関係をScalaで型付けする - Qiita

                                  7 users

                                  qiita.com/saka1_p

                                  Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

                                  • テクノロジー
                                  • 2015/08/06 16:36
                                  • DDD
                                  • ScalaとGoogle Guiceの組み合わせについて軽く調べた - Qiita

                                    4 users

                                    qiita.com/saka1_p

                                    あまり目新しい内容ではないですが、Google Guice理解のために、改めてまとめました。 ScalaにおけるDI Javaなどの言語と同様に、Scalaにおいても依存性注入(DI)を実現する方法はいくつかあるようです。 Constructor InjectionやSetter Injectionを使う Cake PatternなどのScala特有の言語機能を使った方法 (Google Guiceなどの)DIフレームワークを使う 構造的部分型を使うetc.... この記事では3.のGoogle Guiceを使う方法について調べました。そういえばPlay Frameworkの2.4でも導入されるとか聞いたような……? Google Guiceの基本的な使い方(Java) いくつかの典型的なパターンと比較しているという点でも、公式のチュートリアルがとても分かりやすいかなと思います。Guice

                                    • テクノロジー
                                    • 2015/06/27 04:20
                                    • java

                                    このページはまだ
                                    ブックマークされていません

                                    このページを最初にブックマークしてみませんか?

                                    『qiita.com』の新着エントリーを見る

                                    キーボードショートカット一覧

                                    j次のブックマーク

                                    k前のブックマーク

                                    lあとで読む

                                    eコメント一覧を開く

                                    oページを開く

                                    はてなブックマーク

                                    • 総合
                                    • 一般
                                    • 世の中
                                    • 政治と経済
                                    • 暮らし
                                    • 学び
                                    • テクノロジー
                                    • エンタメ
                                    • アニメとゲーム
                                    • おもしろ
                                    • アプリ・拡張機能
                                    • 開発ブログ
                                    • ヘルプ
                                    • お問い合わせ
                                    • ガイドライン
                                    • 利用規約
                                    • プライバシーポリシー
                                    • 利用者情報の外部送信について
                                    • ガイドライン
                                    • 利用規約
                                    • プライバシーポリシー
                                    • 利用者情報の外部送信について

                                    公式Twitter

                                    • 公式アカウント
                                    • ホットエントリー

                                    はてなのサービス

                                    • はてなブログ
                                    • はてなブログPro
                                    • 人力検索はてな
                                    • はてなブログ タグ
                                    • はてなニュース
                                    • ソレドコ
                                    • App Storeからダウンロード
                                    • Google Playで手に入れよう
                                    Copyright © 2005-2025 Hatena. All Rights Reserved.
                                    設定を変更しましたx