俺は管理ができない

はじめに

この記事は、FUN(?) Advent Calendar 2019の12/21日記事です。 なんとなくカレンダーを立ち上げた本人が遅刻するというこの体たらく。

これほどタイトルに説得力を持たせる冒頭がかつてあっただろうか、いやない。

この記事を書いている人

箱型未来大学の終止課程です。

おそらくADHDだと思われます。

この記事で書くこと

この記事では、安易に修士課程を選ぶと終止過程になるぞという己の後悔を公開wしてやろうと思いましたが、完全に自業自得という締めの一言が見えたためそれは控えます。

代わりに、これまで研究管理のために使用したツールと使用感についてざっくり書き記しておこうと思います。

以下が本記事の目次です。

なぜこの記事を書くのか

これは本題に関係がありませんが、この記事を書くに至った理由なので付記しておきます。

前述の通りですが、私はスケジュール管理・タスク管理・進捗管理などの管理と名のつく事柄があまりできません。 これに類する事柄として、本年は同じ学会の提出締め切りを二度間違え、ポスターが必要であることも見落としていたため、出立の前日にポスターを印刷するなどしました。(すごい辛かった)

また、普段の進捗報告においてもこれまでに何を行なったのか覚えていない、ということがままあり、これから行うこと、これまで行なったこと、ひいては研究を管理することがとてもできていません。

人生を四半世紀近く生きた上で、己にいかに信用が置けないことかが分かります。 そこでツールです。

普通の人間様に生きられない以上、ツールで身体を拡張し、下駄を履かせることによって普通に近似されなくてはいけません。

この下駄の情報は、同様の苦悩をもつ後輩諸氏、もしくはそうでない後輩諸氏にも有用な情報になるはずです。したがって、本記事を認めます。

人間は不出来な生き物なので。私はねこです。

本題

Boostnote

私が一番最初に使用したツールです。

f:id:enkiseijin:20191223135410p:plain
boostnote

  • 用途:研究ノート・論文メモ
  • リンク:公式サイト
  • 利点:UIがかっこいい
  • 欠点:モバイルアプリ開発がストップしていた?

プログラマ向けのMarkdownで記述することができるノートアプリです。

Dropboxと同期させることで、端末問わず使用ができます。(PCはね) 何よりUIがかっこいいし、Markdownの記述ができ、チェックボックスの作成とともにプログレスバーが表示されタスク管理はしやすいし、UMLの作成、タグ付け・検索機能もあります。

あと、vim移動ができます。

気づいたら使わなくなりました。 大きな点としては、モバイルアプリの開発が使用し始めた時点では(恐らく)止まっていた点、vim移動すると反応がぎこちない点だと思われます。

スマホで気づいた時に確認できるというのは、見返すという作業に心理的障害を感じる私にとっては特に重要視したい部分です。私が使用していた当時は、一度リリースされたモバイルアプリがストアから撤退してしまった後で、自分でアプリをビルドしなくては使用できませんでした。

ただ、公式ツイートを見ると年末までにはモバイルアプリのリリースを予定しているそうなのでこれから使う分にはいいかもしれません。

あとは、小さな画面だと気持ち操作しづらかった点ですね。 ラップトップのみで作業を行うことが多いので、フルスクリーン以外だと使いづらいという点がnot for meでした。

OneNote

f:id:enkiseijin:20191223145322p:plain
onenote

  • 用途:論文メモ
  • リンク:公式サイト
  • 利点:ペン入力が可能
  • 欠点:ノー人権PCにはきもち重たい

みんなだいすきまいくろのノートアプリ。

tex形式での入力にも対応しているので、論文のメモに良い(ただしこれはboostnoteの方がよりtex形式に近く使用しやすい)。 UIはまいくろのいつものやつって感じです。モバイルでも見れるし、いい感じです。

youtube動画のペーストができるなど、コピペ特化という印象があります。

ノー人権PCを使用していると気持ち重たいときがある点、OneNote独自のノートコンテナーが使用しづらいので論文用(特に英語論文)にしか使用してないです。google翻訳をベタベタ貼ります。(おれはえいごができない)

あとタスク管理もまあ使いづらいので、別なツールで管理した方がいいです。

ついでに言うとUIが本当にいつものって感じなので、かっこいいツール使ってるとアガるっていう人類には向かない様な気がします。

GitHubのissue/milestoneとwiki

