Yabu.log

ITなどの雑記

C++に入門

なんか色々やりすぎてる感じがありますが、業務でちょっとだけC++を読み書きする必要があり、ちょうど良い機会だと思ったのでC++に入門したいと思います。毎日は無理なので2日に一回くらいのペースで触ってサブブログの方にポストしていきたいです。

yuyubu-sub.hateblo.jp

  • ストラウストラップのプログラミング言語C++ 第4版を読んでいきたいと思います。

  • C++ 11以降であること

  • 言語設計者の書いた本であること

が主なチョイスの2点です。

C++11からガラッと違うみたいです。本書はC++ではこれが基本だよ!と断りなくいきなりC++11の要素がバンと出てきます。そのため何がC++11から入ったのか分からず、C++erと本の内容を話してる時に「それ11から入ったんだよ」と言われて初めて気づくレベルです。 適当に11の紹介をオマケ程度に書き足したのではなく、前版からかなりの箇所を書き直しているのではないでしょうか。

本書を読み進める上で以下のサイトが参考になりそうです。

www.attocraft.jp

挫折したら、その時は別の本を適当に選びます...

私の今までのC++関係学習履歴

一週間で身につくC++の基本の発展編(2週目)の途中まで演習問題等をやりました。

cpp-lang.sevendays-study.com

Cは以下の本で勉強しました。

yuyubu.hatenablog.com

Cの理解は忘れかけてるのも含めて結構曖昧な感じがします。ポインタのマニアックな使い方とかのコーナーケースを詰められるとと多分答えられないです。

iPhone 8からiPhone11に買い替えた

そこまでほしかった訳じゃないけど、使ってたiPhone8のバッテリー持ちが悪くなったので買い換えました。

   

proにしなかった理由

11もproもメモリとCPUのスペックは同じです。どういう違いがあるかというと

 

  • サイズ
    • サイズに関しては一番小さいのが11 proが一番小さく、11 11 pro Maxと続きます一番小さいのがほしい方はpro Max一択でしょう。
  • 素材
    • あまり興味がない飲んで割愛
  • バッテリー持ち
    • 公式サイトによると動画の再生時間がProの方が1時間長いようです。
  • 耐水性能
    • 割愛。11 proも11も8よりは上がってるらしい
  • カメラ:後述
  • 液晶
    • 2xのretinaから3xのretinaになった(がこれは目がいい人が頑張ってみないとわからないレベルらしい)
    • proのみ有機ELらしい。
      • 有機EL→ふつうの液晶に変えると品質差が結構わかるらしい。
      • iPhone XSiPhone XS Maxから11への買い替えはがっかりするかも。

の6つです。*1 メモリは4Gと6Gで差があるという情報がネットに出回っていますが、正確な情報はよくわからないです。

ここまで書いてて思いましたがどうせ2年に一回しか買わないし、他にお金使うあてもないのでProにしてても良かったかな...

カメラ

 

三眼目の望遠カメラと手振れ補正が若干11 proと11で違うようです。Twitterで出回ってるナイトモードや超広角写真は11でも撮れるようです。個人的に深夜徘徊中に廃墟や怖い雰囲気の路地などをとるのが好きなのでナイトモードはありがたいです。

f:id:yuyubu:20191006112532j:plain
11

f:id:yuyubu:20191006112442j:plain
8暗くてほとんど見えない

f:id:yuyubu:20191006112359j:plain
11

f:id:yuyubu:20191006112402j:plain
8暗くてほとんど見えてないのと照明が目立ちすぎ

 

8から変えて良くなったところ

  まぁ動作が軽快になったことはいうまでもないのでそれ以外で

faceid

 

iPhoneは傾きを検知して自動で画面がつきロック画面が表示されます。そこから

  • 顔がほぼ正面に存在
  • 目線が画面にある
  • かつマスクなどをしていない

の条件を満たすとロックが解除されます。

8までしか使ったことがないので初めてのfaceid体験です。前のfaceidとの差は分かりませんが、iPhoneを持ち上げて視界に入れると自動でロックが外れるという仕組みは非常に快適です。

