追記

日々をアレコレ

-広告-


2017年06月20日 この日を編集

Docker+Prestashopメモ

dockerでPrestaShopの動作環境を作って、動かす場合の手順メモ。

基本的には、prestashop/prestashop - Docker Hub に従って、docker run コマンドを使って、mysqlとprestashopのコンテナの実行をする。mysqlコンテナの実行時に --name オプションでつけた名前がPrestashopが参照するデータベースサーバー名となるので注意する。また、http://localhost:8080/ で接続するにはprestashopのコンテナがダウンロード、実行完了してからさらに時間がかかるようなので、先にデフォルトではPrestashopが参照するデータベースが生成されていないので、docker run exec -ti <MySQLコンテナID> mysql -u root -p を使って、データベースに接続し、 CREATE DATABASE prestashop; などでPrestashopで利用するデータベースを予め作成する。

ブラウザから http://localhost:8080/ に接続すると、まずはインストールページに入る。言語設定や店舗設定の次にデータベースの設定になるので、データベースサーバとしてdockerコンテナに命名した名前(手順のページだとsome-mysql)を設定し、先程作ったデータベース名を入力すると、テーブルの作成が始まって、Prestashopがdockerコンテナ上で実行できるようになる。


2017年06月03日 この日を編集

YOGA BOOKのSDカードにVisual Studioをインストール

YOGA BOOKはストレージが64GBと結構小さくて、Visual Studio 2017にいろんなコンポーネントをつけてインストールするのはほぼ難しい。しかも、Visual Studioのインストーラは、Visual Studioそのもののインストール先は設定できるのに、Xamarinやらのコンポーネントは有無を言わさずシステムドライブにインストールしてくれる素敵な仕様。それに抗って、microSDカードにVisual Studioをインストールしてみた。

まず、Viausl StudioのみをSDカード上の仮想ドライブにインストール。この時、特にコンポーネントはインストールしておかない。終わったら、インストールしたいコンポーネントを選択して、インストールする。すると、C:\Program FilesC:\Program Files(x86) にいくつか更新されたディレクトリが出てくる。それを、WindowsタブレットのProgram FilesをSDHCへ逃す を参考にSDカード上に移動してリンクを作るようにする。また、C:\ProgramData 内にも大きなものがあるので、同じようにするとより大きくシステムドライブを開けることができる。

Tags: pc

2017年05月27日 この日を編集

YOGA BOOKをセットアップ

YOGA BOOK with Windows を手に入れた。そこで、これまでに設定したこと。

  1. Haloキーボードの設定を変更。

    YOGA BOOKでHaloキーボードの振動やタッチ音を止める方法&ライトの明るさやスリープ移行時間の調節について – こまめブログ を参考にキー押下のフィードバックを無効にして、ライトの明るさを低めに設定。

  2. タッチパッドの設定を変更。

    不具合・FAQなど - yogabook @ ウィキ - アットウィキ にあるアプリを使って、タッチパネルのスクロールの変更を反転。

  3. microSDカードを追加。

    本体のストレージが64GBと小さいので、外部メモリとしてSDカードを追加。

    • Team Micro SDHC/SDXC UHS-1 を購入。レビューを見るとアクセスピードがそこそこ速くて、それなりのお値段なのでダメ元で買ってみた。結果としては、インターフェース側がハイスピードなアクセスに対応してないせいで読み込みが40MB/sec程度、書き込みが15MB/sec程度。
    • 挿入しただけだとリムーバブルドライブとしてマウントされるので、アプリのインストールとかはできなくなる。そこで、中に仮想ディスクを作って、それをマウント。仮想HDD – 自動マウント を参考に設定。
  4. アプリのインストール。

    • Visual Studio Code
    • Visual Studio 2017 Remote Tools

Lenovo 2in1 タブレット YOGA BOOK ZA150019JP /Windows 10/Office Mobile搭載/4GB/64GB/10.1インチ

Lenovo
¥ 44,522

Team Micro SDHC/SDXC UHS-1 COLOR CARDシリーズ 10年保証(128GB)

