オレンジがテラリアで作った回路のひとつは、1の位だけBCDで、10の位が確か39まで扱う為に3つのbitでそれぞれ10、20、30って回路になってた気がする・・・><(確か7セグデコーダを単純化する為にそうしたような気が><)
オレンジがテラリアで作った回路のひとつは、1の位だけBCDで、10の位が確か39まで扱う為に3つのbitでそれぞれ10、20、30って回路になってた気がする・・・><(確か7セグデコーダを単純化する為にそうしたような気が><)
ある程度以上の規模なら内部が完全に2進の方が小さくなるんだろうけど、極端に規模が小さいと変換する回路の方が大きくなっちゃうし、遅いかも><(テラリアで計算機つくって遊んでたのかなり前だから細かい事忘れちゃったけど><;)
小さいデジタル計算機の回路を実際に作ろうとすると、最初から最後まで2進で扱う(=入力も表示も2進)では無い場合は、内部が2進だとんでもなく巨大になっちゃうと言うことに、テラリアで計算機作って遊んでて気づいて、カシオの計算機の回路とか見て「なるほど><;」ってなったかも><;
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
これ途中まで書いてみたけど、出来なくは無いっぽいけどめちゃくちゃ長くなっちゃう・・・>< https://mstdn.nere9.help/@orange_in_space/99529610383371625
(Mキーがあってsqrtボタンが無いRPN電卓なんてたぶん無いだろうから意味無いだろうけど><;(sinclair scientificにはMキーないし)))
「普通の電卓」の仕様を知らない人が多くてオレンジがびっくりしたニュースこれ><
Windows 10の電卓アプリは演算子の優先順位を無視する? | スラド idle http://idle.srad.jp/story/16/11/18/2148221/
20代位の人でも「(今となってはわざわざそう作ってる)普通の電卓の仕様」を知らない人かなりいるっぽいし、物理的電卓は別として、スマホとかのプリインストールの電卓アプリはもう関数電卓モードだけでもいいような気がする・・・><
「普通の電卓」の挙動、当時の性能上関数電卓みたいに式全部覚えて計算なんてコスト的に難しい、かといってもっとずっと古い思いっきり古いRPNに近い(けどちょっと違う)挙動の電卓では、一般人にはきっと使いづらい・・・という所からの折衷案なんじゃないのかなって気がする><
普通の電卓の挙動が歴史的にもおもしろいのは、i4004とかで作り始めた頃から=普通の計算機のソフトウェアとしてそんな気持ち悪い事をわざわざしたらしくて、もっとずっと古いと計算機寄りの挙動が普通だったらしいという点かも><
RAD環境のすばらしさを証明するデモとして電卓を!><って、何も考えずに関数電卓を作ろうとして、「あ>< 普通の電卓じゃないと・・・ってあれ?><; 普通の電卓ってよく考えたら作ろうとした事ない><」という所から気づいた><
その日のtwilog(実際はもっと長い話><;)
http://twilog.org/orange_in_space/date-151023
”よく考えると普通の電卓って、計算機としてすごく変な事しないといけなくてすごくめんどくさい?><;(RPNは計算機として自然だし、関数電卓なら要素に重みつけてソートして最終的にRPN的に計算するからやっぱり自然だし><)”
"最後に押された演算子ボタンを覚えておけばいいだけかも・・・?>< 演算子ボタンを押した時はイコールボタンと同じ処理をしてから演算子を記憶?>< んでイコールボタンの処理で実際に演算?><; なんか普通の電卓ってすごく気持ち悪い計算機?><;"
"普通の電卓って、[1][+][2][-][3][=]ってするとすると、1+2の部分を[-]が押された時にしないといけない>< -3するのも[=]が押された時><; 演算子を覚えておかないといけない気持ち悪さ><;"
"RPNなら[1][Enter][2][+][3][-]だから、スタック使えば[Enter]でプッシュして、演算子ボタンが押された時に2つポップしてその演算子の計算をすればいいから、演算子を次回まで記憶するとか計算機として気持ち悪い事やらないですむ><"
あ!><; 今作ろうとしてるMSIL直接RPN電卓、変なVM作ったりAssemblyBuilderで遊んでた時に思いついたっぽい><;
https://twitter.com/orange_in_space/status/637892104111329280
https://twitter.com/orange_in_space/status/637893350457085952
https://twitter.com/orange_in_space/status/637894023609323521
あわせてよみたい><
デイリーポータルZ:「鯖くさらかし岩」の秘密 http://portal.nifty.com/special05/09/03/4.htm
[「落ちない石」落ちてきた! 島根 浜田]
海底の地層が隆起して出来た島根県浜田市の石見畳ヶ浦で、切り立った崖にへばりついたような見た目から「落ちない石」として受験生などに知られていた1メートルほどの大きさの石が、14日、落ちているのが見つかりました。地元の観光ガイドは「受験生の代わりに落ちてくれたのでは」と話しています。
http://www3.nhk.or.jp/news/html/20180215/k10011330731000.html
自作VMこれだ><;
https://twitter.com/orange_in_space/status/637864708280684545/photo/1
スクリーンショットからすると足し算だけじゃなく加減乗除できたっぽい?><;
ILGeneratorで作って実行するのは前にやった事が><(互換性がある足し算しか出来ないVM作って「同じ!><」ってするためにやったような記憶が><;)
このアカウントは、notestockで公開設定になっていません。
せっかくだからちょっとF# 弄ってみたけど、let hoge:single = 1f って書いたら、1.0f って書けって怒られた・・・><(サフィックスの存在意義・・・・><)
LINQPad入れてみたけど、出来上がったものをMSILで見ることは出来るけど、書いてアセンブルは出来ない・・・?><
たぶんだけど、JavaVMも同じくスタックマシンだから、cs版をJavaに、MSIL版をJavaバイトコードアセンブラ(?)にほぼそのまま移植したら同じくらいの差が出そう・・・?><
ものすごく前にマストドンで「MSIL(CIL)を直接書いて速くなる場面なんてあるのかな?><」って書いた記憶あるけど、一応あることはあるんだね・・・><(たぶん実用的な意味は無いけど><;)
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
あれ?><; 最適化無しで試したら
C# 版: 3295ms
MSIL版: 1453ms
System.Math: 63ms
って結構差が・・・><;
このアカウントは、notestockで公開設定になっていません。
でも、生まれて初めてアセンブラで書き直して高速化に成功できたから一応うれしい><(DelphiでMMX使って数命令の短いインラインアセンブラなコードで速くした事なら前にあるけど、処理丸ごとアセンブラで書いて速く出来たのは初めて><)
やっとdllに出来たのでベンチマークしてみたけど、10000000回ループで、
C# 版: 1477ms
手書きMSIL版: 1458ms
って速くはなったけどものすごく微妙><; そして
System.Math: 3ms
・・・・・・・・><
なんか頭の使い方がパズルっぽくて、普段のプログラミングよりもテラリアとかで計算機の回路作って遊んでる時に近くておもしろかった><
アルゴリズムの元ネタ(実質これの移植版><)
http://www.avrfreaks.net/comment/474232#comment-474232
CIL(MSIL)関連
http://www5b.biglobe.ne.jp/~yone-ken/VBNET/index.html
http://www.atelier-blue.com/program/il/
pastebin貼れたっぽい><
sqrtを計算するやつCIL(MSIL)版><
https://pastebin.com/mL2AxsQc
(シンタックスハイライトがilは流石に無いっぽいのでC# に設定しました><;)
不等号が逆だったっぽくて直したけど6桁あってる・・・?><
Sqrt(2)=1.41421294212341
done.
ExitCode:0
Sqrt(2)=2.99999928474426
done.
ExitCode:0
・・・・?><;
Mid=ってなってる所、アセンブラで書けばMidに書かないでそのままスタックに乗せておいて、次のMid*Midって所が複製(dup)して掛ける(mul)で済むのに><;(その後もこのままのコードならpopすればLeftとかRightにMid相当の数値を直接書ける><(積む順番を工夫すればそれすら不要><;))
これ以上MSIL(CIL)にあわせた最適化ってもうどうすれば><;(逆アセンブルして見ると、Midって変数に書いたり読んだりするのが無駄に見えるけど、それをC# のコードで避ける方法って無いよね?><) https://mstdn.nere9.help/media/7gfib-K2-KWgPD5XR-I
!!!!>< -- "C# では unsafe コード内限定で、配列をスタック上に確保するための構文を用意しています。" -- unsafe - C# によるプログラミング入門 | ++C++; // 未確認飛行 C http://ufcpp.net/study/csharp/sp_unsafe.html
このアカウントは、notestockで公開設定になっていません。
同じldloc(変数をスタックに置く)が2個並んでるところ、1個置いて複製(dup)する方が感覚としては速そう(=なんで最適化してないの?><)だけど、どうせVMだから変わらないみたいなアレなのかな?><
せっかくスタックマシンなんだから奥に(?)積んで置けば済む場面で一回変数に書いちゃうの処理勿体無い><;
sqrt計算するアルゴリズムのMSIL(CIL)向け版、「ここ直接アセンブラで書けたら命令減らせるけどC# では書きようが無い><;」ってなった><(インラインアセンブラがあったら便利だったのかも><;(実用的な意味では必要になる場面なさそう><;))
東芝、17年度は5200億円の黒字予想へ - ITmedia NEWS http://www.itmedia.co.jp/news/articles/1802/14/news104.html
koresinuhodosuki
逆にWindowsで使ってるMS-IME、学習データがすぐぶっ壊れて数ヶ月ごとに辞書リセットしてるし、辞書のメンテ性って、もしかしたらIMそのものの賢さと同じ位効果があるのかも><
GalaxyNote3の標準IMのカスタム版iWnn(Samsung日本語キーボード)、単にスタイラスで使うように作られてるという理由で消極的に使い始めたけど、タイポとかで覚えた正しくない候補を気軽に簡単に頻繁に消せるってだけで「こんなに快適なのか!><」ってくらい十分に賢い(けどそれほどでもない(うまく説明できない><;))候補が出るようになるし、この発想、他のIMも真似すればいいのに感がある><
このアカウントは、notestockで公開設定になっていません。
なんでzipかなんかで固めた辞書ファイルダウンロードしてdicフォルダに入れて実行だけじゃインストール出来ない方式?><; -- Windowsでmecab-ipadic-NEologdの導入 https://qiita.com/rinkuro/items/9d17f2dc5a23fa5bfb28
ドナウ汽船電気事業本工場工事部門下級官吏組合って入れると「ドナ」とか「ナウ」も出ちゃうし、辞書自体がツリー構造してないと無理そう・・・><
mecab --all-morphsオプションを付けると、全パターンが出てくるけど、たぶん出てきすぎ。他のパラメータもあるので、調整はできそう。
ドナウ汽船電気事業本工場工事部門下級官吏組合 - Wikipedia https://ja.wikipedia.org/wiki/%E3%83%89%E3%83%8A%E3%82%A6%E6%B1%BD%E8%88%B9%E9%9B%BB%E6%B0%97%E4%BA%8B%E6%A5%AD%E6%9C%AC%E5%B7%A5%E5%A0%B4%E5%B7%A5%E4%BA%8B%E9%83%A8%E9%96%80%E4%B8%8B%E7%B4%9A%E5%AE%98%E5%90%8F%E7%B5%84%E5%90%88
とりあえずインストールしてあるmecabに"形態素解析"って入れてみたら、「形態素」「解析」になった><(「形態素」「解析」かつ「形態素解析」であるみたいに出来ないのかな?><って言いたい・・・><)
形態素解析の辞書(のフォーマット)って単語と単語の組み合わせの単語であるみたいな情報を持てるやつあんまり無い・・・?><(mecabしか弄った事ないから知らない><)
教科書はどうだろう?><って東京書籍のサイト見に行ったらさらに酷すぎるウェブサイトでぶちきれてる><; 文章を画像化だけでもアレなのに、何でユニバーサルデザインの説明のページが代替テキスト無しの画像になってるんだよ><;
Xatz氏のそのツイート、とあるエピソードに関する物なのでそれだけ見ても微妙に意味不明かも・・・><
結局必要な情報があるのは学校向けの別のページ( http://www.nhk.or.jp/school/ )だったんだけど、正しい導線が無いしこれは誤った情報の匂いのパターンかも><;
参考><
”情報の匂いは、それが目的のものであるように見えていながら実は違っている場合には裏目に出ることになる。”
誤解を招く情報の匂いは売上を減らす – U-Site https://u-site.jp/alertbox/20040802
今のNHKの小学校向けの算数の番組ではどうなってるんだろう?>< ってNHKのサイト見に行ったら「みつかるEテレ」ってサイトになってて、デザインが極度に酷過ぎて全く見つからなくて、探し回るたびに「みつかるEテレ」ってスプラッシュが出て嫌がらせとしか思えないし、このデザインした人ぶん殴りたい><
http://www.nhk.or.jp/e-tele/find/
これ、小学校での1の教え方がまずい(かもしれない)という話にも関係してそう・・・><(1+1がなんで2なのかを全く教えて無いっぽいてきな><(お約束の「おむすび2個くっつけたら大きいおむすび一個じゃん!」ってマジで悩んじゃう人が居る問題><))
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
https://mstdn.nere9.help/@orange_in_space/99527173836372633
↑これは これ( https://matitodon.com/@TaiseiMiyahara/99527136087379268 )の話題で、「成田の約束から一週間後ってつまり一週間も旅行って何してたんだろう?>< そんなに見るところあるかな?><」 ってテレビ見た時思ったけど、それにちょうどな話題が的な・・・><
この記事の http://blog.goo.ne.jp/hajiyomi/e/98214dc76fcd2d262597b048c54e2c1c
" フォントの提供元は、モトヤマルベリを除くとフォントワークスで統一されているようだ。" から 「なるほど>< 見に行ってみよう><」ってフォントワークスのサイトで人力で似てるフォント探して、これっぽい!><と絞って、多くのスクリーンショットに写ってる字と同じ字を入れて見比べまくりました!><;(つまり根拠(?)は「目視で比較!><;」)
ソニーモバイル UD ゴシックがフォントワークスの OEM フォントである根拠 is どこだろう
そういえば昨日か一昨日か覚えてないけどそれくらい(ボケてきた><;)、に、なんかアメリカ人観光客が日本に来て観光がどうのって番組をちょっとだけ断片的に見たけど、成田で「一週間後に取材する」って約束して別れて一週間後・・・って「一週間この方々何を観光したんだろう?><;」って謎に思った><;
このアカウントは、notestockで公開設定になっていません。
そのフォントの元のフォントこれっぽい?><けど、でもこれはオンラインで試すとなぜか月になる・・・>< --
UD角ゴ_ラージ M|書体見本|FONTWORKS | フォントワークス https://fontworks.co.jp/fontsearch/item?UDKakugo_LargePr6-M&word=%E6%96%87%E5%AD%97%E3%81%8C%E3%81%8A%E3%82%8A%E3%81%AA%E3%81%99%0A%E6%96%B0%E3%81%97%E3%81%84%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E3%81%AE%E4%B8%96%E7%95%8C
「鯖」や「錆」や「睛」という漢字の「青」の部分の下は「円」なの?「月」なの?旧字体?新字体? | . - https://ameblo.jp/make-wisteria/entry-10792883288.html
「ソニーモバイルUDゴシック」というフォント、「鯖」とかの字体がアレなんだが(「月」の部分が月ではない)
Sqrt(2) 100000回 色々アルゴリズムベンチマーク><
System.Math: 0ms
(測定不能!!!!><; FPUの暴力!><;)
M262 精度4桁: 30ms
M262 精度5桁: 35ms
(メジャーっぽいアルゴリズム>< 優秀><)
Z80 精度4桁: 796ms
Z80 精度5桁: 7698ms
(Z80向けおもしろアルゴリズムを精度変更できるようにしたもの)
orange 精度4桁 : 58ms
orange 精度14桁: 318ms
(オレンジ方式!><;)
orange2 精度4桁: 2464ms
(Z80のを元に、MSILでとにかく小さいバイナリになるようにしてみたアルゴリズム さすがにめちゃくちゃ遅い><;)
昨日突発的に思いついてやってみたことだけど、よく考えたらオレンジが作ろうとしてるMSIL直接RPN電卓にも必要な機能?><;(System.Mathに頼っちゃったらそれ作ったって言わないじゃんってなっちゃっておもしろみが減っちゃう><;)
CILで最もコンパクトなsqrt計算するコードとJavaVMで同様のコードってそれだけでも全然違うものになりそう・・・><
CILというか.NETのVMはインクリメントできない・・・><(のでスタックマシンってインクリメント命令用意しないのが普通だと思ってた・・・><;)
昨日のsqrt自前計算の延長で、CILやJavaVMでの最適でコンパクトなコードだとどうなるんだろう?><って思ってJavaVMの命令セット見たら、スタックマシンなのにインクリメント( iinc 0x84 )がある!?><;ってなった><
ejectじゃなくてもkeytar(ショルキー)みたいな形状で、ピストンやフイゴが見えるように動く鍵盤ハーモニカ的楽器ってあったら、派手でかっこ良さそう><(そのままだと音小さすぎるだろうけど><)
CD-ROMドライブ2個のトレーに、それぞれフイゴつけて交互に動かして、それをピアニカに繋げて・・・・?><;
これ読んで思ったけど、ejectでフイゴを組み合わせて笛の音を出すってできるかも?>< -- 国内唯一、フイゴ式の鳩時計の工場見学 - デイリーポータルZ http://portal.nifty.com/kiji-smp/180212202036_1.htm
このアカウントは、notestockで公開設定になっていません。