folio(ios)のui/ux辛いところ

folioのアプリで諸々の諸行無常をチェックするのだが、UI上辛いところがあるので書く。株価が上がらなくて辛いところは書かない。

リバランス手続き

リバランス手続きというものがあって、あるテーマの株のバランスが価格の変動で変わってきたから情弱の君にサジェストしてあげるよっていう機能である。

f:id:hiroqn:20181207231640p:plain

このソニー+1株というのは新しく1株足すというのはわかるんだけど、元の株数が幾つなのかわからないのである。

一応、リバランス前のタブを押せばわかるんだけどこのように複数の種類についていちいち切り替えるのがクソ面倒で手続きする気を失ってしまう。

今4株持っているので、4(+1)4 -> 5とかでいいでしょ。

株価表示

まぁ、株価が見れるんですけど。

f:id:hiroqn:20181207232607p:plain

そもそもこの画面は結構操作しにくいんだけどそれは日付を見てわかるように結構長いスパンなのだ。

あと、いつこの株を買ったのか出して欲しい。それかなり大事な情報じゃない?

テーマの価格遷移

あるテーマの価格遷移を見ることができる。それがこれだ。

f:id:hiroqn:20181207233206p:plain

この2018/10/26の部分を見て欲しい。ここは株が爆上げしてHappyという図ではなく、ただ単にリバランス手続きをして持ち株が増えただけなのである。

これはマジ???っていう気持ちになって、このグラフ結構無意味やんけ...ってなった。気持ちの問題としてリバランス手続きが損に思えてしまう。

複数テーマをリバランスした際に

あるテーマでは会社Aの株が減るんだけど、別のテーマでは会社Aの株が増える時にそれ手続き的にどうなるねん、って思って何もしなかった。

割とマイナー部分で調べたけど出てこなかった感じ。

全ての資産

アプリトップで全ての資産が見える。(ちょっと出すわけには行かない、低いので)

実はこれ持っている株の合計じゃなくて、folio中の株の価格+folio口座の中の購入金額になっている。

しかも、その下に含み損益の金額とパーセントが出ているが過去に買った株の価格に対するパーセントなので、全ての資産に対するパーセントを期待すると違和感がある。

儲かってる感のUX

今まで書いた部分を若干含んでしまってはいるが「テーマを買っておいて良かったな」という部分があまり訴求される感じがない。

例えば、持ち株の中でこの一ヶ月で変動が大きかった株を出すとか。テーマ全体で下がることよりある会社が原因で下がる方が多いように感じる。

あと、テーマ自体が何故下がっているか何故上がっているかのレポートがあると嬉しいと思った。

あまりに漠然とマイナス、プラスというだけで(そして本当にプラスなのかもよくわからんグラフ)心理的にプラスにさせる部分がない。

まぁ全テーマが結構プラスな人はどうでもいいかもしれませんけどね(いるのか?)。

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