2017/08/25(金)ノードとコンポーネント

grimoire.jsではすべてのデータ(タグ)は、木構造で管理されノードとして登録されています
各ノードはコンポーネント(機能)をいくつか持っており、親から継承されています

ノード

ノードを登録することで、自分で作ったデータ(タグ)を利用することができます
標準では、gomlやscene、camera、meshなどが登録されています

基本的に描画で使うオブジェクトはmeshから派生させることになります
また、形状についてはgeometryから派生させます

ノードの登録

registerNodeを使い登録できます

gr.registerNode("ノード名", [ノードの持つコンポーネントのリスト], {デフォルト値}, "親ノード")

myobjectという名前でノードを登録してみる
コンポーネントは特に無し(親から継承したコンポーネントは持ってる)

<div style="width: 640px; height: 480px; border: 1px dotted black;">
  <script type="text/javascript">
    gr.registerNode("myobject", [], {}, "mesh");  
  </script>
  <script type="text/goml">
    <goml>
      <scene>
        <myobject geometry="cube" position="1,1,0" color="#99f" />
        <camera/>
      </scene>
    </goml>
  </script>
</div>

デフォルトのパラメータを指定した場合

<div style="width: 640px; height: 480px; border: 1px dotted black;">
  <script type="text/javascript">
    gr.registerNode("myobject", [], {geometry: "sphere"}, "mesh");  // デフォルトで 球(sphere) にする
  </script>
  <script type="text/goml">
    <goml>
      <scene>
        <myobject position="1,1,0" color="#99f" />                  <!-- デフォルトで指定された 球(sphere) になる -->
        <myobject geometry="cube" position="-1,1,0" color="#99f" /> <!-- パラメータで指定した 立方体(cube) になる -->
        <camera/>
      </scene>
    </goml>
  </script>
</div>

コンポーネント

コンポーネントを登録することで、オブジェクトに機能を追加することができます?

コンポーネントの登録

registerComponentを使い登録できます

gr.registerComponent("コンポーネント名", {属性値やイベント})

2017/08/25(金)WebGL使いたい

grimoire.jsを使ってみる

WebGLを使いたくて探してたら見つけたjsライブラリ
以前はjThree.jsって名前だった模様
Grimoire.jsにあります

ダウンロードとか

InstallationMinified versionからDLできる
いくつかライブラリが入ってるみたい
頻繁に更新されてるので、直で書いてしまうのもあり

他にgLTFを読むプラグインgrimoirejs-gltfとかシェーディングプラグインgrimoire-forward-shadingもあるらしい

使ってみる

goml(Grimoire Object Markup Language)で書くらしい
scriptタグにtype="text/goml"を指定して記述
記述があった部分に、自動でcanvasを生成して描画する
親要素のサイズに対して100%で生成される模様
そのため、body直下に置くとwindowサイズめいっぱいにできる
resizeイベント拾ってるみたいで、windowサイズとか変えても勝手に大きさ変わる

<!DOCTYPE html>
<html>
<head>
  <script src="./grimoire-preset-basic.min.js"></script>
</head>
<body>
<div style="width: 640px; height: 480px; border: 1px dotted black;">
  <script type="text/goml">
    <goml>
      <scene>
        <camera/>
        <mesh geometry="cube" position="1,1,0" color="#99f" />
      </scene>
    </goml>
  </script>
</div>
</body>
</html>

書いてみる

sceneタグの中に描画オブジェクトやカメラを配置する
当然カメラ無いと表示できないので忘れないように注意

sceneタグはいくつでもかけるけど、最初に置いたカメラの視点で描画されます

2017/02/26(日)VBAのlistview

64bitのOfficeだと listview が使えない模様...
ということは、32bitで作成したものは、64bitでは動かないことがあるってことか
だから、いつまでたっても32bitが残ってるのか

2016/10/09(日)Unity開発環境のセットアップ

Windows + Androidでのお話

Unity

最新版を落としてインストール

visual studio 2015 communityがインストールされます
C#のコードはこれで書く模様
ディスク食うのでヤダって場合、インストール後に消すこともできる?
Unity起動して、[Edit] - [Prederences] - [External Tools]にエディタの設定がある
mono develop(buit-in)を選べば、VSではなく標準エディタが立ち上がる

