研究室でのgitの使い方(2018~)

研究室では,2018年度よりgithubのプライベートプロジェクトを使ってプロジェクトを管理します.
よって,全員まずはgithubのアカウントを大学のメールアドレスを使って作ってください.

その後,以下の説明で使うプロジェクトのテンプレートをgitで共有します.そのプロジェクトをgit cloneしたら,.gitディレクトリを削除し,自身のプロジェクト名に書き換えてからpushして下さい.

そして,それを福田と共有します.

 

  • プロジェクトの作成

4年生は,1年間を通し,様々なものを作成していきます.そのため,研究室の活動で作成するすべてのものを1つのディレクトリで管理します(もちろんサブディレクトリを作成して分類します).例えばmygrad_projectのようなフォルダを作成し,次のような構成でフォルダ分けすること原則とします.しかし,研究室で行っているプロジェクトの一部を作成する場合などはこの限りではありませんので,個別に対応します.

  • mygrad_project   -> 親ディレクトリ
  • mygrad_project/book_resume -> 輪読用の資料
  • mygrad_project/rinkou   -> 輪講の資料
  • mygrad_project/intermediate/ppt -> 中間発表のプレゼン資料
  • mygrad_project/intermediate/resume -> 中間発表のレジュメ
  • mygrad_project/final/ppt -> 卒論発表のプレゼン資料
  • mygrad_project/final/resume-> 卒論発表のレジュメ
  • mygrad_project/final/thesis -> 卒論
  • mygrad_project/programs/{aaa/bbb/ccc}  -> 卒論で作成するプログラムなど(aaa,bbbはそれぞれフォルダ)

このように,mygrad_project以下にサブディレクトリを作成して分類しますが,サブディレクトリは随時追加していけばよいです.ここでは,全ての親ディレクトリとなるmygrad_projectを以下の手順でプロジェクトとして作成します.

なお,このままだと全員同じフォルダ名(mygrad_project)になってしまうので,実際に作成し共有するときには,mygrad_xxxxxのxxxxに当たる部分は自分の名前,または苗字,学生番号にして重複しないようにしてください!

ABCコンパイラのコンパイル方法

オフィシャルサイトから手順に合わせてインストールする。

Antがインストールされていなければインストールして使えるようにする。

JAVA_HOMEをjava1.6のパスにしておく

1.Polyglotをオフィシャルサイトからダウンロードする

    • lib内にjava_cup.jarとJFlex.jarを保存しておく。(自分でダウンロードしてくる。)
    • ant polyglot-jar を実行する。
    • lib/polyglot.jarが生成されているのを確認する。

2. Jasminをオフィシャルサイトからダウンロードする

    • cp ant.settings.template ant.settings を実行する。
    • ant.settingsファイルを開き、java_cup.jarにjava_cup.jarのある場所を指定する。
    • ant を実行する。
    • lib内にjasminclasses-(指定したバージョン).jarファイルが作成された確認する。
    • classesフォルダに移動し、jar -cvf ../lib/jasminclasses-sable-nocup.jar jas/ jasmin/ scm/ を実行する。
    • lib内にjasminclasses-sable-nocup.jarファイルが作成されたか確認する。

3. Sootをオフィシャルサイトからダウンロードする

    • cp ant.settings.template ant.settings を実行する。
    • ant.settingsファイルを開き、それぞれにjarファイルのある場所を指定する。eclipse.locにはeclipseフォルダを指定する(jarファイルがたくさん入っているフォルダだったはず。)。soot.versionとrelease.locはデフォルトでいい。
    • ANT_OPTS=-Xmx256 を ~/.antrcファイルに書き込んで保存する。
    • ant を実行する。
    • lib内にsootclasses-(指定したバージョン名).jarファイルが作成されたか確認する。

4. abc-1.3.0-src.tar.gzをオフィシャルサイトからダウンロードする

    • cp ant.settings.template ant.settings を実行する。
    • ant.settingsファイルを開き、それぞれにjarファイルのある場所を指定する(ないものはオフィシャルサイトからダウンロードする)。
    • 後で拡張できているか確認するためにMain.jarにSystem.out.printlnで目印を書いておくとあとでわかりやすい。
    • ant jars を実行する。
    • lib内にjarファイルが作成されたか確認する。

5. abc-1.3.0-bin.tar.gzをオフィシャルサイトからダウンロードする

    • JAVA_HOMEをjava1.7のパスに変更しておく。
    • ABC_HOMEを指定しておく。
    • /bin/csh abc.bat を実行する。(doc内にマニュアルが載っているので参考にする。)
    • lib内のjarファイルを4で作成されたjarファイルのものと置き換える。
    • /bin/csh abc.bat を実行する。(doc内にマニュアルが載っているので参考にする。)
    • 自分が書いた目印が反映されているか確認する。

以上です。

ローカル上の Node.js 0.10 で Cloud9 IDE を使う

Node.js の開発にて、Cloud9 IDE が良いということなので、
ひとまず公開されているソースをローカル上で実行するまでの過程を記録しました。
ほぼ github の Readme.md の通りでいいのですが、
Node.js 0.10 環境下で起こる問題を回避する方法も併記します。

0. 想定環境

この記事では以下の環境でセットアップを行いました。

1. セットアップ

まず、実行に必要な Node.js, Mercurial をインストールします。

次に、github にある clone9 をクローンします。
このディレクトリから Clone9 を起動するので、ちゃんと場所を用意してあげましょう。

クローンした clone9 のディレクトリの中で npm を実行してパッケージをインストールします。

