grepコマンドについて

タグ: , | 投稿日: 投稿者:

こんにちは。kikuです。

今日はLinuxのgrepコマンドについて書こうと思います。
何かを調べてる時はほぼ使いますよね。grep。

grep "hoge" aaa.txt

これは基本的な使い方です。
これでaaa.txtから”hoge”の文字列を探して引っかかった行を出力していきます。
 

grep -e "hoge" -e "fuga" aaa.txt

or的な使い方
これで”hoge”or”fuga”を探します。
 

grep -i "hoge" aaa.txt

大文字・小文字を区別しない使い方
これで大文字・小文字を区別せず”hoge”を探します。
 

grep -v "hoge" aaa.txt

not的な使い方
これで”hoge”が含まれていない行を探します。
 

grep "hoge" -A 3 aaa.txt

これで”hoge”が含まれていた行と次の3行を探します。
これはちょっと今までのとは違いますね。
 

grep "hoge" -B 3 aaa.txt

これで”hoge”が含まれていた行と前の3行を探します。
 

grep "hoge" -C 3 aaa.txt
grep -3 "hoge" aaa.txt

これで”hoge”が含まれていた行と前後の3行を探します。
 

grep -c "hoge" aaa.txt

これで”hoge”が含まれていた行の数を表示します。
 

grep -n "hoge" aaa.txt

これで行番号を先頭に付けます。
 

ls -l | grep "hoge"

こんな感じにすればコマンドの出力結果から”hoge”が含まれている行のみを表示します。
 
 
まとめ

grep -nie 'aaa' -e 'bbb' -B 2 aaa.txt | grep 'ccc'

これで行番号を先頭に付けて”aaa”と”bbb”を大文字・小文字を区別しないで探して、その行とその前の2行の中から”ccc”が含まれている行のみを表示します。
 
とても使えますね!エディタの検索機能を使っても探し出せないこともこれなら可能かもしれません!!

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook

今更ながらの、権限変更について考える

タグ: | 投稿日: 投稿者:

先日、他の人が権限を変更するところを見る機会があったのですが、お恥ずかしながらそこで初めて数字以外で権限を設定する方法を知りました。

そこで、chmodについてまとめてみたいと思います。

chmod

ファイルやフォルダの権限を変更するコマンドです。当然、どのファイル・フォルダをどのように変更するかという指定が必要になります。

権限変更の指定の前に、権限について説明します。
まず、権限は対象となるユーザと許可するアクションの2つで成り立ってます。
対象となるユーザは、所有者、所有者グループ、その他の3種類となっています。
一方、許可するアクションも読み込み、書き込み、実行の3種類に分かれています。

chmodでは、これを0~7の数字を使い、3桁で表現します。
1桁目は、所有者の
2桁目は、所有者グループの
3桁目は、その他の、許可されているアクションを記しています。

では、0~7でどうやって許可されているアクションを示しているのでしょう。
肝となるのは、対象となるユーザは排他的であるのに対し、許可するアクションは重複するということです。
対象ユーザは、所有者であれば、所有者グループではなく、またその他であることはありません。
しかし、許可するアクションは、読み込み、書き込み、実行、それぞれが独立しており、
読み込み、実行が許可されているが、書き込みが許可されていないということもありえます。
実は、0~7の数字はそのままで考えるのではなく、2進法にして考えます。
許可・不許可を0と1で、各項目(読み込み、書き込み、実行)を桁に置き換えているのです。

例:

読み込み(r) 書き込み(w)  実行(x) 
許可 不許可 許可
1 0 1

上記のような場合、2進法で101に置き換えられ、さらに10進法に変えて、5と表現されます。
全て許可する場合は、111になるので、7になるということです。

これが、ユーザの種類毎に繰り返され、3桁の数字となります。
777の場合、全てのユーザに全ての権限があるということです。
700の場合、所有者のみ全てのアクセスが可能だということになります。

 

chmod 777 [ファイル・フォルダ名]

とすれば対象のファイル・フォルダに全てのユーザの全てのアクセスを許可することになります。

数字で権限を指定する以外にも、対象のユーザを指定して権限を変更できます。
その場合、対象ユーザや権限の種類などをちゃんと指定する必要があります。

