knorth55's memo

Technical memo by @knorth55

Pythonの引数が参照渡しである影響

Python 2.7でちょっとつまってしまったので検証してみたら、関数の引数は以下のような例で変更されるらしい。
Pythonは参照渡しなので可変オブジェクトであるリストに関してはこういった破壊的(?)な処理が行われます。

参考サイト
Pythonの引数は全て参照渡しの件について - k_kinukawa's diary

$python 
>>> list = [1,2,3,4]
>>> def f(list, x):
...     list[x] = 0
...     return list
... 
>>> list_ = f(list,1)
>>> print list
[1, 0, 3, 4]

Ubuntuがフリーズした際に再起動するためのMagicSysReq Key

Ubuntuがフリーズしてしまった時には「Alt + SysReq + Command Key」を正しく入力することで安全に再起動できる。
SysReqキーはない場合はPrtScキーで代用のようです。
Command Keyは「REISUB」の順に押していく。(REIでプロセスを強制終了できる場合もあるらしい)

ARdroneのシミュレーター(tum_simulator)のインストール方法(Ubuntu14.04LTS)

ARdroneのシミュレーターことtum_simulatorをUbuntu14.04LTS + ROS Indigoで動かします。

(2015/10/24訂正)

1. ardrone_autonomyのインストール

・Debianパッケージの場合

sudo apt-get install ros-indigo-ardrone-autonomy

(Indigo以外もあるそうです)

・ワークスペースにコンパイルする場合

cd ~/catkin_ws/src
git clone https://github.com/AutonomyLab/ardrone_autonomy.git -b indigo-devel
cd ~/catkin_ws
catkin build

2. tum_simulatorのインストール

今回はワークスペースにシミュレーターをいれます。

cd ~/catkin_ws/src

git clone https://github.com/algron/tum_simulator.git -b indigo

cd ~/catkin_ws

catkin build

(2015/10/24 tum_simulatorのレポジトリを訂正)

github上を見る限りの最新のレポジトリを選びました。
tum-vision/tum_simulatorというのが最上位のレポジトリですがIndigo用はまだのようです。

3. テスト

source ~/catkin_ws/devel/setup.bash

roslaunch cvg_sim_gazebo ardrone_testworld.launch

しばらく待つとGazeboが起動して3Dモデルが表示されます。(初回はしばらくかかることがあります)

別のターミナルなどから

rostopic pub -1 /ardrone/takeoff std_msgs/Empty

送ってみるとARdroneが離陸してホバーリングします。

4. その他

ARdrone_helpersなどを入れる事でjoystick操作が可能になるそうなどと色々おもしろそうです。

OS X上でWindowsブータブルUSBが作れない?

USBにシステム修復ディスクを作るためにisoファイルを落としましたがWindowsのブータブルUSBをOS X上では作れませんでした。

OS X上でやるにはBootCampでWindowsを動かさないとダメみたいです。

ちなみにLinux上では作るアプリがあります。

bootrec /RebuildBcdで"required system cannot be found"とでるエラー

突然ですがうちのWindows7が起動しなくなりました。

なのでUSBで作ったシステム修復ディスクでシステム修復を行ったのですが、bootmgrが悪いというのは検出してくれるのですがstartup optionsが変更できないと言われました……

スタートアップ修復はもちろんできませんでした……

 

コマンドプロンプトでPartation 2をアクティブにしてbootrec /fixboot、bootrec /fixmbrが成功してからbootrec /RebuildBcdを行うと、"required system cannot be found"のメッセージが……

色々調べてみるとUSBポートを変えればできたという報告があり今絶賛ためしています。(報告はここ

 

 

 

IPアドレスがDNSBLに登録されているかをdigで確認する

digコマンドを使ってIPアドレスがDNSBLにリストアップされているかを確認します。

DNSBLとはDNS-Based Blackhole Listのことで、スパムを送ってくるサーバをリストアップしています。

dig [domain].dnsbl_server_name

この際にdomainはIPアドレスの後ろから順にかきます。

 

例えば12.34.56.78をについてspamcop.netで調べたい場合は

dig 78.56.34.12.bl.spamcop.net

を実行します。