2017年10月29日日曜日

脈絡のないプログラミング入門講座の構想

対象は古代BASICでプログラミングを知ったが挫折したような世代

最初はQQBASIC (99BASIC)で勘を取り戻す
※古代BASICのメリットはとにかく簡単なこと。
 うんざりするぐらいの数々の制限も他を知らなければOK!
次に特定の分野における優位性を知るためにDSLとしてのAWKを知る
続いてそれを発展させる形でRubyに入る
BASICの発展でVBAに入る
VBAとRubyでCOMを知る
JRubyに着いて知らせJavaを知る
(AWKと構文が似ていることも示すがシンタックス上の共通の祖先としてCを持つことに触れる)
RubyとJavaでOOPを知る
厳密な型を持つJavaとRubyでの感覚の違いについて知る
OOPしかない世界としてSmalltalkにも言及する

悪い言語など古代BASICを含めて無いという認識で言葉を紡ぐこと

2017年10月28日土曜日

smalltalkは速い!?

windowsで動作してフリーで入手可能なsmalltalkの処理系は
ベンチマークの参考記事
1)squeak
2)visualworks(free版は機能限定でしょうね)
3)pharo smalltalk
4)GNU smalltalk
GNUに関してはWindows内のコンソールで動くけど文法などに手が加えられてたりして
smalltalkとしては微妙らしい
visualworksは商用なので速いけどフリー版はどうなのだろう?
(パーソナルユース版っていうのになるみたいだけどDVDメディアでの供給って?!)

GNUは上記のベンチでは紹介されてないけどどうなのだろう?

I love PC-Languages

コンピュータ言語が好きだ

それはロジックを構築できたりそれまで表現できなかったことが短く簡潔な構文で出来たりすることに加えて言語構築者の知恵に触れることが出来るから

持っている書籍のことを考えると
1) ruby
2) java + groovy + jython + scala
3) smalltalk
4) c# + VB.net + F#
5) python
6) awk
ぐらいは普通に使いたい
本当はもっともっと

awkについては今のうちに活用方法を身に着けたい
win10ではlinuxのツールが使える可能性が高いので大いに生産性に関わるかも
またjavaは速いので上手く活用することで開けるものが有るのかも知れない
いまだにC#を仕事の糧にできてないのが悔しい
rubyは空気のように使いたいしpythonで分析や科学演算をしたい

2017年10月23日月曜日

手持ちのLisp系資料

最近、okiのL2Lispについて読もうとしたら元のページが無くなっていた。
まあもともとがPASCALとかでも記述されていた事もあってOOPの練習用には適さない情報ではあったようだが残念だ。

で、ふと気になって手持ちのLISP系の資料にどんなものがあったか振り返ってみた。

まずは「初めての人のためのLisp」:いつも車に入れていて時折開いてみている。
最初は小さなことから説明されているので簡単に読めるかと思っていると途中から説明の速度がかなり上がる印象。

次が「On Lisp」:ポール・グレアムの著書、マクロの活用魔導書と理解

プログラミングGauche」:国産のscheme処理系Gaucheの作者自身の解説書

計算機プログラムの構造と解釈 第2版」:SICPと略される。MITの教科書らしい。難しい。でも解ると凄いらしい。記述はscheme。ともかく濃い、硬い、でも深い?

Land of Lisp」:かなり評判の良いcommon Lispの入門書。gaucheの川合史朗さんによる翻訳なのでプログラムの誤植はほぼ無いと思われる。変な挿絵がツボなのか?

素数夜曲―女王陛下のLISP」:半分は数学書。でもLISP=schemeの部分だけで500ページ以上。SICPの前に入門すると良いという意見もある。中村正三郎http://iiyu.asablo.jp/blog/2012/06/20/6486231 その分厚さに引くわなあ

プログラミングClojure」:こちらも川合史朗さんによる翻訳。jvm言語のlisp系言語clojureの解説書。ページ数の割には濃い。第2版が欲しいけど高い!

おいしいClojure入門」:Clojureの各ライブラリーで出来ることのカタログ。しかしclojure凄い

lisp系は濃いなあ 習得したら楽しそうだ

2017年10月16日月曜日

C#のデータベース開発ならSQL server express+LoclDBでどうか?

開発はもちろんLacalDBを使って楽ちんに開発する。

複数ユーザが利用する場所ではサーバを立ててSQL server expressを利用する。
(ここで先日考えたMSDEもXPで動かすとしたら使えるのか?)
もちろんシングルユーザならLocalDBをそのまま使う。
データの検証も開発機にデータベースをコピーして楽々分析などをできるはず。

.MdfファイルをアクセスのMDBの様に使えるってわけだ。

2017年10月13日金曜日

rubyは俳句

cp/mが箱庭の枯山水であるのならrubyは俳句かな?

オブジェクトが季語のような感じでその中に多くの概念や動きを秘めていてちょっとした助詞(メソッド)によって意味合いを変える。
短く、少ない語の表現で奥深い働きをさせる。

季語のない俳句は成立せず季語を盛り込みすぎると破綻もする。

CP/Mへの憧憬

8bit z80の時代にCP/Mを使える環境を持つ田中くんがうらやましかった。

