それマグで!

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

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

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

google drive にファイルをバックアップする

インストールと使い方の基本

google drive を コマンドから使うgdrive が早くて便利 - それマグで!

バックアップを取る。

複製を取るには、幾つかのポイントを気にする。

  • Google Driveどのフォルダ(ディレクトリ)にアップロードをするか?
  • フォルダのIDを取得する
  • sync する
gdrive mkdir backups
# fileId をメモする。
gdrive sync upload  /var/path/to/src/dir <fileId>

速度は?

15MB/b くらい出た。結構速い。

以前は速度が出なくて挫折したけどコレくらい速度出るなら、ディスク移動中にとりあえずキープして置いていく場所に結構便利に使えそう

Mac のアプリケーションの識別文字列 CFBundleIdentifier ( bundle Identifier )を探す

2018-09-01 mdls を使うのがいい方法みたいなので、別の記事にしました。

takuya-1st.hatenablog.jp

   

   

Macのアプリケーションの識別

BundleIdentifier を使って Identifier ( 識別子)を取り出す。

kMDItemCFBundleIdentifier = "com.microsoft.rdc.mac" 

bundle identifier をとりだして、アプリ名と com.evernote のような ドメイン名的な名前を探す。

CFBundleIdentifierを探す

Karabiner の設定をするのに、UTI文字列が必要なのでね。com.vivaldi.Vivaldi のような文字列が必要になるので。

plutil  -extract CFBundleIdentifier xml1  path/to/Info.plist  -o  - | xmllint - --xpath "//string/text()"

Bundle identifier ( CFBundleIdentifier ) は UTI文字列 を入れている。

UTI 文字列を identifier (識別子)として使うので、例えば、次のようになる。

takuya@~$ plutil  -extract CFBundleIdentifier xml1  /Applications/PhpStorm.app/Contents/Info.plist  -o  - | xmllint - --xpath "//string/text()"
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<string>com.jetbrains.PhpStorm</string>
</plist>

/Applications からすべてのIDを探すなら、bash で簡単

ループで回せば結構簡単にわかってくる。

for i in /Applications/*/Contents/Info.plist; do
  plutil  -extract CFBundleIdentifier xml1  "$i"   -o  - | xmllint - --xpath "//string/text()"; 
done \
 | grep string

ruby も書いた

#!/usr/bin/env ruby


require 'mechanize'
require 'fileutils'
require 'pp'
list = Dir.glob('/Applications/*/Contents/Info.plist')
len = list.map{|e| e.match(%r|(?<name>[^/]+app)|)[:name].size}.max()
list.each{|e|
  begin
    appname = e.match(%r|[^/]+app|)
    xml = `plutil  -extract CFBundleIdentifier xml1  "#{e}"   -o  -`
    xmldoc = Nokogiri::XML( xml )
    identifier =  xmldoc.search('//string[1]/text()')[0].text
  rescue => e
    appname ||= ''
    identifier ||= ''
  ensure
    puts "%-#{len}s\t%s" % [appname, identifier]
  end

}



参考資料

http://www15.plala.or.jp/NovemberKou/documentBasedProject/setCFBundleIdentifier.html

http://harafuji0613.hatenablog.com/entry/2015/03/22/002953

http://qiita.com/trakwkbys/items/a94c4d43342e96352bde

2017-07-21 追記

セルフ検索に引っかからないので、キーワード追加した

2018-05-10

ぱぱっと使いたいのでrubyのコマンドにした。

vim の置換で改行をいれる

改行を入れるのをどうするのか悩んだ

改行コードを書き込んだら、あとはファイルの改行方式に従ってうまくやってくれる

%s/^name/name^M/

^M Ctrl-V, Ctrl- M で入力する。もしくは Ctrl - V , Enter と入力する

直接指定する場合

^M で出来るんだから、改行は \r じゃなのかなとおもったら \r でいけた

%s/^name/name\r/

Vimにおける改行はモードによって見え方が異なるので大変ね。

参考資料

http://d.hatena.ne.jp/teramako/20061003/p1

vimの置換で改行を(挿入|削除)する - Qiita

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

chrome のヘッドレスモードで起動して遊ぶ

Chromeのヘッドレスモードは便利ですよね。

macOS にも Chrome のヘッドレスモードがやってきます。

MacOSだと長らく動かなかったので、あれこれトリックを使っててめんどくさかったんです。ようやく陽の光が!

