いろいろ技術的メモ

仕事に差し障りない範囲で、関連ネタなど…

日本語言語リソースの生成

comja5っての入れるらしいで。

 

install

composer require laravel-ja/comja5:~1 

これでcomposer.jsonのrequireに、comja5が登録されている。

なお、requireとrequire-devは、develop用(開発用)か否かの違い。「composer require require-dev」などと、ぐぐると出てくる。

 

こいつは入れただけだと何もしない。

./vendor/bin/comja5 -c -f

とりあえず、ソースのコメント日本語化と日本語言語ファイルの生成を指示。引数optionなしで実行すれば、option一覧が見られる。他にもoptionあり。 

 

実行すると、

test\resources\lang

配下に、jaディレクトリが作成され、日本語版fileが生成される。

 

test\config\app.phpのlocale指定を jaに変更する。

'locale' => 'ja',

これでエラーメッセージなどが日本語表示になるはず。

 

 

 validation時などのメッセージの日本語対応は、copyして自分でエラーメッセージ翻訳するよりは、これで一括で処理させた方が良かろう。

 

 

とりあえずdebug環境

とりあえず、とりあえず、debug環境をちゃんとしたい。

 

参考:

qiita.com

これよさげ。

 本家git

github.com

 

本家のtopの、Installation->laravel 5.x に設定とか書いてある。

homesteadと、5.4.x環境の、手元環境で読み替えてみる。

 

 

前提:

前記事まででlaravel 5.4.x環境は立てた。

ローカルでファイルを見ながら、routingのroot、

test\routes\web.php

のroot対応あたりに、以下を仕込む。

Log::info('るーてぃんぐ (/) 動きましたぜ。');

これを表示後のviewで確認したい。

 

 

具体的な作業:

composer.jsonは、前記事で設定した環境に既存なので、require-devに追記する。

既存の末尾にはカンマがない。

 "require-dev": {
    "fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~5.7",
"barryvdh/laravel-debugbar"
: "2.*@dev" },

 

ユーザ環境下のHomesteadディレクトリで git-bashから vagrant sshした後に、 testディレクトリの、composer.jsonがある場所で updateする。

cd ./Code/test
composer update

実行。

 

追記:

composer require-dev barryvdh/laravel-debugbar:2.*@dev

 こんなんでも良いのかな?

 

ログ見てると、laravel-debugbarは、他で見かける

maximebf/debugbar (PHP環境用?)を使ってるようだ。

laravel環境で使いやすいように、ふぁさーど噛ました代物って事かな?

この実行により、

test\vendor\barryvdh\laravel-debugbar

に関連ファイルが入るようだ。

 

とりあえず、参考1を見ながら、

config/app.phpの、fasade関連の設定にそのまま追記。

vendorとか要らないの?感ある。

app.phpの debugはtrueに設定済み。

URLは、今回利用しているもので、test.app指定。

 

    'debug' => env('APP_DEBUG', true),
    'url' => env('APP_URL', 'http://test.app'),

 

 

結果→Log::infoに設定したものが、ブラウザ上から確認出来た。

他に何もしなくても、表示にかかった時間なども表示されるし、これは良いんじゃないですかね!

 

 

Laravel setupメモ

先の記事では Homesteadから仮想環境構築して、実行環境を立てるところまで。

この記事は、そこにLaravelを設定する流れ。

 

参考:

1:

qiita.com

これのstep8あたりから。

 

2:

Homestead.yamlを更新するにあたり。

agatayoshimi.blogspot.jp

 

 

実操作:

 

vagrant ssh
cd ~/Code/

sshでログインしCode以下に移動。

 

composer create-project laravel/laravel --prefer-dist ディレクトリ名

 Composerはここで叩く。より具体的には、Composer.jsonの存在するパスで実行する。この指定では最新のstableが入りそう。

5.2などver固定でインスコするにはどうするか?

composer create-project laravel/laravel {directory} "5.0.*" --prefer-dist

 こんな形でver指定出来るみたいだが

directory versionの順番が固定で、prefer-distは前に入ってもよい模様。

"laravel/framework": "5.0.35" この書き方が必要?例えばこことか。

https://www.versioneye.com/php/laravel:framework/5.0.35

 

 

composer create-project laravel/laravel --prefer-dist test

 この指定で、testディレクトリ以下に、publicフォルダを含む、laravelファイル群が一通り入る模様。つまりHomesteadは「実行環境の基本」を提供するのみで、Laravelは含まれていない。

 

 

