タグ

2021年3月22日のブックマーク (16件)

  • ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita

    はじめに はじめまして。 NTTデータ数理システムでリサーチャーをしている大槻 (通称、けんちょん) です。 C や C++ を使用しているとしばしばビット演算を行う場面が出て来ます。 計算機リソースが限られている状況では、ビットを用いることでデータ量を少なく済ませたり、計算コストを小さく抑えたりすることができるメリットがあります。 記事では、ビット演算を用いて実現できる処理について、簡単なものから高度なものまで集大成します。極力わかりやすく頑張って執筆しました。特に前半 4 つはビットの説明の中でもかなりわかりやすい方だと思います。後半の 7 つのテーマは比較的高度なアルゴリズムの話題ですので、フラグ管理やマスクビットについて詳しく学びたい方は前半 4 つを中心に読んでいただいて、後半 6 つは必要に応じて読んでいただければと思います。反対にビットの知識はあってビットを用いたアルゴリズ

    ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita
  • GitHub - microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.

    It also includes a robust way to override the default allocator in Windows. Notable aspects of the design include: small and consistent: the library is about 8k LOC using simple and consistent data structures. This makes it very suitable to integrate and adapt in other projects. For runtime systems it provides hooks for a monotonic heartbeat and deferred freeing (for bounded worst-case times with

    GitHub - microsoft/mimalloc: mimalloc is a compact general purpose allocator with excellent performance.
  • mimalloc のメモリ管理 - Qiita

    Microsoft の mimalloc は面白い割り切り方で、小さいソースコードで高速なアロケータを実装しています。 確保するメモリブロックのサイズを、 Small (~8KiB), Large (~512KiB), Huge (512KiB~) の3つに分類し、 Small と Large は同じアルゴリズムで管理し、 Huge は OS 任せにして、 Small と Large は同じアルゴリズムをうまく利用しています。 基礎 OSはpage (x86では基 4KiB) ごとにメモリをプロセスに割り当てています。 しかしアプリケーションではずっと小さいメモリブロックが必要になることが多くあります。また、必要になるたびに毎回OSからメモリを割り当ててもらうのはパフォーマンスも悪いです。 mimalloc やその他の malloc 実装 (以降 malloc と呼びます) は OS か

    mimalloc のメモリ管理 - Qiita
  • How to parametrize fixtures and test functions — pytest documentation

    How to parametrize fixtures and test functions¶ pytest enables test parametrization at several levels: pytest.fixture() allows one to parametrize fixture functions. @pytest.mark.parametrize allows one to define multiple sets of arguments and fixtures at the test function or class. pytest_generate_tests allows one to define custom parametrization schemes or extensions. @pytest.mark.parametrize: par

  • pytestのparametrizeと仲良くなりたくて - hogehoge diary

    はじめに 何事もまずは標準装備の機能からちゃんと使えるようになろうと思って、PythonUnittestをちょくちょく触っていたんですが、案件ではpytestを使っています。pytestの書き方にも慣れてきて、毎日読んだり書いたりしていますが、受け身一方で身の回りにあるコード例しか知らない。これはあんまり良くないと思って、ちゃんと自力でディグって使えそうなコマンドとか機能を発掘しようというと思い立ちました。あと、pytest.Parameterizeと仲良くなりたくて。Parameterizeが題です。 成果物 pytest.Parametarize の基 ここに関数があります。StringをIntに変換してくれるだけのやつです。世界一作る意味の無い関数の内の1つですね。 def convert_str_into_int(x): return int(x) さて、この関数をテストする

    pytestのparametrizeと仲良くなりたくて - hogehoge diary
  • About fixtures — pytest documentation

    pytest fixtures are designed to be explicit, modular and scalable. What fixtures are¶ In testing, a fixture provides a defined, reliable and consistent context for the tests. This could include environment (for example a database configured with known parameters) or content (such as a dataset). Fixtures define the steps and data that constitute the arrange phase of a test (see Anatomy of a test).

  • pytest:フィクスチャ(fixture)の使い方 - Qiita

    はじめに pytestはPython用のテストツールです。 標準のunittestに比べ、テストエラー時の結果が分かりやすいのが特徴です。 例として、辞書オブジェクトを比較する以下のテストコードをunittestとpytestそれぞれで実行してみます。 # test_dict.py import unittest dict1 = {'name': 'Tom', 'age': 20} dict2 = {'name': 'John', 'age': 23} class TestUnitTest(unittest.TestCase): def test_one(self): assert dict1 == dict2 $ python -m unittest F ===================================================================

    pytest:フィクスチャ(fixture)の使い方 - Qiita
  • Pythonのテストのパラメータ化にはparameterizedを使うと楽(unittest/pytest/nose/nose2対応) - Blank File

    Pythonでテストをパラメータ化した時の書き方を unittest と pytest を使った場合で紹介し、最後にそれらで使えるparameterizedというライブラリを紹介します。 ちなみに私はpytestよりもunittest派です。 はじめに テストを書いていると値が違うだけのケースを複数確認したくなる時があります。 例えば、1 + 1 = 2, 2 + 3 = 5, 32 + (-32) = 0, …などのようなケースです。 これをすべて別のテストケースとして書き下すのは面倒ですしメンテも大変なことになるので、テストフレームワークは大抵こんなテストが簡単にできる仕組みを提供しています。 今回はPythonでよく使われているunittest(標準ライブラリ)とpytestでこれらのテストの書き方を紹介します。 なんでいまさら?と思われそうですが、pytestはともかくunitte

    Pythonのテストのパラメータ化にはparameterizedを使うと楽(unittest/pytest/nose/nose2対応) - Blank File
  • Python: SQLAlchemy のテーブルに後からインデックスを追加する - CUBE SUGAR CONTAINER

    今回は、Python の O/R マッパーである SQLAlchemy について。 テーブルを定義した時点のモデルには無かったインデックスを、後から追加する方法についてメモしておく。 なお、実務における RDBMS のスキーマ変更に関しては、Alembic のようなフレームワークを使ってバージョン管理することを強くおすすめしたい。 blog.amedama.jp 使った環境は次のとおり。 $ sw_vers ProductName: Mac OS X ProductVersion: 10.15.7 BuildVersion: 19H2 $ python -V Python 3.8.6 $ python -c "import sqlite3; print(sqlite3.version)" 2.6.0 $ sqlite3 --version 3.28.0 2019-04-15 14:49:4

    Python: SQLAlchemy のテーブルに後からインデックスを追加する - CUBE SUGAR CONTAINER
    rin51
    rin51 2021/03/22
  • インデックスの意味とメリット・デメリット

    このインデックスは id カラムと name カラムの値だけを保持し、name カラムの値を昇順に並び替えてデータを保存しています。name カラムの値を検索する時に、元のテーブルを検索するよりもデータ量が少なくまた並び替えも行われているので高速に検索することができます。 ではどうやって高速に検索できるようにしているのかについてですが、Wikipediaのインデックスのページを見ても B-Tree 方式や関数方式など色々方法があるようです。そして SQLite ではどのような方式を採用しているのかは分かりませんでした。 インデックスを作成することでテーブルとは別に検索用に最適化された状態で必要なデータだけがテーブルとは別に保存されるということを覚えておいて下さい。 インデックスのメリットデメリット インデックスを作成しておくと便利ではありますがメリットだけではありません。テーブルとは別にデ

    インデックスの意味とメリット・デメリット
  • 技術的負債の生態 - maru source

    @t_wadaさんが翻訳されていた技術的負債の記事をあらためて読んでみたら非常に面白かった。技術的負債来の意味が説明されているので、まだ読んだことがない人は一読をおすすめする。 その翻訳記事を読みながら、Jasper(僕が開発しているGitHub用のIssueリーダー)のv1.0で技術的負債を返済したことを思い出した。そこで、その翻訳記事を参考にして技術的負債の生態について自分なりに考えてみることにした。すると面白い生態がいくつか見えてきた。例えば「生態③: むしろ技術的負債が生まれることそれ自体はポジティブである」などである。今日はそのことについて書いてみようと思う。 ちなみに今回は技術的負債への対処までは解明することができなかった。いつか続きを書けたらいいなと思う。 技術的負債が生まれる背景 まずはJasperで経験した技術的負債を紹介する。負債の内容自体はそんなに重要ではないので

    技術的負債の生態 - maru source
    rin51
    rin51 2021/03/22
  • 県の川監視システムがウイルスに感染 改ざんも|NHK 群馬県のニュース

    群馬県の館林土木事務所で川のせきや門などを監視するシステムがコンピューターウイルスに感染して改ざんされ、県は原因などを調べるとともに、出水期にあたることし6月までの復旧を目指すことにしています。 県によりますと今月11日、県の館林土木事務所で、板倉川や谷田川の流域にある、せきや門、排水機場などを監視するシステムに障害が起きていることがわかりました。 システムを停止して調査した結果、サーバーが攻撃を受けて、「ランサムウエア」と呼ばれるコンピューターウイルスに感染し改ざんされていたということで警察に被害を報告しました。 職員のメールアドレスや、監視カメラのIPアドレス、水位などのデータが漏えいしたおそれがありますが、一般の県民などの個人情報の流出はないということです。 県では出水期にあたることし6月までの復旧を目指すことにしていて、それまでは県の水位雨量情報システムや職員による目視で監視するこ

    県の川監視システムがウイルスに感染 改ざんも|NHK 群馬県のニュース
    rin51
    rin51 2021/03/22
  • 相模原・集合住宅のポストにヘイトDVD 管理組合が通報 時代の正体 差別のないまちへ | カナロコ by 神奈川新聞

    在日コリアンに対するヘイトデモやヘイトスピーチの様子を記録したDVDが、相模原市内の集合住宅のポストに複数枚、投函(とうかん)されていたことが分かった。 複数の関係者によると、DVDには「朝鮮DVD」との印字があり、透明ケースに入った状態で1月下旬に投函された。住民から不審なDVDが投函されたとの報告を受けた管理組合が県警に通報したという。 DVDに収録されていたのは大半が東京都内などで行われたヘイトデモやヘイトスピーチを動画撮影した映像をつなぎ合わせたもので、約4時間分。「在日朝鮮人は祖国へ帰れ」「シナ人、朝鮮人を追放しよう。日社会のダニ、ウジ虫、ゴキブリを駆除しよう」などの差別的な発言が収められている。 沿道からこうした活動に抗議する市民の姿を写した映像には「地球の汚物」「ゴキブリ並みにいる」などのコメントが付けられ、差別的な言動を拡散するとともに、抗議する側を誹謗(ひぼう)中傷する

    相模原・集合住宅のポストにヘイトDVD 管理組合が通報 時代の正体 差別のないまちへ | カナロコ by 神奈川新聞
    rin51
    rin51 2021/03/22
  • 人助けをしたくないと思った話

    【3/22 タイトルを「障害者の手助けをしたくないと思った話」から変更しました。 文は変更しておりませんので、障害者差別に嫌悪感を持つ方はこの記事を飛ばしてくださいますよう、よろしくお願い申し上げます。】 私はショッピングモールのランジェリー専門店で働いている。 このモールは古い設計というか、バリアフリーについてあまり考えてなくて、車椅子で買い回るには少し不便だったりする。 今日の午前中は暖かくて、緊急事態宣言も解除されて、久しぶりにモール全体が賑わっていた。人通りの多さもあって、尚更その人は動きづらそうに見えた。 従業員休憩室に向かう道すがらで、困っているお客様にはお声掛けしましょうというモールの方針をバカ正直に守ろうと、声をかけた。 その人は男性で、車椅子の左右の肘掛け(?)に名前と住所と連絡先が書かれた名刺サイズのカードを1枚ずつ貼り付けていた。 「近くのトイレに行きたいんやけど」

    人助けをしたくないと思った話
    rin51
    rin51 2021/03/22
  • 「アジアの女だ、ってそれだけでターゲットにされた」日本人女性がアメリカで体験したヘイトクライムの話

    サヤさん @momomagazine 趣味はバレエと写経です。 Singapore Airlines 推しで株主。 The opinions stated here are my own. sayaoshima.com サヤさん @momomagazine マンハッタンのアッパーイーストサイドの小さな小売店でひとりで店番をしていた23歳の頃、昼時にひとりの男性が入ってきた。そのエリアにしては手頃な価格帯のジュエリーなんかも扱ってたからプレゼント探してるのかもと思った。2005年の話。男はブツブツと急にチャイナタウンの話を始めた。 2021-03-20 08:34:09 サヤさん @momomagazine 「チャイナタウンを知っているか?汚い店がたくさんあるんだ。俺は知ってる。お前も知ってるんだろ」ちょっと嫌な予感がした。私は店にひとりだった。店のすぐ2軒隣に店があって、男性の社長と女性

    「アジアの女だ、ってそれだけでターゲットにされた」日本人女性がアメリカで体験したヘイトクライムの話
    rin51
    rin51 2021/03/22
  • Nao* on Twitter: "大学で学んだこと ブサイクで童貞→いる フツメンで童貞→いる イケメンで童貞→意外といる 処女→いない"

    rin51
    rin51 2021/03/22