準備したもの

Chrome >=59 であればいいので、Dev チャンネルから持ってきた。そのうち通常リリースに含まれると思う。

f:id:takuya_1st:20170418185344p:plain

インストール

/Applications/Chrome-dev-59.app

という名前で保存した。この名前はあとで open -a するのに必要

起動

とりあえず。ヘッドレスモードで起動する

open -a  Chrome-dev-59.app --args  --headless chrome://help/

起動した!

CMD-Q で終了すら出来ない、単純なAppが起動する。

f:id:takuya_1st:20170418185733p:plain f:id:takuya_1st:20170418185749p:plain

remote-debugging-port を使って遊ぶ

open -a  Chrome-dev-59.app --args  --headless --remote-debugging-port=9222 chrome://help/

node で遊ぶ

npm install chrome-remote-interface

コードを書く

const CDP = require('chrome-remote-interface')

CDP( ( client ) => {
    //Extract used Devetools domains.
    const { Page, Runtime } = client;
    // Enable events on domains we are intersted in.
    Promise.all( [
      Page.enable()
    ]).then(  () => {
      return Page.navigate( { url: "http://t.co"});
    })

    // Evaluate outerHTML after page has loaded.
    Page.loadEventFired( () => {
      Runtime.evaluate( {expression: 'document.body.outerHTML'} ).then( (result) =>{
          console.log( result.result.value );
          client.close();
        })
    })

}).on('error', (err) => {
  console.error('Cannot connect to Browser:', err);
})

サンプルコードはここから → https://github.com/cyrus-and/chrome-remote-interface

実行結果

takuya@headless-test$ node  sample.js
<body>

    <div id="main">
      <a href="http://twitter.com" class="bird"><img src="/static/images/bird.png" alt="Twitter"></a>
      <p><a href="http://twitter.com">Twitter</a> uses the <strong>t.co</strong> domain as part of a service to protect users from harmful activity, to provide value for the developer ecosystem, and as a quality signal for surfacing relevant, interesting Tweets.</p>
      <a class="back" href="http://twitter.com">Back to Twitter</a>
      <a class="more" href="http://help.twitter.com/entries/109623">Learn more</a>
    </div>

    <div class="footer">
      <span>© <script type="text/javascript">document.write(new Date().getFullYear());</script>2017 Twitter</span>
      <a href="http://twitter.com/about">About Us</a>
      <a href="http://twitter.com/about/contact">Contact</a>
      <a href="http://blog.twitter.com/">Blog</a>
      <a href="http://status.twitter.com/">Status</a>
      <a href="http://dev.twitter.com">API</a>
      <a href="http://help.twitter.com/">Help</a>
      <a href="http://twitter.com/jobs">Jobs</a>
      <a href="http://twitter.com/tos">TOS</a>
      <a href="http://twitter.com/privacy">Privacy</a>
    </div>


</body>

あとは、普通に遊べる。

ああ、これでずっと楽にCookie必須なWEBサイトの中で遊べるわ。WEBブラウザを操縦するのは遅いからスクレイピングには向かいないけど。。。自動実行とかだとうまくいく。

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

スキャンして、上下逆さに入れちゃったPDFをまとめて回転させる

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

こういうPDFを回転させたい

中身はJPEGが埋まったPDFなのですが、逆になったらそれはそれで辛い。

f:id:takuya_1st:20170417223524p:plain:w200

適当にスキャンしてると、結構やらかして天地逆転することがある。

PDF だけで180度転換する。

原理としては、中身のJPEGを180度回転させずに、PDF側で埋め込み表示するときJPEGを180度回転させて表示する感じ。なのでJPEGは一切触らない。

回転方法

pdf-rotate.cc という qpdf のサンプルコマンドがあるのでそれをぱぱっと取り出して使う。

qpdf を用意する

brew install qpdf 

ソースを取ってくる

mkdir work$(date -I)
cd work$(date -I)
wget https://raw.githubusercontent.com/Quasilyte/qpdf\
/74618e7b337537706204e83e05f27493fa6d6eb2/examples/pdf-rotate.cc

ソースを持ってきたらコンパイルする。

$ g++ -L/usr/local/lib  -lqpdf pdf-rotate.cc -std=c++11  -o pdf-rotate

回転する。

./pdf-rotate in.pdf 180 out.pdf

楽ちんですね。

1ページずつメタデータを書き換えても良いんだけどさすがにPDFの構造を知らないと難しいのでおすすめしない。

