Gitレポジトリ内の一部のディレクトリを別のリモートレポジトリでも管理したい!

やりたいこと

そこそこ大きめなソースコードでGit管理しているのですが,そのうちの一部を共有してほしいとの依頼があったため,なんとかしたいということです.
ディレクトリ構造を書くとこんな感じ

  • hoge
    • fuga
      • file
    • piyo
      • file

このうち,hugaをプライベートレポジトリで管理しているのですが,fugaの部分のみを共有してほしいとのことでした.

一部のディレクトリのみを別のリモートレポジトリで管理

そこで,fugaだけを別のリモートリポジトリで共有したいと思います.
まず,fugaを管理するために新しくfugaの中でgit init します.

fuga$git init

これで,fugaのみを管理するgitを作成することができました.
さらに,fugaのリモートに共有先のレポジトリを登録します.

fuga$git remote share <url>

あとはいつもどおりadd, commit, pushする

fuga$git add .
fuga$git commit -m "inital commit"
fuga$git push share master

これで,fugaディレクトリだけを別のリモートレポジトリで管理することができました!

まとめ

これで,普段の開発はhoge全体で続け,fugaディレクトリだけ別で共有することができるようになりました.
こういった使い方にどれだけ需要があるかわかりませんが,個人的にやりたいことができたので,良しとします.

オーディオ初心者がけっこう良さげなヘッドホンYAMAHA HPH-PRO500を買ってみた!!

はじめに

論文の提出を終え,研究室内がうきうきしています!
というわけで重荷もはずれたことなので,溜まってきたネタを消化していこうと思います
(無事に発表も終わりました)

今回の話題は新しく買ったヘッドホンYAMAHA HPH PRO500についてです!
今まで音楽は聞くもののオーディオ機器にはあまり興味がなかったのですが,あれよあれよと言っているうちに買ってしまいました
結果としてかなり満足しています!
世界が変わった!!!!!!

ということで,
オーディオ初心者ですが,初心者なりの感想とかあると思うのでつらつらと書いていきます
オーディオ系の機器に今まで気にしてなかったけど,ちょっと気になってる人は是非

今までの環境

iPodについてきたイヤホン

YAMAHA HPH-PRO500がやってきた!

HPH-PRO500 - ヘッドホン・イヤホン - ヤマハ株式会社 これです!
まず何よりもかっこいい!

僕の場合の用途

用途としては主に次のふたつです

  • 作業BGMを聞く用
  • 好きなアーティストの音楽をちゃんと聞く用,DVD(BD)を見る用

それぞれの用途に対して感じたことについて書いていこうと思います.

作業BGMを聞く用

作業BGMを聞く用としての用途ですが,こちらは今までのiPodイヤホンと比べていいところとダメなところがありました.

いいところ
密閉型イヤホンなので周りの音が入りづらく作業しやすい
ダメなところ
ずっとつけていると疲れてくる

やはり気になったのは,作業用としてつけるには疲れやすいというところでした.
まず,頭に何かしらついているわけなので気になってしまう. また,けっこう締め付けが強くて1時間くらいたつと少し顎のあたりが痛くなってきてしまいます.
付け方を工夫すればある程度は改善されるような気はしますが,僕にはどうすればいいかわかりませんでした.

好きなアーティストの音楽をちゃんと聞く用,DVD(BD)を見る用

こちらの用途に関しては大満足でした!! 音楽を聞いて一番良く思ったのは, 「今までになかった音が聞こえる!」 ということです!!!今まで聞こえていなかった細かい音が聞こえてきて,同じ曲を聞いているはずなのに違うバージョンなんじゃないかと思ってしまうほどでした.
DVDとかを見る時も今まであまり気にしていなかった背景の雑音とかもしっかり聞けるようになって,より作品を楽しめるようになりました.

同じ音楽やらDVD,BDを聞いていても安いイヤホンやスピーカじゃ聞けない音が聞こえてきて新しい発見ができるということが一番のポイントです!!

まとめ

