Hatena::ブログ(Diary)

temitaの不思議空間

2013-05-22

gitをいきなり覚えようとする人の疑問あるある載せてく

20:30 | gitをいきなり覚えようとする人の疑問あるある載せてく - temitaの不思議空間 を含むブックマーク

2013/05/22 git

いきなりバージョン管理ツールに触れて、gitを理解しようとしてる人に関するあるある。挙げてく。
気軽に理解したい人向け。

gitってgithubとか聞くやつ?」
残念ながら、gitgithubは別物です。
git分散型バージョン管理ツールです。
github はコードをgitを通して共有したり公開するためのサービスです。

githubないとgit使えないんでしょ?」
うれしい事に、gitはパソコン1台から始めれます。
github の登録は必要ないですが、gitインストールは必要です。

gitは複数人でsvnは1人用なんですか?」
うれしい事に、gitは1人でも複数人でも利用できます。

「複数人で使う時以外はgitは必要ないんでしょ?」
うれしい事に、1人でも十分効果的な(コード復元など)使い方ができます。

「まずは、GUIから始めたいんですけど」
残念ながら、GUIは大抵 git を理解している人前提に作られてます。
GUI専用用語が増えて混乱する場合があります。

「コマンド多すぎて覚えられない」
残念ながら、自由度が広すぎて全部のコマンドを覚えるのは難しいです。
やりたい事から検索するのがいいです。

「cloneとかno-ffとかpushとかpullとかfetchとかmergeとかrebaseとかとか、全部覚える必要は・・?」
clone, push は良く使いますが、それ以外は他人のコードを持ってきたりするときに必要です。
必要なときに調べて使えばいいですが、no-ff は先に調べて追加する癖をつけておくといいかもです。

「用語が多すぎて覚えられない」
残念ながら、自由度が広すぎて全部の用語を覚えるのは難しいです。

「リモートリポジトリ、branch, HEAD, ref, master, origin, bare...」
うれしい事に、用語を知らなくても使うことはできます。後から理解しても遅くありません。

「PUSHとかあるけど、1人開発の場合はどこにPUSHすんの?」
1人開発の場合はPUSHは無くてもかまいません。

「あなたの日常的に使う重要なコマンドおしえて」
`git add -p' #変更を細かく追加
`git diff --cached' ##何を追加したか忘れるので確認
`git commit -m "fix typo username bug" ' #登録(コミット
のループ
その他は前のを戻したり、PUSHしたり、分けたり、できるんだけど、そのたびに検索

「操作方法の図がループしてあるけど、どこからがスタートなの?」
初期化(init)またはコードを持って来る(clone)後は、`git add' から始まります。

「最新の使い方を覚えたいんだけど」
git-flow で検索するとスマートな使い方を知ることができます。

ここまで。
気付いたら追加していこうかな。

2013-02-09

android mini PC の mk808 を Windows7 で adb usb 接続を試す

05:35 | android mini PC の mk808 を Windows7 で adb usb 接続を試す - temitaの不思議空間 を含むブックマーク

2012/02/10 環境:Windows7 64 bit

android の miniPC mk808 ガジェットをゲットしました。
MINI TV Dual-Core A9 Processor(中国製)とか書いてます。
これ、armなんですが一昔前のプロセッサ並の性能があります!
PC側から adb usbデバッグしたいってことありますよね。
意外と手こずったので楽できるように手順を載せます。

やることは(後で詳細)、

という手順、ぐぐって来た方はこれで分かるかな。

Android SDKを手に入れる

これは、
Download Android Studio and SDK Tools  |  Android Developers
からダウンロードして解凍

Google USB Driverを取得

解凍したフォルダの中の
SDK Manager.exe
を実行してGoogle USB Driverにチェックをつけてインストール

Android デバッグモードでつなぐ

アンドロイドを繋いで起動してください。
Androidの画面をみてください。

0x2207の追記

c:\user\ユーザ名\.android\adb_usb.ini
にファイルを作成して「0x2207」を追記する

デバイスマネージャでドライバインストール

