dorapon2000’s diary

忘備録的な。セキュリティとかネットワークすきです。

紙の本と電子書籍の使い分け

紙の本を買うべきか、電子書籍を買うべきか、本を買ったことがある人は誰もが一度は悩むと思います。自分もずっと答えが出せないまま、今でも悩んでいます。 使い分け方もいろいろあると思います。 どこでも読めるから 場所を取らないから 電子書籍のマーカ…

Perlのfalsyな値の==とeqによる比較結果

Perlのfalsyな値を比較した時、True/Falseのどちらになるか整理します。検証するfalsyな値は以下の4つです。 空文字"" 数字の0 文字列の"0" undef 検証コードはGitHubにあげています。 github.com 検証環境 Perl v5.34.0 ==で比較 ==は数字が等しいかの判定…

Twitterのリストをサブアカウントにコピーできるサービスをリリースした

リリースしたといいつつ、もう公開して3ヶ月ほど経ちます。リスト移動とアンドロイドを掛けたListIDOというサービスです。自分がほしいからと、勉強も兼ねて作ったサービスですが、作ったからには自分と同じ悩みを抱えている人(いるかわからないけど)にも…

Pythonで2列をテーブルのようにprintする

tabulateのような、テーブル表示をするためのライブラリもありますが、フォーマット文字列だけでも縦を揃えられます。ただし、日本語が入ると揃いません。 def print_align_left(label, value): print(f'{label:<20}: {value}') # ラベルを右寄せ def print_…

Perlの文字化けとutf8とEncodeの関係

ブログの記事のサンプルコードを書いているときにPerlで文字化けに悩まされました。文字化けはせずとも、Wide character in say atという警告が表示されたりすると、記事のサンプルコードとしては締りが悪いです。もうPerlで日本語まったくわからん... そこ…

PythonとPerlとjsの日付操作のサンプルコード

