2020年11月29日日曜日

macOSでminikubeをインストールしようとしたら書き込みエラーになった

ローカル環境でKubernetesを使えるようにしようと環境構築中にエラーが

下記が今回のエラーで書き込みできない感じのメッセージが出ています。

 $ brew install minikube
Updating Homebrew...
Error: The following directories are not writable by your user:
/usr/local/lib/pkgconfig

You should change the ownership of these directories to your user.
  sudo chown -R $(whoami) /usr/local/lib/pkgconfig

And make sure that your user has write permission.
  chmod u+w /usr/local/lib/pkgconfig

メッセージを読んでいくと、「/usr/local/lib/pkgconfig」のディレクトリの所有権を自分のユーザに変更しろとあるので、コマンドを実行

$ sudo chown -R $(whoami) /usr/local/lib/pkgconfig

次のメッセージはパーミッションを書き込めるように変更とあるのでこれも実行。

$ chmod u+w /usr/local/lib/pkgconfig

2つのコマンドを実行してから、もう一度インストールコマンドを実行すると、無事に成功しました。

簡単なエラーで良かった。。

2020年10月25日日曜日

GASで便利なGoogle AnalyticsのCore Reporting APIのフィルター演算子

Google Analytics (GA) のCore Reporting APIでデータを抽出するときに使うフィルタの演算子が気になったのでまとめてみました。


最初は指標のフィルタで使える演算子です。


■指標

演算子 説明
== 次と等しい
!= 等しくない
> 上回る
< 下回る
>= 以上
<= 以下

次がディメンションの絞り込みで使える演算子

■ディメンション フィルタ
演算子説明
==完全一致
!=一致しない
=@文字列の一部に一致
!@文字列の一部に一致しない
=~正規表現の一致を含む
!~次の正規表現に一致する場合を除く

部分一致の方法がよくわからなくて調べたのがきっかけだったので、これを覚えてスムーズにフィルターの抽出をできるようにしたいと思いました。

■ドキュメント
https://developers.google.com/analytics/devguides/reporting/core/v3/reference?hl=ja

2020年7月21日火曜日

EC-CUBE4でリピーターの取引を集計する方法

EC-CUBE4でデータを集計することが増えてきたので、今回はリピーターの取引がどのくらいあるかを集計する方法をまとめてみようと思います。

前提

今回はDBに直接アクセスしてSQLを実行する方法で説明します。

リピーターとは

リピーターとは、同じサイトで1回以上購入をしているユーザのこと。

リピーターの定義をもとにデータの抽出条件を考えていきます。

集計条件

下記の条件を満たしていれば、リピーターの購入ということにしたいと思います。

  • 初回購入日時が注文日時よりも前の取引
  • 取引状態が購入完了後のステータスになっている取引

利用テーブルについて

EC-CUBE4のデフォルトのDB情報は下記のドキュメントに掲載されているので、参考にしながら進めていこうと思います。



初回購入日時が注文日時より前か判断する方法

dtb_customerテーブルのテーブル定義を確認すると、「first_buy_date」というカラムがあることがわかるので、このデータが注文日時より過去の日時になっていれば、リピーターということになります。

注文日時については、dtb_orderテーブルに「order_date」というカラムがあるので、これを使います。

取引状態を絞り込む方法

取引状態については、dtb_orderテーブルに「order_status_id」というカラムがあるのでこれを使います。「order_status_id」は、mtb_order_statusテーブルにマスターデータとして格納されています。

mtb_order_statusテーブルの説明を読んで、購入完了以降のidを選んでつかいます。今回は、1、4、5、6、7を使ってみようと思います。


リピーター取引抽出SQL

下記のSQLを実行することで、年月ごとにリピーター取引の数を集計できるようになります。

SELECT
  DATE_FORMAT(o.order_date, '%Y-%m') AS ym,
  COUNT(o.id) AS order_cnt
FROM
  dtb_order AS o
  INNER JOIN dtb_customer AS c ON c.id = o.customer_id
