Yabu.log

ITなどの雑記

MacBook AirからMacBook Proに買い換えた

長いこと2012年のMacBook Airを我慢して使っていたが、そろそろ限界を感じるようになったので普段使いのPCをMacBook Proに買い換えた

スペック等の変化

ディスプレイがめちゃくちゃ綺麗。AirTNTディスプレイの品質のが低すぎることもあってかギャップがやばい。

無印ではなくproを選んだ理由は4Kモニタに60fps出力をさせたいため。 だが、普通に使っているだけで結構熱を持つので4Kモニタに接続して利用とかスペック的に現実的じゃない気がする。

touchbarモデルだと指紋認証が入るのとusb type cのポートが2つ多い 特に後者の恩恵は大きく、usb type cで充電するため左右にポートがあると電源が近い方に受電ケーブルがさせるので絶対便利だと思う。

touch barモデルにしておけばよかったと後悔。

初期設定とか

ダウンロードしたもの

ダメなところ

ハードウェアには特に文句はないが、OSの初期設定でデフォルトで

  • ユーザー名が本名ローマ字
  • PC名が<ローマ字本名> no-mac-book-pro*3

になってしまう。

ターミナルを使うことがよくあるが、そこに長ったらしい俺の本名が入る。

パソコン名は速攻変更したが、ユーザー名を変更しようとすると

警告:これらの設定を変更すると、このアカウントが壊れて、ユーザーがログインできなくなることがあります。

なんて物騒な表示が出てきたのでユーザー名の変更は諦めた。

なんとなく新しいものを買ったのでバックアップから復元せずに新しい環境でスタートしようと思ったのだが。 素直にバックアップから復元した方が良いみたいだ。

*1:Macに限らず世間一般のマウスのデフォルト感度低すぎない?

*2:バージョンアップデートでこういう変更入れるのやめませんか

*3:うろ覚え

Chrome Extension作りを始めた

先日のエントリーに拡張機能を作ろうかなとかいたので、色々調べて見た。 本当は普段使っているsafariの拡張を作ろうと思ったが、色々敷板が高かったので、まずはchromeで作ってみる。

とりあえず昨日の夜と今日の夜でここまでできた。

f:id:yuyubu:20170920203746p:plain

chrome.tabsクラスのプロパティを吐き出してるだけ。。。

https://developer.chrome.com/extensions/tabs

iconはイラストやのものを使用した。 hello worldっぽく地球儀の絵を選んだ。

現在アクセスしているサイトのurlは取れることがわかったので、 あとは

  • 禁止サイトへのアクセスを感知し、代理サイトに飛ばす処理
  • アクセスを禁止したいサイト、飛ばし先のサイトのURLを設定する画面
  • 各種設定したurlをブラウザに保存する方法

ができれば目的のものは作れると思う。

ソースは

https://github.com/yuyabu/websiteInfomation

に置いた

Javascript難しい。

PS.ネスぺの勉強?知らんな

エクセルやテキストファイルからコピペでSQLのIN句が作れるツール

を作った

https://yuyabu.github.io/InClauseGenerator/index.html

github.com

この投稿を見てふと思いついた。

qiita.com

SIやってるとこのシチュエーションはよく発生すると思う。

excelとか使って無理やりin句組み立ててるような人なら、こっちの方が労力小さくて済むかと思う。

普通は皆様どうやってるんでしょうか?私はsakura editorで置換の履歴から'$1',的なのを探して使いまわしてるけど もっと効率的なやり方があれば教えてください

ちなみに今回からdocument,commitメッセージを全て英語にした 次からはテストコードも入れなきゃな・・・

常に英語を使う。
 これが絶対的に大事。 • ロシア語わからん問題 • 英語を使うことは、広くコントリビュー ションを受け入れますという意思表示 • 日本語で来た issue は即閉じるくら いの勢いで良い English! English! @tagomoris

あとPGの出来が悪いので後日リファクタリングする予定。 Indexの使い方とかひどいし可読性のかけらもない。

前のやつは今の俺のjavascriptスキルだとあれ以上リファクタリングのしようがない。*1基本pull requestは受け入れますので、PG/英語共に気に入らないところがあればガンガン送ってください。

あとマンツーマンで英会話教師もやってください