総合的には,今までの環境と比べて身体への負担は大きくなってしまうが,音を楽しむという面で言えばまさに世界が変わりました.
昔まではなんでヘッドホンとかイヤホンなんかに1万とかそれ以上払っているんだって思ってたのですが,ようやく気持ちが少しわかった気がします.
とはいえ,高い買い物には違いありません.なので,もしこれから高いヘッドホンとか買おうかな―とか思っているのであれば,一度試しに聞いてみることをおすすめします.
持っている友人がいればその人に借りてみるも良しですし,お店にいけば視聴もできます.普段の環境と比べてみるとその違いに愕然するでしょう!!

P.S.
DACも買ったのでそのうち記事にするかもです

[小ネタ]pptxに埋め込んだ動画を保存したい

はじめに

まとまったネタを書く前にちょっとしたネタを見つけたので記事にしてみます.
今回の話題はタイトルにもあるようにpptxいわゆるパワーポイントに埋め込んだ動画を,あとから動画ファイルだけ取り出したい時の方法です.
ちょっと特殊な方法なので記事にしてみようと思います.

問題

今回やりたいのは下の画像みたいな感じにスライドに埋め込んだ動画を,動画だけのファイルとして取り出したいということです.
元の動画ファイルが残っていれば問題ないのですが,元ファイルを消しちゃった!ってときに使える方法です.
f:id:iidangoo:20160518171328p:plain

解決方法

例えば,これを選択してコピペしようとしてもうまく行きません.

いろいろ調べてみたら,どうもpptxの正体は必要なデータを集めたzipファイルになっているみたいです.

やり方

そこで,拡張子を.pptxから.zipに変えて,それを解凍してみます.
解凍されたフォルダを見てみると,_rels, [Cotent_Types].xml, docPros, pptができてます!!
ほしい動画ファイルはppt/media/の中にあるので,そこから目的の動画っぽいのを見つけ出してください(僕の場合はmedia1.mp4). f:id:iidangoo:20160518172009p:plain

おわりに

以上小ネタ紹介でした.
あの動画どこにあったっけー?そうだ!スライドに埋め込んであった!って時に是非活用ください.

解凍してできたファイルをみてみると,いろいろな情報がxmlファイルで書かれていたりとけっこうおもしろそうなので,今回扱った内容以外にも興味がある人は見てみるといいかもしれません! 以上小ネタでした!!

withings activité popの電池交換をしてみた

久しぶりの更新です!!
ネタどうしようーってなって、簡単なのからさくっと書いてみました!
(何個か下書きにはある)

今回のテーマはタイトルにもあるようにwithings activité popの電池交換です!!

簡単な説明

withings activité popというスマートウォッチの電池交換です! 公式サイトはこちら

www.withings.com

この製品自体はスマートウォッチとは言っているものの、見た目は普通のアナログ時計みたいな感じです。
機能とか使い心地などは気が向いたらまた別の記事にします。(必ずやるとは言ってない)

ということなんですが、他のスマートウォッチと比べた一つのメリットとしては、電池が圧倒的に持つということです!
なんですが、その分(?)電池交換もボタン電池を交換するというちょっとめんどくさいやり方なので記事にしてみました。

今のうちに書いておくと,利用するボタン電池はCR2025という型です. コンビニとかで普通に買えます!
ちなみに僕は大学の生協で買いました(300円くらいだた)

そもそも充電どれくらいもった?

結論からいうと、電池寿命は僕の場合、だいたい5ヶ月くらいです。 去年の12月半ばくらいに買って、今年の4月おわりくらいにお亡くなりになりました。
アラーム機能をつけていたので、もしかしたそれをきったらもう少し長持ちするかも感はあります。

他の記事見てもだいた4ヶ月半-半年くらいなんで、だいたいそんなもんかと
(一応、公式では最長8ヶ月をうたってる)  

電池が切れる前兆

こんな電池事情のせいか,電池切れ間際にはなんとメールでアナウンスがきます!
丁寧に変え方まで教えてくれる!!
f:id:iidangoo:20160427001613p:plain

ただし,このメールから約15時間後に電池が切れます...
メールが届いてから電池替えばいいと思ってると案外すぐ切れるのでご注意を!!!

必要なもの

  • 新しいボタン電池(CR2025)
  • 買った時についてきた銀の丸くて棒とかついてるあれ -> withingsの裏の電池蓋を開けるのに使います

f:id:iidangoo:20160427004900j:plain f:id:iidangoo:20160427005602j:plain

電池交換

