技術メモのかけら

内容はもとより調べたことすら忘れてしまうので個人的な技術メモを残しているブログです。Qiitaの記事にするほどでもない細かいネタを投稿します。

Re:dashのユーザ削除

GUIで操作できないので、コマンドから行う必要がある。 自分の場合はDockerでインストールしたので、下記コマンドを実行して削除。 画面で操作できるようにならないかな。 docker exec -it {コンテナID} ./manage.py users delete {メアド}

botからのアクセスを拒否する

拒否してるのにbeingbotがしつこくアクセスしてくるのでユーザエージェント指定で弾くApacheの設定を入れた。 httpd.confあたりに書いておく。 BrowserMatch "beingbot" bot <Directory /> order allow,deny allow from all deny from env=bot </Directory>

readlineが7にバージョンアップされてgradleとpsqlが動かなくなった

何もした覚えがないのだが、ある日急にgradleとpsqlが動かなくなった。 $ gradle tasks dyld: Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib Referenced from: /usr/local/bin/bash Reason: image not found [1] 52259 abort gradle…

RedmineでSVNの差分を見ようとすると「リポジトリに、エントリ/リビジョンが存在しません。」エラーになる

Passenger+ApacheでRedmineを運用しているが、SVNのコミットの差分を見ようとすると「リポジトリに、エントリ/リビジョンが存在しません。」とエラーが表示されるようになった。 コミットメッセージなどは取得出来ているので、リビジョンが存在しないと言わ…

nkfコマンドでファイルの文字コードと改行コードを調べる

nkf –guess filename.txt 改行コードが混在してたらどうなるんだろう。後で調べよう。

xargsコマンドで変数を使う

-i変数名 でパイプで渡された値を変数に格納して処理できる。 gitのタグ一覧を取得してまとめて処理する実行例はこんな感じ。 git branch -r | egrep --text "tags/" | cut -d / -f3|xargs -iVAR git tag svn/VAR svn/tags/VAR

grepでマッチした箇所をハイライトする

grep --color=auto yamada /etc/passwd grepの--colorオプションを付けるとヒットした文字がハイライトされる。 どこがヒットしたか目で追うのはしんどいので大変便利です。 リダイレクトやパイプ使用時にはハイライトしないようにしてくれるので、基本 auto…

シェルの$括弧

$(コマンド) バッククォートで括ったのと同様にコマンドを実行できる。 ネストできたり開始終了が分かりやすいので、こっちを使ったほうが良い $((演算)) exprでやったような演算ができる。$(expr 1 + 1) とやるよりスマート

シェルスクリプトのオプション

set -u 未定義の変数を参照するとエラー・メッセージを表示する set -e コマンドが0以外のステータスで終了した場合,一部の場合を除いて即座に終了する set -C 存在するファイルに対して、>でリダイレクトしたらエラーにする

viでコマンドの実行結果を挿入する

vim

:r!コマンド と入力する。 :r!date :r!ls

jconsoleでリモートのTomcatを監視する

毎度忘れるのでメモしておく。 事前準備としてTomcat起動のjavaオプションに以下を追加しておく。 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=7900 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.aut…

portの使用状況を確認する

すぐ忘れるのでメモ。以下のコマンドで一覧を表示できる。 lsof -i ポートを指定して調べることもできる。 lsof -i:<port_not></port_not>

コンフリクト時に共通の祖先の情報を書き出す

git