*1:基本Javaのつもりで書いてる。動かんところは適当にググってコピペで対応。本職の人から見ればひどいコードだろうけど、コードのできを気にして表に出さないというのはいつまでたってもできるようにならないと思うし、よくないと思う。

Kali Linuxを導入する

某セキュリティ勉強会に参加するためにKali Linuxを入手したいのだが・・・・

www.kali.org

こちらのリンクからisoをダウンロードしようと思うのだが、何度やっても途中で接続が切れる。

wiresharkで確認したところ

  • TCP out-of-order
  • dup ack
  • previous segment not captured

などの異常系パケットを受信した後向こうのサーバーからrstが送られてくる。

f:id:yuyubu:20170914214908p:plain

サーバーのIPアドレスを調べたところ、イタリアのサーバーらしい。

接続状態が悪いのかな?

日本にミラーってないのかな。

ダウンロードできるリンクを探る

普通のISOは何度やってもダウンロードできなかったので、手当たり次第にvm版などダウンロードしたところ

Kali Linux 64 bit VBox

がダウンロードできた。 これはvirtualbox用なのかな?

www.offensive-security.com

チェックサムの計算

MacOsでは公式記載の sha256sumがデフォルトで使えないので 以下のコマンドでチェックサムを計算する

$ shasum -a 256 Kali-Linux-2017.1-vbox-amd64.ova
9c1144090971ede73937ee6266013054252bff19b306ae8ec8b55f08249c1fcc  Kali-Linux-2017.1-vbox-amd64.ova

よし。サイト掲載のものと一致。 改ざんされてないことを確認

Virtual Box Extension Packなるツールが必要になったので入れた。

Downloads – Oracle VM VirtualBox

いざ起動。ディスプレイが表示できました。

f:id:yuyubu:20170916161936p:plain

定期的にアップデート確認しましょう

apt update
apt dist-upgrade
reboot

他設定

  • デフォルトのrootのパスワードがtoorになっているので変えた。
  • retina displayを使っている限り、1280x800の解像度でボケずに表示することができないらしいので諦めた。

整数倍の解像度を表示するくらい簡単にできそうなもんだが。。。。 ドライバ周りとか色々と大変なのかな。

Jesse Donat氏のCsvToMarkdownTableを日本語(全角文字)対応させたい

以前も紹介しましたが、csvからmarkdownの表を作るツールがあります

https://donatstudios.com/CsvToMarkdownTable

ただしこのツールは文字数をjavascriptのlengthで数えているため 全角・半角関係なく1文字で数えてしまうため、作成した表のplane textがずれてしまいます。

| 番号 | 
|----| 
| 1  | 
| 2  | 
| 3  | 

本当はこうなるべき*1

| 番号 | 
|----  | 
| 1    | 
| 2    | 
| 3    | 

一行目□■■■■□ ←二文字だが全角文字なので表示は4文字分の扱い
二行目□■□□□□ ←半角文字一字分のあとは三文字埋めのスペースが入るべき

markdownのコンセプト、plane text状態でも読みやすい、に反してしまうので、 なんとか日本語でもplane textの状態で表の形を保たせたいのですが。

maxRowLen[ii] = Math.max(maxRowLen[ii], ee.length);

ここのlengthの箇所を半角全角の表示スペースに応じた処理に変えれば動きそう。 だが、少し調べて分かったがjavascriptは半角・全角に応じて文字数を返す処理が標準で存在しないらしいので、半角全角を判定する方法を自分で考えて実装する必要がある。

まぁプロポーショナルフォントを使っている環境ではこんなことやっても意味ないんだけどね。

追記:sublime textの拡張機能でできるらしい。後日検証予定

*1:固定幅フォントじゃないからわかりにくいけど許して。。。

早速webツールっぽいものを作ってみた

昨日日記で書いた

自分も作ってみたいものが2,3ある。 日頃よくやってる置換とかはwebツール化して公開するのも良いかもしれない。

yuyubu.hatenablog.com

のことですが、早速作ってみた。

https://yuyabu.github.io/OrderByWithCaseExpressionGenerator/

github.com

元ネタは以前Qiitaに上げたこれ。

qiita.com

ひとまずはhelloworld的なものを作るつもりだったが、勢いで30分ほどで作ってしまった。 インデントすらされてないし、画面レイアウトの設計に全くカロリーを割いてていないため、使いにくいことこの上ないが、 ひとまず公開してみる。