PythonとPerlとJavaScriptの3つの言語で以下の日付操作をまとめます。自分用の忘備録です。 現在時刻/今日の時刻オブジェクトの取得 文字列 → 時刻オブジェクト 時刻オブジェクト → 文字列 曜日を日本語で取得 足し算と引き算 時刻オブジェクト同士の比較 (…

Twitter APIのPOST lists/members/create_allの制約と対応

突然の宣伝で恐縮ですが、最近ListIDOというサービスを作りました。 listido.dorapon2000.xyz 内部でTwitter APIを使っており、主にTwitterのリストを操作しています。その中で、リストにメンバーをまとめて追加できるPOST lists/members/create_allという大…

pythonで例外クラスを引数にとる例外処理デコレータ

pythonの例外処理のプラクティスとして、例外処理デコレータを作るというやり方を最近知りました。更に発展させて、デコレータがどの例外の例外処理をするか選びたいとも思ってググりましたが、見つからなかったので、記事に残します。 一般的な例外処理 デ…

VSCodeで「ターミナル プロセスが起動に失敗しました」

昨日までは普通にVSCode上でシェルが使えてたのに、突然起動に失敗したといってシェルが開かなくなってしまったので、その解決方法を残します。 環境 maxOS Big Sur 11.5.2 VSCode 1.59.1 fish 症状 VSCode上でターミナルを開こうとすると、あるいはデバッグ…

macOSで1つのコアだけに負荷を掛けたいけどできない!

mac

&とwaitに関する記事を書いた時、macで1つのコアだけに負荷を掛けたいという状況がありました。しかしどうしても均等に負荷が掛かってしまうので、そのことについてまとめます。なお、この記事からは、原因も解決策もわからないです。 宣伝 dorapon2000.hate…

シェルの&とwaitについて少し調べてみた

&はシェルにおいてバックグラウンド実行をするコマンド?です。 そして、複数のバックグランドジョブの終了を待つコマンドがwaitです。 つまり、 sleep 20 & sleep 10 & wait # 上2つのコマンド入力直後であれば20秒待機 # sleep 20 & sleep 10 & wait #1行…

HTTP/2のTCPレベルのHoLブロッキングとQUIC

HTTP/2はHTTP/1.1で問題だったHTTPレベルのHoLブロッキングを解消しました。しかし、TCPレベルのHoLブロッキングという問題が依然として残っています。。。。。。 ぐぐるとたくさん解説サイトが出てきますが、いろいろ調べて、自分の言葉に落とし込んでみま…

example.comのTLS1.3ハンドシェイクを見てみる

example.comのTLS1.3ハンドシェイクを覗いてみます。 この記事を書くために、TLS1.3について別記事にまとめました。 dorapon2000.hatenablog.com 通信を覗く方法 下記のサイトのやり方でexample.comと通信するchromeの通信をWiresharkで覗きました。 【解析/…

TLS1.2と1.3での鍵交換/認証/暗号化に関する用語をまとめる

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 TLS1.2での暗号スイートの一例ですが、なんでこんなにいくつもアルゴリズムを使う必要があるの?と思うわけです。しかも、ECDHEとECDSAとEdDSAなど用語が似ていたり、RSAは鍵交換と認証を両方やってしまったり、勉強…

スプライトアニメーションをしながら座標移動をする

スプライト画像をアニメーションさせながら、座標移動も適応する方法に単純ながら四苦八苦したので記録に残します。 前準備 <div class='img-container'> </div> .img-container { width: 700px; height: 100px; margin: 100px auto 0; border: 1px solid #000000; font-size: 0; } 上のボーダ…

異なるサイズの画像を均等に配置して上下左右中央寄せで並べるCSS

flexboxで解決できる話ですが、自分のGoogle力が低くてなかなか解決方法にたどり着けませんでした。flexboxの使い方ではなくこのシチュエーションの解決方法としてまとめておきます。 前準備 <div class='img-container'> <img src='img/large.png' alt=''> <img src='img/small.png' alt=''> </div> .img-container { width:700px; margin: 100px auto 0; borde…

vimの最低限な基本操作まとめ(自分用メモ)

vim

普段はVSCodeかemacsを使うため、vimは全然使い慣れていません。しかし、サーバには基本的にemacsが入っていないため、エラーが発生した特定の行を見たり、設定ファイルの一部分だけ編集する際はvim(vi)を利用します。慣れたほうががいいとは思いつつ、モチ…

HHKB Professional HYBRID Type-Sの感想

HHKBデビューしてから1ヶ月以上経ったのでその使い心地を書きます。 www.pfu.fujitsu.com HHKBの前 平たくて打鍵音が小さいキーボードを使っていました。 mac bookなら備え付けのキーボード、windowsのデスクトップ機でもパンダグラフのキーボードです。 平…

最近読んだ本の感想2

前の感想記事から1ヶ月経って、読んだ本が貯まってきたので復習を兼ねてまたまとめておく。 dorapon2000.hatenablog.com 読んだ本一覧 技術系 アカマイ 知られざるインターネットの巨人 詳解HTTP/2 WEB+DB PRESS Vol.119 特集1 フロントエンド脱レガシー 特…

HLSのHTTPヘッダを見る

HLSのHTTPヘッダを見てみたいというリクエストがあったのでHLSのヘッダを見てみる。 HLS HLSはHTTP Live Streamingの略で、Appleが提案したストリーミング配信の仕組み。ネットワークの帯域を考慮して配信する動画の画質を配信中に切り替えられ、現在はニコ…

GoogleのHTTPヘッダを見る

HTTPヘッダを見るシリーズ第3弾はGoogle。気になるヘッダをMDN Web docsやグーグル先生で調べていく。 dorapon2000.hatenablog.com dorapon2000.hatenablog.com ヘッダ全体 $ curl -XGET -I https://www.google.com HTTP/2 200 date: Wed, 04 Nov 2020 14:35…

facebookのHTTPヘッダを読む

前回はtwitterのHTTTPヘッダを読んだので、今回はfacebookを読んでいく。前回とカブる部分は飛ばす。 dorapon2000.hatenablog.com ヘッダ全体 $ curl -I -XGET https://www.facebook.com/ HTTP/2 200 vary: Accept-Encoding pragma: no-cache cache-control:…

twitterのHTTPヘッダを読む

HTTPヘッダを雰囲気で読んでしまっている。実際にどんなヘッダが使われていて、どのように使われているか調べてみるため、twitterのHTTPヘッダをMDN Web docsと照らし合わせながら1つずつ見てみた。セキュリティ的に公開してはいけなさそうな部分はXXXXとし…

Perlのautovivificationをいろいろ実験

Modern Perlを読んでいたら、autovivificationという機能があるということを今更ながら知った。たいへん便利だ。。。癖が強いらしいので手を動かして挙動を確かめてみる。 autovivificationとは my %users; $users{Brad}{id} = 228; $users{Jack}{id} = 229;…

最近読んだ本の感想

半年近くブログを更新していないせいで広告が出てしまったため、最近読んだ本をネタに更新しておく。 読んだ本一覧 開発系 ドメイン駆動設計入門 カイゼン・ジャーニー Effective Python第2版 達人に学ぶDB設計徹底指南書 達人に学ぶSQL徹底指南書第2版 ソフ…

mac + miniconda + VSCodeでPython環境構築

前から書きたかった自分なりのPython環境の構築方法をまとめる。 どの言語でも同様だが、環境構築の際は言語のバージョン管理、プロジェクトごとの環境切り替えが大切になる。nodeであればnodenv+npmで、perlであればplenv+cartonでそれらを実現できる。pyth…

VSCodeのPerl開発環境

Perl5でデバッグ・Lint・自動整形ができるVSCode環境を整えたので忘備録。 環境 macOS Catalina 10.15.3 fish 3.0.2 perl 5.30.1 VSCode 1.42.1 (前準備)Perlのインストール VSCodeと関係ないが、バージョン管理ができるplenvでperlをインストールした。 #…

flake8のE125とE129の扱いについて

pythonのコーディング規約としてPEP8はとても有名です.そして,pycodestyleはコードがPEP8に準拠しているかチェックし,不適切であれば対応したエラーコードを示すツールです.pythonを使っている方にはお馴染みかもしれないflake8でも,内部でpycodestyle…

pandasでutf-8のCSVを読み込むときにBOMの有無でどう変わるか

pandasのread_csv()はencodingオプションで,読み込ませるCSVの文字コードを指定できる(デフォルトはutf-8).ここで,BOM付きutf-8のCSVをutf-8として読み込んでも正しく動くのかが気になった.ちなみに,BOM付きutf-8はExcelやMay 2019 Update以前のWindo…

VSCodeのLaTeX Workshopでコンパイルできない

環境 macOS Catalina LaTeX WorkShop 8.5.0 fish 3.0.2 TeX Live 2019 症状 .texファイルをコンパイルしようとすると,VSCodeの左下に赤く×と表示されてコンパイルされない LaTeX Workshopのログには実行パスが存在しないみたいなエラーが吐かれている. [14…