BitbucketのWikiでインフラとかLint設定とかなんやかんやを書き散らし始めました。
https://bitbucket.org/naoyukik/environments/wiki/browse/
たまにある「あの設定どこに行ったっけ?」なんてものを放り込んでいきます。
BitbucketのWikiでインフラとかLint設定とかなんやかんやを書き散らし始めました。
https://bitbucket.org/naoyukik/environments/wiki/browse/
たまにある「あの設定どこに行ったっけ?」なんてものを放り込んでいきます。
$ npm install -g eslint $ eslint --init $ npm install standard --save-dev
最近新しいboxを使ってVMを構築しようとしたら下記のエラー。
Vagrant was unable to mount VirtualBox shared folders. This is usually because the filesystem "vboxsf" is not available. This filesystem is made available via the VirtualBox Guest Additions and kernel module. Please verify that these guest additions are properly installed in the guest. This is not a bug in Vagrant and is usually caused by a faulty Vagrant box. For context, the command attempted was:
VirtualBoxをアップデートしていたのでゲストのGuest Additionsをアップデートのためにプラグイン導入。
vagrant plugin install vagrant-vbguest
それでもvboxsfのエラーは修正できず。
なんぞやと探ってみるとmount.vboxsfが無いご様子
mount.vboxsf -> /opt/VBoxGuestAdditions-5.1.20/other/mount.vboxsf ← ファイルが存在しない
Guest Additionsのミスなのか分からないが、とりあえずエラーなのでここを修正する。
下記の場所にあるという情報なのでここへシンボリックリンクを貼り直す。
rm /sbin/mount.vboxsf ln -s /usr/lib64/VBoxGuestAdditions/mount.vboxsf /sbin/
これでVM を再起動すれば完了!
このプラグインには、実は.tagファイルを関数の補完リストとして使用する機能が実装されている。
だがしかし!みんな大好きWindowsでは、この機能がなぜか動かない。
というわけで、CTagasのプラグインにCTagsAutoCompleteというClassがあるのでメンバ関数を確認…
f = os.popen(
"awk \"{ print " + prefix + "$1 }\" \"" + tags_path + "\"")
awk…
というわけで、理由はawkと呼ばれるテキスト処理ソフトウェアが必要ということが判明。
なのだが、Windowsには標準で入っていない。
ならばawkとやらをインストールだ。
なんとたったの3ステップ!
これで単語補完が働いたときに.tagsファイルに含まれる関数群がリストアップされてより仕事がはかどるという寸法です。
ただ、.tagsファイルが大きいと単語補完にも時間がかかる。
今はまだ、不要な関数群(composerで入れたライブラリとか)はtagファイルのビルド時に無視リストに入れておいた方がよさげ。
Firefoxがe10sへの移行を始め、Firefox51になった途端にVimperatorがほぼ動作しなくなった…。
そんなわけで、とうとうVimperatorに見切りを付けVimFxへ移行。
なにげに使っていたVimperatorのプラグイン「TreeStyleTab.js」。
何が出来るかっていうと、ツリーを開く・畳むがショートカットに割り当てられるようになる。
そんなわけで、下記のカスタムコマンドをconfig.jsへ追加すれば使用できるようになるはず。
処理自体はTreeStyleTab.jsほぼそのままで動作。
vimfx.addCommand({
name: "tree_style_tab_expand",
description: "ツリーを開く",
category: "location",
}, ({vim}) => {
const gBrowser = vim.window.gBrowser;
if (gBrowser.treeStyleTab) {
gBrowser.treeStyleTab.collapseExpandSubtree(gBrowser.selectedTab, false);
} else {
vim.notify("need TreeStyleTab");
}
})
vimfx.addCommand({
name: "tree_style_tab_collapse",
description: "ツリーを畳む",
category: "location",
}, ({vim}) => {
const gBrowser = vim.window.gBrowser;
if (gBrowser.treeStyleTab) {
gBrowser.treeStyleTab.collapseExpandSubtree(gBrowser.selectedTab, true);
} else {
vim.notify("need TreeStyleTab");
}
})
ショートカットは好きに設定すればいいと思うけど、以前からのだとこれでやってる。
開く → zo
畳む → zc
e10sになるとFirefoxもかなり軽くなるようだし、これでまだ10年は戦えるんじゃないかな。
いくつか登録しておくと、決められたカードがメインで使用されてしまいます。
そんなわけで、メインの資金源を変更しておく方法。
これでメインを好きなカードに設定可能!
PaypalのWEBサイトのUIが地味に分かりづらい…
Downloading Packages: warning: rpmts_HdrFromFdno: Header V4 RSA/SHA1 Signature, key ID ef8d349f: NOKEY Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-puppetlabs-PC1 The GPG keys listed for the "Puppet Labs PC1 Repository el 6 - x86_64" repository are already installed but they are not correct for this package. Check that the correct key URLs are configured for this repository.
というわけで、下記の場所からひとまず新しいGPG KEYを取得して使用できるようにする
wget http://yum.puppetlabs.com/RPM-GPG-KEY-puppetlabs wget https://yum.puppetlabs.com/RPM-GPG-KEY-puppet rpm --import RPM-GPG-KEY-puppet rpm --import RPM-GPG-KEY-puppetlabs
おそらくこれで使えるようになるはず。
昨年はPHP漬けの毎日であまり新しいことにチャレンジ出来ない年でした。
とはいえ、初めてPHPのフルスタックフレームワーク(Phalcon)を使ったり業務のインフラ構築したりとある意味新しいこともやれた一年ではありました。
今年は新しいプログラミング言語を覚えていきたいところです。
おそらくC#あたり。
もちろん引き続きSublime Textのプラグインも必要に応じて公開・更新していきたいですし、PHPでもPythonでも何かWebアプリを作っていく所存です。
そんなわけで、今年のやっていくことは
の5本でお送りいたします。
大まかには「心身の鍛錬」と「プログラミング」の2つのカテゴリ。
一気にやるわけではなくて、あくまでも習慣づけていくということで。
1~4は同時進行でも出来そうだけど、早寝早起きがほんと難しい。
ちなみに昨年年始に「グルテンフリーやる」とか突然奥さんに宣言して小麦断ち始めたわけですが、腹痛減ったしお肌ツルツルだし鼻炎は治らないしといった感じでした。
鼻炎が治らないの残念無念。これは一番の目標だったのに。でもグルテンフリーは引き続き行っていきます。
そんなわけで、いくつか変更した機能があるのでそれをfork版として公開しておきます。
github で公開中: naoyukik/CTags
上記ともに、セッティングファイルに使用フラグを追加してあるのでそれぞれ設定してからご使用ください。
たぶんST2でも使える…かな。
CTagsのプラグイン(本家): https://github.com/SublimeText/CTags
配列のあるキーを使って構造を変更することが簡単に出来るようになるarray_column(PHP5.5以上)
http://php.net/manual/ja/function.array-column.php
説明 array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ) array_column() は、 配列 input の中から column_key で指定した単一のカラムの値を返します。 オプションで index_key も指定できます。これを指定すると、 入力配列内のカラム index_key の値に基づいて結果を並べ替えます。 -- PHPマニュアルより引用
説明読んでもイメージがわかねぇ…
そこで例を見てみる。
下記例はPHPマニュアルより引用。
<?php // データベースから返ってきたレコードセットの例 $records = array( array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ), array( 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', ), array( 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', ) ); $first_names = array_column($records, 'first_name'); print_r($first_names); ?>
上の例の出力は以下となります。
Array ( [0] => John [1] => Sally [2] => Jane [3] => Peter )
簡単にfirst_nameの別配列が作れる。
<?php // 先ほどの例と同じ $records 配列を使います $last_names = array_column($records, 'last_name', 'id'); print_r($last_names); ?>
上の例の出力は以下となります。
Array ( [2135] => Doe [3245] => Smith [5342] => Jones [5623] => Doe )
id => last_name で配列を作成出来た。
PHPマニュアルの例には出てないが、第2引数をnullにすると、第3引数の値を元になる配列全体のキーにして返してくれる。
$ids = array_column($records, null, 'id'); print_r($ids); ?>
上の例の出力は以下。
array( 2135 => array( 'id' => 2135, 'first_name' => 'John', 'last_name' => 'Doe', ), 3245 => array( 'id' => 3245, 'first_name' => 'Sally', 'last_name' => 'Smith', ), 5342 => array( 'id' => 5342, 'first_name' => 'Jane', 'last_name' => 'Jones', ), 5623 => array( 'id' => 5623, 'first_name' => 'Peter', 'last_name' => 'Doe', ) )
DBから取ってきたデータの整形あたりでよく使えそう…特に例2はもっと早くこれを知っておけば使えた場面があったように思える…。
マニュアルやバージョン差分は目を通しましょう。