Pages

パズドラが起動できなくなったけど直った話

2014年12月28日日曜日

忘れもしない12月19日、パズドラが突然起動しなくなった。
降臨チャレンジのメフィストの途中から再起動しようとしたところ、起動しない。
ハクパでボスまで行って、ハクも闇水バッドマンもスキルたまっていたのに!
何度起動しても
起動→ガンホー画面→真っ暗→ホーム画面
となってしまう。
課金額は多分1500円くらいなので良いのだけど、結構良いモンスターを持っていたので、消えるとつらい。ヤミピィゲットを目前にして手に入れられなくなるのもつらい。

ということで、ぐぐってみた。
パズドラが起動できない状況について質問ですのように同じ状態の人が結構いるっぽい。

root化はしてない。知らぬ間にしてるかも?!と思い、一応チェック用アプリを入れてチェックしてみたけど、やっぱりしていない。
端末の再起動、他のアプリの消去なども行ってみたけど、だめ。

しかし、私には秘密のコードのスクショがある!!
一応、パズドラのバックアップを取って(バックアップは、Android版 パズドラを機種変更でバックアップ&データ移行方法を参考に行いました)、
パズドラを消去し、再インストール。
そして、データの修復を試みようとし、気づく。秘密のコードにデータの修復をする力はなかった。
Androidだとデータの引き継ぎを行う必要があったみたい…。(詳しくは、公式ページ参照)
落ち込む。ものすごく落ち込む。
ちなみに、再インストールをしたものは、普通に起動する。
再インストールしたものをアンインストールして、バックアップしたものを入れなおすと、起動しない。

アップデートすれば直るのでは…?と思い、12月22日のアップデートを待つことに。
直らなかった。全然駄目だった。

諦めきれなかったので、ガンホーさんに問い合わせることに。
問い合わせ申請フォームから問い合わせました。
データが初期化したわけではないので、駄目かなぁと思いつつも、これしか方法がないから、とりあえず問い合わせてみた。
運の良いことに、起動できなくなる直前に降臨チャレンジのベオークをクリアしていて、その時の、スクショを撮っていたので、現在のランク、使用している名前、クリアしたダンジョンの名前、クリアした時間などが正確にわかった。
スクショ撮っといてよかった。
パズドラWの方は、全然覚えてなかったけど、『パズドラWのデータは復旧できなくても問題無いです』と書いておいた。
持ってるアイテムは、覚えてるやつ(ピンクのトンガリとか。レベルは不明)と現在装備している物をパズドラで繋がっている人に調べて貰って書いた。

そしたら、昨日復旧した!!!!
ガンホーさんありがとう!!!!!!
ということで、今日は闇の宝玉のためにヴァルキリー回ってました(∩´∀`)∩ワーイ

ちなみに、問い合わせは、12月22日にして、12月26日に復旧してもらえました!
起動できなくて困っている人は問い合わせてみよーう!


raspberry pi アプリケーションの自動起動

2014年11月18日火曜日

ラズベリーパイを起動した時にアプリケーションが自動起動するように。
Auto Login and Auto Start in Raspberry Pi と Auto running programs を参考にしました。

まずは、自動ログイン
/etc/inittab の
1:2345:respawn:/sbin/getty --noclear 38400 tty1 をコメントアウトして、
1:2345:respawn:/bin/login -f pi tty1 /dev/tty1 2>&1 に変更
再起動したら自動ログインできるようになってました。

次に、自動起動の設定
/etc/rc.local に、
sudo python /home/pi/hoge.py
を書いただけ。
このやり方が正しいのかかなり怪しいのですが、一応起動はします。

そして、今、Enterキー問題に悩まされています。(linux上では、returnキーとenterキーが違うものらしい…?)



raspberry pi と ログ出力(logrotate)

2014年11月17日月曜日

先日、raspberry pi と vnc を書いた所、
研究室の教授に「組み込み単機能コンピュータでx11を起動させるのは重すぎてあまりスマートではない」と指摘を受けたので、
アプリケーションの自動起動+ファイルへのログ出力
を行うことにしました。

今回は、logrotateを利用したログ出力に成功したので、それのメモ。
手探り状態でなんとか動いたという感じなので、おかしい所が多々あるかもしれないです…。

まずログローテーション(logrotate)を使ってみる ( httpd(apache)の設定例 )を参考に、logrotateがインストールされているか確認。
私の使用しているraspbianでは、デフォルトで入っていました。

/etc/logrotate.d/hogeというファイルを作成
中身はこんな感じ
1日毎にファイルを新しくして、(そういうわけじゃなかった(´・ω・`))4日分or1M分のファイルを残すようにしています。
詳しくは、上のサイトや、logrotateの設定ファイルで指定できる主なコマンドを参照してください。

