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

それマグで!

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

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

指定したファイルの日付を取得してフォーマットする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を…

bcacheでSSDをキャッシュに使ってHDDアクセスを早くしてSSHD的なことをやる

ssd を書込み読み込みキャッシュに使いたい HDDのアクセスを早くしたい。Writeおせーんだわ。 あれこれ、実装があるけど lvm cache / dm-cache より、bcacheの方が圧倒的に簡単で速かった。 もちろん、こんなことをしなくても、よく使うデータはHDDからメモ…

コマンド(lzop)の圧縮展開の進捗どうですかー?

lzop 速くて便利だけど。どこまで終わってるの lzop って圧縮伸張がそこそこ速くて便利だけど、それでも数十GBやると結構時間がかかるんですよね。 その進捗見たいです。 progress コマンドでは出来ないことがわかった。 progress コマンドも候補に入るらし…

ページ数の多いPDFのページ指定の読み込みを早くする linearize

pdf

pdf の読み込みが遅い? ページ数の多いPDFがなかなか表示されなくて、イライラしたことがありませんか? とくに、企業がサイトに設置している取説PDFなどが遅い。全部のダウンロードが終わらないと見えないのはめんどくさい。またスライドなどのPDF資料も全…

bashの似てて紛らわしいもの() / {} について

サブシェルとグループの違い サブシェル () グループ {} サブシェルの大きな特徴は、サブシェルであるということ サブシェルは、ほぼfork みたいなものだと思ったらいいと思います。 () / { } の違い () はサブシェルを起動し実行する。 {} は現在のシェルで…

S.M.A.R.Tの値をsmartd で監視してメールを送る

HDD のsmart 状態を監視する HDD のSMARTで値を監視して、ハードウェアの状態が変化したり、故障が近づいたらメール通知しておくことにして、少し安心したい。 準備 sudo apt install smartmontools smartd の有効化 smartmontoolsを入れたら smartd がつい…

ぱぱっとIP/ドメインを調べるhostコマンド

host コマンドでぱぱっと調べる host コマンドなるものが有ります。dig みたいだけどdig ほどちゃんとDNSを見れるわけでもないですが、現在使用中のPCから見たドメインとIPの対応はきっちりわかります。 host コマンドの使用例1:Debian GNU/Linux takuya@:…

LinxuでHDDの状態を調べる。コマンド

コマンドでSMARTの状態を調べる HDD の状態を調べるには、S.M.A.R.Tを調べる必要があって、それには smarttools のコマンド一式を使う必要が有ることがわかった。 HDDが異常化か正常化知りたいだけなんだ! そんなせっかちな人には、此のコマンド PASSED と…

Deiban/Exim4通知メールをgmailで送出する。

メールの設定はめんどくさい SMTPリレーとかSMTP Outbound port Blocking 25 ( OBP 25 ) だとかさ、めんどくさいんですよね。理解できない人に、「○○が必要で」などと説明するのもめんどくさい。 Gmail 経由で送信する。 というわけで、一番手っ取り早くて、…

iPhoneのSafariがパスワードを確実に学習するには

iOS

iOS の Safariがパスワードを保存しないことがある。 なんでかずっと考えてたけど、よく考えたらパスワード保存のダイアログの発動条件を思い出したら、form.submit だったかなぁと考えて、保存させる方法に気づいた。SafariのAddonで解決させるしか無いかな…

Swiftをshebang指定でシェルスクリプト起動!?linuxでも

面白げな記事を見つけました。 新・OS X ハッキング! (166) 開発者でなくても「Swift」は便利に使える | マイナビニュース #!/usr/bin/swift で swift が起動するというのです。 試してみる。Xcode は入っているので、ターミナルから試してみます。 バージョ…

MacのFinderなどプログラムを強制終了・再起動

Mac のFinderを再起動 Finderを再起動するのに killall Finder ですが、メニューからも出来るんです。 左上のメニューから再起動する Finder.app を選ぶ Finderを選んだ状態で左上  メニュー Shift キーを押す なんでも強制終了出来る finderに限らず、選択…

php のフォークと強制終了

php

単純なフォーク

スクリーンセーバに表示される時計を大きくしたい

スクリーンセーバーに表示される時計を大きくしたいなと macOSで打ち合わせ中に、どんどんアイディアが発散して、収拾つかなくなる人が多い。なので、時間を表示しながら打ち合わせで、あっさり解決するんじゃないかと。会議室に時計がなかったり、ホテルや…

iTerm2 でwitch などキーボードのリマップなどが効かない問題

