2020年目標と達成するために
2020年 目標一覧
- 自己管理
- お金の出入りの把握
- 週5時間運動する
- 学習
- Kaggle Expert を目指す
- 応用情報の取得
- この目標を忘れない
達成のための工夫案
お金の出入りの把握
毎日30分家計簿をつける時間をスケジュールに組み込む。
支払いはできるだけクレカかLinePayにして手間を減らす。
週5時間の運動
スケジュールに組み込む。
内容は週の初めに決めておき、当日はこなすだけにする。
Kaggle Expert を目指す
3月までに「Kaggleで勝つデータ分析の技術」に目を通す。
順位や精度は指標にしない。費やす時間を週単位で管理する。
応用情報の取得
朝起きる練習をする(最重要)
この目標を忘れない
スプレッドシートを利用、slackで毎週リマインドするなど。
報酬で釣る。
ほしいものができたら、その欲求で頑張る。
- ポケモン不思議のダンジョン → Kaggleの本読んだ後
今年も一年がんばろう
JavaからGitBashを実行したい
できた
ただし事前にC:\\program file\\git
を環境変数に追加しておく.(git-bash.exe と簡単に記述するため).MacやLinuxの場合は `cmd
ではなくて,対応するやつを使う.
private void openGitBash(String projectName) { try { // windows only ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "start", "git-bash.exe"); pb.directory(new File(".\\" + projectName)); Process process = pb.start(); int ret = process.waitFor(); System.out.println(ret); } catch (IOException exception) { exception.printStackTrace(); } catch (InterruptedException exception) { exception.printStackTrace(); } }
pb.directory
で実行するディレクトリを指定できるのと,pb.start()
の例外処理をきちんとするのがポイント.
調べると,processBuilderではなく,Runtime を使用している記事も見かけるが,最近のJavaではprocessBuilderが良いようだ(Rntime も内部的に processBuilder になっているみたい)
茜ちゃんタイマーの野望
これまで
Python version
たまに茜ちゃんが応援してくれるタイマーできたー
— o_danny (@dannyso16) November 16, 2019
声はデフォルトのままやけど
ドット絵:マイラさん pic.twitter.com/2cLZYNZZoj
機能としては
- タイマーのスタート,リセット(一時停できない)
- 15分ごとに応援してくれる
ようになっていた.何分経過したか教えてくれるのと,30分経つと休憩を促してくれるので常に起動してる.
これは Python3 で書いてた.使ってたゲームエンジン pyxel のウィンドウサイズの限界が500x500であることと,将来的にタスクバーに常駐させたかったので,Javaに書き換えることにした.
Java version
単に移植するだけでは面白くないので,機能を追加することにした.
茜ちゃんが Git ローカルリポジトリの状態を大雑把に教えてくれるようになった pic.twitter.com/hGJyXs9X3j
— o_danny (@dannyso16) December 13, 2019
今のところ Python 版の機能に加えて
- 各リポジトリの
git status -s
の行数を表示 - 今何してるか表示
できるようになった.
これからの予定
これから実装したい内容は
- 各リポジトリに簡単に飛べるようにするボタン
- 作業時間と作業内容を記録して可視化
- remote との差分(これ結構知りたい)
- しゃべる内容を増やす(生成モデルわんちゃん?)
- todo の表示
- 起動,シャットダウン時のよくする作業の自動化
など.
とりあえず自分が便利に使えるようにぼちぼちやっていきたい.
アレシボメッセージ調べた
メモ帳に「アレシボメッセージしゅごい」と書いてあった
気になったので調べた(メモした当時の記憶がない…)
en.wikipedia.org
概要
アレシボ・メッセージ(Arecibo message)は、1974年にアメリカ・プエルトリコにあるアレシボ電波望遠鏡の改装記念式典において宇宙に送信された電波によるメッセージである。このメッセージは地球から約25,000光年の距離にあるヘルクレス座の球状星団 M13 に向けて送信された。太陽系外の天体をターゲットとしたものとしては電波によるMETI(Messaging to Extra-Terrestrial Intelligence)、すなわちActive SETI(能動的な地球外知的生命体探査)の最初の例である。(Wikipedia より)
ここには以下のようなメッセージを詰め込んだ(図の上からおおよそ色も対応させた)
- 1~10 までの数字
- DNAを形作る水素,炭素,窒素などの原子番号
- DNAに含まれるヌクレオチドの数
- DNAの二重らせん構造の図 - 人の絵と平均身長
- 地球の人口
- 我々のいる太陽系の絵
- アレシボ電波望遠鏡の絵とパラボラアンテナの直系
全体で二進数1679けたで,210byteある.1679桁というのがポイントで,これはふたつの素数23, 73 の積なので,四角形に並べるにはこの二通りとなる.縦横逆に並べてしまった場合は意味をなさないので,受信し解読しようとする知性があれば解読できるだろうという意図のようだ.
英語版のWikipedia に詳細が書いてある.おもしろかった.
乾燥
読んでるときにこの本思いだした.
空間的にも時間的にも知的生命体がいる確率はかなり低いといわれている.地球の歴史のうち人類が生きている時代の短さを考えてみても,宇宙の広さに対して我々が移動できる空間の狭さを考えてみても,交流できるほどの近さに二つの文明ができるのはほとんどない(生命がいても微生物みたいなものだろうとか言われたりしてる)
遠いどこかでこの電波を受信してるタコ星人をイメージしたら楽しくなった.宇宙人にあってみたい!!
30日ではできないOS自作入門を借りた
勢いで借りた!!!
30日ではできないと思うけどファミコンエミュレーター目標に精進していきたい pic.twitter.com/VfK5HsXvKD
— o_danny (@dannyso16) December 5, 2019
先駆者を調べると,毎日進捗書くといいながらも数日で挫折している人が結構いる.
モチベのために最後までやり切った人の記事をまとめとく.少しづつやっていきたい.
qiita.com ↑毎日書いてやり切った人!slackに記事が来るように設定しとこ.
bttb.s1.valueserver.jp ↑サラリーマンでやりきるのはまじで強い
blog.haramishio.xyz ↑一日2,3時間できっちり一か月でやり切った超人
vanya.jp.net
↑つよそう
今の状態
目指す姿(数か月後)
ファミコンエミュレータ作りたい(調査)
ファミコンエミュレータ作るのすごいなあぁぁぁ!!!
rustファミコンエミュ進捗です(すごくうれしいhttps://t.co/VvBct6k8EX pic.twitter.com/fdJ1xN1JUL
— kamiya (@kamiya_owl) September 9, 2019
が,知識がまったくない.CPUの命令の実装とかよくわからん.いつかの自分のためにリンクをまとめとく.
調べたもの
kamiyaowl.github.io rust (さっきの人)
yuiki.hatenablog.jp Kotlin
qiita.com Javascriptの方のまとめ
sairoutine.hatenablog.com 別の方のjs実装
nesdev.com ここにすべてがあるらしい
hp.vector.co.jp テスト用のROMなど
gikofami.fc2web.com ファミコンプログラミングのこと
medium.com 雰囲気がわかる
yizhang82.dev
概要と進め方
方針
記事によると
- CPUから始める
- NES ROMのサポートを追加
- PPUを実装
- スクロールのない簡単なゲームに挑戦(Donkey Kong/Popeye/balloon fight)
- スクロールの追加
- Yスクロールのあるゲームに挑戦(Ice Climer)
- スーパーマリオに挑戦
- APUサポートを追加
- mapoer を追加
- エミュレートがtricky なゲーム
- 機能拡充(デバッガ,セーブ/ロード,チートetc)
多くの人が7. スーパーマリオに挑戦をゴールにおいてるみたいなので,ここを目指そう.
うまく行かないとき
絶対詰まりまくって死ぬので…
- ログを使う.
- デバッガサポートのある既成のエミュレータと比較する.
- 時間があれば,自分でデバッガを作る
最後に
いつかやろう(いつやるんだろう…)