ノラプログラマーの技術メモ

ネットで調べても出てこなかった情報を載せていきたい技術系ブログ。

手首や指のタトゥーを隠す防水ばんそうこう「ファンデーションテープ」

指のタトゥーが原因で温泉施設から追い出された

当時、付き合っていた恋人と都内の温泉施設「ラクーア」に行った。そこで垢すりをしてもらっていたら、「これ刺青ですか?」と指のタトゥーについて聞かれた。

「まぁこれくらい小さいなら大丈夫だろう」、そう思っていたが、垢すりが終わると風呂場にスーツの男性が立っていた。

そのスーツ男は「すみませんが、タトゥーがあるとのことなので、退館して頂きます」と言ってきた。自分は紙パンツ一丁である。反論する気も失せた。

岩盤浴の代金も払っていたのに、ラクーアに入館して1時間もたたず、退場をくらった。彼女はオロオロして、今にも泣きそうだった。

小さな刺青でも見つかれば一発アウト。そんな温泉施設は、世の中にたくさんある。

f:id:kawai_norimitsu:20160625145914j:plain

タトゥーを指輪で隠すようにした

その一件があってから、手術してタトゥーを取ってしまおうかと考えていた。しかし、調べてみると小さなタトゥーを取るのにかかる手術代は10万円である。

しかも、手術してから元の状態に戻るまで3ヶ月ほどかかるという。うち1ヶ月ほどは包帯を巻き続けなければいけない。これでは生活にも仕事にも営業が出て困る。

仕方がないので、ブ厚い指輪で隠すことにしていた。うっかりすると指輪がズレてタトゥーがこんにちはしてしまうのだが、ないよりはマシである。

絆創膏で隠す手もあるが、いつも怪我している人みたいに思われるし、飲食関係のアルバイトでは不衛生を理由に断れることもあった。

防水のタトゥー隠しシール

そんな中、最近になってファンデーションテープというものを知った。どうやらウォータープルーフ機能がある絆創膏のようなのだ。

YouTubeに動画があったので貼っておく。

www.youtube.com

動画はちょっと盛っている可能性がある。

でもばんそうこうタイプのファンデーションテープがあれば、ラクーアから追い出されることも、半そでを着る飲食バイトに落とされることもなかっただろう。

ファンデーションテープのお試しセットは、4色12枚入り800円なので、使ってみる価値はあるかも知れない。

matome.naver.jp

note.chiebukuro.yahoo.co.jp

Becky!メールのIMAP接続がクソ遅いので改善してみた

そもそもの問題

メールソフトにBecky!ベッキー)を使っている。Google AppsのメールアドレスをIMAPで同期しているのだけど、これが遅くて仕事に支障をきたす。イライラする。なので改善してみた。

1.キャッシュを増やす

Becky!メールのキャッシュを増やして、2回目以降の読み込み速度をあげた。

[ツール]-[全般的な設定]から、[高度]タブを選択し、[IMAPメールアイテムの最大キャッシュ数]を0に設定した。ちなみに0にすると、キャッシュは無制限になる。

f:id:kawai_norimitsu:20160504155901p:plain

2.終了させないようにした

Becky!メールを終了させるたびにキャッシュが捨てられ、またイチからメールが読み込まれる。だからベッキーを終了させないようにした。

まず最初に、プラグイン(bkpwcust-0.2.17.21.zip)をダウンロードし、展開する。

次に、プラグインフォルダの中にある「bkpwcust.dll」を、ベッキープラグインフォルダ(C:\Program Files (x86)\RimArts\B2\PlugIns)へコピーしておく。

f:id:kawai_norimitsu:20160504160237p:plain

続いて、Beckyの[ツール]-[プラグインの設定]から、[Becky!2 Powerful Customizer]をクリックする。

f:id:kawai_norimitsu:20160504160338p:plain

最後に、[×]ボタンで最小化にチェックを入れて、[OK]ボタンをクリックする。

f:id:kawai_norimitsu:20160504160428p:plain

これで閉じるボタンが押されても、Beckyは終了しなくなる。

3.メールの量を減らす

