それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

php のエルビス演算子を初期化以外の用途で使ったら・・・

php

エルビス演算子が便利だけど。 三項演算子の省略形 elbis operator が便利だけど int(10) //} 変数初期化チェックがシンプルになって嬉しいよね。empty 相当だよねーってウキウキして empty の代わりの使ってみたり。 三項演算子を省略する使うとちょっとね…

一時的にaliasをオフにする バックスラッシュ

一時的にalias をオフにしたいとき grep や ls などを使っていて、一時的にalias をオフにしたいことないですか? 私は結構たくさんあります。 grep や ls にいっぱいオプションを付けていて普段はそれを使っているのですが、素のgrep がほしいときはある。 …

MySQLの基本的コマンド(ユーザ・DB・権限)の設定削除作成の早見表

MySQLをぱぱっと管理したときに困らないように データベース作成したり削除したりで困らないように、チートシート的にコピペで使えるようなものを用意しておきます。 ユーザーの確認 select User,Host, Password from mysql.user; データベース一覧 show dat…

フルカラーと白黒のプリントやコミックスのzipを判別する

以前、画像の白黒判定をやった takuya-1st.hatenablog.jp 白黒判定が出来るから、スキャンした画像が「プリント」か「雑誌」か判定していけば便利なんじゃないかと ScanSnap ScanSnap でスキャンしたときに、学校のプリントか、教科書やカラー資料か判定して…

node.jsを野良ビルドした記録

node を野良ビルドした debian jessie の node が古いので野良ビルドした。 jessie そろそろ捨てるけど、ちょっと急ぎで node 使う必要があったので。 コンパイルとインストール checkinstall を使った sudo apt install checkinstall 作業ログ wget https:/…

raspberry pi で初期ユーザー pi 以外のユーザーを自動ログインする。

raspi W 届いた! raspi W を買ったので初期設定した。 ユーザー takuya を追加して代わりに使うことにした ユーザー pi は絶対狙われるので、ssh がグルーバルから接続できないように設定して、ログインは最低限した。 自動ログインユーザーを決める方法を…

MySQL の blob型に入ったStringを文字列(utf-8)にして取り出す。

blob に長い文字列が入ってます。 mysql で varchar や textを使えばいいのに、blob で文字列を埋め込んでいるソースコードがありまして。 そこに入ってる文字列を取り出しても blob なので hex になってるだけです。これを文字列として SELECT したい conve…

SQLで連番を作成や配列をカラム・行に展開する

SQL で連番を扱うときに SQL で連番を扱うときに、数字が入った配列が有るととても便利です。ただしソレを作成するのは不便です。 0..9 これを、次のようなテーブル行に展開したい。 :id 0 1 2 3 4 5 6 7 8 9 SQLで配列を展開するように行にする。 select 0 …

0001docomoのdocomoWiFiにパソコン(iPad)接続のID/PWの確認

docomo Wifiはパソコンから使える ありがとう、ドコモ。ドコモのWiFiはパソコンやタブレット(ipad)から使えます。 au やソフトバンクが軒並み接続サポートを消していく中にあって ドコモはちゃんと接続させてくれます。 しかも電波も管理もしっかしてて確実…

pdoで文字化けを防ぐutf-8を設定する

php

php で MySQL(mariaDB)にアクセスすると文字化けをする いまどき文字化けするなんて思わなかった。古いデータベースだし mysql 関数でやってるやつだからなぁ set name しなくても PDO のドライバの初期化のタイミングで文字コードを指定できるようになって…