WHERE
  o.order_date > c.first_buy_date
  AND o.order_status_id IN (1,4,5,6,7)
  AND o.order_date BETWEEN '2020-07-01 00:00:00' AND '2020-07-31 23:59:59'
GROUP BY DATE_FORMAT(o.order_date, '%Y-%m')
ORDER BY ym ASC


集計対象の期間を変更したい場合は、「o.order_date BETWEEN '2020-07-01 00:00:00' AND '2020-07-31 23:59:59'」の日付を変更することで、集計対象の期間を変更することができます。

2019年9月28日土曜日

Postfixで特定メールアドレス宛のメールだけ送信するようにしたい!

開発環境のPostfixを構築しているときに、本番のデータでユーザにテストメールが飛んでしまうという事故を起こさないために、特定アドレスにだけを送信したかったので、設定を調べてみました。

調べてみたところ、header_checksで条件を書けば実現できることがわかりました。

$ vim /etc/postfix/header_checks
# Accept email address
/^To:.*@example.com/ OK

正規表現で指定できるので、いろんなパターンも指定できそう。 今回は「OK」で設定していますが、「REDIRECT」とかも使えるので、特定のものを他のPostfixとかにリレーするとかもできそうでした。

2019年9月10日火曜日

sendmailコマンドでEnvelope Fromを変更する方法

最近、sendmailコマンドでメールの疎通確認を行うときに、Envelope Fromを変更したいときがありました。

いろいろ調べた結果、-f オプションで変更できることがわかりました。

$ sendmail -t -f info@example.com
From: info@example.com
To: to@example.com
Subject: test
test

.

これで、無事に指定したEnvelope Fromでメールが送信できました。

2019年6月17日月曜日

pythonの実行環境をDockerで構築してスクリプトを実行する方法

pythonの環境をローカルに構築するのに、pythonのバージョンを指定して入れるのもな
と思って、dockerでやってみることにしました。

まずは、コンテナの準備をDockerfileで進めていきます。

今回は、pythonのイメージを使いたいので、ドキュメント見ながら書いて行きます。

$ vim Dockerfile
FROM python:3

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "python", "./script.py" ]

このDockerファイルを実行するとコンテナにコピーした「script.py」というスクリプトが実行されます。

次は、実行するスクリプトを作ります

$ vim script.py

if __name__ == '__main__':
    print('hello')

実行すると「hello」が表示されるスクリプトです。 Dockerfileでビルドしてみます。

$ docker build  . -t script --no-cache
Sending build context to Docker daemon  63.49kB
Step 1/5 : FROM python:3
...
Step 2/5 : WORKDIR /usr/src/app
...
Step 3/5 : COPY requirements.txt ./
...
Step 4/5 : RUN pip install --no-cache-dir -r requirements.txt
...
Step 5/5 : CMD [ "python", "./script.py" ]
...
Successfully built 36d309824e5f
Successfully tagged script:latest

docker buildの-tオプションでscriptを指定したので、実行するときはこのタグを指定して実行します。

$ docker run --rm -it script
hello

無事に「hello」が表示されたので、実行できたことを確認できました。 思ったより簡単だったけど、docker buildでファイルをコピーしているので、毎回docker buildしないといけないのはめんどくさいなと思ったりしました。

2019年5月19日日曜日

create nuxt-appデフォルトのElement UIでHTMLElement is not defined

最近、仕事でプログラミングをすることがなくなってきたので、そろそろ勉強を始めようと思ってNuxt.jsを試してみることに。

$ yarn create nuxt-app <project-name>

上記のコマンドでプロジェクトを作成するときに、element-uiを選んでプロジェクトを開始してみると…



「HTMLElement is not defined」とかいうエラー発生。出鼻を挫かれた感じがするけれど、めげていられないので調べてみると、Githubのissueを発見!

ぱっと見だと、バージョンアップすれば大丈夫そう!と思ってみたものの、「2.8.2」までしかリリースされておらず。。