f:id:enkiseijin:20191223153346p:plain
GitHub

  • 用途:進捗管理・メモ
  • 利点:コードと一緒に管理できる
  • 欠点:リポジトリをまたいだ文章の編集をする時に困る

先にGitの話をします。

卒論・修論を書く人々は絶対にgitでのバージョン管理を検討しましょう。 そんなに難しくないので。 ガバガババージョン管理でも、ある日突然の変更でコードが死んでしまうよりはましです。

Gitのホスティングサービスは、ローカル以外にもバックアップができる上に、情報系大学生にはポートフォリオとして利用できるため使用した方が良いです。 種類としては、GitHubの他にBitbucketやGitLabが有名どころでありますが、GitHub Educationが使用できる今、学生の個人利用にはGitHubが一番かと思います。

何しろ、集合知の絶対量が違うので。

BitbucketやGitLabを使用していたこともありますが、エラーで困ったなとなった場合に「GitLab エラー内容」でgoogle検索のトップに出てきたのがGitHubについての内容、という状況はよく有りました。

特に希望がなければGitHubを使っておきましょう。

ここからはGitHubの話です。

GitHub内ではそれぞれのリポジトリ毎にissue/milestoneとwikiを設定できます。

このmilestoneにいつまでにどの様な機能を追加するかや、どんなことをしなければならないかを追加し、issueにさらに小さい単位で達成しなくてはならないことを記述します。 issueはmilestoneと紐づけることができるので、これを紐づけることでタスク毎の進捗管理を行うことができます。

また研究メモにはwikiページを利用することで、研究についての情報を一つのサイトで統括的に管理することができます。

タスク管理・進捗管理の他にも、コミットメッセージで細かいコードの変更内容も把握することができ、コードのバックアップもできる。 通信環境がそこにある限りサイキョーのソリューションであると言えます。すくなくとも私はそう思います。

きちんと管理ができている場合は。

タイトルを復唱しましょう。俺は管理ができない。

そう、俺はリポジトリの管理もできない(冒頭のmilestoneの画像から察せるとも思いますが)

正確に言うと、修論もしくは研究と言う単位でリポジトリを管理していなかったため、研究全体を俯瞰したい時にめんどくさい感じになりました。 (まあ、これには理由があって研究の内容的にコードと方向性をガラリと変更しなければならず、また元のコードも実験のために残しておきたかったため、この時からリポジトリを分けるかとなりました)

GitHubにはProjectというタスク管理機能も存在しており、ここをうまく活用するといい感じにリポジトリリポジトリをまたいで情報管理ができるのではと思います。使っていないのでぼくはわかりません。

私はどちらかと言うと毎日コードを書く人間ではないので、そうなると自然開かなくなりましたGitHub。コード書かない時に、関連するコード以外の情報もwikiに収集するとなったとき、開くのがめんどくさいとなりました。

だめにんげんなので・・・(ねこですが)

Scrapbox

これは、先輩のインターネットおキャットに教えていただいたサービスです。

f:id:enkiseijin:20191223154225p:plain
Scrapbox

  • 用途:いろいろなメモ
  • リンク:公式
  • 利点:勝手に記事同士をリンクして表示してくれる
  • 欠点:たまにわかりづらい

Scrapboxは最近使用し始めたばかりですが、とっちらかった状態の小さな情報をわかりやすくまとめるという点で、とても有益なサービスであると感じています。

これは、Scrapboxが記事内のタグを整理し、視覚的にリンク表示してくれるところにあると思います。 この記法もブランケット[]で囲むだけなのでMarkdownほど複雑では無いのが良いところだと思います。

f:id:enkiseijin:20191223162627p:plain
リンク機能

(初潮とか調べてあるのは気にしないでください)

とっちらかりキャット的には、タスク等の見直しに当たって感じる心理的・物理的ハードルが低ければ低いほど助かります。なので、例えば締め切りタグ同士が視覚的に表示されていてくれる方が助かります。

あとは、散らかしておいても綺麗にしてくれるところも良いです。お母さんかな?

通信環境があればAndroidだろうがiPadだろうがMacだろうが閲覧できるところも良いですね。 今は青函トンネルですらある程度通信ができるので、強いて通信環境が無い場合を想定する必要はあまり感じません。 どうしても必要な場合はgoogle ドキュメントを使用するのがいいかなと思います。

公開情報もたくさんあるので、それを参考にある程度情報の編集方針をつくることができます。

