JSプラグインを作ってみた、今回はANA旅割JSプラグイン(またかよ)。

JSプラグインを作ってみた、今回はANA旅割JSプラグイン・・・。
またかよと言われそうなのですが、試しに作ってみたりした。
本当はもっと簡略化できるのだけど、あえてこれを参考に作る人にも
ある程度、参考になるかなというぐらいの代物です。

昨日、datetimepickerというプラグインを仕事で見ていて最初、取り出し方などが
わからず試行錯誤してなんとか取り出すことが出来たのですが、これでは駄目だな。
前、なんか書いていたけど使わなかったらやはり忘れてしまうので
本日から一週間ぐらい、しょぼいJSプラグインを何個かリリースします。

大量のコードは仕事終わってから書くことは出来ないかもしれないけれど
サンプルプログラム程度は簡単にコードが書けるように
しておかないと行けないなという気持ちもあります。

そしてjQueryから自前のjQueryプラグインへ
仕事でもシフトしていくつもりです。
やはりコチラのほうが慣れれば楽かなと感じます。

トイウコトでANA旅割JSプラグインは
こちらからダウンロードを行なってください。
ちなみに作りかけなので、これから再編集してもらっても
構いません。なんせ適当ですから:)

https://warera-web.com/tool/ana_js_p/

(function($){
    var ana_tabai = {

        ana75:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];

            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setMonth(dt.getMonth());
            dt.setDate(dt.getDate()-74);
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        },
        ana55:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];

            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setMonth(dt.getMonth());
            dt.setDate(dt.getDate()-54);
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        },
        ana45:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];

            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setMonth(dt.getMonth());
            dt.setDate(dt.getDate()-44);
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        },        
        ana28:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];

            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setDate(dt.getDate()-27);
            dt.setMonth(dt.getMonth());
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        },
        ana21:function(d){
            var dd = [];
            dd[0] = d[0];
            dd[1] = d[1];
            dd[2] = d[2];
            
            var dt = new Date(d[0],d[1],d[2]);
            dt.setFullYear(dt.getFullYear());
            dt.setDate(dt.getDate()-20);
            dt.setMonth(dt.getMonth());
            dd = mumu(dt.getFullYear(),dt.getMonth(),dt.getDate(),dd);
            return [dd[0] + "年",dd[1] + "月",dd[2] + "日"];
        }
    
    };
 $.fn.tabiwari = {
     ana:function(d){
        if(d.split("-").length==3){
            var a = d.split("-");
            console.log(a);
            s = [ana_tabai.ana75(a),ana_tabai.ana55(a),ana_tabai.ana45(a),ana_tabai.ana28(a),ana_tabai.ana21(a)];
            var str="";
            var days = [75,55,45,28,21];
            for(var i = 0;i < s.length;i++){
                str += days[i] + "days ::" + s[i] + "<br>";
            }
            return str;            
        }else{
            return "no!! 🙁 ";
        }
    }
 }   
})(jQuery);


function mumu (y,m,dy,dd){
    console.log(dd);
    dd[0] = !m?dd[0]:y;
    dd[1] = !m?dd[1]:m;
    dd[2] = !m?dy:dy;
    return dd;
}
<!doctype html>
<html lang="ja">
<head>
  <meta charset="utf-8">
  <title>warera-web.com:ANAJSぷらぐいん</title>
  <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=10.0, user-scalable=yes">
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="ana_tabiwari.js"></script>
  <script>
      $(function(){
          $("#ana_input").change(function(){
            var str = $("#ana_input").tabiwari.ana($(this).val());
            $("#ana").html(str);    
          });
      });
  </script>      
  <script>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');

  ga('create', 'UA-71682075-1', 'auto');
  ga('send', 'pageview');

</script>
</head>
<body>
    <input id="ana_input" type="date">
    <div id="ana">       
    </div>
    <a href="ana_tabiwari.js" download="ana_tabiwari.js">ANA旅割JSプラグインダウンロード</a>
</body>
</html>






 

Let’s Encrypt の無償のSSLメモ!!

Let’s Encrypt の無償のSSLメモ!!自分用
SSL認証導入のメモです。分かる人にはわかる。メモしてくださいφ(..)メモメモ。
ちなみにオレオレ認証の方法を以前、掲載していたと思いますが、Chrome58以降
あの方法では駄目みたいです、オレオレ認証できないなどと検索すると対処法が
書かれていますが、まだ検証していませんがたぶん、あの方法でうまくいくかもしれない。

