卒研メモ:SciPy Lecture Notes

2016-07-19_150704

 機械学習に限らず,全世界的にはPython言語の使用が普通になりつつあります。私の興味は科学技術計算なので,SciPyNumPyといったPythonパッケージの利用をしたいと考えています。Pythonをインストールしたら,setuptools, pipも入れ,しかる後に様々なパッケージ類をpipコマンドでインストールしていくという手順になるようです。

 特に簡単なSciPyのチュートリアルとして,SciPy Lecture Notesというものがあり(ミラー),その日本語訳もCreative Commonsライセンスで公開されています。まずはこの辺から勉強がてら,触ってみるのが良さそうです。最後は機械学習用のPythonパッケージであるscikit-learnや画像処理用のscikit-imageの解説も載っています。

 夏休みの勉強用に一読をお勧めします。

卒研メモ:Androidスマホのスクリーンキャプチャ機能とDrag&Drop

 世の中のアプリケーションソフト(アプリ)の大半がスマホになりつつある昨今ですので,Webアプリもスマホで動作確認しなければなりません。そこで,実際にスマホでWebアプリが動いている様子を動画として保存するスクリーンキャプチャが必要になります。高性能スマホのXperia等では購入時に同梱されているようですが,デフォルト状態では入っていないものが多いようですので(iPhoneは調べてません),AZ Screen Recorderを初めとするいくつかのアプリを試して使い勝手のいいものを選んで下さい。

 話変わって・・・以前ここでも書いた通り,現在PHP+MySQLを使ったWebアプリ作成テキストを作成中で,大まか出来ているのですが,これにJavaScriptを加えて使い勝手を良くする手法を追加していくことにしています。手始めに,ファイルアップロードを手軽に行うためのDrag&Dropボックスを作る予定でいます。

 このためには,jQueryの機能を使い,AJAXも利用して作るか(オリジナルと翻訳版),DropzoneJSを使うか,サンプルを読みながら選択する必要があるようです。前者の方はプリミティブな機能を積み上げて構築している分,内容を理解すれば使い勝手が良くなりそうですし(Drag&Drop後にsubmitボタンでアップロード(AJAX利用なし)→Drag&Drop直後にすぐアップロード(AJAX利用),後者はかなりお手軽に機能追加ができそうです。何にせよ,PHPとJavaScriptと連携しないと機能しないものですので,勉強にはなりそうです。

 この機能を付加した事例を追加した後は

  • jQueryそのものの簡単な解説とjqPlotによるグラフ作成例を追加
  • PHPのMySQLi関数を手続き型呼び出しからクラス呼び出しに変更(追記する?)
  • PDOクラス作成バージョン(SQLite3)の構築(来年度かな?)
  • PDOクラス作成バージョンにSQL Server(無理かしら?)の例を追加

という方向で膨らんでいけばいいなと夢想しています。

卒研メモ:WordPressプラグイン作成入門

 本研究室の卒研テーマの多くはPHP+MySQLによるWebアプリ作成が多くなっています。WordPressはPHPで構築されたWebアプリの中でも利用者数はトップクラス,本研究室でも大いに利用させてもらっています。便利だし高速だし,何よりPlug-inが豊富なのは助かります。

 ということで,WordPress用のPlug-inを作るという卒研テーマもアリです。そのための手引きとなりそうな日本語文書を幾つか見つけたので,備忘録の一つとして書き残しておきます。

  • WordPress(自分専用)マイアプリを作ろう・・・どう作ればいいのか全くわからない状態の時に「まずやってみる」ための手引きとなります。これで挫折するようなら諦めて別テーマを探しましょう。
  • WordPressプラグイン作成入門・・・スライド数100枚の大作ですが,とても分かりやすく「。」を顔文字に自動変換するPlug-inの作り方を解説しています。WordPressの動作のあらましも理解できるようになるため,大規模なCMSを構築する際には参考になります。

卒研メモ: Googleのモバイルサイトチェックツール

 GoogleがモバイルWeb環境のチェックツールをリリースしました。

早速この研究室のページをチェックしてみました。結果は下記の通りです。

2016-06-06_183745

 WordPressのおかげでモバイル環境でのWebデザインは良いようですが,張りつけた画像が重たいようで,3秒以内に読み込めるサイズにしなさいと怒られてしまいました。ふーむ,難しいモンですね。

 皆さんも作ったサイトがどのように採点されるか確認してみましょう。

卒研メモ:Google AnalyticsのPage Analysis

 Google Analysisの機能をの一つに,Webページのあるリンクがどの程度の率でクリックされているかを憑依する機能があります。幸谷個人ページのindex.htmlを解析すると次のようになり,blogへのリンクが一番参照されていることが分かります。

2016-05-17_095840

 ある程度ユーザのついたページがあったら解析してみて下さい。

卒研メモ:CSSで縦書き表示

 鳥取県立博物館が,家老日記をHTML + CSSだけで縦書き表示し,テキスト検索可能な形で公開しました。

 縦書き表示はwriting-modeの指定だけで可能です。

これが縦書き表示です。
縦に読めますかね?
古いブラウザではダメかも。
早く最新版にして,縦読みしましょう。

 JavaScriptを使って段落ごとに縦・横表示切替機能を作るとお年寄りにやさしいUIが可能になりそうです。

卒研メモ:NVIDIA DIGITSインストール完了

 NVIDIA Deep Learning Day 2016 Springというディープラーニング展示会に出席してきました。現在のディープラーニング業界(?)の動向紹介と,GPUを使ったソフトウェア開発環境を分かりやすく紹介していた基調講演が一番良かったです。

 そこで紹介されていた,GPU有力メーカー(といっても他はAMDとIntelぐらいしかないんですが)であるNVIDIA社が提供しているディープラーニングデモ環境,DIGITS 3.0を本研究室のちょっと古いGPU搭載マシン(GTX 780)に導入してみました。LinuxディストリビューションはUbuntu 14.04で,CUDA 7.0開発環境と共にapt-getコマンドでインストール可能です。なぜか最初のCUDA インストール時にはGPUドライバが導入されず,デフォルトのNVIDIA GPU用ドライバであるnouveauを殺し,改めてapt-get install cuda-7.0とすることで無事動作させることができました。

2016-05-02_212526

2016-05-02_212550

 一応,簡単な手書き文字認識ができることは確認できました。

 DIGITSには様々なディープラーニングフレームワークが導入されているようなので,これから勉強していきたいと思います。核となるニューラルネットワークについては本学の名誉教授である菅沼先生のページでもソースプログラム付きで解説されています。

 今年度の誰かの卒研にリンクできませんかね?

卒研メモ:PHP + MySQLプログラミング教材完成

 2014年度の卒業研究として制作してくれたPHP+MySQLプログラミング教材ですが、アップロードしたものに不備が多々あり、その手直しを本年度の卒研生(水野君、渡邉君)が行ってくれました。

 PHP+MySQLプログラミング教材(2016年度改訂版)
2016-05-02_220046

 本年度はこれを改良し、JavaScript, jQueryを取り込んだトータルWeb教材の完成を目指します。

卒研メモ:waifu2x体験

 日経ITProの記事で,Deep Learning技法を使った画像ノイズ除去ソフトウェアwaifu2xの紹介がありましたので,早速使ってみました。

 小さい元画像(浮世絵)をwaifu2xを使って2倍に拡大し,ノイズ除去も行ったものです。

元画像:
28

拡大画像:
28_waifu2x_art_noise3_scale

 確かに,不自然にのっぺりしていますがノイズが除去されていることが分かります。

 このWebサーバにインストールして使うこともできそうですから,誰か体験してみますか?

追記:Windowsで動作するwaifu2x-caffeなるものもあるようです。Deep Learning部分にCaffeを使っているとのこと。

卒研メモ:インターネットの歴史

 ちょろっと「インターネットの歴史」「History of The Internet」を検索するだけでも色々なサイトが出てきますが,Yahoo! Japanが作った絵物語風のものはなかなかいい出来です。

インターネットの歴史

 Yahoo!誕生から20年。時の流れは早いですね。当方も以前Web20周年誕生を記念して公開講座で講演したことがあります(資料PDF)。ざっくりとした歴史の流れをまとめると

2016-04-01_155100

という感じでしょうか。

 年寄りの回顧談は長くなるのでこの辺で。