2015年12月28日月曜日

西友のお墨付きカレー

ちょっと前に西友に置いてあるお墨付きカレーを毎日食べていたので何となくレビュー。
もっと種類があったのですが名前とパッケージで買ったものだけ対象です。


ひよこ豆とやさいのチャナマサラカレー

辛さLEVEL3のインド系豆カレー。豆はヒヨコマメ。辛さはまぁ辛いのを何とか感じますがそんなに辛くないです。後味がちょっと苦味を感じました。火を通しすぎちゃったからかな??次は買わないかも。150円。

カレー辛口

日本系辛口。激辛ってほどでは無いですが食べた中で一番辛く、このくらいで辛いカレーって感じがしました。それでもカレー専門チェーン店で食べるものより空く無いです。刺激が欲しいときはこれにすると思います。一応辛いの苦手な人は避けましょう。値段忘れましたが100円切りました。

カシューナッツ香るマッサマンカレー

インド系(タイ系?)ココナッツカレー。LEVELは3辛ですが、辛さはピリとする程度で完全にココナッツの甘さに負けてます。でもココナッツの香りと甘い風味が旨くて一番食べた。因みにカシューナッツはどこに入ってますか?150円。

バターチキンカレー・キーマカレー

ランチ時にインド料理屋さんに行くと大抵この二つのどちらかを頼みます。私の中で信頼と実績の二大カレーです。 150円でこのクオリティなら勝って良かったと思ってしまいました。そこそこ旨く再現性も中々でした。

カレー中辛

ラストは日本系中辛。辛く無く、辛いのが苦手な人でもいけそうな気はしますが怖い人は試さないほうが良いかと。 パンチも無いのでなんとなくカレーにしたいと思った時には買うかな??こちらも100円切ってたはず。

次のお正月はおせちとお雑煮に飽きたらカレーをたべようかな。

2015年10月9日金曜日

XcodeでGoogle+ iOS SDK が原因で"ERROR ITMS-90535"を発生

自身のiOSアプリの修正をXcode 7.0.1 で行いApp Storeにアップロードしたら以下のようなエラーが発生しました。
ERROR ITMS-90535: "Unexpected CFBundleExecutable Key.The Bundle at 'payload/xxxxxx/GooglePlus.bundle/ GPPCommonSharedResources.bundle' does not contain a bundle executable. If this bundle intentionnally does not contain an executable, consider removing the CFBundleExecutable key from its info.plist. ・・・



何となく翻訳すると
”期待していないCFBundleExecutableキーがある。バンドル実行は許可されない。実行しないならキーをinfo.plistから消して”
という事の模様

でもどうしたら良いか全然わからないのでググってみました。

[SOLVED] ITMS-9000 Error : Unable to submit apps embedding GooglePlus SDK (GooglePlus.bundle)
An important announcement for iOS developers using the GooglePlus SDK

先ず上記二つのページに行きつきまして、
Appleのポリシーが変わったからGoogle+ iOS SDKを1.7.1にバージョンアップしてねって事のようです。
で早速バージョンアップしてみたんですが。。。エラーが解消せず。
バージョンが上がってると思うのに何故か解消されない。

もうちょっと調べてみてstackoverflowに行きつきました。
ここではGoogle+ iOS SDKの中にあるCFBundleExecutableというキーを消せばOKとありました。

XcodeでGoogle.bundleを展開してinfo.plistを開くと「CFBundleExecutable」は見つけられませんでしたが
「Executable file」という変数があったのでこいつを消し。
さらにGoogle.bundleの中にあるGPPCommonSharedResources.bundle、GPPShareboxSharedResources.bundleのinfo.plistからも
同様に「Executable file」という変数を消し。
これで何とかApp Storeへアップロードできました。

アップロードのエラーは解消しましたがアプリはin reviewの状態が続いています。
大丈夫かな。。。

2015年9月21日月曜日

初めての商標権申請

初めての商標権の申請をしてきました。

特許庁の入り口
なかなかかっこいい入り口。

入って直ぐに来庁者受票を記入します。

用件は出願・申請です。
この日は雨でしたが入り口には鍵付きの無料の傘置きもありました。

持ち物検査の後に申請書を出して入館証を貰います。
出願窓口へ向かいますが、場所がわからない場合は場所まで案内してくれます。

窓口まで来て商標権申請書をコピーするのを忘れました。
が、地下一階にコピー機があるのを教えてもらい控え用のコピーをしてから望みました。
窓口の手前で特許印紙を販売しているので購入します。
併せて、申請書を電子化する為の料金も払えるので払いたい人は払います。ここで払わない場合は後日ハガキが 送付されるようです。
私はめんどくさいので払いました。

手続きはすんなり終わり控えにハンコをしてもらいました。

あとは数か月後に無事審査が通るのを待つばかりです。楽しみ。