Gmailを使っている場合は、アーカイブという便利な機能がある。これをIMAPで同期できるわけだから、利用しない手はない。

ブラウザからgmailを開いて、検索フォームに[before:2015/12/31]と入力しフィルタをかけ、すべてのメールを選択し、アーカイブ化する。

ポイントとしては、すべてのメールを選択する際に、「この検索条件に一致するすべてのスレッドを選択する」をクリックしておくことだ。

アーカイブ(過去分)のメールは、いつでもgmailの検索フォームから検索できるようになっている。

まとめ

1.過去のメールはアーカイブ化して、読み込むメールの数量を減らす
2.Beckyのキャッシュ機能を最大限に利用する

以上!

LINE PayをPHPで実装してみた

LinePayをPHPで実装したサンプルコード。最低限のAPIしか呼んでません。

<?php

if(!$_GET['transactionId']) {
  // ----------------------------------- 決済reserve
  $header = array(
    'Content-Type: application/json; charset=UTF-8',
    'X-LINE-ChannelId: 1466261954',
    'X-LINE-ChannelSecret: ed0e387bf251243d52c7c6a9a215cc26',
  );
  $postData = array(
    'productName' => "Test Item",
    'amount' => 800,
    'currency' => "JPY",
    'confirmUrl' => "https://hogehoge.com/linepay.php",
    'orderId' => "00001",
  );

  $ch = curl_init("https://api-pay.line.me/v2/payments/request");
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_SSLVERSION, 1);
  curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
  $rs = json_decode(curl_exec($ch), true);
  curl_close($ch);

  if($rs['returnCode'] == "0000") {
    header("Location: {$rs['info']['paymentUrl']['web']}");
  }
  else {
    echo "エラー番号:{$rs['returnCode']}";
  }
}
else {
  // ----------------------------------- 決済confirm
  $header = array(
    'Content-Type: application/json; charset=UTF-8',
    'X-LINE-ChannelId: 1466261954',
    'X-LINE-ChannelSecret: ed0e387bf251243d52c7c6a9a215cc26',
  );
  $postData = array(
    'amount' => 800,
    'currency' => "JPY",
  );

  $ch = curl_init("https://api-pay.line.me/v2/payments/{$_GET['transactionId']}/confirm");
  curl_setopt($ch, CURLOPT_POST, true);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_SSLVERSION, 1);
  curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'TLSv1');
  curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
  curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
  $rs = json_decode(curl_exec($ch), true);
  curl_close($ch);

  if($rs['returnCode'] == "0000") {
    echo "決済成功:{$rs['returnCode']}";
  }
  else {
    echo "エラー番号:{$rs['returnCode']}";
  }
}

?>

詳しくはコチラのサイトへどーぞ。
 ↓↓↓
kawaidesu.com

ゆうパックプリントR、代金引換が使えるようになる設定方法

ゆうプリRで代引きを利用したい

ゆうパックプリントRで、代引きの送り状を印刷したいのだけど、設定方法が分からない。
郵便局の人にいろいろ聞いたら、ゆうプリRの設定が必要とのこと。
代引きシートの印刷方法をまとめてみた。

まず振替口座を設定する

1.ゆうプリRを起動する
2.[基本設定]をクリック
3.[ユーザー管理マスタ]をクリック
4.ユーザー名を選択し、[代引関連設定]をクリック

f:id:kawai_norimitsu:20160415153458p:plain

5.加入者名と振替口座番号を入力して[適用]をクリック
※ゆうちょの振替口座がない場合は作っておく

f:id:kawai_norimitsu:20160415153405p:plain

次に送り状を設定する

1.ゆうプリRのスタートメニューを表示する
2.[送り状設定]をクリック
3.[印刷送り状設定]をクリック
4.「代引きシート(一般・通常)(ユ00424)」をクリックし、[使用する]を選択する
5.最後に[更新]をクリック

f:id:kawai_norimitsu:20160415154053p:plain

代引きシートを印刷してみる

1.ゆうプリRのスタートメニューを表示する
2.[発送管理]をクリック
3.[郵便商品新規]をクリック
4.[代引]を「あり」、[送り状種別]を「代引きシート(ユ00424)」、[代金引換金額]を入力する
5.[お届け先]を入力して印刷する

