purazumakoiの[はてなブログ]

技術メモから最近はライフログも増えてきてます。

自動的に更新される日付範囲フィルターを作成する

Tableau2日目で、カレンダーで開始日とか終了日でフィルターしたいということで、指定期間で表示することにしました。

自動的に更新される日付範囲フィルターを作成する | Tableau Software

ということでhowto通りやってみたんですけど、どうも終了日を含んで無い気がする コードをみると

式フィールドで、次のような計算フィールドを作成します。
IF [Filter ON/OFF]="OFF" THEN [date] ELSEIF [date]<[End date] AND [date]>[Start date] THEN [date] END

どうも、 [date]<[End date] のあたりが<=じゃないのが怪しいとか思ってやってみたんですけど結局意図通りには以下の通りだと上手くいくっぽいです。

IF [Filter ON/OFF]="OFF" THEN [受注日] ELSEIF [受注日]<[End date]+1 AND [受注日]>[Start date] THEN [受注日] END

つまり、[End date]+1 って感じで+1してあげました。

GAのサンプリングについて

Google Analyticsのサンプリングとは

Google Analyticsのデータが実際と合わない。というのはよくある話で 色々な原因が考えられます。

一例でも以下のようなものがあり、 * 計測タグの設定ミス・・・GTMで管理していると楽ですが、設定者のスキルも高度なものが求められます * Google側制御・・・無料版はセッション辺りのヒット数など、色々あります。 実際の値と異なる場合も多いです。

サンプリングとは要するにサイトのセッション数が50万以上の場合は、その中の一部のデータから想定される数値にしますよということで、そのため事実と異なる部分がでてくるということです。 support.google.com

それでも統計とか、傾向を見るためには十分なのでそれを踏まえた上であれば、分析数値として有効に使えますねということです。

※ページビュー、イベント、eコマースタグの送信回数(ヒット数)を抑えればサンプリングを防ぐことができます support.google.com

ProFTPDに接続できない時のチェックポイント

結論として

ユーザー登録の方法を間違えていると思われるので

0.lsof を使って待ち受けているか調べる

f:id:purazumakoi:20171208152605p:plain

↑こんな感じで、今回は待受ポートを10397にしているのでこんな感じで調べる

lsof  -i:10397

何もでてこなかったら、そりゃ待ち受けて無いから駄目ですよねってなる。

1.直近で追加したユーザーを削除する

AuthUserFile                    /etc/proftpd/ftpd.passwd

この中の直近で追加したユーザーを削除する

2.proftpd再起動してみる

#proftpd再起動
/etc/rc.d/init.d/proftpd restart

これで起動してなかったら、1のリストのアカウントで良くないものがいるので、起動する

3.

改めてユーザーを追加する

ftpasswd --passwd --file=/etc/proftpd/ftpd.passwd --name=user --uid=48 --gid=48 --home=/usr/home/ --shell=/bin/bash

私の場合はこんな感じです。ユーザー名、ディレクトリパスは適宜変わってきます。

ちなみに前提条件のコンフィグ

f:id:purazumakoi:20171208152356p:plain

サイトをリニューアルした時のhtaccessでのリダイレクト設定

どのurlに来ても、あたらしいドメイン(www.hogehoge)に301リダイレクト設定をする

指定ディレクトリなどの情報は引き継いてリダイレクト

RewriteRule ^(.*)$ https://www.hogehoge/$1 [R=301,L]

常に、www.hogehogeのTOPにいく

RewriteRule ^.*$ https://www.hogehoge/ [R=301,L]

メンテナンス時など、どこにアクセスしてもTOPを表示などはこちら

blog.purazumakoi.info

javaScriptで指定の時間以前、以後で処理を変える

年末年始対応などで、一時的に予約で表示、非表示などをしたい場合用に

コード例

html部分

<style type="text/css">
<!--
    #hoge.hide {
        display: none;
    }
-->
</style>
<div id="hoge" class="hide">
    テキストや画像など
</div>

js部分

