knorth55's memo

Technical memo by @knorth55

プログラミング

Python2.7でUnicode文字をjoin

Python2.7でUnicode文字をjoinすると不思議なことになる >>> a = u'\U0001f607' >>> a u'\U0001f607' >>> print(a) >>> a = a.join(u'\U0001f607') >>> a u'\ud83d\U0001f607\ude07' >>> print(a) ??????Unicode文字をつなげる際は >>> a = u'\U0001f607' >…

C++でuint8配列に32FC1などのfloat配列を格納する

Depth Imageは32FC1などのfloat型(32bit, 4byte)の配列である場合があります。 しかしROSのsensor_msgs/Imageのdataはuint8_t型(8bit, 1byte)の配列であり直接追加することはできません。ここでやるべきことはfloat型を4つのuin8_tに分割する変換です。 …

PyGraphvizのインストールで "No package 'libcgraph' found" (OS X)

pipでpygraphvizを入れようとすると下記のようなエラーが出た。 $ sudo pip install pygraphviz Collecting pygraphviz Downloading pygraphviz-1.3.1.tar.gz (103kB) 100% |████████████████████████████████| 112kB 4.8MB/s Installing collected packages…

rosjava + gradleでROSプログラムをscalaで書く

rosjava + gradle でscalaプログラムを書きました。 ROSのパッケージとしてgithubにあげているのでよければどうぞ。 基本的にはcatkin_create_rosjava_pkgとcatkin_create_rosjava_projectによって生成された設定ファイルを変更しているだけです。 rosjavaを…

scalaでインクリメント

scalaでインクリメントを行う際に++は使えないそうです。 javaと同じように書いて初めて気づきました。 a: Int = 0 a += 1 // a= 1

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

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

ROSの日本語入門書

最近知ったのですがROSの日本語ドキュメント(入門書?)がフリー公開されていました。 感激です。 詳説 ROSロボットプログラミング

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以外もあるそうです) …

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が変更できないと言われました…… スタートアップ修復はもちろんで…

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

digコマンドを使ってIPアドレスがDNSBLにリストアップされているかを確認します。 DNSBLとはDNS-Based Blackhole Listのことで、スパムを送ってくるサーバをリストアップしています。 dig [domain].dnsbl_server_name この際にdomainはIPアドレスの後ろから…