VSは初回起動にログインするか聞かれるけど、そっちは後でとか、しない選べば次回以降聞かれない
あと、VSの起動があまりにも遅いと、バックグラウンドでmono developも並行して立ちあがるっぽい
内部でタイムアウト処理とかしてるのかもしれない

  • 注意
    • アカウントの登録必須
      今後、このアカウントで開発環境にログインする
    • ライセンス
      会社等でやる場合、収入金額によってはライセンスを買う必要がある
      個人の場合、Unityアプリでの収入が少ない場合(10万アメリカドル...1000万円くらいまで)は必要なし
    • テンプレートの文字コード
      VS開くたびに、改行コードがCR+LFじゃないってうるさいので直す
      参考:http://blog.kanotype.net/?p=29
      C:\Program Files\Unity\Editor\Data\Resources\ScriptTemplates
      上記パスにテンプレートがあるので開いて直す
      ちなみに、BOMつきテキストファイルなので対応したエディタが必要かもしれない

Java

JDKの最新版を落としてインストール

こっちは開発環境(Development Kit)ではなく、実行環境(Runtime Environment)なので注意

Android

Android Studioの最新版を落としてインストール
今は、eclipseいらない模様

ダウンロードサイズが1600Mを越えてる上に、android SDKを展開すると4000M超える
あと、google らしく、SDKが個人のフォルダに入る
SDK Folder: C:\Users\xxxxx\AppData\Local\Android\Sdk
1台を、複数のアカウントで使い分けるときは注意

展開し、初回起動時に、以前の設定のインポートと、追加ダウンロード(更新)が始まる
以前に使った環境があって、設定取り込みたければimportを選択
あとは、標準環境(standard)でいれる

関連付け

UnityにAndroid SDKとJDKのパスを設定

Unity起動して、[Edit] - [Prederences] - [Esternal Tools]

[Android]の
[SDK]に[C:/Users/xxxxx/AppData/Local/Android/sdk]を設定
AppDataフォルダは隠しフォルダなので、Browseから選ぼうとしても非表示になってるかも?
[JDK]に[C:/Program Files/Java/jdk1.8.0_102]を設定
バージョンで変わるけど、こっちはBrowse選べば、そのままJavaのパスが選択されてるはず

2016/09/19(月)車買い換えた

車種とかは前と同じ
前は控えめに乗ってたけど今回は思いっ切り乗ってる
最近のは燃費いいね
40-50kmくらいでのんびり走ると40km/lくらいになりそう

ナビは9月発売になったパイオニアのサイバーナビ
なんで軽にこんなハイグレードなやつつけてるんだか...
走行軌跡が白い四角で出るんだけど、だいたい1000kmくらいで古いのから消えていく模様
前の楽ナビは250kmくらいだったので、4倍に伸びた

前の車

走行距離は18万kmくらいでした
2009年の777kmの写真が懐かしい

13万km超えたくらいでがたつき始めた
15万kmくらいでoilが漏れてるのか、かなり食い始めた感じです
一度oilランプがついて焦った...
乗り始めで、平均19km/lくらいだったのが、最後は12km/lくらいまで悪くなった気がする
乗り方が雑になっただけかもだけど...

2016/09/19(月)レンズいろいろ買った

アップで撮れるの楽しいね(105mmマイクロレンズ使用)

DSC_5285.jpg
105mm F3.5 1/160秒 ISO100

あえて近場のものを望遠で撮ってみた
というより、レンズ変えるの面倒だった

DSC_6109.jpg
300mm F5.6 1/320秒 ISO2800

魚眼とか、広角レンズでとればよかった...
風景用に超広角とかほしい

DSC_9482.jpg
80mm F6.3 1/640秒 ISO100

2016/08/27(土)ディスクを論理ボリュームに追加する

論理ボリュームの良いところはディスクが足りなくなりそうなら追加できること。
作業としては、前の記事とほぼ同じで、作成ではなく、追加になるくらいです。

前準備

追加したディスクは 前の記事 と同じようにパーティション切って、パーティションタイプを変えておきます。

物理ボリュームの作成とボリュームグループへの追加登録

前回作成した DataVolume に追加します。

# pvcreate /dev/vdc1
  Writing physical volume data to disk "/dev/vdc1"
  Physical volume "/dev/vdc1" successfully created
# vgextend DataVolume /dev/vdc1
  Volume group "DataVolume" successfully extended

論理ボリュームの拡張

空き領域(FREE)のすべて(100%)を追加(+)します。

# lvextend -l +100%FREE /dev/DataVolume/dv1

ディスクを拡張する

フォーマットするとデータ消えるので注意。
unmountしなくても大丈夫っぽい。
拡張用のコマンド使います。