これは待ってろということなのか…。

どうしようかな。。



2018年10月28日日曜日

PostgreSQLで時間をSELECTする方法

Postgresqlで時間を確認したかったので、どうすれば良いのか調べたらあったのでメモ。

current_dateで日付、current_timeで時分秒がとれました。

>select current_date,current_time;
date | timetz
------------+--------------------
2018-10-25 | 14:50:57.320176+09


2018年10月27日土曜日

docker pullに失敗してunauthorized: incorrect username or passwordがでたときの対処法

最近、ミーティングにでることが業務になってきていて開発することが減ったので、Dockerを全く使っていなかったらエラーがでたのでメモ。

$ docker pull centos
Using default tag: latest
Error response from daemon: Get https://registry-1.docker.io/v2/library/centos/manifests/latest : unauthorized: incorrect username or password

エラーメッセージを読みと、unauthorizedってかいてあるので、ユーザ認証ができていない?

ということで、docker loginでログイン。

$ docker login
Authenticating with existing credentials...
Stored credentials invalid or expired
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (xxx@xxx.xxx):
Password:

無事に解決しました。

2018年8月21日火曜日

mvnコマンドで特定クラスのテストを実行する方法

mavenでビルドするアプリケーションでテストコードを書いているときに、毎回テストを実行していたら時間がかかってしんどかったので、個別にテストできないのかなと思って調べてみたらありました!

その名もdefineオプション!

使うときは、-Dもしくは--defineです。今回は実行するテストを選択するので下記のような感じになります。

$ mvn test -D test=テストクラス名

HelloWorldControllerTestというテストクラスで実行すると…

# 例
$ mvn test -D test=HelloWorldControllerTest

これで特定のクラスだけをテストすることができるようになって、テスト時間を短縮できるようになりました。

2018年7月31日火曜日

PostgreSQLでMySQLの\Gと同じことをしたい!

PHPをやっていたからか、今までMySQLを使うことが多かったのですが、ひょんなことからPostgreSQLを使うことになりました。

今のところ、簡単なSELECT文を流すくらいしかしていないので、そんなに困ったことはないのですが…

カラムの多いテーブルから1行抽出したときに見にくくて、MySQLの\Gを同じかなと思ってPostgreSQLでやったら怒られた。。

当たり前か。ということで調べた結果、「\x」を単体で打ってモードを切り替える必要があることがわかりました!

psql=> \x
拡張表示は on です。

psql=> select * from demo;
------+------
id | 1
name | demo

\xを打つと「拡張表示が on です。」という表示がされ、縦に展開されます。戻す時は、もう一度打ちます。

psql=> \x
拡張表示は off です。

psql=> select * from demo;
id | name
----+------
1 | demo

\xを打つたびに切り替わる!

クエリーによって変えたいから、MySQLの「\G」の方が楽な気がしてしまいました〜。

2018年1月25日木曜日

EC2でPython 3.6を使うときにpip-3.6をpip3コマンドで実行できるようにする方法

EC2のAmazon Linuxで、pip3コマンドを使えるようにするためには、まずyumでインストールをします。

$ sudo yum install python36-pip

正常に終了。念のため、このままだとコマンドが実行できないことを確認してみます。

$ pip3 -V
-bash: pip3: command not found

予定通り、そんなコマンドないパターン。

いろいろなサイトをざっくりしか読んでいないと、おかしいなと思ってついやってしまう再インストール。

$ sudo yum install python36-pip
Loaded plugins: priorities, update-motd, upgrade-helper
24 packages excluded due to repository priority protections
Package python36-pip-9.0.1-1.24.amzn1.noarch already installed and latest version
Nothing to do

上記のようにもう入っていると怒られます。というのがインフラを苦手とする自分の様な人にありがちなことだと思います。失礼か。

では、ここからは本題のpip3コマンドにする方法です。まずは、whichコマンドでpipがある場所を確認。

