卒研メモ:JavaScript + Canvasでフラクタル図形描画

 ”JavaScript Fractal”で検索すると色々なサンプルスクリプトが出てきますが,トップに出てくるこのサイトのものが一番アプリケーションとして出来が良いようです。

Canvas Fractals

「高性能計算研究室」という看板を出している以上は,これに対して何らかの改良を施したいところです。定番の工夫としては

  • 並列化して高速化・・・Node.js環境下だとParallel.jsというのがあるらしい。以前はFirefoxネイティブにRiverTrailというIntel提供のプロジェクトがあったのですが,最近はOpenCL対応にしたとかでよく分からないことになっている。
  • 高精度化・・・手っ取り早く4倍精度化(double-double)化するというのが定番。調べたところではJavaScript実装はまだない模様(任意精度対応のBigDecimal.jsというのは存在)

というところかと。

 まずCanvasにお絵かきするためにjCanvasの勉強から始めて倍精度計算でJulia集合を描き,それを利用して4倍精度化を図る・・・という感じかしら。誰かやりません?

 

卒研メモ:PHP 7.0.0 正式リリース

 現在使用されているPHPの最新バージョンは5.5.30, 5.6.16ですが,Version 6はスキップして7.0.0が正式にリリースされました(本家リリース,日本語ニュース)。今後はこれをベースとしたXAMPPやレンタルサーバサービスが出てくると予想されます。

 現行の5.6.xベースの記述をしている限り問題になりそうな部分はあまりなさそうですが,使用しているPHPのライブラリ類(Pear,MySQLiなど)の7.0.0対応の方が問題になりそうです。

 今のところ本研究室のサーバ(ここ)のPHPを7.0.0に上げることは考えていませんし,新しもの好きのXAMPPと言えど,すぐに7.0.0になるとも思えませんが,気になるようならbitnami提供のWAMP stackを使ってみるもの一興でしょう。

 でも来年には7.0.0になりそうだなぁ・・・情報セミナーII用の教材も考えないといけません。

卒研メモ:PHP開発フレームワーク雑感

 Webアプリ開発環境として,PHPのフレームワークを使う事例を見かけるようになってきました。過去色々沢山存在していたようですが,現状では次の3つが有力な選択肢とのことです。

 今までも幾つかフレームワークを使った卒研がありましたが,膨大な機能を使いこなすことができず,サンプルに毛が生えた程度で終わっているものしか見たことがありません。勉強不足・能力不足もさることながら,使いこなすには相当勉強して臨む必要があることは間違いないようです。

 ということで,そんなに大きくないアプリを作るために他人のふんどしで楽をしたいという程度でしたら,例えばWordPressとかNetCommonsといったCMSアプリケーションのカスタマイズ+プラグイン開発というのも悪くない選択肢だと考えます。

 今のところ本研究室ではスクラッチからPHPプログラムを起こすのが一番良いと考えており,大体そのようにWebアプリを開発してきました。とはいえ,毎年同じ機能を車輪の再開発の如く作るのも無駄,というより指導する当方が飽きてきますので,適当な規模のクラスを作ってそこに認証,DB設定,ファイルアップロードぐらいの機能をぶちこんだ方がいいかなぁと考えています。そういう方針で,実は既にWebデザイン特別プログラムの販売システムは作ってあります。これを流用するのも一考に値すると考えています。

卒研メモ: できるネットのHTML5, CSS記事

 HTMLやCSSの解説サイトは山のようにありますが,インプレス社提供の「できるネット」にある最新のHTML5CSSについて解説とタグ一覧表は読みやすいので推奨参考文献として挙げておきます。

 これに加えてJavaScriptとjQuery(と主要plugin)の解説があるといいんだけどなー。お勧めがありましたら教えて下さい。

卒研メモ: PHPによるWeb crawlerの作成

 以前の卒研でPerlによるWeb crawler又はrobot(Web情報自動取得プログラム)を実装したことがありましたが,イマドキPerlでもないだろうということで,PHPによる実装を考えてみます。

 PHPの標準ライブラリにcURLクラスがあるので,これをWebクライアント(ブラウザ)として利用することができます。
 また,Web crawlerの礼儀として,アクセス先のWebサーバにおいてあるrobots.txtの情報に基づいて,Webデータの収集を行う必要があります。実例としてはこれが参考になりそうです

 アクセスの効率を上げるための仕組みはいくつかありますが,DBとのやり取りを高速にするためのmemcachedの活用(PHPからはmemcachememcachedクラスを使用),マルチスレッド化が定番です。この辺を極めると,後で色々な活用方法が考えられるようになります。

卒研メモ: Bootstrapの利用

 Responsiveデザインを一から自分で行うのは大変なので,最近ではお仕着せのFrameworkを使うことが多いようです。いくつかのサイト(こことかここ)を見る限り,Bootstrapの評判が良いようなので,本家日本語のチュートリアルへのリンクを張っておきます。

 今年の自由製作でチャレンジしてみましょうかね。