欠点は、強いて挙げるならアイコンの変更とか、細かいカスタマイズがしづらかったりすることですが、前述の公開情報を頼りにすればある程度解決が可能なのであまり不便は感じていないです。

締め

本記事では、情報の管理ができないオタクがこれまでに使用したツールとどのように使用したのか、その使用感をなんとなくまとめました。 まとまったかは定かではありません。 なぜならまとめることができないので。

本当は、手帳とか付箋とか物理的な奴や一人slackとか、色々使ってたりするんですが、それはまあめんどくさいので・・・

締めは干し芋です

www.amazon.jp

俺同人を作ろう

タイトル通り、pixiv FACTORYで俺用の同人誌を作った話です。 取り急ぎなので後で文体を整える予定です。

pixiv FACTORYについて

みんな大好きpixivのグッズ製作サービスで、題目の同人誌からアクキー・Tシャツなど様々製作することが可能です。 製作したグッズは同社サービスのBOOTHにて販売することが可能で、在庫を持たずに同人グッズを作成可能です。

今回はこのBOOTH提携サービスを利用し、同人誌を作ることで自分用の一冊のみを印刷しました。 (これは後で気づいたが、個人用で一冊するだけならBOOTHで販売しない方が安かった)

手もとに届くまでの流れ

  1. テンプレートのダウンロード
  2. テンプレートに合わせて原稿の用意
  3. pixiv FACTORYにてデータの登録(入稿)
  4. BOOTHストアの開設
  5. BOOTHストアで書籍の販売
  6. 購入

テンプレート

以下からダウンロード、原稿の作り方も参照のこと factory.pixiv.net

データは奥付けとノンブル(ページ数)を忘れないこと

本の綴じ方向によるが、ノンブルの位置は奇数ページと偶数ページで変えた方が良い

入稿

f:id:enkiseijin:20191215002209j:plain

上記の原稿の作り方リンクの末尾にあるお試し入稿からそのまま入稿できる。

選択肢

  • サイズ A4〜A6、B5、B6が選べる
  • ページ数 本文+4ページ(表紙の分)
  • 印刷色
  • 綴じ方向

無事にデータが登録されると、pixiv FACTORYのメニューの作った本にデータが登録される。 ここでBOOTHで販売するかどうか聞かれるので、販売するならばBOOTHのショップアカウントを作ることになる。

下図は、作った本メニューで登録されたデータを参照した画面の一部。 f:id:enkiseijin:20191215003342j:plain (BOOTHで売るよりもここから印刷を注文→1〜5冊を選んだほうが安い)

本の仕様

2種類選べる。今回は初めてなので安い方 f:id:enkiseijin:20191215003914j:plain

安い方でも本文紙質は色々選べた。テキトーに選んだ。 f:id:enkiseijin:20191215004021j:plain

表紙の選択肢は少なめ f:id:enkiseijin:20191215004131p:plain

料金

640円プランなので、640円の書籍代、(BOOTHの使用上利益を100円から登録しなくてはいけないので)100円、送料324円 f:id:enkiseijin:20191215004446p:plain f:id:enkiseijin:20191215004453p:plain

BOOTHでなくFACTORYで直接印刷した方が安いのはこのマージンの登録が必要なため。 支払い方法は、クレジットと銀行・コンビニ振り込みを選べる

届くまで

f:id:enkiseijin:20191215004532j:plain ここから、発想まで一週間と輸送の2日で届きました。存外ながい

よくわかるような気がする仮想通貨

よくわかるような気がする仮想通貨

この記事は,FUN Advent Calendar 2018の12月9日記事です.

前日の記事は,明石暁くんのコード進行をコーディング with Prologでした. 講義でやった時はすごく好きだったんですけど,使わないと忘れますね,Prolog

案の定Prologおじさんに捕捉されていてちょっと笑いました(Prologおじさんから回ってきた).

この記事で書くこと

覚えていたので仮想通貨(暗号通貨)の話をふわってします. 項目はこんなかんじです.

この記事を書く人

公立箱型近未来大学の修士です. 最近,バイトで仮想通貨にふわっと関わっています.

毎年「自分がわざわざアドベントカレンダーに書くことなんかねー!!!」というスタンスでしたが,本学生でブロックチェーンや仮想通貨周りの人口は少数と見られるため,「書くことあるじゃ〜〜ん」ってなったので仮想通貨周りの概観なんかをにょわ☆にょわ☆します.

