月別アーカイブ 12月 2017

著者:aoki

Criteoのサービス終了は誤報では無かった!?

先日以下の記事を書かせて頂きました。
Criteoのサービス終了は誤報です!

しかし色々調べるとどうも誤報ではなく本当にサービス終了するようです。
私の所には来ていないのですが、一部のアカウント所有者には以下のPDFが送信されているとの事。

実際に確認をされた方がこのようなTweetをされていました。

https://platform.twitter.com/widgets.js

メール自体も紛らわしいですが公式に「サービス終了は無い」と言っているCriteoもどうなのか。
どちらにせよ終わってしまってから広告の差し替えでは遅いのでメールが届いたパブリッシャー様は1月18日までにCriteoを撤去し、別の広告に差し替えることをお勧めいたします。

  • この記事いいね! (0)
著者:ym

SMTP over SSL と POP over SSL

Drive Network レンタルサーバでの SSL/TLS 通信についてバージョンの対応状況を調査してみました。新しく開始したサービスでは、START TLS 関連の対応がなくなり、明示SSLによる接続が必須となっている様です。以前から SSLv3 での接続を拒否しておりますが、今後は TLS1.0 の接続も拒否する形へと変化していきます。また TLS1.2 より新しいバージョンへと変化していきます。

----- + 旧 + 新 +------------------------------------------------------------------------------
https | ok | ok |openssl s_client -connect ${TESTHOST}:443 -tls1_2
pops  | ok | ok |openssl s_client -connect ${TESTHOST}:995 -tls1_2
smtps | ok | ok |openssl s_client -connect ${TESTHOST}:465 -tls1_2
      | ok | NG |openssl s_client -connect ${TESTHOST}:25  -starttls smtp -tls1_2 
      | ok | NG |openssl s_client -connect ${TESTHOST}:587 -starttls smtp -tls1_2
------+----+----+------------------------------------------------------------------------------

ISP のブロックにより一時期 587 番ポートを Submission ポートとして利用していましたが、コントは 465 番ポートを使用した smtp over SSL へと変化していく形です。SMTP 25(smtp) → 465(smtps), POP3 110(pop3) → 995(pop3s)

  • この記事いいね! (0)
村上 著者:村上

【jQuery】要素を削除する.remove()と.empty()の違い

JavaScriptで要素を削除するメソッドに、.empty().remove()があります。
どちらも要素を削除する、という点では同じなのですが、挙動が少し違うので、これを機にまとめてみました。

.remove()
こちらは単純に指定した要素そのものを削除します。
例としては下記のように要素が指定されていた時に、

<ul id="list01">
    <li id="item01">item01</li>
    <li id="item02">item02</li>
    <li id="item03">item03</li>
</ul>
/* javascript */
$("#item01").remove();

上記のJavaScriptを実行すると、idに「item01」が指定された li 要素が削除されるというもの。
指定する要素は、id だけでなく、勿論classでもOKです。
なお、class を指定した場合は、一致する class がすべて削除されます。

 

.empty()
こちらは指定した要素の中にある子要素を削除します。
サンプルコードは下記の通り。
id に「list01」が指定された ul 要素に対して、.empty() メソッドを指定すると、ul の子要素である li がすべて削除されます。

<ul id="list01">
    <li id="item01">item01</li>
    <li id="item02">item02</li>
    <li id="item03">item03</li>
</ul>
/* javascript */
$("#list01").empty();

.empty() メソッドについては、「指定した要素の中身を空にする」と覚えるとわかりやすいかな。
なお、あくまでも指定した要素の子要素を削除するメソッドなので、指定した親要素自身は残ります。

 

簡単にではありますが、大きな違いはこんな感じ。
.remove() は単純明快なので、ある特定の要素を消す、というときに使用します。
一方で .empty() については、一度リストなどを再描画する際、ul などは残しつつ、リストの項目である li だけを削除する、というときに使えます。
以前投稿した、要素を追加するメソッドとセットで覚えるのがおすすめですね。

【備忘録】jQueryの要素追加のメソッド一覧
https://cpoint-lab.co.jp/【備忘録】jqueryの要素追加のメソッド一覧/

特に .empty() については、.append() とセットで覚えると、様々な処理やより扱いやすいかと思います。

  • この記事いいね! (0)
村上 著者:村上