php7 で非推奨になったmysql_connect関連のmysql関数を対応する(mysqli

php

php7 から mysql_connect が非サポートになりました。 いまどきPDO使ってないとかありえないんですけど。まぁmysql_connect を使ってるプログラムが動いてることも多いわけです。 今回はこの対応をしたので、誰かの役に立てばいいのでメモっておきます。 mys…

csh 系で 日本語 文字コードを設定する

csh 系のシェルを使ってた FreeBSDにログインする機会があり、文字コードで詰まった。 文字コードの環境変数をセットするには setenv を使うらしい。 setenv LANG ja_JP.UTF-8 これで日本語が正しくなった。

pv pipe viewer をcaptureする

プロセスの進捗を見る pv で pv はプロセスパイプを通過したバイト数をみて、進捗を見ることが出来るのですが。 pv の出力をスクリプトから取りたい pv の output は stderr に書かれるのだけれど、それをキャプチャリングしたいなと思ったら。。。結構面倒…

WindowsのSJISのファイルがUTF-8で化けるので一気に置換するスクリプト

windowsから来たZipファイルを展開したら 文字コードがグチャグチャーって化けるのでした。辛い。 文字コードを修正するスクリプトをぱぱっと書いた conv_file_name.sh -v -n path/to/*.pdf conv_file_name.sh -v path/to/*.pdf nkf があれば何とか出来るん…

SeleniumのWebDriver(chrome)からCookieを取りだしてHTTP::CookieにしたりCurlで再利用する

Selenium のWebDriverからCookieを取り出したら Seleniumで画像をだけを取り出して保存したり、ファイルを取り出すのは不便だよね。 だけど、直接Curlで叩くのもCookieの問題でもっと不便だよね。 そこでSeleniumのCookieをCurlで使える形式やNetscape形式で…

SeleniumのchromeDriverのプロファイルのPATHを調べる方法

起動済みのChromeのプロファイルの場所を調べるには SeleniumからChromedriverが起動したときに、プロファイルがちゃんと渡されて起動したかどうか それを調べるにはどうすれば良いのか。少し考えてみたら chrome://version/ を見るしか無いと思われる chrom…

selenium で chrome ヘッドレスで新規タブの要素をクリックできない

selenium + chromedriver を headlessを扱うときに困る。 新規タブを開かれると、element not clickable で、currently visibleで、 displayed がfalse になる。 なんで、クリックできないエラーになるのか頭をひねったら、width だった。 原因と再現 driver…

macのスマート引用符・スマートダッシュ機能が罠だった。

なんかオカシイなと思ったら スマートダッシュ・スマート引用符で自動変換されていた件。 Evernote に適当にコードメモしたのが動かなくて Evernoteに適当にメモしたコード断片をIPython や Pryに貼り付けたら動かなくて、なんだこれ? とおもってよく調べて…

クラス・メソッドをインスタンス内から呼び出す

ruby でクラスに所属するメソッドを呼び出す。 クラスに所属するStaticなメソッドを呼び出したときに、クラス名を直接指定するのは不便だよね。 class A def self.do puts :do end def say A.do # クラス名が・・・ end end a = A.new a.say self で参照する…

クラスの特異メソッドにモジュールのメソッドを取り込む

モジュールのメソッドを、クラスの特異メソッドに取り込む module で定義した、メソッドやローカル変数を、クラスの特異メソッドに取り込む 次のようにすると実現できる。 module S1 def sample puts :sample end end class A class << self include S1 end …

自動的にmysql のバックアップを取ってくれる automysqlbackup

ぼーっとしててやらかした。 履歴から入力してて、イライラしてるときに、truncate コマンドを本番環境に実行してしまった。もう詰んだ。死にたい。 二度とこんなことがないように automysqlbackup というパッケージを導入することにしました、 apt で apt i…

Twitter の OAuth でメールアドレス求めるのはやめてほしい

なぜTwitterで新規登録すると「メールアドレス」が求められてしまうのか。 Twitterの認証連携をして、AuthorizeApp したあとにメールアドレスの確認が必要になる。ほとんどの「JPサービス」はこの形態を取る。 OAuth わかってんのか 認証を丸投げしてるんだ…

作成済みのm5sumとぱぱっと比較する方法(改竄検出の楽な方法

md5sum の -c オプション -c 生成済みの md5sum の一覧とファイルを比較して改ざんを検出する。 事前にファイルのmd5sum の値の一覧を作成しておき、いまのファイルがそのファイルのハッシュ値と一致するかを調べておく。すると簡単に改竄検出や不正検出を見…

nkfの使い方:base64のエンコードとデコード(ただし文字列だけ

nkf だけで base64 のエンコードとデコードが出来る nkf には -mB と -MB のペアがあるのでBase64のエンコードとデコードが出来る。 nkf で base64 エンコード echo -n こんにちは | nkf -MB nkf で base64 デコード echo 44GT44KT44Gr44Gh44Gv| nkf -mBW こ…

nkfでURLエンコードされた文字を扱える(エンコード・デコード・文字コード)

nkf だけで、URIエンコードされた文字を扱える とある文字列を処理していて、CP932(Shift_JIS ) がそのまま、URLエンコードされた文字に出会って、ちょっと面倒な自体になった 。 node の decodeURI/decodeURIComponent だとUTF-8を期待されて動かない。ruby…

Macのopen(開く・保存)のダイアログで、不可視ドットファイル(フォルダ)を選択するーフルパスで開くモード

Mac の保存ダイアログで不可視フォルダを選びたい 開くダイアログのフォルダ選択のときに、隠しファイルやフォルダを開きたいときがよくある。 ドットファイルやドットのフォルダ( .rbenv / . pyenv など)を開きたい。 たとえば、atom/visual studio code/in…

pry のEchoをオフにする

コピペなどでエコーが邪魔なとき _pry_.config.print = proc {} irb の場合は conf.echo = false こうすれば、長いStringのスクロールで死ななくて済む 一時的にオフにして、元に戻すなら _pry_.config._print = _pry_.config.print _pry_.config.print = pr…

chrome でHTML をPDFに変換する

HTMLをPDFに変換する --print-pdf オプション HTMLをPDFに変換するコマンドは、いくつか有るけれど、 chrome のオプションだけで実現できる。 しかも chrome59 から headless オプションがあって更に便利になった。 コマンドの使い方 chrome-bin --headless …

Seleniumで印刷(print preview)を経てPDFを保存する方法

Selenium + chromedriverで 印刷プレビューにアクセスするのが面倒くさい Chromeを webdriverでアクセスすると iframe で作られた、印刷プレビューにアクセスするのがとてもめんどくさい。(セキュリティ関連のアレコレの制限をdisableオプションで取っ払え…

rubyのLoggerでログを出力する方法

ruby のロガーについて調べておきました ruby ではログを出すときに Logger が便利です。 require 'logger' logger = Logger.new(STDOUT) 標準出力に出す場合は STDOUT($stdout) 、標準エラー出力に出す場合は STDERR($strerr) を指定する。 ログを出す logg…