non vorrei lavorare

昔はおもにプログラミングやガジェット系、今は?

cmderのことが分かってきたきがするので、fluentd用のtasksを作ってみた

こんばんは、子供たちは最近、トランスフォーマーにはまっています。YouTubeを見るに飽き足らず、トランスフォーマーたちを段ボールベースで自作しています。@kjunichiです。

背景

昨年末に久しぶりに自作マシンをリニューアルして、Windows環境を使うようになり、Cmderなる イマドキのDOS窓を使うようになった

init.batをコピー

copy %ConEmuDir%\..\init.bat %ConEmuDir%\..\init_td.bat 

init_td.batを編集

以下のように、

  • td-agent-prompt.batを呼び出す
  • UTF-8に変更
  • PYTHON利用時を考慮した環境変数の設定(念のため)
) else (
    echo Creating user startup file: "%CMDER_ROOT%\config\user-profile.cmd"
    (
    echo :: use this file to run your own startup commands
    echo :: use  in front of the command to prevent printing the command
    echo.
    echo :: call "%%GIT_INSTALL_ROOT%%/cmd/start-ssh-agent.cmd"
    echo :: set "PATH=%%CMDER_ROOT%%\vendor\whatever;%%PATH%%"
    echo.
    ) > "%CMDER_ROOT%\config\user-profile.cmd"
)

:: ここから
call c:\opt\td-agent\td-agent-prompt.bat

chcp 65001
cls
set PYTHONIOENCODING=utf-8
:: ここまで

exit /b

cmderの設定

f:id:kjw_junichi:20170326220714p:plain

fluentdのアイコンを作る

公式の

http://docs.fluentd.org/v0.12/articles/logo

から

DLして

ImageMagickicoに変換

convert Fluentd_icon.png -define icon:auto-resize %CMDER_ROOT%\icons\fluentd.ico

完成

f:id:kjw_junichi:20170325221523j:plain

参考資料

関連記事

5年前の記事

4年前の記事

EC-CUBEで21世紀のお店屋さんごっこ~おきゃくさんをたくさんとうろくするよ~

おはようございます。先日、通っている園の卒園式がありました。早いもので、来年は長男が卒園します。@kjunichiです。

背景

前回準備したdockerで作ったEC-CUBEの店舗にお客さんを登録しないと、いつまで待ってもお客さんが来ません。

abrakatabura.hatenablog.com

きみのおみせにたくさんおきゃくさんがきてかいものをしてもらうじゅんびをするよ。

こんぴゅーたーにおきゃくさんをとうろくしてもらおう!

今回はnightmareを使って、EC-CUBEのサイトに実際にアクセスして、入力して仮登録のメールを受信して、 本登録する作業を自動化してみるよ。

Nightmareの使い方

nightmareはv2.0からElectronを使うようになったWebサイト向けののテストツール。 昨今のJavaScriptなページでも頑張ると自動ブラウズできる模様。

超基本的なnightmareの使い方は以下。

const Nightmare = require('nightmare');       
const nightmare = Nightmare({ 
        show: true,
        switches : {'ignore-certificate-errors': null}
});

nightmare
  .goto('https://localhost:8443/')
  .evaluate(() => {
      return document.body.innerHTML;
  })
  .end()
  .then((result) => {
      console.log(result);
  })
  .catch((error) => {
      console.error('Search failed:', error);
  });

かいいんとうろくする

コンピュータに自動的にやってもらう手順

  • お店の入口のページを表示
  • 会員登録のリンクをクリック
  • お客さんの情報を入力する
  • 確認ボタンをクリックする
  • 確認画面の確認ボタンをクリックする

やってみて困ったところ

nightmareがおそい

ぺーじがひょうじされるのをまつひつようがあり、ひとつだけうごかすとじかんがかかる。

とちゅうでうごかなくなる。

どうじにいつつくらいnightmareをうごかして、じかんあたりのしょりけんすうをおおくした。 これにはNode.jsのclusterをつかうことで、かんたんにつくることができた。

たいさく

docker-compose psのけっかをちぇっくして、こんてながおちてるときはさいきどうするようにした。

成果物

git clone https://github.com/kjunichi/eccube-autodrive.git
cd eccube-autodrive
npm install
node registermember.js

学んだこと

  • node.jsのClusterモジュールの使い方
  • docker-composeでの死活監視
  • 大量にアクセスすると、hhvm,mailcatcherのコンテナが動かなくなる

関連記事

4年前の記事

3年前の記事

EC-CUBEをh2oと連携させてdocker for macで動かしてosxfsが大変遅いことを体感した件

おはようございます。なかなか次男のおむつが外れません。それどころか、ここ最近、よく漏らします。@kjunichiです。

背景

前々から、EC-CUBEを動かしたいとは思っていた。

最近Windows向けの記事が多かったけど、今回はMacでやってます。

こどもたちとのあそびをなんとか自分の趣味ともからめて何かできないかと、無い頭ひねって考えてみた。

21世紀でお店を開けば、当然オンラインでの店舗も必要ですよね、むしろ、実店舗をかまえない方が 21世紀は主流ではなかろうかと。

そこで、EC-CUBEをうごかし、21世紀のお店屋さんごっこをするという遊びをするべく、早速準備に入った。

DockerでEC-CUBEをうごかす

Qiitaの記事

を参考にやってみることに。

動かしたが、メチャおそい

docker-syncなるものを使うとファイルアクセスが早くなる旨が参考にした記事には書かれていたが、こどもたちとあそぶ程度なので、

docker-compose up -d

としてやっていた。

表示が遅い

Mac mini late2014なのも大きいが、いくらなんでも遅すぎるといったファーストインプレッション。

これでは、こどもたちにブーブー文句言われておみせやさんごっこができない。

h2oの力を借りてサクサクにする予定だった

まぁ、ちょっと遅すぎと思いつつも、Apachephpモジュールだからなのが大きいのだろうと考え、 h2oでFastCGIにすれば、劇的に高速化され、子供たちも文句を言わなくなるだろうと思い、やってみた。

この状態で、さすがに計測くらいはするかとtimeコマンドかまして、curlでトップページにアクセスしたら4秒もかかっている!!

改善策

一瞬真面目に、特権命令を有効にしてコンテナ上げなおして、straceするかと思ったが、 ふとdocker for macのファイル共有が遅いとのフレーズを思い出し、 コンテナ内にec-cube以下のディレクトリをコピーして、やり直した。

劇的に改善

HTTP/2でアクセスできるようになった事以外にも、fastcgiになったので 0.2秒程度になった。

 

成果物

せっかくなので、hhvmでやってみた。

学んだこと

  • ○○は遅いというのは、ほんとにくそ遅いということもある

  • docker for macでローカルの複数のファイルをコンテナで利用するのは、避けるべき

  • ec-cubeの設定が少しわかるようになった

apacheとの比較のため、/var/www/html/配下にec-cube,ec-cube2を同居させ、切り替えながら試している 際に、ec-cubeの初期設定もすこしわかるようになった。

設定ファイルを編集しないとクッキー周りでうまく行かないことがあった。(これは、もとにしたコンテナが、 ROOT_URLPATHを指定していた為であった)

  • h2oでPHPを使うのはホントに簡単だった

  • EC-CUBE 3の途中から、Windows環境でもeccube_install.phpにより導入が可能になったこと知った。

参考資料

関連記事

10年前の記事

7年前の記事

1年後の記事