さて、前置きが長くなりましたが、いよいよ本題である電池交換です!
といっても大したことはやってなくて、ただ裏をパカっと開けてボタン電池交換するだけです。

裏をパカっと開ける

テコの原理でぱかっとします
f:id:iidangoo:20160427004022j:plain

新しい電池をセットする

向きを間違えないように注意 f:id:iidangoo:20160427010407j:plain

蓋をはめ直す

ちょっと力がいるので注意!
うまくいくとパカっていうと思います
ちゃんとしまってないと防水性とか弱くなっちゃうのでがんばって!

これで電池交換は終了! 簡単!!
あとは,アプリを立ち上げて再度接続しなおせば終わりです!

再接続の際の注意

さあ!電池入れ終わったぞ!っと思ってもう一回同期しようと思ったら,なぜか全然接続できないという事案が発生!

なぜだ!と思っていろいろ調べてみてもうまくいかない!
なんだかスマホ側が悪い気がしてきたけど,再起動してみてもダメだ!!

ってさんざん焦ったあげく,原因はスマホアプリを最新版にしていなかったからみたいでした.

旧アプリからwithingsのファームウェアの更新はできるみたいなんだけど,更新すると,今度は古いアプリに対応できなくなるみたいです.
play ストアからアプリを更新したら無事同期完了
なぜこんなことに気づかなかったんだ...
もしかしたら同じことにはまる人がいるかもしれないので一応メモ程度に ...

まとめ

いろいろ手間取ったけど,なんだかんだ半年に一回しか電池交換しなくてもいいってのはかなり魅力だと思いました.
交換自体もボタン電池買ってきて変えるだけだからやってしまえばそこまでの手間ではないしね!

以上! 久々更新でした!

twitterで鍵垢の人の動向が気になる!

きっかけ

ターゲットがツイッターで遊んでないか取り締まりたい!!
ウェブスクライピングしてみたかった!

API使えば?的なはなしは知らん!!
APIだと鍵垢の人の情報持ってこれるんかな?)

やりたいこと

特定ユーザのツイッターを監視してツイートしたら通知をだす!!

実装方法

Pythonでrequestsとlxmlを使ってウェブスクライピングをする!
osはmacです.

requests, lxmlのインストール

pipでいれるだけです

pip install requests
pip install lxml

requestではなく,requestsなので注意!!(間違えてて一瞬はまってた)

しかし,lxmlをインストールしている時に問題発生!

Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?

調べてみたところ,brewでlibxml2がいれれるらしい,
ということでいれてみる.
ついでにlibsxsltもいれておく

brew install libxml2 libxslt

このコマンドを実行したら無事にpipでlxmlがインストールできました.

ちなみに,ウェブスクライピング系のライブラリはけっこうたくさんあるらしく,やりたい人は調べてみるといいかもしれません.

実装

現在のツイート数を持ってくる

ターゲットのURLのhtmlを持ってきて,そこからXpathを指定してツイート数を取得してくる.

まずはターゲットのhtmlを取得

import lxml.html
import requests

TARGET_USER = 'testID'
TARGET_URL = 'https://twitter.com/' + TARGET_USER

# htmlソースコードの取得
html = requests.get(TARGET_URL).text
root = lxml.html.fromstring(html)

やや時間がかかってしまうのは気になるところ・・・

次にツイート数を取得してくる.
どうやらツイート数は

'/html/body/div[contains(@id,"doc")]/div/div/div/div/div/div/div/div/div/div[contains(@class,"ProfileNav")]/ul/li[1]/a/span[2]'

にあるみたいだったので,そこを指定する.
指定の仕方が少し雑な気もするがそこはスルーで!

ついでにとってきたツイート数には"6,439"みたいに間にカンマが入ってるからそれは削除しておく.

TARGET_VALUE_XPATH = '/html/body/div[contains(@id,"doc")]/div/div/div/div/div/div/div/div/div/div[contains(@class,"ProfileNav")]/ul/li[1]/a/span[2]'

# ツイート数が乗っている要素までたどっていく
val = root.xpath(TARGET_VALUE_XPATH)[0].text
tweet_num = int(val.replace(',', ''))

print(tweet_num)

ということで,現在のツイート数を持ってくることは成功!

ツイートしたら通知する

