TRY AND ERRΦR

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

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などで事前にインストールしておきます。…

node.jsでコマンドライン引数を受け取る

node.jsで書いたプログラムにコマンドライン引数を渡す必要が あったため、スニペットします。。node.js側でprocessオブジェクトのargvプロパティによりコマンドライン引数を取得することができます。 processは標準モジュールにより設定されているグローバ…

これ知らなかったなあ(´・ω・`)

数年前にjavasriptを初めて触ったとき、変数の中身をみるのは常にalert()だった。 それからconsole.log()を覚え現在に至る。。ブラウザでデバッグできたりもするけど、 今でもやっぱりconsole.log()で確認するのがしっくりきます。 consoleに出力する方法が…

selenium - node.js - phantomJSでヘッドレスWEBサイトチェック

WEBサイトのコンテンツを自動でチェックする必要があり、 seleniumを使って自動化できないか試したのでメモ。ちなみに、今回はヘッドレスなlinuxサーバ環境(ブラウザを立ち上げない環境)でチェックツールを実行しました。 環境 ・node.js(チェックロジッ…

【jquery】propとattr

既出でいまさら感満載ですが、試してみたのでカキコ。。 (jquery-version:1.11.3)attrとpropは両者とも属性を扱うjqueryのメソッドで、 いろいろなサイトでこんな風に紹介されていますね。 prop javascriptのプロパティ値を取得 attr HTMLの属性値を取得 例…

【node.js】node inspectorでnode.jsをデバッグしてみた

今までconsoleデバッグで頑張ってきましたが、 業務でnodeを使うことが増え思い切ってデバックしてみることに... 環境設定もろもろ、エディタを乗り換えるみたいな面倒くささがあると勝手に 思っていたんですが、思いの外簡単ですんなり行けたのでメモ。。使…

selenium webdriverで要素存在チェック

selenium webdriverを使ってWEBサイトの要素を取得するには、 次のようなfindElenemt(s)メソッドを使い、コールバックにより取得します。 driver.findElement(wb.By.css(セレクタ)).then(function(elem) { //〜処理 }); ただし、WEBサイトに存在しない要素を…

【PHP】Windowsのbatファイルを実行する

なかなか使うことは少ないと思いますが、PHPからbatファイルを実行する 方法をメモっときます。PHPの組み込みメソッドで「exec」という外部プログラムを実行するものがあります。 例えば、以下のように記載するとphpファイルと同階層にあるtest.batを実行で…

【PHP】HTML文字列のエスケープ

PHP

クライアント側に文字列を返すサーバ側の処理を考えた際に、 そのまま返すと文字列にscriptが含まれる場合にscriptが動作してしまうことも考えられます。そこで、サーバから文字列を返す際には、HTMLを形成する特殊文字をエスケープする必要があります。 PHP…