futabooo blog

色々手をつけすぎてすぐに忘れるので備忘録

.gitignoreを簡単に作れるサイト

gitignore.io - Create useful .gitignore files for your project

UnityとOSXでジェネレイトするとこんな感じ。
コマンドラインcurlで行けるみたいです。便利!

# Created by http://www.gitignore.io

### Unity ###
[Ll]ibrary/
[Tt]emp/
[Oo]bj/

# Autogenerated VS/MD solution and project files
/*.csproj
/*.unityproj
/*.sln
/*.suo
/*.user
/*.pidb


### OSX ###
.DS_Store
.AppleDouble
.LSOverride

# Icon must ends with two \r.
Icon


# Thumbnails
._*

# Files that might appear on external disk
.Spotlight-V100
.Trashes

MacでWindows用キーボードをいい感じに使う設定

過去に3回ぐらい同じコトしようとして調べた気がするのでそろそろメモ\(^o^)/

環境

OS X 10.9.1
・キーボード東プレ NG0100 REALFORCE91U

システム環境設定

CapsLockは使わないのでいりませんでした。
f:id:futabooo:20140105224442p:plain

KeyRemap4MacBook

KeyRemap4MacBook - OS X用のソフトウェア
癖で「半角/全角」押してしまう時もあるので。
f:id:futabooo:20140105225541p:plain

PCKeyBoardHack

PCKeyboardHack - OS X用のソフトウェア
macのキーボードのように日本語入力のonoff切り替えできるように。
f:id:futabooo:20140105230443p:plain

windowsでもmac風にしたいとき

下記参照、結構簡単。
無変換、変換キーでWindowsのIMEをMac風に操作する

vagrantでホストOSとゲストOSでフォルダをシェアする

ホストOSで編集作業等をするために、共有フォルダの設定を行う。

$ sudo ln -fs /vagrant /home/vagrant/nodejs

こんなパスにhello.jsを作成する。
/Users/futabooo/Vagrant/centOS64vm_clone/hello.js

ゲストOSでも見れる!

[vagrant@localhost ~]$ ls /home/vagrant/nodejs/
Vagrantfile  hello.js

AndroidのEditTextにフォーカスがある時にキーボードの全画面表示を抑制する

XML上で、EditTextのプロパティで下記の1行を追加

<EditText android:imeOptions="flagNoExtractUi | flagNoFullscreen" />

flagNoExtractUiはAPIレベル1使えるオプション
flagNoFullscreenはAPIレベル11から使えるオプション

今後はflagNoFullscreenだけ使っていればいいと思いますが、
いまだにAndroid2.3とかもシェアがあるので両方指定しとく。

ただこのオプション、端末側の設定で強制的に効かなくすることもできるようなので、
端末によってはフルスクリーン表示が抑制できないかもしれません(´・ω・`)

更に、フルスクリーン表示しなくすることで下のViewが見えなくなって入力してる文字がみえなくなるかも。
その時の解決方法まではまた今度。

参考
EditorInfo | Android Developers

node.jsの環境を再度構築する

$ sudo yum install wget git gcc-c++ openssl-devel
$ git clone git://github.com/creationix/nvm.git ~/.nvm
$ source ~/.nvm/nvm.sh
$ nvm install 0.10.24
$ nvm use v0.10.24
$ nvm alias default v0.10.24

3行目のところを.bashrcに書いておく
6行目やっとかないとnodeコマンド使うのに毎回use叩く。

Vagrant導入時につまづいたことの解決策

だいぶバージョンの違いなどにやられたので、これを書いた時点での自分の環境を。

MacOSX 10.9.1
Vagrant 1.4.0
VirtualBox 4.3.4

ぶちあたった問題点は下記2点
・GestAdditionsのバージョンの違い
・ネットワークの設定

以下解決策

GestAdditionsのバージョンを更新する

こちらを参考に。
VagrantのboxのGuest Additionsのアップデート方法 - Qiita [キータ]

$ vagrant plugin install vagrant-vbguest
$ vagrant vbguest

これでしばらく待てばアップデート完了する。

GuestAdditions 4.3.4 running --- OK.

とかって表示される。
このままだと自動で更新が走るので、手動でやりたい場合は設定ファイル作成する。
/Users/futabooo/.vagrant.d/Vagrantfaile

Vagrant::Config.run do |config|
    # we will try to autodetect this path.
    # However, if we cannot or you have a special one you may pass it like:
    # config.vbguest.iso_path = "#{ENV['HOME']}/Downloads/VBoxGuestAdditions.iso"
    # or
    # config.vbguest.iso_path = "http://company.server/VirtualBox/%{version}/VBoxGuestAdditions.iso"
  
    # set auto_update to false, if do NOT want to check the correct additions
    # version when booting this machine
    config.vbguest.auto_update = false
 
    # do NOT download the iso file from a webserver
    config.vbguest.no_remote = true
end

ネットワーク設定についてパッチを当てる

参考
Vagrant 1.4.0 で private_network を指定しているとエラーになる件 - akishin999の日記

こんなエラーが出る。

The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

/sbin/ifdown eth1 2> /dev/null

Stdout from the command:



Stderr from the command:

エラーメッセージっぽい最初の2行で検索してると、別のエラーの解決策にあたる。
3行目のところで検索したら参考のURLがひっかかり解決に至りました。ありがたい。

ソースを修正する。
下記を参考に。
Merge pull request #2628 from makern/ifdown-fix · 70b662e · mitchellh/vagrant · GitHub


これで無事にブラウザにHello worldが表示されました。

cocos2d-x 3系へ書き換えてみる

書き換えできなかったので、知っている人がいれば教えていただきたい!

2系だとボタンが押された時の動作を設定するのにこんな感じ

MenuItemFont* retryLabel = MenuItemFont::create("Retry", this, menu_selector(HelloWorld::menuRetryButton));

void HelloWorld::menuRetryButton(CCNode *node)
{
    CCDirector::sharedDirector()->getTouchDispatcher()->removeAllDelegates();
    
    CCScene* gameScene = (CCScene*)HelloWorld::create();
    CCDirector::sharedDirector()->replaceScene(gameScene);
}


3系で書きなおしてみるもエラーが出ていて使えない。
MenuItemFont::createでの2番目の引数が良くないみたいなのだが分からない。

MenuItemFont* retryLabel = MenuItemFont::create("Retry", CC_CALLBACK_0(HelloWorld::menuRetryButton, this));

void HelloWorld::menuRetryButton(Object* pSender)
{
//    Director::getInstance()->getTouchDispatcher()->removeAllDelegates();
//    Director::getInstance()->r
    
    Scene* gameScene = (Scene*)HelloWorld::create();
    Director::getInstance()->replaceScene(gameScene);
}


ちなみに上記でコメントアウトしている部分も書き換えができていないので、分かる人いれば教えて欲しいです。
2系

CCDirector::sharedDirector()->getTouchDispatcher()->removeAllDelegates();


3系

Director::getInstance()->この先がわからない\(^o^)/