f:id:enkiseijin:20181209190819p:plain

スマートコントラクト周りは,どこぞのメカのヲタクの方が詳しいと思います.

仮想通貨とは

仮想通貨と言ったらビットコインリップルモナーなんかは聞いたことがあるんじゃないでしょうか? この投稿では,ビットコインを軸に話を進めていきます.

仮想通貨は英語では"CryptoCurrency"と表記し,直訳すると暗号通貨になります.(界隈ギークは特にこの名称を好むそうです)

日本では仮想通貨という名称がバズワード的に流行しましたが,個人的な予想として,これはビットコイン提唱者のSatoshi Nakamotoが論文中で使用したElectronic CashやElectronic coinからかな〜?と思っています.

仮想通貨は,先述したSatoshi Nakamotoという正体不明の発案者が,暗号界隈のメーリングリストに突如流した論文から誕生します. これは,2008年10月31日のことで,そこから数えると今年で誕生から10年を迎えています. 原論文は,Bitcoin: A Peer-to-Peer Electronic Cash Systemというタイトルで,日本語で読むビットコイン原論文という日本語化されたものも存在しています.

Satoshi Nakamotoは,そのあまりにも画期的なアイデアもさることながら,加味して人種・年齢・性別・個人かどうかなどが一切正体不明の人物であるということもあり,半ば神格化されている部分があります.開発者に宗教か?と問えば宗教ですよという返答もあります(これはマジ).

実際,つい最近にも宗教戦争が起きました. お前,宗教記事ばっか書く身にもなってくれよ〜〜〜〜〜〜

この画像は私のウォレット内の仮想通貨総額です. 私のウォレットには,最近めちゃくちゃ暴落したBitcoin Cashくんが入っています. (自由に名前が付けられたので天才ゲロ可愛ネームを採用しています)

仮想通貨は,その名の通り現実的な物質ではありません. では,なぜ現実に存在しないデータが二円の価値を持つのでしょう?

最近流行った原価の話題にありましたが,日本銀行券の1万円の原価は約20円だそうです. ですが,日本銀行が発行したという信用が残りの価値を担保しています. 仮想通貨は,この信用を電子的に担保することで,現実の紙幣と同等の仕組みをネットワーク上に再現することを可能にしました.

(大学生だとクレカの持ち始めと言うことで,信用が金銭的にどれだけの力を持つかは知っていると思います)

ただし,これだけではただの電子決済となんら変わりがありません. しかし,仮想通貨は信用の担保にブロックチェーンという技術を使用することで,中央銀行のような中央集権型の信用発行機関を不要にしています.

ブロックチェーン

ブロックチェーンは,その名の通りブロックの鎖で以下の手順で構成されています.

  1. 通貨のやりとり(トランザクション)を,まず一つのブロックに入れる
  2. ブロックがいっぱいになると,次のブロックが作成される
  3. 前のブロックの上に積み上がる
  4. 繰り返し

市場では,最もブロックが積み上がったチェーンが信用され,途中で突き崩すことはできません. ブロックおよびトランザクションは,専用のエクスプローラーを使用することで中身を知ることができます. (Genesisブロックの例)

偽のトランザクションを途中で挿入したい時は,それまでのブロックが積み上がったものと同じものを初めから用意し,偽のトランザクションにつながるように最長のチェーンを作ってやる必要があります. これには莫大な計算量がかかるため,その計算量をブロックチェーンの運営に"正直に"利用した方が,費用対効果の点から大変効率的な設計になっています.

これは,ブロックチェーンの維持管理に計算量を使用すると報酬を得ることができるからです. いわゆる,マイニングというものです.

マイニング

マイニング,これはちょっと前に流行りましたね. 本学周りだと狐の先輩とかがやってましたね.

ブロックチェーンはそもそもP2Pネットワークで運用されています. そのため,ネットワークを維持する沢山のノードが必要になります. マイニングは,ブロックチェーンの維持管理資源としてコンピューターの計算力(ハッシュパワー)を使用し,見返りとして報酬を得るものです.

報酬には二種類あります.

ブロックを生成した時にマイナーに支払われる報酬は,コインベーストランザクションとしてそのブロックの一番初めのトランザクションになります. コインベーストランザクションは特殊なトランザクションで,そこから市場に流通する新たなコインが発行されます.

