プログラミング
Jeans & Development | 電子ブロック工房 | 三日坊主 | フロントページ |
PHP 5.3 RC1 [プログラミング]
2009年4月2日
PHP 5.3 RC1が出たらしい。主な新しい機能は、次の通りだそうだ。
(php.netより)
- Support for namespaces
- Under the hood performance improvements
- Late static binding
- Lambda functions and closures
- Syntax additions: NOWDOC, limited GOTO, ternary short cut "?:" and __callStatic()
- Optional garbage collection for cyclic references
- Optional mysqlnd PHP native replacement for libmysql
- Improved windows support including VC6 and VC9 binaries
- More consistent float rounding
- Deprecation notices are now handle via E_DEPRECATED (part of E_ALL) instead of the E_STRICT error level
- Several enhancements to enable more flexiblity in php.ini (and ini parsing in general)
- New bundled extensions: ext/phar, ext/intl, ext/fileinfo, ext/sqlite3, ext/enchant
- Countless bug fixes and improvements to existing extensions in particular to: ext/openssl, ext/spl and ext/date
(php.netより)
JavascriptでWin32APIが利用しやすくなる『win32api.js』 [プログラミング]
2008年10月9日
ネットサーフィンしていて、面白い記事を発見。
Electronic Genomeより、
JavascriptでWin32APIが利用しやすくなる『win32api.js』
Javascript(JScript)からSFC mini経由でWin32APIを簡単に利用できるようにするwin32api.jsを作ったので公開します。win32api.jsをインポートすると Win32APIで定義されている定数6315個、構造体クラス412個、API関数2007個がグローバル変数として展開されます。これでCなどで書かれたWin32APIなコードを比較的簡単にHTAなどのJavascriptアプリに流用できそうです。
Electronic Genomeより、
JavascriptでWin32APIが利用しやすくなる『win32api.js』
Javascript(JScript)からSFC mini経由でWin32APIを簡単に利用できるようにするwin32api.jsを作ったので公開します。win32api.jsをインポートすると Win32APIで定義されている定数6315個、構造体クラス412個、API関数2007個がグローバル変数として展開されます。これでCなどで書かれたWin32APIなコードを比較的簡単にHTAなどのJavascriptアプリに流用できそうです。
suppon 0.1.0β [プログラミング]
2008年7月25日
suppon 0.1.0βを公開しました。ライセンスは、LGPLv2.1です。
readme.txtより
suppon 0.1.0βは、ここからダウンロードできます。
readme.txtより
Suppon ver 0.1.0 beta (LGPL lisence ver 2.1) Supponは、WSHにおいて、COM(ActiveX-DLL/OCX)をレジストリへの登録無しに利用で きるようにするツールです。OyagameやSFC-miniなどを用いて作成したプログラムを 配布する際に用いることを前提として設計されています。 マニフェストは使用していませんので、Windows Vista/XPだけでなく、Windows 2000 でも利用可能です。 利用する際は、ActiveX-DLL/OCXファイルをsuppon.exeと同じフォルダに起き、 suppon.jpを編集して、プログラムID・ファイル名・CLSIDを設定してください。プ ログラムID・CLSIDが不明の場合は、一度ActiveXをregsvr32.exeを用いてレジスト リに登録すると、レジストリエディタを用いて確認することが出来ます。なお、 OyagameとSFC-miniについては、あらかじめ設定されています。 作成したWSHファイル(*.vbs, *.js, *.vbe, *.jse)は、suppon.exeにコマンドライ ン(%1)として与えると、実行できます。あるいは、ファイル名をstart.vbsなどと してsuppon.exeと同じディレクトリに置けば、コマンドライン無しでsuppon.exeを ダブルクリックするなどして実行することも出来ます。スクリプト中でCOMオブジェ クト作成の際は、CreateObject()やActiveXObject()関数ではなく、 WScript.CreateObject()メソッドを利用してください。なお、COMのイベント機能 は残念ながら利用できません。
suppon 0.1.0βは、ここからダウンロードできます。
Suppon開発中 [プログラミング]
2008年7月20日
wscript.exe用のマニフェストを書くより簡単に、WSH(VBScript/JScript)でRegistration-Free COMを使うための汎用ツールを開発中。
一つ前の記事の6つ目のコメントで書いたアイデアをプログラミングするだけである。が、そこで述べた『簡単なIDispatchクラス』が実際には簡単ではなく、ちゃんと仕様にのっとって記述しないと機能しないようで、その部分で今手間取っている。これが済めば、ほぼ出来上がり。
完成すれば、OyagameやSFC miniといった私の作成したCOMツールだけでなく、どのようなCOMでも、CLSIDとDLLファイル名を記述するだけで、レジストリに登録することなくVBScript/JScriptで使えるようになる(はず)。
Script Users' and Programmers' Private Object Navigationの略で、Supponと命名した。Oyagameとの亀つながりということで…。
一つ前の記事の6つ目のコメントで書いたアイデアをプログラミングするだけである。が、そこで述べた『簡単なIDispatchクラス』が実際には簡単ではなく、ちゃんと仕様にのっとって記述しないと機能しないようで、その部分で今手間取っている。これが済めば、ほぼ出来上がり。
完成すれば、OyagameやSFC miniといった私の作成したCOMツールだけでなく、どのようなCOMでも、CLSIDとDLLファイル名を記述するだけで、レジストリに登録することなくVBScript/JScriptで使えるようになる(はず)。
Script Users' and Programmers' Private Object Navigationの略で、Supponと命名した。Oyagameとの亀つながりということで…。
ScriptControl用WScriptオブジェクト [プログラミング]
2008年7月13日
Oyagameを、Registration-Freeで使うのにScriptControlを利用するやり方は、Oyagameに限定したツールにするよりも、汎用ツールとしてすべてのCOMに対応できるようにしたほうがよさそう。
先の記事でも問題にしたが、WScriptオブジェクトをこのツールで供給すれば、かなり汎用性が出るはず。しかも、XP, Vistaだけでなく、2000, NTでも使える方法を見つけてあるので、ほとんどのケースで問題ないだろう(95/98/MEでも使えるかどうかは、不明)。
このWScriptオブジェクトの供給方法について、ほぼ出来上がったので、バックアップの意味も兼ねてメモ。
先の記事でも問題にしたが、WScriptオブジェクトをこのツールで供給すれば、かなり汎用性が出るはず。しかも、XP, Vistaだけでなく、2000, NTでも使える方法を見つけてあるので、ほとんどのケースで問題ないだろう(95/98/MEでも使えるかどうかは、不明)。
このWScriptオブジェクトの供給方法について、ほぼ出来上がったので、バックアップの意味も兼ねてメモ。
ScriptControlの利用 [プログラミング]
2008年7月4日
先日とりあげた、wscript.exe用のマニフェストを書く方法に加えて、ScriptControlを利用する方法も試してみた。とりあえず、VB(VB5)を用いて簡単に作成したプログラムのソースコードは次のとおり。
registration-free COMをWSHで使う [プログラミング]
2008年7月1日
OyagameやSFC-miniは、インプロセスCOMサーバ(ActiveX-DLL)をregsvr32.exeを使ってレジストリに登録するという古い方法を使って、WSH(VBScript/JScript)でDLLにアクセスすることを可能にしている。WSH自身がすでに古くなりつつある技術なので、こういった古い技術に頼るのは仕方の無いところ。
一方で、こういった資産を生かそうという仕組みがWindows XP以降ではサポートされているようで、これを使えば、レジストリへの登録無しに、COMサーバが使える。したがって、管理者権限が無くても、COMサーバが供給するオブジェクトにアクセスすることができるようになる。
Oyagameを使うようなケースではこれは朗報で、作成したプログラムを配布する時の制限が無くなる事は大きい。
一方で、こういった資産を生かそうという仕組みがWindows XP以降ではサポートされているようで、これを使えば、レジストリへの登録無しに、COMサーバが使える。したがって、管理者権限が無くても、COMサーバが供給するオブジェクトにアクセスすることができるようになる。
Oyagameを使うようなケースではこれは朗報で、作成したプログラムを配布する時の制限が無くなる事は大きい。
oyagame 0.1.0β [プログラミング]
2008年6月1日
初めてのベータバージョンになる、oyagame 0.1.0βを公開しました。
βバージョンとしたことで、基本的な仕様はこれで行くことになります。メソッド呼び出しの際、アルファベットの大文字小文字を区別するかどうかの判断がまだ先送りになっていますが、現在の仕様では区別しないようにしています。ここの部分でのスピードが全体のスピードに影響することはほとんど無いのではないかというのがその理由です。今後も、スピードにはあまりこだわらずに開発してゆくことになるでしょう。それでも、構造体へのアクセスなど、スピードを若干意識した部分もありますが。
SDLの入門用としての需要が出れば良いなと思っています。もっと本格的にSDLを使いたい人は、C/C++を使ってもらえれば…というところです。
oyagame 0.1.0 βは、ここからダウンロードできます。
この配布に伴って、SFC mini の公式ページの運用開始を宣言します。
http://sfcmini.sourceforge.jp/
公式ページは、Nucleus::subSilverを用いて構築しています(ちょっと勇み足的なところもあるけれど)。多分、閑古鳥が鳴く状況が続くと思いますが、温かく見守っていただければと思います。
βバージョンとしたことで、基本的な仕様はこれで行くことになります。メソッド呼び出しの際、アルファベットの大文字小文字を区別するかどうかの判断がまだ先送りになっていますが、現在の仕様では区別しないようにしています。ここの部分でのスピードが全体のスピードに影響することはほとんど無いのではないかというのがその理由です。今後も、スピードにはあまりこだわらずに開発してゆくことになるでしょう。それでも、構造体へのアクセスなど、スピードを若干意識した部分もありますが。
SDLの入門用としての需要が出れば良いなと思っています。もっと本格的にSDLを使いたい人は、C/C++を使ってもらえれば…というところです。
oyagame 0.1.0 βは、ここからダウンロードできます。
この配布に伴って、SFC mini の公式ページの運用開始を宣言します。
http://sfcmini.sourceforge.jp/
公式ページは、Nucleus::subSilverを用いて構築しています(ちょっと勇み足的なところもあるけれど)。多分、閑古鳥が鳴く状況が続くと思いますが、温かく見守っていただければと思います。
oyagameで日本語を使う [プログラミング]
2008年5月30日
oyagameで日本語を表示するのは、意外と簡単であることが分かった。これに気がつくのを難しくしていた原因は、私の今のPC環境でShift-JISがうまく使えなかったことにあった。
OSで日本語がちゃんと使える環境になると、oyagameでの日本語表示は簡単。
OSで日本語がちゃんと使える環境になると、oyagameでの日本語表示は簡単。
ADODB.Stream [プログラミング]
2008年5月27日
さまざまなエンコードおよびバイナリが扱えるCOMオブジェクト、ADODB.Streamに関する備忘録。
MSDNにおける、ADODB.Streamの解説は、ここ。
これのCharsetプロパティのところで、
システムが認識できる文字セット文字列の一覧については、Windows レジストリの HKEY_CLASSES_ROOT\MIME\Database\Charset のサブキーを参照してください。
と言っている。調べてみると、以下のエンコードが使えるらしい(使用中のVistaの場合)。
oyagameでADODB.Streamを扱うようにすれば、それほどソースコードを肥大化させること無く、日本語が表示できるようになるはず。おそらく、20-50行ほどのコード追加で十分だろう。
(追記)
iso-2022-jpも使える。上記リストは可能なすべてをピックアップしたものではないので、他にも使えるエンコードはあるかも。
MSDNにおける、ADODB.Streamの解説は、ここ。
これのCharsetプロパティのところで、
システムが認識できる文字セット文字列の一覧については、Windows レジストリの HKEY_CLASSES_ROOT\MIME\Database\Charset のサブキーを参照してください。
と言っている。調べてみると、以下のエンコードが使えるらしい(使用中のVistaの場合)。
Windows-1250 Windows-1251 _iso-2022-jp$ESC big5 euc-jp gb2312 ibm852 ibm866 iso-2022-kr iso-8859-1 iso-8859-2 iso-8859-4 iso-8859-5 iso-8859-6 iso-8859-7 iso-8859-8 iso-8859-9 koi8-r ks_c_5601-1987 shift_jis utf-7 utf-8 windows-1252 windows-1255 windows-1256 windows-874
oyagameでADODB.Streamを扱うようにすれば、それほどソースコードを肥大化させること無く、日本語が表示できるようになるはず。おそらく、20-50行ほどのコード追加で十分だろう。
(追記)
iso-2022-jpも使える。上記リストは可能なすべてをピックアップしたものではないので、他にも使えるエンコードはあるかも。