あらかじめgit configしておく。 git config --global merge.conflictstyle diff3 そうすると、コンフリクト時に 共通の祖先の内容も書き出される。 func main() { <<<<<<< HEAD fmt.Println("h2") ||||||| merged common ancestors fmt.Println("Hello") ==…

マージ済みのブランチを一括削除するワンライナー

git

git branch --merged | grep -v '*' | xargs -I % git branch -d %

Macで古いバージョンのJavaをアンインストールする

インストールされているJavaのバージョンを確認する $ /usr/libexec/java_home -V Matching Java Virtual Machines (2): 1.8.0_40, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home 1.8.0_05, x86_64: "Java SE 8" /L…

psqlのバックスラッシュコマンドで実行されているSQLを確認する

-Eオプション付きでpsql を起動すると、バックスラッシュコマンドの裏で実行されるSQLを確認できる。 $ psql -E psql (9.1.14) "help" でヘルプを表示します. bill=# \dn ********* クエリー ********** SELECT n.nspname AS "Name", pg_catalog.pg_get_user…

第3回 日本Seleniumユーザーコミュニティ勉強会に行ってきた

2016/02/06 第3回 日本Seleniumユーザーコミュニティ勉強会 昨年のテスト自動化カンファレンスに続き、テスト系のカンファレンスに行ってきました。 第3回日本seleniumユーザーコミュニティ勉強会 from Nozomi Ito tgtr.ListWidget({id:'935012',url:'http…

systemctlの超基本コマンド

ランレベルがなくなり、ターゲットやらユニットになったりしたそうだが、 詳細はさておき、ぱっと出てこないのよく使うコメンドをメモ。 # サービスを起動させる(service httpd startの代わり) systemctl start httpd # サービスを停止させる(service htt…

ファイルをgrep置換する

sed -i "s/abc/123/g" hoge.txt Macでやるとsed: 1: "hoge.txt": extra characters at the end of commandとか怒られた挙句、ターミナルをクリックすると変な記号がコマンドラインに挿入されるようになったのでターミナルを一度落とす羽目になったけど原因は…

ヒアドキュメントの出力をファイルに書き出す

ヒアドキュメント自体たまにしか使わないし、ファイルの出力の仕方も直感的に出てこないのでメモ。 cat <<EOF > php_info.php heredoc> phpinfo(); heredoc> EOF</eof>

改行コードをCRLFからLFへ変換する

trコマンドでCRを削除すれば良い。 tr -d \\r < hoge.txt > huga.txt

CentOSのバージョン確認

メモ:CentOSのバージョン確認 # cat /etc/redhat-release CentOS release 6.5 (Final)

nilを判定する

type Point struct { x, y int } func main() { point := Point{x: 20, y: 50} if point == nil { fmt.Println("point is nil") } } こんな感じにpoint == nilと比較するとエラーなります。 cannot convert nil to type Point 要は値とnilを比較するのがダメ…

ファイルの文字コードを調べる

nkf --guess test.txt

Subversionのパスワードを変更

毎回パスワードを入力するのは面倒なのでTortoiseSVNを使うときパスワードを保存するようにしているのだが、Subversionアカウントのパスワードを変更したら問題が発生した。 SVN Updateするとパスワードを聞かれたので新しいパスワードを入力。 パスワード保…

Textareaをリサイズできないようにする

Chrome、Fire Foxはテキストエリアがリサイズできてしまう。 あいうえお かきくけこ さしすせそ 可能なのは良いけど、デフォルトがリサイズ可能なのは困るケースが結構ある。 調べたら、こんな感じにCSSで制御可能なようだ。 textarea { resize: none; } あ…

SafariでOsakaフォントでBold表示すると直後に変な余白ができる

ネットで調べても分からなかったが、MacOSのSafariでOsakaとかOsaka-Monoをfont-weight:boldで表示すると直後に変な余白が空いてしまう。 ここのフォントは`Osaka`です。ここは太字でけど、MacのSafariで見るとこの後に変な余白が開いてしまうのですよ。ここ…

IE9でoverflow:autoしたボックス内のテーブルでhoverするとレイアウトが崩れる

テーブルにhoverするとテーブルの下にある要素がどんどん下に下がっていく変なバグがあった。 IE7、8、10、11は大丈夫なのになぜかIE9だけで起きる。 結果的にはIE9のバグっぽい。 問題のテーブルは横長になるので、overflow-x:auto;にしたdivで括っているの…

Webkitで罫線が正しく表示されない

border-collapse:collapse;とcolspanを組み合わせると罫線がおかしくなるバグがあるようです。 自分が出くわした事象はtableの4辺に罫線を指定しているのに、colspanした直後のcolspanしていない行のborder-rightが表示されていないというものでした。 sepa…

placeholderについてのTIPS

css

サポートしているタグ input(type=text, password, search, url, tel, email), textareaで使える。 DOCTYPEはHTML5じゃなくても問題ない。 サポートしているブラウザ 主要なブラウザは問題なく使えるが、IEは10からサポートされた。 スタイルを指定しないと…

データを16進でダンプする

trimで消えない謎のスペースがあって、何なのか16進で見たいのでやり方を調べた。 select encode(name::bytea, 'hex') from human; これで調べたら, C2A0が入っていることが分かった。 HTMLで&nbsp;ってのはよく使うけど、これは文字コードのNBSP。 アプリの…

シェル変数の文字列展開

パターンにマッチする文字を置換文字に置き換える 書き方: ${変数/パターン/置換文字} $ v="newItem" $ echo ${v/new/old} oldItem 先頭から文字列にマッチした部分を取り除いて出力する 書き方: ${変数#文字列} $ v="newItem" $ echo ${v#new} Item 末尾…

ファイルの拡張子を置換する

ファイルが1つだけだったらmv test{.log,.txt}のようにシェルのブレース展開を利用して行える。 mv test.log test.txtって普通の書き方と比べて楽になっている訳じゃないが、スペルミスが減るところが良いかも。 あと、ファイルが沢山ある場合はLoopを回して…

キャメルケース<=>スネークケース変換

右クリックして選ぶ方法もあるけどショートカットを覚えてしまった方が断然楽 ctrl+alt+K

簡単なオブジェクトのディープコピー

オブジェクトを楽にディープコピーするコード。 性能面の問題やSerializableなメンバーじゃないとコピーされないとか問題があるけどメモ。 private <T> T deepCopy(final T target) { final ByteArrayOutputStream bos = new ByteArrayOutputStream(); final Ob</t>…

IE9で大量のテーブルを書き出すときは要注意

IE9に限って、tableを大量(何件以上がダメとか良く分からない)に書き出すと、部分的にセル位置がずれてレイアウトが崩れる問題が発生。 リリース直前でバタバタしてる中、バグチケット切られて泣きそうでしたが、例によりMS様のバグなようです。 タグ間の…

列の型をDateからVARCHARに変更する

またいつか必要かもしれないのでメモ。 ALTER TABLE table_name ALTER COLUMN column_name TYPE VARCHAR(8) USING CASE WHEN column_name IS null THEN null ELSE TO_CHAR(column_name, 'YYYYMMDD') END; USINGで条件分けをするパターンは他でも使えそう。

Office 文書内のハイパーリンクを開くと Cookie が紛失する

自分が開発しているシステムで発生した事象。 いきなり業務画面のURLを指定された場合に、ログイン画面を割り込ませる実装をSpringSecurityを使って実装しているのだが、エクセル文書内のハイパーリンクからの起動だと正しく動かない現象が発生した。 現象と…

使用中のポート番号を調べる

80番とか8080番とかよく使われるポートが競合してしまうことがありますが、どのプログラムが使用しているかを以下のコマンドで調べられる。 netstat -anob 結果は下記のように出力される。 プロトコル ローカル アドレス 外部アドレス 状態 PID TCP 0.0.0.0:…

Retinaディスプレイかどうかの判定方法

とりあえずメモ。以下で判定できるらしい。 var isRetina = window.devicePixelRatio > 1,

postgreSQLに接続するシェルのテンプレート

個人的メモ。 たくさんのDBにまとめて同じSQLを実行するテンプレート。 SQLをヒアドキュメントで書くようにしてるけど、長くなるようだったら外出しにしよう。 #!/bin/sh #DBサーバとインスタンスの指定 SETTINGS=("dbserv01 db01" "dbserv01 db02" "dbserv0…

大量のファイルの文字コードを一括で変更する

個人的メモ。 ワイルドカード指定でファイルの一覧を取ってきてforで回しながら文字コードを変換する。 for f in data/**/*.csv; do iconv -f MS932 -t UTF-8 "$f" > "$f.utf8"; done

グローバル変数とグローバルプロパティ

まず、グローバル変数とは関数の外で定義した変数のこと。 var hoge = "huga"; ブラウザ環境ではグローバルオブジェクトのwindowに変数として登録される。 windowは省略できるので、この2行はどちらも同じ結果になる。 console.log(hoge); console.log(wind…

undefinedの判定方法

undefinedは次の場所に現れる。 初期化していない変数の値 未定義のプロパティの値 渡されなかった関数の仮引数の値 return文がない、またはreturn文に式がない場合の関数の戻り値 void演算子の結果 undefinedかを判定する方法について少し調べたので自分な…

Java7でcoberturaを使用する

Java7を使ってcoberturaがエラーで動かない。 java.lang.VerifyError: Expecting a stackmap frame at branch target 81 とりあえず直し方だけメモっておく。junitを動かすときのJVMへオプションとしてUseSplitVerifierを使わないように指定する。 <junit fork="yes" printsummary="yes" haltonfailure="no"> <jvmarg value="-XX:-UseSplitVerifier" /> </jvmarg></junit>

ntpで時刻を同期

前回タイムゾーンを日本に変更したが、そもそも時刻がずれていたのでntpの設定をしておくことにする。 まずはntpをインストール # yum -y install ntp さっそく時刻を合わせてみる。 # ntpdate ntp.nict.jp 23 Mar 09:26:36 ntpdate[3960]: step time server…

CentOSのタイムゾーン変更

Jenkinsのビルドログで表示される時間がUTCなのをJSTに変更しようと思いJenkinsの設定周りを調べてみたがそもそもOSのタイムゾーンの問題だと回り回ってやっと分かった。 vagrantのboxを落としてきて、timezoneを変更せずにそのまま設定を変えずに使っていた…

Windowにtoolボタンを追加する

オプションにこんな感じに配列で渡すだけ。 tools:[{ iconCls:'icon-add', handler:function(){ alert('add'); } },{ iconCls:'icon-remove', handler:function(){ alert('remove'); } }]

シンプルなWindow

EasyUIで子Windowを表示する。 本気で使うときはあり合えないがスクリプト書かなくてもHTMLだけでも表示できる。 <div id="win" class="easyui-window" title="My Window" style="width:300px;height:100px;padding:5px;"> Some Content. </div> 複雑なWindowもhtmlだけで書ける。

MySQLでcsvをimport

mysqlコマンドを実行するマシン上のファイルをimportする。 mysql> load data local infile 'hoge.csv' into table post_code character set sjis fields terminated by ',' enclosed by '"' lines terminated by '\r\n'; エラーになった。 ERROR 1148 (4200…