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

それマグで!

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

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

Linux でwinrar のrarファイルを圧縮展開・rr3% つける。rarで文字コードも嬉しい?

linux rar

rar コマンドでファイルを圧縮

tar とほぼ同じ c の代わりに a

rar a  -rr3p ファイル名.rar 追加

実際にヤってみた例

takuya@~/Desktop$ rar a -rr3p out.rar  ScrenCaptured_2016-06-2*

RAR 5.30   Copyright (c) 1993-2015 Alexander Roshal   18 Nov 2015
Trial version             Type RAR -? for help

Evaluation copy. Please register.

Creating archive out.rar

Adding    ScrenCaptured_2016-06-22_20.31.34.png                       OK
Adding    ScrenCaptured_2016-06-24_13.23.18.png                       OK
Adding    ScrenCaptured_2016-06-24_14.20.06.png                       OK
Adding data recovery record
Done

a はファイルを追加する

rar a ファイル名.rar 追加したいファイル 追加したいファイル 追加したいファイル 追加したいファイル

ファイル名を決めたら、追加される。ない場合は新規作成される。

rar のファイルの中身を一覧する。

rar l out.rar
unrar l out.rar

指定ファイルを消す。

 rar d out.rar  test.html

指定したファイルを削除する。

フォルダを丸ごと放り込む

rar a out.rar dir/

末尾のスラッシュはなくても大丈夫

rar コマンドのインストール

Debianでは次のようにして手軽に取得できた

sudo apt install rar
sudo apt install unrar

macOS X では、公式サイトからコマンドラインバイナリを持ってきた http://www.rarlab.com/download.htm

ライセンスが trial が気になる。けど

unrar に関してはライセンス制限なし

展開については制限なしですね。

zip の文字コード問題。

windowsの zip archive ファイルには、「文字コード問題」という、とてもめんどくさい問題が横たわります。

unzip すると文字化けするので pythonruby でunzip コマンドを「再発明」する必要があったり、unzip コマンドにパッチ当てたりすることになる。*1

rar を使えば文字コードを解決できるんじゃ

そうえば、WinRAR のファイルを展開して文字化けしたことがない。内部的にUTF-8で保存されているようですね。

*1: というかunbutu jp も提供してる unzip の cp932 パッチは debian のpatch や unzip 本家に取り込んでくれないのかなぁ

JSでマウスイベント(クリック)を起こす/ mouseEvent を Dispatch して起動する

javascript selenium

Javascript でクリックイベントを起こす。

クリックイベントを起こさないとテストできないページが有る。

クリックイベントをFireするには、initEvent と dispatch イベントを使う。

マウスイベント

var me = document.createEvent("MouseEvents")
me.initMouseEvent("click", true, true, window,0,0,0,0,0,false,false,false,false,0,null)
window.document.body.dispatchEvent(me)

マウスイベントが発行された確認

window.document.body.dispatchEvent(me)
  document.addEventListener("DOMContentLoaded",function(){
      document.body.addEventListener("click",function(e){
        console.log(e)
      },false)
  },false)

これでいべんとが発行できる。

特定のElementをクリックする

var ele = document.querySelector("#target_id");
ele.dispatchEvent(me)

結構便利。

注意点:contextmenu は動かない・・・

テスト用はちょっと違う動作をさせる必要がある。

ここはそのうち調べないといけない。

参考資料

php の realpath ってファイルチェックも兼ねてた

php

realpath を何となく眺めていると。

ファイルが存在しない時は false を返すと書いてある。え、そうなのか。当たり前だけど、気づいてなかった

realpath() returns FALSE on failure, e.g. if the file does not exist.

file_exists した後に、realpath で整形してた。

realpath 一個で十分でした。辛い

<?php

if (!(  $fname = realpath("../../file") ) ){
  return 0
}

これで良いんだ。。。file_exists なんてそんなに出番なかったんだ。