Author Archives: chen

PHP(2) Form Action

Published by:

このシリーズは、TinyWebDB の実装を目的とする。

TinyWebDBとは

まずTinyWebDB のリポジトリを確認。

https://github.com/edu2web/tinywebdb-php

 

TinyWebDB Protocol:

Action URL Post Parameters Response
Get Value {ServiceURL}/getvalue tag JSON: [“VALUE”,”{tag}”, {value}]
Store A Value {ServiceURL}/storeavalue tag,value JSON: [“STORED”, “{tag}”, {value}]

Store A Value Form

Store A Valueを実装するため、tag-value pair Formをコーディングする。StoreAValueForm.php と保存してください。

<h3>Store a tag-value pair in the databse</h3>
<form action="StoreAValueAction.php" method="post" enctype=application/x-www-form-urlencoded>
 <p>Tag: <input type="text" name="tag" size="30"/></p>
 <p>Value: <input type="text" name="value" size="30"/></p>
 <input type="hidden" name="fmt" value="html">
 <input type="submit" value="Store a value">
</form>

Store A Value Action

フォームに入力された値のPHPによる取得方法の実装。下記のコードを StoreAValueAction,php と保存してください。

<?php
            // JSON_API , Post Parameters : tag,value
            $tagName     = $_POST['tag'];
            $tagValue    = $_POST['value'];
            $apiKey      = '';	// $_POST['apikey'];
            $log_message = sprintf("%s:%sn", date('Y-m-d H:i:s'), "storeavalue: ($apiKey) $tagName -- $tagValue");
            echo $log_message;
?>

受け取ったデータは表示されるはず。

Colab(2) Pip List

Published by:

Machine Learning に使うライブラリを確認するため、OSのコマンドラインに命令を送る。

!pip list

ずらずら出てきた。かなり長い。

Package                            Version    
---------------------------------- -----------
absl-py                            0.5.0      
altair                             2.2.2      
astor                              0.7.1      
backports-abc                      0.5        
backports.functools-lru-cache      1.5        
backports.shutil-get-terminal-size 1.0.0      
backports.weakref                  1.0.post1  
beautifulsoup4                     4.6.3      
bleach                             3.0.2      
cachetools                         2.1.0      
certifi                            2018.10.15 
chardet                            3.0.4      
configparser                       3.5.0      
crcmod                             1.7        
cycler                             0.10.0     
cymem                              2.0.2      
cytoolz                            0.9.0.1    
decorator                          4.3.0      
defusedxml                         0.5.0      
dill                               0.2.8.2    
entrypoints                        0.2.3      
enum34                             1.1.6      
funcsigs                           1.0.2      
functools32                        3.2.3.post2
future                             0.16.0     
futures                            3.2.0      
gast                               0.2.0      
google-api-core                    1.5.0      
google-api-python-client           1.6.7      
google-auth                        1.4.2      
google-auth-httplib2               0.0.3      
google-auth-oauthlib               0.2.0      
google-cloud-bigquery              1.1.0      
google-cloud-core                  0.28.1     
google-cloud-language              1.0.2      
google-cloud-storage               1.8.0      
google-cloud-translate             1.3.1      
google-colab                       0.0.1a1    
google-resumable-media             0.3.1      
googleapis-common-protos           1.5.3      
grpcio                             1.15.0     
h5py                               2.8.0      
httplib2                           0.11.3     
idna                               2.6        
ipykernel                          4.6.1      
ipython                            5.5.0      
ipython-genutils                   0.2.0      
Jinja2                             2.10       
joblib                             0.12.5     
jsonschema                         2.6.0      
jupyter-client                     5.2.3      
jupyter-core                       4.4.0      
Keras                              2.1.6      
Keras-Applications                 1.0.6      
Keras-Preprocessing                1.0.5      
Markdown                           3.0.1      
MarkupSafe                         1.0        
matplotlib                         2.1.2      
mistune                            0.8.4      
mock                               2.0.0      
mpmath                             1.0.0      
msgpack                            0.5.6      
msgpack-numpy                      0.4.3.2    
murmurhash                         1.0.1      
nbconvert                          5.4.0      
nbformat                           4.4.0      
networkx                           2.2        
nltk                               3.2.5      
notebook                           5.2.2      
numpy                              1.14.6     
oauth2client                       4.1.3      
oauthlib                           2.1.0      
olefile                            0.46       
opencv-python                      3.4.3.18   
pandas                             0.22.0     
pandas-gbq                         0.4.1      
pandocfilters                      1.4.2      
pathlib                            1.0.1      
pathlib2                           2.3.2      
patsy                              0.5.0      
pbr                                5.0.0      
pexpect                            4.6.0      
pickleshare                        0.7.5      
Pillow                             4.0.0      
pip                                18.1       
plac                               0.9.6      
plotly                             1.12.12    
portpicker                         1.2.0      
preshed                            2.0.1      
prompt-toolkit                     1.0.15     
protobuf                           3.6.1      
psutil                             5.4.7      
ptyprocess                         0.6.0      
pyasn1                             0.4.4      
pyasn1-modules                     0.2.2      
Pygments                           2.1.3      
pymc3                              3.5        
pyparsing                          2.2.2      
pystache                           0.5.4      
python-dateutil                    2.5.3      
pytz                               2018.5     
PyWavelets                         1.0.1      
PyYAML                             3.13       
pyzmq                              16.0.4     
regex                              2018.1.10  
requests                           2.18.4     
requests-oauthlib                  1.0.0      
rsa                                4.0        
scandir                            1.9.0      
scikit-image                       0.13.1     
scikit-learn                       0.19.2     
scipy                              0.19.1     
seaborn                            0.7.1      
setuptools                         40.4.3     
simplegeneric                      0.8.1      
singledispatch                     3.4.0.3    
six                                1.11.0     
spacy                              2.0.16     
statsmodels                        0.8.0      
subprocess32                       3.5.3      
sympy                              1.1.1      
tensorboard                        1.11.0     
tensorflow                         1.12.0rc1  
tensorflow-hub                     0.1.1      
termcolor                          1.1.0      
terminado                          0.8.1      
testpath                           0.4.2      
Theano                             1.0.3      
thinc                              6.12.0     
toolz                              0.9.0      
tornado                            4.5.3      
tqdm                               4.27.0     
traitlets                          4.3.2      
typing                             3.6.6      
ujson                              1.35       
uritemplate                        3.0.0      
urllib3                            1.22       
vega-datasets                      0.5.0      
wcwidth                            0.1.7      
webencodings                       0.5.1      
Werkzeug                           0.14.1     
wheel                              0.32.1     
wrapt                              1.10.11    
xgboost                            0.7.post4  