他人がサービスをつくったとかアプリを作ったみたいな記事を見るたびに憧れるが、 自分が作ると細かいところに時間を使いすぎて、公開はおろか、完成までもたどり着かない。

今だと、TDDで作らなきゃとかCIもやらないとね。とか思って重い腰が更に重くなってしまうため、 ひとまず公開までにこぎつけるまでにカロリーが最小になるように決めて作業をした。 変数名とか全部適当だし、綴のチェックもしていない。 またjavascriptはほとんど書いたことがないため、わからないところは基本googleだよりで作っている。*1

レイアウトやリファクタリングは明日以降ちょっとずつやっていこうと思います。

日記を書いてて思ったけど、order by 対象のカラムがchar型だったら動かないな。。。。

PS. 適当なエディタがなかったので4年前に使い方を忘れたvimで書いた。 保存、終了やdd、pくらいしか覚えていない ビジュアルモードとかいうのがあったような・・・うーん思い出せない。

追記: ひとまず常にシングルクォーテーションで囲むことでchar型に対応した。 oracleの場合、charとnumber型を比較しようとするとchar型の方にtonumber()を適応するので、 この改修でnumber型の場合も一応使える。

ウソです(ヨ(* ´∀`)E)

case式では暗黙の型変換が発動しないようです。

単純CASE式では、exprおよびすべてのcomparison_expr値は、同じデータ型(CHAR、VARCHAR2、NCHAR、NVARCHAR2、NUMBER、BINARY_FLOATまたはBINARY_DOUBLE)であるか、またはすべて数値データ型である必要があります。

CASE式

はぁ.今日も会社あるのに徹夜でなにやってんだろう。

*1:専門のひとからすれば酷いコードになってしまっているとおもう。

お気に入りの小道具紹介(Webツール)

google翻訳みたいにテキストウィンドウが2つあって [変換]的なアクションのあるボタンがついているサイトで気に入っているものを紹介。

sqlフォーマッター

www-atl.blog.so-net.ne.jp

辞書や設計書から正規表現悪用活用してグッチャグチャのSQL作った挙句、 インデントが出来ないので困っていた。 こちらのツールでお手軽に整形できる。感謝。

EXCEL表テキスト化ツール

www-atl3.blog.so-net.ne.jp

一つ上と同じ作者様のツール。 tsvを上手く表に表現してくれるメールクライアントとかあるけど プレーンなテキストが必要とされるところでどうしても表が欲しい時に便利。 何?プロポーショナルフォント?知らんな。

CSV→INSERT文変換

CSV→INSERT文変換

ちょっとしたEXCELに残したバックアップとかからinsert文を生成できて便利。 まぁ最初はsakura editorで数回の置換で作っていたが、どうせ作っている人がいるだろうと思い 検索したら見つかった。感謝。

CSV→<table>変換

CSV→<table>変換

一つ上と同じ作者様のツール。 これで煩わしいtableタグともおさらば。 何?素敵なtableタグでデコレーションされたhtmlを読め?知らんな。

CSV To Markdown Table Generator

CSV to Markdown Table Generator — Donat Studios

Jesse Donat氏のツール。感謝。 この方のように、よく使うちょっとした小道具はさくっと作ってgithubで公開できるとカッコイイ。 私もやりたいが、javascriptは普段書かないから重い腰がなかなか上がらない。

difff

difff《デュフフ》

diffが入ってない貧弱な環境でかつ大人の事情でソフトを入れるのが面倒な時に重宝。感謝。 このツールのみサーバー側にpostをしているので気になる方は非推奨。 画面から受け取った文章のdiff結果を返しているだけでは?と思うかもしれませんが、 表示する際に結構凝ったことをされている。

ポートチェック

www.cman.jp

自分のグローバルIPとポートを指定することでパケットが通るかどうか確認することができる。

Exif確認くん

exif-check.org

ネットにアップロードされた画像からExif情報が確認できるツール。 うっかりSNSにアップロードした画像に自宅の位置情報が入ってて住所特定されるとか無いように確認しましょう。*1

最後に

自分も作ってみたいものが2,3ある。 日頃よくやってる置換とかはwebツール化して公開するのも良いかもしれない。

PS.ブログタイトルを変えました。また変えるかも。

*1:昔はこういうのよく聞いたけど最近聞きませんね。