2013年3月13日水曜日

arduino-1.0.3のArduinoISP コンパイル tip

関数hogehogeが現在のスコープから参照できねー!(意訳)

とエラーが出る。

当該関数のプロトタイプ宣言を上の方へ追加すればOK(pulseの直後とか)。

Arduino.mk on Ubuntu 12.04 LTS

環境


arduino-1.0.3

for YAML.pm
sudo apt-get install libconfig-yaml-perl

for Device/SerialPort.pm
sudo apt-get install libdevice-serialport-perl

配置


~/.arduino フォルダを拡張する

~/.arduino
  |- preferences.txt
  |- arduino-1.0.3/
  |- arduino-mk-0.10/

ln -s arduino-1.0.3 arduino
ln -s arduino-mk-0.10 arduino-mk

~/.bashrc ファイル末尾
ARDUINO_BASE=$HOME/.arduino
export ARDMK_DIR=$ARDUINO_BASE/arduino-mk
export ARDUINO_DIR=$ARDUINO_BASE/arduino
export AVR_TOOLS_DIR=$ARDUINO_DIR/hardware/tools/avr
export AVRDUDE=$ARDUINO_DIR/hardware/tools/avrdudeよ
export AVRDUDE_CONF=$ARDUINO_DIR/hardware/tools/avrdude.conf


Makefile


MakefileはTARGET環境変数の設定が無い場合はカレントディレクトリ名をターゲット名にするようになっているので、フォルダの中に入れる。

 例:IRrecvDemoサンプルをコンパイルするMakefile

ARDUINO_BASE = $(HOME)/.arduino
ARDMK_DIR = $(ARDUINO_BASE)/arduino-mk
ARDUINO_DIR = $(ARDUINO_BASE)/arduino
AVR_TOOLS_DIR = $(ARDUINO_DIR)/hardware/tools/avr
AVRDUDE = $(ARDUINO_DIR)/hardware/tools/avrdudeよ
AVRDUDE_CONF = $(ARDUINO_DIR)/hardware/tools/avrdude.conf
BORD_TAG = uno
ARDUINO_LIBS = IRremote
ARDUINO_PORT = /dev/ttyACM0
include $(ARDMK_DIR)/arduino-mk/Arduino.mk

make


  • depend.mkが無いと怒られるが無視してよい。
  • build.pid, build.vidが無いと怒られるがLeonardo用なのでunoでは無視して良い。
uno の場合は、build_unoフォルダを掘り、加工したソースをbuild_unoに置いて、そこでコンパイルする。
再度makeしたときに「ターゲットがありません」と怒られたらカレントディレクトリがbuild_unoに切り替わってないか注意する。

arduinoへ転送


arduino unoを接続してから make upload

2013年3月1日金曜日

msysgitとPuTTYでリモートのリポジトリにアクセス

  1. private key/public keyをkeygenで作成する。
  2. private keyをPuTTYのppk形式に変換して保存。
  3. public keyはkeygenで作ったままリモートのauthorized_keysに加える。
  4. PuTTYでpublic key/private key使ってログインできることを確認。
  5. PuTTYのplink.exeにpathを通しておく
  6. PuTTYのpagentを起動し、2のキーを登録(とパスワード入力)
  7. 環境変数 GIT_SSHを設定 set GIT_SSH=plink.exe
  8. 持ってきてみる。 git clone ssh://user@srver:/path/to/git_repos/hoge.git
  9. ローカルにhogeディレクトリが出来る。

2013年2月28日木曜日

gitコマンドで転送せずにgitリモートリポジトリを作る

ローカル側からsshで送りたい。
git clone --bare /path/to/hoge ssh://foo@server:22/path/to/repos
と書いてみたがダメだった。

  1. ローカルのリポジトリを丸ごとzip圧縮
  2. scpで転送してリモートでテンポラリの場所に解凍。
  3. git clone --bare
  4. ローカルでリモートから取りなおす。
  5. 取りなおしたところにworkingの内容を(.gitディレクトリ以外)コピー
  6. リモートのテンポラリに解凍したのは削除。

2012年4月16日月曜日

linux 3.0.0-15 generic いれたらXが上がらなかった件

