Ubuntu 17.10でOpenGrok1.1-rc70
Read-Onlyで使用しているリポジトリのgit logが重くて泣きそうだったのでOpenGrokを導入しました。 前に使用したときよりだいぶバージョンが上がっていたので手順をメモしておきます。
導入
OpenGrokはTomcat等のWebアプリサーバ上で動作し、ブラウザからソースコードを閲覧するためのUIを提供してくれます。 関数や変数の参照箇所・定義箇所を高速に検索することができるほか、Git等で構成管理している場合には履歴をたどることができます。 ライセンスはCDDLです。
- {OpenGrok by OpenGrok
- oracle/opengrok: OpenGrok is a fast and usable source code search and cross reference engine, written in Java
Androidのような大きなリポジトリでも高速で検索することができて便利です。
環境
- OS: Ubuntu 17.10 (Artful Aardvark)
- OpenGrok: 1.1-rc70
- Tomcat: 8.5.21.0
- Java: Oracle JDK 11.0.1
- universal-ctags: 5.8
- Python: 3.6.3
インストール
手順はHow to setup OpenGrok · oracle/opengrok Wiki に従います。
ctags
universal-ctagsをビルドしてインストールします。
$ git clone https://github.com/universal-ctags/ctags.git $ sudo apt install make autoconf pkg-config $ cd ctags $ ./configure $ make $ sudo make install $ cd
Java
Oracle Javaをdebパッケージでインストールします。
- Java SE Development Kit 11- - Downloads \ →jdk-11.0.1_linux-x64_bin.deb
$ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-11*/bin/java 1081 $ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-11*/bin/javac 1081 $ sudo update-alternatives --install /usr/bin/javadoc javadoc /usr/lib/jvm/jdk-11*/bin/javadoc 1081 $ sudo update-alternatives --install /usr/bin/javap javap /usr/lib/jvm/jdk-11*/bin/javap 1081 $ sudo update-alternatives --config java $ sudo update-alternatives --config javac $ sudo update-alternatives --config javadoc $ sudo update-alternatives --config javap
Tomcat
Tomcatをaptでインストールします。
$ sudo apt install tomcat8 $ sudo service start tomcat8
ブラウザで http://localhost:8080 を表示して動作を確認します。
pip
OpenGrokのCLIがシェルスクリプトからPythonに移行しているようなので、pipをインストールしておきます。(Jarのラッパーなので手順的にはOptional扱いのようです)
(see: Installation — pip 18.1 documentation)
$ wget https://bootstrap.pypa.io/get-pip.py $ sudo python3 get-pip.py
OpenGrok
OpenGrokのバイナリをダウンロードしてPythonスクリプトをインストールします。
$ wget https://github.com/oracle/opengrok/releases/download/1.1-rc70/opengrok-1.1-rc70.tar.gz $ tar xzf opengrok-1.1-rc70.tar.gz $ cd $ python3 -m pip install --users tools/opengrok-tools.tar.gz
リポジトリの格納場所、インデックスデータの格納場所、設定ファイルの格納場所を決めます。
/var/local/opengrok
配下に格納するようにしました。
/var/local/opengrok ├── data: インデックスデータの格納場所(data root) ├── etc: 設定ファイルの格納場所 │ └── configuration.xml: OpenGrokの設定ファイル ├── lib: OpenGrokのバイナリに含まれるlibディレクトリ │ ├── lib │ ├── opengrok.jar │ └── source.war └── repos: リポジトリの格納場所(source root)
$ sudo opengrok-deploy -c /var/local/opengrok/etc/configuration.xml /var/local/opengrok/lib/source.war /var/lib/tomcat8/webapps/source.war
リポジトリのインデックスを作成します。Pythonのスクリプトも用意されています(opengrok-indexer)が、しっくりこなかったのでjarを直接使用しました。 最低限、data root(-d)、source root(-s)は指定する必要があるようです。 configuration.xmlはここで作成するようにします(--writeConfig)。
$ sudo java -jar /var/local/opengrok/lib/opengrok.jar -d /var/local/opengrok/data -s /var/local/opengrok/repos --writeConfig /var/local/opengrok/etc/configuration.xml
いろいろと試して以下のような形にしました。
$ sudo java -jar /var/local/opengrok/lib/opengrok.jar -d /var/local/opengrok/data -s /var/local/opengrok/repos -t 1 -P -H -r on -T 3 -G -S --progress --renamedHistory on --writeConfig /var/local/opengrok/etc/configuration.xml
設定内容は下記の通りです。
- タブ幅(-t): 1
- インデックス作成時のスレッド数(-T): 3
- プロジェクト単位での表示あり(-P)
- 履歴表示あり(-H、-r、-G、-S、--renamedHistory on)
- インデックス中のインデックス中の進捗表示あり(--progress)
その他、設定できる内容は下記で確認できます。
$ sudo java -jar /var/local/opengrok/lib/opengrok.jar -h --detailed
動作確認
$ sudo service restart tomcat8
ブラウザで http://localhost:8080/source へアクセスして動作を確認します。
レッサーモクリちゃんをいじる
先日、バーチャルマーケット(http://v-market.work)というオリジナル3Dモデルの展示会があり、お邪魔してきました。
いろんなモデラーさんたちの作品を見て歩くことができて、さらにその場で試着もできちゃう!っていうすごいイベントでした。
(私はトラスト未解除のため試着できなかったのですが、それでも楽しかった)
その中でモクリプロジェクト(http://mokuri.world)のレッサーモクリちゃんのアバターが配布されていて、カスタマイズしてアバターとして使わせてもらえることになっていました。
まずは元データをなるべく壊すことなくいじりたいなっていう気持ちがあって、テクスチャだけいじりました。
テクスチャに余白がなくて、どこをいじればよいやら…ってなったんですが、
ちゃんと確認すると実際には余白はいっぱいあって、難しいことはないみたいです。
Blenderとかわからなくてもいけたので、画像はいじれるけどBlenderはまだ無理って境遇の方向けにメモを残します。
■インストールしておいたもの
- Blender 2.79b(https://www.blender.org/)
- Unitiy 5.6.3p1(https://unity3d.com/jp/unity/qa/patch-releases/5.6.3p1)
- VRC SDK 2018.06.21.13.02(https://vrchat.net/) ※ダウンロードのみ
- Dynamic Bone ※UnityのAssetStoreで購入
- CLIP STUDIO ※レイヤーを使える画像編集ソフトであればなんでもよさそう
■Unityにモクリちゃんを読み込む
1.Unityを起動して新しいプロジェクトを作る
2.VRCSDKをインポートする
3.AssetStore(Ctrl+9)からDynamic Boneをインポートする
4.モクリちゃんをインポート
5.Assets/Models/レッサーモクリ/レッサーモクリforVRChat.unityをダブルクリック
この時点で、そのままアバターとしてアップロード可能な状態になっています。
揺れものもリップシンクも表情も設定済み、すごい…!
あとはテクスチャをいじっていきます。
■Blenderでポリゴンとテクスチャの対応関係を確認する
下記2枚のテクスチャがモクリちゃんのポリゴンに貼り付けられていて、
これらを編集すると見た目を変えられます。
- 肌の画像:
\Assets\Models\レッサーモクリ\レッサーモクリ.fbm\h_body_Base_Color.png - アクセサリの画像:
\Assets\Models\レッサーモクリ\レッサーモクリ.fbm\h_props_BaseColor.png
どの部品にどの部分が貼り付けられているかはBlenderで確認します。
1. Blenderを起動する
2. Xキーを押して、デフォルトで配置されている立方体を削除する
3. [ファイル]->[インポート]->[FBX]を選択
4. 画面のレイアウトを[UV Editting]にする
5. 右側の画面で、位置を確認したい部品(ここではヘルメット部分)を右クリックで選択してから編集モードに切り替える
6. 左側の画面で[UV]-[UV配置をエクスポート]
■テクスチャいじる
これで、ポリゴンとテクスチャの対応部分が透過PNGとして保存されたので、CLIP STUDIOにテクスチャとエクスポートしたUV配置を読み込ませて、レイヤー分けつつ塗り塗り。
最後にPNG出力して元の画像を上書きすればOKです。
エクスポートした画像範囲だけを塗ると端の方とかが微妙に足りなかったりするので、2pxくらいはみ出して塗るといい感じだと思います。
発掘
お仕事でずーっと凹みっぱなしだったのですが、最近ちょっと安定感出てきてモチベが向上中です。
技術者のはしくれなのにアウトプット全然してないなと思いたち、
そういえばブログ持ってなかったっけ…ってこのブログを掘り出してきました。
日記みたいな感じで使っていこうかな。
VR界隈が楽しいことになってるので、出遅れながらUnity勉強中です。
Unityの教科書 Unity 2018完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA)
- 作者: 北村愛実
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2018/06/21
- メディア: 単行本
- この商品を含むブログ (1件) を見る
C#もはじめて触っている感じですが、
さすがに「変数とは」みたいなのは今更感があるのでぴゃぴゃっと読めちゃう感じ。
ねこがかわいいんだ。
Redmineインストール
インストール手順はHowTo Install Redmine in Ubuntu - Redmineにありました。
ともかくインストール
$ sudo apt-get install libapache2-mod-passenger $ sudo apt-get install redmine redmine-mysql
インストールの最後にメッセージが表示される
┌───────────────────────────────────────────┤ redmine を設定しています ├────────────────────────────────────────────┐ │ │ │ redmine/instances/default は利用できるようになる前にはデータベースをインストールして設定する必要があります。この │ 設定を dbconfig-common で管理するようにもできます。 │ │ あなたが熟練したデータベース管理者でこの設定について手動で何をするのかを知っている場合、あるいはデータベースが既 │ にインストール及び設定されている場合は、この選択を選ばない方が良いでしょう。何をすればいいのかについての詳細につ │ いては、大抵 /usr/share/doc/redmine/instances/default に置かれています。 │ │ <了解> │ │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
了解を押すと
┌────────────────────────┤ redmine を設定しています ├─────────────────────────┐ │ │ │ redmine/instances/default のデータベースを dbconfig-common で設定しますか? │ │ │ │ <はい> <いいえ> │ │ │ └─────────────────────────────────────────────────────────────────────────────┘
# 何を思ったのか「いいえ」を選んだ。ここで「はい」を選べばもっと楽だったのかも。
シンボリックリンクを張る
$ sudo ln -s /usr/share/redmine/public /var/www/redmine
/etc/apache2/mods-available/passenger.confを下記のように編集(PassengerDefaultUserを追加)
PassengerRoot /usr PassengerRuby /usr/bin/ruby PassengerDefaultUser www-data
Apache再起動
$ sudo service apache2 restart
ここで、http://サーバアドレス/redmineにアクセスするとエラー画面が表示された。
「No such file or directory - /etc/redmine/default/database.yml」とのこと。
/usr/share/redmine/templates/database.yml.templateにひな形っぽいファイルがあるので、
これをConfigurationの章を参考に編集して/etc/redmine/default/database.ymlとして保存する。(my_passwordは適当)
production: adapter: mysql database: redmine host: localhost port: 3306 username: redmine password: my_password encoding: utf8
再度アクセスするも、エラー表示。今度は「Unknown database 'redmine' (Mysql::Error)」。
ないなら作ろうということで
$ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 47 Server version: 5.5.22-0ubuntu1 (Ubuntu) Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database redmine; Query OK, 1 row affected (0.00 sec) mysql> create user 'redmine'@'localhost' identified by 'my_password'; Query OK, 0 rows affected (0.00 sec) mysql> grant all privileges on redmine.* to 'redmine'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye
再度エラー表示。
ログを確認しろと書いてあったので/var/log/redmine/default/production.logを確認。
Processing WelcomeController#index (for ***.***.***.*** at 2012-05-03 00:32:35) [GET] Parameters: {"action"=>"index", "controller"=>"welcome"} ActiveRecord::StatementInvalid (Mysql::Error: Table 'redmine.settings' doesn't exist: SHOW FIELDS FROM `settings`):
テーブルがないらしい。
手順の下の方に「Create the database structure, by running the following command under the application root directory (I mean “/opt/redmine/redmine-0.8.6”):」の記載があったのでこれを試してみる。
$ cd /usr/share/redmine $ sudo rake db:migrate RAILS_ENV="production" $ sudo rake redmine:load_default_data RAILS_ENV="production"
言語を選択する表示が出るので、jaを選択。
なにやら全然分かっていないけど取りあえず動いた。
最初に「はい」を選択しておけばそれだけですんだのかも?
デフォルトの管理者アカウントは、ID/PASSともにadminとなっているようだ。
Ubuntu12.04、USBメモリからのインストール
Ubuntu12.04がリリースされたので、インストールしてみました。
以下はインストール用のUSBメモリの作成手順の覚え書きです。
作業はMac OS X 10.7.3で実施しました。
そのまんまドキュメント(https://help.ubuntu.com/community/Installation/FromUSBStick)通りの手順です。
作業ディレクトリを作成して移動
$ mkdir /tmp/work $ cd /tmp/work
作業ディレクトリにイメージファイルをダウンロードhttp://www.ubuntu.com/download/server/thank-you?distro=server&release=lts&bits=64
isoファイルをimg形式に変換
$ hdiutil convert -format UDRW -o ./ubuntu.img ubuntu-12.04-server-amd64.iso Master Boot Record(MBR:0) を読み込み中... Ubuntu-Server 12.04 LTS amd64 (Apple_ISO:1) を読み込み中... (Windows_NTFS_Hidden:2) を読み込み中... ............................................................................... 経過時間:26.684s 速度:25.6M バイト/秒 節約率:0.0% created: /private/tmp/work/ubuntu.img.dmg
MacにUSBメモリを接続して、USBメモリのデバイスファイルを確認
$ diskutil list /dev/disk0 #: TYPE NAME SIZE IDENTIFIER 0: GUID_partition_scheme *500.1 GB disk0 1: EFI 209.7 MB disk0s1 2: Apple_HFS Macintosh HD 423.6 GB disk0s2 3: Apple_Boot Recovery HD 650.0 MB disk0s3 4: Microsoft Basic Data BOOTCAMP 75.6 GB disk0s4 /dev/disk1 #: TYPE NAME SIZE IDENTIFIER 0: Apple_partition_scheme *1.0 TB disk1 1: Apple_partition_map 32.3 KB disk1s1 2: Apple_HFS Backup 500.1 GB disk1s3 3: Apple_HFS Warehouse 499.8 GB disk1s5 /dev/disk3 #: TYPE NAME SIZE IDENTIFIER 0: FDisk_partition_scheme *4.0 GB disk3 1: DOS_FAT_32 UNTITLED 4.0 GB disk3s1
USBメモリをアンマウント
$ diskutil unmountdisk /dev/disk3
$ sudo dd if=ubuntu.img.dmg of=/dev/rdisk3 bs=1m 684+1 records in 684+1 records out 717533184 bytes transferred in 78.422326 secs (9149603 bytes/sec)
「セットしたディスクは、このコンピュータで読み取れないディスクでした。」のメッセージが表示されるので、「取り出す」を選択して、USBメモリをMacから抜く
Mac側での作業は以上で終了です。あとはUbuntuのインストール先マシンにUSBメモリを接続して、USBメモリから起動させればインストールが始まります。今回使用したPCでは起動時にF9でブートに使用するデバイスを選択できました。
pukiwikiでシンタックスハイライト
早速pukiwikiにシンタックスハイライト表示機能を追加するプラグインを入れてみた。
いくつか種類があるみたい。
geshi.inc.php
今回は対応言語が多いgeshi.inc.phpというプラグインを導入した。
内部でGeSHi - Generic Syntax Highlighter :: Homeを使用しているらしい。
インストール作業自体はhttp://www.revulo.com/PukiWiki/Plugin/GeSHi.htmlの手順通りで問題なく完了できた。
以下、作業手順。
ダウンロードと展開
pukiwikiのインストールディレクトリを/var/www/pukiwiki/とすると、
# cd /var/www/pukiwiki # wget http://sourceforge.net/projects/geshi/files/geshi/GeSHi%201.0.8.8/geshi-1.0.8.8.tar.gz/download # wget http://download.revulo.com/PukiWiki/geshi-1.3.tar.gz # tar xzvf geshi-1.3.tar.gz # rm geshi-1.3.tar.gz # chmod 777 cache/geshi # mv geshi-1.0.8.8.tar.gz ./plugin/ # cd plugin # tar xzvf geshi-1.0.8.8.tar.gz # rm geshi-1.0.8.8.tar.gz
pukiwiki.ini.phpの編集
define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 1); // 1 = Disabled
↓
define('PKWKEXP_DISABLE_MULTILINE_PLUGIN_HACK', 0); // 1 = Disabled
skin/geshi/default.css
以下の行の下、数行にわたるコメントアウトを解除。
/* Configuration Example for GESHI_HEADER_PRE_TABLE */
動作確認
動作画面はこんな感じ。
そのままでも見やすいのでスタイルシートは弄らないことにする。
prettify.inc.php
気になったんだけど、今回は見送った。
こちらは内部でgoogle-code-prettifyを使用していて、言語を自動判断してくれるらしいです。
http://www.revulo.com/PukiWiki/Plugin/prettify.html