ちなみに緩いブラウザではオレオレ認証を通すことは可能かと思います。
例えばローカルサーバでオレオレ認証が必要な場合などはブラウザを限定してあげることで
対応することも可能です。ChromeはSSLを結構厳しく見ている・・・?
正直な所、ローカルサーバでSSLが必要なこともあるので、開発者用ではゆるく見ることのできる
設定をオプションで持たせることぐらい出来たはずではと思ってしまいます。

トイウコトでzip358.siteをSSL化しましたよ。

yum install epel-release
yum install certbot python-certbot-apache
certbot certonly --webroot -w /home/www/zip358.site/ -d zip358.site
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): メールアドレスを入力
-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: A
-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about EFF and
our work to encrypt the web, protect its users and defend digital rights.
-------------------------------------------------------------------------------
(Y)es/(N)o: N
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/zip358.site/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/zip358.site/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/zip358.site/chain.pem
firewall-cmd --add-service=https --zone=public --permanent
firewall-cmd --reload
crontab -u xxxx -e
0 5 1 * * certbot renew
systemctl restart httpd

考え方。

考え方はすごく大事なことなんだと思います。
じぶんの人生の中で一番、左右されるのは自身の過去から
蓄積されてできた「ものの考え方」だろうと思います。

それが一番、人生に影響を与えるものかもしれないなと思います。
それを変えることは基本的に無理。自ら考え方を変えようと思わない限り
変わることは殆どない。一番、考え方を変えようと思うなら
真逆の人と付き合うと良い、もしくは真逆の考え方を持った人と
友だちになること。そうすることで考え方は徐々に変わると言われています。

また、じぶんと考え方が似通っているひとを人は嫌いになりやすい。
何故、嫌いになりやすいかというと、ひとはそのまま真似されると
嫌がる傾向にあります。それと同じで自分と似通っているひとは
本能的に嫌う傾向にあるのです。

簡単に言えば、自分と似通っているひとは
良いところより悪い部分が目立ちやすいだとか。

「ものの考え方」一つで人生うまくいかなくなる事もあるので
本当に大事なんだと思います。

バーチャルホストでPHPのバージョン分けて起動する方法完結。

