投稿

2月, 2014の投稿を表示しています

今までと違うUSBケーブルを使うとAndroidが認識しない問題

新しいマイクロUSBケーブルを買ってきたのだが、Macとつないでも、いつも出る「メディアデバイスとして認識」が表示されなくて、アプリをインストールできなかった さんざん悩んだが、解決方法は簡単で、USBデバッグを一度オフにしてからまたオンにしたらつながるようになった。

完全初心者のためのターミナル入門 6(ディレクトリを表示させる)

おそらく、デフォルトの設定では、$の前に現在いるディレクトリの名前しか表示されないだろう。 そのため、自分がいまどこにいるかわからなくなる事がよく有る。 そのときは、 pwd というコマンドを実行する どこでもいいので、pwdしてみよう。 すると現在の場所のディレクトリが表示されるはずだ。 ただ、いちいちpwdするのは面倒なので、$の前に常にパスが表示されるようにした方がいいと思う。 これまで学んだ事のいい復習にもなると思うので、これからやってみよう。 ターミナルの設定は ~/.profile というファイルに書かれている。 /の前の"~"(チルダ)はhome、つまりcdしたときに移動する場所という意味だ。 したがって、.profileはcdしたときに移動したところの直下に有る。 確認してみよう。 まず、cdして、そのあと、ls -laすればいいはずだ。 リストの中に.profileを見つけられただろうか 見つけたら、それを編集しよう。 vi .profile でviを立ち上げる このコマンドを入力するとき、全部手打ちするのは賢くない。 .prくらいまで書いてtabを叩けば、.profileと表示されるだろう。 viを起動したら、iでインサートモードに入って、一番下の行に #フルpathを表示する export PS1='[\u@\h \w]\$' と書き足しておこう。タイプミスしそうなのでコピペすればいいと思う。 #の先の文字はコメントとして無視される。 次に見たときに何が書かれているのかがわかるようにコメントを残しておこう。 記入が終わったら、escでコマンドモードに戻って、 :wq で保存して終了。 source ~/.profile というコマンドを実行して、設定内容を反映させる。(これはそういうコマンドだ) cdで適当なディレクトリに移動すると、$の前にパスが表示されるのを確認できるだろう。 完全初心者のためのターミナル入門 1(ls -laでファイルの一覧表示) 完全初心者のためのターミナル入門 2(cdでディレクトリ移動) 完全初心者のためのターミナル入門 3(viでテ

完全初心者のためのターミナル入門 5(↑キーでコマンドの再利用)

ターミナルでは、tab以外にも文字を直接打たくていいようにする機能がある。 ターミナルを起動してから打ち込んだコマンドはすべて履歴として残っていて、上キーでそれらを再利用する事が出来る。 同じコマンドを打つときは積極的に使おう。 行き過ぎた場合は下キーで戻れる 完全初心者のためのターミナル入門 1(ls -laでファイルの一覧表示) 完全初心者のためのターミナル入門 2(cdでディレクトリ移動) 完全初心者のためのターミナル入門 3(viでテキスト編集) 完全初心者のためのターミナル入門 4(sudoで管理者権限で実行)

完全初心者のためのターミナル入門 4(sudoで管理者権限で実行)

そろそろ、sudoについて学ぶ必要が有る。 Finderなどの表から見えるファイルは一般ユーザが自由に編集できるものが多いが、Terminalから扱う表からは見えない設定ファイルなどの多くは一般ユーザーには編集できないようになっている。 これは、root(管理者)として実行すれば解決するのだが、rootユーザはあらゆる命令を実行できるので、常にrootでいるのは非常に危険である。 そこで、必要な時だけ、管理者として実行する、sudoコマンド(super user do)を使う。 sudoをつけたコマンドはあらゆる権限による制限を無視して実行されるので安易に使ってはならない。(ただ、実際にはsudoが必要な事は非常に多いので、しょっちゅうsudoしてる) 例文: sudo vi /opt/local/apache2/conf/httpd.conf もしこれを実行すると、パスワードを聞かれる。 おそらく、Macのログインパスワードだろう。 それを入力する事で初めて管理者として実行する事が出来る。 完全初心者のためのターミナル入門 1(ls -laでファイルの一覧表示) 完全初心者のためのターミナル入門 2(cdでディレクトリ移動) 完全初心者のためのターミナル入門 3(viでテキスト編集) 完全初心者のためのターミナル入門 5(↑キーでコマンドの再利用)

完全初心者のためのターミナル入門 3(viでテキスト編集)