これでセットアップは完了です。

2. 実行

実行には cloud9/bin/cloud9.sh を用います。

立ち上がると http://localhost:3131/ をブラウザで開くと、
そこに Cloud9 IDE の画面が表示されます。
終了させる場合は C-c で停止させてください。
ポート番号を変更する場合は -p を、ワークスペースを変える場合は -w を用いてください。

3. 参考

cloud9 + node 0.10 · Issue #2741 · ajaxorg/cloud9

QemuのソースをXcodeでデバッグ

Qemuをハックするために,QemuをXcode上コンパイル,実行出来るようにする. 以下が手順.

  1. XcodeでCreate a new Xcode Projectを選択
  2. Emptyを選択
  3. プロジェクト名を決める
  4. プロジェクトのメタ情報を格納する(.xcodeprojファイル)を選択
  5. Xcode上でQemuのディレクトリごと,Drag & Drop
  6. 上部メニューのqemu-1.7.0(Drag&Dropしたフォルダ名)から,Edit Schemeを選択
  7. InfoタブのExecutableで,Runボタンを押したときに実行するバイナリを指定.今の場合qemu-system-x86-64
  8. 同画面のArgyumentsタブの”Arguments Passwd On Launch”で,実行ファイルに与える引数を指定.例えば「-fda helloos.img」

このままだと,OSのシグナルでブレイクしてしまい,起動するまでひたすらクリックを繰り返すことになるので,Symbolic Breakpointを設定する.

  1. 上部メニュから,Debug->BreakPoints->Create Symbolic BreakPointを選択.
  2. Symbol名にqemu_main(この関数の中でシグナルが発生することが分かっているため)を入力
  3. Add Actionをクリックし,表示されたテキストボックスに,「process handle SIGUSR1 -n true -p true -s false」を入力.そして,Automatically continue after evaluationgにチェックを入れる.
  4. さらに同じ手順でもう一つSymbolic BreakPointを作成し,「process handle SIGUSR2 -n true -p true -s false」(1と2が違うだけ)を作成

以上でブートし,breakもできるようになるはず

QEMUをMac上でソースコードからコンパイル

  1. http://wiki.qemu.org/Downloadからソースコードをダウンロード
  2. 以下を実行
  • tar -xzvf qemu-1.7.0.tar.bz2
  • ./configure
  • make

しばらく待つと出来上がる.glib2が必要なので適宜mac portsなどでインストール   出来上がったバイナリはアーキテクチャごとに別のフォルダに入っているので,X86であれば x86_64-softemuにqemu-system-x86-64ができている これに,イメージを引数で与えてブートする.例えば,30日で作るOSであれば,フロッピーブートなので,

  • ./x86-64-softemu -fda helloos.img

これでBootする

This is test post

hoge hoge huga child

sudo使用時の環境変数の引き継ぎ方

引き継ぎたい環境変数を指定する場合:
  • visudoで Defaults:[ユーザ名] env_keep += “[環境変数]“ という行を追加する.

全ての環境変数を引き継ぐ場合:

  1. sudo -E (Eオプションを使う)
  2. visudoで Defaults:[ユーザ名] !env_reset という行を追加する.
% env
% sudo env
というコマンドで設定が確かめられる.

Emacsでpythonデバッグ

前回Emacs上でpythonのreplを動かす方法を書きましたが、今回はEmacs上でpdb(gdbのpython版のようなもの)を動かす方法です。

1. M+x shellでshellを立ち上げる
2. $/usr/lib/python2.6/pdb.py デバッグファイル名

M+x pdbなるコマンドも存在するが、Macだとなぜかうまくいかないので上記のような方法をとる。

デバックするファイルを別窓で開いて、ステップ実行などをすると実行中の行の先頭に矢印がでます。
ブレイクポイントの設定などはこれから確認します。

参考:
ScriptLabo 【Python】 Emacs23でpdbを使うメモ

Jailbreakしたらまずやること

脱獄したらまず基本的な以下のアプリケーションをインストールしましょう。

  • SBSetttings
  • OpenSSH
  • MobileTerminal

SBSettingsとOpenSSHはCydiaからインストールできます。

MobileTerminalはCydiaからインストールできるものだと、起動後すぐクラッシュするなどのバグがあるので最新のバージョンを手動でインストールします。

  • SBSettings

SBSettingsはいろいろな機能拡張の設定や、sshやwifiなどのon/offを切り替えられるアプリです。ステータスバーをスライドすることで起動します。

インストール方法:

1.Cydiaを起動する。

2.Searchアイコンをタップする。

3.検索窓にSBSettingsと入力する。

4.検索結果のSBSettingsをタップする。

5.画面右上のInstallをタップする。

6.画面右上のConfirmをタップする。

  • OpenSSH

open-sshはMacなどからのssh接続をするために導入します。

インストール方法:

SBSettingsと同じようにインストールする。

  • MobileTerminal

MobileTerminalはiPod touch上で動作するTerminalです。

インストール方法:

1.以下のリンクからzipファイルをダウンロードする。
Download

2.ダウンロードしたzipファイルを解凍する。

3.解答してできたTerminal.appを端末の下記ディレクトリにscpなどでコピーする。

コピー先 ディレクトリ
/private/var/stash/Applications

4.sbsettingでrespringする。

これで基本的なアプリを導入することができました。

あとは必要になりしだい追加していきましょう。

参考:
Cydiaの使い方(超初心者編) « modpod.jp

[JailBreak] MobileTerminal v426 (iOS 4・iPad で 起動可能) | Apple Voice