nvidia のドライバが無いと怒られる(recovery modeで立ち上げて見て)。 .....マシンのGPU切替スイッチがOFFになってた orz.

2012年3月7日水曜日

androidアプリ開発環境設定 on ASUS N10Jc (3.root化編)

入手した原道N50は既にroot化されていたが、onda vi30豪華版 はそうではなかったのでroot化する。

root化 on Windows

Tasselhof-RootScript.batと言うのが定番らしいのでWindowsで作業する。今回はWindows XP Home。
  1. 実機をUSBで認識する必要がある。まずはgoogle usb driverを有効にするために android sdk をインストール(当然 jdk もインストール)
  2. onda vi30を有効にするためandroid_winusb.infに記述を追加する。
    [Google.NTx86]
    ;
    ;onda vi30
    %SingleAdbInterface% = USB_Install, USB\VID_【VenderID】&PID_【PID】E&【Rev】
    %CompositeAdbInterface% = USB_Install, USB\VID_【VenderID】&PID_【PID】&MI_01
  3. Windows用のスクリプト[ROOT] - MID816R2 - Tasselhof - ROOT - Script & Toolsが定番らしいのでこれを使う。
  4. !RUN-ME-Tasselhof-RootScript.batを走らせたらメニューになる。1を選んでデバイスが表示されたら2以降を使える。表示されなかったらUSBが認識されていない。
  5. メニューの2番でroot化可能であることを確認
  6. 3でroot化
  7. adb shellでプロンプト#が表示されれば成功

USB認識 on ubuntu

普段作業するのはubuntuなのでubuntu上で認識させる方法。 Using Hardware Devices | Android Developersを参考にした。vendor IDはwindowsで調べてもいいが、ubuntu上で調べるならlsusb。

2012年3月6日火曜日

タグ区切り文字の見分け方(?)

firefoxのブックマークのタグはカンマで区切る。
bloggerのラベルはカンマで区切る。
picasaのタグはスペースで区切る。
yahoo bookmarkのタグはスペースで区切る。
とメモしても忘れてしまうので簡単な見分けかた:
「スペースをたくさん入れてそのままの間隔で登録されたらスペースが区切りではない。」

2012年3月5日月曜日

android アプリ開発環境設定 on ASUS N10Jc (2.eclipse導入編)

eclipseをダウンロード

ubuntuのパッケージの中にもあるが、openJDKとか持ってこようとするので、sun javaと同様 パッケージによらず導入する。
  1. Eclipse Downloadsから "Eclipse IDE for Java Developers"を選んでダウンロード。落としたと時はEclipse Indigo (3.7.2) Packagesとなっていた。
  2. sun javaと同様に入れたいので/opt以下に展開(/opt/eclipse)する。eclipseはインストーラが無くて展開したものがそのまま動く
    cd /opt
    sudo tar xvf eclipse-java-indigo-SR2-linux-gtk.tar.gz
  3. これでインストールは完了。先にJAVA_HOMEを設定済なのでこのままeclipseを起動できる。起動は
    /opt/eclipse/eclipse
    でOK。起動時にワークスペースを聞かれるので ~/work/eclipse/workspace とした。
起動するのを確認したら次は日本語化する

日本語化

ちと重いが最新版でも日本語化できると言うことでPleiades(プレアデス)を利用する。
Linuxはインストーラが無いので手動導入。 【Ubuntu 9.10】Eclipse 3.5.1 Galileo 日本語化 by Pleiades 1.3.1 を参考にさせて頂いた。

Android開発用のプラグインADT導入

続けてAndroid開発用のプラグインADTを入れる。
同じく参考【Ubuntu 11.04】 Eclipse 3.7M6(Indigo) + Android SDK r10 + ADT Plugin インストール
ここでちょっと嵌った。リストボックスに何も現れない。 結論から言うと画面の高さが600しかないネットブック固有の問題だった。 画面の縦幅が足りなくてリストボックス領域の高さが0になっていた。 下のワークスペースへはみ出させて表示して作業続行。試してないけど、他の方法としては外部ディスプレイを接続するとかx11vnc使うとか。

ThisWorkbookとActiveWorkbookの違い

Excel VBAのメモ。

