読者です 読者をやめる 読者になる 読者になる

それマグで!

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

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

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 コマンドは 素数を使って因数を表現してくれるコマンド 何に使うのか。 特に何に使…

シェルスクリプトの改行コードを修正する

改行コードが原因でエラーになる。 改行コードを \r\n が原因でエラーになった。 takuya@:~$ bash -n apt apt: 行 2: 予期しないトークン `$'\r'' 周辺に構文エラーがあります 'pt: 行 2: `_apt() 一瞬何のエラーかわからなかったけどよく見るとエラーに改行…

標準出力と標準エラーのリダイレクト(コピー)について

標準出力と標準エラー出力を扱うときに たまに間違って 1 というファイルが出来てしまって悲しいことになる。 takuya@Desktop$ ll 1 -rw-r--r-- 1 takuya staff 20 2017-04-27 14:51 1 これを防ぐためにちょっと標準出力と標準エラーの扱いをまとめておこう…

github issue のラベルを編集する

github issue のラベルを編集してフレンドリーにする github のIssueのラベルを編集して名前をつけたら楽しい https://github.com/$(repo_name)/labels 編集した結果 ラベルをアレコレつけると感情が伝わってフレンドリーになる。 ただし、ラベルも使いすぎ…

Bashでシンボリックリンクのディレクトリの補完(上位ディレクトリが辿れない

シンボリックリンクされたディレクトリから上位が辿れない・・・ シンボリックリンクされたディレクトリがあって、その内部から、補完を試みても、ディレクトリがうまく補完されない。 takuya@vim$ ll -d /usr/local/opt/vim lrwxr-xr-x 1 takuya admin 26 2…

google drive にsync してディレクトリをバックアップを取る

google drive にファイルをバックアップする インストールと使い方の基本 google drive を コマンドから使うgdrive が早くて便利 - それマグで! バックアップを取る。 複製を取るには、幾つかのポイントを気にする。 Google Driveどのフォルダ(ディレクト…

CFBundleIdentifierを探す

CFBundleIdentifierを探す Karabiner の設定をするのに、UTI文字列が必要なのでね。com.vivaldi.Vivaldi のような文字列が必要になるので。 plutil -extract CFBundleIdentifier xml1 path/to/Info.plist -o - | xmllint - --xpath "//string/text()" CFBund…

vim の置換で改行をいれる

vim

改行を入れるのをどうするのか悩んだ 改行コードを書き込んだら、あとはファイルの改行方式に従ってうまくやってくれる %s/^name/name^M/ ^M は Ctrl-V, Ctrl- M で入力する。もしくは Ctrl - V , Enter と入力する 直接指定する場合 ^M で出来るんだから、…

Chromeのヘッドレスモードで快適生活

chrome のヘッドレスモードで起動して遊ぶ Chromeのヘッドレスモードは便利ですよね。 macOS にも Chrome のヘッドレスモードがやってきます。 MacOSだと長らく動かなかったので、あれこれトリックを使っててめんどくさかったんです。ようやく陽の光が! 準…

pdf で逆向きの画像をまとめて回転させる(qpdf編

pdf

スキャンして、上下逆さに入れちゃったPDFをまとめて回転させる スキャンした画像が上下逆の場合にどうするんだろうか。1ページずつ切出して jpeg 取り出して、pdftk 回転させたけど、すごく時間がかかってi7 6700 でも400ページ処理するのが辛かった。qpdf…

逆順に保存されたPDFのページを反対の順番にする。qpdf編

pdf

スキャンしたら、ページが逆!? スキャンしたら、ページが逆になったことありませんか?わたしは適当にスキャンするのでよくあります。 ページが逆順になったPDFを、1ぺーじから順に反対順に印刷し、正順化するには、どうするのか。 PDFプリンタを使います…

PDFを各ページに分割(切出)するコマンド pdfseparate

pdf

PDF から 指定ページを切出・分割したい。 スキャンしたPDFや、配布されたPDFを扱いたい。数百ページのPDFを1ページ毎に分割したい。指定ページだけのPDFを作成したい。 Nページ目からMページ目までのPDFを作りたい、NページをNファイルのPDFにしたいときに…

github.comでサブディレクトリをダウンロードする。

git archive が通らない。 git レポジトリなら git archive で取り出せるのですが、github.com は現在(2017-04-07) のところ、git archive コマンドをサポートしてない模様 Invalid command: 'git-upload-archive 'takuya/sample.git'' You appear to be usi…

which じゃなくて which brew が欲しい。

このコマンドは、どの brew ? which brew package contains this command ? な疑問文に答えてほしい。 なんとかした。 function which-brew () { ! type $@ &>> /dev/null && { echo $@ not found.; return 1 ; } [[ $(realpath $( which $@) ) =~ Cellar/(…

which コマンドを見直してみる。which コマンドの活用法

which コマンド which コマンド which コマンドについて そもそも which コマンドって? which コマンドを更に追求する このls はなに? which コマンドで 検索に alias も含める。 which コマンドの検索に function も含める。 alias も function もどちら…

Kindleの<IT書合同キャンペーン(50%OFF-)> を全件取り出してみた

Kindleストア : 【50%OFF以上】IT書合同キャンペーン(4/13まで) 全件を一覧できるようにしました。全商品取り出したはずだけど、今年もコレといったものはないですねぇ 書籍一覧

アカウント・リカバリで電話番号・生年月日はやめてほしい

アカウントのパスワード復活で生年月日はやめてほしい 個人情報をクレクレするのは良いけれど。生年月日を使うのはやめてほしい。 生年月日を漏らされるとめんどくさい 個人情報が漏れたときに、生年月日が流出すると本当にめんどくさいことになる。 クレジ…

え?→「アドレスや任意の文字列を付加したようなメールアドレスについては、同一と判断します」

何のためにメアドを変えられるか理解してない。 ポンタにログイン使用して気づいた。 尚、Gmail、au one netのメールサービス、Livedoorメール、Hotmail、Yahoo!メールなどで1つのメールアドレスとして扱われる、複数のメールアドレスや任意の文字列を付加し…

libtrash でゴミ箱を扱う→obsolete → trash-cli

debian の wheezy あたりではもうobsoleteパッケージになってレポジトリから削除されてるっぽい obsolete http://usami-k.seesaa.net/article/2644852.html 現在はコッチ https://github.com/andreafrancia/trash-cli/ takuya@:~$ apt install trash-cli ali…

SpeakerDeck のスライドを取得してローカルで見る

SpeakerDeck をオフラインで見たい Speaker Deck で良さげなスライドをEvernoteに溜め込みたいなと思った。 ブックマークしてても検索出てこないし。どうしようかな~っておもって。とりあえずダウンロードしてみることにした。 URLをスクレイピングするのに…

python の subprocess 起動で、起動コマンドのstdin に書き込む

起動して入力をわたしたい。 cmd1= "cat" p = subprocess.Popen(cmd1.strip().split(" "), stdin=subprocess.PIPE) p.stdin.write("Hello World\n".encode('utf8')) コマンドを起動するときに、 stdin に PIPEを指定する。実行中の python と サブプロセスの…

正規表現の名前付きマッチで、scanf から卒業する

正規表現の名前付きなマッチを覚えました。 >> ret = '直通特急 阪神梅田行 18:29 発 3番のりば'. match(/(?<type>.+) (?<dest>.+)行 (?<dep_time>.+)発 /) => #<MatchData "直通特急 阪神梅田行 18:29 発 " type:"直通特急" dest:"阪神梅田" dep_time:"18:29 "> >> puts ret[:type] => "直通特急" 名前付きマッチの後方参照はとても楽しい!!便利!!これで scanf みたいなレガシ</matchdata></dep_time></dest></type>…

SQLiteでの alter colmunの代替案

SQLite にはいくつかの機能がない。 たとえば、次の通り。 alter table rename columnがない alter table drop column がない SQLiteでの alter colmunの代替案 1 . いったん別のテーブルにデータを退避する 1. drop table でテーブルを消す 1. create table…

ffmpeg で mkv の字幕ファイルをmp4 にする

字幕も含めてコピーしたいな mkvのストリームに字幕が含まれてて、これを維持したまま、mp4 に変換したいな。 h264 / aac はそのままでいいんだけど、字幕はそのまま copy で動かなかったので調査した。 "ffmpeg -i '#{src}.mkv' -y -map 0:0 -map 0:1 -map …

画像がカラーか、白黒かを判別する

カラー画像かモノクロか判別する。 takuya@:$ convert sample.cl.jpg -colorspace HSB -separate -delete 0 -fx "u*v" -blur 2x2 -threshold 30% -format '%[fx:mean]\n' info: 0.693993 takuya@:$ convert sample.bw.jpg -colorspace HSB -separate -delete…

プレイリストのファイル形式を色々試してみる。

プレイリスト扱えると便利 WEBサイトに動画や音声をたくさんおいていると、再生が面倒なのでプレイリストを作って対応したい。どのアプリが、どのプレイリストに対応しているか、そもそもプレイリストのファイル形式はどのようなものがあるのだろうか。 プレ…

pythonでHTMLをパースしてXpathする

python でも xpath したい。 libxml でパースするには、lxml を使うと楽 pip install lxml 使い方。 lxml.html を使うと確実に、パースする事ができる。parse は IO を取るのでStringIOを使うことになる。 lxml.html.parse(StringIO(page.html)) サンプル im…

jq コマンドで json を minify する

jq を使って minify することが出来る cat composer.json | jq -c . または jq -c . < sample.json 任意のJSONをJSONのフィルタを変えて小さくすることが出来る。 サンプル composer.json を小さくする { "repositories" : [ { "type" :"git", "url" : "http…

pythonのORM:SQLAlchemy の基本的な使い方

SQLAlchemy を使ってみる。 目次 SQLAlchemy を使ってみる。 目次 インストール テーブルの作成 手順のおさらい RDBMS への接続 テーブル定義のクラス。 INSERT/UPDATE をする。 INSERT の例 UPDATE について DELETEする。 INSERT・UPDATE・DELETE のキャン…

DBアクセス抽象化で、INSERT と UPDATE でコードを共通化させるハック。

php

困りごと: INSERT と UPDATE の共通化をしたい。 似たようなコードを何度も書くのはめんどくさい。テーブル定義が変わったときにもう鬱陶しい。 共通化したい・・・ function insert( name , date ){ sql = "INSERT INTO table_name VALUES( #{name} , #{da…

phpのリクエストパラメータをサクっと処理する

php

phpのリクエストを読むのに、ブラケットがめんどくさい ブラケット書くのがめんどくさい 此の記述がもはや狂気。