//tips
//基本情報理解
メモリインタリーブは主記憶を複数の独立したグループに分けて、各グループに交互にアクセスすることによって、主記憶へのアクセスの高速化を図る。
この背景としては、CPUの演算速度に比べて、主記憶装置や磁気ディスク装置のアクセス速度が低速なので、プログラムやデータの転送に時間がかかり、処理速度のボトルネックとなっている。これに対する解決策の一つがメモリインタリーブ。
命令実行中に次の命令を呼び出すことが可能になり、主記憶アクセスが高速化される。
メモリの誤り検出及び訂正を行う方式のうち、2ビットの誤り検出機能と、1ビットの誤り訂正機能を持つものとして、ハミング符号がある。
ハミング符号参考:
https://emb.macnica.co.jp/tech_blog/13232/
https://emb.macnica.co.jp/tech_blog/15780/
奇数パリティとは、データの中に1ビットの冗長ビットを加え、そのデータの中で、冗長ビットを含めて1の数が奇数となるようにして、1ビットの誤りを検出検出する。
3D映像の立体視を可能とするアクティブシャッタ方式とは、ディスプレイに右目用、左眼用の映像を交互に移し、メガネがそのタイミングに合わせて左右それぞれ交互に透過、遮断することによって、立体視を可能とする。
人は右目と左目に入力される映像の差で立体視を行う性質上、両目に同じく見える映像では立体視できないが、左右の目に異なる映像を届けることで立体視を可能にする。
//pitch deck
Mixpanelというスマホとwebの分析サービスを提供している企業のピッチを確認。Monthly recurring revenue over timeでの圧倒的な右肩上がりの成長率のインパクトがすごかった。page viewsだけではなく、サイト内の顧客の行動までを分析内容とすることが強みのよう。googleanalyticsのカスタム設定でもできそうな内容なので違いの説明があったら嬉しかった。
https://www.pitchdeckhunt.com/pitch-decks/mixpanel
//smart contract
早速スマートコントラクト開発を行うツールのセットアップに入っていく。
・イーサリアムクライアント
・Node.js
・TruffleとGanache
Truffleはコントラクトのテストとデプロイをするためのユーティリティを持ち、Ganacheはアプリケーションをローカルで実行するためのローカルブロックチェーン環境を提供するもの。
Node.jsはTruffle用のjs環境。
イーサリアムクライアントはイーサリアムブロックチェーンとのやりとりを可能にする。
イーサリアムクライアントを使用するためにparityクライアントを使用しようと、
curl https://get.parity.io -L
とするがエラー。
調べてみるとこれは既に使われなくなった方法とのこと、
https://github.com/openethereum/openethereum
からmacに適合するzipをダウンロード。
https://zenn.dev/kuromoka/scraps/a8cf68d4ec033e
https://www.oreilly.co.jp/books/9784873119342/
普通にファイルを開いて実行しようとしてもメモ帳では開けませんと出てくる。
試行錯誤の末、下記サイトを発見したのでデスクトップにzipの中身を移し、そこで実行することにした。
https://www.quicknode.com/guides/infrastructure/how-to-run-a-openethereum-ex-parity-client-node
Desktop % cd openethereum-macos-v3.3.0-rc.8
chmodはファイル or ディレクトリに対する権限を設定するコマンドでユーザー区分ごとに権限を設定できるもの。
$ chmod +x openethereum
を実行した後に、
openethereum-macos-v3.3.0-rc.8 % chmod --x openethereum
chmod: illegal option -- -
usage: chmod [-fhv] [-R [-H | -L | -P]] [-a | +a | =a [i][# [ n]]] mode|entry file ...
chmod [-fhv] [-R [-H | -L | -P]] [-E | -C | -N | -i | -I] file ...
も実行してみたが変化なし。
フォルダの中を覗くとopenethereumをクリックできるようになっていたので、クリックしたらターミナルに同期出力がなされた。一件落着。
一般的にはMetamaskを利用することで、上記のシステムを触らなくても、アカウント作成の際に事前に設定されたweb3のインスタンスをwebブラウザを通して読み込むことができ、このweb3インスタンスはJSON-RPCを通じて、ブロックチェーンとやりとりする。
今まではこのやり方で恩恵を受けてきたのだ。ありがたや。
続いて、jsランタイム環境を提供するnode.jsを導入する。
curl -sL https://deb.nodesource.com/setup_10.x|sudo -E bash -
sudo apt-get install -y nodejs
これもエラーなので他の方法を模索する。