【Excel】積み上げ棒グラフに区分線を追加する方法

最近エクセルについての記事を連投しておりますが…しょうがない、業務で使っているんだもの。
ということで、今回はエクセルのグラフについてです。

 

エクセルで棒グラフを作っているときに、それぞれの値の増減が一目でわかりやすいように、比較線を入れたい場合があるかと思います。

が、この線を設定するのに、ちょっとだけ手間取ったので備忘録もかねて投稿。

 

やり方自体はいたって簡単。

編集したいグラフを選択すると、「グラフツール」という項目が上のメニューバーに追加されるので、その中から「デザイン」のタブをクリック。
すると、メニュー左端に「グラフ要素を追加」という項目があるため、それをクリックし、表示された一覧から「」→「区分線」をクリックするだけ。

知っていれば、こんなこと、と思うくらい簡単でしたが、普段使わないようなメニューのため今まで知りませんでした。
あとは、こちらの設定は、グラフを選択した際に右上に表示される「+」アイコンのメニューから設定できると思い込んでいたので、それも少し手間取った要因の一つでしたね。

 

ちなみにこの方法については、線の名称がわからなかったため、「エクセル グラフ 遷移線」という凄く適当な単語で調べてしまいましたが、運よくヒットしました。
正式名称は「区分線」というそうなので、これを機にきちんと覚えたいと思います。

  • この記事いいね! (1)
著者:ym

GPGPU

ASRock

ASRock

GeForce をデータセンターで使用するな!

だそうでうです。

デスクトップマシンで培った安価で利用できる GPGPU な NVIDIA の GeForce 。突然データセンターでの利用を禁止しました。さらに、データセンターでは高価 な Tesla CPU を使用しろと。

そんなニュースを見ていると ASRock が仮想通貨マイニング向けのマザーボードを発売するといったニュースも出てきました。こんな変態さが好き。

自宅PC、仮想通貨マイニングで一儲け!高等してくれればいいけど、おそらく赤字なので研究ね。

ASRockを超える変態さの仮想通貨マイニング向けIntel B250マザー – PC Watch

そして OS は、仮想通化マイニング専用 OS の ethOS や MinerGate。

マイニング専用OS「ethOS」で仮想通貨を掘ろう、導入から設定までを実践! – AKIBA PC Hotline!

MinerGate – Cryptocurrency mining pool & easiest GUI miner

  • この記事いいね! (0)
村上 著者:村上

【Excel】私的覚えておくと便利な関数まとめ

まだある気もしますが…とりあえず私が最近よく使う関数は下記の3つ
最低限これらだけでも覚えてしまえば、データの集計くらいは苦労せずにできるかと。

  • COUNTIF()、COUNTIFS()
  • VLOOKUP()
  • IFERROR()

 

まずはCOUNTIF()関数とCOUNTIFS()関数
これは条件に一致した数だけをカウントする関数です。
COUNTIF()は、単一の条件しか指定できませんが、COUNTIFS()だと、複数の条件に一致したデータのみをカウントできます。

使用例は下記の通りです。
COUNTIF("カウントしたい範囲","条件");
COUNTIFS("カウントしたい範囲1","条件1","カウントしたい範囲2","条件2",…);

これを使えば、例えばテストで80点以上獲得した人数をカウントするとか、50点以下の人をカウントするとかができます。
もしくは、50点以上70点未満と言った、範囲指定もできます。

 

お次は VLOOKUP() 関数。
最初に使ったときは、分かりにくくて苦手だったのですが、使い慣れてしまえばこれほど便利な関数はありませんね。
例えば、商品一覧にそれぞれカテゴリーの数字が振られていて、参照元となる表が別にある場合に、カテゴリーに一致したデータを検索して、そのカテゴリー名を表示してくれるという関数です。

…説明がわかりにくくてすみません。
具体例は下記のとおりです。
赤枠の中にVLOOKUP関数が記述してあり、Cの列に入っている分類Noに対応した分類名を、右の表から取得して表示しています。

ちなみに、後輩のプログラマーには「Mysql の JOIN ができる関数」と説明したところ通じました。

上の例のように数が少ない場合は、検索・置換でもいいかもしれませんが、50とか100ある場合は、圧倒的にVLOOKUP関数を使った方が便利です。

 