f:id:kawai_norimitsu:20160415154549p:plain

送り状を荷物に貼り付けるには…

代引きシート(ユ00424)を荷物に貼り付けるには、透明な袋(ユ00431)が必要。どちらも郵便局から無料でもらえる。

f:id:kawai_norimitsu:20160415154906j:plain

袋に入れるとこんな感じ。裏がシールになっているので、荷物にそのまま貼り付ければオーケー。

f:id:kawai_norimitsu:20160415155142j:plain

あとは郵便局の人に集荷に来てもらって、荷物を出せば代金引換でお客様に届けてくれる。
支払われたお金は、登録した振替口座に送金される仕組み。

以上ー。

ゆうプリRの起動時間を3分の1に短縮した方法

ゆうプリRの起動時間が長すぎる…!

日本郵便が提供する送り状印字ソフト「ゆうパックプリントR」の起動時間が遅すぎる。使い始めは「ちょっと遅いなー」と思う程度だったが、1年以上使い続けた今では「遅すぎるやろ!」と思わず関西弁になり、怒りで震えるほどになった。

試しに起動時間を調べてみると、27分33秒かかっている。これもう業務用ソフトウェアとして成立してないだろ…。完全に業務に支障をきたしているので、郵便局へメールしてみた。

郵便局から返事がきた

郵便局からメールが返ってきたので、そのまま転載しておこう。

日頃より<ゆうパックプリントR>をご愛顧いただき、誠にありがとうございます。
送り状印字システムサポートセンターの伊藤と申します。

この度はゆうパックプリントRのご利用につきまして、ご不便をお掛けして申し訳ございません。

お問い合わせいただきました件でございますが、ゆうパックプリントRは、常に最新のマスタデータをご使用いただくために、起動時に弊社システムと通信を行い、マスタデータ等の更新処理を行っております。
そのため、正常な状態でも起動時に多少のお時間を頂いております。
画面遷移につきましても、データベースの仕様上、時間がかかる場合がございます。

起動時の更新処理時間は、データの更新件数やパソコンのハードディスクの状態によっても変わります。

起動にお時間がかかる場合、ハードディスクが断片化している可能性もございますので、以下を行っていただき、起動時間に変わりがあるかご確認いただけますでしょうか。


■ディスクチェックと最適化
 コンピュータ⇒ローカルディスク(c:)を右クリックし、「プロパティ」を開いてください。
 「ツール」タブを開き「エラーチェック」とディスクの「最適化」を行ってください。

 ※エラーチェックやディスクの最適化には、端末の状況によってかなり時間がかかる場合がございますので、端末を使用しない時間帯に行ってください。
    
  最適化は念の為複数回行ってください。

また、上記をご確認頂いた上でも改善が見られないという場合には、追跡情報の連携を停止する事が可能です。
この処理を行う事で立ち上げ時に発送履歴一覧画面にあるデータの配達ステータス(引受や配達完了等の表示)受信を遮断し、多少ではございますが、立ち上げ時間をやや短縮する事が可能となります。
ご希望の場合はお手数ではございますが、当窓口までご相談下さいますようお願い申し上げます。

なお、発送履歴一覧画面内のデータ自体を定期的に削除する事でもソフト内のデータ容量が軽くなり、立ち上げ時の短縮が図れます。

【履歴データの削除方法】
発送履歴データ一覧にて削除対象のデータを選択後、「ゴミ箱へ」ボタンを押下。ゴミ箱の中身にデータが移行されますので、検索条件内の「ゴミ箱表示」にチェックを入れ、「検索」ボタンを押下。ゴミ箱内のデータが表示されますので、データを選択後、「ゴミ箱から消す」ボタンを押下。
※「ゴミ箱から消す」を行ったデータについては、復旧させる事ができなくなりますのでお気を付け下さい。
※データ容量が少ない場合でも、起動時には多少のお時間がかかります。