<script>
    var hiduke= new Date();
    var year = hiduke.getFullYear();
    var month = hiduke.getMonth()+1;
    var week = hiduke.getDay();
    var day = hiduke.getDate();

    var hour = hiduke.getHours();
    var minute = hiduke.getMinutes();
    var second = hiduke.getSeconds();

    var now = parseInt(year +""+ ("0"+month).slice(-2) +""+ ("0"+day).slice(-2) +""+ + ("0"+hour).slice(-2));

    if(2016123012 <= now){
        // 今が2016年12月30日12時以降の場合処理を行う
    }
</script>

注意点

ゼロパディングしておかないと1月とか2日とか3時とか一桁数字の時の罠が・・・ということで以下の部分は必須です。

("0"+month).slice(-2)

参照

今日の日付と現在時刻-JavaScript入門

JavaScriptでゼロパディングして桁をそろえる方法

WordPressからはてなブログにもどってきました。

やはりこっちのほうが使いやすいですね。

はてなブログに戻った理由

WordPressは何でもできるので、プラグインとか、手を入れてあげればカスタムはできるのですが、なるべく、自分でがんばって快適空間を作りたくなかったというのがまとめです。

スパム

WordPressは、デフォルト設定だとスパムが結構くるので、このあたりは仕方がないんですがやはり来ないほうがうれしいですね。

以下、後ほど更新します。

MovableTypeにSNSボタンを設置

デザインは自分でカスタムしたい!という要件のもと、調べたら以下のような実装でおちつきました

fbのogpタグ周りはこんな感じになりました。

<meta property="og:url"           content="<$mt:EntryPermalink$>" />
<meta property="og:type"          content="website" />
<meta property="og:title"         content="<$mt:EntryTitle$> | タイトル" />
<meta property="og:description"   content="<$mt:EntryExcerpt$>" />
<mt:If tag="CF_eyeCatch">
<meta property="og:image"         content="<mt:CF_eyeCatchAsset><mt:AssetURL></mt:CF_eyeCatchAsset>" />
</mt:If>

html部分はこんな感じになりました

<div class="snsArea">
                            <div class="snsInner">
                                <!-- facebook -->
                                <div id="fb-root"></div>
                                <script>(function(d, s, id) {
                                  var js, fjs = d.getElementsByTagName(s)[0];
                                  if (d.getElementById(id)) return;
                                  js = d.createElement(s); js.id = id;
                                  js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&version=v2.8";
                                  fjs.parentNode.insertBefore(js, fjs);
                                }(document, 'script', 'facebook-jssdk'));</script>
                                <div class="" data-href="<$mt:EntryPermalink$>" data-layout="box_count" data-size="large" data-mobile-iframe="true">
                                    <a class="btnBlack facebook" href="https://www.facebook.com/sharer/sharer.php?u=<$mt:EntryPermalink$>&src=sdkpreparse" onclick="window.open(this.href, 'tweetwindow', 'width=650, height=470, personalbar=0, toolbar=0, scrollbars=1, sizable=1'); return false;"><span>シェア</span></a>
                                </div>

                            </div>
                            <div class="snsInner">
                                <!-- twitter -->
                                <a class="btnBlack twitter" onclick="window.open(this.href, 'tweetwindow', 'width=650, height=470, personalbar=0, toolbar=0, scrollbars=1, sizable=1'); return false;" href="https://twitter.com/share?url=<$mt:EntryPermalink$>&text=<$mt:EntryTitle$>"><span>ツイート</span></a>
                                <!--<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>-->

                            </div>
                            <div class="snsInner">
                                <!-- line -->
                                <a href="http://line.me/R/msg/text/?<$mt:EntryTitle$>%0D%0A<$mt:EntryPermalink$>" class="btnBlack line" onclick="window.open(this.href, 'tweetwindow', 'width=650, height=470, personalbar=0, toolbar=0, scrollbars=1, sizable=1'); return false;"><span>LINEで送る</span></a>


                            </div>
                        </div>

パラメータつきurlのリダイレクト

Redirect permanent  とか
RedirectMatch permanent だと

だめっぽくて

RewriteCond %{QUERY_STRING} id=([0-9]{3})&name=([a-z]+)$
RewriteRule ^foo/index.html$ /foo/%2/%1.html? [R=301,L]

ならいけるみたい。

パラメータ付きは %{QUERY_STRING} で処理しなさいってことかな。