ホームボタンの廃止+画面が広い

ホームボタンが廃止され、画面が本体下いっぱいまで広くなった。iPhone8なんかだと画面が狭くてkindleで小説とか読む気にならなかったけど、これなら読もうかなという気にもなってくる。

微妙なところ

ノッチ

画面上ぶ真ん中にノッチが入りステータスアイコンに表示される情報がかなり制限される。これは致命的ではないが非常に改悪だと思う。特に今BTヘッドセットが繋がってるかどうかがわからなくなった。このせいによる音楽がiPhoneのスピーカーから流れる事故が何度も起きた。ノッチを作ってまで画面スペースを拡大する必要はないと思うが。。。iPad Airのステータスアイコンエリアとノッチが比較できる画像を貼っておきます。

f:id:yuyubu:20191025045136j:plain
iPadのステータスアイコン。めちゃ広い
f:id:yuyubu:20191025045259j:plain
iPhone11のノッチ。せませま

force touch廃止

画面を押し込む感度がいろんなUIになっていましたが、これが廃止になりました。たしかにこれを上手く使ってるアプリはほとんどありませんでしたが、文字入力時やOSのUIとしてはかなりひんぱんに使っていたので無くなると困ります。

上下が分からない

ホームボタンが無くなったのでどっちが上かわかりにくい。 基本的に持ち上げたときに画面が点灯するので間違うことはほぼ無いが、以下のケースで偶に1週間に1回くらいイラッとする。

www.youtube.com

  • 横向きにして動画を見た後に縦に戻そうとする時、上下反対の向きを間違えると画面が縦に戻らない
  • 机においてあるiPhoneを上下逆向きで持ち上げた時

今から買う人は上下非対称なケースを選んだほうが良いかも。

*1:たった1つくらいのノリで書こうと思ったら調べたら結構あることに気付いた

手ぶら通勤を一週間やってみた

手ぶら通勤を1週間やって見たみたので、その記録でも書きます。 rebuild fmに出てるhigeponさんの影響です。*1

持ち物

  • カバンを持たない
  • 財布、携帯、メモ、文庫本のみ。
    • メモはJET ACEという背表紙に挿せるミニ鉛筆が付属するものを使ってる
    • 本当はすぐログという手帳が欲しかったが、同メーカーの類似品でこっちの方が安かったのでけち臭くコレをチョイス
    • メモの出番はあまりなかった。

ダイゴー メモ すぐログ 鉛筆付き 手帳 ターコイズ A1291

ダイゴー メモ すぐログ 鉛筆付き 手帳 ターコイズ A1291

ダイゴー ノート ジェットエース クロ A1155

ダイゴー ノート ジェットエース クロ A1155

メリット

  • 満員電車でもそうでなくても非常に快適。
  • 肩に感じる重さがなくなることがここまで快適だとは思わなかった。

デメリット

  • 雨が降ると傘を持参する必要が出てくるので完全に手ぶらとはいかなくなる。
  • 忘れ物が不安
  • 私物PCは会社に置きっぱなしなので、雪のときに在宅勤務に切り替えるなどの柔軟な働き方ができなくなる。
  • 電車の中で技術書を読む時間が減る。
    • 持ち歩く読み物としては文庫本を持ち歩いている。
  • 会社以外でやってる勉強会に出るときは流石に荷物が要りそう。

発展

suicaスマホのものを使えるし、この際財布もいらない気がしてきた。

総評

というわけで、カバンが必要ないなら持っていかないに越したことはありませんが、 カバン有り無しの切り替えを考えるのが結構面倒です。 少なくとも私は重要なもの(印鑑や入館書など)を特に意識せずカバンに突っ込んだまま会社と自宅を往復してきました。 カバンを持たないというのはその怠惰に向き合うことになります。

...と大層な書き方をしていますが、他の人と雑談したところ、手ぶら通勤ON/OFFの切り替え時に忘れ物が増えるのはあるあるのようです。 今後も運用するかは微妙。