前回の記事で、コンピュータ内を自由に行き来できるようになった。 しかし、ただ行き来しているだけではしょうがない。 今回はファイルの編集方法を学ぶ。 ターミナルにはviというテキストエディタが標準で搭載されているのでこれを使ってファイルを編集しよう。 今回は、間違えてファイルを書き換えてしまわないように、練習用のファイルを作る。 cd でホームに戻ってから、 vi hellovi と打ってみよう。helloviという名前のファイルが存在しなければ、helloviという名前のファイルが生成され、同時にviが立ち上がる できたてなので、何も無い空のファイルだ。 viには、コマンドモードとインサートモードという二つのモードがある。 コマンドモードはコマンドを使えるモードで、インサートモードは、実際にファイルを書き換えるモードだ。 立ち上がった時のviはコマンドモードなので、 iキー を押して、インサートモードに入る。 すると、画面の一番下に -- INSERT -- と表示されるだろう。 この状態では、普通のテキストエディタのように、文章を編集できる。 試しに何かを書いてみよう。 書き終わったら、escでインサートモードから抜けて、コマンドモードに戻る事が出来る。 下のinsertの文字が消えたのを確認出来ただろうか。 さて、編集をしたら、今度は保存しよう。 コマンドモードである事を確認して、 :w と打ってreturnする(コマンドは一番下の行に表示される) すると、 "hellovi" [New] 4L, 10C written と一番下に出てきて、書き込まれた事がわかる。 基本的にコマンドは":"(コロン)から始まる。 変更を保存したので、viを終了しよう。 終了のコマンドは、 :q だ。 もとの画面に戻って来れただろうか。 保存と終了のコマンドは、 :wq として、同時に実行する事も出来る。非常によく使うので覚えておこう。 もう一度、vi hellovi と打って保存されているか確かめてみよう。 また、保存せずに終了するときは、 :q! とすると、変更を保存せずに、viを終了する事が出来る。

完全初心者のためのターミナル入門 2(cdでディレクトリ移動)

さて、前回の記事で、今いる場所に何があるかわかったので、今度は別の場所に移動しよう。 移動に使うコマンドは cd だ。(change directoryの略) cd / と打ってreturnすると、最上階に移動する。 /は一番上の階層と言う意味だ。 とりあえず cd / を実行してみよう。 何も起こらなかったら、元々最上階にいたと言う事だ。 また、ただ cd だけを実行すると、homeディレクトリに戻る これはおそらく/USER/user/という場所だと思う。(userはユーザ名) ではここから移動してみよう。 まず、 cd / と打って、tabを二連打してみよう。 すると、/のあとに続く候補が出てくる そして入りたいディレクトリの頭文字を打って、また、tabを打つと、他にその頭文字から始まるディレクトリが無いと、補完してくれる。 また、いくつか候補があっても、共通のところまでは補完してくれる。 途中まで補完された状態で、何が候補に残っているか知りたかったら、またTabを二連打しよう。 このように、常にtabキーを叩きながら進める事になるだろう。 ディレクトリの名前を完全に打ち込んだら、Returnする。 すると、そのディレクトリに移動しているはずだ。 現在の位置からの場所を指定したければ、/をつけないで始めればいい。 また、cdは複数の階層を一気に下る事も出来る。 各階層ごとに/で区切ればいい。 また、 cd .. とドットを二つ続けると上の階層にいける したがって、 cd ../opt/ というふうにすれば、一度階層をあがってから、別のディレクトリに入る事が出来る。 これらを駆使して、コンピュータ内のディレクトリを自由自在に行き来する。 完全初心者のためのターミナル入門 1(ls -laでファイルの一覧表示) 完全初心者のためのターミナル入門 3(viでテキスト編集) 完全初心者のためのターミナル入門 4(sudoで管理者権限で実行) 完全初心者のためのターミナル入門 5(↑キーでコマンドの再利用)

完全初心者のためのターミナル入門 1(ls -laでファイルの一覧表示)

いろんなターミナルの解説サイトがあるが、大抵は幅が広すぎる感じがする。 そこで、本当に初めての人が、ターミナルを少し使えるようになるための最低限の説明をする。 ターミナルを立ち上げると、 [user@USER-no-MacBook-Air ~]$ などとなっているだろう。 前半部分は設定したユーザー名によって違う それではまず、 ls と打ってReturnキーを押してみよう。 すると、ずらずらと何かが出てくるはずだ。 それは、今いる場所に有る、ファイルとフォルダの一覧だ。 次は、 ls -la と打ってみよう 今度は先ほど出てきたファイルが縦に並んで見やすくなった。 これはlsというコマンドに"l"と"a"というオプションをつけたからだ。 これで、今いる場所に何があるかがわかるようになった。 完全初心者のためのターミナル入門 2(cdでディレクトリ移動) 完全初心者のためのターミナル入門 3(viでテキスト編集) 完全初心者のためのターミナル入門 4(sudoで管理者権限で実行) 完全初心者のためのターミナル入門 5(↑キーでコマンドの再利用)

Cocos2d-xの勉強の参考にしたサイト(随時追加していきます)

