localhostでエラーが出る。

「SQLSTATE[HY000] [2002] No such file or directory」
のエラーが出た時の概要。

「localhost」は環境によってパイプ接続が有効でない場合がある。
「127.0.0.1」はTCP/IPで接続される

青い鳥の電信

ツイッターのAPIを触ることがあったのでメモ。
User Streamsは停止されているみたい?自分では動かしてないのでなんとも。
停止するとは事前に告知があった。

やりたいことができたのでぱっと触ってみた感じだとちょっと実装は難しそうだ。
特定のハッシュタグの記事を取得するというのはできるけど
APIをつかった検索は一定期間内のインデックス化されたツイートのみ。
無料だと7日
プレミアムで30日
エンタープライズはちょっとわからないけど一番料金が高そうだし融通は効くと思う。
料金は個人で負担するのはちょっと無理かな。
本格的にサービスとしてやるなら別だろうけども。

とりあえず、ある程度つまづくまでは作っていこうかなー。

ぱっと思いつく開発の内容としては
一定時間ごとにデータ取得
データを解析しDBに保存
画像の取得、保存とリサイズ
登録後の更新、削除

最新のAPIドキュメント
https://developer.twitter.com/en.html

確認のためだけに

IAさんを先ほどお迎えさせていただきました。
ちゃんとインポート時のネーム設定も正しかったです。

Fullcalendarで表示させる日付の範囲を設定したい。

	validRange: function(nowDate) {
	    return {
	      start: nowDate.clone().add(-1, 'months'),
	      end: nowDate.clone().add(3, 'months')
	    };
  	}

これで現在の日付を基準に1ヶ月前から3ヶ月先までの範囲に絞られる。

あとはWordPressで普段は配列を使ってメタバリューをまとめて保存していたが日付の比較をする際に配列から取り出して比較するということが
今更ながらできないということを知ったというか気が付いたので記事の保存時に特定の値を配列から取り出し別名のメタキーで保存するという形にした。
うーん、管理とメタの扱いはなかなか難しいね。
文字列での比較ならできるのだけど数値扱いや日付扱いだと注意が必要だ。

久しぶりにショートコードつくったときのメモ。

ob_start();
echo "コンテンツに表示したい";
return ob_get_clean();

画面に表示される部分を上記のコードで挟まないとショードコードを挟んだ位置に表示されないみたい。
phpのバージョンによるみたいだねー。

htaccessの変更

RewriteEngine On
RewriteRule ^hogehoge$ misetaipage.html [L]

URLの移動なしでページの中身のみを入れ替えたい場合の設定。

ニコニコ動画のコメント取得のスクリプトが

動かなくなっちゃってしばらく経つ。
次回のコメント返信までに解決策を考えておかないとなー。
プラグインが動かないのか
JSが動かないのか
XMLの取得がかわったのか
アイコンも表示されてないから
Firefoxのバージョンアップが原因かなぁ。

あとCeVIOのインポートテキストを吐き出すプログラムをAjaxで現在のサーバーで動かすように変更中。
毎回ローカルでXAMPを立ち上げて動かすのもちょっと面倒になって来た。
そんなに頻繁にやる作業じゃないけど、まぁせっかくだしね。

Ajaxの通信で非同期にしろとのこと

あと追加できになったこと

	url: ajaxurl,
	dataType: 'json',
	async: true,
	type: 'POST',

async: true,

ここをfalseにしているとコンソール画面でお説教がでてくる。
非同期通信の設定が推奨されているということみたい。
けど通信が完了しないとと表示できないものなんかもあるしまたややこしいことになりそうだ。

gulpのwacthの停止の方法

コントロール+c
で停止。

家のWinに会社に近いコーディング環境を作っておこう。
エディタ
Atom
パッケージ
show-ideographic-space
Japanese-menu
platformio-ide-terminal
emmet
キーマップに追加

'.platform-darwin atom-workspace':
  'alt-cmd-t': 'platformio-ide-terminal:toggle'

エメットの展開はデフォルトだとタブキー

gulp-ejsの設定。


作業ディレクトリ
- src/(開発環境)
-- assets/
--- sass/
--- img/
--- css/
--- js/
-- ejs/(テンプレートフォルダ)
--- util/(テンプレート関数)
--- parts/(ヘッダー等)
- dist/(本番環境)
-- assets/
--- img/
--- css/
--- js/
package.json
gulpfile.js

ejsの中身
● index.ejs

<%
	var option = {
		subtitle: "ああああはあああ",
		description: "index",
	} 
%>
<%- include('parts/_head',{absPath:filename , option:option }) %>
  <body>
<main>
ddddd

</main>
<%- include('parts/_footer',{absPath:filename , option:option }) %>
  </body>
</html>

● parts/header.ejs

<%- include('../util/_filepath',{absPath:filename}) %>
<%- include('../util/_description') %>
<!DOCTYPE html>
<html lang="ja">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width">
    <meta name="keywords" content="">
    <meta name="description" content="<%= description(option) %>">
    <link rel="stylesheet" href="<%= pathSet(absPath) %>assets/css/style.css">
    <title>サイトタイトル<%= subtitle(option) %></title>
  </head>
<header>
	<nav>
		<ul>
			<li>
				<a href="<%= pathSet(absPath) %>">Home</a>
			</li>
			<li>
				<a href="<%= pathSet(absPath) %>about">About</a>
			</li>
		</ul>
	</nav>
</header>

● parts/footer.ejs

<footer class="footer">
ふったー
</footer>

● util/_description.ejs

<%
 description = function(option){
    if( !option.description){
	    return 'デフォルトテキスト';
    }else{
        return option.description;
    }
 };
  subtitle = function(option){
    if( !option.subtitle){
	    return ' | のんびり日記';
    }else{
        return ' | '+option.subtitle;
    }
 };
%>

● util/_filepath.ejs

<%
 pathSet = function(absPath){
    var rootPath = absPath.split('src/ejs')[1];
    if(rootPath.split('/').length - 2 > 0){
        return '../'.repeat(rootPath.split('/').length - 2);
    }else{
        return '';
    }
 };
%>

動かすのに必要な要素
gulp-data
gulp-ejs

基本のテンプレートにオプションの値をつけタイトル名の追加やディスクリプションの上書きをさせている感じ。
実務ではまだ使っていない草案の状態なのでもっと変わるかもしれない。
実際の案件によっても構造も違うしね。
jsonファイルを使ってテンプレートのディレクトリとファイル名からディスクリプションの設定をしようとも考えたけど
学習コストが高そうなのでとりあえず実務で一度ためしてから問題点を出してみる。

テンプレートエンジンのメモ

ttps://stella-design.biz/2017/01/01/235346.html
gulp-ejs でHTMLの編集をカンタンにする
ttps://www.syngram.co.jp/blog/4824
テンプレートエンジンEJSで使える便利な構文まとめ
ttps://qiita.com/y_hokkey/items/31f1daa6cecb5f4ea4c9