nixでmacにclamavを入れる

概要

darwin向けのclamavがnixpkgsにないのでnixファイルを作りながらやっていきます。

手法

nixpkgsのfileを見ます。

nixpkgs/default.nix at 00b555ef889b900c32c36ef9ef7fa3fb725ae4b5 · NixOS/nixpkgs · GitHub

これですね。

このブログを時間がたってから読んだ人はmasterを見た方がいいかもしれません。

このままでは失敗するので修正していきます。

まず失敗する理由として, derivationのmetaのplatformがlinuxになっているのでdarwinにします。

    platforms = platforms.darwin;

適当に修正しながらやっていくと以下のようなfileになると思います。

{ stdenv, fetchurl, pkgconfig
, gcc
, zlib, bzip2, libiconv, libxml2, openssl, ncurses, curl, pcre2
, libmspack
}:

stdenv.mkDerivation rec {
  name = "clamav-${version}";
  version = "0.100.2";

  src = fetchurl {
    url = "https://www.clamav.net/downloads/production/${name}.tar.gz";
    sha256 = "1mkd41sxbjkfjinpx5b9kb85q529gj2s3d0klysssqhysh64ybja";
  };

  # don't install sample config files into the absolute sysconfdir folder
  postPatch = ''
    substituteInPlace Makefile.in --replace ' etc ' ' '
  '';
  nativeBuildInputs = [ pkgconfig ];
  buildInputs = [
    zlib bzip2 libxml2 openssl ncurses curl libiconv pcre2 libmspack gcc
  ];

  configureFlags = [
    "--libdir=$(out)/lib"
    "--sysconfdir=/etc/clamav"
    "--disable-llvm" # enabling breaks the build at the moment
    "--with-zlib=${zlib.dev}"
    "--with-xml=${libxml2.dev}"
    "--with-openssl=${openssl.dev}"
    "--with-libcurl=${curl.dev}"
    "--with-system-libmspack"
    "--disable-clamav"
    # "--enable-milter"
  ];

  postInstall = ''
    mkdir $out/etc
    cp etc/*.sample $out/etc
  '';

  meta = with stdenv.lib; {
    homepage = https://www.clamav.net;
    description = "Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats";
    license = licenses.gpl2;
    platforms = platforms.darwin;
  };
}

--enable-milterはちょっとメール関係の機能っぽい?かつビルドが成功しなかったので消しました。

--disable-clamavをconfigure flagに入れておかないと ./configureした時にuserとgroupを作られるのでこのオプションはつけた方がいいと思います。(流石にマジかって気持ちになりました)

その代わり以下の操作をする必要があります。

clamav-faq/Steps-macOS.md at master · Cisco-Talos/clamav-faq · GitHub

ただ nix-darwinを使っている人間は以下の操作をすることで、上記の操作の一定部分を回避できます。

{config, pkgs,}:
  let
  clamav = pkgs.callPackage ./clamav.nix {};
  stateDir = "/var/lib/clamav";
  runDir = "/run/clamav";
  clamavUser = "clamav";
  clamdConfigFile = pkgs.writeText "clamd.conf" ''
    DatabaseDirectory ${stateDir}
    LocalSocket ${runDir}/clamd.ctl
    PidFile ${runDir}/clamd.pid
    TemporaryDirectory /tmp
    User ${clamavUser}
    Foreground yes
    ExcludePath ^/System/
    ExcludePath ^/Volumes/
    ExcludePath ^/Network/
    ExcludePath ^/bin/
    ExcludePath ^/sbin/
    ExcludePath ^/nix/
  '';

  freshclamConfigFile = pkgs.writeText "freshclam.conf" ''
    DatabaseDirectory ${stateDir}
    Foreground yes
    Checks 12
    DatabaseMirror database.clamav.net
  '';
  in
{
  environment.etc."clamav/freshclam.conf".source = freshclamConfigFile;
  environment.etc."clamav/clamd.conf".source = clamdConfigFile;

  users.users.clamav.uid = 599;
  users.users.clamav.gid = config.users.groups.clamav.gid;
  users.users.clamav.home = stateDir;
  users.users.clamav.shell = "/bin/false";
  users.users.clamav.description = "clamav service user";

  users.groups.clamav.gid = 799;
  users.groups.clamav.description = "group for clamav service";
  users.knownGroups = [ clamavUser ];
  users.knownUsers = [ clamavUser ];
}

上記は以下のnixos向けの設定を見ることで作ることができます。

github.com

ちょっとlaunchd周りはいじってる途中なので、今度書くかもしれません。

netflixのux

## 1

日々UXシリーズ

 

生活の中で感じるサービスのUX改善を考える。

 

## 2

 

netflixはサービスに対する姿勢としては好きな企業に分類される。

 

全てのプラットフォームが十分に使いやすいかと言われると難しいがUI自体はチャレンジしている。正しくはチャレンジした結果、悪いことにはなっていない。

 

自分の感じるnetflixの一番大きなチャレンジはユーザの見たいコンテンツへのアクセス方法だろう

 

自分もここ2,3年ぐらい使っていて感じるのがカテゴリからのアクセスを減らそうとしていることである。

 

カテゴリは便利なようにも感じるが、境界ずけられた中から探そうとする行為はユーザーの満足度を高めない

 

今のnetflixはカテゴリというより、タグというか“雑なカテゴリ”ででてくる。説明しにくいがカテゴリとが認識できないもの。

 

ユーザーの好みごとにいい感じの集合を提示してくる。

 

これがカテゴリではないと思わせるのが、例えば自分はドキュメンタリをよく見るが、おすすめに「イギリスのドキュメンタリ」とか「ドキュメンタリ」といった微妙にかぶったものが出てくる。

      

当然、推薦だけですべてが済むようになるのは理想だけど、それだけだとつまらなさ、雑誌を雑にパラパラみる感じを提供しつつレコメンドしようとしてこうなったように感じる

 

## 3

 

そんなことより、netflixからおすすめの作品みたいなものがメールでくるのは別にいい

 

別にいいけど、そのおすすめに対してこちらからフィードバック出来ないのが仕上げが欠けているんじゃないの、と思ってしまった。

 

マイリストに追加できるとか興味がないとかメール自体にフィードバックできる仕組みがある良いんだけどね。そんなに実装難しくないだろうし

 

睡眠

## 1


おおよそインターネットは便利で中学生のころ知りたかったシリーズ


突然だが、頭痛で意識を失ったことがある人はどれぐらいいるだろう


自分はある、だいたい20回ぐらい。


記憶が正しければ中学時代から大学を卒業したぐらいにかけてその症状に悩まされていた。


急に目がおかしくなり激しい頭痛に襲われ、途中で意識を失い、目が覚めると嘔吐する。

順番は日によって違ったが、「頭痛」「嘔吐」がセットで起こる。


閃輝暗点 - Wikipedia


今でこそわかった情報だが、おそらく閃輝暗点だった。

 

当時はいくつ病院に行っても何なのかなぜ起こるのかがわからなかった情報がインターネットを通じてふと流れてくる。

 

## 2


文章にしてみれば数行の苦しみだが、当時の自分にとってはかなりの負担であった。

余談だが文章量におおじて苦しみが増えるのなら、「死」はそこまで苦しくないかも知れない。


特に中高生時代に頻発しており、医者にかかってもわからない症状をなるべく予防するために、どういう状態だと起きるのかを分析するようにした。


とはいえ、月1で起こるわけでものないのでそう詳細にわからないが、最終的に睡眠時間が大きなファクターになっていることがわかった。

 

## 3

 

それからの自分はなるべく睡眠を重要視した。

正確には睡眠がとれていない状態を危険視した。

 

とはいっても、あまり理解されるものではない。

当然ある程度の部分は理解される。寝なくて体調を崩さない人間はヒロポンを打っているか、超人である

 

だけど重要視する度合いに対してはあまり理解されない。

 

## 4

 

他人に理解されて頭痛が治るなら嬉しいが、そんなこともないので結局他人の理解はどうでもいいのである。

 

そう思わせるほど頭が痛くなるのだ。

 

 

音と声と会話

1

おおよそインターネット、特にtwitterは便利なもので幼少期の自分が知りえなたかった情報が平気で流れてくる。

もし、過去にこのことを知っていたら困らなかったのにな、と思うことは多々ある。

もしかしたら今も困っている人がいるかも知れない人にむけて記事を書きインターネットに流すことにした。なるべく習慣にしたい。

2

自分自身でもこの1〜2年で気づいたことであまり認知できていなかったことだが、 どうやら自然言語を音声経由で解釈するのが苦手である。

特に話しかけられた時に最初のセンテンスから聞き取れることが稀なので、「えっ」と聞き返してしまう。

聞こえていそうな状況でも聞こえるわけではない。そのせいで、小さいときは「おまえ、聞こえとるやろぉ?!」とか言われて叩かれることもあった。

健康診断などである聴覚テストはパスできるので耳が悪いわけではない。むしろ高音はかなり聞こえる方で、街を歩けば猫避けの高音発声装置がかなりうざったい。

3

まぁそんなこんなでtwitterか何かで知ったのだが、聴覚情報処理障害というものがあるらしい

聴覚情報処理障害 - Wikipedia

詳細はwikipediaを見てもらった方がわかりやすいかもしれないが、もしこれを読んでいてよくわからないという"健常"な人に意識して欲しいことは

「あなたの声が聞こえているからといって言葉として聞こえているとは限らない」

ということだけである。

wikiにあるように原因は多々あるようで自分がどういう理由でこうなっているのかはわからない。

どちらかといえば会話の文脈がない状態で単語だけ聞き取った際にひどく聞き取れないことが多いので、発音から脳内の記号にする過程の認知能力が低い可能性がある。 ただ、会話の途中で全ての内容がわからなくなることもあるので、一概にそうとはいえない気もする。

4

過去に思いを馳せると小学校のとあるテストが思い出される。

ラジカセ(今となっては死語かもしれない)から流れる会話の内容を聞き取って、音声が終了したあとで渡される問題に回答するというテストがあった。

聞き取りテスト、という名だったかもしれない。

おおよそ小学校のテストは間違えることが少ないものだったが、そのテストに関しては2割ほどしか点が取れなかった。

当時は何故答えられないのか不思議だった。会話が流れてそのあとで聞かれる内容も難しいわけではないのに。

当時から、本当にただ不思議、という感情だった。

いまだにこういうテストをやっているかどうかわからないけど、まだやっているなら小学校の先生にお願いがある。

他の項目と比べて聞き取りテストの点に差がある子供がいたら、そういった障害の可能性を考えてほしい。

それだけで少しでも生きやすいようになるから。

adventar.org

はい

タイトルの元ネタはこちら

adventar.org

小林銅蟲先生の"飯にしましょう"面白いのみんな買いましょう。

https://amzn.to/2KNynHz

1

正直、あんまり昆布が好きになれない。

生まれと育ちは三重県であるが、三重県を関西にカテゴライズしてしまう雑な他県の人間からすると不思議であるかもしれない。

一般的に関西は昆布だしで関東は鰹という風潮は広く認知されているが、三重は関西ではないので当然だが昆布だしではない(あくまで自分の観測範囲)

西東における出汁は食べていた食品の違いや醤油に含まれる旨味成分説がある。

そこをベースに考えると三重(主に松阪、伊勢をさす)は魚介類が多く取れて消費される点、醤油発祥の地である和歌山が近いこともあってグルタミン酸の多いたまり醤油を使う点を考えると当然のようにも思える。

2

と言いつつ、真鯛の昆布締めが好きなので今日はそれを作っていきたいと思います。

f:id:hiroqn:20181202204538j:plain

刺身包丁がないので、いい感じの切断(デデキント)が難しい。

[f:id:hiroqn:20181202204746j:plain

包みます。

f:id:hiroqn:20181202204820j:plain

数時間放置するとエロそうな色に仕上がります。

f:id:hiroqn:20181202205028j:plain

値段の高い昆布はgradient の低いxy平面っぽいので、それを使うと波打った状態になりません。

良いですね。

なんか一口目には、あれ味薄くないかって思ってしまうけど噛んでるうちにいらないかなという気持ちに変化します。 インパクトが欲しければ塩を足します。

3

試しにマリネにもしました。

f:id:hiroqn:20181202205615j:plain

f:id:hiroqn:20181202205737j:plain

いい感じの盛り付けができなかった図です。参考しにしてください。

すごい味気なさを感じる。今までにない何か

旨味、なんだろう少ない確実に

中途半端はやめよう、とにかく最後までやってやろうじゃん。

ということで、たまりやバルサミコ酢や塩をつけながら食べた。

そもそも真鯛カルパッチョとかも不甲斐ないときが多い。

チーズとかもっとサラダにぶっこむとか変化が必要そう

強くあたってあとは流れでお願いします。

4

adventar.org

11月ゲームポートフォリオ

1

この11月に自分のゲームポートフォリオに変化があった

以下ゲームポートフォリオについて説明

ゲームポートフォリオとは、「限られた時間でどのゲームをやるのか」を如何にカッコ良く説明するために生まれた言葉である。

投資とかはマジで関係ないし、folioのテーマはもっと仕事して欲しい。

ちなみに、日々の生活ポートフォリオは「仕事・ゲーム・睡眠」の三要素で構成されており、"仕事"銘柄は一般的に所有しなくても問題ないと言われているが、将来に対するリスクヘッジとして存在している。

説明終わり

2

実はここ2年半ほどのゲームポートフォリオOverWatchがほとんどで、夏頃fortniteの割合が増えていたがそれでも半数以上はOWだった。

ところがこの一ヶ月はCoD:BO4をずっとやっている。

実はCoDは前作のCoD:WW2もちょっとプレイしたのだが、その時はあまり面白さが感じられなかったのですぐ辞めてしまった。

https://amzn.to/2G1y2C6

CoDを知らない人に簡単に説明すると、「オンライン上で銃で人を撃つゲームである」。

実はこの説明は大嘘で「オンライン上で銃で人に撃たれるゲームである」、これが正しい。

いやいや、だいたい撃たれる数と撃つ数って同じになるでしょ?って思うかもしれないけど、年収の平均値より年収の中央値の方が低くなる世の中なのでそうはいかない。

めちゃくちゃ銃で人を撃ってくる人間がいて、その人たちがもう滅茶苦茶撃ってくるのである。そのせいで半分以上の人が銃で撃たれるゲームなのである。

じゃあ、なんでそんなゲームやってるんだって思うかもしれないが、そこがCoDのすごいところである。

普通撃たれるとそこそこ不快である。もしオフラインで銃で撃たれたら「ちょっと不快」ではすまなくて当たりどころによっては死ぬわけだが。

だけど、CoDはその銃で撃たれるゲームをずっと作っているので銃で撃つゲームと錯覚させてくれるのである、もう銃で撃たれるプロ、本社に向けて発砲しても大丈夫なんじゃないかな。

とはいえ、そのことを理解しないまま撃たれて発狂している人もいるけど「撃っていいのは撃たれる覚悟のある奴だけだ」というセリフをよく理解した上でゲームをしましょう。

3

CoDの場合、敵が見えてから自分が死ぬまでの時間がかなり短い。なので、敵が見え次第、すぐに狙って撃つ必要がある。

とはいえ、「人が見えたら狙って撃つ」という認識でゲームをするのは難しい。

そもそも、ある点をじっと見て差分を探すという行為はAHA体験の実験(ゆっくり変化する画像の中から差分を探す)などにあるように難しい行為なんじゃないかと思う。

人間の認知が離散的である(と仮定して)のに対して連続的な変化に気づきにくいのは当然に思える。

また、"狙って撃つ"という行為もフェードバック制御と同じで人間だと離散的になりやすい。

そういった点を踏まえてうまい人のプレイを見ていると以下のような動きをしている人が多い

ある点に敵がいるだろうと仮定した上でそこを狙いながら見ていなければ次の敵がいそうな場所を狙いながら見る、という行為を1秒間に2,3回している。

これはかなり合理的で、連続的な変化を見る必要がなくなる。

また上達する指標も明確で、敵がいそうな位置に対する読みの精度と狙うまでの時間,頻度が改善されれば良いだけである。

けど

それができれば苦労しねーんだよなぁ

adventar.org

Netflix in train

1

ここ最近は電車の中でnetflixを見ることで、生活の質を上げる行為に励んでいる。

いままで電車のなかではrssを消化するだけだったが、日常生活に映像作品が紛れ込むことは思っていたよりも発見にあふれていた。  

しかし、イヤホンを定常的に持ち歩く健常性を発揮できない人種にとっては三割ぐらいの確率でnetflixを見ることができないのである。   こうしてブログが書かれる。

2

最近見ているのは i am a killerという作品で、

死刑囚(厳密には第一級殺人の罪に認定された人)へのインタビューとその裁判や関係者にフォーカスしたドキュメンタリである。

www.netflix.com

回によってコンセプトが違うが、おおよそは死刑囚へのインタビューから始まり担当検事、死刑囚の家族や被害者の家族へ、90日後(法制度の都合っぽい)再び死刑囚に、といった構成が多い。

再現ドラマが少ないのはいい点で、再現ドラマは一方的な事実認定をしてしまうつまらなさがある。ドキュメンタリではやめて欲しい。

3

犯罪関係のドキュメンタリは良く見るのだが、当然、日本とアメリカ(各州)でかなり法制度が違う。

陪審員制度、裁判の進行、死刑に対する基準、死刑制度の有無。

この作品を見た場合、そういった発見や驚きは当然出てくる。

州や時代が違ったりはするので一概には言えないけど、裁判上の人種差別や検察側の不正があるように思えたりもする。

だけど注目するのはそこではなく、犯人の生まれて事件がおきて現在までを偏見なく見ることであるように思える。

この作品は死刑制度に対して何かしらのスタンスを表明するものではなく、第一級殺人に相当する刑罰としての死刑に向き合うものである。

4

作中で出てくる死刑となる基準に、「社会にとって危険であるか」がある。

おおよそこの点を軸に作中では事件に向き合うことになるが、それは本当に事件という一つの"点"でわかるものなのだろうか。

日本だと永山基準があるだろうが、アメリカ(各州)の場合、裁判官ではなく陪審員に対するものである。

そういった環境だからこそ作られた作品でもある。