それマグで!

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

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

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…

QRコードアプリはLINEのQRリーダーが一番手軽。( ios 10 まで

LINEのQRコードリーダが一番手軽って話。 QRコードのためだけに専用アプリを入れるのもめんどくさい。どれを選んだら良いか考えるのもめんどくさくないですか? LINEについてるQRリーダで十分 QRリーダは、別にLINEだけの規格ではないので、一般的なサイトを…

ruby で先月の月末を求める

先月の月末を求めるには まず、月初の01日を作ります。 Date.parse(Date.today.strftime('%Y-%m-01')).to_s 今月の1日を作る方法を知ってると後はなんでも応用が効くよね。 次に−1日する (Date.parse(Date.today.strftime('%Y-%m-01'))-1).to_s 簡単でし…

ツイートを常にSafariで開く(Twitterアプリに移動してしまう)またはその逆

ツイートリンクをクリックすると→ツイッターアプリが起動してしまう この現象は、よく質問を受けます。(とくにiOS初心者の方々に) Safariでクリックしたら Facebookアプリが開く? 常にFacebook アプリが開くのを当たり前と思ってる方々が、Safariで開いち…

コマンドから指定のSSIDに無線LANをつなぐ

コマンドから無線LANを接続するときにSSID指定 SSIDを指定して接続を切り替えたい 指定のSSIDに接続したい networksetup -setairportnetwork en0 0001docomo networksetup -setairportnetwork en0 mobilepoint password(pre-sharekey ) mac のコマンドからWi…

chromeの起動オプションでページをHTML→PDFで保存する。

chrome だけを使って、HTMLをPDFに変換します。 chrome で pdf にサイトを保存することが可能です。Seleniumのscreenshot を作らなくても、単一なページであれば、PDFにすることが可能です --print-to-pdfオプション $ alias chrome='/Applications/Google C…

chrome(webdriver)を headless はリサイズできないので、初期値で決めて解決させる

headless で動かしてる chrome でエラーが出る。 最初、なんのエラーかわからず悶絶してた。理由がわかったので書いておきます。 リサイズすると次のようなエラーに driver.manage.window.resize_to(1200,1200) エラー Selenium::WebDriver::Error::UnknownE…

Selenium でモバイルエミュレーション

seleniumでモバイルエミュレーションを使いたい ChromeのWebDriverでモバイル・エミュレーションを使えれば便利なのに。回線速度とか、画面の回転とか、画面のサイズとか、逐次セットするのは面倒なので、セットになってるモバイル・エミュレーション機能を…

selenium で Google Chromeの開発者ツールにアクセスする

Selenium から 開発者ツールにアクセスしたい。 DevtoolsがChromeで閉じられちゃうので、なんとかならないのかなと思って調べてた。 パフォーマンスタブにアクセスできる driver.execute_script("return window.performance.getEntries();") これでなんとか…

selenium で parital text/ link_text を指定すれば楽ができる!!!!

selenium でリンクの指定が楽になった。 ドキュメントを読んでたら、良いものを見つけた 今までのやり方。 driver.find_element(:xpath, "//a[contains(./text(), 'ログイン')]") driver.find_element(:xpath, "//a[./text()='ログイン']") 今回知ったやり方…

Evernote で選択中ノートを全て指定したノートに移動する

Evernote のノートをまとめて移動したい Evernoteのノートが増えてくると、検索結果をまとめて別のノートに移動したいとか。そういう事が増えてくる それも「キーボードショートカット」で! キーボードショートカットを作るには? Mac でキーボードショート…

vim で .viminfo を保存反映するとyankバッファが共有されて嬉しい

vim

vim の作業中情報は .viminfoに書かれている。 .viminfoのファイルに必要なデータが保存されている。 作業中のVimから別のVimへデータを引き継ぐには、 .viminfo を使うと実現できる。 vim から vim へ.viminfoを使うには 端末Aが作業中のvim で 端末Bがtmux…

ipythonの入力履歴を見る

ipython の入力履歴をみたい ipythonの入力のヒストリファイルはどこにあるのか調べたのでメモ ~/.ipython に ipython のファイルがある。 しらべたら次のところにファイルがあった *1 ~/.ipython 最近のLinuxなら ~/.config にファイルを集める傾向があるの…

Xpathで隣り合う前後要素を取得/ 兄弟・姉妹要素を取る

xpath で隣り合う要素を取得するには 妹(弟)ノードを取りに行く。 id("gaika_k")/following-sibling::div あるノードの弟ノードをとるには、あるノードを指定してから following-sibling::タグ名とすれば取ることができる。 姉(兄)ノード 姉を取りに行くなら…

xpath で要素をRange(範囲)指定する。( index で範囲指定 )

Xpathで要素を範囲指定するには position() 関数と組み合わせて戦える。 //tr[ position() > 0 ] これは指定番目を1つ取り出す次の書式の発展系と考えればわかりやすい 1番目のtrを取り出す。 //tr[ 1 ] 1番目より後ろの trを取り出す。 //tr[ position() >…

lsでファイルを拡張子ごとに並べる

ファイルを種類順に並べたい。 デスクトップの整理でよく見る「ファイルを種類別」に整理と同じ、ファイルを種類順にまとめて結果に表示を ls コマンドでもできることがわかった。 -X で拡張子でまとめて表示 ls -lX こうすると、ext 順にまとめて表示してく…

lsで日付ファイル名の逆順に並べる並べ方

ls で日付・ファイル名・ファイルサイズなどを昇順・降順に並べたい ファイルを並べて結果をだすときに、新しいものから処理したいとか、古いものから処理したいことがあるよね。 ls でファイルの日付順に並べる 新しいものが先になるように並べるには ls -l…

cygwinのインストールでUAC(Admin昇格)を不要にする

Cygwin のインストールにオプションがつかえた。 今更知った。もっと早く知っていれば。 ./setup-x86-64.exe --no-admin これをつけることでインストール時に、Admin権限を要求されないので、UACの権限がなくてもインストールが可能になる。 たぶんデスクト…

sysd の管理単位-ユニット

systemd の管理単位 systemd は起動のすべてを 「ユニット」という単位で管理する。 ユニットは「Service」が代表例で、/etc/init.d/ に記述するようなサービスDaemonはすべて「Service unit」 として管理される。 ユニットには、service の他に、 target mo…

systemd のファイルについて

systemd のファイルについて debian での systemd の構成について調べた systemd のユニットファイルが置かれている場所 /lib/systemd/ /usr/lib/systemd/ /etc/systemd/ など locate で探すと結構たくさんあってどうなってるのか面食らう。なので役割分担と…

systemdでsysVinit/Upstart系のコマンドはどうなるの?

upstart 系のものはどうなるの? takuya@:systemd$ ls -l /sbin/{start,reload,stop,restart,status} ls: /sbin/start にアクセスできません: そのようなファイルやディレクトリはありません ls: /sbin/reload にアクセスできません: そのようなファイルやデ…

systemdの起動プロセスとinitについて

systemd の起動について /sbin/init (rootプロセス) として systemd が起動する。 此のときに systemd はdefaut.target というユニットをトリガーとしてシステムの起動が始まる。 以前は、sysV init と呼ばた機能がinit からコールされてたがそれが systemd …

bashのシェルスクリプトで拡張子を取得して利用するときのまとめ

特定の拡張子に○○する的なことはよくある シェルスクリプトを書いていると拡張子で判別したいことはよくある。 bashで拡張子を取得するには bashのブレース展開が一番ラクです。 path=/etc/apache2/httpd.conf extension=${path##*.} #=> conf 特定のディレ…

rubyで実行中のユーザー名(id)を取得したい

ruby でスクリプトを実行したのは誰? スクリプトの実行ユーザーを知りたい。root以外で動かされるとパーミッションがあとで面倒なので、root 以外が起動しようとすると拒否したいってことが、わりとあるわけで。 実行ユーザーIDを知るには Process.euid #=>…

pbcopy で標準出力の内容をecho表示を維持しつつコピーしたい

pbcopy コマンドはクリップボードのコピーが出来て便利。 pbcopy コマンドを使うと、ターミナルの出力内容をコピーが出来る。便利なコマンド でも困ったことが有る。クリップボードにコピーされた内容を見れない。 takuya@~$ ls / Applications Network User…

mac で使えそうなQuickLookプラグイン

QuickLookプラグインを使う Quicklookはないと困る存在で、使い始めるといろいろなファイルをプレビューしたくなる。 インストール・インストール済みのプラグインはここで観れる。 インストールするには、このフォルダに突っ込めばいい。 /Users/takuya/Lib…

インストールされてるJDKバージョンを確認し一覧するコマンド

あれ?java どこに入れたっけ java 本体やコマンド なんてめったに使わないので、ついつい油断しますよね。 java_home という便利なコマンドが有る。 /usr/libexec/java_home Debian にはコマンドが見当たらなかったのでたぶん、MacOS用だと思うのですが。調…

Javaの対話型コンソール(repl)を使って楽をする

ちょっと動作調べるのに main 書くのめんどくさそう java を REPL つまり、対話型インターフェイスでCLIで実行したい。 go や node でお世話になるあれ。swhift にすら搭載されて。php にすら搭載されてるあれ. ruby なら pry / irb 、 python なら ipython …

curlコマンドで速度制限(スピードリミッタ)をつける

curl でファイルを次々と取得してて curl でパッケージを取得したり、転送したりしてて他の作業に支障がでることがあります。 curl 万能なので使いすぎます。 speed limit をつけることで curl を速度制限出来ます。 速度上限をつけることで、穏やかに、急が…

tailf でログをgrep して確認する確実な方法

tailf の結果をgrep してxargs したい場合 grep するだけなら問題ない。これは期待どおりに動く tail -f a.log | grep name grep が pipeの間に入ると厄介だ tail -f a.log | grep name | grep type この場合は正しく動作しない、中間に挟まったgrepがIOをバ…

もしかして、Amazon って oAuth できるの?

ドメイン登録しようとしてて、ふと見たら・・・ あれ?認証連携アカウントがAmazon???? もしかしてAmazonってOAuthの連携ができるのではないか? もし、アカウント連携できるなら強い だってクレカ登録率高いもん。ショッピングサイトで使うなら絶対に強…

script コマンドで作業内容をリモートで伝える

script コマンドで作業内容をリモートで伝える screen コマンドの共有でも出来るけどね。script コマンドだけでも出来るよね。 screen の共有とかと同じです。 見せたい側で script -f -a sample.log みたい側で tail -F sample.log としておけばずっと見て…

MySQL/MariaDBのSQLとテーブル名を補完する mycli が便利

mycli が便利でやばい SELECT / INSERT などを補完してくれて、テーブル名やカラム名を補完してくれて、SQLを色付けしてくれる。 インストール python で出来てるのでpip でインストール pip install mycli pip がないときは pyenv を pyenv から準備すれば…

pyenvをインストールしてpython環境を使う。

pyenv をインストールする。 python 3.6 を使いたいなと思ってインストールをはじめました。 ユーザー空間にvirtualenv 作るより楽ちんだし pyenv 使おうぜ インストール git clone git://github.com/yyuu/pyenv.git ~/.pyenv macOS なひとは brew install p…

twitterの検索方法:自分の過去のツイート検索したり、リツイート検索したり。トレンドを見たり

あのツイートどこだっけ? あーあの retweet したやつ何処だっけ あのときにTweetしたやつなんだけど などと過去のリツイートやツイートを検索したいことが多々有りますよね。 検索方法が有ります。 引用元 たとえば自分の過去のツイートをRT含めて掘り出し…

tailコマンドで複数のログをまとめて表示する

同時に2つのログを見たい tail -f を2つ起動して、ターミナル並べておくのも邪魔くさいと思ってました。 tail -f /path/to/log2 /path/to/log1 こうすれば、複数のログファイルを同時に tail でウオッチできる。 いままでは watch と cat を組合せてたので…

tail コマンドがファイルの削除、作成時でも動くようにする

tail -f コマンドを使うとファイルの削除で動作が止まる。 tail -f /path/to/log で ログファイルを見ているときに、別のプロセスでファイルが消えたら ファイルが消えたら、動作が止まる。 mv /path/to/log /dev/null rm /path/to/log echo hello > /path/t…

tail -f コマンドがログ監視てるプログラムが死んだら一緒に自動的に終了する

pid を指定すると tail コマンドが自動的に終了する tail -f --pid=$PID /path/to/log PIDを指定したときに ローカルホスト開発ツールのログ監視してるときとかに便利ですね。 man tail --pid=PID with -f, terminate after process ID, PID dies 参考資料 h…

ChromeのDeveloper tools(開発ツール)のコンソール(コマンドライン)で出てくる記号と関数

chrome の dev tools に出てくる関数 $ と $$ の違い $ = document.querySelector $$ = document.querySelectorAll $x は Xpath $x('//a') xpath は組み立てと呼び出しが面倒なので、とても嬉しい。 その他の関数をマトメておくと クエリ系 $ $$ $x 直前のも…

右クリックでEvernoteに送信する

右クリックでEvernoteにファイルを送りたい Finderで右クリックでファイルをEvernoteに送るにはどうするか。 「このアプリケーションで開く」→「Evernote」とすればいいし、項目にEvernoteがなければ、その他から選べばいいいのですが。。。 最初から用意さ…

Evernoteにファイルを投入するコマンド

Evernoteにファイルをまとめて放り込みたい。 コマンドでまとめてEvernoteに放り込みたい。APIを経由すると毎年〜キーを更新しなくちゃいけないので面倒くさい なので、Apple Script ( の JavaScript ) でやろうと思う ( Windows な人は同じ目的で enscript.…

JXAのJavaScript AutomationとObjc Cocoaのオブジェクト呼び出し例

JXA で NSString を使ってPATHの変換をしてみたのでメモ objcのCocoa から NSString と FileManager を使ったので、いろいろ知見を得られたのでメモ。 Javascriptで、NSString を使うには、次のようにする。 ObjC.import('Cocoa') NSStringを init して allo…

Selenium で フォーム送信

Selenium で フォーム送信 するには。 若干のWaitを入れてあげるとうまく動くと思う。 driver.goto 'https://example.com/login' wait = Selenium::WebDriver::Wait.new(:timeout => 3) # second ## ページロードを待つ wait.until { driver.xpath('//*[@id=…

Selenium使おうとしたらchromedriverが古くてエラーになった。

selenium 使おうとしたらエラーになった。 >> require 'selenium-webdriver' => true >> driver = Selenium::WebDriver.for :chrome , :desired_capabilities => caps NameError: undefined local variable or method `caps' for main:Object from (pry):2:i…

tailf と grep を組合せて Slackにログを通知する。パイプでワンライナー

ログファイルを監視して、slack などに通知したい。 ログを監視して Slackに投げる方法で、かんたんなのを考えた。 ログファイルに何か変更があって、それが特定のときに メールや slack のチャンネルに通知を出したら便利だと思う。 あれこれログ監視や通知…

google chrome が google アカウントのパスワードを補完(入力しない問題

Google Chrome がパスワードを利用させてくれない ChromeにGoogleアカウントでログインしてる場合、そのアカウントのパスワードは補完されない。 そのために、Chromeでパスワードを何度も入力することになり面倒くさい。 原因と理由 ちょっと実験してみた。 …

素因数分解をしてくれるコマンド factor

prime numbers ( 素数 ) に分解してくれるコマンドがあった。 takuya@Desktop$ factor 123456 123456: 2 2 2 2 2 2 3 643 factor とは 要因の意味で数学的に因数で、factor コマンドは 素数を使って因数を表現してくれるコマンド 何に使うのか。 特に何に使…