そこには、VIDとPIDが書かれているので、
adt-bundle-windows-x86_64\sdk\extras\google\usb_driverの
android_winusb.infに以下を追記

[Google.NTamd64]
;MK808
%SingleAdbInterface%     = USB_Install, USB\VID_2207&PID_0006&REV_0222
%CompositeAdbInterface%  = USB_Install, USB\VID_2207&PID_0006

VIDとPIDは各自変更になるかもしれません。

デバイスマネージャを開いて?デバイスインストールを選ぶ
ドライバーソフトの参照先に
adt-bundle-windows-x86_64\sdk\extras\google\usb_driver
を選択するとインストールが完了する。

完了


adb kill-server
adb shell

をして表示できれば完了です。

あと、コマンドプロンプトで操作するのは難しいので、adb 接続ができる
putty改良版を載せておきます。

ADB enhanced Putty (replacement for "ad… | Android Development and Hacking

これでTab補完とかができるようになります。

参考
jikiba の 備忘録 / memorandum book by jikiba MK808 その1 ADB 接続
おっさんエンジニアの実験室: MK808でadbが出来るまでの長い道のり

2012-10-04

ニコニコ生放送の便利ツール作ってみた。[ニコニコール:Zero]

03:59 | ニコニコ生放送の便利ツール作ってみた。[ニコニコール:Zero] - temitaの不思議空間 を含むブックマーク

ニコニコユーザ生放送便利ツール作ってみたのでちょっと紹介します。
ニコニコール:Zero && Nicoban の二つのサービスが一緒になりました。

ニコニコール:Zeroってなに?

次枠移動用のユーザ放送新着通知ツール。ニコニコアラートのような物

特徴? スムーズな次枠移動がコンセプト。
インストールなし(ブラウザのみ)でMacでも使えて簡単。ニコニコール:Zero は待機しているニコニコの生放送があった場合に次枠へ誘導してくれるツールです。通知はプッシュ配信に対応しているので更新ボタンを連打する必要が無くなります。

公式ニコ生アラートがあるけど? コミュニティに入るかを次枠で決めるときとかに使える。ブラウザの画面に表示されるので気づきやすい。生主は前枠でお知らせすると次枠へ誘いやすいです。

ブラウザだったら通知までにラグがあるんじゃないの? 一定時間ごとに更新されるわけではなく、放送が開始されたタイミングで通知されます。

使い方
導入

インストールなどは必要ありません。下のURLにアクセスしてください。

ニコニコール http://niconama.temita.net/niconicall

生主の方は、http://niconama.temita.net/niconicall?co6155(←コミュid) のリンクを張れば自動的に次枠待ちになります。

実は、これ2代目(d:id:temita:20090430)です。以前に公開して5日でサービス終了を余儀なくされたのを復活させました。今回はプッシュ配信を自前で用意するなどパワーアップしてます。技術的な話も書いていきたいな。

Nicoban についてはのちほど紹介します。こっちの方ががんばってたりする。

2012-06-09

さくらVPS環境をMondorescueでバックアップしてVmwareにリカバリする

17:47 | さくらVPS環境をMondorescueでバックアップしてVmwareにリカバリする - temitaの不思議空間 を含むブックマーク

2012/06/09 環境:centos5.7 さくらVPS 1Gモデル

さくらVPSで作った環境を手元にもほしいときの作業メモ

サーバで開発も行なっていたけど手元のVM環境にフルバックアップして移したい
ってことありますよね。
リカバリはkernel panicから復帰して完了したもので、ところどころ手抜きしてます。mondorescue と助け舟のさくらVPSと同じバージョンのConetOSイメージ(rescueモードのため)を用意してください。

mondrescueのインストール

まず、さくらVPS上でmondorescueをインストールします。
ここを参考にインストール

【さくらのVPS】さくらのVPSでmondo rescueを使ってCentOS全体を丸ごとバックアップしようとしてみました その2→少し起動成功
mondorescue のバージョンは3.0.2-1.rhel5を使いました。3.0.1だと失敗します。

いったん削除

# yum erase mondo
# yum erase mindi mindi-busybox afio buffer

レポジトリ指定をしてインストール

# yum --enablerepo=dag install mondo

バックアップ

バックアップを作成する。/bacは保存先 -E /bac は保存先を除く

# mondoarchive -Oi -g -N -s 4200m -d /bac -E /bac

リカバリ

操作はノートPCに移る。サーバの/bac に作成されたisoファイルがあるので、
scpか何かで手元のノートPCに持ってくる。vmwareでisoファイルを指定して起動する。
Mondorescue では lvm まで柔軟に構築してくれないので、ハードディスク構成が違うとnukeモードでは失敗する。
なので、手動でパーティションとlvmの作成を行なうのがよいらしい。
安心してほしいのが、さくらVPSはHDDを100GB持っているがそれに合わせる必要はなく20Gでも作成できたこと。

パーティション作成

mondorescue の OS が起動したら白い boot:選択画面になる。
選択の種類は、自動のnuke,手動のinteractive,コマンドのexpertがある。

今回は、パーティションから作るのでexpertを指定する

boot:expert

をタイプするとコマンドラインに移行する。

vmware は仮想HDDがあってSCSIの場合 /dev/sda にある。
まずパーティションの作成を行なう。
fdisk で作成画面に入る

fdisk /dev/sda

ここではいろいろ作成コマンドが使える。

  • mはヘルプのようなコマンド一覧と説明
  • aはブートフラグを立てる
  • nは新しいパーティションの作成
  • tはシステムタイプの設定

システムタイプ

  • 83はLinux
  • 8eはLinux LVM

まずnでボリュームを作成する。
さくらVPSと出来るだけ同じ環境を作る。さくらVPSでは/dev/vda1にbootのパーティションがある。

さくらVPSの環境

Command(m for help):p
デバイス Boot      Start         End      Blocks   Id  System
/dev/vda1   *           1          13      104391   83  Linux
/dev/vda2              14       13054   104751832+  8e  Linux LVM

パーティションを1番目に作って、ブロックは1から13までにして、
ブートフラグを立てる。

Command(m for help):n
p
1
1
13
Command(m for help):a
1

さくらVPSの/dev/vda2にはLVMがある。
パーティションを2番目に作って、ブロックは14から2610(VMの容量)までにして、
システムタイプをLinux LVMにする。

Command(m for help):n
p
2
14
2610
Command(m for help):t
2
8e

出来上がった環境

Command(m for help):p
デバイス Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14         2016  20860402+  8e  Linux LVM

LVMの作成

16Gで作成して、スワップ2Gとしました。

# lvm pvcreate /dev/sda2
# lvm vgcreate VolGroup00 -s 32m /dev/sda2
# lvm lvcreate -L 16000m -n LogVol00 VolGroup00
# lvm lvcreate -L 2000m -n LogVol01 VolGroup00

フォーマット

# mkfs.ext3 -j /dev/hda1
# mkfs.ext3 -j /dev/VolGroup00/LogVol00
# mkswap /dev/VolGroup00/LogVol01

これでパーティションの作成は終わりです。

mondorestore

あとは、mondorestoreでリストアを行ないます

# mondorestore

  • 手動のinteractiveを選択
  • 最初のmountlistは/dev/vdaのところを全部/dev/sdaに変える。
  • サイズは0MBにそれぞれすることでさくらVPSとあわせなくて済む。
  • Are you sure you want to save your mountlist and continue? [Yes]
  • Do you want to erase and partition your hard drives? [No]
  • Do you want to format your hard drives? [No]
  • Do you want me to restore all of your data? [Yes]
  • Initialize the boot loader? [Yes]

  • ここが大事そうだが未確認:"You will now be able to re-generate your initrd...初期化するためのinitrdを再作成しますか?VM環境では必要かもよ。他のサイトでは[No]

[Yes]を選ぶとコマンドラインに戻る。
モジュール環境が違うので再作成したほうがいいと思う。けど、わからなければ後からrescueモードで再作成するか、ここまで戻ってきて修正するのもあり。
モジュールの設定を変更
aliasの追加を行なう。
■SCSIコントローラーが"LSI Logic"の場合
alias scsi_hostadapter mptscsih
■SCSIコントローラー が"Bus Logic"の場合
alias scsi_hostadapter BusLogic

# vi /etc/modules.conf

initrdの再作成

     # cd /boot
     # mv initrd-2.6.18-XX.XX.X.el5.img initrd-2.6.18-XX.XX.X.el5.img.org
     # mkinitrd -f -v initrd-2.6.18-XX.XX.X.el5.img 2.6.18-XX.XX.X.el5

  • Did you change the mountlist? [Yes]
  • Boot device [/dev/sda]
  • fstabはLabel=/bootをLavel=/dev/sdaに変更する
  • mtabはvdaをsdaに変更
  • grub.confはそのまま
  • device.mapはvdaをsdaに変更
  • Label/Identify your ext2 and ext3 paritions if necessary? [Yes]

完了

終わると再起動をかけます。
もし、起動の途中で、
kernel panic attempted to kill init
という恐ろしい表示がでたらモジュール設定が違っていて、initrdに問題ありです。
私はrescueモードでgrubとinitrdを再作成しました。
これで完了です。

参考にしたもの

mondorescue関係:http://d.hatena.ne.jp/nayutaya/20090204/1233735588:Mondo Rescueを使い、物理マシンを仮想マシン化する方法]
initrd関係:http://http://blog.livedoor.jp/nslab/archives/621542.html:P2V (Physical to Virtual) - MondoRescue編]

2010-05-11

debianでutf-8のLaTex環境を構築

17:04 | debianでutf-8のLaTex環境を構築 - temitaの不思議空間 を含むブックマーク

やっぱり最新の日本語LaTex環境を揃えたいよねということです。
インストールは時間があれば構築できます。私の場合はミスって3時間かかりました。
utf-8環境にはTexLiveとptetex3の2種類あると思うのですが
好みでptetex3が用意されているのでそちらを利用します。

http://www.nn.iij4u.or.jp/~tutimura/tex/ptetex.html
手順としてここから設定をutf-8用に少し書き換えて3種類をインストールを行います
必ず3種類を同じディレクトリにダウンロードしてください。

まずptetex3のみを解凍します。私の場合は ptetex3-20090610.tar.gz でした。
かならず最新版を落としてください。
gzip -cd ptetex3-20YYMMDD.tar.gz | tar xvf -

次にディレクトリに入りutf-8を有効にするため、my_option.sample を
コピーして書き換えます。
cd ptetex3-20090610
$ cp my_option.sample my_option
$ vi my_option

KANJI_CODE=UTF8
XDVI=echo
PXDVI=echo
↑の項目の#を解除する

以下が入って無ければ問題ないと思います。※入ってないとmakeをやり直し
# apt-get install gs-cjk、adobe-cmap libxaw7-dev gs-esp、ttf-sazanami flex bison build-essential
gs-cjk、adobe-cmap ←これが失敗したが入れなくても問題ない?

flex ,bisonが入っていないと以下のエラーがでました。
configure: error: no working lexical scanner(lex/flex) found

makeにすっごく時間がかかりますが
$ make all0
$ make otf (OTFパッケージも入れるなら)
$ make babel(pTeXでBabelマクロも使うなら)
$ make font
$ make test

root 権限でインストール
$ su
# make install
# exit

(作業用ファイルの削除)
$ make distclean

これで完了です。後はリンクを張れば使えます。

~/.bashrcの最後にでも
export PATH=/usr/local/teTeX/bin:$PATH
platex='platex -kanji=utf8'
としてできあがり。

使い方。
コンパイル
platex sample-utf8.tex
dviビューワー
xdvi sample-utf8.dvi
pdfに変換
dvipdfmx sample-utf8.dvi

Adobe Readerからダウンロードしてインストール
pdfビューワー
acroread sample-utf8.pdf

ここまでで確認できたことまとめ。
UTF-8のLaTex環境の構築
ひらがなと漢字が表示できている事を確認