また、本ソフトをご利用頂くメモリ環境として、最低でもメモリ:2GB以上を推奨するとインストール仕様書にも記載されております。
ゆうプリRだけでも大量の処理を行うため、もしメモリ環境が不足しているという場合には、PCのメモリ環境の確保・増設をご検討頂ければと存じます。
また、搭載メモリが2GB以上でも使用可能のメモリ残量が少ない場合には、起動に多く時間がかかる場合もございます。
なお、HDDの空き容量も確保願います。

以上となります。
お手数お掛けしますが、今後とも何卒よろしくお願い申し上げます。
〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒
 日本郵便株式会社
 送り状印字システムサポートセンター (担当:伊藤)
  電話 : 0570-064-389 【送ろうよ、みんなでゆうパック
  FAX  : 050-3730-6596
  メール: k019000.injihelp.jj@ymd.jp-post.jp
〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒〒

要するに、ゆうプリRを起動するたびに、毎回マスタデータを更新しているから遅いとのことだ。ふむ。あとはハードディスクの断片化を直し、発送履歴を削除すれば良いと提案された。

最後に、メモリが2G以上であり、ハードディスクに十分な空き容量が必要とのこと。最初にこちらを確認してみたが、問題ないようだ。

f:id:kawai_norimitsu:20160402154815p:plain

f:id:kawai_norimitsu:20160402154900p:plain

連続して起動してみた

初回起動時にマスターデータを最新にし、それからゆうプリRを閉じる。再び、ゆうプリRを起動してみた。すると、半分くらいの時間で起動できた。おおー!

初回起動 27分33秒
   ↓↓
2回目起動 11分45秒

だが、起動に約12分ほど掛かっている。これでも遅いと思う。

デフラグしてみた

ハードディスクのデータが断片化されているらしいので、デフラグ複数回おこなって改善してみた。しかし、15秒ほどしか短縮されなかった。

f:id:kawai_norimitsu:20160402155545p:plain

2回目起動 11分45秒
   ↓↓
デフラグ後 11分30秒

この結果から、デフラグはほぼ効果なしだと思われる。

発送履歴を削除してみた

こうなれば最後の手段である。発送予定と発送履歴を削除するのだ。ゆうプリRの「発送管理」をクリックし、過去分の取込処理日付を設定する。ゴミ箱表示にチェックを入れて、「検索」ボタンをクリック。

直近2ヶ月分を残して、すべて削除した。同様の手順で、発送履歴も削除した。すると起動時間が4分未満に劇的変化したのだ!

デフラグ後 11分30秒
   ↓↓
発送履歴削除 3分56秒

いろいろ試したところ、発送履歴を削除する方法が一番効果的だった。

開始7秒間で起動する

裏技的ではあるけど、ネットワークの接続を切って、ゆうプリRをオフラインで起動する方法もある。この方法を試したところ、なんと7秒で起動した。

しかし、オフラインでの起動は3日間のみと制限があり、マスタデータも最新状態と保証されないので、あまりオススメできない。

以上、お役に立てれば。

ECCUBEのエラーメッセージを変更する方法

eccube2.13系で、表示されるエラーメッセージを変更する方法。

「/data/class/pages/error/LC_Page_Error.php」ファイルを編集する。
※オーバーライドして管理してる場合は「/data/class_extends/page_extends/error/LC_Page_Error_Ex.php」ファイルね。

LC_Page_Error.phpに記載されているエラーメッセージの内容は以下の通り。

