MJHD

エモさ駆動開発

macOS Sierraにアップグレードして起こった問題

macOS Sierraにアップグレードした。いろんな問題が起こった。

Siriが使えない

Siriボタンが追加されたのはいいが、押しても何も反応がない。
おそらくバグ。

Escキーが死ぬ

作業していると、突然Escキーがシステムワイドに効かなくなり、vimのINSERTモードから抜けられなくなった。
どうやら、Siriを起動しようとすると、SiriがEscキーをぶんどり、そのまま固まってしまうらしい。(要検証)
F1キーなどを押すとNORMALモードに戻れるので、その辺を駆使して頑張ろう。

SiriのプロセスをKillすることで対応可能。

正常に起動しなかった場合、Siriは無効にするべし。

Karabinerが使えない

Karabinerが効かない。JIS配列で頑張る羽目に。

Bartenderが非対応

Bartender2として800円ほどでアップグレードする必要がある。

SD共有サーバでFuelPHPを動かす

お名前サーバなどの一部の共用レンタルサーバでは.htaccess内におけるmod_rewrite機能に制限が加えられている.

拡張子を書き換えるなどの処理はできないらしいのだが,ちょっといじると実はmod_rewrite機能は大体使えたりする.

一体何に制限がかかってて何に制限がかかってないのか….

FuelPHPを動かすには

  1. まずは通常通り,FuelPHPのプロジェクトをFTPでサーバ上にアップロードする.
  2. 次に,.htaccessのOptionsをコメントアウトする
  3. 最後に,RewriteBaseを明示する

以上で割といくらでもmod_rewrite使えたりする.

# Multiple Environment config, set this to development, staging or production
# SetEnv FUEL_ENV production

<IfModule mod_rewrite.c>

    RewriteEngine on

    # NOTICE: If you get a 404 play with combinations of the following commented out lines
    #AllowOverride All
        # 明示!
    RewriteBase /

    # Make sure directory listing is disabled
    # Options +FollowSymLinks -Indexes # コメントアウト!

    # Restrict your site to only one domain
    # !important USE ONLY ONE OPTION

    # Option 1: To rewrite "www.domain.com -> domain.com" uncomment the following lines.
    #RewriteCond %{HTTPS} !=on
    #RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    #RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

    # Option 2: To rewrite "domain.com -> www.domain.com" uncomment the following lines.
    #RewriteCond %{HTTPS} !=on
    #RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
    #RewriteCond %{HTTP_HOST} (.+)$ [NC]
    #RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

    # Remove index.php from URL
    RewriteCond %{HTTP:X-Requested-With}    !^XMLHttpRequest$
    RewriteCond %{THE_REQUEST}              ^[^/]*/index\.php [NC]
    RewriteRule ^index\.php(.*)$            $1 [R=301,NS,L]

    # make HTTP Basic Authentication work on php-fcgi installs
    <IfModule mod_fcgid.c>
        RewriteCond %{HTTP:Authorization} .
        RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    </IfModule>

    # Send request via index.php if not a real file or directory
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    # deal with php-fcgi first
    <IfModule mod_fcgid.c>
        RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
    </IfModule>

    # no php-fcgi, check for sapi and fpm
    <IfModule !mod_fcgid.c>

        # for PHP5 sapi installations
        <IfModule mod_php5.c>
            RewriteRule ^(.*)$ index.php/$1 [L]
        </IfModule>

        <IfModule !mod_php5.c>

            # for PHP7 sapi installations
            <IfModule mod_php7.c>
                RewriteRule ^(.*)$ index.php/$1 [L]
            </IfModule>

            # for fpm installations
            <IfModule !mod_php7.c>
                RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
            </IfModule>

        </IfModule>

    </IfModule>

</IfModule>

完全食を自作してみた2

完全食を食べるようになって半月ほど経った.(1日3食,うち2食が完全食)
完全食が何かわからない人は,完全食を自作してみた1 - Devlion Memoを見ていただきたい.

完全食で生きていけるのか?

結論としては,問題ないと感じた.
もちろん,まだ続けてみて半月しかたっていないため,長期的な問題についてはわからない.
しかし,初めに感じていたまずさは今では慣れてほとんど気にならなくなったし,何よりも体の調子がいい.
明確にわかるのは,お肌の調子がいい…(!)

ただやはりデメリットも

