タグ

ブックマーク / takuya-1st.hatenablog.jp (24)

  • jq で 条件にマッチするオブジェクトを取り出す where 句的なこと - それマグで!

    jq 便利ですよね。 jq 使ってます。みんなあれ整形程度にしか使ってなかったり、絞込にしか使ってない気と思うんですよね jq である条件を満たすオブジェクトを取り出したい SQLのselect where みたいに select {} where [].name = 'takuya' みたいな jq がかけたら最高なんですよ。 条件マッチしたノードを取り出す例 $ echo '[ { "a":1 }, { "x": 1 } ]' | jq ' .[] | select(.x) ' { "x": 1 } 出来るんです。マニュアルに有りました。ああ。これは最高だ。 単純なところから、見ていく いきなり select 見ても何のことかわからないので、単純なところから見ていくことにする。 単純な整形 jq を使って整形をするよくある例です。これは jq . と書いてます。つまりカレントノードを出

    jq で 条件にマッチするオブジェクトを取り出す where 句的なこと - それマグで!
    peketamin
    peketamin 2019/04/28
  • ベンチャーで働くこと - それマグで!

    なんか、ベンチャーで働くことのリスクをよく理解してなった。5年前。残業代請求してもめた。 最近は考え方が変わった。 残業代はもらうな。 残業代なんてもらっても、うれしくないでしょう。会社に負担を強いるのですから。会社つぶすよ?。ただでさえ、資金繰りが苦しい立ち上げ時のベンチャーなんだ。残業よりすることがあるはずだ。小遣い残業なんてクソらえだ。 仕事は早く終わらせる。 いつ潰れてもおかしくない。そのような綱渡りをするのだから、一番大事なのは自分の時間である。時間を会社のために使うもよし、自分に使うもよし。『自分の成長』と『会社の成長』がイコール。それが理想。それがベンチャーのいいところ。成長が会社と自分の両方に役に立つ。それにつきる。だから時間を作っては、健康・勉強・人脈作りに使おう。やっぱり残業はしてはいけない。 理想的な契約は「裁量労働制」だと思う。 仕事への充実感 その代わり、周りが

    ベンチャーで働くこと - それマグで!
    peketamin
    peketamin 2019/04/25
  • httpOnlyなCookieとは? - それマグで!

    Webkitの要素の検証でCookieをいじっていると、見慣れないカラムに気づきました。気になったので調べました。 HTTP というカラムにチェックボックスが入っています。 ブラウザの要素の検証でCookieを見ると、左から name , value, domain , path, expires , size ,http , secure と並んでいます。 (cookie) expires は期限 path/domain はオリジンの指定 secure は HTTPSだけで使われるCookie 、 http は? secure の逆??だとすると secure / http の両方のチェックが説明できないし、わざわざカラムにして表示しない。 だとすると、なんなのか? http のチェックはなにか? HTTP 通信ヘッダのみで使われるCookieという意味になります。 わかりやすくいえば

    httpOnlyなCookieとは? - それマグで!
    peketamin
    peketamin 2019/04/06
  • losetupとddでダミーファイルを作ってHDD操作の練習をする - それマグで!

    パーティションやフォーマットの練習のためにUSBメモリを買ってくるのはだるい 仮想ファイルシステム的に、ダミーファイルを作ってそれをHDD(ブロック)デバイスとして扱う。 ダミーファイルを作ってコマンドの練習ができます。 fdisk / gdisk / gparted / cfdisk に、cryptsetup や dm-crypt とか、LVMの練習に、mount や mkfs や btrfsを試したり。 過去にLVMやKVM+qemu や windowsなどでもやりました。記事が散財して見つけにくかったので、まとめ直しました。 お品書き パーティションやフォーマットの練習のためにUSBメモリを買ってくるのはだるい お品書き ダミーファイルの作成 ループバックデバイスとして扱う ファイルがブロックデバイス(USBドライブ的)に扱える 一つの接続したデバイスとしてのファイルを解除する。 す

    losetupとddでダミーファイルを作ってHDD操作の練習をする - それマグで!
    peketamin
    peketamin 2018/11/26
  • いまさらcrontabのメリットと書き方を見直す - それマグで!

    crontab って便利だけどわかりにくさがある crontab の書き方がおかしくてうまく実行されないとか、そんな書き方があったのか!となることがある。 なので、systemd を使って定期実行することが多いんだけど、そうすると今度は管理が大変になる。 なんだこの定期実行は!となってしまう。 crontab で敢えて書くことの利点 「なんで、いまらさ cron なんだよ。このオッサンは!!」と思われるかもしれない。でもcronを使うメリットは少なからずあると思います。 メリット cronで書くと次のようなメリットがあると思います。 一覧ですぐ確認できる /etc/cron.d に絶対ある コマンドの書き方がシンプル メール通知がかならずある。 書式はパターン化される。 最初に cron は「クロン」と呼びます。 ときどき、「くぅーろん」とか「くろーん」とか余計な母音や長音を含めている人が

    いまさらcrontabのメリットと書き方を見直す - それマグで!
    peketamin
    peketamin 2018/08/05
  • GitLabのIssueで作業時間の記録がとても楽だった - それマグで!

    gitlab のコメントに spend と書けばいい。 /spend 1h とか書くと、次のように、作業時間が記録される。 /estimate だと見積もり時間も併せて保存できる 実際に作業時間を記録した例。 仕事に掛けた時間がわかる。 タイムトラッキングを使うことで、課題管理を中心にしてどれくらいの時間をコードに費やしたか解るようになってて便利。 GitLabの課題管理は最強では コミット後に時間を記録 コミットを中心としたワークフローが割と便利なのです。gitlabタスク管理として最適になってた。 まずイシュー挙げて そこから作業開始して何処までやったをメモする。 作業内容をコミットし コミット・メッセージにIssue番号を紐付ける。 最後にissueに時間を書く シンプルで、割と導入に負荷もかけず、簡単にタイムマネジメントとタイムボックスで仕事ができる。 完了報告メールなども特に

    GitLabのIssueで作業時間の記録がとても楽だった - それマグで!
    peketamin
    peketamin 2018/05/16
  • ln -s で相対シンボリック作成のやりかたと解説。 - それマグで!

    ln -s で失敗した経験ありますよね? /var/www/log/index.php から /var/www/html/index.php へリンクする場合。こういうときに、相対パスをぱぱっと作れたら嬉しいでしょ? でも、ぱぱっと作れなかったり、相対パスを作ったつもりがリンク切れてたり。。そして、失敗を繰り返してしまう。 最後には、諦めてフルパスでリンク書いてたり。しませんか? ところが、フルパスだとバックアップフォルダ移動後にリンクが壊れたりする。 相対パスでリンクすると、あとで楽だもんね。 だから基的に相対パスで書きたいよね?うん。だよね???だよね??? というわけで、相対パスでシンボリックリンクの作り方。 お急ぎの人は 記事の最後へどうぞ。 次のようなリンクを作ってみます。 ファイルをリンクする場合に相対パスと絶対パスで作ってみます。 絶対パスなら次のように ln -s /va

    ln -s で相対シンボリック作成のやりかたと解説。 - それマグで!
    peketamin
    peketamin 2018/02/27
  • 文字コード変換コマンドの nkfの使い方と実例をまとめました。 - それマグで!

    Linuxで文字コード変換コマンドする方法 LinuxはUTF8が普通になりました。EUC環境もまだまだ多く文字コード変換が必要になることもあります。 文字コード変換コマンド nkf。 使い方 nkf オプション ファイル [> 出力ファイル]よく使うオプション オプション一覧 -e : EUCコードを出力 -s : Shift-JISコードを出力 -w : UTF-8コードを出力(BOM無し) -g : 自動判別の結果を表示 --overwrite : 引数のファイルに直接上書き覚え方 -w / -W 大文字小文字はペア。 入力は大文字、出力は小文字。sjis-> utf8なら、入力-S 出力 -w で -Sw。入力は自動判別で十分で余り使うことがないので最後に書いた。 使用例 文字コードチェック nkf -g readme.txt UTF8に変換 nkf -w --overwrite

    文字コード変換コマンドの nkfの使い方と実例をまとめました。 - それマグで!
    peketamin
    peketamin 2018/02/20
  • pyenv でインストールされたpipを含めてupgradeする方法 - それマグで!

    pyenv の python をバージョンアップしたい pyenv でインストールしたpython をバージョンアップして、pipをmigrate したい・ pyenv はバージョン毎にpip環境が作られるから、pyenv でglobal をアップグレードすると、使ってたpipのパッケージが移動されずに真っ白な環境になってしまう。 そこで pipのパッケージをmigrationしたいと思った pyenv-pip-migrate で一括アップグレード pyenv-pip-migrate という モジュールがあって、コレを使えばマルっとバージョンアップしてくれることがわかった。 pyenv-pip-migrateのインストール brew install pyenv-pip-migrate これをインストールしたら準備完了 pyenv でバージョンアップする 現状が次のバージョンなので、これを3

    pyenv でインストールされたpipを含めてupgradeする方法 - それマグで!
    peketamin
    peketamin 2018/02/18
  • curl とxpath でお手軽スクレイピング - それマグで!

    この記事は [クローラー/Webスクレイピング Advent Calendar 2015] の一つとして書きました。 公開遅いけど。ごめんね この記事の目標 curl コマンドの使い方を覚えつつ、スクレイピングをやっていきます。 この記事で紹介すること curl curl + grep curl -s curl + md5sum curl + md5sum + mail curl + cookie curl + cookie + xpath curl + xpath + xpath シェルスクリプト実行 用意するもの curl xpath libxml grep ruby nokogiri cookie pry 知っておくと便利な知識 css2 css3 xpath jq js への対応 基方針は「JSに対応しない」 だって、リクエストヘッダ見てたらわかるもん。 curl コマンドでWE

    curl とxpath でお手軽スクレイピング - それマグで!
    peketamin
    peketamin 2017/09/23
  • bashの似てて紛らわしいもの ``バッククオートと $() について - それマグで!

    似てて紛らわしいものシリーズ `バッククオートと $() について bash の記号で初心者泣かせの、似てて紛らわしかったり、使い分けがわからなかったり、読み方を間違えてパニックになる記号について書く `` と $( ) の違いのついて コマンドの実行結果で置換される記述`` と $( ) はどちらもほぼ同じものです。 ただし、圧倒的な使いやすさの特徴差があります。それは複数重ねがけするときです。 ネストできる$() とネストが不便な `` $() は重複して記述が圧倒的に楽です。 echo $( dirname $(realpath ~/Desktop/ ) ) 同じことを バッククオートで書くとエスケープ地獄です。。。これはしんどすぎる。 echo ` dirname \`realpath ~/Desktop/ \` ` ネストしないならバッククオートの方が読みやすいかも? ネストしな

    bashの似てて紛らわしいもの ``バッククオートと $() について - それマグで!
    peketamin
    peketamin 2017/08/21
  • 画像の比較をしてズレがないか調べる - それマグで!

    image magick で画像の比較をすることが出来る。 画像の比較をするにはいろいろな方法がある。 目で見てわかりやすい→WEBや校正用 機械的に見てわかりやすい→ダイアログなどプログラムのテスト 画像におおきな影が出る→動体検出 等と大きく分けて使い分けることになると思います。とくに機械学習などで自動化の事前処理に役立つと思います。 元画像1: 1.png 元画像2 : 2.png 機械的に色を見るやり方 比較方法 compare の場合 AE: 異なるピクセル数 PSNR: ピーク信号対雑音比 compare -metric AE 1.png 2.png compare-AE.png metric による違い AEとPSNR の違いを見ておきます。キャプチャ画面はAEの方が良さそう。 AE の例 PSNR の例 metric 一覧を見るには takuya@Desktop$ comp

    画像の比較をしてズレがないか調べる - それマグで!
    peketamin
    peketamin 2017/02/25
    Psで良くやってた
  • bashの使い方のまとめ記事のインデックス - それマグで!

    bash の使い方を1から見直すシリーズ シェルスクリプトは、もうbashで書いていいよね。bashが動かない環境なんてないんだし。 bash の紛らわしい記号や歴史的経緯によるPOSIXかき分けなどがあって、bashに特化した記事って少ないし断片的なので、色々と調べたことを再構成してまとめて記事にしました。 私自身 [[ / [ の違いが全然わからないので調べ始めました。その結果あれこれ知見が得られたので書きながら復習をしていました。 気づけば、bash の教科書的なものになってしまいました。 何かの役に立てばいいと思って記事のインデックスをまとめておきます。まだ一部書けてないですがそのうち書きます。 はじめに はじめに bashとPOSIX bashが動く環境 zshとの比較 変数と配列と数値計算 変数 配列のまとめ 組込 let による数値計算とインクリメント 連想配列(assoc

    bashの使い方のまとめ記事のインデックス - それマグで!
    peketamin
    peketamin 2017/01/06
  • sslh でport443 を有効活用して、sshもhttpsも同時に待ち受けする。 - それマグで!

    443ポート以外が絶滅しそうです あちこちでポートは閉じられています。ssh や sftp もプロキシ利用も、各種ポートでは、全く外部に出れず、接続できないネットワークが多いです。 TCP/IPなのにIPとポートを使った通信ができない、壊れたネットワークが当然になりました。 これらの接続制限にとても不便を感じることが多いです。 サーバー管理者の気分一つでポートが空いたり閉じたり、私が触ってたネットワークではポリシーが統一されず、クソネットワーク管理者に振り回されて、動くはずのものが動かず、不便なことが多かったのです。そこで仕方なく443を使っています。 私達が利用する端末では80/443 のポートの外部接続が閉じられることは少なく、443であれば通信できます。 そのため、443ポートに様々なアプリケーションを起動していると思います。 443 ポートとIPアドレスが枯渇する・・・ よほどのG

    sslh でport443 を有効活用して、sshもhttpsも同時に待ち受けする。 - それマグで!
    peketamin
    peketamin 2016/10/15
  • pythonでコマンド実行するには - それマグで!

    シェルスクリプトの代わりにPythonで書いてみる コマンド実行をする コレを使います。 import subprocess import shlex ret = subprocess.check_output(shlex.split("date -I")).decode("UTF-8").strip() print(ret) 詳しく書いていきます。 subprocess モジュールを使う subprocess はコマンド実行がちょっと面倒臭い。 import subprocess input_f = "player.swf" output_f = "radiko.png" cmd = "/usr/local/bin/swfextract -b 14 %s -o %s" % (input_f, output_f ) subprocess.call( cmd.strip().split("

    pythonでコマンド実行するには - それマグで!
    peketamin
    peketamin 2016/04/05
  • HTTPキャッシュ。なぜ嫌われるのか。 - それマグで!

    忌み嫌われるキャッシュたち。 キャッシュはどうやら、世間では嫌われ者のようです。 ScrenCaptured_2016-03-05_0.54.33 どうして、そんなにキャッシュされるのがイヤなんだろうか。 そもそもキャッシュってなんだっけ? キャッシュとは、更新されていないコンテンツ(画像、CSS、JS、HTMLDNS結果など)を何度も何度も取得行かずに済むように、クライアントPC側で保存し再利用する仕組み。 つまり、転送量の節約。無駄な転送を控える。非常にエコな仕組みであります。 HTTPのエコ。HTTPはエコなプロトコルだったはず。 3つのR です。 Reduce Reuse Remix 。複数のファイルをそれぞれ、別途管理して1つのページとして構成(Remix)する仕組みです。 ブラウザのキャッシュを利用するメリット 通信料の節約、画面表示の高速化、戻るボタン対応など。 ブラウザは

    HTTPキャッシュ。なぜ嫌われるのか。 - それマグで!
    peketamin
    peketamin 2016/03/05
  • document.evaluate でXPATH する具体的サンプル - それマグで!

    javascript でノードを拾うのCSSセレクタ(document.querySelector/querySelectorAll)だけなく、Xpathも使いたいよねってこと。DOM Level3も使えるし。 jQueryは使われすぎてバージョンHellで・・・ DOM の Evaluete/Xpath は今後はどうなるかわからないけど使えなくなるってのはなさそうだし 具体的サンプルの前に。 ブラウザでXpathを手軽に実行できる、document.evaluate 関数ですが、理屈が分からないと使いにくいので、document.xpathを紹介します。 document.evaluate でXPATH 実際にノードを探して使うサンプル document.evaluate('//input[@value="削除"]',document,null,XPathResult.ANY_TYPE,

    document.evaluate でXPATH する具体的サンプル - それマグで!
  • Rubyの日付のタイムゾーンについて - それマグで!

    Ruby の Date#parse はJST明示しないと怖い。 Datetime#parseは JST を付けないと、UTCとして解釈するので恐ろしい 明示する方法 >> DateTime.parse("2013-09-12 3:39 JST").to_s => "2013-09-12T03:39:00+09:00"または +9:00を付ける >> DateTime.parse("2013-09-12 3:39+9:00").to_s => "2013-09-12T03:39:00+09:00"あたりまえっちゃあ当たり前。

    Rubyの日付のタイムゾーンについて - それマグで!
    peketamin
    peketamin 2015/03/17
  • <input type=image>で送信すると、X,Y座標が送信されるので、調べたら闇だった - それマグで!

    複数に分割されたログインID入力が・・・ タイムズカープラスのログインを、ブラウザが学習しない。 Opera(Presto)だと複数にわかれたIDを学習してたのに、Opera(blink)になってから学習しないので、もう面倒だから拡張機能で対応しようとした。 フォームの値をJavaScriptで送信しようとしてハマったのでメモ。 スクリーンショット 2014-12-05 14.38.08 form.submit でログイン失敗する HTTPのリクエストヘッダを見ていると input に存在しない値を送信している模様。 tpLoginForm:doLoginForTp.x:132 tpLoginForm:doLoginForTp.y:14 どこから出てきた、この値は。と調べてて見つけた。 input type ="image" はクリック位置を送信する模様 知らなかった。X,Y座標を送信する

    <input type=image>で送信すると、X,Y座標が送信されるので、調べたら闇だった - それマグで!
    peketamin
    peketamin 2014/12/06
  • 画像を拡大全画面表示するのに、まだLightBoxとか言ってんの? - それマグで!

    フルスクリーン・モード使えよ。楽だぞ 昨今のブラウザにはフルスクリーンモードが搭載されていて、それを使うと、コピペレベルで画像を拡大表示が出来る 画像をフルスクリーンにお手軽に作るHTMLの例 <div id='img01' onclick="this.webkitRequestFullScreen();" > <img src='http://cdn-ak.f.st-hatena.com/images/fotolife/t/takuya_1st/20141129/20141129034938.jpg' /> </div> <button onclick="img01.webkitRequestFullScreen();">フルスクリーンで表示</button> #img01:-webkit-full-screen { width: 80%; background-color: rgba(

    画像を拡大全画面表示するのに、まだLightBoxとか言ってんの? - それマグで!
    peketamin
    peketamin 2014/11/29
    言いたいことは分かった。フルスクリーン機能は簡単に出来る、ということなので、必要に応じて積極的に使っていきたい。