どこでも見れるメモ帳

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

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

f:id:ni66ling:20201230192240p:plain
YouTubeDataAPIv3をPythonから使って最近の動画傾向を調べてみた

はじめに

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

やったこと

  • Youtube Data API v3 を pythonから呼び出して公開されている動画のメタ情報を取得
  • 閲覧数やコメント数、いいね数などを簡単に基礎集計
  • 動画タイトルの共起ネットワークをGephiで確認
続きを読む

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

f:id:ni66ling:20201220150009p:plain

はじめに

コロナで在宅ワークするにあたり、上図の在宅開発端末*1からダイレクトにVPN/社内ネットワーウ内の社内サーバにあるGitリポジトリにpush/pullしたいニーズが発生したのでメモです*2

課題感

git push/pullするたびに毎回、上図の「在宅作業端末」を経由する必要があり*3、具体的にはgit push/pull/cloneするたびに次のような作業が発生します。

  • 「在宅開発端末」→「社内サーバ」にgit push
    1. 「在宅開発端末」から「在宅作業端末」にscp等でリポジトリディレクトリごとコピー
    2. 「在宅作業端末」から「社内サーバ」にgit push
  • 「社内サーバ」→「在宅開発端末」にgit clone/pull
    1. 「社内サーバ」から「在宅作業端末」にgit clone/pull
    2. これを「在宅作業端末」から「在宅開発端末」にscp等でコピー

やりたき

「在宅開発端末」にて直接「社内サーバ」に対して、git clone/pull/pushしたい。

これを実現する手順を述べます。

*1:私の場合はRaspberryPiやJetsonでしたが、windowsmacでも同じです。

*2:過去に何度かやってきたのですが、久々にやろうとしたら忘れてしまって、結局色々ググらないといけない事態になったので改めて備忘録としてまとめることにしました。

*3:ただでさえバグと戦っているのに、その前後でこの作業してたらメンタルが持たない

続きを読む

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

f:id:ni66ling:20180102023826p:plain

はじめに

Jupyter Notebook(ipynb)をなるべくマシなバージョン管理方法がないか調べてみました。
実現したいことを簡単にならべると次の通り。

  • jupyter notebook(ipynb)をgitでバージョン管理したい。
  • 実行の都度変わる実行結果はコミットしたくない。
    実質的なソースコードの変更のみコミットしたい。
  • コミット前後で実行結果が勝手に削除されたくない。
    ローカルのファイルに対して変更は加えたくない。

これを実現する手順を述べます。

続きを読む

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

f:id:ni66ling:20170409154640p:plain

はじめに

Gitホスティングサービスを、GitLabからBitBucketへ移行する必要があったのでメモです。
移行対象は、単純にリポジトリのみとします。*1

やりかた

1.移行先の空リポジトリを作成します。*2
2.移行元のリポジトリをベアリポジトリとしてクローンします。

git clone --mirror [移行元リポジトリのURL]

3.移行先のリポジトリをリモート(ここではdestination)に追加します。

cd [リポジトリ名] 
git remote add destination [移行先リポジトリのURL]

4.移行先リポジトリに反映します。

git push destination master
git push --mirror destination 

補足: 移行後に移行元のリポジトリにコミットしてしまったら?

あとから同期をとるには、次の手順を踏めばOK!

cd [リポジトリ名]
git fetch --all
git push destination --mirror

*1:GitLabにおけるマージリクエストを、BitBucketにおけるプルリクエストにマッピングする方法は分かりません。

*2:BitBucketの場合、画面から空リポジトリを作成

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

はじめに

f:id:ni66ling:20160531161149p:plain

EvernoteのWebクリッピング機能便利ですね。
それと同じようなことを自前でできないか試してみました。

方針

  • Webページに対する本文抽出は、こちらのモジュールを利用*1
  • 上記モジュールは、HTMLタグもすべて取っ払うため、HTMLタグは残すように修正*2
  • 処理対象のWebページについて、文字コードがマチマチで落ちるので、例外処理を追加

試してみる

上の方針に従って、スクリプト作成しました。 github.com

ruby*3が入っていれば、git cloneして以下を実行すれば、Webクリッピングできるはずです。

ruby web_clip.rb [URL]

ちなみに、先頭画像は以下で作成しています。

ruby web_clip.rb http://ni66ling.hatenadiary.jp/entry/2015/06/25/013640

おわりに

最近Evernoteを使い始めて、はてブとの連携がすごく便利*4だと気付きました。
ただ残念なことに、過去にブックマークしたWebページは、Evernoteに一括移行することができないんですね。*5
そこで、過去ブックマークをEvernoteに一括移行できないかと調査しはじめたところです。
これから、Evernote APIとやらを用いて、自動でノートを作成できるように試してみたいと思います。*6

*1:ちなみに、ChromeにおけるEvernoteWebクリッピングは、はてブのモジュールが使われているんだとか。http://meme.efcl.info/2011/05/evernote-chromehatena-extract-content.html

*2:http://xoyip.hatenablog.com/entry/2014/03/08/204704

*3:バージョン1.9以降

*4:魚拓的意味です。数年前にはてブ登録した記事がいまだと読めない…ってことが最近よく起きるようになっていて。それで手軽に魚拓できて素晴らしい!と。

*5:結構ググったのですが、うまく見つけられず…。

*6:QiitaからEvernoteに移行するスクリプトを見つけたので、なんとか作れるんじゃないかなぁと思ってます。https://github.com/yasuhiroki/qiita-to-evernote