ThisWorkbookはself相当。コードの属するワークブックを示す。
ActiveWorkbookは現在アクティブなWorkbookを示す。

アドイン内でワーク的に使うシートはThisWorkbookでアクセスし、操作対象のWorkbookはActiveWorkbookでアクセスできる。

2012年3月1日木曜日

android アプリ開発環境設定 on ASUS N10Jc (1.コマンドライン編)

ふとandroidアプリが作りたくなり、いわゆる中華タブレットを買い込む。
そうすると次は当然ながらandroidアプリ開発環境を設定しなければならない。

環境

  • PCはネットブック。非力(Atom)、狭い(1024x600) 今のところ開発環境として持ち歩けるのはこれしかない。これでもネットブックとしては(少なくとも発売当初は)マシな方。ASUS N10Jc
  • OSはUbuntu11.10

設定したいもの

  • 手元にあるandroid2.3用の開発環境
  • eclipseは重いのでできればemacs

調べた手順

  1. ubuntuパッケージ sun-java6-sdk と ant をインストール
  2. android sdkをインストール
  3. emacs設定
  4. 実機接続して Hello world

実態

  1. sun-java6-sdkパッケージのインストールでいきなりつまづく。○racleとか○racleのせいでディストリビューターがバイナリパッケージを配布できなくなったとかで、Oracleのサイトから持ってくる必要がある。ubuntuのパッケージ管理外orz. 詳しくは[ubuntu-jp:3967] Sun JDKパッケージをお使いの方はご注意ください参照。
    ((続報) Ubuntu 11.10 "Oneiric Ocelot" での sun-java6-jdk パッケージについて を参考にさせて頂いた。)
  2. antを持ってくる。調べたらこちらはずばり sudo apt-get install ant でOKなのかな?と思って実行してみると sun-java じゃないjavaもごっそり入れようとする(そもそも1で入れたsun-javaはパッケージの管理外なのでパッケージマネージャとしてはjavaが入ってないと判断し、標準のjava(openjdk?)を入れようと.....だろう。たぶん)。なのでantも別途バイナリを取ってきてインストールする。
    1. http://ant.apache.org/ より apache-ant-1.8.2-bin.tar.bz2
    2. mkdir /tmp/ant
      cd /tmp/ant
    3. mv ~/download-folder/apache-ant-1.8.2-bin.tar.bz2
    4. tar jxvf apache-ant-1.8.2-bin.tar.bz2
    5. sudo cp -rp apache-ant-1.8.2 /opt/
    6. /tmp/antはもう要らないので削除
    7. そして環境変数ANT_HOMEを設定しPATHに加える。~/.profileに追加
      # apache ant see https://forums.ubuntulinux.jp/viewtopic.php?id=2791
      ANT_HOME=/opt/apache-ant-1.8.2
      PATH=$PATH:$ANT_HOME/bin
  3. 参考にした資料にはbuild.xmlを変更してデプロイまで一発でできるようにしてあったが、記述当時とbuild.xmlが変わっているのか単純にパッチ当てでは済みそうになかった。なのでここは標準のまま。
  4. adb installでインストール。ターゲットIDは自分で調べて変更する必要があった。複数のバージョンのSDKを共存させることができるが、idは入れた順番で違うようだ。
これで実機転送も出来、HelloWorldまでは無事動いた。無事動いたのだが、いろいろ設定していくとなると様々なxmlファイルをいじらなければならない。xmlと言う書式、人にも読めるのはいい特徴だが、ぱっと見で分かるものでもない。ここはやはりツールを使った方が楽だろう、eclipseを入れると重いけど、こういう設定だけ使ってソースはemacsでいじればいいやと割り切り、eclipseもインストールすることにする。

2012年1月27日金曜日

The Node Beginner Book てきとー訳

Node.js 日本ユーザグループのページから辿れるThe Node Beginner Bookをてきとー訳してみました。

The Node Beginner Book(てきとー訳)
  1. それなりに意訳しています。正確な内容は原文を参照下さい。
  2. 明らかに反対の意味であるような部分等ございましたら御連絡頂けると幸甚です。

2011年11月16日水曜日

plastex

LaTexをHTMLに変換するのはplasTexがよいらしい。と言うことでインストール

