(:3[雑記]

プログラミングとかnanoblockとかドット絵とか

SublimeText3で日本語TeXを書いてる時にFont family `JT1+gt' unknown.で悩まされた話.

コンソールから直打ちでplatex hoge.texをやるとコンパイルが通るのにST3経由だと通らない!という問題にぶち当たっていつの間にか解決してしまったのでメモ.

追記:なんとなく原因がわかった

やりたかったこと

学会で指定されたサンプル(tex, cls)を使ってSublimeText3で日本語のTeXファイルをコンパイル→Skimでプレビュー

問題

ST3でビルド(⌘B)するとFont family〜〜〜〜系のエラーが大量に出る.

しかしコンソールでplatex hoge.texしたらエラーなしで通る

 

問題が起きていた環境

最後にTeXを書いてたのはST2だったので,ST3に変えてから初めて日本語でTeXを書くことになった.(たぶん)

LaTeXTools TraditionalBuilderの内容

DEFAULT_COMMAND_LATEXMK = ["latexmk", "-cd",
"-e", "$latex = 'uplatex %O -interaction=nonstopmode -synctex=1 %S'",
"-e", "$biber = 'biber %O --bblencoding=utf8 -u -U --output_safechars %B'",
"-e", "$bibtex = 'upbibtex %O %B'",
"-e", "$makeindex = 'makeindex %O -o %D %S'",
"-e", "$dvipdf = 'dvipdfmx %O -o %D %S'",
"-f", "-norc", "-gg", "-pdfdvi"]
 

試したけどダメだった・これだけだと効果がなかったこと

 

解決方法:コンパイラ変更+SublimeTextの再起動だけで良いっぽい

  • TradirionalBuilderのコンパイラuplatexからplatexに変更
  • コンパイルするファイルの文字コードUTF8にする
  • texファイルの\usepackage[dvips]{...}を[dvipdfmx]に変更
  • 漢字埋め込み設定の確認(kanji-config-updmap-sys status
  • 漢字埋め込み(kanji-config-updmap [任意のフォント]
  • 設定変更後,SublimeTextを再起動する(再起動しないと設定が反映されない)

 

TraditionalBuilderの設定は関係なかったな〜って思いながらuplatexに直してST再起動させてビルドしたら再びエラーが出た.笑った.

そもそもplatexだと問題無いのが分かっていたのにSTを再起動しないと設定反映されないってことに気づかなかったのが敗因でした.

 

解決した時点で試していたこと

  •  TeXLive2014のインストール,アップデート
  • 漢字埋め込み設定の確認,埋め込み
 漢字フォントの埋め込み

今の設定を確認

$ kanji-config-updmap-sys status
CURRENT family : noEmbed
Standby family : hiragino
Standby family : hiragino-pron
Standby family : ipa
Standby family : ipaex

とりあえずヒラギノを埋め込んだ(※ヒラギノの設定などはggると出てくる)

$ kanji-config-updmap hiragino
Setting up ... ptex-hiragino.map
Creating new config file /Users/ほげほげ/Library/texlive/2014/texmf-config/web2c/updmap.cfg

 

もう一度設定を確認

kanji-config-updmap-sys status
CURRENT family : hiragino
Standby family : hiragino-pron
Standby family : ipa
Standby family : ipaex

この後にビルドしてみたらさらっとエラーが消えた.TeXLiveをアップデートしなくても漢字埋め込みの設定をちゃんとするだけで通る気がする.

この間入れたangular-file-uploadを使って画像をdataURLに変換→mongoDBに保存する機能を実装してみた.

小さい画像は問題なく動作するが,大きい画像(例:iPhoneから写真を投稿するなど)の場合以下のエラーが出てアップロードできなかった.

 

[Error] Failed to load resource: the server responded with a status of 500 (Internal Server Error)

 

調べたところリクエストサイズが大き過ぎるよ〜とかそんな感じらしい.

 

bodyParserのオプションを設定する

/config/express.js

// Request body parsing middleware should be above methodOverride
app.use(bodyParser.urlencoded({
extended: true,
limit: 1000*1000*5
}));

app.use(bodyParser.json({
limit: 1000*1000*5
}));
app.use(methodOverride());

 

他の場所に書けそうもなかったので直書き.とりあえず5MBに設定.

bodyParserのパラメータはここを参考にした. https://www.npmjs.org/package/body-parser

 

再度試すとそれなりに大きいサイズもアップロードできるようになった.

一定以上の大きさの画像はリサイズするようにしたほうがいいかも.

bower installしてきたモジュールをMEAN.JSアプリに追加する手順

MEAN.JSアプリにangular-file-upload(danialfarid/angular-file-upload · GitHub)を入れてみた.

CSSやらjsを追加するファイルの場所が分からん…ってなったのでメモ.

 

モジュールのインストール

bower install ng-file-upload --save

bower.jsonのdependenciesに名前が追加される.

 

モジュール名を確認

モジュール追加時はファイル名じゃなくてモジュール名が必要になる.

インストールしたモジュールはpublic\libに入っているのでそこから探す.

var angularFileUpload = angular.module('angularFileUpload', []);

 

CSS, jsを追加

config\env\all.jsのassetsに書き足す.

assets: {
lib: {
css: [
'public/lib/bootstrap/dist/css/bootstrap.css',
'public/lib/bootstrap/dist/css/bootstrap-theme.css',
],
js: [
...,

'public/lib/ng-file-upload/angular-file-upload-shim.min.js',
'public/lib/angular/angular.js',
'public/lib/ng-file-upload/angular-file-upload.min.js'
]
}

 

モジュールを追加

public\config.jsのapplicationModuleVendorDependenciesにモジュール名を追加.

var applicationModuleVendorDependencies =
['ngResource', 'ngCookies', 'ngAnimate', 'ngTouch', 'ngSanitize', 'ui.router', 'ui.bootstrap', 'ui.utils', 'angularFileUpload'];

 

これでおしまい.

MEAN.JSのサンプルをheroku上で動かす

MEANスタック(MongoDB, Express, Angular.js, Node.js)を利用してアプリを作ってみたくなったので備忘録として動くまでにやったことを残しておく.

【目標】

yo meanjs で作成したサンプルがheroku上で動作する

【前提条件】

・git, yo, grunt, node.js, mongoなどは既に導入済み

・yo meanjsが実行できる

 

【手順】

1. yeomanを利用したサンプルの作成

・アプリ用のディレクトリを用意

mkdir TEST

cd TEST

 

・yeomanの実行

yo meanjs

$ yo meanjs

 

     _-----_

    |       |

    |--(o)--|   .--------------------------.

   `---------´  |    Welcome to Yeoman,    |

    ( _´U`_ )   |   ladies and gentlemen!  |

    /___A___\   '__________________________'

     |  ~  |

   __'.___.'__

 ´   `  |° ´ Y `

 

You're using the official MEAN.JS generator.

?What would you like to call your application?TEST

?How would you describe your application?Full-Stack JavaScript with MongoDB, Express, AngularJS, and Node.jss) 

?How would you describe your application in comma seperated key words?MongoDB, Express, AngularJS, Node.jss) 

?What is your company/author name?Xenon

?Would you like to generate the article example CRUD module?Yes

?Which AngularJS modules would you like to include?ngCookies, ngAnimate, ngTouch, ngSanitize

とりあえず全部Yes(Default)にした.

しばらくするとインストールが完了する.

 

・ローカルでの動作チェック(mongodbを起動しておく)

mongod

grunt

ブラウザで見ると動いてた.

 

2.herokuアプリの作成とconfig設定

・herokuアプリの作成(createをつかうとgitの登録もしてくれる)

heroku create [適当なアプリ名]

もしくは

heroku create

$ heroku create

Creating mighty-river-7706... done, stack is cedar

https://mighty-river-7706.herokuapp.com/ | git@heroku.com:mighty-river-7706.git

アプリ名を指定しないとアプリ名が自動生成される

 

・mongoHQアドオンの追加(MongoDBの利用を可能にする)

heroku addons:add mongohq --app [アプリ名]

 

・heroku上の環境変数を設定(production環境にする)

heroku config:set NODE_ENV=production --app [アプリ名]

 

 

・メインのビルドパックとしてbuildpack-multiを登録

heroku config:add BUILDPACK_URL=https://github.com/ddollar/heroku-buildpack-multi.git

herokuは標準だと一つのbuildpackしか使えないっぽいが,buildpack-multiは.buildpacksファイルに記載された複数のビルドパックを利用可能にする

 

・buildpack-multiで利用するビルドパック一覧を作成

vim .buildpacks

https://github.com/shunjikonishi/heroku-buildpack-with-grunt-task           

https://github.com/heroku/heroku-buildpack-nodejs.git

 この二つを登録.

一つ目はheroku上でgruntタスクを実行できるようにするビルドパック

二つ目はnodejsをheroku上で利用するためのビルドパック(公式が用意してくれている)

  

・configの確認

heroku config --app [アプリ名]

$ heroku config --app mighty-river-7706

=== mighty-river-7706 Config Vars

BUILDPACK_URL: https://github.com/ddollar/heroku-buildpack-multi.git

MONGOHQ_URL:   mongodb://heroku:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

NODE_ENV:      production

 こんな感じ.herokuへMEANのアプリを登録する準備ができた.

 

3.MEANアプリのherokuへのデプロイ
・buildの実行
grunt build

$ grunt build

Running "jshint:all" (jshint) task

>> 53 files lint free.

 

Running "csslint:all" (csslint) task

>> 2 files lint free.

 

Running "loadConfig" task

 

 NODE_ENV is not defined! Using default development environment

 

 

Running "ngAnnotate:production" (ngAnnotate) task

>> 1 file successfully generated.

 

Running "uglify:production" (uglify) task

>> 1 file created.

 

Running "cssmin:combine" (cssmin) task

File public/dist/application.min.css created: 506 B → 424 B

 

Done, without errors.

 

※cssmin:combineが正しく実行されていることを確認する

※/public/dist以下にminifyされたjsファイルが作成されているかを確認

→dist以下のファイルの中身が空になっていることがある.この場合herokuへpushしてもエラーは起きないがherokuアプリを開いても何も表示されない.

→ローカルのgrunt build時のNODE_ENVの環境を変えてみたりするとうまくいった.

 

(おまけ)ローカルでgrunt buildするときのNODE_ENVの設定方法

NODE_ENV=production grunt build

これだけ.ちなみにNODE_ENVのデフォルトはdevelopmentになっている.

 

・gitへのコミット

git init

git add -A

git commit -am "first commit"

・commitした内容をherokuへpush

git push heroku master 

 

・herokuアプリの確認

heroku open

ブラウザが自動的に開いてローカルで見たものMEANアプリと同じ画面が表示されるはず. 

 

【参考にしたサイト】

たくさん.

Twitterアイコン(2014/9/30〜)

f:id:xe_none:20140930150416j:plainf:id:xe_none:20140930150119j:plain

P4GA視聴&P4Gプレイと本格的にペルソナ4にはまり始めたのでアイコンを変更。

最初は頭を出してるやつ(前までのアイコンの使い回し)にしようと思っていたけどあまりにもバランスが悪いので下半身だけ見えてる方を採用。

 

NBC_079 アルパカ クリーム

f:id:xe_none:20130402223659j:plain
クリーム色が肌色として使えそうな気がしたのでパーツ取得目当てで購入。でも組み立ててみたら思った以上に可愛かったので結局そのまま飾ることにしました。アルパカかわいい。

肌色として使うにはちょっと彩度が低い?というか顔色が悪い感じになりそう。


余ったパーツ
クリーム
  • 2×8:1
  • 2×4:3
  • 2×2:3
  • 1×4:3
  • 1×2:5
  • 1×1角:4
  • 1×1丸:4
ホワイト
  • 2×4:1
  • 1×2:2
  • 1×2半:2
耳の色
  • 1×2:3
ブラック
  • 1×1丸:4


頼んでたパーツが届いた。

ダイヤブロック通販【DaiaBlock Factory】で単色部品をポチったのが届いたので早速100円ショップで買ったケースに移し替えてみた。

f:id:xe_none:20130306023944j:plain

まだまだ色も数も少ないです。今度はモノクロ系追加と茶系かな。


nanoblockにハマった経緯

nanoblockいいなーってなったのはつい最近のことでした。確か卒研がやばすぎて現実逃避を始めたあたりだから…去年の12月とかでしょうか。

3Dドット絵やminecraftの建築物を立体物にしたい→羊毛フェルト、粘土は手間がかかる⇒ブロックならそれっぽい見た目になるし楽かも?

という流れでnanoblockに辿り着きました。あと部品をバラバラに買える(しかも安い)ってのも大きかったです。

作りたい物を全部作り終わったら…どうするかな。ジオラマとかに挑戦するのも面白いかもですね。


そういえば部品を頼んだのは今回で2回目なんですが、初回は手書きのメモが入ってて感動しました。工場から直接送ってきてくれてるんですよね…これからもお世話になります。

はじめに

趣味やらゲームやらの話をまとめて書き留めておきたいと思ったので数年ぶりにブログを始めようと思った。

あとTwitterに慣れすぎてまともな文章が書けなくなっているのでリハビリというかなんというか。

ついでに開発環境のメモとかプログラミングについても書くかもしれない。