IT系フリーランスの技術備忘録

日々の業務で学んだ事の覚書やフィードバックなど。たまに関係ない記事も。

Object Browser を使うなら一読しておきたいサイト

Object Brouwseを使うのに、なんとなく直感で使ってしまっていませんか?

これから使う方も、もうすでに使っていらっしゃる方も、このサイトの記事を1読する事をお勧めいたします。

 

products.sint.co.jp

 

特にObject Browserを使う職場環境の方であれば、周囲の人を唸らせる小技的な内容が満載です。(小技とはいえ、その小技的な事が大事。)

 

例えば、SQLを書くのに、テーブル名がわからなくて、なんどもタブ移動をさせて書いていくのはめんどうですよね?

 

そんな時は、このブログにある、[表・列]画面からのコピペ術がお勧め。

 

SQLを書くエディタを表示させながら、テーブルの一覧を右に表示させることができる。

 

これだけで、テーブルを確認する為になんどもタブを移動させなくてすみます。

 

と、こんな技がずらっと並んでいます。

 

あと、このブログ、記事の書き方が素晴らしい。。。

 

例えば、何回も叩きたい!!「お気に入りSQL」とか。

 

技術文章って、タイトルも中身も固くて読みづらかったりするかなと思うのですが、このブログは、読み物としても、どんなものか読んでみたくなってしまいます。^^

 

SQL上達の為の軌跡

SQLは一通りかけるのですが、仕事上、かなり素早く書く必要が出てきまして、何かしら実践していきますのでその覚書です。

blog.mah-lab.com

ここにこのブログの運営者である「まーくん」がSQLを上達した奇跡が書いてある。

この方は、まず、SQL書き方ドリルなるものから取り組んでいらっしゃる。

なんとなく惹かれるフレーズだ。

さくさくとSQLの設問に答えていけば上達するのだろうか?

早速アマゾンで購入した。

どんな内容だろう。。。

実践した結果はまだこのブログで!


Herokuでファイル書き込みをしても、ファイルに書き込まれない時。 → DropBox内のファイルに書き込まれるわけではないらしい

HerokuでLINE BOTを作成しています。

コード内に、eventで送られてきたユーザーIDを取得してファイル書き込みを行ったのですが、ソース実行後、ドロップボックス内のファイルを見ても書き込まれていません。

エラーも出ていないし、書き込み権限もtrueになっている。。。

ただ、書き込んだファイルを読み込んで、erro_logとして吐き出してみるときちんと書き込まれていました。

ということで、Heroku上で実行して書き込まれる先は、Drop Boxではなくて、Herokuのサーバー上のストレージに書き込まれるようですね。

たぶん、これって常識的な事なんでしょう。。。

HerokuでAdd-ons(Heroku Scheduler)のインストール時に「Item Could not be credited.」というエラーが出てインストールできない時の対象法

Hrokuの「Resources」より、Add-ons(例えばHeroku Schduler)などのインストールをしようとして、「Item coud not be credit」といいうエラーが出て登録できないという事はありませんか?

f:id:microsoftcream87:20170616005927j:plain


それは、クレジットカードの登録が出来ていないときのエラーです。

HerokuでAdd-onsをインストールするには、無料のものでもクレジットカードの登録が必要です。

もし、Add-onsインストール時にこのエラーが出た場合は、Account settingsから、クレジットカードの登録を行って下さい。

f:id:microsoftcream87:20170616010248j:plain

クレジットカードの登録方法いついては、詳細はこちらの記事にあります。

heroku へクレジットカード登録 | Linux & Android Dialy

LINE BOT用サンプルコードをコピペして使っても、うまく動作しない!もう終了した「BOT API Trial Account」のコード使ってませんか?

Line Botを作ろうと思い、Google検索でひっかかるサンプルコード的なものをコピーしても、全く動作しないしどこがおかしいのかもわからない。(エラーも出ない)なんて事に遭遇していませんか?


私は、まさにそれにはまりましたので、その原因と対策を記載いたします。


まず、私がはまったのは、匿名チャットボットを作ろうとして、下記の記事をコピーしても、全く動作しないという事象です。

qiita.com

こちらの記事のサンプルコードを、HerokuでDeployした、index.phpとして動作させました。

事前に、別のサンプル的なコードは動作していましたので、Deployがうまくいっていないという事もなく、アクセストークンなども何度も確かめました。

結果、分かった事なのですが、どうもこのサンプルコードは、2016年11月16日に廃止された、「BOT API Trial Account」用のコードのようです。

詳細は、こちらをご覧ください。

business.line.me

つまり、この記事をかいている2017年6月11日時点では使えないという事です。