スキャンされた画像データは触ってない

繰り返しになりますが、スキャンされた画像データは一切触ってないです。PDFが画像をページに埋め込むときに回転しています。これはHTMLに画像を埋め込んでスタイルシートで translate rotate してるのと同じです。

参考資料

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

スキャンしたら、ページが逆!?

スキャンしたら、ページが逆になったことありませんか?わたしは適当にスキャンするのでよくあります。

ページが逆順になったPDFを、1ぺーじから順に反対順に印刷し、正順化するには、どうするのか。

PDFプリンタを使いますか?もっと簡単な方法があります。コマンドです。

qpdf でページを逆順に。

qpdf を使えば、かんたんにページを後ろから出力して、reverse することが出来ます。

qpdf --empty out.pdf --pages in.pdf z-1 --

とってもかんたん。そして速い!!

qpdf のインストール

macOS / OS X

brew install qpdf 

Debian GNU/Linux

apt install qpdf 

pdftk との速度比較

たった2ページを逆順にするだけでもコレくらい違います。

pdftk で処理した場合。

takuya@ページ順が逆$ time pdftk sample.pdf cat end-1 output out.tk.pdf

real    0m0.497s
user    0m0.156s
sys 0m0.093s

qpdf で処理した場合

takuya@ページ順が逆$ time qpdf --empty out.pdf --pages sample.pdf z-1 --

real    0m0.050s
user    0m0.008s
sys 0m0.025s

出来上がるファイルも特に差は無いようです。

takuya@ページ順が逆$ ls -l   out*
-rw-r--r-- 1 takuya staff 2391678 2017-04-17 22:06 out.qpdf.pdf
-rw-r--r-- 1 takuya staff 2391978 2017-04-17 22:06 out.tk.pdf

関連資料

PDFを逆順にソートして並べ直す(最初から最後のページを全部逆順に整列) - それマグで!

参考資料

https://inconsolation.wordpress.com/2014/03/24/qpdf-still-more-pdf-wizardry/

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

PDF から 指定ページを切出・分割したい。

スキャンしたPDFや、配布されたPDFを扱いたい。数百ページのPDFを1ページ毎に分割したい。指定ページだけのPDFを作成したい。

Nページ目からMページ目までのPDFを作りたい、NページをNファイルのPDFにしたいときにどうするか

pdfseparate コマンドを使うと便利

pdfseparate コマンドが便利。 poppler 由来のこのコマンドが目的に合致していて、確実にきれいな処理をしてくれる。

インストール

ぱぱっとコマンドで入れるのが楽で早い。

## macOS /OS X
brew info poppler
## GNU/Linux
apt install poppler-utils
## Windows
choco install xpdf-utils

使い方

超簡単にPDFをファイルに分割できる。覚え方もかんたん。

全ページをファイルに

pdfseparate 2017年04月10日17時43分54秒.pdf out.%d.pdf

指定ページをファイルにする。 ( 10-20 )

pdfseparate 2017年04月10日17時43分54秒.pdf  -f 10 -l 20 out.pdf

指定ページから先をファイルにする。

pdfseparate 2017年04月10日17時43分54秒.pdf  -f 10 out.pdf

ある1ページだけを切出したい

pdfseparate 2017年04月10日17時43分54秒.pdf  -f 10 -l 10  out.pdf

PDF の分割ができる

PDFを手作業で処理することは、MacOSXならプレビューで、Adobe Readerなどでも出来る。

ただしそれらは手作業でファイルを選んだりクリップボードを経由したりとても大変になって、自動化が追いつかない。

そのために、コマンドで自動化が出来るので是非試してください

その他のコマンド

pdftocairo pdftk を使っても同様のことが実現できます。

参考資料

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 using ssh to clone a git:// URL.
  Make sure your core.gitProxy config option and the
  GIT_PROXY_COMMAND environment variable are NOT set.

というわけで、サブディレクトリをまるっとダウンロードすることが出来ない。

svn を経由する

github.com のレポジトリは svn でもアクセスできるようになっているので svn export を使うと取り出せた。

svn exprot http://github.com/takuya/sample.git/trunk/path/to/directory 

これが現状マシな解決策のように思える。

git だけなら

git read-tree でバージョン管理をしながらいらないフォルダを不可視にしたり、git archive でtgz で取り出せたり、出来るんだけどねぇ

パスの指定方法