設定の変更:

このままだと、publicディレクトリの位置が、laravelなしのまま。

これを名称含め変更する。Homestead.yaml を編集する。

sites:
    - map: homestead.app
      to: /home/vagrant/Code/laravel/public
    - map: test.app
      to: /home/vagrant/Code/test/public

 Codeのrootは、/home/vagrant/Codeであるので、そのまま。

test.appの記述を追加する。

C:\Windows\System32\drivers\etc\hosts

hostsの記述も確認する。test.appだけにするのもありか。

 

 

変更の反映:

yaml変更だけでは、仮想マシンの挙動が変わらない。

vagrant up --provision

 optionを追加して起動することで、設定変更を反映出来る。

 

 

とりあえず、これで laravelの初期画面が出た。

 

Laravel Homestead (構築メモ

環境構築ネタ。

ホスト環境はwindows10。

開発でホスト環境の、この場合はEmEditor使いたい。のでローカルとのディレクトマッピング必須だし、publicの親にデータ置くとか普通にやりたい。

 

参考:

1:

qiita.com

 

2: Laravel Homestead 5.2 Laravel

 

3:

laravel.com

 

4:PHPverが古くないと、5.0.x系laraelなどはエラー出まくりなので。

teratail.com

 

 

 

このへん。

 

手順:

参考の2、3の方から、virtual boxとvagrantを拾う。

1の方からgit for windows拾う。

 

  • virtual boxはGUI App。大したこと聞いてこないのですんなりinstall。
  • vagrantは、コマンドライン実行するexe。install後に、windowsコマンドプロンプトから実行可能。デフォルトインストール指定では、わりと変なところに入る。
  • git for windowsは、git関連ツールとともに、bash for windowsを使う事が主眼と考えて良い。こいつはinstall時にいろいろ聞いてくる。雑に書くなら、optionの選択肢はすべて一番上。checkboxの選択肢はそのままで。

 

以下、コマンド手順。 

  1. vagrantの環境下に親データになる、Laravel/Homesteadを取得してくる
  2. git for windowsbash for windowsを起動し、gitリポジトリを取得してくる
  3. gitリポジトリの設定
  4. vagrant up

以上。

 

1:

vagrant box add laravel/homestead

bash for windowsから叩いても動く模様?

windowsコマンドラインから実行しても問題ない。

デフォルトインストール環境であれば、

C:\HashiCorp\Vagrant

あたりにinstallされている。

box addした結果は、ユーザディレクトリ配下の .vagrant.d以下あたりに取り込まれている。

→振る舞いがよくわからんな。もう少し調べたい。

 

2:

自分のユーザディレクトリ配下で、bash for windowsから

git clone https://github.com/laravel/homestead.git Homestead

gitのリポジトリデータを取得してくる。

これ自体はわかりやすい振る舞い。

ユーザディレクトリ配下に、Homesteadディレクトリが作成され、そこにgitのリポジトリデータが取り込まれる。

 

同様にブランチ指定で、PHP5.6系が入ったhomesteadを構築出来る。

git clone -b 2.0 https://github.com/laravel/homestead.git Homestead

 

3:

設定作業。gitから取得してきた bash for windowsで作業継続。

cd Homestead
./init.sh

これで設定ファイルが生成される。Homesteadディレクトリ内の Homestead.yaml。変更の詳細は、参考:2あたりベースで。

ssh-keygenは、-t指定は方式指定。-C指定はコメント。

ユーザディレクトリ配下に .sshディレクトリを作成する流れを取ると、Homestead.yamlのデフォルト設定を書き換えずに作業出来る。

 

4:

cd ~/Homestead
vagrant up

ユーザディレクトリ配下の、VirtualBox VMs以下に、作成された仮想マシンがupされている。

.VirtualBox以下に、ログなど。

IPアドレスアクセス直後は、index.htmが存在しないので 403などの表示になる。マッピングしたローカルディレクトリに、index.htmを作成すると、表示されるはず。

 

 これでLarabelを含んだ基本環境が構築されているはず?

→そんなことはなかったぜ!→次記事へ

cd ~/Homestead
vagrant ssh

vagrant経由でssh接続出来る。

 

Kuinちらりと

たまたまTLに流れたのでげっと。

syntaxをずいぶん妙な方向に振ったように見えるけど…

 

 

func main()
	var wndMain: wnd@Wnd :: wnd@makeWnd(null, %normal, 400, 100, "test")

	var fn: []char :: ""
	var filter: [][]char :: [ "*.kn", "*.*" ]
	do fn :: wnd@openFileDialog( wndMain, filter, 0 )

	var lbl: wnd@Label :: wnd@makeLabel( wndMain, 3,3,330,50, %scale, %scale, fn )

	while(wnd@act())
	end while
end func

 

 ファイルを開くダイアログを開いてファイル名を取る。

記号が多様され過ぎてて、ちょっと把握出来るまで微妙かなぁ。

利用されている記号の振る舞いの一覧は文書化したほうがいい気がする。

 

ADO.net 覚え書き

今回、ちょっと縁あってADO.netを触ったのだけど、ざっとwebのサンプルを見ていくと、無駄に複雑な実装を頻繁にみかける。


それが実装目的に照らして意図通りであれば問題ないのだけど、旧来のDB接続モデルであるところの、connectionをApplicationレベルで保持して、SQLを書いてしまって、selectやinsertやupdateを必要に応じて発行する流れ(ex: VB.net以前からの移植等)であれば、この複雑性は不要。


一例として select文発行については、以下の流れでOK。

Public Function execSelect(ByVal sql As String, ByRef cn As OleDbConnection) As DataTable
    Using da As New OleDbDataAdapter(sql, cn)
        Dim dt As New DataTable()
        da.Fill(dt)
        Return dt
    End Using
End Function


また、insertやupdate、deleteなどの発行であれば、以下。

    Dim cmd As OleDbCommand = cn.CreateCommand()
    cmd.CommandType = CommandType.Text
    
    :

    cmd.CommandText = sql
    cmd.ExecuteNonQuery()


まだ把握しきってないので、結果を保証するものではないのだが、旧来のDB接続モデルで必要十分なアプリについては、このレベルで良いと思われる。DataTableはfilter近似の関数(.Select メソッド)もあり基本的な操作が一通り出来、DataGridViewに設定して表示することも可能。そして余計な処理や変数を記述する必要がない。

raspberry pi + pitft (kernel rebuild)

PiTFTは Adafruitから出ている、model B用の TFTデバイス。ili9340と表示されるチップセットを使っている版を入手したので、これに関して。他でも応用が利くかも?

 

公式は以下。

Overview | Adafruit PiTFT - 2.8" Touchscreen Display for Raspberry Pi | Adafruit Learning System

 

このデバイス、公式で debファイルやらkernelやらを公開してくれていて、言われるままに使うなら、ちょっとした電子工作とコマンド叩くだけで、とても簡単に実装できる。

が、kernel-rebuildが必要な状況になると、なかなか面倒だったりする。fbtftのドライバ引っ張ってきてチップセット指定しても、なぜだか綺麗に動かなかったり。こうなるとハード寄りに余り詳しくない身には辛い。

 

たぶん、一番纏まってる fbTFTデバイスのドライバgit。でも上手くいかなかったよ…。


notro/fbtft · GitHub

 

 

でも探すと、pitftに対応した専用verが gitに落ちていたりするので、それをメモしておく。

 


xobs/adafruit-rpi-fbtft · GitHub

 

よく見ると、notroのreadmeがそのまま載ってるのよね。いいの?これ。いや、とても助かるんだけど。w

取り込みやrebuildの設定周りは、notroのドライバと同じ方法でOK。設定はAdafruit公式に沿ってやればOK。ソース読むと設定があるが、adafruitts、指定で稼働する。

 

menuconfigの指定は、

Device Drivers
 GPIO Supportにチェック付いているのを見ながら…その下の方
 Graphics support
  endの直前に追加していれば、一番下に、
  Support for small TFT LCD display modules
   devideドライバはchipの型番指定なので
   ILI9340

こんな感じ。

 

ちなみに、組み込んで再構築するだけなら、kernel組み込みではなく、module指定にすること。

 

たぶん詳しい人なら一目瞭然なのだろうけど、

$ sudo vi /etc/modules
snd-bcm2835                       <<既存項目のはず
spi-bcm2708
fbtft_device

 spiデバイスのドライバをloadしないと、そこに繋がっている pitftは当然見えない。組み込み指定にすると、どうも起動時にはうまく稼働しなくて、色々チェックした結果、このドライバLoadの関係かなーと、なんとなく解った。

 

このgit間の違いをチェックすれば、notro版の fbtftには何が足りないのか解りそうだけど、それは面倒なので放置しておく。w