$ which pip
/usr/bin/pip

これにより、pipは「/usr/bin/pip/」にあることがわかったので、同じ場所に3.6もあるかgrepして確認します。

$ ls -l /usr/bin/ | grep pip
-rwxr-xr-x   1 root root       2804 Sep 10  2014 lesspipe.sh
lrwxrwxrwx   1 root root         21 Jan 15 11:42 pip -> /etc/alternatives/pip
-rwxr-xr-x   1 root root        290 Aug 11  2016 pip-2.7
-rwxr-xr-x   1 root root        370 Aug 26 03:59 pip-3.6

インストールしたpip-3.6がちゃんと入っていることを確認したら、pip3コマンドとして使えるようにシンボリックリンクを貼ってあげると、無事に使えるようになります!

$ sudo ln -s /usr/bin/pip-3.6 /usr/bin/pip3
$ pip3 -V
pip 9.0.1 from /usr/lib/python3.6/dist-packages (python 3.6)

めでたし、めでたし!

2018年1月24日水曜日

FastlaneがExit status: 65でコケた話

BitriseとFastlaneを使ってアーカイブを作っていたら、途中でコケて焦ったのでメモ。

コケたときに表示されたのは下記のエラーです。

The following build commands failed:
Check dependencies
(1 failure)
[02:58:59]: Exit status: 65

Bitrise上にはログの最後4行しか表示されておらず、途方にくれていたらFastlaneからコマンドを実行できることがわかったので、ログファイルをcatしてみることに。

ログをcatした結果、狙い通りBitrise上にログが表示されたので確認していくと、下記のエラーを発見。

▸ Check dependencies
[02:59:00]: ▸ Code Signing Error: No profile for team '**********' matching 'NotifiServiceExtension A' found:  Xcode couldn't find any provisioning profiles matching '**********/NotifiServiceExtension A'. Install the profile (by dragging and dropping it onto Xcode's dock item) or select a different one in the General tab of the target editor.
[02:59:00]: ▸ Code Signing Error: Code signing is required for product type 'App Extension' in SDK 'iOS 11.2'

Code Signing Errorと書いてあって、Notification Service ExtensionのProvisioning Profileの設定が間違っていることがわかりました。

まさかの設定ミス…。とはいえ、解決できて良かった。

2018年1月12日金曜日

Fastlane : shアクションでコマンドを実行する方法

Bitrise上でFastlaneを実行しているときに、エラーが発生して調査のためにコマンドを打ちたくなったので、調べてみたら実行できることがわかりました。

コマンドの実行方法は、Fastfileにshアクションを記入するだけ!さらに、書き方も簡単だった。

例えばlsコマンドを実行したいときは…

#ls
sh("ls")

コマンドにオプションをつけたり引数を渡したりしたいときは下記のように「,」で追記していきます。

#ls -la
sh("ls", "-la")

shアクションが正常に実行されるとログのfastlane summaryに実行したコマンドが表示されます。今回は「ls -la」がちゃんと表示されました。

+------+---------------------------------------------------------------+-------------+
|                                  fastlane summary                                           |
+------+---------------------------------------------------------------+-------------+
| Step | Action                                                                | Time (in s) |
+------+---------------------------------------------------------------+-------------+
| 1    | Verifying fastlane version                                         | 0           |
| 2    | default_platform                                                      | 0           |
| 3    | xcversion                                                                | 0           |
| 4    | xcode_select                                                           | 0           |
| 5    | sigh                                                                        | 4           |
| 6    | gym                                                                       | 20          |
| 7    | ls -la                                                                       | 0           |
+------+---------------------------------------------------------------+-------------+


2017年8月3日木曜日

Fastlaneでbundle exec pod installがエラーになる

Fastlaneにまったく触れたことがなかったのですが、ひょんなことから既存のスクリプトを触ることになりました。

初めてのFastlane。正直、よく分かってないまま実行していると早速、エラーが発生しました。