Cocos2d-x|Lady Wendy 検索に必ず引っかかってくるサイト。コンテンツが非常に豊富だが、少し内容が古くなっている。 Cocos2d-x v3|Lady Wendy 上のサイトのver3版。まだそこまでページは多くない。 Cocos2d-x 3.0でスプライトの生成、移動、削除、イベント タッチイベントの使い方がわかりやすい OpenCV 備忘録: std::stringをchar*に変換する UserDefaultを使ってデータを保存するときに、Keyを動的に生成するのに使った。 C++11の文法と機能(C++11: Syntax and Feature) C++についての解説。簡潔で非常にわかりやすい。 cocos2d-xでiOSとAndroidの処理を分ける ツイートやレビューページへの誘導に使いました。 cocos2d-x 3.0でのiOSアプリに対するGameCenterの実装 タイトルの通りです。上のサイトと組み合わせて、簡単に出来ました。

Cocos2d-x 3.0 beta2をMacにインストール&iOS,AndroidでHelloWorldまで

Cocos2d-x v3.0beta2をインストール OSは10.9.1 http://d.hatena.ne.jp/b-koba5525/20121207/1354856144 基本的にここをみながらやる。日本語化はしなかった。 64bitか32bitかわからなかったので、ここを見た http://support.apple.com/kb/HT3696?viewlocale=ja_JP Eclipseが全画面表示できなかったので、ここを見てできるようにする。 http://d.hatena.ne.jp/ks0608/20110729/1311924247 途中でviを使うが、わからない人は、この辺を見る http://net-newbie.com/linux/commands/vi.html ターミナルも使うが、わからない人はググるか友達に聞く。 3:ターミナルを起動しcocos2d-xのフォルダへ移動後、以下のコマンドを実行の所だが、3.0ではテンプレートをxcodeから読み込めないらしいので、 cd /Applications/eclipse/cocos2d-x-3.0beta2/tools/project-creator で ./create_project.py -n <PROJECT_NAME> -k <PACKAGE_NAME> -l <cpp|lua|javascript> -p <PROJECT_PATH> ./create_project.py -n HelloWorld -k com.example.HelloWorld -l cpp -p パス を実行 すると指定したパスにプロジェクトができている。 できたファイルの中のproj.ios.macの中にxcodeのプロジェクトが入っているのでそれを開いて、 RunするとHelloworldができる。 けっこうコンパイルに時間がかかる。 そりゃC++から変換してるんだから当然かもしれないけど。 で、次はeclipseの方 ターミナルで、 proj.androidの場所に移動して、 ./build_native.pyすると NDK_ROOT not de

GestureListnerをDrawViewで動かすための最低限のコード

package com.example.left_and_right; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.os.Bundle; import android.view.GestureDetector; import android.view.GestureDetector.OnGestureListener; import android.view.MotionEvent; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout. activity_main ); DrawView view = new DrawView(getApplication()); setContentView(view); } } class DrawView extends View implements OnGestureListener{ GestureDetector gestureDetector ; public DrawView(Context context) { super (context); gestureDetector = new GestureDetector(getContext(), this ); } public void onDraw(Canvas canvas){ } @Override public boolean onTouchEvent(MotionEvent event){ gesture

GestureDetectorのonLongPressがタッチしただけで反応する

LongPressが少しタッチしただけでonLongPressに引っかかってしまいます。 StacOverFlowにはGestureDetectorを使わない別の解決策が出ているのですが、 http://stackoverflow.com/questions/11701826/long-press-android http://d.hatena.ne.jp/nosix/20120309/1331303770 onDown を実装して true を返すとの事でした。 http://mrbool.com/how-to-work-with-swipe-gestures-in-android/28088 ここによると2000ms押し続けるとLongPressが呼ばれるようです。 結局わからず。 今回は使わないのでいいのですが… ついでに見つけた情報 gestureDetector .setIsLongpressEnabled( false ); とするとLongPressを無効にできる。 http://developer.android.com/reference/android/view/GestureDetector.html#setIsLongpressEnabled(boolean)

GestureDetectorでDeprecatedと警告が出る件

http://stackoverflow.com/questions/12873708/gesturedetector-deprecated-issue StacOverFlowにありました。 gestureDetector = new GestureDetector( this ); だと警告が出るのを、第一引数にContextを指定するといいとの事です。 そこで、 gestureDetector = new GestureDetector(getContext(), this ); とすると警告が出なくなりました。

Sublime Text2でインデントにタブを使う

右下に「タブサイズ:4」などと表示されている所をクリックして、 メニューの一番上のIndent Using Spacesのチェックを外すとタブでインデントできる。 他にもConvert Indentation to Tabsでインデントをすべてタブに変えたり、タブの長さを変えたりできる。 Convert Indentation to Spacesだと、逆にインデントをすべてスペースに変えられる。

<caption>は<table>の中でしか使えない

他の人が書いたhtmlのデザインにsymfonyに当てはめている時にはまった。 字面から、単に見出しにつけるタグだと思ってtableの外に出したら、スタイルが効かなくなってしばらくはまっていた。 なんと下らないところではまってしまった事だろう。 まあはまるところなんて大抵くだらないものだが。