git pullに関していろいろと調べてみると、あれこれと書かれてるんですが、
正直まどろっこしいというかややこしいというか…。
git-pullは幸い(?)なことにシェルスクリプトなので、
echoを入れてコマンド見れば良いんじゃないかなと思うんです。
ということで、主によく問題とされている以下の2点について調べてみました。
(本記事はgit version 1.9.5 (Apple Git-50.3)をベースとして記述しています)
以下のようなリポジトリ構成の場合、
git pullは以下の結果となる。
ここで注目するべきは2箇所。まず1つはgit-mergeの引数。
HEADにあるリビジョンをマージするから、 カレントのブランチにマージされるんです 。
git-pullのドキュメントにも
More precisely, git pull runs git fetch with the given parameters and calls git merge to merge the retrieved branch heads into the current branch.
となっている。
このことから、リモートブランチをpullすることを期待して、"git pull origin <branch>:<branch>"すると
カレントブランチにマージされてしまいます。
また、上記の事から"git pull"だけだとカレントブランチに対しての更新は、意図通りのものとなります。
もう1つはgit fetchの挙動。
git fetchはoriginのみを指定した場合は、originの追跡ブランチをすべて更新し、さらに追跡ブランチに対応するローカルブランチを更新します。
詳細な説明は以下のとおり。
When git fetch is run without specifying what branches and/or tags to fetch on the command line,
e.g. git fetch origin or git fetch, remote.<repository>.fetch values are used as the refspecs---they specify which
refs to fetch and which local refs to update.
The example above will fetch all branches that exist in the origin (i.e. any ref that matches the left-hand side of the value,
refs/heads/) and update the corresponding remote-tracking branches in the refs/remotes/origin/ hierarchy.
git fetchだけを試しにやってみると
の通り、fetchだけでdevelは更新されます。
このことから、git pullするとカレントブランチ以外の追跡ブランチも更新されることがわかります。
以下のページが分かりやすかったです。
追跡ブランチ (tracking branch) というブランチが何なのか調べた - snowlongの日記
[git]ローカルブランチがどのリモートブランチを追跡してるのか確認する方法 - dackdive's blog
git pullしても以下のエラーで更新されない場合、追跡ブランチに登録されていないです。
1$ git pull 2There is no tracking information for the current branch. 3Please specify which branch you want to merge with. 4See git-pull(1) for details 5 6 git pull <remote> <branch> 7 8If you wish to set tracking information for this branch you can do so with: 9 10 git branch --set-upstream-to=origin/<branch> devel
もし、リモートブランチが"origin"の場合、説明の通りにすればOK。
git branch --set-upstream-to=origin/devel devel
リビジョンはgit fetchした後の、.git/FETCH_HEADから取得します。
「not-for-merge以外のもの」(=カレントブランチ)がmergeするリビジョンになります。
NHK WORLD RADIO JAPANのPodcastのscriptが無いと
以下の日記で書きましたが、実はほぼ同様のものがあることがわかりました…。
実はこの日記を書いたタイミングで、NHKの要望に「script公開してほしいなぁ」と
メールしまして、(日曜日にもかかわらず)1時間ほどで返事がかえってきました。
結論としては、NHK WORLD RADIO JAPANは以下のサイトで公開されている
原稿がもとになっているとのこと。
最新のNHK WORLD RADIO JAPANの配信と聴き比べてみたら、
確かに原稿の部分は全く同じものを流していました。
ただ、NHKからの回答によると以下のケースはあるらしい。
最後の制限は少し気になるけど、まぁ毎日聞くんであれば問題ないかな。
NHK WORLD RADIOを毎朝通勤の時間に聞いていて、内容は良い感じなんですが、
transcriptがないので聞き取れない単語があった場合、どうにもなりません。。。
ということで、transcript付きのものをいくつか探してみました。
おすすめはこのあたり。
以下は良いんだけど、Podcastで聞けないという難がある。
毎回ブラウザ開いて見れば良いんだろうけど…。
こちらはPodcastがある。興味とあわなさそうだったので保留
ちなみに、Androidの場合、おすすめのPodcastのアプリはPodcast Addictです。
気に入っているのは以下の点。
仕事であれこれと契約書を読むことがあり、
契約書をどうするべきか?気になったので読んでみました。
ビジネスパーソンのための契約の教科書 (文春新書 834)
http://www.amazon.co.jp/gp/product/4166608347
重要なところをかいつまんで説明がなされていて良い本でした。
また、契約書がなぜ重要かという話も良かったけど、
それ以上に海外とのやり取りと日本の文化を比べながら
説明されているのが良かったね。
個人の契約でも、会社での仕事でも、一度読んでみると
契約書の大切さがわかって良いと思います。
大きなファイルをWeb上で公開する場合に、Dropboxへ直接アップロードするリンクが便利そう。
https://www.dropbox.com/developers/saver
上記の方法でリンクボタンを作った場合、
ファイルをダウンロードする際にローカルの保存先の選択をするように、
Dropboxの保存先を選択することができる。
保存しておくことが目的のファイルだと、結構便利。
以前にピッチ変換基板を作ったと書きましたが、今週納品されるとのこと。
特に修正の指示とかなしできたけど、大丈夫なのかな…。
とりあえず見てからのお楽しみ。
ESP-WROOM-02用のピッチ変換基板を作る
http://yasuharu.net/diary/2820
普段使いのMacBookAir(Mid 2011)をEl Capitanへ変えてみた。
諸事情により、10.6からのアップデートになったものの、アップデート自体はとくに問題なく完了。
今日一日使ってみたところ、いくつかの問題に気づいた(10.6からアップデートしたことが問題かもしれないので、あしからず)。
他にあれば加筆をしていきます。
GENODE OS上でGalliumのドライバを動かせたという話
(記事を読む限りだと、4,5年前にはすでに実現していて
今でもメンテナンスされてますよ、って話なのかな)
Doing Graphics Hardware Acceleration With Microkernels
http://www.phoronix.com/scan.php?page=news_item&px=GPU-Microkernel-Support
まず、GENODE OSってのは知らなかった。
セキュアな環境を実現するためのMicrokernelなOS。
Microkernelにすることでカーネル自体のコード行数を減らし、
コードの検証をやりやすくする、ってことみたい。
まぁ、Micro kernelでもMonolithic kernelでも、
責任の所在がどっちになるかという問題のような気がしてて、
個人的にはどちらでも良いけど…。
(もちろん、見通しの問題もあるだろうけど、あまり利点があるとは思えない)
GalliumはLinuxのグラフィックスドライバのフレームワークの名称。
Mesa(Linux向けのOpenGLドライバ実装)の中に
このGalliumの仕組みを使ったグラフィックスドライバが実装されている。
この記事の面白いところは、Galliumの実行はLinuxでないと無理だろうなぁと
思い込んでいたけど、やろうと思えば他のOSでもできるという点。
ざっと見た感じだと、DRM(Direct Rendering Manager : Linuxカーネルドライバのうち
グラフィックスのリソースなどを管理するドライバ)に相当する部分を
Graphics Execution Managerという仕組みでユーザランドで実現している。
この辺りの話は2010年の以下の資料にのっていた。
http://genode.org/documentation/release-notes/10.08#Gallium3D_and_Intel_s_Graphics_Execution_Manager
極端な話、iTRONとか組み込み系のOSでもできなくはないんだろうな。
データをgithub上に上げてみました。
使ってみたい方はご自由にどうぞ〜
回路図、ボード図と実装完了したら、次にデザインルールのチェックをする。
EAGLE用のDRUファイルが以下にあるので、ダウンロードして使用する。
https://www.switch-science.com/pcborder/techguide/
最初はずらーっとエラーが出るので、一つ一つ対応していく。
今回作ったものだと、ほとんどがシルクとパッドが接触している、というエラーが多かった。
ライブラリの段階でダメなものが多かったので、
ライブラリをコピーして適当にシルクを修正した。
エラーが出なくなったら、最後に提出用データの作成。
上記のURLからCAMファイルをダウンロードしてきて、
CAM Processorからファイルを読みこませる。
(Mac版の場合、メニューバーからFile -> Open -> Job...を選択
上のメニューに出てると思わなかったので、一瞬わからなかった)
Proceed Jobを実行すると必要なファイルが出力される。
出力されたファイルで必要な物だけ取り出して、zipでまとめる。
これでデータの作成は完了。簡単にできるね…。
後はデータをアップロードして、先方からの確認がないか待つのみ。
ミスがないといいなぁ…。
ESP-WROOM-02というWifi付きのSoCが気になって、早速秋月で買ってきた。
Wi-Fiモジュール ESP-WROOM-02
http://akizukidenshi.com/catalog/g/gM-09607/
特徴は以下のとおり。
ピンピッチが1.5mmなのでこれを変換する基板を用意する必要がある。
専用のものも探せば売っているので、それを使うのも一つの手。
と思ってたんだけど、そういえばこんなのあったな、と。
基板製造サービス「スイッチサイエンス PCB」ベータテスト開始 - スイッチサイエンス
https://www.switch-science.com/pressrelease/pcb_betatest/
9月中なら10枚たったの1713円で作れるという…。すごい。
今後使う可能性もあるので、ちょうど良いテスト基板として作ることにしてみた。
とりあえず、一通り作ったのがこんな感じ。
今現在、VPSの契約が2つある
どちらもそこそこ負荷はかかっているので、2つある事自体は問題なし。
ただ、気になってるのは、後者のほうの以下の点
AWSにしようか、とか、いっそHerokuに一部移すかとかも
考えてみたけど、どちらもコスト的にいまいち。
動かしているサービスで利益が出ているのであれば、
投資と考えられるけど、現状は特に無いので最小限のコストで。
そうなると、現状のままでいっか…となりました。
HTMLの が半角スペースだと思ってたんですが、実は違ったんだね…。
半角スペースはUnicodeでU+0020、対して はU+00A0となり、
別々の文字コードとなる。当然見た目は同じなんだけどね。。。
どういう状況でこれに困るかというと、スクレイピングしたデータをパースしたい場合。
Rubyで例えば、以下のようにsplitしたとき区切り文字がnbspだとうまくいかない。
じゃあどうするか?
Unicodeを直接指定すればできる、と。
空白のはずなのにsplitできなくて小一時間悩んだ。
とある動画を作ってまして、Windows付属のツールでDVD焼いたんですがDVDの画質にがっかり…。
顔がぐちゃっとしちゃうのには参った。。。
まぁこの場合、大きな理由としては以下の3点。
・何度もトランスコードしてしまうこと
iMovieでH.264で出力した後に、MPEG2に変換している。
(さらに言うと、Windows付属ツールが一度WMVに変換している気がする…)
・そもそもWindows付属のツールのビットレートが低い
・DVDであること
解像度720x480のNTSC映像
ということで、まず試したのはDVD Flickを使ってトランスコード&イメージを作成。
結果としてはまずまず。DVD Flickの設定でビットレートをおもいっきり上げれば悪くはない。
次にBlurayにしようと思い、multiAVCHDを使いBlurayの形式にトランスコード&データ作成。
ffmpegのpresetを1pass normalぐらいにしてやって、だいぶ良い感じになった。
iMovieが出力するする圧縮フォーマットがH.264、BDならトランスコード無しで
行けるだろうと思ったけど、いろいろと見てると不安な要素が多すぎて、
とりあえず推奨設定で置いておくことにした。まぁ綺麗だし、ね。
どうでもいいけど、見れば見るほど、BDプレーヤーの開発って面倒そうだだな、と思いました。
対応解像度がいくつかあったり、いろんなディスクフォーマットに対応したり。。。
先月からアパートにCATV回線がついてくるようになって、
12Mbpsの速度であれば家賃に含んだ形で使えるようになった。
このCATVの回線は実行速度が4Mbps台で、TTLが結構大きい。
一方でHuluの推奨は3〜5Mbps以上。すごい曖昧な表現だけど、
動画データのレートが1Mbpsぐらいでそれに幅をもたせた形かな…。
実際に試してみると、以下のようになった。
・Sonyのテレビ → ブチブチと途切れる
・Chrome Cast → 特に問題なく再生できる
以下推測にはなるけど、Sonyのテレビは元々バッファリングを
あまりしていないんじゃないかな。
対して、Chrome CastはSpec見る限り、512MByteのDDR3 SDRAMを積んでる。
これだけあれば、十分バッファリングできるだろう。
ということで、Hulu見ようとしてもテレビだとうまく再生できない場合、
Chrome Cast使うのも一つの選択肢としてありじゃないかなと思います。
19時頃になるとすごく眠くなる…。
ロサンゼルスの時間だと午前3時になるのだけど、
これは時差ボケなんだろうか(笑)
アプリケーションに組み込むためのJavaScriptのエンジンについて調べていた。
3年前ぐらいにV8を使ったことがあるけど、組み込み側の関数登録などの
手順がややこしかった印象。
ライセンスの問題も含めて考えると、以下のライブラリが良さそう。
まずは触ってみよう。
個人的に気になるのは、各国の物価差を考えた時に、日本が来やすいのかどうか?
成田に到着して、都内に来るだけでも結構費用かかるよね…とか、今まで思ってた。
最近になって知ったのが、JAPAN RAIL PASSという切符。
実は海外からの方向けのチケットがあったんですね…。
JAPAN RAIL PASS | ジャパンレールパス
http://www.japanrailpass.net/index.html
7日間であれば約3万円で新幹線(ただし、のぞみなど一部例外あり)や特急列車に乗れる。
成田からであれば成田エクスプレスが定額で乗れるようになると。
実際、成田エクスプレスに新宿から乗ると、結構海外の人が多かった。
(対照的にスカイライナーはあまりいなかったように思えるが…)
若干高い気もするけど、まぁ正規の価格で買うのよりかはだいぶ安い。
SIGGRAPH 2015に参加するため、Los Angelsに来ています。
2日目にして、茶色ばかりの食事にそろそろ飽きてきて、
和食を食べたいなぁと思うようになってきた…。
どこ探しても、バーガー、サンドイッチ、バーガー…ステーキ、てな感じなんだよね。
Los Angels Convention Center周辺がたぶん居住地じゃないから、
というのもあるだろうけど、食べ物選択肢が少ない…。
夏といえばやっぱり花火、ということで行ってきました。
こちらの火大会は、連発して打ち上げるというより、
一つ一つの花火が大きめで、ある程度間隔を開けて打ち上げるという感じ。
一発あたりの迫力が大きいので、見応えはあります。
ぼーっと眺めながら、散ってくのをみるとやっぱり良いなと思いました。
AVRを使ったボードの設計をしていて、クロックの供給方法がいくつかあり、どういう違いがあるのかまとめてみた。
ATMEL 8-BIT MICROCONTROLLER WITH 4/8/16/32KBYTES IN-SYSTEM PROGRAMMABLE FLASH DATASHEETを元にしています。
使用するクロックのデバイスごとに、以下のように設定を行う。
デバイスに対応する設定値は、データシートのTable 9-1を参照。
ちなみに、水晶発振器、水晶発振子は違いがややこしい。
前者は発振回路を含んだパッケージになっているもの。製品によっては温度補償などもあるみたい。
後者はコンデンサなどを含む回路を接続する必要がある(マイコンの中に入っているものもある)。
AVRの場合は、Figure 9-2.にあるようにコンデンサを付ける必要がある。
上の表に戻って、上から3種類に関しては、さらにCKSEL[9]、SUT[0]、SUT[1]のそれぞれのビットで動作が変わる。
設定値で変わるのは、以下の2点。要はクロックが供給開始するタイミングからのdelay時間を規定している。
まとめは以上のとおり。
結局、どれが良いのか?という話になるけど、コストとかも考えると Low Power Crystal Oscillatorが 良いんだろうな。