Exit status of command 'bundle exec pod install' was 1 instead of 0.

読んでみるとなにやらbundle exec pod installが失敗したという感じのエラー。

Google先生に聞いてみると、Podfileまでのパスを書いたら良さそうなことがちらほらあったので、試してみることに。

lane :set_up do
...
cocoapods(podfile: "./Podfile")
...
end

これで解消できたら良いなと思っていましたが、世の中はそんなに甘くないのでエラー。

Exit status of command 'cd '.' && bundle exec pod install' was 1 instead of 0.

podfileにファイルまでのパスを指定すると、cdコマンドでその場所まで移動してから実行してくれることがわかりましたが、直下を明示的に指定してみたものの、失敗。

一回、ちゃんと勉強したほうが良いなと感じつつ…

さらに調べていると、こんなissueを発見しました。ここで、repo_updateが新登場。早速、追加してみます。

lane :set_up do
...
cocoapods(repo_update: true)
...
end

実行してみると、コマンドが「bundle exec pod install --repo-update」に!

様子を見守ること数分。ついに成功しました!

良かったけど、実行時間が伸びました。。当たり前か。

2017年5月6日土曜日

webpack2でCSS FrameworkのMaterializeを使う方法

webpackでCSS FrameworkのMaterializeを使おうとしたら、わからなかったりちょっとハマったりしたのでまとめてみました。

各バージョン

npm : 4.6.1
webpack : 2.5.0

インストール

※ npmコマンドは使える前提で話を進めます
ドキュメントのインストールについてのページから、npmの欄をみてコマンドを実行します。

$ npm install --save-dev materialize-css

これだけだと、webpackで使うのがあれであれなのでmaterialize-loaderを使います。

$ npm install --save-dev materialize-loader url-loader file-loader

ドキュメントにurl-loaderとfile-loaderも忘れずにと書いてあるので、一緒にインストールします。

設定ファイルの作成・変更

materialize-loaderの設定

materialize-loader用にmaterialize.config.scssとmaterialize.config.jsの2つのファイルを作成します。ひとまず、設定を足すのはjsファイルの方になります。内容はドキュメントに合わせます。

$ vim materialize.config.js
module.exports = {
    styles: {
       'materialize': true,
    }
};

スタイルの設定はとりあえずしないので、エラーにならないようにファイルだけ作成しておきます。

$ touch materialize.config.scss

webpack.config.js

つづいて、webpack.config.jsもドキュメントに合わせて変更していきます。変更箇所は、vendorとloadersの2箇所になります。