一定時間ごとに現在のツイート数をもってきて,前回と同じ値にならなかったら通知する! あとは大した処理は残っていない!

スリープを挟んだ無限ループで一定時間ごとに監視していきます.
特に大したことはしてないので,詳しくは最後にソースコードをいれときます.

通知部分は適当なサイレン音とともにターゲットがツイッターをしたことを音声で教えてくれることにした!

まとめ

とっさの思いつきで実装した今回のシステムでしたが,思ったよりも簡単にできて個人的には満足した!
この程度のものがウェブスクライピングというかは知りません.
ターゲットがツイートするたびにサイレンがなってけっこうおもしろかった!
うおおおおおおおおおおん!!! (ターゲットの名前)がツイートしました!!

今回のポイントは鍵垢ユーザに対しても監視できる点かなと思います.

ツイートした時間も取得するようにすれば,鍵垢ユーザがいつツイッターしてるかもわかるようになりそう!

ソースコード

import lxml.html
import requests
import time
import os

TARGET_USER = 'testUser'
TARGET_URL = 'https://twitter.com/' + TARGET_USER

TARGET_VALUE_XPATH = '/html/body/div[contains(@id,"doc")]/div/div/div/div/div/div/div/div/div/div[contains(@class,"ProfileNav")]/ul/li[1]/a/span[2]'

AUDIO = 'siren.mp4'
MESSAGE = TARGET_USER + 'がツイッターしています!!!'

def getTweetNum():
    # htmlソースコードの取得
    html = requests.get(TARGET_URL).text
    root = lxml.html.fromstring(html)

    # ツイート数が乗っている要素までたどっていく
    val = root.xpath(TARGET_VALUE_XPATH)[0].text
    return(int(val.replace(',', '')))

def notify():
    os.system('afplay ' + AUDIO)
    os.system('say ' + MESSAGE)

if __name__ == '__main__':
    old_num = getTweetNum()
    while True:
        print(TARGET_USER + 'のツイッター監視中')
        cur_num = getTweetNum()
        if not old_num == cur_num:
            print('ツイートした!!!')
            notify()
        old_num = cur_num
        time.sleep(60)

ブログを書くための基本的なMarkdownの勉強

はじめに

ブログをはじめてみよう!ということでまずはブログの書き方を学ぶのが大事!
ということで,基本的なMarkdownの記法について調べてまとめてみようと思います! 調べればいくらでもでてきそうですが,僕が使いそうなものだけ抜粋してみます

本編

見出し

まずは一番良く使うであろう見出しから.
#を重ねると見出しになる!
#の数によってレベルが変わっていく
ちなみに文章中に#を打ちたいときは\#と打てば良いらしい

以下,例

見出し1

見出し2

見出し3

見出し4

見出し5
見出し6
# 見出し7

6が限界らしい

コード

プログラムとかを書くにあたって,使いそう.
`(バッククオート)コードにしたい部分を囲うといいらしい
this is code

複数行のときは```というふうにバッククオート3つで囲めばいいらしい

code1
code2
code3

引用

> を使うと引用ができる >>も使うと入れ子構造にできる

引用

引用インデント

リスト

*(スペース)を入れるとリストっぽくなる
*の前にスペースをいれるとインデントの調整もできる!!
-でもできるみたいだけど,挙動は同じっぽい

  • リスト1
  • リスト2
    • インデント
      改行もできる!
  • (参考)-でのリスト

番号付きのリストも便利そう

  1. (1.とするだけ)
  2. (2.とするだけ)
    1. (3.とするだけ)
      インデントすると数字が消えちゃうみたい

エディタ内の見た目もリストっぽくて楽しい

水平線

僕はメモにはよくEvernoteを使うのだが,そこで多用しているのでなんとなくみられていれいれやすい
-または*または_を3つ以上並べればいいらしい

↓-による水平線

↓*による水平線


↓_による水平線


-による水平線は見出しっぽくなっちゃって少し見づらそう(そもそも水平線になってない)

その他

改行をいれたいときは半角スペースを2つ入れる
普通の改行では改行されないので注意

他にも強調やらテーブルやらあるけど,最低限使いそうなものだけ. 便利そうなのがあったら追記します.

適当な感じだけど,はじめの記事としてはこんなもんでしょう!!!!