https://github.com/takuya/sample.git

のときは、master を指定して

https://github.com/takuya/sample.git/trunk
https://github.com/takuya/sample.git/trunk/path/to/sub/dir

と指定する。

関連資料

http://takuya-1st.hatenablog.jp/entry/2015/02/26/022139

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

このコマンドは、どの brew

which brew package contains this command ? な疑問文に答えてほしい。

なんとかした。

function which-brew () {

  ! type $@ &>> /dev/null && { echo $@ not found.; return 1 ; }

  [[ $(realpath $( which $@) ) =~ Cellar/([^\/]+) ]] ;

  (( ${#BASH_REMATCH[@]} > 1  )) &&  echo ${BASH_REMATCH[1]};
}

解決!

これで、このコマンドはどのbrew パッケージから来たかわかる

takuya@~$ which-brew ls
coreutils
takuya@~$ which-brew find
findutils
takuya@~$ which-brew ffmpeg
ffmpeg
takuya@~$ which-brew chrome-canary-cli
chrome-cli

コレは嬉しい。

これで、コマンドがどのBrew由来かわかるよね。which して realpath するの、面倒だったもん。

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

which コマンド

which コマンドについて

which コマンドは、あってあたりまえで、特に詳しく調べることもしなかった。今回はwhich コマンドを見直してみることにする。

そもそも which コマンドって?

which コマンドは、指定されたコマンドがPATHの何処に出現するか調べてくれる。

利用場面は、此のコマンドどこにあるんだっけ?ときにつかう。which PATH is this comand in ?の疑問に答えてくれる。

たとえば、次のように使う。

takuya@~$ which bash
/usr/local/bin/bash

which コマンドを更に追求する

「此のコマンドどこに?」の「このコマンド」の定義を広くする。何もしないと、PATHを探すのだ。だけれどもコマンドはファイルとは限らない。funtion alias もコマンドとして機能する.これらを探せるのが which

だけど、その検索範囲は、非常に限られている。詳細に指定してあげなくてはいけない。

which ls 

これだと PATHから探してくれるだけだ。

このls は何の? which is ls

そのため、ls といっても、実際に使っているlsはどれだ?。この目的だと、type コマンドを用いて確認することが多いのだ。

takuya@~$ type ls
ls は `ls --color=auto --time-style=long-iso ' のエイリアスです

なので、which を使う場面は限られて、殆どの場合 type コマンドで済ませることが多いのだ。というか、実直な感想を言えば、type 万能。type 万歳。でも今回は、コレを which でやることが出来ることを知ったのでマトメていくのだ。

which コマンドで 検索に alias も含める。

エイリアスを含めるには、which に標準出力で エイリアスの一覧を与えて、 --read-alias / -i オプションを付けるのだ。

alias | which --read-alias ls

実行結果

takuya@~$ alias | which --read-alias ls
alias ls='ls --color=auto --time-style=long-iso '
    /Users/takuya/.bin/ls

which コマンドの検索に function も含める。

function を含めることも出来る。 declare -f で関数一覧を取り出して、--read-functions を使ってwhich の検索に関数を含めることが出来る。

declare -f | which --read-functions find

実行例

takuya@~$ declare -f | which --read-functions find  -a
find ()
{
  #略
}

alias も function もどちらも検索対象にしたい。

alias も function も PATH もまとめて、全てからからコマンドの存在を調べたい。 この意図だと ( alias; declare )とサブシェルで2つを同時に与える。

(alias;declare -f) | which --read-alias --read-functions--read-functions 
# またはグループ化で。 { alias;declare -f; } | which --read-alias --read-functions  find

実行例

takuya@~$ (alias;declare -f) | which --read-alias --read-functions  ls
alias ls='ls --color=auto --time-style=long-iso '
    /Users/takuya/.bin/ls

ここまでやるなら、もう type 使うよね?ねー

同名のコマンドをすべて列挙する

-a オプションを付ける。

実行例

takuya@~$ which -a bash
/usr/local/bin/bash
/bin/bash

コマンドが何処にあるか調べる意図だと -a のオプションが一番良いね。

ぶっちゃけ type でよくね?

調べるだけなら、type でいいんです。type でね

個人的には、 which は コマンドの探索 。 type はコマンドの判別に使っています。ただ、使い分けなくても which だけでも十分用途に足りるんだ。と感心してました。

which の活用法

which は type と違い、コマンドのフルパスが返ってくる効果があります。これを利用して、フルパス指定コマンドで場所がわからないときなどにとりあえず which しておけば便利です。。

$(which find) -type d

まぁこちらも env コマンドがあるから env でもいいですがね. env だと引数を与えられませんし、そもそも実行方式が違うんだ。

## できる
$(env find)
$(which find) -type d
$(which find) -type d ~/Desktop
## できない
$(env find) -type d ~/Desktop

which だけじゃわからないもの

which だけじゃ足りないことがある。
関数はわかりません、シンボリックリンクはたどってくれません。

関数は見えない。

takuya$ function grep { echo ... ; }
takuya$ which grep 
/bin/grep

関数は見えないので前述の通り type を使いましょう。

フルパスは見えない。

シンボリックリンクされているコマンドの実体パスはもちろん見えません。 home brew のようにコマンドファイルがsym link にされていの時があるのだ。

takuya@~$ which gls
/usr/local/bin/gls
takuya@~$ realpath /usr/local/bin/gls
/usr/local/Cellar/coreutils/8.26/bin/gls

このように実体ファイルを知りたいときには、 realpath ( または readink) を重ねがけする必要がある。

readlink $(which gls)

これはめんどくさいので、ショートカットにしておくと便利

function which-realpath(){
  realpath $( which $@ )  
}

which -a で全部

あれ、確かインストールしたはずだけど、パスがおかしいのかとか。同名のコマンドがいくつもあるときに、パスの優先順位を調べるとき whereis / which --all が便利です。

which -a  node 
which --all  node 

なお類似にコマンドに whereis があります。

whereis というコマンドでも類似のことが出来ます。

ただ、whereis は おもに locate の代わりになります。コマンドそのものを探すわけではありません。

windows だと where ですね。

whatis / who / which / whereis / whoami / while など whから始まる コマンドは何かと便利だ。

参考資料

  • man which ( GNU which )

関連記事

which コマンドでPATHにある同名のコマンドを全部列挙する - それマグで!

2019-08-23

記述を修正

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

Kindleストア : 【50%OFF以上】IT書合同キャンペーン(4/13まで)

全件を一覧できるようにしました。全商品取り出したはずだけど、今年もコレといったものはないですねぇ

書籍一覧

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

アカウントのパスワード復活で生年月日はやめてほしい

個人情報をクレクレするのは良いけれど。生年月日を使うのはやめてほしい。

f:id:takuya_1st:20170404035852p:plain:w300

生年月日を漏らされるとめんどくさい

個人情報が漏れたときに、生年月日が流出すると本当にめんどくさいことになる。

クレジットカード番号なら変更可能だが、名前、住所、生年月日、職場は変更することが困難だ。

変更が困難な情報を預けるのは本当にめんどくさい。

どんなにセキュリティを確保されても漏れるときは漏れる、個人情報が必要な場面はそうそうないでしょう。

しかも、名前、住所、生年月日、職場は公開情報。

これらの公開情報とアカウント情報を紐付けられるのがめんどくさい。

この会社が漏らしたら紐付いた情報がドンドン連鎖的に照合されていく。。。

だから本当の生年月日・名前など書くはずがなく。

公開情報で認証するのは本当に危険。

アカウント乗っ取りのリスクを考慮するなら、公開情報で認証するなんてナンセンスだと思いませんか。

この会社のIDの場合

  • メールアドレス
  • 生年月日
  • 電話番号
  • Pontaカード番号

で認証をしています。すべて公開情報です。まいったな。

かりにメールアカウントが乗っ取られていたらそれは此の会社の責任ではないだろう。だからメールとアカウント復活用の予備メアドだけで十分なんですよ。それでも足りないなら、ユーザーが希望してSMSによる2要素を追加することも出来るってのがお互い楽なのに。なんでこういうエセキュリティが増えちゃうんだろうか。

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

何のためにメアドを変えられるか理解してない。

ポンタにログイン使用して気づいた。

尚、Gmailau one netのメールサービス、Livedoorメール、HotmailYahoo!メールなどで1つのメールアドレスとして扱われる、複数のメールアドレスや任意の文字列を付加したようなメールアドレスについては、同一と判断します。 さらに詳しく

馬鹿なの?

Gmailエイリアスのメアドを同一に扱ってしまうと、「そのメアド」が登録されているかわかってしまう。

つまり、ユーザーIDが漏れてしまう。

どういうことか?

example@gmail.com
example+nospan@gmail.com
exam.ple@gmail.com

これらを「別の」メアドとして使えること、それ自体に意味があります。スパムよけではなく、「ログインIDの隠蔽」という意味があります。

ログインIDとして同じにしてしまうと、上記のメアドはすべてコレに丸められて

example@gmail.com

このオリジナルのメアドでログインが可能になってしまいます。

更に恐ろしいことに、そのメアドが登録されているかどうかの情報が漏洩します。

これはセキュリティ的には由々しき事態です。

エイリアスを同一視=セキュリティレベルの低下

サイトごとにメアドとパスワードを変えられません。

メアドとパスワードの両方をサイトごとに変更することでセキュリティを確保できているはずが、全く意味がなくなります。

Gmailエイリアスを同一視してしまうとセキュリティレベルの著しい低下を招きます。

なぜ、ログインにエイリアス使うのとセキュリティレベルが向上するのでしょうか

なぜか?

メアドは「公開情報」だからです。

メールアドレスのような公開情報でログインを可能にしてしまうと、<パスワード>の強度だけが純粋にセキュリティの強度です。

そのため、メールのエイリアスを使えることで、セキュリティを強化することが出来ます。つまり公開情報でのログインを不可にすることが出来る。

メールエイリアスを許可することでログインIDを不可視にすることが可能になっています。つまり攻撃を受けにくくなります。

また、別のサイトが「おもらし」してしまったとしても自サイトのログインのブルート・フォース攻撃には使われることはありませんし、もちろん同一IDではないでログインを拒否することが出来ます。

これが、メールエイリアスを使う最大の理由でしょう。現代の自衛策です。

ログインIDにメアドと電話番号は危険

たとえば、ドコモショップではドコモIDをドコモのキャリアメールにするように指示されます。まっぴらごめんです。

たとえば、au では au id が電話番号です。恐ろしいことです。

au id の場合は、2段階認証をオフにすることが出来ますが、乗っ取り事例を紹介されてトコトン警告されます。大きなお世話です。電話番号でログイン可能にしてるからそんな事例が起きたとしか考えられない。ランダムな文字列をパスワードだけでなくIDにも採用すれば危険性は少し減少する。

エイリアスはスパム避けだけではない。

何のためにメアドが複数作れるか全く理解出来てないんじゃなかろうか

どこかのサイトがおもらしして、メアド同一で乗っ取られたら、責任取ってくれるんでしょうかね。

エイリアスのメアドに変更が絶対に不可能です。

ドット入れると強制的にメアドを変えられません。この会社は本当にGmailエイリアスが嫌いなようです。

f:id:takuya_1st:20170404034612p:plain

公開情報で認証するのやばいよね。近づかないほうがいいです。この会社も

あ、、絵合わせセキュリティですか。

この会社、マジで近づかないほうが良さそうですね。

f:id:takuya_1st:20170404034005p:plain:w200

メールエイリアスが意味を失いつつある。

複数登録が多くなると、重複登録を許してしまうとか、本人確認がめんどくさいとか、会社の個人情報の収集の目的や、キャンペーン重複登録をさせたくないなどの一方的な理由でセキュリティレベルを下げられるのは全く嬉しくない状況が起きている。

仕方ないので、メールエイリアスicloud.com を使いましょう!

au id や livedoor メールを チェックするのに @googlemail.com @me.com を調べないのは本当にアホですね。ザルすぎて頭オカシイ

Pontaカードやめよう

個人情報の乞食されるのでも、多少はメリットあるから使ってましたが、今日から一切使わないことにします。

ローソンは頻繁に使うので、ポンタやめてdpoint にします。

f:id:takuya_1st:20170404042409j:plain:w300

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
alias rm='trash-put'

2017-05-14 修正

trash-rm は ゴミ箱の中から指定ファイルを消すものでした、勘違いです。

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

SpeakerDeck をオフラインで見たい

Speaker Deck で良さげなスライドをEvernoteに溜め込みたいなと思った。

ブックマークしてても検索出てこないし。どうしようかな~っておもって。とりあえずダウンロードしてみることにした。

URLをスクレイピングするのに asyncio使おうとしたけど、あんまり早くならないし、 コードは煩雑だし。muliprocessは良く出来てるけど、それするくらいなら、 xargs でマルチプロセス作ったほうがずっとスッキリしてて楽だった。

speaker-deck.py

gist.github.com