マイニングは,ネットワークの採掘速度によって動的に難易度が調整され,一定時間でブロックが生成されるようになっています. ブロック間隔は通貨によって異なりますが,ビットコインでは10分で一ブロックが生成されます.

マイニングには,ASICやマイニングリグと呼ばれる専用の機材が出回っています. 草コイン(出始め・マイナーなコイン)では事情が変わるでしょうが,ある程度市場価値のある通貨はすでに個人でマイニングするには厳しい難易度になっています. 個人の機器でマイニングする場合は,マイニングプールに所属するのが一般的だそうです. マイニングプールでは,マイナー同士が協力してマイニングを行うためプール内の誰かがブロックを作成できた時,分割した報酬をもらうことができます.

マイニングしたことないのでマイニングプールはよくわかりません.

暗号

めんどくさかったので,ここまであまり触れませんでしたが,CryptoCurrencyというだけあって随所に暗号が使用されています.

まずトランザクションは,公開鍵暗号方式で設計され,検証には楕円曲線暗号が使用されています. そのため,ユーザーは秘密鍵と公開鍵を持っています.

秘密鍵は,1 〜 2^{256}の適当な整数です.

公開鍵は,秘密鍵楕円曲線暗号にかけて生成された値です. (本学のプロジェクトにもありますよね楕円曲線暗号するやつ)

送金などに使用されるアドレスは,平たくいうと公開鍵から生成されています. 解説はしませんが,以下の式で生成されています.

Base58(SHA256(SHA256(00+RIPEMD-160(SHA256(pubkey))))+checksum)

例えば,これはさっきのウォレットのアドレスです.

bitcoincash:qqmra4r3jf2p55ejxhtge65lj3p2kqrnpcrjhsddps

ここにBitcoinCashを送金してくれると,私が受け取れます.

ウォレット

仮想通貨は,ユーザーの鍵で管理されるウォレットに保管されています. ウォレットには以下のような形態があり,ウォレットごとに対応通貨が異なります.

  • オンラインウォレット
  • モバイルウォレット
  • クライアントウォレット
  • ハードウェアウォレット
  • コールドウォレット

上位のものほど手軽に扱うことができ,下位のものほどハッキングリスクが少ないとされています.

ハードウェアウォレットは,USBでPCなどに接続できる専用端末です. また,コールドウォレットは,石や紙など現実世界の物質にアドレスと鍵が印字されたものです.

大きな資産はコールドウォレットに入れておき,使用する分だけ利便性のよいウォレットに入れるのが良いとされています.

ハードフォーク

仮想通貨は,法定通貨とは異なり分裂します.

ブロックチェーンは,P2Pで運営されている以上ブロック追加のタイミングでチェーンのフォークが発生します. フォークしても,最長のチェーンに従うという原則があるため基本的には問題がありません.

また,通貨のプロトコルに変更があった場合にもフォークが発生します. 新旧のプロトコルで互換がある場合にはソフトフォークが,互換がない場合にはハードフォークが発生します.

後者のハードフォークが起こると,ネットワーク上のノード仕様が統一されない場合,2つのチェーンが発生します. 最長チェーンに従うという原則がある以上,いつかはハッシュパワーの高いチェーンが生き残りますが,ここでそれぞれを別のものとして扱うように変更を加えると,チェーンが分裂し新たな通貨が生まれます. ビットコインから分裂していった通貨は,アルトコイン(Alternative Coin)と呼ばれます.

たとえば,所持している通貨が分裂した場合,分裂前に持っていた通貨は通貨Aと通貨Bに分かれます. 元々が同じ2つのチェーンに残高がそれぞれ存在する形になり,平たくいうと所持している通貨量が増えます

ただし,ハードフォークがおきると市場が不安定になる場合があり,量が増えるといっても額面が増える訳ではないので注意が必要です.

わたしのウォレットに入っているBitcoin Cashくんは,ハードフォークのせいで随分とまあ無残なことに....

おわり

何を書くか決めてなかったこともあり,何を書いていいのかよくわからなくなったのでとりあえずここら辺で終わりたいと思います.

本当は,Segwitだとかブロックサイズだとかビットコイン原理主義者とか,もっと話がいっぱいあるのですが長くなるので,なんか思いついたり,要望があったら続きを書きます. あと間違いがあったら教えてください.

あと,欲しいものリストの代わりにチップ(1円)でもよろしくです.

明日は,かわいいかわいい後輩の🍤くんです.