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           |
+------+---------------------------------------------------------------+-------------+


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

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