2019年12月29日日曜日

ちょっとmandelbrotの基本描画の時間を比較してみた・・・そしてgo-langに道草

これまでにもたびたびmandelbrot集合の描画をいろんな言語で書いてその様子をここに上げてきたけど都度上げていると環境も変わったりして本当の意味の比較にならなかったこともあるので手元に残っている言語などで再度計測したりして比較をしてみた

条件
  画面は640x480相当 色は8色(あんまり速度と関係ないけど)
  N88BASICのように縦方向に制限があるものは400ドットの場合
  があるがあまり意味が無いので気にしない。
  そもそも比較的新しい言語では縦方向の制限がされているものは
  総じて他と比較にならないほど遅いので・・・
  ※上記ではN88BASIC on anex86がそうだけど
   更に2割遅くなっても・・・まあ仕方なし
結果
 
  すぐさま引き出せるソースのあるものではprocessingが最速
  さすがにベースがjavaなことはあると思う
  次点はc#で画面を1次元の配列イメージで描いたもの
  次がc#で普通に描いたもの(その差4倍弱)
  その次にpythonで描画をpygameで速めて、mandelの発散
  確認をnumbaの@jitで実行時にコンパイルしたもの
  後は1秒以上かかっているしエミュレータはやはり遅い
  好奇心でeFMR-50(i286)でpanacom用のmbasicでもやって
  みたが自分で我慢できずに止めました(遅くて耐えられない)

来年はこの手のお遊びは自重してc#で業務ソフトを書くことと
go-langでシステムよりの実験をいろいろ書こうと思ってます
※本日go-lang最新go1.13.5をインストール(go-walkも)
もちろんこんな自分のことですので気の向くままに脱線しますが
温かい目でよろしく見守ってくださいね

2019年12月15日日曜日

暫くは安定路線を・・

ちょっと前のエントリーでC#+Databaseをいろいろやってみようと思うようなことを書いたけどMicrosoft謹製の開発環境VisualStudioでの使用を考えるとC#だけではなくてpythonにも目を向けたくなる。
最近のMicrosoftはソリューションの構成要素としてスクリプト言語にはpythonを、そしてweb系記述言語にはnode.jsをはっきり押していると思う。
VisualStudioのサポートするメニューでその他のウィンドウメニューを見ても
F#,C#のキーワードに加えてpython,node.js押しなのが伺われる。
当然、同環境ではそれらは自然に使えると思うので活用したくなる。

さてどうやって使おうか?

2019年12月8日日曜日

年末に向けて図書館で借りた書籍

1)Web学習アプリ対応 C言語入門 スマホ・PCを使いスキマ時間で楽々習得
この本でプログラムを作成できるようになる人は凄いと思う。
300ページ以上を割いて本当に入門的なことを書いてます。
でも実践プログラミングのことは何も語られてはいません。
フローチャートって・・・

2)Windows PowerShellクックブック
対話的なshell的処理が出来なかったvbscriptにかわるMSのshell言語
ぼくが使えるpowershellのコマンドはlsとmeasure-commnadの2つだけ
でも今後を考えるともう少しだけ使えるようになりたいです

3)逆引き PIC電子工作 やりたいこと事典
PICのioピンにぶら下がったFETなどのデスクリート部品でステッピングモーターなど動かしてます
PIC16F1778をCで動かして楽しむ本
チップ本体は本日時点で秋月で@240なり
28pinDIPで使いやすければ面白そう

4)Processingをはじめよう
基本的に扱うのが画面とIO(主にマウス)なので
結果がすぐにわかるし楽しい
短いプログラムで飽きずに学べる
変なCの入門書よりもずっと学習が捗りそう

5)Excelで学ぶ進化計算‐ExcelによるGAシミュレーション
なんかツールのDL先を教えられてもねえ

6)PythonでGUIをつくろう─はじめてのQt for Python
ふだん使っているxamlとqmlはどう違う
求めているのとちょっとちがかった

2019年12月4日水曜日

次の目標ー興味の赴くまま

最近、いろいろと試していたcp/m系もちょっと飽きてきた
まあ実機のz80を弄るのができてないのでこの辺りは課題

そもそもソフトで出来ないことを模索したりするので8bitでないと
面白くならないわけではない
で、
1)arduinoでブレッドボードで遊ぶ
2)raspberry pi (zero) でハイレゾ再生環境構築
3)本来のデータベース屋としての実験
などが思い浮かぶが3)をちょっと注力して行こうかと思う

勿論1つのことをやり続けるのは根気や体力も必要で他のことにも
いろいろと気を逸らしながら楽しみたい

まずはC#+MS SQL Serverをやってみるか
(MS Accessとの比較を行いながらになるのか?)

2019年12月1日日曜日

processing に見るプログラム入門への可能性

随分離れている間に以前はたいして使えないと思っていた開発環境などが磨かれて使える安に成長しているのを再発見することがある

ひさしぶりにprocessingに触れてみた
バージョンは上がって3.5.3だ
かなり強力になっていると思う 特に構文のチェック機能はリアルタイムに効いていてエンバグしそうになるのを防いでくれる
(ちょっと五月蠅すぎるくらいだ)
そしてこれをプログラミングの練習環境として見たときに
1)上記のチェック機能でエンバグしにくい
2)見える成果物がターゲットなので自分のコードが正しいかどうか確認しながらすすめやすい
3)基本がjavaなので実行速度も速く安定している
 (思う結果が得られないときに責任が自分にあると信じて調査できる
  結果として原因が見つけやすい
  新しくてマイナーな言語のとき処理系と自分のどちらが悪いか
  見極めが不要だと楽なのです
  また実行が速いといろいろ試す時間が短縮できて助かる)
4)mandelなど点の描画が中心の時に所謂アンセーフな配列である
  pixelsに書き込めるのでここでも早くて助かる
  その構文もシンプル loadPixels,updatePixelsだけで後は
  pixelsと言う1次元配列にcolorを代入すればよい
  (画像を貼ってからloadPixelsしてpixels配列を読みだして
   色情報を得ることもできるし)


外部のファイルや画面のcontrolなどは無いので使える分野は多少
限られるが(loadstringsでは本当に簡単なテキストファイルしか
扱えないので・・・)
凝ったことをしようと思うと直ぐにjavaの出番になるのでそれなら
いっそ最初からjavaを使った方が見通しも良くなる
逆に考えるとprocessingに慣れて発展させたくなってきたら何らかの
IDEを導入してjavaに入っていくというのが正しいアプローチかもしれない。
でもこれってプログラミングに最適なんじゃねって今頃気が付いた
  
  

dosvaxj3が更新されていた。

 最近、エミュレータ系をあまり触っていなかったのだけど久しぶりに見てみたらタイトルのようにdosvaxj3が更新されていた。 on emulatorでセルフにcなどのソースを書いて実行するのに母艦側の特定のフォルダをドライブとしてマウント出来たり普通に母艦のimeで漢字が入力でき...