iTerm2 でキーボードのリマップなどが効かない問題が出た すごくハマった。なのでメモ。 Karabiner やwitch や hyperSwtich あと Contexts なども一切使えなくなって、もうどうしようかみたいに頭を抱えてた option+tab / ctrl + tab なども駄目 一切のスイ…

node.js の node コマンドが CTRL+R効かない

node で ctrl+R が効かない。 ctrl+r 無いと不便だよね。irb は数年前に解決した、sqlite3 は先日解決させた。 今度はnode もなんとかしたいなと調べた。 sqlite のときのように readline ライブラリで解決するかと思ったら解決しない。 node REPL をどうす…

brewで入れたsqlite3でCTRL+Rが効かない!

brew で入れた sqlite で reverse-i-search が使えない reverse-i-search ってすごく便利で CTR+Rでヒストリをインクリメンタル検索出来る機能なんだけど。動かなかった。 色々調べたら、GNU Readline ではなく、Mac 標準添付のeditline(?) を使ってるとか。…

RMagick が入らない: gem install rmagick error

RMagick を久しぶりに使おうとしたら・・・ インストール gem install rmagick はい、エラー。extconf.rb ってほんと良く詰まるわ 色々調べたら、Rmagick が imagemagick 7 に非対応だった。 brew unlink imagemagick brew install imagemagick@6 brew link …

OSX El Capitan / macOS Sierra からパーミッションの復旧がなくなった

タイトルのとおりです。 El capitan / Sierraからパーミッションの復旧がなくなってSIP( system integrity protection )がメインになってる。 たまに、SIP オフで使ったりするので、パーミッションの復旧がなくなるとめんどくさいことになってる。 パーミ…

画像の比較をしてズレがないか調べる

image magick で画像の比較をすることが出来る。 画像の比較をするにはいろいろな方法がある。 目で見てわかりやすい→WEBや校正用 機械的に見てわかりやすい→ダイアログなどプログラムのテスト 画像におおきな影が出る→動体検出 等と大きく分けて使い分ける…

compare コマンドで画像のズレを見つけろ!

ImageMagickにはcompareコマンドがある。 compare コマンドを使うと簡単に画像を比較することが出来る。 これはWebkit2png で取得した画像を使うとレイアウト崩れを見つけられるので嬉しいと思う 画像比較の例 compare -highlight-color red 1.png 2.png out…

/etc/passwd を編集しても反映しなかった。→ usermod を使う

/etc/passwd を手で編集した。 なぜだかわからない。反映しない。手作業で編集は駄目だと思ったけどshellや home dir や gid をマトメて編集できるから、もう直接手で触ればいいやとおもったけど反映しない。 home_dir を変更しても反映しない。。。再起動が…

ネットワークのIPアドレスを一覧表示する(sort でIPアドレスをソート)

ローカルネットワークのIPを列挙する nmap を使って、ネットワークに疎通できるIPアドレスがどれだけあるか見ておく takuya@Desktop$ nmap -sP 192.168.2.0/28 | /usr/bin/grep -o '192.168.2.\d' 192.168.2.1 192.168.2.2 192.168.2.3 192.168.2.9 うちのロ…

javascriptで名前空間を作って生産効率を上げる

名前空間の利用 名前空間を利用するとJavaScriptがもっと楽しくなる。 何でもかんでも、Globalなオブジェクトに登録していくと、どうしても限界が早くなる。 コードを書くよりもコードを読むのに時間がかかるという点です。問題に深く集中して売る時、腰を据…

JavaScriptでプライベートな変数やメソッドを作る

プライベートなメンバを作る プライベートメンバを作るには、どうするか? プライベート・メンバを作るパターンが基本パターンとして次があげられる。 function Phone() { //プライベート・メンバ var name = 'Xperia' //パブリック・メンバ this.getName = …

Object.assign は何をする為にあるんや?

Object.assign が使えるようになってる。 Object.assign() - JavaScript | MDN Object.assign(target, ...sources) せっかくなので調べてみて、ソースコードの重複が減らせるのに使えるか調べてみた。 Object.assign は何をするのか var a = { age : 17 } va…

divのポインタイベントの停止をCSSでやるpointer-events(クリック禁止を手軽にやるCSS)

CSS でマウスポインタのイベントを全部disabledにすることが出来る pointer-events: none; なぜ無効化するのか div を複数枚重ねてて、前面のイベントを無視したいとか、Divを透過させててクリックイベントを暴発させたくない時がある。 サンプル1: ポイン…