TRY AND ERROR

気になったこと、勉強したこと、その他雑記など色々メモしていきます。。Sometimes these posts will be written in English.,

Python-boto3でAWSのEC2インスタンスを立ち上げ、そのPublicIPを取得する

boto3とawscliを入れておく $pip install boto3 $pip install awscliAWSのCredentialsなどをセットする $ aws configure AWS Access Key ID [None]: アクセスキー AWS Secret Access Key [None]: アクセスキーシークレット Default region name [None]: regi…

ChatworkAPIがバージョンアップしました。

ChatworkAPIがv1からv2にバージョンアップしました。help.chatwork.com ユーザー数が増えてmessage_idの桁が足りなくなったみたいな感じか?? 対応としては、基本エンドポイントを変更するくらいです。以前アップしたChatworkのAPIラッパーについてはは修正…

How to check if index is exist in Array or Slice in Golang?

Go

I guess in Golang, there isn't any method to check that index is exist in Slice, for PHP like "isset()". So I take a method I made like below. func isset(arr []string, index int) bool { return (len(arr) > index) }By the way, in Golang when…

In CakePHP3, change just a specific table class's datasource.

If you want to get the Table objects to access to DB without appalently using ConnectionManager, I think you use the "TableRegistry" like following. TableRegistry::get("Yours"); Above then, "default" datasource in app.php is chosen. If you…

google-api-php-clientを使ったOAuth2認証で、セッションを使わずにコールバックを経由しても保持される任意のパラメータをセットする

OAuth2認証において、Googleに認証リクエスト → Google認証画面にてアプリ許可 → コールバック画面に遷移という流れの中で、コールバックをもらった際にどのユーザー(アプリ側の)で認証したかを持ち回る必要があった。 アプリ側で必要となる任意のパラメー…

In the HTML5, "readonly" attribute just works for text fields.

In the HTML5, "readonly" attribute just works for text fields like <input type="text"> or <textarea>... I didn't know about that!For example, in the case of to put an select tag.Like this, it doesn't work as you think. It is editable. <select readonly> <option value="</textarea>…

Cakephp3のShellがcronで動かなかった理由

デイリーの集計絡みのバッチを書いていてちょいはまったのでメモ。 まず、 CakeのShellをcronで叩く際のOfficialの記載はこう 15 0 * * * cd /full/path/to/app && bin/cake myshell myparamこれが動かなかった。 次に試したのは、そもそもcdする必要ないん…

phpQueryでタグの破片などのノイズを除きつつテキストっぽいものだけを取得する。

PHP

とりあえず行き着いた方法をメモします。 htmlによっては、先頭にxmlステートメントが混ざってくる場合が稀にあるので、最初に除去しておく。 さらに、なぜかscriptやstyleの破片などがノイズとして紛れ込むケースが多々あるので、これらも除去。newDocument…

InternetExplorerでjsのメソッドの引数のデフォルト値が使えない