$ vim webpack.config.js
module.exports = {
    ...
    entry: {
        ...
        vendor: [
            // /path/to/の部分に設定ファイルまでのパスを指定する
            "materialize-loader!./path/to/materialize.config.js",
        ]
        ...
    },
    module: {
        loaders: [
            ...
            {
                test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/,
                loader:"url?limit=10000&mimetype=application/font-woff"
            },
            {
                test: /\.(ttf|eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
                loader: "file"
            }
            ...
        ],
    },
    ...
}

これで完了なのですが、ドキュメント通りにやってもエラーになるという緊急事態が発生します…。

遭遇したエラー

ドキュメント通りなので安心していたらまさかのエラー発生。。

$ webpack /var/www/html/project/src/node_modules/loader-runner/lib/loadLoader.js:35
throw new Error("Module '" + loader.path + "' is not a loader (must have normal or pitch function)");
^
Error: Module '/var/www/html/project/src/node_modules/url/url.js' is not a loader (must have normal or pitch function)
    at loadLoader (/var/www/html/project/src/node_modules/loader-runner/lib/loadLoader.js:35:10)
    at iteratePitchingLoaders (/var/www/html/project/src/node_modules/loader-runner/lib/LoaderRunner.js:169:2)
    at runLoaders (/var/www/html/project/src/node_modules/loader-runner/lib/LoaderRunner.js:362:2)
    at NormalModule.doBuild (/var/www/html/project/src/node_modules/webpack/lib/NormalModule.js:179:3)
    at NormalModule.build (/var/www/html/project/src/node_modules/webpack/lib/NormalModule.js:268:15)
    at Compilation.buildModule (/var/www/html/project/src/node_modules/webpack/lib/Compilation.js:146:10)
    at factoryCallback (/var/www/html/project/src/node_modules/webpack/lib/Compilation.js:329:11)
    at factory (/var/www/html/project/src/node_modules/webpack/lib/NormalModuleFactory.js:253:5)
    at applyPluginsAsyncWaterfall (/var/www/html/project/src/node_modules/webpack/lib/NormalModuleFactory.js:99:14)
    at /var/www/html/project/src/node_modules/tapable/lib/Tapable.js:204:11
    at NormalModuleFactory.params.normalModuleFactory.plugin (/var/www/html/project/src/node_modules/webpack/lib/CompatibilityPlugin.js:52:5)
    at NormalModuleFactory.applyPluginsAsyncWaterfall (/var/www/html/project/src/node_modules/tapable/lib/Tapable.js:208:13)
    at resolver (/var/www/html/project/src/node_modules/webpack/lib/NormalModuleFactory.js:74:11)
    at process.nextTick (/var/www/html/project/src/node_modules/webpack/lib/NormalModuleFactory.js:205:8)
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

エラー内容を調べていると、こんなissueを発見したのでwebpack.config.jsを下記のように変更したら、無事に解消できました!

# 変更前
loader:"url?limit=10000&mimetype=application/font-woff"
#変更後
loader:"url-loader?limit=10000&mimetype=application/font-woff"

urlをurl-loaderにしないとダメだったんですね。。

2016年1月3日日曜日

arp-scanでLANに接続されている機器を探す

wi-fiの設定を変更しようとした時に、IPアドレスを固定で設定していない機器だったため、IPアドレスがわからなくなってしいまいました。

そのため、確認する方法を調べたところ、arp-scanというものを発見したので使ってみました。

使っているPCがMac( OSX Yosemite ver. 10.10.5 )なので、Homebrewで入れようと思います。

入れようと思いつつ、あるかわからなかったので、とりあえずあるか調べてみたところ…

$ brew search arp-scan
arp-scan

無事に発見できました。

ということで、インストールに進みます。

$ brew install arp-scan
==> Downloading http://www.nta-monitor.com/files/arp-scan/arp-scan-1.9.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/arp-scan/1.9
==> make install
🍺  /usr/local/Cellar/arp-scan/1.9: 19 files, 884K, built in 31 seconds

インストールできたみたいなので、ちゃんと入っているか確認。

$ which arp-scan
/usr/local/bin/arp-scan

ちゃんと入っていることを確認できたので、早速使ってみます。

今回は、--interfaceオプションを使ってセグメントも指定して調べてみます。ちなみに、interfaceはifconfigコマンドで確認できます。

Macの場合、en0が無線でen1が有線になっているみたいでした。

実際に使うと…

sudo arp-scan --interface=en1 192.168.0.0/24
192.168.0.1        0a:b0:de:7d:08:59    YAMAHA CORPORATION
192.168.0.51      1c:b1:7c:90:f2:26       NEC AccessTechnica, Ltd.
192.168.0.52      60:5b:3b:d4:a3:54    Apple inc
192.168.0.63      e0:a3:75:b3:59:e4    Sony Mobile Communications AB
192.168.0.60      d8:b5:2c:bb:7a:c6    (Unknown)
192.168.0.59      40:26:c2:fa:31:8c      Intel Corporate
192.168.0.116    34:f6:2b:d2:c0:04     SHARP Corporation
192.168.0.119    64:c7:a7:79:bc:53     Hon Hai Precision Ind. Co.,Ltd.

519 packets received by filter, 0 packets dropped by kernel

今回は、2行目のIPアドレスが知りたかったので、無事に目的を達成することができました。

簡単に接続している機器の情報がわかるので、今後も重宝しそうです!

2015年11月3日火曜日

ebayで買ったレコードがなかなか届かない

毎月、少しずつレゲエのレコードを買っているのですが、たまには思い切ってまとめ買いをしてみようと思い、ebayで100枚セットを注文してみました。

ebayで買い物をするのは、今回が初めてなのでどういった流れになるのかも、まったく把握できていない状態で購入したのは良くなかったなと思いつつ、ステータスの変更を待つことに。

9月6日の購入から19日後の9月25日に、paypalから発送メールが届きました。

そのメールの本文に、配送業者とトラッキングコードが掲載されています。

配送業者:  UPU
配送トラッキング番号: CPxxxxxxxxxJM

海外から買い物をするのも初めてなので、UPUという配送業者すらわからなかったのですが、調べたとこと万国郵便連合(Universal Postal Union)ということがわかりました。

業者がわかったので、早速トラッキングコードを調べられるページを検索したところ、すんなり発見。

Grobal Track And Trace <http://globaltracktrace.ptc.post/gtt.web/>

発送メールが届いたため、トラッキングできるはずということで、検索するも何も検索されません。

その後、3日間くらい試したのですが、まったく検索されず不安に。

しばらく期間をおいて、10月のはじめ頃に検索したところ、検索にヒット!


英語を調べつつ内容を確認したところ、10月1日にどうやらKINGSTONを出発したことまで把握できました。

ここでの疑問は、この先は空路なのか海路なのかということです。考えてもわからないので、もうしばらく様子を見ることに。

2週間くらい経って、たまたま調べてみると…

日本に到着!待ってました!!


川崎についたってことは、海路で届いたということなのかな?

結局、ルートは不明ですが、日本の郵便システムは素晴らしいので、日本についてからはすぐに我が家へ。

とにもかくにも、無事に届いて良かったです。

あとあとわかったため、どのタイミングから確認できるかわかりませんが…

下記の郵便局のサイトを使えば、日本語の検索もできました!


2015年10月15日木曜日

MacBook Pro が突然再起動する原因が判明

MacBook Proを使っているのですが、まれに落ちることがあります。

たまに頻発するときがあり、原因を知りたいなと思いつつも放置していたところ、思わぬところで原因を発見しました。

このPCで使っているウィルスソフトは、ESET Cyber Security Proというものなのですが、インストールされているバージョンによってはカーネルパニックが発生するというドキュメントがあったのです。

OSが不正終了(Kernel Panic)する現象について(http://eset-support.canon-its.jp/faq/show/1689)

ここでの対象が下記の2つのバージョン

・ESET Cyber Security Pro V6.0.9
・ESET Cyber Security V6.0.9

ということで、自分の環境を調べてみたところ…

6.0.9.1になっており、ドンピシャでした。。

上のリンク先から、新しいバージョンをインストールできたので、対策はすぐに完了。

あとは、もう起こらないか経過をみるだけです。

ちゃんと原因を調べれば、もっと早く解決できたかもしれないなと、ズボラさを反省しました。

2015年9月5日土曜日

RGB値をUIColorの値に変換するツールをJIMDOで作ってみた

iOSアプリのUIColorを設定するときに必要な数値をRGB値から変換するツールをJIMDOに作ってみました!

RGB to UIColor Convertor
http://uicolor-convertor.jimdo.com

入力ボックスに16進数のRGB値を入力すると、UIColorで設定する値に変換します。

JIMDOを初めて使ったのですが、テンプレートを選んでちょっと変えるくらいなら、とても簡単なのでスムーズにできました。

知らないだけで、便利なものはいろいろあるんだなと感じました。。

macOSでminikubeをインストールしようとしたら書き込みエラーになった

ローカル環境でKubernetesを使えるようにしようと環境構築中にエラーが 下記が今回のエラーで書き込みできない感じのメッセージが出ています。  $ brew install minikube Updating Homebrew... Error: The following ...