バーチャルホストでPHPのバージョン分けて起動する方法完結。
うまくいかない状態の理由がわかりました。
パスが間違っていたということで昨日からタイムゾーン設定がうまく機能しなかった。
ただそれだけでした・・・とほほ~(´・ω・`)

php-cgi + ソースなどと検索するとインストール方法などが
掲載しているサイトがあるので、ググってみると参考になります。
今回、PHP5.6のバージョンをダウンロードしてきてコンパイルして
うまくファイルが作れる場合は上記のような画面が表示されます。

それ以外はエラーですので
その後、make && make install を行なっても反映はされません。

こういう感じで記述するとうまくいきますよ。
あくまでも例ですのでご自分の環境にパスなどは変更を
行なってください。

./configure  \
  --prefix=/home/www/php-5.6.31  \
    --with-config-file-path=/home/www/php-5.6.31 \
    --with-config-file-scan-dir=/home/www/php-5.6.31 \
    --enable-mbstring \
    --enable-zip \
    --enable-bcmath \
    --enable-pcntl \
    --enable-ftp \
    --enable-exif \
    --enable-calendar \
    --enable-sysvmsg \
    --enable-sysvsem \
    --enable-sysvshm \
    --enable-wddx \
    --enable-mbregex \
    --with-openssl \
    --with-mysql \
    --with-mysqli \
    --with-pdo-mysql \
    --with-mysql-sock=/var/lib/mysql/mysql.sock \
    --with-curl \
    --with-mcrypt \
    --with-iconv \
    --with-gmp \
    --with-gd \
    --with-jpeg-dir \
    --with-png-dir \
    --with-jpeg-dir=/home/www/php-5.6.31/img/jpeg \
    -with-freetype-dir=/home/www/php-5.6.31/img/freetype
<Directory "/home/www/cgi-bin">
    AllowOverride All
    Options FollowSymLinks
    Order allow,deny
    Allow from all
</Directory>
Action php-cgi-5.6.31 /cgi-bin/php-cgi-5.6.31
<Directory "/home/www/html/home.site">
    Options +ExecCGI
    AddHandler php-cgi-5.6.31 .php .html
</Directory>

シンボリックリンクなどの設定は割愛します。
また、コンパイルするとbin/の配下にphp-cgiファイル出来ますので
そちらとシンボリックリンクさせて無いといけませんのでご注意を!!

そしてvim /etc/httpd/conf/httpd.confでCGIが使用出来るように設定しているかも
チェックが必要となります:D

その他・・・注意事項
PHPの解凍フォルダのパーミッションの権限をApacheへ
seLinuxを無効化しているかなどのチェック。

以上、まとまりのない設定方法のアドバイスになりました・・・が
これで以上となります。

分かっている人にはおそらく伝わる内容だと思います。

シタタカ{強か}な政治が解散、商人道徳だなと。

安倍政権は強かであるなので続く、
簡単に言えば賢い、土佐弁?で言えばしわい人なのかも。
情勢の読み、今ならなんとか勝てるというタイミングで解散したんだろうなと
メディアや野党は逃げ解散だと言っているけれど、実際、今ならなんとか
勝てるというタイミングでの解散なんじゃないだろうか?

敵から言えば、逃げ解散だと言えるけれど
ある意味、勝つためには手段を選ばないのかもしれない。
じぶんの読みでは結構、票が割れるかなと思っていますが、自民党が
野党に廻ることはないだろうと。

まさに商人道徳と似ている。

話変わりまして、
ひとは他人の嫌な部分や弱点はよく見えたりするけれど
じぶんの悪い部分などを冷静に判断することやとくに自分の良いところが
わからない人が多い自分もその中のひとり。
よく自分が思うのは「あぁすれば良いのにと」思うことだ。
他人を見てこういう感情を持つ人も少なからずいると思います。
でも、そういう事は大体、その人には指摘しない。

普通に指摘しても子供なら素直に受け入れることが
出来ても大人になるとそれぞれ考えがあり、他人の意見を受け入れることが
徐々に少なくなる。どれぐらい馬鹿でいられるかが大事なのかもしれないなと
自分は思っています。他人の言うことをそのまま聞くことが出来るかどうか。

これが出来なくなってくると頭が固くなる一方。

自分にはひとつ信念が有ってそれ以外、全部まげる、
その時、そうだったけど今は考え方が変わったが大事かな。

いま、ひとつ行動していることがある。
それは人が望んでいる事以上のことをしないということ。
積極的に動かないこと。
今まで過去の仕事では積極的に動いたり
指示しないことまで、気を利かせて動いてきた結果。

いろいろな事を経験できた、
ある意味、頑張れば報われてきたことが多かった。

だったら、その真逆。
言われたことしかしないというスタンス。
ただ淡々と言われたことをこなす、こういう人は
結構世の中にはいっぱいいる。

 

バーチャルホストでPHPのバージョンを切り替える:誰も教えてくれない。

サーバ専属のひとがいる訳でもないので
会社のローカルサーバはじぶんが構築しているわけです。
その中でPHPバージョンの切り替えを行いたいという要望が以前から
有ったので切り替えを昨日行ったわけですけど・・・。

タイムゾーン設定が上手くいかないのです。
何故・・・なのか未だ不明ですが、ある程度原因は分かってはいますが
どう対応すればよいのかわからないと言うのが現状です。
こんな時、サーバ専門家がいればなぁと思うわけですが、
そういう人が見当たらないですね。

PHPのバージョン切り替えでモジュール版とソース版のメリットとデメリットが
よく理解できたのです。今までYUMでインストールしてとずっとモジュール版を
使用していたのですが、こんな事なら最初からソース版を使うべきだったなと言う事を
今頃、ヒシヒシと感じます。

で、どうすればPHPバージョンを切り替えが行えるかというと
cgi-bin上でPHPを動作させるように設定を行うことで各バーチャルホストで
切り替えが可能だということです。

まさに言うは易く行うは難しです。
自分にとっては悪戦苦闘の休みでした、丸一日、この設定がどうして
うまくいかないのか分からずじまい、WEBで落ちている情報を拾ってきて試しても
うまく行かないのです。結局、ソースをコンパイルしている時に何かしら
エラーを吐いた場合、ライブラリ(so)ファイルは生成されないことなどを理解しました。
当然といえば当然なのだけど・・・。

いろいろと身についた知識はあるのですが
実際、そうだろうという所から抜け出せないのが、今の問題かな。
やはり専門の人から技術を教わっている訳でもないので
自信もないし確かではない、こういう知識を持っている人は
あまりいないのかもしれないなと、、、。

3%の人のために今まで踊られていた?

炎上を行っているのは国民の3%。
その人のためにCMなど停止したり芸能人を引退に追いやったり、
法律の改正されていたと思うとやるせない気持ちなります。

自分が当初から言っていたことは
やはり正しかったのだなとも思えたのですけど・・やはり
この事をもっと早く国民に知らせるべきことかなと思いましたね。

これからは企業もネットで炎上しようが
CMを続けるべきだとじぶんは思います、一部の過敏な人たちの為に
CMを停止するなどする必要はないかと思います。

ネットの炎上により法律が変わっていき
規制規制で生きにくい社会になる一歩手前で
このような調査結果が文化庁から出たこと良いことかなと思いますが
逆に言えば今までそれ上手く使って法改正していた安倍政権。

地方置き去りの弱者に対する改正法案がかなりあるなと感じます。
都心では何とか成ることでも地方では何ともならないことがある事を理解しないと
今後、国がめちゃくちゃになる気がします。

地方置き去りの政治は危ういと思います。
たぶんオリンピックが終わった後から、景気は失速すると
その保険にJA改革があるだろうけれど、どうなることやら・・・。

安倍政権はおそらくオバマ政権と同じで
国民ビックデータの情報を駆使して国民の不満を操作しているので
何とかなっているだろう。また国民に対してネット広告やLINEなどを使い情報発信を
行っているのは、ある意味、洗脳。

じぶんが賢いと思っている人はやられる、
逆に自分は馬鹿だと思っているひとの方がよほど賢明だと思います。
他人に馬鹿にされている人が言っている事が正解だったということは
良くあることです。

主張する3%の国民と主張しない97%の国民。
どちらが正しいわけではないと自分は思っていますが、ただ過敏に
反応する事もないのではないかなとも思っています。3%の意見が正しくない
わけでもないですが、この頃、数と勢いだけで議論もせず改正法案が
可決されるのは後々、しっぺ返しが来るだろうと。

お釣りの計算アルゴリズム

// 1.所持金の貨幣枚数を計算
// 2.おつり(1の貨幣から算出可能な金額 – 買い物金額)のリストを算出
// 3.2でもとめたすべての金額について、貨幣枚数を計算
// 4.3の貨幣枚数で一番少ないものを求める

引用元:三十路エンジニアの備忘録+α  http://d.hatena.ne.jp/rockstar2007/20091127/1259327765

お釣りの計算アルゴリズムが結構、面白い。
ちょっとした頭の体操になる気がしますので、上記の解を見ずに
ヒントだけで考えてみると面白いかなと思います。
今回は自販機のお釣りのアルゴリズムなので、紙幣と硬化は制約がありますので
組み合わせを考えてみると案外簡単に作れるのかなと思います。

ある意味力技みたいな感じかな?

この頃、頭が固くなる一方なのでこういうのが事を考えて
コードは書かないという・・・じぶんですが考えて順立てするだけでも
全然違うのかなと思います。

httpからhttpsへ

httpからhttpsへとか確かに大事だけど
それでアクセス数が急上昇することはないです。
全然アクセス数が上がらないわけでもないけれども・・・。

SSL化することによって商売などをしている人にとっては
サイトの信用を得られると思うのですが、この日本でもSSL化は
進んでいて自分の知るところでは4割のサイトはSSL化導入しているのだとか。

このままSSL化が浸透していけば9割近いサイトがSSL化を適応した
サイトになるのではと思っていますが!、そうなった時、SSL化することで
信用を得られることが無くなるのではないかと思っています。

ちなみにSSL化しなくても今後、http1.1からhttp2.0になれば
この問題は解決するので、http2.0になるまでSSL化しなくても良いのかもと
思ったりもしています。http2.0はグーグルが開発したSPDYがベースになっているの
だとか・・・ここでもグーグルが絡んでいるとは
まさにネットの覇王ですね。

文字の置き換えはコマンドラインから

文字の置き換えは「sed」というコマンドを使うことで
文字の置き換えは可能ですが、文字の置き換えを行なった後、
ファイルの保存もしくは上書き保存を行わないと意味が無いので
注意が必要になります。

例えばリナックス系のサーバで文字を置きたい場合、このような感じに
記述すると文字の置き換えが可能となります。

sed -i -e "s/utf8mb4/utf8/g" mysql.sql

結構、大きめサイズのテキスト形式のファイルも難なく
置き換えが可能です、ちなみにWindowsでも同じようにコマンドから
文字の置き換えすることは可能ですが少々面倒なので、リナックスでの
置き換えを自分は推奨します。

ちなみに文字コードがUTF8ではない場合は
文字コードをiconvでUTF8に置き換え後、文字列の置き換えを
すれば良いのでとても楽です。

https://twitter.com/zip358com/status/909728699204870145

ちなみにこちらの動画は悪い例↑