デメリットとして感じるのは,とにかくが食いたくなる.そのため,夜食としてサラミなどをつまんでしまう….
結果,カロリーオーバーしているようで,最近体重が増え始めている.
完全食がまずいというより,同じ味のものを食べ続けるのは難しいよう
ポテチにかかってるような風味の粉末があればいいんだけどなぁ.

今後について

今後も,1日2食を完全食に置き換える生活を続けていこうと思う.
一番必要になる上新粉やきな粉については,近所の業務スーパーが安いため,材料を揃える手間,金額はだいぶ削減でき,経済的に感じる.
食費を節約でき,手間もかからないのであれば,多少のデメリットも我慢できると感じたためである.

少なくとも1ヶ月は続けてみようかな.

完全食を自作してみた1

PFJというものをご存知だろうか.
Perfect Food for Japaneseの略で,このサイトにてレシピが公開されている.
完全食の日本人版というもの.

完全食

完全食とは,1日分の食事摂取基準(国が公開している)などを参考に,様々な材料を調合し液状にしたもの.
海外ではSoylentなどのプロジェクトが話題になった.

完全食のメリットは,時短経済的健康的などであり,それぞれ作り貯めできることや,低価格な材料を使うこと,食事摂取基準を満たしていることなどによる.

作ってみた

まずは材料調達レシピの用意するもの,の一覧をポチポチ購入した.
f:id:wait0000:20160805235504p:plain

メインは米粉.これをベースに液状の食事を作る.栄養価てきにはおそらくきな粉がメイン.

粉末ミックス

PFJ,まずは粉末の状態で作り貯めをし,実際に飲む際に液状にするらしい.

まずは,固形のサッカリンNaとビタミン剤を乳ばちで粉砕する.
f:id:wait0000:20160806000029p:plain f:id:wait0000:20160806000042p:plain f:id:wait0000:20160806000053p:plain

そして,計りで計測しながら残りの材料をバケツに入れていく.
f:id:wait0000:20160806000203p:plain f:id:wait0000:20160806000215p:plain

今回は,途中で18食分(サイトのレシピの6倍)の量に切り替えたため,ここで40lビニール袋を取り出した.
f:id:wait0000:20160806000329p:plain f:id:wait0000:20160806000342p:plain

大量生産をした.

実食

レシピに従い,液体の材料を足し,飲める状態にした.
f:id:wait0000:20160806000524p:plain f:id:wait0000:20160806000534p:plain f:id:wait0000:20160806000551p:plain

クソまずかったです

*追記: * この後,実は省いていた魚油を入れた. すると途端に美味しくなった!
魚油が改良されていたのか,レモンフレーバーがついていたため,全体的にとてもさっぱりとした.
多分,レモン果汁とか絞って入れたらより美味しくなりそう….

Mac上のcmakeにて,Boost::ThreadやThread::Threadを使おうとすると「Could NOT find Threads (missing: Threads_FOUND)」と言われる

cmakeを使ってBoost::Threadを使用するプロジェクトのMakefileを作成しようとしたところ,初回は以下のエラーが,

CMake Error at /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/CheckIncludeFiles.cmake:79 (try_compile):
  Unknown extension ".c" for file

    /Users/mjhd/Projects/trax-stable/trax-viewer/CMakeFiles/CMakeTmp/CheckIncludeFiles.c

  try_compile() works only for enabled languages.  Currently these are:

    CXX

  See project() command to enable other languages.
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindThreads.cmake:123 (CHECK_INCLUDE_FILES)
  /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/CMakeFindDependencyMacro.cmake:65 (find_package)
  cmake/FindBoost.cmake:1401 (find_dependency)
  CMakeLists.txt:22 (find_package)


-- Looking for include file pthread.h - not found
CMake Error at /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindThreads.cmake:204 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/CMakeFindDependencyMacro.cmake:65 (find_package)
  cmake/FindBoost.cmake:1401 (find_dependency)
  CMakeLists.txt:22 (find_package)

二回目以降は以下のエラーが,

CMake Error at /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find Threads (missing: Threads_FOUND)
Call Stack (most recent call first):
  /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/FindThreads.cmake:204 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
  /usr/local/Cellar/cmake/3.3.1/share/cmake/Modules/CMakeFindDependencyMacro.cmake:65 (find_package)
  cmake/FindBoost.cmake:1401 (find_dependency)
  CMakeLists.txt:22 (find_package)

表示されるようになった.
しかも,この現象が起こるのはMac上のcmakeだけ

解決策

2日間悩んだ挙句,解決策を発見した.

project(YOUR_PROJECT CXX)