最後に IFERROR()関数
これは結構使用頻度が高めですね。
エクセルでは、数を0で割ってしまったときに「#DIV/0!」や、入力した数式か参照先のセルに問題があるときに「#VALUE!」などのエラーが表示されますが、これらを表示したくない時に使える関数です。
特に結果をパーセントで表示させたいデータの中に、母数が 0 のデータが混ざってしまっているときに、「=IFERROR(“数式”,0);」として、もし数式がエラーになったら 0 を表示する、というように使っています。
意外と「#DIV/0!」や「#VALUE!」が表示されるとストレスだったりするので、特に絶対にエラーは表示させられない!というときなどに使えます。

 

以上、完全私的見解における、よく使うエクセル関数まとめでした。
もし他に挙げるとしたら、SUMIF()関数とかかな?

  • この記事いいね! (0)
著者:aoki

Criteoのサービス終了は誤報です!

21日の朝、以下のメールが届きました。

パブリッシャー向け CRITEO サービス サービス終了のご案内
http://www2.criteo.com/e/126241/2017-12-20/4q2m9t/196267666

View this email in browser
http://www2.criteo.com/webmail/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

——————————————————————————-
お取引先各位
平素よりパブリッシャー向け CRITEO サービス(「Criteoサービス」)をご利用いただき、誠にありがとうございます。

この度、誠に勝手ではございますが、2018年1月18日をもちまして、「Criteoサービス」を終了させていただくこととなりました。

本状は、利用規約に基づく、「Criteoサービス」終了の正式な通知となります。

