読者です 読者をやめる 読者になる 読者になる

どこでも見れるメモ帳

ちょっとした備忘録を無秩序に投稿します.気軽にコメントください^^

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す…

ページ内の全てのスクロールバーを一番上に移動する

はじめに 「Firefoxにて,ページ内の全てのスクロールバーを一番上に移動したい」という状況が生じたのでメモ. 方法を簡単に言うと,ページ内の全てのDOM要素についてscrollTop要素が無いかチェックし,もしあれば0を代入する. ※今回用いるevaluateメソッ…

.NETのParallel.For的な処理をbashで

はじめに 「.NETやopenMPのparallel for的な処理をbashでやりたい」という状況が生じたのでメモ. 方法を簡単に言うと,xargsにseqでループカウンタを渡して,各処理をパラレルに処理する. ※xargsによる並列処理については以前に書いた*1. やりかた $ seq …

xargsで並列処理

はじめに 「コマンドライン引数を色々試したいけど,各処理がシングルスレッドで回って遅い…」という状況が生じたのでメモ. 対処法を簡単に言うと,xargsにより各処理をパラレルに処理することにより高速化する. 言ってしまえば,ターミナルを複数立ち上げ…

MySQLで全テーブルのカラム名取得

はじめに 「カラム名だけが分かっており,それがどのテーブルに含まれるのかが不明」という状況が生じたのでその対処法をメモ. 全テーブルのカラム名を取得 $ mysql -u[ユーザ名] -p[パスワード] -D[データベース名] -e "show tables;" 2>/dev/null \ | xar…

RSpecによるテスト記述

はじめに RSpec2の書き方について,考えがまとまってきたので残しておきます. テスト作成における全体流れとしては, メソッドレベルでテストケースを作成 1.をRSpecに落としこむ ただし,1.におけるテストケースは2.に向けて書きます. 1. メソッドレベル…

自鯖でストリーミング再生

やりたいこと 自鯖にある各種動画ファイルをストリーミング再生できるようにします. 方法 今回は,ストリーミング再生をHTML5によるvideoタグを用いて実現します. 詳しくは,こちらのサイト(http://www.html5rocks.com/ja/tutorials/video/basics/)にあ…

はてダ始めました

試したこと,考えたことを忘れないように*1 情報系の技術ネタを中心に,試行錯誤のメモを残していきます.ちなみに,今回はてダを選んだのは,はてな記法が使えるからです. コードのシンタックスハイライトが簡単にできる点も大きいです. //javascript (fu…