現在は、LINE BUSINESS CENTERの記事にも書かれている通り、新しく始まった「Messaging API」というサービスで、同様のものが作れそうですが、もしも、「BOT API Trial Account」用に書かれたサンプルコードにある機能を実装しようと思うと、コードはそれに合わせて書き換えなくちゃいけないようです。。。

何がどう変わっているかは、下記の記事にあります。
(これだけでコードの書き換えが完全にできるかどうかはわかりませんが。。。ひとつの目安として。。。)

qiita.com

もし今からLINE BOTを作ってみようという方で、まずはGoogleの記事にあるサンプルコードをコピペして使ってみようという方は、そのコードが、「BOT API Trial Account」時代のもの(2016年4月7日~2016年11月16日)でないか確認しましょう。


簡単に見分ける方法は、POSTの送信先が、https://trialbot-api.line.me/になっていたら、「BOT API Trial Account」時代のソースなので、今は使えません。

現在使える、「Messaging API」は、POSTの送信先が、https://api.line.me/になっています。

APIの使い方については、LINE BUSINNES CENTERに詳細があります。

https://devdocs.line.me/ja/#messaging-apidevdocs.line.me

ちなみになんですが、LINE BUSSINESS CENTERから、Messege APIの登録をしようとすると、「Developer Trailを始める」という選択肢がありますが、これは、Message APIのアカウントのタイプであって、「BOT API Trial Account」とは関係ありません。(私は、ここでもはまりました)

f:id:microsoftcream87:20170611113321p:plain

WindowsからLine NotifyにcURLで送信した際にCouldn't resolve host ~というエラーが出てしまう

Line Notifyに通知を送るのに、WindowsからcURLを使ったところ、タイトルのように

curl: (6) Couldn't resolve host 'Bearer'
curl: (6) Couldn't resolve host 'Pydu1 ~中略~ ZgB''
{"status":401,"message":"Missing authorization header"}

というエラーが出てしまい、Line Notifyにメッセージ通知が行われませんでしたが、解決できましたので記載します。

まず、前提条件としまして、Line Notifyに登録し、cURLからメッセージを送るという流れは、こちらの記事の通りにやりました。

qiita.com

この記事の通りにcURLを使ってコマンドを打つと、上記のエラーになると思います。

解決先は、

'Authorization: Bearer ACCESS_TOKEN'

の部分を

"Authorization: Bearer ACCESS_TOKEN"


と、シングルクォーテーションをダブルクォーテーションに変えることでした。


正しく動作するcURLコマンドをきちんと書くとこうなります。

curl -X POST -H "Authorization: Bearer ACCESS_TOKEN" -F "message=ABC" https://notify-api.line.me/api/notify

ACCESS_TOKENの部分には、Line Notifyから取得したアクセストークンが入ります。

どうも、cURLを投げるOSによって、シングルクォーテーションで囲ったり、ダブルクォーテーションで囲ったりする必要があるようです。

Windowsの場合は、ダブルクォーテーションしか受け付けないようです。

このあたりの差異は、OSによって改行コードが違ったり、パスの区切り文字が違っているなどと同じような問題なのかもしれません。

また、このエラーの解決にはこちらの記事が参考になりました。

kotovuki.co.jp

Line Notifyの使い方の記事はたくさんありますが、群を抜いて詳しく書かれていると思います。

ここまで書いてくれないと、素人には難しいですね。。。

Virtual Boxで新規作成した仮想マシンを起動した際に「FATAL:Could not read from the boot medium! System halted.」と表示される場合の対処法

Virtual Boxで新規作成した仮想マシンを起動した際、

 

f:id:microsoftcream87:20170507085203j:plain

 

となってしまうのは、起動するドライブにOSのISOイメージがマウントされていないからです。

 

Virtual Boxで仮想マシンを起動するためには、「新規作成」で仮想マシンを作成しただけでなく、起動ドライブにOSのiSOイメージをマウントする必要があります。

 

ちなみに、OSのISOイメージというのは、iOSというファイル形式のデータファイルで、つまり、OSのプログラムの事です。

 

Virtual Boxで仮想マシンを新規作成するというのは、あくまでも入れ物だけで、OSのプログラムが無いと、OSは起動しません。

また、マウントするというのは、起動ドライブに、IOSイメージのファイルを保尊する事です。

 

まとめると、どこかからOSのプログラムを調達してきて、それを、「起動ドライブに保存する。」という意味になります。

 

OSのiOSイメージの調達に関しては、「OS名 + ダウンロード」などのキーワードで検索すれば、入手方法はすぐに見つかるでしょう。

 

ISOイメージを入手できたら、「設定」 -> 「ストレージ」を選択し、光学ドライブのCDのマークのところから、ダウンロードしたIOSイメージを選択します。

 

f:id:microsoftcream87:20170507094224j:plain

 

これでIOSイメージのマウント完了です。