私は、syslog経由でログを送ったので、
/etc/rsyslog.confの中身を書き換えました。

最後の行の
local0.*    -/var/log/hoge.log
を付け加えただけです。
local0については、システム管理の基礎 syslogdの設定をマスターしよう (2/3)のFacilityを参考に決めました。
私の理解が正しいのかわからないのですが、おそらくlocal0〜local7は任意のアプリケーションのために使えるのではないかと…。

ここで再起動。

pythonからログを出力するには、

>>> import syslog
>>> syslog.openlog('test', syslog.LOG_PID | syslog.LOG_PERROR, syslog.LOG_LOCAL0)
>>> syslog.syslog('test test test')
test[3227]: test test test
>>> syslog.closelog()

としました。
参考にしたのは、以下のサイト

ここで送ったログが/var/log/hoge.logに
Nov 17 18:34:31 raspberrypi test[3227]: test test test
というような感じで入ります。
めでたい。

あとは、自動起動。
明日がんばるー。


raspberry pi と vnc

2014年11月14日金曜日

久しぶりの更新!

raspberry pi と vnc の話。
ちょっと苦労したのでメモ。

やりたいこと
・ラズベリーパイの中にあるプログラムをディスプレイ無しで実行したい
・プログラムは、ラズベリーパイに繋いだキーボードの入力を受け取りたい
・手元のMacからラズベリーパイで動いているプログラムの様子を見たい。(どんな入力を受け取っているか。どんなログが出てるか。)

で、今まではMacで同じことをしていて、その時は、
・手元のMacから、プログラムを動かすMacに、vnc接続する
・手元のMacから、プログラムを動かすMac上のプログラムを実行する
・プログラムを動かすMacに繋いでいるキーボードから値を入力をする
という感じで、何の苦労もなく動かすことができていた。

まぁラズベリーパイでも同じことが簡単にできるだろうなんて考えていたのですが、ちょっと大変でした。

まず、“raspberry pi vnc”みたいな感じで検索をするとTightVNCというものの情報ばかり出てくる。
で、linuxの知識が全くない私は、何の迷いもなくTightVNCをapt-getしちゃったわけなのですが、これがMacのvncと全然違う。
Macにvnc接続すると、接続先と接続元で同じ画面が表示されて、どっちからでも操作できるーみたいな状態になって私の“やりたいこと”が簡単にできたのですが、TightVNC経由だと、全く別の画面が表示される。
つまり、手元のMacから見えている画面でプログラムを実行しても、ラズベリーパイに接続しているキーボードから入力は受け取れない。(頑張ったらできるのかな…)