public function action()
{
SC_Response_Ex::sendHttpStatus(500);

switch ($this->type) {
case PRODUCT_NOT_FOUND:
$this->tpl_error='ご指定のページはございません。';
SC_Response_Ex::sendHttpStatus(404);
break;
case PAGE_ERROR:
$this->tpl_error='不正なページ移動です。';
break;
case CART_EMPTY:
$this->tpl_error='カートに商品ががありません。';
break;
case CART_ADD_ERROR:
$this->tpl_error='購入処理中は、カートに商品を追加することはできません。';
break;
case CANCEL_PURCHASE:
$this->tpl_error='この手続きは無効となりました。以下の要因が考えられます。
・セッション情報の有効期限が切れてる場合
・購入手続き中に新しい購入手続きを実行した場合
・すでに購入手続きを完了している場合';
break;
case CATEGORY_NOT_FOUND:
$this->tpl_error='ご指定のカテゴリは存在しません。';
SC_Response_Ex::sendHttpStatus(404);
break;
case SITE_LOGIN_ERROR:
$this->tpl_error='メールアドレスもしくはパスワードが正しくありません。';
break;
case TEMP_LOGIN_ERROR:
$this->tpl_error='メールアドレスもしくはパスワードが正しくありません。
登録申請された場合は、承認されるまでお待ちください。';
break;
case CUSTOMER_ERROR:
$this->tpl_error='不正なアクセスです。';
break;
case SOLD_OUT:
$this->tpl_error='申し訳ございませんが、ご購入の直前で売り切れた商品があります。この手続きは無効となりました。';
break;
case CART_NOT_FOUND:
$this->tpl_error='申し訳ございませんが、カート内の商品情報の取得に失敗しました。この手続きは無効となりました。';
break;
case LACK_POINT:
$this->tpl_error='申し訳ございませんが、ポイントが不足しております。この手続きは無効となりました。';
break;
case FAVORITE_ERROR:
$this->tpl_error='既にお気に入りに追加されている商品です。';
break;
case EXTRACT_ERROR:
$this->tpl_error="ファイルの解凍に失敗しました。\n指定のディレクトリに書き込み権限が与えられていない可能性があります。";
break;
case FTP_DOWNLOAD_ERROR:
$this->tpl_error='ファイルのFTPダウンロードに失敗しました。';
break;
case FTP_LOGIN_ERROR:
$this->tpl_error='FTPログインに失敗しました。';
break;
case FTP_CONNECT_ERROR:
$this->tpl_error='FTPログインに失敗しました。';
break;
case CREATE_DB_ERROR:
$this->tpl_error="DBの作成に失敗しました。\n指定のユーザーには、DB作成の権限が与えられていない可能性があります。";
break;
case DB_IMPORT_ERROR:
$this->tpl_error="データベース構造のインポートに失敗しました。\nsqlファイルが壊れている可能性があります。";
break;
case FILE_NOT_FOUND:
$this->tpl_error='指定のパスに、設定ファイルが存在しません。';
break;
case WRITE_FILE_ERROR:
$this->tpl_error="設定ファイルに書き込めません。\n設定ファイルに書き込み権限を与えてください。";
break;
case DOWNFILE_NOT_FOUND:
$this->tpl_error='ダウンロードファイルが存在しません。
申し訳ございませんが、店舗までお問合わせ下さい。';
break;
case FREE_ERROR_MSG:
$this->tpl_error=$this->err_msg;
break;
default:
$this->tpl_error='エラーが発生しました。';
break;
}
}

レーザープリンタでラベル用紙がかすれて印刷される場合の解決方法

かすれて印刷されてしまう…

Canonレーザープリンタ(LBP7010C)で印刷すると、最初はキレイに印刷できるものの、途中から印刷が擦れてダメダメな結果に。

ヤマト運輸の「送り状発行ソフトB2」でも、郵便局の「ゆうパックプリントR」でも同じ結果になった。特にバーコード部分がかすれると、送り状として使い物にならず困っていた。

f:id:kawai_norimitsu:20160226174116p:plain

プリンタをクリーニングしても変わらず

プリンタのトナーを変えても相変わらずかすれて印刷されてしまう。用紙を見ると、トナーの粉が定着していないように見えたんだけどなあ。

プリンタのクリーニングも全部やってみるも変わらず。いよいよキャノンのプリンタが悪いのかと思い始める。

f:id:kawai_norimitsu:20160304174629p:plain

用紙の種類を変えたら解決した

キャノンの公式サイトを眺めていたところ、用紙の種類を変えてみるといいらしいことが分かった。

プリンタのプロパティから[給紙]タブを開いて、用紙種類を[ラベル用紙]に変更。ダメ元でやってみると、かすれがまったくなくなった!

f:id:kawai_norimitsu:20160304174846p:plain

これは盲点だった。
この情報が、同じように困ってる人の役に立ちますように。ではではー