申請書の書き方やフォーマットはインターネットで結構集められるのでここでは触れません。
申請したい商標が既に申請や登録されているのか?自分の申請したい区分がどこにするべきなのかは
自分で出来ない事も無いけど専門家(弁理士さん)へ相談する方が賢明だと思いました。
折角申請しても既に申請済みだったり、検討違いの区分に申請したり穴があったりしたら勿体ない。
今回相談させていただく機会があったので本当に助かりました。

普段特許庁とか行かないのですごい新鮮だった

2015年8月29日土曜日

EGitのインストールで署名付きコンテンツの読み取り中にエラー

Eclipse(4.4.0)にEGit(4.0.1.201506240215-r)を入れようとしたらちょっと躓きました。
以下のエラーが発生してEGitをインストールが出来ない状態が発生してしまいました。

An error occurred during the org.eclipse.equinox.internal.p2.engine.phases.CheckTrust phase. session context was:(profile=epp.package.standard, phase=org.eclipse.equinox.internal.p2.engine.phases.CheckTrust, operand=, action=). Error reading signed content. error in opening zip file

zipファイルを開く時に署名付きコンテンツの読み取り中にエラーが発生したって事らしいです。

日本語の解決策がいまいち無かったのでおなじみstackoverflowを参考にさせてもらいました。
ここを読ませていただく限り
Eclipse の root ディレクトリにある artifacts.xml を消せ
って事のようです。
早速試してみたら解決しました。

ただ、懸念点として前述のxmlファイルはEclipseがプラグインを管理するライブラリの一部らしいです。
私の現在の環境は影響がありませんが、場合によってはどこかに影響が出る可能性はあるかもしれません。

2015年8月13日木曜日

青色申告の勉強

今年から個人事業主として活動している中でいまいち複式簿記のやり方がわからないので
色々と探してみた結果、練馬区(住んでる街)で練馬区青色申告会というのが存在してそこで
複式簿記の講習を無料でしてくれているとの事で参加してきました。

地域(おそらく)によって種類は数は異なりますが複数の講習の種類があるようです。
参加できる条件は詳しく確認してませんが問い合わせたら私はどれか一つに一度だけ
参加して良いらしいです。

私はPCソフトを使用した『会計ソフト 「ツカエル青色申告」 講習会』に参加してきました。
初日は2コマで最初に青色申告の概要的な話、ソフトの起動と簡単な入力練習をやりました。
2日は結構間が空いてやってくれるそうです。

講習はあっというまでしたが、質問タイムもありだいぶ勉強になりました。
こういう講習をやってもらえると大変助かります。

因みに講習で配られた資料。
緑のやさしい複式簿記は巻末資料や減価償却資産の償却率表は今後もお世話になりそうな予感がします。

で、ここで推薦している会計ソフト「ツカエル青色申告」

ツカエル青色申告 +確定申告 15 新消費税対応 乗換・優待版

触った感じはまぁ使えて便利そう。ただライセンスは毎年払わないといけない。 そりゃそうだろうけど思わず言ってしまう。

2015年5月8日金曜日

Phalcon 2.0 がリリース

もう2週間経ってしまいましたがPhalconから2.0がリリースされたアナウンスがありました。
取り留めも無くざっくり所感を。

Phalconのブログを読むと
  • Zephir で作りました
  • 1.3.xの関数はそのまま書き換えているからアップグレードをオススメ
  • Zephir だから今まで以上に皆さんに機能を提供できますよ
  • みんなありがとう!

Zephir で作った事が非常に強調されています。

用意されているVimemoを観た感じではファイルの自動生成系は 充実しているようです。私は余り自動生成に頼らないんですが喜ばれる方は多いはず。

1.3.xの関数がそのまま使えるというので単純に置き換えるのは簡単そう。ただ根っこが変更されているならば テストは細かくやらないと不安に思ってしまいます。
個人的には必要に迫られない限り1.3.x -> 2.0 は避けると思います。 新しくやるならば 2.0 を選びます。

チュートリアルのMVC回りを読んだ限りでは表面的なスキーマに大きな変更点は無く、私が勝手に期待した サブモジュールの実装は無いみたいです。

処理速度が気になるが、それはそのうちテストしてみようかと。

リリースされたばかりなのでこれからの動きに注目したいと思います。

2015年3月10日火曜日

PhalconとPostgresqlとバイナリーデータ

Phalconを使いPostgresqlのbytea(バイナリー)型へ画像の登録をしてみた。 ちょっと気を付けなければならないと思いメモする事に。
最初にポイントだけ書くとModelを使用した場合に登録、更新時のデータ型と取得した時のデータ型が異なって いるので気を付けなければいけない。また、基本的にはその部分について書いているので他の点についてはだいぶ 簡略化して記述している。