などと書いてある部分を,

project(YOUR_PROJECT CXX C)

と変更し,CMakeFilesディレクトリ,CMakeCache.txtファイルなどを削除してから,再びcmake .を行う.(重要)

2016年のLinux環境

Linux デスクトップ環境 2016 - eagletmt's blogに触発されて書いた.
Macの便利なところを取り入れつつタイル型ウィンドウマネージャを活かす設定にしたかった.

ディストリビューション

ArchLinux.パッケージの更新も早く,yaourtを導入するとバカみたいにパッケージが増えるので最強.

ディスプレイマネージャ

LightDM.Greeterとしてwebkit-greeterを使っている.おしゃれなテーマが多いのでおすすめ.

テーマはhttps://github.com/jqln-0/Bevelを使っている. こんなの

ウィンドウマネージャ

XMonad.シンプルでいくらでもカスタマイズ出来る.しかも結構安定している.(ただしHaskell)

feh,xmobar,trayer,dockyを合わせて使用している.
また,nautilusでデスクトップアイコンも表示している.

f:id:wait0000:20160323130355p:plain

ターミナル

terminologyを使用している.結構リッチなエフェクトが沢山ある.

f:id:wait0000:20160323130500p:plain

TerminatorがSGRプロトコルに対応していない? - Devlion Memo

日本語入力

fcitxでmozcを使用している.
たまにgtk系のソフトでキーボードが効かなくなる?

エディタ

vim.去年は少しだけevil付きのemacsに浮気したが,やはりvimなしでは生きていけなかった.

f:id:wait0000:20160323131235p:plain

vim-startifyでvimのロゴを起動画面に設定する - Devlion Memo

スクリーンショット

shutterというソフトを使っている.
Ctrl+F2でデスクトップ全体, Ctrl+F3で範囲選択,
Ctrl+F4でウィンドウを選んでスクリーンショットを保存,など割り当てている.
Macのキーボードショートカットに似せたつもり.

paplayでシャッター音を鳴らすことでそれっぽくなる.


        ,((controlMask, xK_F2), spawn "shutter -f -e -n -o ~/Downloads/%Y-%m-%d-%T.png && paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga")
        ,((controlMask, xK_F3), spawn "shutter -s -e -n -o ~/Downloads/%Y-%m-%d-%T.png && paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga")
        ,((controlMask, xK_F4), spawn "shutter -w -e -n -o ~/Downloads/%Y-%m-%d-%T.png && paplay /usr/share/sounds/freedesktop/stereo/screen-capture.oga")

その他ソフト

mfiler4でファイル管理.mfiler4のすゝめ - Devlion Memo
clementineで音楽.
mplayerで動画.

パララックス効果っぽいjQueryプラグイン

パララックス効果っぽいjQueryプラグイン作ってみた. 適当.

SVGファイルは,一緒に動かしたいレイヤーごとにグループ化して,IDを割り振っといてください.
layersでそのID名を指定します.
指定した順に視差が設定されます.
※パスやグループにあらかじめtransform属性が存在すると動きません.削除してください.

サンプル f:id:wait0000:20160329202422p:plain

jquery.parallax.js


(function ($) {
    $.fn.parallax = function(options) {
        var defaults = {
            svgFile: "",
            layers: [],
            distance: 0.1
        };

        var setting = $.extend(defaults, options);

        var $this = this;

        $.get(setting.svgFile, function (data) {
            $this.append($(data.documentElement));

            $this.mousemove(function (e) {
                var width = $this.width();
                var height = $this.height();

                $.each(setting.layers, function (i, val) {
                    $("#" + val).attr({
                        "transform": "translate(" + (e.clientX - width / 2) * (setting.layers.length - i) * setting.distance + ", " + (e.clientY - height / 2) * (setting.layers.length - i) * setting.distance + ")"
                    });
                });
            });
        });
    };
})(jQuery);

HTML


<!doctype html>
<html>
    <head>
        <script src="https://code.jquery.com/jquery-2.2.2.min.js" integrity="sha256-36cp2Co+/62rEAAYHLmRCPIych47CvdM+uTBJwSzWjI=" crossorigin="anonymous"></script>
    </head>
    <body>
        <div id="parallax"></div>
        <script type="text/javascript">
$(function () {
    $("#parallax").parallax({
        svgFile: "test.svg",
        layers: ["layer-1", "layer-2", "layer-3"]
    });
});
        </script>
    </body>
</html>