Transaction,Concurrency ControlとAntichain

グラフのトポロジカルソート可/不可のみでアノマリーの検査やSerializabilityの判断をするのではなく、Order Theoryの知見をConcurrency Conntrolに活用しようという動きがあるらしい。そしてantichainというorder theoryの概念がわからなかったのでそのメモ。

本エントリはほぼwikipedia:enのantichainの翻訳です。(2019/10/25時点不完全)

en.wikipedia.org

Antichain

Order theory におけるAntichainとは半順序集合の元の内、二項関係が比較不能になる元のみを集めた部分集合のことである。

半順序集合 S中の要素a,bの間に成り立つ性質を以下のように定義する

  • comparable
    • a ≤ bb ≤ aが成り立つ
  • incomparable
    • a ≤ bb ≤ aの両方が成り立たない

comparable,incomparableの概念を導入することで半順序集合は二つの部分集合に分割することができる

  • comparableな元のみで構成される部分集合をChainと呼ぶ。
  • incomparable元のみで構成される部分集合をAntichainと呼ぶ

Height and width

f:id:yuyubu:20191025212239j:plain
二分木を例にしたchain,antichainとheight,widthのイメージ

  • maximal antichain:他のantichainの部分集合にならないようなantichain
  • maximum antichain:poset*1の中でもっとも多くの元を含むantichain
  • width:posetのmaximum antichainの濃度のこと
    • posetがk個のchainに分割できる場合、antichainのwidthはk以下になります。
  • height:posetのchainのもつ、最大の濃度のこと

    • hightとantichainの最小個数は一致する*2*3
  • 任意のantichainがchain共通部分を持つ場合、共通部分の濃度は高々1つです。

    • antichainにはcomparableな元を含めないため,あるchain(任意の元のペアがcomparableな性質をもつ)の元が複数入っていることはおかしい

Sperner families

  • あんまり関係なさそうなわりにハイコンテキストなので訳さない。原文↓

An antichain in the inclusion ordering of subsets of an n-element set is known as a Sperner family. The number of different Sperner families is counted by the Dedekind numbers, the first few of which numbers are

Join and meet operations

  • note:ここから下はあまり自信がありません...
  • おそらくorder theoryにおけるJoin,meetと言う概念の理解が必要と思われる。

  • 全てのantichainには対応する下方集合(lower set)が存在している。

  • ちなみに,Xの部分集合である下方集合Lは次のように定義できます*4

∀x∈L ∀y∈X: y≤x ⇨ y∈L
  • note:これはposetをグラフ化したとき、antichainとなる集合には必ずin-degreeが1以上にの元がある、ということかな。(antichainから開始するグラフは作れない=必ず下方集合が存在する)

  • 対応する下方集合の違うantichain A,Bに対して以下の条件JOIN操作を行うことができる。

    • A∨B = {x ∈ A ∪ B | !∃ y ∈ A ∪ B s.t.x<y}
  • 似たようにmeet操作を行うことができる

    • A∧B={x∈LA∩L|!∃y∈LA∩LB s.t. x < y}

*1:partial order setの略称。一般的なので本エントリでも使う

*2:これよくわからない

*3:Mirsky's theorem states similarly that in any partial order of finite height, the height equals the smallest number of antichains into which the order may be partitioned.

*4:https://en.wikipedia.org/wiki/Upper_set

Amazonにレビューの掲載を拒否されました

たまたま購入した商品のマーケットプレイスで偽物を出品している業者があとを絶たず、ページ内でメーカーが警告を書いているような異常な状態に出くわしました。

購入後に役立つ情報だろうと思い以下のようなレビューを投稿しました。*1

  • レビュー内容
    • 偽物が多く出回っているので正規品のパッケージを載せるので参考にして欲しい。という趣旨の文章
    • 商品のパッケージ画像を数枚掲載

数日後、レビュー掲載を拒否するという旨のメールがアマゾンからきました。

お客様レビューを送信していただきありがとうございます。