で、色々検索していたら、x11vncというものを発見。
こっちだと、同じ画面が見えるらしい。
(TightVNCとx11vncの違い:Linuxでディスプレイに表示中のXに対してVNCする(X11VNC)
ということで入れてみた。
インストールは、
$ sudo apt-get install x11vnc
するだけです。
で、パスワードを設定したりするらしい。
多くのサイトでは、
$ x11vnc -storepasswd
を実行するみたいだけど、私は、これで設定しても上手く接続できなかったので、
このページ『パスワードを設定する』を参考にしました。(結局やっていることは同じように見えるけど…)
$ mkdir ~/.x11vnc
$ x11vnc -storepasswd <password> ~/.x11vnc/passwd

そして、
$  x11vnc -display :0 -rfbauth ~/.x11vnc/passwd 
を実行すると、ポート5900番でvnc接続が出来るようになるので、vnc://<address>:5900で接続できます。
常に動作させるようにするには、オプションとして、 -forever を付けてください。
 x11vnc -forever -display :0 -rfbauth ~/.x11vnc/passwd 

ただし、ターミナルモード(???)だと、繋げないので、
 startx
をお忘れなく。
startxは、sshじゃ行えないので、ラズベリーパイにディスプレイを繋いで、行う必要があります。多分。
でも、ラズベリーパイはディスプレイに繋がないつもりなので、毎回行うのは無理です。
なので、最初からGUI画面が出るように設定しました。
設定の仕方は、Raspberry Piを別のPCからリモート操作の『自動起動』のあたりを参照してください。

ここまでできれば、私のやりたかったことは全てできるのですが、
毎回sshで繋いで、x11vncを起動して、というのは非常に面倒なので、自動起動の設定。
多くのページで、~/.config/autostart/x11vnc.configに以下の内容を書けと書かれています。(ちなみに、私は、.configの下にautostartがなかったので、作りました。)

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -forever -display :0 -ultrafilexfer
StartupNotify=false
Terminal=false
Hidden=false

ただ、私は、これだとうまく起動していないような感じだったので、

[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec=x11vnc -forever -display :0 -rfbauth /home/pi/.x11vnc/passwd
StartupNotify=false
Terminal=false
Hidden=false

としました。
これで、めでたく自動起動もできるように!

本当は、ラズベリーパイを起動した時に、プログラムを実行とかもやりたいけど、面倒なので、後回し。




iOS Custom Class

2014年7月31日木曜日

iOSの開発でCustom Classを設定するのに手こずったので、メモ。
最初、下の図のピンクで囲われていた部分をクリックしてた。



こっちを選択してしまうと、classが選択できない。



下の図の場所をクリックすると、周りが青色で囲われる。





無事選択できた(∩´∀`)∩ワーイ





UDPソケット通信

2014年5月23日金曜日

頑張って、UDPソケット通信を利用したandroidとopenFrameworks(PC)の通信について、
研究室wikiに書いた…
疲れた…
疲れて、最後、プログラムしか載せてない…

http://lab.siio.jp/index.php?How2Socket

PythonとFT245RL

2014年5月22日木曜日

研究室のwikiにPythonからhttps://github.com/snmishra/ftd2xx経由で
FT245RLを使うためのプログラムを載せてみた。
http://lab.siio.jp/index.php?FT245RL_MacOSX#e08a45e0

需要は少なそうですが、私がこれを使った時(2年位前!)なかなか情報が出てこなくて、
苦労したので、誰かの役に立てば良いです…


nc(NetCat)コマンドを使ってUDPソケット通信をした話

2014年5月16日金曜日

忘れないようにメモ

送信側

受信側



openFrameworksとAndroid

2014年5月7日水曜日

サンプルを実行する→動く→ファイル(ofApp.cppなど)を開く→errorだらけになる



という問題が起きて悩まされた。


Eclipse -> Preferences -> C/C++ -> Code AnalysisにあるSyntax and Semantic Errorsのチェックを外すだけでした。


キキララワークショップに参加しました☆

久しぶりのブログ(∩´∀`)∩ワーイ

先日、DolceDecoさん主催のワークショップに参加してきました☆
ララが作った星スイーツ綿棒BOX を作ろう!

並べただけになってしまったり、肝心のキキララが隠れてしまったりと、なかなかうまく行かなかったのですが、楽しかったです。



マルチスレッドプログラミング

2014年2月14日金曜日

病み上がりなのに、プログラム書いてたら楽しくて、やめられなくなってしまった!
しかし、ずっと書かなきゃ書かなきゃと思っていたマルチスレッドなプログラムを書いたぜ!いえい!
まだ、システムには組み込んでいないけど、一応仕組みをメモ

まず、下のようなプログラムを書くと各スレッドが1回ずつ実行される。

実行結果は、
cat
dog
rabbit
になります。

ちなみに、thread1 = threading.Timer(1, cat)の'1'は、1秒後に実行するということ。
threading.Thread()を用いれば、時間指定はしません。多分。
今回は、繰り返し処理がしたかったので、threading.Timer()を用いました。

で、繰り返し処理をできるようにしたのが、こちら。
スレッドのターゲットの中でもう1回スレッドを作るだけ。
簡単!
私はすごい苦労したけど!
作った後に、startするの忘れてたりして、???となってました。


ちなみに、実行結果は、以下のようになります。
cat
cat
dog
cat
cat
rabbit
cat
dog
cat
cat
cat
dog
cat
rabbit
cat
cat
dog
cat



python-twitterでDM操作

2014年2月13日木曜日

一昨日まで夜になると39度(!)の熱が出て大変だったのですが、
回復してきたので、プログラムのお勉強をしていました。

python-twitterを使って、DMを操作してみたので、メモ。
参考にしたのは、
さくらVPS上でpython-twitter (その3)
です。

まずは、いつも通り、
>>> api = twitter.Api(consumer_key='hogehoge', consumer_secret='hogehoge', access_token_key='hogehoge', access_token_secret='hogehoge')

その後、
>>> dm = api.GetDirectMessages()
これで最新の20件分の受信メッセージオブジェクトがリストに入る。

あとは、
>>> print dm[0].text
とやると、最新のメッセージの内容が出力されたり、
>>> print dm[0].sender_screen_name
とやると、メッセージを送信したユーザのIDが出力される。

とっても簡単〜〜
あとで、送信のもやってみる。

dm[0].以降に続く命令(?)は、
$ pydoc twitter.DirectMessage
で見られます(∩^ω^∩)

…ただ、一々見に行くのが面倒なので、ここにメモしておく。
 |  created_at
 |      The time this direct message was posted.
 |
 |  created_at_in_seconds
 |      The time this direct message was posted, in seconds since the epoch
 |
 |  id
 |      The unique id of this direct message.
 |
 |  recipient_id
 |      The unique recipient id of this direct message.
 |
 |  recipient_screen_name
 |      The unique recipient screen name of this direct message.
 |
 |  sender_id
 |      The unique sender id of this direct message.
 |
 |  sender_screen_name
 |      The unique sender screen name of this direct message.
 |
 |  text
 |      The text of this direct message


Bluetooth Mate Gold

2014年2月5日水曜日

Bluetooth Mate Goldがすごい。
前のBTモジュールの時の苦労はなんだったのと思うくらいすぐ繋がる。
忘れないようにメモ。
マニュアルは公式ページで取得。

配線はArduinoとBluetoothの接続を参考にしました。
こんな感じ



Arduino Duemilanoveと繋いでます。
Bluetooth Mateが赤く点滅すればおk
最初、Arduino Microと繋いだのですが、何故か点滅しなかった。
5Vだったからかな…
マニュアルには3.3V-6Vまでおkと書いてあったけど…
あとでまた試してみる。

次に、Bluetooth MateとPC(Mac OS 10.9.1)のペアリング。



マニュアルによると、“FireFly-○○○○”という名前で表示されるらしいのだけど、私のは“RNBT-28D7”と表示されていました。
ペアリングに必要なPINコードは“1234”

ペアリングできたらBluetooth Mateの設定。
私は、CoolTermからやりました。

シリアルポートの設定(Options->Serial Port)はこんな感じ。


ポートはこれ。


Local Echoのチェックを忘れると、返答が見えない気がする


この設定で、Connectして、$$$と入力すると(エンターなし)コマンドモードに入れてCMDと返ってくる。
エンターした後Eと入力するとなんか出てくる。



コマンドはマニュアル参照。

SN,で名前が変えられるので、kktnBTにしてみた。



Bluetoothモジュール

最近は、研究のためにBluetoothモジュールを使ってます。
先輩から頂いたこれ



を使っていたのです。
が、情報が少ない?
使い方がよくわからない。

http://www.george-smart.co.uk/wiki/Bluetooth_RS232_Module
http://www.seeedstudio.com/wiki/Serial_port_bluetooth_module_(Master/Slave)
↑ここらへんのページを参考に進めていたのですが、なんだかうまくいかない。
まず、シリアル通信ができない。
むむむ


ということで、SparkFunのWRL-12580 Bluetooth Mate Gold



を購入!
値段6倍くらい!w

ということで、今からこの子と格闘します〜〜〜



SRM606

2014年2月3日月曜日

SRM606に参加したので、書いたプログラムを残しておく。
250-point(通った)


500-point(落ちた)
同じ部屋の人のコードを見てて、私のはわけわからなすぎて駄目だなぁと思った。
後でちゃんとやり直す。



レートは1096に下がってしまいました(´・ω・`)
まぁまたがんばろ(´・ω・`)

今日はSRM607に参加するぞ〜
今月は丁度良い時間が沢山あって嬉しい(∩^ω^∩)


Arduino Fio への書き込み

2014年1月14日火曜日

初めてArudino Fioへの書き込みが初めて成功した!
ただ,触ったのが久々なので,なんで上手くいかなかったのか,どうして上手くいったのかがよくわからない.
とりあえず,現在の状態を書いておく.

Arduino IDEを利用
ボードの設定は,Arduino Pro 3.3V 8MHz ATmega328
XBeeは外しておく

書き込んだプログラム

プログラムの中身が無いから書き込めたのかな…
(どうでも良いけど,gistにArudinoがあってびっくりした)


参考にしたブログ↓
FIO(Funnel I/O)メモ


----追記----
Fioに書き込めなかった理由が判明.
昔から使っているMacBookAirだと書き込めるが,
最近作ったデスクトップMac@Quoだと書き込めない模様.
Arduino IDEのバージョンは一緒.
ちなみに,Arduino Microは,Quoの方でもいける.
Quoの問題だとしたらなかなか闇が深そうである…(TωT)


Javaの構造体

2014年1月13日月曜日

Javaで構造体を使おうとして躓いたのでメモ。

Javaには構造体がないらしい。
構造体の代わりにクラスを用いるらしい。

どうして今まで躓かなかったんだろう。
自分でプログラム書く時は、構造体を使おう!って思う前にクラスを使おう!って思ったのかな…
(今回は参考書(?)の真似をしようとして躓いた)

また困ったときのために、コードを残しておく。
著作権的にそのまま載せると問題がありそうなプログラムだったので、
ちょっといじってます。



Pythonメモ@並列処理編

2014年1月10日金曜日

Pythonで並列処理を行いたいと思ってthreadingモジュールを見ていたのだけど、
multiprocessingなるモジュールもあるらしい。
公式のドキュメントには
multiprocessing はPythonの標準ライブラリのパッケージで threading とよく似た API を使ってプロセスを生成することができます。 multiprocessing パッケージを使用すると、ローカルとリモート両方の並列制御を行うことができます。また、このパッケージはスレッドの代わりにサブプロセスを使用することにより、グローバルインタプリタロック ( Global Interpreter Lock ) の問題を避ける工夫が行われています。このような特徴があるため multiprocessing モジュールを使うことで、マルチプロセッサマシンの性能を最大限に活用することができるでしょう。 (16.6. multiprocessing — プロセスベースの “並列処理” インタフェース
と書かれている。
わかったようなわからないようなということで、プロセスとスレッドの違いを調べてみた。
プロセス、スレッド、ファイバ、タスク、ジョブ、違いを整理してみよう
プロセス:プログラムの実行単位
スレッド:プロセスに1つ以上含まれる。CPUの実行単位。
ということらしい。
ふむ。
多分、私のやりたいことだとどっちでも良さそうなので、
とりあえずmultiprocessingを使ってみる〜〜〜

そんなことを調べていくうちに見つけたブログ記事。
if __name__ == '__main__': について
知らなかった〜勉強になった〜