対象ユーザ 指定方法
所有者 u
所有者グループ g
その他 o
すべて a

 

権限の種類 指定方法
読み込み r
書き込み w
実行 x

 

変更の種類 指定方法
指定した権限の追加 +
指定した権限の削除
指定した権限に変更 =

 

個人的には、最初の設定では、数字の方が指定しやすく、
既に使用中のファイルの権限を変える必要がある場合は、文字での指定が安全で良いのかなと思います。

 

権限の対応表

読み込み(r) 書き込み(w)  実行(x)    10進数
0 0 0   0
0 0 1   1
0 1 0   2
0 1 1   3
1 0 0   4
1 0 1   5
1 1 0   6
1 1 1   7

 

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook

Vimって☆Emmetさん

タグ: , | 投稿日: 投稿者:

どうも、ニタです。先日、社内でEmmet(Zen Conding)を紹介する機会がありました。
当日は、IDEやテキストエディタのアプリ上でデモを行ったのですが、vimmerが多いせいか、そもそもHTMLコーディングをする機会が少ないのか、あまり採用されてない感じです(´・ω・`)
そこで今回は、vimでEmmetを使えるようにしてみます。

Emmetって何?

Emmetは、HTMLやCSSのコーディングを効率化してくれるツールです。
テキストエディタやIDE上でショートカットコードを打つと、HTMLやCSSに転換されます。

Emmet

Zen Codingというのもあります

Emmentで検索すると「Zen Coding」というのも出てきます。これはEmmetの前身となるプロジェクトで、EmmetはZen Codingを基に作られており、Zen Codingの改良版と言って良いでしょう。

閑話休題。実際にEmmetを使ってみましょう。

html:5

Emmetのプラグインが入ったエディター上で、こんな感じに入力して展開させると…

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    
</body>
</html>

こんな感じに一気にHTMLコードができちゃう!
更に…

(div#content-id$$$.page-content-class>h1+h2)*2

独自記法を使ってタグのidやクラスを指定したり、同じ要素をくり返したりも出来ます。

<div id="content-id001" class="page-content-class">
    <h1></h1>
    <h2></h2>
</div>
<div id="content-id002" class="page-content-class">
    <h1></h1>
    <h2></h2>
</div>

繰り返しはループ処理でも書ける場合もありますが、コーディングの高速化と閉じタグや属性を書く手間を最小限に抑えられるのが気に入っています。

VimでEmmetを使えるようにする

さていよいよ本題。
VimでEmmetを使えるようにするには「emmet-vim」というプラグインをインストールします。
このプラグインは、Vimのプラグイン管理ツールのNeoBundleで管理します。NeoBundleに関しては、後日改めて紹介するかもしれません。
取り急ぎ、以下の様にしてNeoBundleとemmet-vimをインストールします。

NeoBunbleとemmet-vimのインストール

NeoBundleは以下のように

# 配置先のディレクトリを作成する
mkdir -p ~/.vim/bundle
cd ~/.vim/bundle

# NeoBundleをgitHubのリポジトリから取得する
git clone git://github.com/Shougo/neobundle.vim

# emmet-vimをgitHubのリポジトリから取得する
git clone https://github.com/mattn/emmet-vim.git 

その後、vimの設定ファイル~/.vimrcを作成してNeoBundleをインストールします。

set nocompatible
filetype plugin indent off

if has('vim_starting')
  set runtimepath+=~/.vim/bundle/neobundle.vim
  call neobundle#rc(expand('~/.vim/bundle'))
endif 

NeoBundleFetch 'Shougo/neobundle.vim'

# 以下は必要に応じて追加
NeoBundle 'Shougo/unite.vim'
NeoBundle 'Shougo/neosnippet.vim'

filetype plugin indent on

また、Mac OSX El Capitanの場合、上記の設定だとインストールできないようです。

# インストール用シェルファイルをダウンロードし、実行
$ curl https://raw.githubusercontent.com/Shougo/neobundle.vim/master/bin/install.sh > install.sh
$ sh ./install.sh

.vimrcの表記も変わります。

" Note: Skip initialization for vim-tiny or vim-small.
 if 0 | endif

 if has('vim_starting')
   if &compatible
     set nocompatible               " Be iMproved
   endif

   " Required:
   set runtimepath+=~/.vim/bundle/neobundle.vim/
 endif

 " Required:
 call neobundle#begin(expand('~/.vim/bundle/'))

 " Let NeoBundle manage NeoBundle
 " Required:
 NeoBundleFetch 'Shougo/neobundle.vim'

 " My Bundles here:
 " Refer to |:NeoBundle-examples|.
 " Note: You don't set neobundle setting in .gvimrc!

 call neobundle#end()

 " Required:
 filetype plugin indent on

 " If there are uninstalled bundles found on startup,
 " this will conveniently prompt you to install them.
 NeoBundleCheck
NeoBundle 'mattn/emmet-vim'

上記を~/.vimrcに追記し、vim上で:NeoBundleInstallというコマンドを実行してプラグインをインストールします。

VimでEmmetしてみる

Vim上でEmmetを実行するには、<C-y>,で行います。control + yのあとカンマ「,」をタイプします。
キーバインドの設定は~/.vimrcで設定します。

# 実行時のキーバインド変更する場合(ここではYからEに変更)
let g:user_emmet_leader_key = '<C-E>'

これでVim上でも高速HTMLコーディングが可能になりました。

それではまた来年!

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook

[PHP]エクセルで文字化けさせないCSVの作り方

タグ: , , , , | 投稿日: 投稿者:

おはこんばんにちは、いい年してモンハンしちゃってるモリです。

さて、今回はCMSの1機能としてよくあるCSVダウンロード機能に関する記事を書きたいと思います。
PHPで生成したCSVをエンドユーザーがダウンロードしてエクセルで開いたら文字化けしてる!って
事を無くす為のやり方です。

結論から言うとファイルの先頭にBOMを付与する事で文字化けを回避させることが出来ます。
エクセルにUnicodeと識別させるために付与します。
これがあるとエクセルは自動的に判別してくれます。
SIJISに変換する方法もありますが、UTF8のまま文字化け対応させるやり方です。

元データはこんな感じ
blog1

BOMなしのPHPソース

 
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=sample.csv");
$fp = fopen('php://output','w');
$data = array(
		array('項目1','項目2','項目3','項目4'),
		array('データ1','データ2','データ3','データ4'),
		array('データ5','データ6','データ7','データ8'),
		array('データ9','データ10','データ11','データ12')
);
foreach($data as $output){
	fputcsv($fp, $output, ',','"');
}
fclose($fp);

これをエクセルで見てみると見事に文字化け
blog2

さっきのソースのデータ書き込み前にBOMを付与します。

 fwrite($fp, '\xEF\xBB\xBF'); 

BOMありバージョンで見てみるとちゃんと読み込めていますね。
blog4

おまけ:BOMありのPHPソース

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=sample.csv");
$fp = fopen('php://output','w');
fwrite($fp, "\xEF\xBB\xBF");
$data = array(
		array('項目1','項目2','項目3','項目4'),
		array('データ1','データ2','データ3','データ4'),
		array('データ5','データ6','データ7','データ8'),
		array('データ9','データ10','データ11','データ12')
);
foreach($data as $output){
	fputcsv($fp, $output, ',','"');
}
fclose($fp);

では。。。

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook

HYPER-Vのレプリケーション設定について

タグ: , , | 投稿日: 投稿者:

前回HYPER-Vのレプリケーション設定を行うにあたって下準備を下記URLに記載しました。

http://dev.blog.fairway.ne.jp/hyper-v%e3%81%ae%e3%83%ac%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e8%a8%ad%e5%ae%9a%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%ef%bc%88%e4%b8%8b%e6%ba%96%e5%82%99%ef%bc%89/

 

今回はレプリケーション設定を行います。

1.HYPER-Vマネージャーを開きます。

2.対象仮想サーバを右クリックします。

3.レプリケーションを有効にするをクリックします。

4.レプリカサーバのホスト名を要求されましたらセカンダリサーバのホスト名を入力します。

5.※IPアドレスでは出来ないため、hostsファイルにセカンダリサーバのホスト名とIPアドレスを記入してください。

6.証明書の選択をクリックし、前回作成した証明書を選択します。

7.証明書ベース認証を使用するを選択します。

8.そのまま次へをクリックし続けます。

9.完了をクリックします。

完了をクリックしましたら以下設定でセカンダリサーバとレプリケーションが行われます。

 ・すぐにレプリケーションを開始

 ・レプリケーション同期間隔:5分

 ・ネットワーク経由でセカンダリサーバにコピー

  ※上記パラメータの調整については8の部分で行います。

これでセカンダリサーバに仮想サーバがコピーされます。

使用している回線、マシンの性能、仮想サーバが既に使用している容量次第でコピー時間は変わっていきます。

以上です。

下準備が本当に苦労しました。

 

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook

今度はノコギリ波をつくろう

毎度、いかおです。

前回はサイン波を作成してならせてみせましたが今度はノコギリ波を作ります。

先ず、ノコギリ波はどんな波形かというと・・・・

そこはグーグル先生に聞いて下さい。

【その原理】

「キャリアとモジュレータとの周波数を1:1にするとノコギリ波が作れる」

ということなので、いわゆるFM音源的アプローチで(サイン波はできてるので)作ってみます

先ず、1サイクルのサイン波を作成する。コレは前回の私の投稿であるここを参考にして・・・・

例えば1サイクルのサイン波はこんな感じで作れるかな?

static const float PI = 3.141592f;
static const float SamplingRate = 48000.0f;
static const float Heltz = 440.0f; //ラ〜♪
static const float DegBase = 360.0f;
float width = DegBase / (SamplingRate / Heltz);

float vals[360];
floart deg = 0.0f;
int n = n;
for(int i=0;i < 360){
    if(deg > DegBase)break;
    vals[i] = sin(deg * PI / 180);
    deg = deg + width;
   n++;
}

そしてアドレステーブルを作成する。FM音源はこのアドレステーブルを他のサイン波と加算したりして変調し変調された順番で元のサイン波を取り出す。なんだか無茶な方法に見えるけどしょせん楽器なんでいいか・・・

int addresTable[360];
// アドレステーブルはintにしとこう
for(int i=0;i < n;i++){
    addressTable[i]=i;
}

そして変調だ。元のサイン波と混ぜてしまう

int editedAddressTable[360];
//これもint
for(int i=0;i < n;i++){
    editedAddressTable[i] = vals[i] + addressTable[i];
}

そして取り出す・・・

float answer[360]:
for(int i=0;i < n;i++){
    answer[i] = vals[editedAddressTable[i]];
}
// このanswerがFM変調後の音です

これが本当にノコギリ波になるのか?

次回、作ってみます

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook

OMSAインストール(CentOS)についての備忘録

タグ: , , | 投稿日: 投稿者:

最近、急に寒くなってきましたね。shiraneです。

DELL OMSA(OpenManage Server Administrator)は、
webブラウザからサーバのハードウェア状態などを
確認できるモニタリングツールです。

【インストール手順】

1.root権限で下記コマンドを実行しレポジトリを追加します。

#wget -q -O http://linux.dell.com/repo/hardware/latest/bootstrap.cgi | bash


2. OMSAをインストールします。
インストール場所は「/opt/dell/srvadmin/」となります。

# yum -y install srvadmin-all


3.インストールしたOMSAを起動します。

# /opt/dell/srvadmin/sbin/srvadmin-services.sh start


4.自動起動の設定をします。

# /opt/dell/srvadmin/sbin/srvadmin-services.sh enable
racsvc 0:off 1:off 2:on 3:on 4:on 5:on 6:off
instsvcdrv 0:on 1:off 2:off 3:on 4:off 5:on 6:on
dataeng 0:off 1:off 2:off 3:on 4:off 5:on 6:off
dsm_om_shrsvc 0:off 1:off 2:off 3:on 4:off 5:on 6:off
dsm_om_connsvc 0:off 1:off 2:off 3:on 4:off 5:on 6:off


以上まで完了したらwebブラウザで、
「 https://サーバアドレス:1311/ 」へアクセスしてrootログインする事で
サーバのハードウェア状態を確認んできます。

 

【アンインストール】

1.アンインストール専用のスクリプトを使用します。

# /usr/bin/srvadmin-uninstall.sh

  上記コマンドを実行すると、アンインストールするパッケージ一覧が表示され
アンインストールするか聞かれるので「yes」を指定すればアンインストール完了と
なります。


以上となります。

 

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook

CSSの単位 vw, vh, vmin, vmax

タグ: | 投稿日: 投稿者:

こんにちは、kikuです。

最近知ったCSSの単位について記載していきます。
vw, vh, vmin, vmax, この4つです。

よくレスポンシブデザインで使うのは%(パーセント)ですかね。

<style>
div {
  width: 50%;
}
img {
  width: 50%;
}
</style>
<div>
  <img src="img/hoge.jpg" />
</div>

これだとimgは親のdivのwidthに対して50%のサイズで表示します。
つまりimgのサイズは画面の横幅の25%で表示されますね。

続いてwvはこんな感じです。

<style>
div {
  width: 50%;
}
img {
  width: 50wv;
}
</style>
<div>
  <img src="img/hoge.jpg" />
</div>

これだとimgは親のdivのwidthに影響されません。
100wv=ビューポートのサイズ となってます。
つまりimgのサイズは50wvなのでビューポートの横幅の50%で表示されますね。

他のも同じようにビューポートに対する割合となっています。

wv ビューポートの幅に対する割合
wh ビューポートの高さに対する割合
vmin ビューポートの幅と高さのうち、値が小さい方に対する割合
vmax ビューポートの幅と高さのうち、値が大きい方に対する割合

ちょうど使いたい場面があったのですが、ブラウザの対応バージョンの関係で断念しました。。。。
対応バージョンはこんな感じ。

  wv wh wmin wmax
chrome 20.0〜 20.0〜 20.0〜 26.0〜
FireFox 19.0〜 19.0〜 19.0〜 19.0〜
IE 9.0〜 9.0〜 9.0〜 11.0〜
Opera 15.0〜 15.0〜 15.0〜 15.0〜
Safari 6.0〜 6.0〜 6.0〜 6.1〜
Androidブラウザ 4.4〜 4.4〜 4.4〜 4.4〜
iOS Safari 6.0〜 6.0〜 6.1〜 7.0〜

Androidブラウザのところが敷居高いですね。
Android4.4未満のユーザを切り捨てるのはまだ早いかと思います。

というわけで、PCなら普通に使われるかもしれない、スマートフォン向けサイトでもそのうち普通に使われるかもしれない単位の紹介でした。

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook

設定以外の理由でメールが送れなくなる場合

タグ: , | 投稿日: 投稿者:

Cisco(www.senderbase.org)によると過去1カ月に送信されたメールの86%以上がSPAMだったらしいですね。
4千億通以上のSPAMが送られているということなので如何にメールを仕分けるのかというのが重要になってくるということです。

キーワードを設定して、この単語があったらSPAMだと判別するのもありですが、それだと個人に頼るしかありません。
1人1人が設定するのであれば、サービスではないですね。

つまり、何らかの方法で、このメールは信用できる、信用できないという判断を下さないといけないということです。

その判断の基準となるのがドメインを含めたIPの情報になります。

 

SPAM業者もSPAM送付を生業としているだけに、バカばかりではありません。読む人を信用させようと一見、信用が高いドメイン名を騙ることがあります。

銀行からのメールだと偽装し、偽のウェブサイトに誘導するという事件が話題になったりしました。

ドメイン名だけで判断するのは心もとないということです。

そのため、IPの情報も追加することで、より正確な判断をすることができるようになります。

 

判断するのは良いのですが、判断するには過去の情報が必要になります。このドメインからは、過去3カ月SPAMが送られているというような。

そういった情報をベースにメールは評価され、SPAMかSPAMでないかという判断がくだされます。

では、どこがそのような判断を下しているのでしょう?

1つの会社が独占的に判断を下しているのではなく、複数の会社がサービスの一環として提供していたり、SPAMを撲滅しようとする有志が情報共有したりしています。

ですので、この相手には問題なく送れるけど、別の相手には送れないということがたまにおきます。

 

最大クラスの情報を確認できるサイトがあります。

http://www.senderbase.org/

ここは、ネットワーク機器の最大手であるCiscoが運営しており、有用な情報を取得できます。

 

右上に検索ボックスがあるので、そこにIPを入力すればそのIPやドメイン、ネットワークを入力すればそこがどれだけ信用に足るのかが分かります。

もし、Poorが表示されるようなことがあれば色々と調査の必要があります。

気を付けないとどこにメールを送ってもメールの受信を拒否されるということになりかねません。

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook

[WordPress]WordCampTokyo2015に行ってきたよ

タグ: | 投稿日: 投稿者:

どうも、ニタです。

先日、WordPressの交流会WordCamp Tokyo 2015に参加してきました。
WordCamp Tokyo 2015

wctokyo_2015-10-31 10 42 47

このところ、WordPress関連のことしか書いていませんが、WordPressが好きすぎるので良いかなと勝手に思ってます。

今年のWordCamp Tokyoのテーマが「More Publishing」ということで、WordPressのテーマやプラグインに関するセッションやワークショップの他に、サイト運営者やブロガーといった、「情報発信」を行う方を対象にしたセッションも多く見られました。

今回は、私が参加したセッションの中で、興味深かったセッションの感想など書いていこうと思います。

【基調講演】「なんとなく」の壁を越えよう!自信を持って WordPress を選択するためのヒント

 

WordPressの運営会社Automattic社に所属の数少ない日本人スタッフ、高野直子さんによる基調講演。

  • Web全体の24.8%のWebサイトがWordPressで作られていること
  • 数あるCMSの中でもWordPressが利用率58.8%と圧倒的なシェアを誇っていること
  • TimeやTHE NEW YORKER、TOYOTA ブラジルといった大規模サイトから男木島図書館のサイトといった小規模サイトもWordPressで作られている

Webサイトを立ち上げるにあたり、ベースシステムにWordPressを選択するいくつかの根拠として、上記のことなどを説明していました。
WordPressが素早いWebサイト構築に向いていて、カスタマイズしやすいからこその、WordPressの利用率なのかもしれません。

また、年内リリースが予定されている次期バージョン、WordPress 4.4の特徴も紹介していました。
私が気になったものは、以下のもの。

WP REST API

REST API経由で外部から記事の取得や、記事の更新などが出来るようになります。
外部サイトやアプリから記事の取得更新が可能になり、情報発信の頻度、速度の向上が見込まれます。

このAPIを使用したアプリやWebサービスの開発をするのも面白いかもしれません。

Responsive Images

HTML5のsrcset属性を利用した、画面やウィンドウサイズなどのユーザーの端末環境に最適な解像度の画像を配信するのが、Responsive Imagesです。

これは、RICG Responsive Imagesというプラグインがコアに統合された形になります。通常通り画像をアップロードすれば、自動的にsrcset属性が追加され適宜画像が指定されるようになるようです。

スマホやタブレット端末、高解像度モニタなどユーザー環境が多様化し、画像サイズ指定に悩まされていた方も多いと思いますが、Responsive Imagesはその解決策の一つだと思います。

embed(記事の埋め込み)

Twitterのツイートや、はてなブログのブログカードのようにWordPressの記事を外部サイトに埋め込む事ができます。
参照リンクや引用文をただのテキストではない見せ方をすることで、記事の見栄えが良くなったり、情報発信の楽しさが増えるのではないでしょうか。

ただし、SSLサイトで非SSLサイトのコンテンツを埋め込むことは出来ないようです。(機能としてNGな訳ではなく、ブラウザ側でブロックされるでしょう)

Content Publishing in 2016

Human Made社のNoel Tockさんによる、情報発信の形の変化や対応策についてのセッション。
Noelさんは、レストランサイトを構築できるWebサービスhappytablesなどを数多くのサイトをプロデュースしています。

記事を公開し自分のWebサイトへユーザーを誘導するのに、従来のSNSや外部サービスの利用だけでは、今後誘導し難くなるとされています。
スマホやタブレット端末の普及に伴い、Webサイトの他にアプリやWebサービスも数多く公開されていますが、それらを利用するユーザーの所有時間は1日24時間と変わりません。
そういった限られた状況において、いかに自分のWebサイトやコンテンツを見てもらう時間をユーザーから取れるのかが重要になってきます。

海外の有名サイトの情報発信方法を参考に、ユーザーの環境に寄り添った、自分のコンテンツに適した情報発信方法をいくつか紹介していました。

WordPressで行う継続的インテグレーション 入門編  -プラグイン開発・保守地獄から学んだこと-

Custom Post Type Permalinksなど有名プラグインを多く開発しているToro_Unitこと占部さんのセッション。

 

ざっくり要約すると、「PHP Unit使ってテスト駆動開発しないと地獄見るぜ」。
WordPressには「WP_UnitCase Class」というPHP Unitを継承したテスト用クラスも用意されているから、プラグイン開発するなら使ってみれば良いじゃない。ということでした。

WordPressをCUIでコントロールできる「WP_CLI」にある、プラグイン作成コマンドにも標準でテストコードやTravis CI用のymlファイルが生成されるので、テストコードを書いて損はないと思います。

ホント、テストは大事ですよ…

※「WP_CLI」はVagrantで構築できるWordPress開発環境の「VCCW」にも入っているので、WordPressサイトやプラグイン開発は、VCCWを使うのをマジお薦めします。

The Best Practices of Making WordPress Site Multilingual

多言語サイトをWordPressで構築する際のいくつかの方法について。

 

スライドにあるような、WordPressのマルチサイト機能や多言語対応プラグインなどの紹介がありました。
なかでも「YarakuZen」という翻訳サービス(商用有料)が気になりました。
すでにプラグイン化されているので、今度試してみたいと思います。

Webサイトをめぐるセキュリティ状況と効果的な防御方法~WordPressを題材として~

セキュリティと言ったらこの方、徳丸さんのセッションはWordCampでも人気のセッションだったと思います。
WordPressがカスタマイズしやすいCMSだからこそセキュリティにはコストを掛けるべきではないでしょうか。
自分でカスタマイズしたことで、セキュリティホールを自ら開けてしまうケースもあれば、セキュリティを考慮せず作られたプラグインを使っている場合もあります。
WordPressではセキュリティを高めるプラグインも多く公開されているので、それらを使ったセキュリティ対策も一つの手かと思います。

ライターと制作者のメディアの作り方

セッションタイトル通りですが、ライター、制作者の立場から、WordPressサイトでのサイト設計、コンテンツ設計についてディスカッションが行われました。
登壇されたのは、LIGブログの元編集長、コンテンツ制作会社ノオトでライターをしている朽木 誠一郎さんと、フリーランスWebデザイナーのおおはらかずきさん。

おおはらかずきさんが運営しているブログサイトは、225記事で月間100万PVを稼いでいる人気サイトです。

私は最近、当社コーポレートサイトにてFAIRWAY NEWSを運営しているので、記事を制作する上でのコツを多く聞けて有意義なセッションでした。

まとめ

wctokyo_2015-10-31 22 34 48

WordPressは他のCMSと比較してもカスタマイズしやすいCMSだと思います。
それ故に開発者だけでなく、デザイナーやブロガーなどのコンテンツ制作者など多くの人に利用されているCMSだと今回のWordCampに参加し改めて感じました。
様々な使い方が出来、テーマやプラグインが利用できる反面、セキュリティを万全にしなければならないし、情報発信方法、ユーザーに知ってもらう手段なども時代に合わせて変えていかなければいけません。

基本的なことですが、サイト構築、コンテンツ制作の上で大事にしなければならないことだと思いました。
それではまた。

追伸

先月拙作のWordPressプラグインをアップデートしました。
新機能として「ロールバック機能」を追加しています。
これは一度予約更新で更新した投稿内容を、日時指定で更新前の状態に戻すことができます。
予約更新する投稿内容を期間限定で表示させる場合などに使えると思います。

Share on Google+Tweet about this on TwitterShare on StumbleUponShare on Facebook