Amazonのお客様レビューを送信していただきありがとうございます。 お寄せいただきました送信内容を慎重に確認した結果、お客様のレビューをウェブサイトで公開することはできませんでした。 お時間を取ってコメントしていただき感謝いたしますが、レビューは次のガイドラインに従っている必要があります。 http://www.amazon.co.jp/review-guidelines

主な注意事項は以下の通りです:

・レビューを書く際は、その商品特有の機能とその商品を実際に使用したあとの感想を中心に書き込んでください。出品者や配達に関するフィードバックは、www.amazon.co.jp/feedback でご提出ください。
・次のようなレビューは禁止されています:不敬またはわいせつな内容(アダルト製品を含むすべての製品について)、金品などの対価を受けることを目的とした内容、薬事法等の適用法令に抵触する内容
・広告、宣伝資料、または同じ要点を過度に繰り返す投稿はスパムと見なされます。
・レビューには、Amazon 外の URL または個人的にしか特定できないコンテンツを含めないでください
・コミュニティのコンテンツや機能を操作しようとする試みは固く禁じられています。これには、誤った内容、誤解を招くおそれがある内容、正しくない内容の送信が含まれます。

不満とか怒りとかは特にないのですが、きちんとチェックしていることにちょっと驚きました。 確かに自分が投稿した内容は直接商品を評価する内容でないのは事実です。 意外とレビュー内容を人間かかなりよく訓練されたAI的なもので精査しているのでしょうか。

中華系業者による少しおかしな日本語レビューも弾けよ、と思いましたが、サクラという点では排除すべきですが、 レビュー内容は日本語が片言の外国人が一生懸命書いたレビューとなんら変わりないもののはずですし、ガイドラインには違反しないように書かれているのでしょう。

ちょっと意外だなと思ったことなのでブログにしてみました。みなさんもレビューするときはガイドラインに抵触しないように気をつけましょう。

*1:余談ですが、海外では商品が偽物でないことの確認のためにyoutube開封動画を参考にするという話を聞いたことがあります。

Chrome拡張を使ってAmazonの検索ページから怪しい中華業者を一掃する方法

正規表現でアクセスするURLを変える拡張機能を使って、以下のページで紹介されているパラメータをURL末尾につけるように置換するだけです。

n-styles.com

  • Redirector

chrome.google.com

  • 設定内容

From

(https://www.amazon.co.jp/s\?.*) 

To

$1&emi=AN1VRQENFRJN5 

f:id:yuyubu:20200903123036p:plain
設定内容はこんな感じ

f:id:yuyubu:20191022014157p:plain
before

f:id:yuyubu:20191022014315p:plain
after

なぜかスポンサープロダクトも消えるという謎副作用が???? 今までパラメータをググって自分でURL末尾にポチポチ付け足してましたが、これで検索ボタン押した瞬間にパラメータが有効になるので楽。 自分はChromeではログインせずにブラウズしかしませんが、これでそこそこ使えそうです。

※多分怪しい中華業者以外も色々消えちゃってると思いますが。

2020/09/03追記:Fromの誤りを修正。DocSeriさんありがとうございます

Hadoopの勉強をはじめました。

Hadoopはレイテンシを犠牲にIOを分散させて高速なバッチ処理を実現する技術、という程度のことしか知りません。*1

今在籍している会社分散処理やメニーコアコンピューティング、Spark,Hadoopなどをコアにやってて、エンタープライズ用のHadoop関係のFrameworkを開発・保守したり、そのSIをやっています。

ユーザーとしてFrameworkを使っている分には特にHadoopの知識は特に必要ない*2*3のですが、自分の関わってる案件でもHDFSとかの生のHadoop要素が使われ始めてきたので危機感を持って勉強し始めました。

主に勉強した内容はサブブログに連載する予定です。

yuyubu-sub.hateblo.jp

*1:この理解が正しいかどうかは不明

*2:知っとけやという話もある

*3:というかFrameworkの目的がHadoopわからないJavaエンジニアでも簡単にシステムを保守できるというものであるように思っている