# resize2fs /dev/DataVolume/dv1
resize2fs 1.42.5 (29-Jul-2012)
Filesystem at /dev/DataVolume/dv1 is mounted on /xxxxx; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 13
Performing an on-line resize of /dev/DataVolume/dv1 to 52426752 (4k) blocks.
The filesystem on /dev/DataVolume/dv1 is now 52426752 blocks long.||<

これで容量拡張されています。

参考サイト

http://qiita.com/g_maeda/items/3602dc2f7af3f711f9c4

検索用

[linux] [lvm] [物理ボリューム] [論理ボリューム] [作成]

2016/08/27(土)ディスクを論理ボリュームにする

さすがに、データ用領域を論理ボリュームにしておかないのはメリットが少なすぎるので、設定しておくことにする。
この記事は、前の記事の続きです。

LVMはパーティション単位でボリュームを作るらしい。

以下、ゲストでの作業です

lvmを入れる

入れてなかったので入れる。

# apt-get install lvm2

パーティションタイプを変える

# fdisk /dev/vdb
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e

Command (m for help): p

Disk /dev/vdb: 107.4 GB, 107374182400 bytes
13 heads, 44 sectors/track, 366634 cylinders, total 209715200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xde84f399

   Device Boot      Start         End      Blocks   Id  System
/dev/vdb1            2048   209715199   104856576   8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

物理ボリュームの作成とボリュームグループへの登録

今回はデータ用領域なので、DataVolumeにしてみた。
ここで作成したものが、いわゆるハードディスクに相当するっぽい。

# pvcreate /dev/vdb1
  Writing physical volume data to disk "/dev/vdb1"
  Physical volume "/dev/vdb1" successfully created
# vgcreate DataVolume /dev/vdb1
  Volume group "DataVolume" successfully created

ボリュームグループから論理ボリュームの作成

いわゆるパーティションを切る作業。
すべて(100%)の領域(VG)を割り当てます。
[/dev/DataVolume/dv1]ってデバイスができるので、適当に使うだけです。

# lvcreate -l 100%VG -n dv1 DataVolume 

ディスクをフォーマットしてマウント

# mkfs.ext4 /dev/DataVolume/dv1
# vi /etc/fstab

[/dev/DataVolume/dv1 /path/to/mount ext4 defaults 0 0]を追記

# mount -a

これで使えます。
次の記事で論理ボリュームの追加します。

検索用

[linux] [lvm] [物理ボリューム] [論理ボリューム] [作成]

2016/08/27(土)kvmにディスク追加した

2年前に作った仮想環境(ゲスト)のディスクが足りなくなったので追加した。
20Gあれば足りると思ってたけど、最近はオンラインにファイルおくようになったので足りなくなった。
最近はいくら容量があっても足りないね。

バックアップの都合と、データ移行の都合であえて現在のディスクを拡張せずに、新しくディスクを追加します。
ゲストOSの動いているディスクはいじらないので停止したり、再起動の必要はなし。

ホスト側で仮想ディスクの作成と追加

前と同じところにディスク作成。
今回はvdbとして100G追加。
必要なら改めて追加する。

$ cd /path/to/image
$ qemu-img create www-data1.img 100G
Formatting 'www-data1.img', fmt=raw size=107374182400
$ vi www-data1.xml
<disk type='file' device='disk'>
   <driver name='qemu' type='raw' cache='none'/>
   <source file='/path/to/image/www-data1.img'/>
   <target dev='vdb'/>
</disk>
$ virsh attach-device www ./www-data1.xml --config
デバイスが正常に接続されました

--config付けると設定ファイルに追記されます。
というか、つけないとゲスト再起動時にアタッチされません。

くっつけたデバイスを外すときは

$ virsh detach-device www ./www-data1.xml --config 
デバイスが正常に切断されました

で外せます。

ゲスト側でディスクをフォーマット

# fdisk /dev/vdb
Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-209715199, default 209715199):
Using default value 209715199

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
# mkfs.ext4 /dev/vdb1

マウントさせる

マウントするように書いておく

# vi /etc/fstab

[/dev/vdb1 /path/to/mount ext4 defaults 0 0] を追記

# mount -a

以上で設定終了...
なんだけど、データ用領域は拡張する可能性大なので、きちんと論理ボリュームにしておくことにする。
次の記事でまとめます。

検索用

[linux] [kvm] [ディスク] [追加] [拡張]

OK キャンセル 確認 その他