2018年1月18日以降は「Criteoサービス」のプラットフォーム(http://www2.criteo.com/e/126241/2017-12-20/4q2m9w/196267666)へのログインが出来なくなります。従いまして、実装している全てのCriteo広告タグをウェブサイトから2018年1月18日までに削除していただく必要があります。
お支払いに関しては、利用規約通り月末締めの翌月末払いとなります。現在、登録されている銀行口座の情報が正しいか改めてご確認ください。
この正式な通知は、いかなる国での「Criteoサービス」の使用(アフィリエイト、Webサイト、ネットワークサイトなど)および他のCriteoアフィリエイトによって設定される「Criteoサービス」の使用にも適用されます。

また、「Criteoサービス」の条項が引用されないように、企業のプライバシーポリシーも更新する必要があります。
今後のCriteo広告の配信に関しましては、「Criteoサービス」は終了いたしますが、RTB接続を通じてSSP・アドエクスチェンジから配信されます。
ご質問がある場合はpublishers@criteo.comにお問い合わせください。
今後とも変わらぬご愛顧とご支援のほどお願い申し上げます。
Criteoチーム

弊社でもCriteoを利用しているのでかなり驚きました、しかも1月18日とあと3週間後なんてあまりに急すぎます。
しかしCriteoの管理画面を見てもそのようなお知らせも無くメールのリンクをクリックしてもCriteoのトップにリダイレクトされるだけ・・・

どういうことなのかと頭を抱えていただらどうやらこのメールは誤報だという事が分かりました。

Criteo Facebookページ
https://www.facebook.com/GoCriteoJapan

よかった、Criteoのサービスは終わらないようです。
1月に全てのCriteoのタグ張替えとなったら大騒ぎでした。

しかしなぜこのようなメールが飛んでしまったかという所なのですが、どうやらCriteoの全サービスではなく「Criteo’s Publisher Marketplace Service」という特定のサービスだけ終了する通知だったようですが、日本語への翻訳が間違って「Criteo全サービス」と記載してしまったようです。

↓「クリテオがサービス終了」は誤報
http://www.itmedia.co.jp/news/articles/1712/21/news072.html

ともかく終了しなくて良かったです。

  • この記事いいね! (0)
著者:aoki

浜松ハーモニーロータリークラブ2017年最終例会


昨日は浜松ハーモニーロータリークラブの2017年最終例会でした。
いつものグランドホテルですが場所は12階のおしゃれな場所で開催となりました。

思い出せばよくわからないまま2月にゲスト参加してそのまま3月に入会し、周りは浜松の重鎮ばかりでうまくやれるか心配してましたがそんなものは杞憂でペーペーの私も楽しく参加させていただく事が出来ました。
長い方は10年、20年といる意味も分かってきました。
まだ1年目ですができる限り長くいてハーモニーロータリークラブで社会貢献をしていきたいですね。

ディナーもクリスマスらしさ満載でした。


前菜5種類
クリスマスツリーの形をしたゼリーのようなものが美味しかったですね。

 


黄金人参のスープ。
人参の濃厚な味がダイレクトに味わえます。

 


その場で焼いて頂いたフィレステーキ。

 


デザートもおしゃれでイチゴのサンタクロースが可愛いですね。

また2018年もよろしくお願いいたします。

  • この記事いいね! (0)
村上 著者:村上

【JavaScript】指定した文字に一致したすべての文字を置換する方法

少し久しぶりな気がするJavaScriptネタ。
今回は、これまた業務中に質問された、文字列の置換について。
自分でも少しハマりやすいと思った点なので、おさらいもかねてまとめます。

 

文字列を置換するには、.replace() というメソッドを使います。
使い方は下記の通り。

var text = "あいうえお";
var replaceText = text.replace("あ","か");
document.write(replaceText);

こちらを実行した結果は、「かいうえお」となります。
変数text内の「あ」が「か」に置換されました。

 

で、ハマるポイントはここから。
上の例のように、置換したい文字が文字列に1つしかない場合はこちらでも問題ないのですが、置換したい文字が文字列の中に複数あった場合は、この方法ではうまくいきません。

例としては下記の通り。

var text = "あああああ";
var replaceText = text.replace("あ","か");
document.write(replaceText);

上記のコードを実行した結果は、「かああああ」となり、一番最初の「あ」しか置換されていません。
これを防ぐためには、正規表現を使うか、RegExpオブジェクトを使う方法があります。

 

まず、正規表現を使う方法は下記のとおり。

var text = "あああああ";
var replaceText = text.replace(/あ/g,"か");
document.write(replaceText);

こちらを実行すると、すべての「あ」が「か」に置換され、「かかかかか」と出力されます。

次に、RegExpオブジェクトを使う方法について。
RegExpは、正規表現用のオブジェクトであるとのこと。
あまり使ったことはないのですが、正規表現が苦手!という人にはこちらの方がわかりやすいのかも?

なお、下記の二つは同じ意味になります。

var regExp = /あ/g ;
var regExp = new RegExp( "あ", "g" ) ;

そして、RegExpを使ったコードの例は下記の通り。

var text = "あああああ";
var targetStr = "あ" ;
var regExp = new RegExp( targetStr, "g" ) ;
var replaceText = text.replace(regExp,"か");
document.write(replaceText);

こちらも実行した結果は「かかかかか」となります。

 

.replace()メソッドは便利ではありますが、単に文字列を指定するだけだと、最初にヒットした文字列しか置換されない、という点が要注意ですね。
久しぶりに使ったときは、この癖を忘れていて改めて調べ直してしまいました。
正規表現を使うという点が、苦手意識を持っている人には少しだけネックかもしれませんが…。
なお私はよく「正規表現チェッカー」というサイトで正規表現が正しいかどうか確認します。
ページ下部にリファレンスも載っているのでお勧めです。

正規表現チェッカー PHP: preg_match() / JavaScript: match()
http://okumocchi.jp/php/re.php

  • この記事いいね! (0)
著者:aoki

MySQLで全角と半角を区別せずLIKE検索する方法

SELECT * FROM hoge WHERE name LIKE '%ABC%';
よくあるLIKEを利用した全文検索のSQLはこのようになります。

この場合ですと name の中身が`ABC`の場合はマッチしますが、`ABC`の場合はマッチしないので非常に厄介です。
ローマ字だけではなく数字、カタカナ、記号も同様でMySQLには変換する関数が無いので自前で行おうとした場合はストアドプロシージャを作らなければなりません。

そんなときには以下のような形に変えましょう。
SELECT * FROM hoge WHERE name collate utf8_unicode_ci LIKE '%ABC%';
LIKEの前に`collate utf8_unicode_ci`を付けるだけでローマ字(大文字/小文字 全角/半角)、数字、カタカナ、記号全てで半角、全角両方にマッチするようになります。
ストアドプロシージャを作るよりもはるかに楽ですね。
EXPLAIN をしたわけでは無いですが体感では速度はそんなに違いは無かったです。

ただし「つ」と「っ」や「は」「パ」「バ」などの濁点もマッチしてしまうのでここだけ注意ですね。

  • この記事いいね! (0)