3D モデリングができるソフト
Sculptris (Pixologic)
- デジタル彫刻ソフト
- 動作環境:Mac OS X 10.5/10.6, Windows XP SP2/Vista/7
- 価格:無料
- Exports: .stl .obj
有償の ZBrush の簡易版という位置付けか
Blender
- モデリング、アニメーション、レンダリングソフト
- 動作環境:Linux, macOS, Windows
- 価格:無料
- Exports: .stl .obj .dae .3ds .ply .fbx .x3d .js
オープンソース。最近のバージョンはいろいろと機能が増えている。
2013年時点では WebGL 向けの出力(Three.js 使用)にまともに対応している数少ないソフトだった。
Python ですべての機能を制御可能
Fusion 360 (Autodesk)
3ds Max (Autodesk)
CPI のレンタルサーバで SCP を使う方法
CPI のレンタルサーバのプランのひとつ「共用レンタルサーバー ACE01」では SSH は使用できるが、SCP は使用できない。
SSH でログインして scp コマンドを実行してみると、どうやら scp コマンドがインストールされていないので使えるようにしておこう。
設定方法
- CPI のウェブコントロールパネルから SSH の設定を有効にする。
- SSH の鍵を生成し、秘密鍵をダウンロードする。ここで設定テストサイト、本番サイトどちらから設定しても共通の設定となる。
- SSH でログインし、
uname -a
コマンドでアーキテクチャを調べる。例えば FreeBSD 10.1-RELEASE-14 AMD64 や FreeBSD 8.4-RELEASE-p11 AMD64 だということが分かる。 - 前の手順で調べたアーキテクチャで使用できる scp のバイナリを入手する。FreeBSD の場合は 8.x 以前では *-livefs.iso を、 9.x 以降の場合は *-disc1.iso から入手するのがよい。
- SFTP で接続し、ホームディレクトリに bin というディレクトリを作成する。幸い ~/bin にパスは通っている。
- 作成した bin の中に scp のバイナリをアップロードし、SFTP または
chmod 755 ~/bin/scp
で実行権限を与える。
読みがなを正しい50音順(辞書順)にソートする
読みがなを持つデータを、辞書のような順序に並べ替えたいとする。
ところが辞書の配列は意外と複雑だ。Wikipedia の索引の配列として次の規則が提示されている。
プロジェクト‐ノート:索引/配列順 - Wikipedia
- 読みの五十音順とする。
- 清音・濁音・半濁音は、この順に並べる。
- 促音「っ」、拗音「ゃ」「ゅ」「ょ」はそれぞれ「つ」「や」「ゆ」「よ」の後に並べる。
- 小文字「ァ」「ィ」「ゥ」「ェ」「ォ」はそれぞれ「あ」「い」「う」「え」「お」の後に並べる。
- 長音符「ー」は直前の母音を表すものとし、それぞれ仮名の後に並べる。
例: 「コーヒー」は「こおひい」と見なす。- ひらがなとカタカナは、この順に並べる。
成果物
PHP で Composer から使用できるライブラリを作成した。次のコマンドでプロジェクトに追加できる。
composer require sharapeco/kana-order
次のように KanaOrder::get メソッドを使用して既存のデータに並べ替え用のデータを付加し、 usort 関数を使って並べ替えを行うことができる。
<?php require_once 'vendor/autoload.php'; use sharapeco\KanaOrder\KanaOrder; $items = [ ['name' => '進め', 'kana' => 'すすめ'], ['name' => 'スズメ', 'kana' => 'スズメ'], ['name' => '鈴なり', 'kana' => 'すずなり'], ['name' => 'ススキ', 'kana' => 'ススキ'], ['name' => 'すり抜け', 'kana' => 'すりぬけ'], ]; $items = array_map(function($item) { $item['sort_key'] = KanaOrder::get($item['kana']); return $item; }, $items); usort($items , function($x, $y) { return strcmp($x['sort_key'], $y['sort_key']); });
リポジトリおよび Packagist のページはこちら。
別の方法:ICU ライブラリを使用する
ICU は International Components for Unicode の略で、ロケール関連のさまざまな操作ができるライブラリだ。PHP からは intl 拡張モジュールとして使用できる。
PHP ではその中にある Collator クラスでロケール固有の並び順を考慮した文字列の比較、ソートができる。
単純に項目を並べ替える場合は sort メソッドが使用できる。
<?php $items = ['すすめ', 'すずめ', 'すずなり', 'すすき', 'すりぬけ']; $collator = new Collator('ja_JP'); $collator->sort($items);
また日本語では読みがな単体を並べ替える場合は少ないだろうから、 getSortKey メソッドを使い、次のように書ける。
<?php $items = [ ['name' => '進め', 'kana' => 'すすめ'], ['name' => 'スズメ', 'kana' => 'スズメ'], ['name' => '鈴なり', 'kana' => 'すずなり'], ['name' => 'ススキ', 'kana' => 'ススキ'], ['name' => 'すり抜け', 'kana' => 'すりぬけ'], ]; $collator = new Collator('ja_JP'); $items = array_map(function($item) use ($collator) { $item['sort_key'] = $collator->getSortKey($item['kana']); return $item; }, $items); usort($items , function($x, $y) { return strcmp($x['sort_key'], $y['sort_key']); });
ところがこのライブラリを使った方法では一般的に使われている規則と違い、次のような差異がある。
- ひらがなよりカタカナが先に来る
- 促音、拗音、小文字、長音符が通常のかなより先に来る
そのため新しくライブラリを作成した。
アイディア
ひらがなとカタカナに関するソートキーを得る方法として、各かなを「清音 + 付加情報」として表す方法を考えた。はじめに清音でソートし、清音が等しい場合は付加情報を付加した文字列を比較する。ラテン文字や算用数字、記号については考慮していない。
- ひらがな清音の場合は付加情報としてスペースを足す(すすめ→すすめ SP SP SP; 見えないので SP と表記)
- ひらがな濁音は " (すずめ→すすめ SP " SP)
- ひらがな半濁音および拗促音は $ (ぴゅっ→ひゆつ$$$)
- カタカナ清音は ! (ススメ→すすめ!!!)
- カタカナ濁音は # (スズメ→すすめ!#!)
- カタカナ半濁音および拗促音は % (ピュッ→ひゆつ%%%)
このとき SP ! " # $ % はコード順になっていることに留意。
(iOS) Facebook アプリ内ブラウザはこんなに仕様が違う
Facebook アプリ内ブラウザきらい! さっさと Safari で開け!
User Agent
通常は次の文字列。Twitter などほかのアプリでもこのような文字列になっている。
Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_1 like Mac OS X) AppleWebKit/604.4.7 (KHTML, like Gecko) Version/11.0 Mobile/15C153 Safari/604.1
しかし Facebook のアプリ内でリンクを開くと次のように改変されている。
Mozilla/5.0 (iPhone; CPU iPhone OS 11_2_1 like Mac OS X) AppleWebKit/604.4.7 (KHTML, like Gecko) Mobile/15C153 [FBAN/FBIOS;FBAV/153.0.0.53.87;FBBV/84268146;FBDV/iPhone9,1;FBMD/iPhone;FBSN/iOS;FBSV/11.2.1;FBSS/2;FBCR/ド-コ-モ-;FBID/phone;FBLC/ja_JP;FBOP/5;FBRV/0]
(続きはまた来週)
macOS をアップデートしたときにしたこと(Sierra → High Sierra)
新年なのでめでたく macOS Sierra を High Sierra にアップデートした。そのときのメモ。
Dnsmasq の設定
まずは Web を快適に見るため、広告ブロックツールとして使っている Dnsmasq の設定を行う。
デーモンの plist などはそのまま残っているのでネットワークのプロキシ設定のみを行えばよい。
sudo networksetup -setdnsservers Wi-Fi 127.0.0.1
Apache の設定
macOS をアップデートすると同時に Apache が更新され httpd.conf がデフォルト状態になる。以前の設定は /etc/apache2/httpd.conf~previous として残っているので差分を更新する。
また High Sierra では PHP のバージョンが 7 になったので、モジュール名が php7_module になっていることに注意。
基本的にデフォルトの httpd.conf を使うようにし、モジュールのロードおよびローカル環境固有の項目をロードする。
LoadModule rewrite_module libexec/apache2/mod_rewrite.so LoadModule php7_module libexec/apache2/libphp7.so Include /etc/apache2/myconf/*.conf
apachectl configtest
してから apachectl graceful
で Apache を再起動。
Adobe Creative Suite CS6 の設定
Adobe Creative Suite CS6 は正式には High Sierra に対応していないが、次の方法で使うことができる。詳細は元記事を参照。
- リカバリーモードでの起動 → Rootless の一時無効化
- 空ディレクトリの作成
sudo mkdir -p /System/Library/Java/JavaVirtualMachines/1.6.0.jdk /System/Library/Java/Support/Deploy.bundle- リカバリーモードでの起動 → Rootless の再有効化
macOS Sierra (10.12) で Photoshop CS6 / Illustrator CS6 を使う - TeX Alchemist Online