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

それマグで!

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

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

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のリクエストを読むのに、ブラケットがめんどくさい ブラケット書くのがめんどくさい 此の記述がもはや狂気。

指定したファイルの日付を取得してフォーマットするdateコマンド

date コマンドでファイルの日付を取得する。 指定したファイルの日付を取得するには $ date +'%F %T' -r /etc/aliases 2015-08-02 13:35:20 最終更新日が取得できる。 -r, --reference=FILE display the last modification time of FILE もちろん stat でも…

dateコマンドでiso/rfc日付時刻タイムゾーンをぱぱっとフォーマットして作る

date コマンド便利だけど、フォーマット指定がめんどくさい takuya@:~$ date --date "2017-03-22 + 90days" +"%Y-%m-%d %H:%M:%S" 2017-06-20 00:00:00 ああ、めんどくさいよ%Y-%m-%d 、記号が多くてめんどくさい。 よくつかう日付は、オプションが用意され…

bashで複数行の文字列の代入と、ヒアドキュメントを使わずに変数に格納する方法

bash で複数行の文字列を変数に格納する方法 その1:一番シンプルなのはそのまま str=" ここは サンプル の複数行文字列 です。 " echo "$str" echo $str ではなく、 echo "$str" なのがちょっと味噌ですね その2:ヒアドキュメント編 一般的なのは、ヒア…

sendmail でコマンドからメールを送信する。

メール通知のテストに使う。 postfix や exim4 のメールサーバーの設定をしていて、テスト・メールを送信したいときに、手作業でsendmail コマンドを送るのは、ちょっと面倒なのと、どのメールが未到達で、どのメールが到達したか区別するのが大変なのでスク…

sudoersの設定を分割する /etc/sudoers.d を使おう

/etc/sudoers.d で分割できる。 /etc/sudoers.d を使うと、必要なものを覚えやすいファイル名で書いておいてバージョン管理することが出来る。 編集方法 編集方法がめんどくさい。分割して管理できるが、各ファイルを編集するのにvisudoを使う必要があり、こ…

nmtui-connectで無線LAN接続して、NetworkManagerと仲良くなる

Pizeroで無線LANを接続する Wi−Fiにぱぱっとつなぐには、アレコレとコマンドを弄るより network-manager を使うのも楽ちんだと思う。 sudo nmtui-connect 画面が出てくる ssh 経由でも安心 細かいコマンドや /etc/network を使わなくていいので楽ちんですね…

POSIX の メッセージ・キューを作成する(C言語)

POSIXのメッセージ・キューをC言語で扱う コンパイルには gcc -lrt を使う。 まずは送信するところから。 q_push.c #include <mqueue.h> #include <sys/stat.h> #include <fcntl.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> int main(){ int cnt; int ret; char *str; void *pt; mqd_t q; q</string.h></unistd.h></stdlib.h></stdio.h></fcntl.h></sys/stat.h></mqueue.h>…

POSIX の メッセージ・キューを確認する。コマンドで。

POSIX message queue を確認する。 Linux なら /dev に出現する。 takuya@:~$ ls /dev/mqueue/ キューがあるとき /sample という名前でキューを作ったのでキューを確認することが出来る。 takuya@:mq$ ls /dev/mqueue/ sample キューの状態をサクッと確認す…

PythonでPOSIXのMessageQueue を使う。

POSIX の メッセージ・キューを使う。 プロセス間通信などと呼ばれる。POSIXのキューを使ってみる。 プロセス間通信 - Wikipedia プロセスとプロセスのデータのやり取りにメッセージ・キューを使うことで幾分楽になる。マルチスレッド以前に複数プロセスでデ…

シェルで指定文字に文字列を分割して結合する。

文字列をシェルで、指定文字数に分割して結合するには 選択肢になるコマンドは、分割・結合でそれぞれ次の通り 分割 flod grep 結合 paste tr などが使えることがわかった。 分割の例 fold -w2 grep -E -o '.{2}' 文字列を指定文字に分割する。fold コマンド…

Debian/ubuntu のapt自動アップデートのUnattendedUpgradesを設定する

Debian の apt 更新がめんどくさいのでなんとかする。 昔は cron-apt でやってたけど、今時はどうするのかなーと思って調べてたらUnattendedUpgradesがあったのでコレを設定することに。 Debian Wikiに従ってインストール sudo apt install unattended-upgra…

web.archive.org のURLを考える