Blue Book の機械学習のRaspberry Piの環境と比べると、ほぼ同じといえる。

こちらでBlue Book の機械学習をやってみる。

カラー図解 Raspberry Piではじめる機械学習 基礎からディープラーニングまで (ブルーバックス)

新品価格
¥1,760から
(2020/7/17 13:56時点)

Colab(3) use OpenCV

Published by:

「参考1」のコードはほぼ同じでできた。

コード

下記のコードをGoogle Colaboratoryにコピペ、lena_std.tifのファイルは別途用意する。

%matplotlib inline
import cv2 # opencvのインポート
import matplotlib.pyplot as plt # matplotlib(描画用)

print(cv2.__version__)


from google.colab import files #
f = files.upload() #ファイルアップロード


img=cv2.imread("./lena_std.tif")

show_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
plt.imshow(show_img) #表示

lena_std.tifというファイルをアップロードして、imreadで読み込んで、plt.imshowで表示する。
(表示の前に、BGRをRGBに変換)。

参考

  1. https://qiita.com/kouki_outstand/items/ec1024cf0517f686ed7b

 

Colab(1) Getting start

Published by:

Google ColaboratoryはGoogleが機械学習の教育や研究用に提供しているツールである、Jupyter Notebook環境が無償で!使うことができる。

Google Colaboratoryとは

Colaboratory は、完全にクラウドで実行される Jupyter ノートブック環境です。設定不要で、無料でご利用になれます。Colaboratory を使用すると、コードの記述と実行、解析の保存や共有、強力なコンピューティング リソースへのアクセスなどをブラウザからすべて無料で行えます。

Google Colaboratoryの起動

Google Colaboratoryにブラウザでアクセスするだけ

リソースの確認

ノートブックを新規作成 > PYTHON 2の新しいノートブック または, PYTHON 3の新しいノートブック を選択

“!”をつけることで、Linuxのコマンドを実行することができます。
コードセルを追加し

!cat /proc/cpuinfo

長い出力を確認してください。