めちゃめちゃあせったー......orzって話です。 function test(a,b=[]) { // IEだとここで落ちる console.log(a) console.log(b) }こういう書き方をするとIEだとスクリプトが落ちる。(ちなみにIE11) Chrome,FFは動きます。とりあえず typeof b == "undefine…

mysqlのレプリケーションでスレーブがreadonlyにならない!!

久々のブログです。。 mysql5.7でmaster-slaveのレプリケーション設定でハマったのでメモ。 slaveをreadonlyにしたかったので、my.cnfに read_only=1を追加しサービス再起動、試しにslaveに更新系のクエリを投げてみたところ、更新できちゃう!! 意味が分か…

CakePHP3でPC/スマホのviewを切り替える方法

CakePHP3を使ってて一番助かったなあと思う機能が、PC/スマホのview切り替えです。実装はめちゃくちゃ簡単。・PC版のviewは通常通りsrc/Templateに作成します。 ・plugins直下にスマホ用のディレクトリを作成(今回は「Sp」というディレクトリを作成) ・p…

Excelでcsvを開いたときに「SYLK:ファイル形式が正しくありません。」という警告が出る件

PHP

ちょっとハマった。。。PHPでDBの取得結果をCSVーDLするスクリプトを書き、実際にDLして開いたところ「SYLK:ファイル形式が正しくありません。」という警告が出ました。 最初は、エンコードやらでなんかおかしなことになったか?と思ったんですが、警告が出…

Python3 with djangoでエクセルで文字化けしないcsvをダウンロードさせる

よくあるcsvダウンロード機能ですが、エクセルで開くことを想定して作らなければいけないケースが多々あると思います。 今回、エクセルで開いた時に日本語が文字化けしないcsvのダウンロード機能をpythonで書いてみます。 使っているフレームワークはDjango…

Buttonタグで勝手にsubmitされる件

ハマった!!!djangoでajaxしようと思ってカリカリ書いてたら何度やっても画面のリロードが走る。 これはdjangoの変な仕様だと決めつけてcsrfらへんを必死に調べたけど手がかりなし。 かれこれ1時間半くらい経った時に、ふと昔同じような件でハマったのを…

PythonのAnacondaってどうなん??

気軽にscrap and buildできるPython3の汎用開発環境を作りたいと思ってDockerfileを書いてみました。dockerfile-for-python-proto/Dockerfile at master · kentaro-a/dockerfile-for-python-proto · GitHub Pythonあまり触ったことないのでモジュルやら何や…

WordPressのAMPプラグインで/ampが真っ白になった件

WordPressのAMPプラグインを入れると一発でAMP化できるらしい、 という噂を聞いて早速試す、、、無事撃沈。 若干ハマったのでメモします。・使ったプラグイン AMP — WordPress Plugins こちらのブログを参考にしたのですが、自分の環境でうまくいきませんで…

mysqlでtinyintがbooleanになる件

mysqlでtinyint(1)を指定したカラムのデータをcakephp3のモジュールで取得した際に、booleanとして扱われて困った。。mysqlのバージョンは5.6.27cakeのバグか?とも思ったんですが、リファレンスを見てみるとちゃんと書いてあった! ・BOOL、BOOLEAN These t…

PHP7三項式まわりが快適すぎる

PHP

PHP7の三項演算あたりを本格的に使ってみましたが、快適すぎてやばいです!あるkeyが存在するかどうかわからない配列をマージするような場合、 いちいちisset()しなくてよくなった!! array_merge( $a['key'] ?? [], $b['key'] ?? [], $c['key'] ?? [], $d…

【Ruby】ChatworkAPI for Ruby

前回、ChatworkAPIクラスのPHP版を公開しましたが、今回Ruby版も作りました。 class Chatwork # イニシャライズ # apiToken: 自身のAPIトークン def initialize(apiToken) tokenHeaderKey = "X-ChatWorkToken: " @apiToken = apiToken # APIトークン @reqHea…

【PHP】ChatworkのAPI使ってみた

チャットワーク(Chatwork)のAPIを使って指定ルームにメッセージを送る PHPのクラスを作ってみました。バッチ処理の結果をチャットワークで見たい、メールの設定がめんどくさい、 みたいなときに使えるかも。。 クラスファイル:Chatwork.php

【PHP】巨大ファイルを読み込むとき

PHP

PHPでサイズの大きいファイルを読み込む時のメモ。 外部ファイルを全部読み込めればOK、ただし読み込めなかった場合には エラーを返すというロジックを組みたかった。 たとえば、外部サイトをスクレイピングする際に、 HTMLファイルサイズが一定サイズを超え…

AMP HTML触ってみた

AMPってなに? 「Accelerated Mobile Pages」略してAMP。 モバイルサイトの UX 改善(ユーザー体験)を目的とした Google 主体のプロジェクトで、 画像やスマートアド等、ロードコストのかかるコンテンツを即座にロードすることにより、 UX を…

最近話題の広告ブロックについて

面白い記事を見かけたので勝手に持論を展開!! 広告ブロッカーの検知と計測について - クックパッド開発者ブログ WEB上のあらゆる所で目にする広告ですが、 これをブロックする機能を有したツールが出回っていますね。WEB広告を生業とする企業にとって有害…

PHPでGoogle Search ConsoleのAPI使ってみた

題名の通り、使ってみたのでめもします。。 やったこと ・PHPのサーバアプリでGoogleSearchConsoleの検索アナリティクスのデータを取得。 ・google-api-php-clientを利用 ・複数アカウントのGoogleSearchConsoleに登録されている全てのURLの データを取得 ・…

古いバージョンのPHPでついやってしまうあの構文

PHP

wordpressのテーマを作成する案件があり、テストサーバで動作確認したものをクライアントのサーバに導入しテーマを適用ところ、画面が真っ白に。。。 とりあえずini_set()でエラーを確認してみると、 どうやら配列を返すメソッドをコールしたところで落ちて…

cronを実行するときのユーザー

先日、GoogleAPIを使って取得した検索アナリティクスのデータを サーバに保存するphpを書きました。ブラウザでphpを叩いて一通りテストした後、 cronで日次で処理しようとしたのですが上手くいかず。。。 ログを見てみるとファイルやディレクトリのパーミッ…

PHPでrequireしたファイルが読み込めない時!

PHP

とあるPHPの実行ファイルがあって、その中で別のクラスを読み込んでいます。 読み込んだクラスの中でこれまた別のjsonファイルを読み込もうとするが、 なぜか読み込めずにちょいハマり。。。 ディレクトリ構造はこんな感じ [DocumentRoot]/index.php [Docume…

wordpressのカスタムメニューをjqueryで開閉したい!

wordpressのサイドバーにカスタムメニューを置いたとき、 ネストしているメニューの親にマウスオーバーすると子が開くようにしたかった というのが今回の話題。※実際にはUXを考慮してマウスエンターイベントに変更しています。 実際に生成されるHTMLはこんな…

PHPで作ったcsvをブラウザからDLさせてエクセルで開くときの文字化け

PHP

こんなときのベストプラクティスって何だろうか。。 例えば、DBから取ってきたデータをcsvにしてDLさせたい場合など、 UTF-8でエンコードされたデータを扱うことが多いかと思います。そのままDLさせてエクセルで開くと文字化けすますね。 エクセルがCP932(Sh…

selenium webdriverによるHTML要素の取得方法

今回は、node.jsからselenium webdriverを介してWEBサイトのHTMLを取得する際の話題です。まず、selenium webdriverモジュールを読み込み、driverオブジェクトを生成してURLをGETします。 (selenium-webdriverはnpmなどで事前にインストールしておきます。…