web.archive.org のURLはどうなってるのかを見てみる web.archive.org のインターネットアーカイブがとても便利。 著作権云々だとかで魚拓サービスはとても使いにくいので、アーカイブから取るのが良い。 基本的なURL 基本的はURLは日付+取得したいURLにな…

バックエンドへのssh のユーザー名で接続先を振り分ける

ssh

ssh でフロントとバックエンドへの接続を簡単にしたい。 ssh でIP浪費するのもめんどくさい話だし。 バックエンドへの接続をもう少し楽にできたら良いんだけど。 ユーザー名でバックエンドへの接続を切り分ける 発想としていくつかある。 フロント┬────── Ba…

php で終了しないプログラムを書く

php

php はホスティングなどのリソースを上手に扱う関係上、実行時間が限られてる。 なので、終了しない無限ループをキックしようと思うとこんな感じなる。 #!/usr/bin/env php

動画の音声・動画ストリーム情報をJSONで受け取るffprobe json オプション

事の発端:ファイル名変換をミスった この動画なんだっけ?wmv?avi? mpegts ? ファイル名の変換をミスった。拡張子がトンだ。もうしにたい。仕方ないのでコーデック情報見ながら各種データの拡張子を探ることに 動画のストリーム情報の解析がめんどくさい…

qpdfでPDFにパスワードをつける。

qpdf でパスワードをつける。 qpdf があればコピーを不可、編集不可、閲覧不可などのパスワードをつけることが出来る 使うオプション --encrypt qpdf --encrypt パスワード1 パスワード2 キー フラグ -- in.pdf out.pdf 最後にいれる -- はオプションフラグ…

networksetup 困った。。。ダイアログが何度も出る

networksetup 困った。。。 networksetup が便利なんだけど。これを使うと毎回毎回にダイアログが出る。 /usr/sbin/networksetup sudo すると解決する sudo したら解決するらしい。なんでや。。。 sudo /usr/sbin/networksetup sudo で解決するので、sudo つ…

rubyのSequelをパパと使うサンプル(select/update/create/delete/unique/constrains)

DB にアクセスするなら Sequel が便利 データベースにアクセスしてデータを扱うには Sequel が便利。ActiveRecordもいいんだけどアレはめんどくさい。 SQLに極めて近い構造で余計なことはなにもなく便利でいい。 インストール gem install sequel DBに接続 D…

GNU mc(:midnight commander)でファイラ使うと楽しい。

ようやく名前がわかったので使ってみた。 昔、教授が使ってて、なんやこれ!楽しそうと思ったファイラ。「これDOSですか?」「いいやちがうよ、古い頃から使ってるMS-DOSみたいなもんだな」「なんで?Finderあるじゃないですか?」「コレがいいんだよコマン…

SOAレコードとdig

DNS のSOAレコードについて takuya@:sites-available$ dig soa google.co.jp +short ns2.google.com. dns-admin.google.com. 149484063 900 900 1800 60 ^^^ ^^ ^^ ^^ ^^ │ │ │ │ └ minimun │ │ │ └─ expire │ │ └─ retry │ └─ refresh └─ serial serial シ…

python3 urllib でPOST/GET/PUT と JSON 送信

python3 の urllib を使う。 ひさしくpython2.7 だし全然不満がないのですが。python3.6 の文字列展開とjinja2 が便利そうだしそろそろ python3 使ってみようと思い立って、まずは基本的なリクエストを投げるところから。 urllib.request で各種リクエストを…

curl で get/post/put/delete などメソッドを指定する

curl でHTTPのMethod指定する curl -X GET curl -X DELETE curl -X POST --data 'name=value&id=1' curl -X PUT --data 'name=value&id=1' ファイルを送信する場合は curl -X POST -F name=@path/to/name curl -X PUT -F name=@path/to/name JSON を送信する…

curl でAPIアクセスのヘッダ毎回指定を設定ファイルを使って省略する

API にアクセスするときHEADER多すぎ URLとPOST/GETのデータ以外に指定する項目が多すぎて嫌になる。 curl "https://api.example.com/api/v4/settings" \ -H "X-Auth-Email: takuya@example.com" \ -H "X-Auth-Key: gfhfdertgfdsertgf" \ -H "X-Auth-SID: xx…

文字列の長さ順にソートする(awk/sortコマンド組み合わせ)

文字列の長さ順にソートすると美しい。 なんでなんだろうね。アルファベット順よりも文字列長さ順でソートすると、出力がきれいに見えるんだよね。 awk/sort で文字列の長さ順にソートする。 command | awk '{print length() ,$0}' | sort -nr 例えばPATHを…