仮想マシンタイプスペック

Google Colaboratoryの仮想マシンタイプスペックの例:

  • n1-highmem-2 instance
  • Ubuntu 18.04
  • 2vCPU @ 2.2GHz
  • 13GB RAM
  • (GPUなし/ TPU)40GB, (GPUあり)360GB Storage
  • GPU NVIDIA Tesla K80 12GB
  • アイドル状態が90分続くと停止
  • 連続使用は最大12時間
  • Notebookサイズは最大20MB

複数のマシンのブラウザから開けるので、ペア・プログラミングが便利かも。

 

PHP(1) Hello

Published by:

PHP勉強の本

[amazonjs asin=”4798151645″ locale=”JP” ]

 

PHPの基本的な書き方

以下の内容で hello.php という名前のファイルを作成。

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?> 
 </body>
</html>

 

このサンプルではHTMLファイルの中にPHPのプログラムを埋め込んで、echoでブラウザに文字列を出力しています。

サーバに転送

Web サーバーのルートディレクトリ (DOCUMENT_ROOT) に置いてください。

サーバに転送はftp(filezilla)を利用
https://ja.osdn.net/projects/filezilla/releases/69900
ZIP版をダウンロードして、解凍してください。

動作確認

WEBブラウザで実行すると「Hello World」が出力されます。

文法概要

変数

変数とはプログラムで扱いデータを一時的に保存する箱のようなものです。

変数はそれぞれのプログラミング言語で使用する予約語以外なら好きな名前を付けられます。

PHPで変数を指定するときは、ドル記号($)のあとに変数名を記述します。

コメント

プログラムにおいてコメントは、ファイル名のバージョンやクラス名、関数名を記述したり、処理内容の始まりや終わりを記述するために使います。

複雑な処理でもコメントを確認すれば処理の内容がわかるようになるなど、大きなメリットがあります。

コメントには行頭に「//」を付けるスタイルや「/* */」で囲む方法、行頭に「#」を付ける方法などがあります。

Coding at Mac OSX

Published by:

Mac OSX のローカル環境でApache, MySQL, PHP 環境が試したくなり、VMなどいろいろ便利なパッケージがありそうだが、一番基本な方法で揃いたい。

Apache

ApacheもMacOS X 内蔵されたので、そのまま利用
$ # Stop
$ sudo apachectl start
$ # Start
$ sudo apachectl start
Apacheの動作確認
sh-3.2# httpd -v
Server version: Apache/2.4.16 (Unix)
Server built:   Aug 22 2015 16:51:57
 ブラウザで下記のURLで動作確認。

http://localhost/

Web Rootは /Library/WebServer/Documents/ にある。

PHP

php有効にする

PHPもMacOS X 内蔵されたので、そのまま利用。
まず、httpd.conf に phpモジュール行のコメントを外す
# LoadModule php5_module libexec/apache2/libphp5.so
$ sudo vi /private/etc/apache2/httpd.conf
それからApacheを再起動
$ sudo apachectl restart

なう、/privateは隠しフォルダのため、Finderで探して修正する場合、以下のキーを同時に押下し、隠しフォルダ・隠しファイルが表示するように。

[command] + [shift] + [.(ドット)]

上記のショートカットキーで表示・非表示を切り替えられる。

info.phpでphp動作確認

Filename: info.php


<?php

// Show all information, defaults to INFO_ALL
phpinfo();

?>
 ブラウザで下記のURLで動作確認。
http://localhost/info.php

 

MySQL

MySQL のインストール方法は複数あり、ここではbrew でインストールと本家からダウンロード してインストール方法を紹介

brew でインストール

OSXにHomebrewをインストールする

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

ローカルの環境(Mac)に MySQL をインストール

$ brew install mysql

MySQLを起動する

$ mysql.server start

Starting MySQL
. SUCCESS!

ダウンロードしてインストール

MySQLはMacOS Xにないので、本家からダウンロード
ダウンロードしたファイルをインストールする。

WordPressインストール

wp-cli install

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4487k 100 4487k 0 0 956k 0 0:00:04 0:00:04 –:–:– 911k

$ chmod +x wp-cli.phar

$ mv wp-cli.phar /usr/local/bin/wp