Team
¥ 5,980

Tags: pc

2017年05月19日 この日を編集

bCore Driver MXを作りました

Vagabond WorksさんからbDriverMXのAndroid版を作らない?という話をもらって作っていた、bCore Driver MXを公開しました。

実は、もう少し早く公開したかったのだけど、いろいろと事情があって公開が遅くなっていたり。まず、手元にAndroid端末が少なかったので十分にテストができなかった。開発を始めるにあたって、手元にあったのは7.0が入ってるMoto G4 plusと4.4のXperiaZだけのつもりが、なぜかXperiaZが起動しなくなってた。なので、しばらくはMoto G4 plusだけでテストはしていて、GW中に別の端末を手に入れようとか考えていたら、XperiaZが再び動いてなんとかサポートできる一番古いのと、最新に近いものでのテストは完了。で、実際にベータ版としてリリースしてみたら5.0/5.1/6.0でのみ発生するバグが。こちらは、AppCompatActivityのPrimary Colorに透過色を入れたことが問題だったらしく、それを改善したアプリを作ったところで、別の問題が発生。

今度は、Googleから規約違反だバカヤローという連絡が。具体的にいうと、すでにPlayストアで公開されてるアプリのなりすましなのが問題だと。ただ、Playストアに類似のものは見つからないので、何が問題無の?と問い合わせたところ、元となったiOSアプリをそのまま使ってるだろう、ということだった。で、Vagabond Worksさんに許諾書を作ってもらって、ようやく公開できるように。一応、Googleもそういうところは監視してるんだね。けど、それならそれで「Playストアの既存アプリ」ではなく、「他のプラットホームにあるアプリ」とか書いてほしかったよ。


2017年05月09日 この日を編集

Fragmentには気をつけて

AndroidのFragmentでハマったのでメモ。

やりたかったことは、

  • 1つのActivityの中で複数のFragmentを切り替える。
  • Activityがバックグラウンドに一度行くと、次にフォアグラウンドに来たときは特定のFragmentが表示される。 という結構シンプルなこと。で、実現のためにしたことは、
  • Fragment自体はActivity.OnCreateで生成し、FragmentTransactionに登録。
  • Activity.OnResumeで初期表示するFragmentをshowするようにする。 とい感じ。これだと、アプリ起動中に端末がスリープ状態になり、復帰するとすべてのFragmentが表示されるようになる。Twitterで教えてもらった内容だと、スリープから復帰時にすでにあるFragmentが再度自動生成されているにもかかわらず、さらに新しいFragmentを生成して追加していることになり、一方だけの表示切り替えをしていることになる、ということらしい。なので、Fragmentの生成と登録は次のようにするほうがいいらしい。
var transaction = FragmentManager.BeginTransaction();

// FragmentAを探す
var fragmentA = FragmentManager.FindFragmentByTag<FragmentA>("FragmentA_Tag");

if (fragmentA == null)
{
    // FragmentAはないので生成して追加
    fragmentA = new FragmentA();
    transaction .Add([Frame], fragmentA, "FragmentA_Tag");
}

transaction.Hide(fragmentA);

// FragmentBを探す
var fragmentB = FragmentManager.FindFragmentByTag<FragmentB>("FragmentB_Tag");

if (fragmentB == null)
{
    // FragmentBはないので生成して追加
    fragmentB = new FragmentB();
    transaction .Add([Frame], fragmentB, "FragmentB_Tag");
}

tarnsaction.Hide(fragmentB);

transaction.Commit();

これで、Fragmentがスリープのたびに追加されることを回避できる。ただ、 FragmentManager.FindFragmentByTag などで見つかったインスタンスは、追加時に生成したものとは異なる。なので、Fragmentにイベントを定義して、FragmentからActivityの処理を呼び出すようにするようなことをする場合、FragmentManager.FindFragmentByTag などで既存のFragmentがある場合も、新たに生成した場合もどちらの場合もイベントの登録はその都度行う必要がある。


-広告-

追記