どこでも見れるメモ帳

とあるSEの備忘録。何かあれば気軽にコメントください〜

クリップボードの中身を確認するWebツールを公開しました(書式情報あり/なしと画像)

はじめに slackのメッセージをコピペしたら、箇条書きにしていたインデントが消えてしまって悲しい気持ちに。 slack以外のサービスにコピペすると、インデント情報が消えてしまう そもそもコピーしたslackのメッセージの状態を書式情報ありで確認したいなと…

EXIFのOrientationをコマンドラインで取得・更新する

やりかた # EXIF Orientation取得 $ exiftool -Orientation hoge.jpg # EXIF Orientation更新 $ exiftool -Orientation="Horizontal" hoge.jpg ※事前にexiftoolをインストールしておく必要があります。macの場合はbrew install exiftool おまけ ディレクトリ…

Ubuntu(Jetson)のWiFi接続先をSSH経由(CLI)で変更するメモ

はじめに WiFiルーターの買い替えでUbuntu(Jetson)のWiFi接続先の変更が必要になったのですが、 設定変更するにあたりGUIを使わずSSH通信経由(CLI)で変更する手順メモです。 SSH経由でも通信が切断されずに無事変更できました。 やりかた # 現状の確認 $ nmc…

YouTubeDataAPIv3をPythonから使って最近の動画傾向を調べてみた

YouTubeDataAPIv3をPythonから使って最近の動画傾向を調べてみた はじめに 2020年はコロナ特需でYouTubeは大変賑わいましたね。 そこで、特にプログラミングや機械学習に関してYouTube動画の現状を知りたく、 YouTubeDataAPIv3を用いて簡単に調べてみました…

SSHトンネル経由でVPN/社内ネットワーク内のGitリポジトリにpush/pull/cloneする

はじめに コロナで在宅ワークするにあたり、上図の在宅開発端末*1からダイレクトにVPN/社内ネットワーウ内の社内サーバにあるGitリポジトリにpush/pullしたいニーズが発生したのでメモです*2。 課題感 git push/pullするたびに毎回、上図の「在宅作業端末」…

Jupyter Notebook(ipynb)の実質コードのみをgitリポジトリ管理するには

はじめに Jupyter Notebook(ipynb)をなるべくマシなバージョン管理方法がないか調べてみました。 実現したいことを簡単にならべると次の通り。 jupyter notebook(ipynb)をgitでバージョン管理したい。 実行の都度変わる実行結果はコミットしたくない。 実質…

Gitリポジトリを移行するには?

git

はじめに Gitホスティングサービスを、GitLabからBitBucketへ移行する必要があったのでメモです。 移行対象は、単純にリポジトリのみとします。*1 やりかた 1.移行先の空リポジトリを作成します。*2 2.移行元のリポジトリをベアリポジトリとしてクローンしま…

EvernoteのWebクリッピング的な本文抽出を自前で行うには?

はじめに EvernoteのWebクリッピング機能便利ですね。 それと同じようなことを自前でできないか試してみました。 方針 Webページに対する本文抽出は、こちらのモジュールを利用*1 上記モジュールは、HTMLタグもすべて取っ払うため、HTMLタグは残すように修正…

はてブのタグ付けを因果ネットワークで表示してみた(個人版)

はじめに 個人の興味の移ろいを、タグ付けの因果*1で視覚化できるのでは?と思い、試してみました。 今回も自分自身の「はてブ」で試しました。 視覚化までの流れ こちら(イベントの時系列分析による因果関係知識の獲得)を参考にアレンジして実装してみま…

はてブの共起タグをネットワーク表示してみた(大規模版)

はじめに はてブの共起タグをネットワークを表示してみました。 下図は、「機械学習」タグがついたWebページをほぼ全て取得し、「機械学習」タグと一緒についているタグをGephiでネットワーク表示してみたものです。*1 また、流行りの「deep learning」タグ…

はてブの共起タグをネットワーク表示するには(個人版)

はじめに はてブのタグについて,共起タグを取得し,ネットワーク表示する方法を簡単に記します. 環境はMacOSX,Firefox, はてブ拡張アドオンインストール済とします. 共起頻度が3回以上のタグ組み合わせをネットワーク表示 共起タグの取得 $ echo "tagA,t…

マージコミットを含む大きめのgitブランチをcherry-pickで別ブランチに持っていくには

git

はじめに マージコミットを含む大きめのgitブランチを,別のブランチに持って行きたい状況が発生したのでメモ*1. 取り込みたいブランチを1コミットにまとめ,これを取り込み先ブランチにcherry-pickマージする方法を記す*2. なお,複数コミットを1コミット…

Poderosaでコマンド実行結果をクリップボードにコピーするには

はじめに Poderosaには,コマンド実行結果をPoderosa実行元(ローカル)のクリップボードにコピーする機能があります. これでファイルをcatしてクリップボードにコピーとか,ディレクトリ構成をtreeしてコピーとかできます.便利! やりかた コマンド実行時…

RSpecで複数の指定行を実行する方法

はじめに RSpecで特定のケースのみを「複数」実行したい状況が生じたためメモ. やり方 行指定オプションを複数回指定する. $ rspec [file_name] --line_number [line_number_1] --line_number [line_number_2] 略記式で以下のようにも記述できる. $ rspec…

SRP(単一責任原則)とCC(循環的複雑度)によるコンポーネント内の技術的負債の定量化