$ wp –info
OS: Darwin 17.7.0 Darwin Kernel Version 17.7.0: Thu Jun 21 22:53:14 PDT 2018; root:xnu-4570.71.2~1/RELEASE_X86_64 x86_64
Shell: /bin/bash
PHP binary: /usr/bin/php
PHP version: 7.1.16
php.ini used:
WP-CLI root dir: phar://wp-cli.phar
WP-CLI vendor dir: phar://wp-cli.phar/vendor
WP_CLI phar path: /Users/chen
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.5.1

WordPressインストール

sh-3.2# cd /Library/WebServer/Documents
sh-3.2# wp core download –locale=ja –path=wordpress –allow-root
Creating directory ‘/Library/WebServer/Documents/wordpress/’.
Downloading WordPress 4.9.7 (ja)…
md5 hash verified: b4aea3d0f3353ff1bb5ccdb246732574
Success: WordPress downloaded.
sh-3.2#
設定ファイル生成

sh-3.2# wp core config –dbname=wp_test –dbuser=root –dbpass= –dbhost=localhost –allow-root –path=wordpress

Success: Generated ‘wp-config.php’ file.

データベース作成

sh-3.2# mysqladmin -u root create wp_test
sh-3.2#

WordPressセットアップ

http://localhost/wordpress/

 

参考資料

Dreamhost Hosting

Published by:

DreamHostには、One-Click-Installsという機能があり、WordPressとMySQLを10分程度で簡単にインストールすることができる。

1)サイト追加

新しいサイトにWordPressインストールするなら、まずサイトを追加する。

管理画面から「Manage Domains」を開き、「Add Hosting to a Domain / Sub-Domain」をクリックして追加する。ドメイン名など適切なパラメータを設置し、「Fully host this domain」でサイト作成。

2)「One-Clock Installs」選択

「One-Clock Installs」ページで「WordPress」を選ぶ。

3)インストール先のサイト選択

先ほど追加したサイトのドメイン名を選ぶ、インストールパス、DB名はそのままでも良い。「Install it for me now!」をクリック。インストール結果メール待ち。

4)パスワード再設定

インストール結果メールには、パスワードリセットするリンクがついてるので、クリックしてパスワード再設定する。

5)サイトにログイン

メールアドレスと再設定したパスワードでサイトにログイン。

 

TinyWebDB log with Graph

Published by:

TinyWebDBに、センサーデータ収集ログを解析して、画像にした!

表示したのでは、温度(最高、最低)、気圧、バッテリー電圧。

縦方向2軸しかできないから、バッテリーの電圧がみつらい。

WordPressのツール「Press This」

Published by:

「Press This」とは

WordPressの管理画面にログインし
[ダッシュボード]→[ツール]→[利用可能なツール]と開きます。

開くと図の様なページが表示されます。

この「Press This」と言うツールを使います。

このPressThis、簡単に言うと、
任意の記事から、掲載したい記事を抜粋して
簡易投稿画面から投稿可能と言う優れものなんです。

Press Thisの使い方

では使い方の解説です。

先ほど開いた画面の図のボタンを
ブックマークバーにドラッグ&ドロップで追加します。

次に、掲載したい記事を開きます。

 

記事の掲載したい部分をドラッグで選択し・・・

 

先ほど追加した[PressThis]ボタンをクリックします。

 

自身のブログにログインしていない場合は
ログインを促されますのでログインしてください。

 

別ウィンドウで図の様な簡易投稿画面が表示されます。

引用元もバッチリと追加してくれていますし
投稿ボタン一つでそのままサクっと投稿する事もできるので
いちいちコピーして・・・
管理画面を開き・・・
投稿から新規投稿画面を開き・・・
ペーストして編集して・・・
引用元を掲載して・・・
と言う、二度手間三度手間を省く事ができて非常に便利です。

WordPress 4.9 Press This 分離

ツールメニューにあるPress thisというブックマークレットが、4.9で削除されます。

従来から、このブックマークレットを使用している場合は、ブックマークレットをクリックすると、インストールボタンが表示されインストールできるようになります。

インストール後、古いブックマークレットをクリックすると
The WordPress bookmarklet was deprecated. Please delete it from your web browser.

と表示されるので、インストール後ツールから、ブックマークレットをセットしなおすといいようです。

新たに使う場合は、Press This — WordPress プラグインから、インストール可能です。

また wp-admin/press-this.php を開くと, 次のように表示され、プラグインをインストールするように促す:

ここでクリックして、プラグインをインストール、有効化すれば、 Press Thisが使えるようになる。