併せて、これを実行した時の各種バージョン
Postgresql 8.4.X
PHP 5.5.15
Phalcon 1.3.2

今回は以下のようなsqlで作成されたbytea型を持ったテーブルから画像データを操作するイメージで 考える。
create table t_image (
  id bigserial not null
  , file_name varchar(255)
  , binarydata bytea
  , constraint t_image_PKC primary key (id)
) ;

上記のテーブルを前提とした場合 model は以下のようになる。 Image.php
class Image extends \Phalcon\MVC\Model
{
  public $id;
  public $file_name;
  public $binarydata;

  /**
   * ソース指定
   *
   * @see Phalcon\Mvc\Model::getSource
   */
  public function getSource()
  {
    return "t_image";
  }
}

画像の登録

Phalconで送信されたファイルを受け取る方法はPhalconのドキュメントを参照する。 参照したデータからバイナリデータを読み出し16進数文字列に変換して登録する
$image = new \App\Mvc\Model\Image();
if ($this->request->hasFiles() == true) {
  // test.png というファイルが送信されると仮定した実装
  foreach ($this->request->getUploadedFiles() as $_file){
    if($_file->getName() == "test.png"){
      $file = $_file;
    }
  }
}

// ファイルがあれば登録を行う
if($file){
  $image->file_name = $file->getName();
  $image->binarydata = bin2hex(file_get_contents($file->getTempName()));
  $image->create();
}

画像の表示

Phalconのモデルを使用した場合にはbytea型にはリソース型が設定される 以下実行例
$image = \App\Mvc\Model\Image::findFirst(array(
    "conditions" => "id = ?1",
    "bind"         => array(1 => 1),
  )
);
if($image && $image->binarydata){
  var_dump($image->binarydata);
}

-- 標準出力 -------------------
resource(21) of type (stream) 
出力する際にはリソースの中身は16進数文字列なのでバイナリ文字列に 変換してから出力する
if($image && $image->binarydata){
  header('Content-Type: image/png');
  echo hex2bin(stream_get_contents($image->binarydata));
}

更新時の注意点

画像の表示で触れたModelを使用した場合にはbytea型にはリソース型が設定される事により bytea型はリソース型から一度文字列データへ変換しないとデータが失われてしまう。
$image = \App\Mvc\Model\Image::findfirst(array(
    "conditions" => "id = ?1",
    "bind"         => array(1 => 1),
  )
);

// ファイル名だけ変更
$image->file_name = "othername.png";

if($image->binarydata){
  // リソースから文字列データを抜出し再設定。
  // リソース型を自動で登録するような事はしてくれていない
  $image->binarydata = stream_get_contents($image->binarydata);
}
$image->update();
勢いで書いてしまっているのでだいぶ端折っているがポイントは網羅できていると思う。 Model::findfirst()で取得してModel::update()やsave()で更新させるのは Phalconでは結構重要な思想のはずだが、データ型が違うという事を意識しなければならないのは ちょっと厳しい。。。もしくはもっと簡単に行う方法があるのかもしれない。

2015年1月31日土曜日

最近のバイクアイテム

今シーズンのマイ・ベストバイ2品。

■RIDEZ Waterproof Case Sサイズ
サイズ展開は数種類ありますが自分はiPhone 4SなのでSサイズです。

RIDEZ(ライズ) Waterproof Caseウォータープルーフケース スマートフォンホルダー Sサイズ 4527625088801
最近ツーリング時に道を間違える事が多いのでナビを導入したいと思うようになってきました。 本当はTabletをナビにしたいと検討していたけどスマートフォン用がリーズナブルだったのでこっちにしました。 iPhoneをナビとして何度か使用してますが安定していて落ちそうになったり等は全くありませんでした。 ホールドはしっかりしているようで安心して使えます。 ケースの上からでも画面を操作できるのも○。色々とはかどります。 因みに自分だけかもしれませんが、最初にホルダーとケースを結合させる時に感触がわからず 不良品だと思ってしまいました。 店員さんにお願いしたら結合しましたが、諦めずに思いっきり結合させる必要有りです。


■SWAT ミリタリーブーツ

SWAT S.W.A.T サイドジッパー ミリタリーブーツ ジャングルブーツ タクティカルブーツ 黒色 ブラック 黒 28.0cm

S.W.A.Tミリタリーブーツのレプリカ(?)。 バイク用のブーツが欲しいが大体1万~ですがこいつは4300円で買えたのでコストパフォーマンスは最高です。 自分の足は27cmなのですが28cmを買ってホッカイロが入るようにしています。 だいぶイメージ通りですがちょっと安っぽいのと足先が分厚い為にクラッチの下に足を入れるのがちょっと辛いです。 足首がだいぶ伸縮するのでクラッチ操作は十分できます。