sudo apt-get install python-plastex

Thinking Forth の Latexソースを取得

アーカイブにはイメージファイルが含まれていないのでCVSリポジトリから取得する
export CVS_RSH=ssh
cvs -z3 -d:ext:developername@thinking-forth.cvs.sourceforge.net:/cvsroot/thinking-forth co thinking-forth

2011年11月15日火曜日

google code の wiki 飛ばした

google code のwikiはリポジトリに格納されているのでリポジトリの種類を変更すると無くなってしまう。
もちろん事前にバックアップしておけば問題ない。またはfront pageに全部書いとく。

2011年11月11日金曜日

JavaScript typo onlaod

ブラウザ上でJavaScriptがさっぱり動かなかったのでよくよく見たら
window.onlaod = function() {
    hogehoge....
}
onload を onlaod と typo。

文法上はなんの問題も無いのでjslint掛けても検出できない。皆どうやってチェックしてるんだろう?

node-jslint

$ nvm use v0.6.0
$ npm install jslint -g

毎回 nvm use しないとダメっぽい。調べきれていない。

node-jslint


$ npm install jslint -g
npm WARN jslint@0.1.0 package.json: bugs['web'] should probably be bugs['url']
/home/hideo/.node/v0.6.0/bin/jslint -> /home/hideo/.node/v0.6.0/lib/node_modules/jslint/bin/jslint.js
abbrev@1.0.3 /home/hideo/.node/v0.6.0/lib/node_modules/jslint/node_modules/nopt/node_modules/abbrev
nopt@1.0.10 /home/hideo/.node/v0.6.0/lib/node_modules/jslint/node_modules/nopt
jslint@0.1.0 /home/hideo/.node/v0.6.0/lib/node_modules/jslint

nvm インストール


$ sudo apt-get install curl
インストール後、ログインしなおす必要がある。
$ sudo apt-get install build-essential libssl-dev
$ git clone git://github.com/creationix/nvm.git ~/.node
.bashrcに
. $HOME/.node/nvm.sh
を追加(ドットはsouceと同意だそう)
初回は . ~/.node/nvm.sh と手動実行してもよい。
$ nvm install v0.6.0
atom 2GHz だと 15分ぐらい? screen,byobu等を介して実行した方が幸せかも。
$ nvm use v0.6.0

$ node -v
v0.6.0




2011年11月7日月曜日

Google 翻訳者ツールキット Tips?

場所

Googleで翻訳を選び、下のメニューから翻訳者ツールキットを選ぶ

操作補足

些か癖のある操作となっている。
  • 翻訳メモリの新規作成→翻訳メモリのアップロード画面でファイルを選択せずに名前だけ入力して「TMの追加」ボタンを押す
  • 出来上がったものを得る→ダウンロードする

使い方(自己流)

  • 別画面でGoogle翻訳を開いておく。ツールキット表示すると下部に機械翻訳を表示するが、エディットは出来ない。よって原文をGoogle翻訳に貼り付けていろいろ試してみる。
  • Web画面をURL指定で持ってこれない。ブラウザの保存を使うと画像とかまで引っ張ってきてしまうのでwget等で当該のhtmlファイルのみを取得する→Webはアップロード画面でウェブページタブを選択。

2011年10月28日金曜日

Using ediff as git mergetool

実際には各行の末尾に継続行 \ を付加する必要があった。
[mergetool.ediff]
    cmd = emacs --eval \"
(progn
  (defun ediff-write-merge-buffer ()
    (let ((file ediff-merge-store-file))
      (set-buffer ediff-buffer-C)
      (write-region (point-min) (point-max) file)
      (message \\\"Merge buffer saved in: %s\\\" file)
      (set-buffer-modified-p nil)
      (sit-for 1)))
  (setq ediff-quit-hook 'kill-emacs
        ediff-quit-merge-hook 'ediff-write-merge-buffer) 
  (ediff-merge-files-with-ancestor \\\"$LOCAL\\\" \\\"$REMOTE\\\"
                                   \\\"$BASE\\\" nil \\\"$MERGED\\\"))\"
参考:emacs - Using ediff as git mergetool - Stack Overflow