VMware Player 6.0.2 にアップデートしたら、vmnetdhcp.confが

VMWare Player を6.0.2にアップデートしたあと、ゲストOSに向けてgit pushしてみたらつながらない。

ゲストOSのIPアドレスは固定していたのに繋がらないのでvmnetdhcp.confを確認したところ、アップデート時に上書きされていることに気付きました。

該当箇所を書き換えて、コマンドプロンプトでVMwate DHCP Serviceとを再起動したら元の設定に戻り無事push出来たのでした。

 

ちなみに、アップデートに伴ってvmnetcfg.exeもなぜか起動しなくなったので、

Laba dabdabdab life: Download vmnetcfg.exe and vmnetcfglib.dll for VMware Player 6

を参考に、dllとexeを上書きしてこちらも無事解決。

 

 

Blenderでトランスポッドをモデリングしてみた

前回に続き今回は特命戦隊ゴーバスターズのアイテム

「トランスポッド」をモデリングしてみました。

 

f:id:tkawanaka:20140423091139p:plain

 

キャラクターモデルにアペンドして

f:id:tkawanaka:20140423091254p:plain

こんな感じ。小さいので多少のアレはごまかせます。

 

トランスポッドの次は、モーフィンブレスかな。難しそうだけど。

 

Blenderでレッドバスターをモデリングしてみた

Blenderの練習として

特命戦隊ゴーバスターズのレッドバスターを

作成してみました。

細かく見るとアレですが、だいたい合ってると思います。

f:id:tkawanaka:20140418143253p:plain

モーフィンブレスとトランスポッドはまだ作ってません。

 

f:id:tkawanaka:20140418143620p:plain

押川さんの走り方を真似してポージング。動かすと破たんします。

モデリングもさることながら、ウェイトペイントやUVマッピングも難しい。

もっと上手になりたい。

GET search/tweets with ZendService\Twitter

1. Install ZendService\Twitter

comporser.json

"require": {
    "zendframework/zendservice-twitter": "2.1.*"
}

install

php composer.phar install or update

 2. Create an twitter application

Prepare below keys to use twitter api

API key, API secret, Access token, Access token secret 

 

3. ZendService\Twitter\Twitter\Twitter instance

in your contoroller

use ZendService\Twitter\Twitter;

class FooController extends AbstractActionController
{
    public function twitterSearchAction() {
        $apiKey = 'YOUR_API_KEY';
        $apiSecret = 'YOUR_API_SECRET';
        $accessToken = 'YOUR_ACCESS_TOKEN';
        $accessTokenSecret = 'YOUR_ACCESS_TOKEN_SECRET';
        
        $config = array(
            'access_token' => array(
                'token'  => $accessToken,
                'secret' => $accessTokenSecret,
                ),
            'oauth_options' => array(
                'consumerKey' => $apiKey,
                'consumerSecret' => $apiSecret,
                ),
            'http_client_options' => array(
                'adapter' => 'Zend\Http\Client\Adapter\Curl',
                'curloptions' => array(
                    CURLOPT_SSL_VERIFYHOST => false,
                    CURLOPT_SSL_VERIFYPEER => false,
                    ),
                ),
            );

        $twitter = new Twitter($config);
        
        // Verify your credentials:
        $response = $twitter->account->verifyCredentials();
        if (!$response->isSuccess()) {
           die('Something is wrong with my credentials!');
        }

        // Search for something:
        $response = $twitter->search->tweets('#zf2');
        foreach ($response->toValue()->statuses as $tweet) {
            printf("%s\n- (%s)\n", $tweet->text, $tweet->user->name);
        }
    }
}

ZendService\Twitter — Zend Framework 2 2.3.1 documentation - Zend Framework

 

 

さくらのApacheが2.2になりzf1のプロジェクトの.htaccessのrewriteが効かない

さくらのレンタルサーバ(スタンダード)のapacheが1.3から2.2にバージョンアップしてから、Zend Framework1系のプロジェクトのルーティングが効かなくなりました。

 

ルーティングが効いていないということは、.htaccessしか原因が考えられないので、

いろいろためしたのですが、apacheのログに

Negotiation: discovered file(s) matching request: ....

という見慣れないエラーが。

 

これをキーワードにググった結果、

以下の記事に

Vinay's Blog: Apache: Negotiation: Discovered File(s) Matching Request: None Could Be Negotiated

AddType application/x-httpd-php .php

と加える必要ありとのことなので試したら無事動きました。

 

最終的な.htaccessは以下の通り。

AddType application/x-httpd-php .php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

 

同じサーバー上で動いているZend Framework 2のプロジェクトは、何の影響もなかったのが謎です。

 

 

[Zend Framework 2]Send mail with view template

module.config.php

    'view_manager' => array(
        'template_map' => array(
            'mail/foo'            => __DIR__ . '/../view/MODULE_NAME/mail/foo.phtml
        ),

 

Controller


$data = ('name'=>'tkawanaka', 'address'=>'Japan', 'email'=>''foo@example.com);
$this->renderer = $this->getServiceLocator()->get('ViewRenderer'); 
$content = $this->renderer->render('mail/foo', $data);

$mail = new Mail\Message();
$mail->setBody($content);
$mail->setFrom($data['email'], $data['name']);
$mail->setTo('to@example.com');
$mail->setSubject('send mail with view template');
$transport = new Mail\Transport\Sendmail();
$transport->send($mail);

 

foo.phtml


name: $this->name
address: $this->address
email: $this->email

VMWare Player上のゲストOSに外部PCからアクセスするときのポイント

今回やりたかったことが以下の図。

f:id:tkawanaka:20131126141143p:plain

自宅のネットワーク内にあるWindows7マシンにVMWare Playerを使ってCent OSを立てて、そこにメインのPCからアクセスするというものです。

ちょこっと勉強するためにAWSとかその他VPSサービスを使うのはもったいないので。

 

メインのPCから別のマシンのゲストOSになかなかアクセスできなかったのですが、ポイントがつかめました。

同じようなことを試してうまくいかない方は、以下を見直すと幸せになれるかも。

 

①そもそもゲストOSのポートが解放されてるか

これは凡ミスの範囲ですが、SSH接続なら通常22番ポートが空いてないとだめ。

/etc/sysconfig/iptablesに開けたいポートを記述する。

 

②VMWara Playerの仮想ネットワークエディタでNAT設定

図でいうと192.168.1.10の22番ポートに来たら、ゲストOSの192.168.75.128の22番につないでね、という設定。ポートフォワーディング、というらしい。

 

③Windowsファイヤーウォールの設定

②の設定に行く前に、ファイヤーウォールにブロックされてしまうので、

コントロールパネル > 詳細設定 > 受信の規則で「新しい規則」を登録して、開けたいポートを設定してください。

 

以上3点がポイントです。

勉強になりました。