はじめに ソースコードを静的解析することでRailsのコンポーネント(単一ファイル)の技術的負債を定量化します. 方針はこちらの記事*1に従って行います. なお,SRPの算出はgit blameを用いて*2行い,CCの算出はrubocopのMetrics/CyclomaticComplexityを用…

git blameによるSRP(単一責任原則)の定量化

はじめに ソースコードを静的解析することでSRP(単一責任原則)を定量的に算出します.*1 svn blameによるSRP算出*2を参考に、git blameによる算出をshで行ってみました. このSRP値が最大のモジュールが王様モジュールに相当します. # 単一責務性の違反指…

LDAの各変数の意味と幾何的解釈について

はじめに LDAの仕組みについて,時間をあけるとすぐに記憶が飛んでしまうためメモ. ここでは以下についてまとめます*1 LDAのグラフィカルモデルにおける各変数の意味とは? LDAは幾何的に何をやってるのか? LDAのグラフィカルモデル まず,各文書についてB…

gitで変更ファイルの差分行番号を取得するには?

はじめに gitで変更ファイルの差分行内容とその行番号を取得したい状況が生じたためメモ(下画像は実行結果) やりかた git --no-pager diff --no-ext-diff -U1000000 \ | diff-lines.sh \ | grep -E "^[^\"].*\:[0-9]+\:[\+|\-]" 1行目について,git diffを…

SVN/GITリビジョン区間の更新ファイルをパッチ化する

はじめに SVNもしくはGITにおけるリビジョン区間*1の更新ファイルをパッチ化*2する作業が生じたためシェル化メモ。 やりかた(SVNの場合) # リビジョン区間(r6000-r6100)における更新ファイルについて、 # ディレクトリ構造を維持したままtar.gzに固める sv…

技術的負債をいかに減らすか

はじめに コードの保守性を定量評価したいとき、どういう指標を用いるのがいいんだろう??コミット時にその指標が悪化してたらリモートリポジトリへのコミットを禁止にしたり、コミッター別にその指標に対する影響度をグラフ化して、技術的負債を改善したい…

ローカルのシェルスクリプトをリモート実行する

はじめに 「ほぼ」同じ構成のサーバがN台あって,それぞれに対して同じスクリプトを実行したい。このときスクリプトはひとつに集約したい(=各サーバにスクリプト配置したくない)。こういうときって、どうするのが定番なんだろう・・・— Kensho (@ni66ling…

行ごとに文字数を換算する

はじめに 行ごとに文字数を計算したい状況が発生したためメモ。 やりかた $ cat input_file | while read line; do echo $line $((`echo $line | wc -m` - 1)); done 文字数の計上は $ wc -m。これはマルチバイト文字に対応しており、日本語と英語が混ざって…

before_filterをすべてスキップする

はじめに 子クラスで親クラスのbefore_filterをすべて実行させたくない状況が生じたのでメモ。 やりかた skip_before_filter(*_process_action_callbacks.select{|filter| filter.kind == :before}.map(&:filter)) まず、skip_before_filterは、フィルタのシ…

Pythonでパイプを含むコマンド実行を手軽に行う

はじめに Pythonで「パイプを含むコマンド」を実行する方法が分かりづらかったため、手軽に行う方法を簡単にメモ。 参考: 17.1. subprocess ― サブプロセス管理 方法 以下をテンプレートとする。commandに「実行したいパイプを含むコマンド」を宣言する。 …

sedによる文字列操作

はじめに sed*1便利ですよね.ちょっとした文字列操作が簡単にできます. ただ,日常的に使わないと,コマンドとかオプションとかを覚えるのが難しいですよね. ワンライナーな用途を前提として,どういった使い方ができるのか,整理してみました. sedコマ…

はてブを用いた興味分析

はじめに / 何をやりたいのか? 「興味はどこからはじまって,どこへ向かうのか。」知りたい*1 「ある時点までの自分自身の興味推移に即して,いま最も面白いと感じるであろうコンテンツ*2を推薦したい」 「ある時点までの自分自身の興味推移に即して,興味…

1. データの準備(はてブからブログ記事取得・形態素解析)

はじめに 連載記事 はてブ記事を用いた興味分析 の1つ目の記事です. 本記事では,次の説明を行います.ただし,具体的な処理内容については割愛します. 個人のはてブRSSファイルから,そのそれぞれのWebページに対して本文抽出し,DBに登録する. 本文抽出…

2. LDAによるトピック解析

はじめに 連載記事 はてブ記事を用いた興味分析 の2つ目の記事です. ここでは,はてブに登録したWebページ全てに対して,LDA*1によるトピック解析を行い, はてブに登録している内容のトピック(話題,興味の対象)を分析します. 実装の前提として,データ…

HTML特殊文字を含めたストップワード

はじめに 自然言語処理するにあたって、Web収集した文書についてHTML特殊文字が邪魔したので、それを含めたストップリストを作成した.*1 ストップリスト a a's aacute able about above according accordingly acirc across actually acute aelig after aft…

ffmpegで動画ファイルの静止画サムネイルを作成する

はじめに 「動画ファイルが多量に存在するけど,ファイル名が適当すぎて目的のファイルをなかなか見つけられない」状況が生じたのでメモ. 方法をざっくり言うと,特定ディレクトリ内のすべての動画ファイルについて,N x Nマスの静止画サムネイルを作成*1す…