で、今も8080へのアセンブラに対して憧れにも似た感傷的な気持ちを持っている。
CP/Mの稼働するハードウェアを持つこと自体は意外と低い敷居でできるかも
http://star.gmobb.jp/koji/cgi/wiki.cgi?page=AVR%A4%C8Z80%A4%C7CP%A1%BFM
http://star.gmobb.jp/koji/cgi/wiki.cgi?page=AVR%A4%C8Z80%A4%C7CP%A1%BFM%A4%CE%B2%FE%CE%C9
ハードウェアの関連は楽しいそうだけど実際は結構苦難に満ちていると思う。
実際のハードウェアなわけだから動けばパーフェクトなのだろうが実装の未熟さを省みるときにいささかの逡巡を覚えてしまう。

で、エミュである。ソフトなら母艦の環境を使い放題なので検証は楽ではないか?
http://www.amy.hi-ho.ne.jp/officetetsu/sbc/sbc/devel/devel.html
環境は結構あるのである。
http://ldlabo.gozaru.jp/DATE/CPM80/cpm80.htm
デバッグも出来そうだ。
8BitPCのシュミュレータもある
http://my-web-site.iobb.net/~yuki/2017-05/soft-tool/simh-cpm2/

cmpplayerというのもあるけどエミュならこれか
http://hp.vector.co.jp/authors/VA000084/

cpmの楽しみ方はこのページにも詳しい
http://www.nasekouki.co.jp/~shig/cpm.html

cpmそのものの情報は英語だけど下記に詳しい(BIOSとか)
http://www.seasip.info/Cpm/index.html

やはり箱庭って良いよね。

そして環境が出来たら手持ちの資料のプログラミングを楽しむのも良い。
「マイクロコンピュータのプログラミング」bit 1978-2増刊
 モニタ・エディタ・TinyBASIC・μPLAN・アセンブラプログラミング(8Queenなど)

「古典電脳物語」@2006 ラトルズ刊
 cp/m・TinyBASIC・small-c・aki-80ボード

いやー濃いよね

2017年10月10日火曜日

今更だけどADPがしたい!

今までAccessでADPで組んだことがない
もはやADPはAccess2013以降はディスコンなので今はもう無い機能だ
しかしXPのライセンスを持っているのでこれをMSDE2000でサーバ化し4台までつなげるADPで利用すると面白いと思う。
走らせるのはAccess2010のランタイムでよい。

使えるのは川越組の丸広プロパンとマルイチ水産だ

メリットは
1)Accessで組めること
2)XP+MSDEがちょうどよいサイズ感

これで遅くなるなどのデメリットを全て消せれば価値はあると思う
暇をみて取り組んでみよう

しかしよくよく考えるとMSDEが軽いと言うメリットがある以外はあまり期待できない。
Access2016などで動かないとなると今後の展開も難しいかもしれない。
やはりC#に本格的に参入する方向なのかもしれない。
(しかし、マルイチでするのもなんだかなあ)

2017年10月7日土曜日

SQLite と H2Database

個人利用と言うかPCの単体利用ではSQLiteのパフォーマンスは圧倒的らしい
http://d.hatena.ne.jp/cypher256/20121013/p1

しかし自分のクライアントで複数利用で最も多い4・5台ではH2databaseを検討したい
http://d.hatena.ne.jp/rabbit2go/20110503/1304423200
理由
 1)odbcドライバとしてpostgreSQL用のドライバが利用できる
  (H2 Consoleをバッチ(コマンドライン)実行してPG Serverを動かすらしい。)
   http://yoks.blue.coocan.jp/TechNote/H2/H2_ope4.htm
 2)javaなのでプラットフォームに依存しない(サーバが何でもいける)
  そのうえフットプリントも軽いらしい
 3)SQLiteに準拠する高速ぶり
 4).NETでも専用のドライバーあり
   http://d.hatena.ne.jp/bouzuya/20100919/1284877546

やはりMS SQLサーバがExpressで1GBオーバーはキツイ

2017年10月6日金曜日

windows10時代の軽量データベース

MSのSQLサーバExpressは機能は良いと思うのだがいかんせん重すぎる
インストールパッケージで1GB超ってどうよ!!!

で、クライアントのPCでサーバを動かしても重くないものが欲しいので
探すことにした

17/10/06時点での候補は
1)firebird
2)H2

軽量なのでインストールしてAccess、C#、Rubyなどから接続して評価していこう
MySQLとMSSQLサーバExpress(2016はWin10必須らしいので2012か?)
も比較していきたい。

FireBASEっていうクラウドのデータベースもあるので無料枠でどのくらい使えるのか
見ていくのも面白い


2017年10月5日木曜日

次はデータベース ADO vs DAO vs SQL かな?

2020を目指して10数年遅れでADOを極めようと思う。
AccessでのADOを体得することで
1)vbscriptやrubyなどからの処理を躊躇なく書けるようになる。
2)基本データベースをaccdbにしたときの安定動作を得る。
3)SQLサーバも無理なく接続する。

javaでAccessのファイルを取り扱うのに面白い状況になっていた。
java8ではこれまでのjdbc -> odbc ブリッジっていう流れが非推奨となり消えた
で、UcanAccessっていうフリーのツール兼ドライバー(多分jdbc準拠)を使うみたい
 http://i2k1.seesaa.net/article/433180767.html
漢字も通るしmacでも使えるようで面白い

dosvaxj3が更新されていた。

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