Translate

2016年3月19日土曜日

kindleに欲しい機能

著者にサインを貰う機会があったとき、紙のように気軽にサインできるスペースがない・・・

というわけで、サイン(簡単なお絵かき機能)スペースが欲しい!

2016年3月12日土曜日

chromeの500メッセージが変わった

ちょっと文言が変わったようです。
古いバージョンを残せないので検証できないけど、
http://bibabosi-rizumu.com/http500-internalservererror/
こちらのペーで使われているのが古いものなのだろう。

これが、20160312現在のもの

サーバーが応答していないか・・・の文言がなくなっている

2016年3月3日木曜日

【kindle】電子書籍のレイアウト崩れ例

kindle for PCで電子書籍を読んでいると、レイアウトが崩れている箇所が見受けられた。
この IN 述語 の 条件 は、 結局 の ところ、「 ビール または 紙 オムツ または 自転車 を 置い て いる 店舗」 を 指定 する に 過ぎ ませ ん から、 どれ か 1 つ でも 置い て いれ ば 結果 に 含ま れ て しまい ます。 では こういう とき、 複数 行 に またがっ た 条件 ̶̶ すなわち 集合 に対する 条件 ̶̶ を 設定 する には どう すれ ば よい の でしょ う? もう お 分かり です ね、 HAVING 句 を 使い ます。 次 の よう に 書き ます。
達人に学ぶSQL徹底指南書
1-4 HAVING句の力より引用
画面上ではこんな感じ(背景色は変えています)


怪しいのはこいつ「 ̶̶ 」か。音引きでもリーダーでもない。
調べてみると、unicode 336
COMBINING LONG STROKE OVERLAYさんらしい。
http://www.fileformat.info/info/unicode/char/0336/index.htm
へー。・・・で、こいつがあると何で崩れるのだろうか。
禁則処理?

2016年3月2日水曜日

ウレタンマスク・PITTAを使ってみた

PITTAを使ってみた
○耳ひもの痛さ
花粉のシーズン中はずっと使うものなので、個人的に一番重視しているのがココ。
太さがあり、負担がかかりにくい。一体型なので、耳ひももウレタン性で柔軟性に富む。
結論から言うと、全く痛くない。これだけでリピートはほぼ決定。

○通気性
紙のマスクより若干通気性がよく感じる。

○隙間
あまり気にならない。
ただ、他のマスクと同じく息で眼鏡が曇る。

○耐久性
センターで貼り付ける構造なのだが、この部分の糊付けが若干弱い気がする。
何度か使用しているうちに、はがれてきてしまった(僕の顔がでかいからか)

○洗濯
この製品の売りの一つか。
洗濯後も使用感は変わりない。洗剤の匂いがするので、普段から匂いの強い洗剤を使っていると厳しいかも。
白よりもグレーの方が汚れも目立たずにいいのだが、グレーはまだまだ数奇な目で見られる・・・

2016年2月25日木曜日

【.htaccess】no-cache no-storeの違い

キャッシュについて
キャッシュを保存されたくない!という仕組みを作る際、色々検索してみると、
.htaccessに
Header set Cache-Control "no-cache"
Header set Pragma "no-cache"
と書け!としてあるサイトが多かった。
前回の記事にも書いたけど、僕が欲しかったのは一度もファイルがキャッシュされない仕組みなんだけど、
上記のコードだとローカルに保存されてしまう。
というわけで、調べてみた



Header set Cache-Control "no-store"
Header set Pragma "no-store"
ローカルに保存しないよ。
オフラインだろうと、ないものはないよ。

Header set Cache-Control "no-cache"
Header set Pragma "no-cache"
ローカルに保存するけど、次回アクセスするときは、ファイルが更新されていれば、またファイルを読みに行くよ。
オフラインでは保存したこれを使うよ。

LEVEL 0.1くらいあがった

2016年2月23日火曜日

【php】【ajax】【.htaccess】いまだに画像をローカルへダウンロードされたくない人がいるときは

色々と考えてみた。

使うもの
javascript php .htaccess
※スクリーンショットは防げません

main.html - メインとなるページ。DBと連動したりするならphpで書く。
clone.php - postで受け取ったアドレスの画像を画像フォルダから複製して、複製画像のURLを返す
delete.php - postで受け取ったアドレスの複製画像を消す
/image/ - 画像フォルダ。実際はもっと分かりづらい名前に。元の画像はここに入れる。
/image/.haccess - 設定ファイル
/tmp/ - 仮画像保存フォルダ
/tmp/.haccess - 設定ファイル

流れ

ページにアクセス。呼び出す画像のファイル名は暗号化されているとする。
1:javascriptで仮ファイル名を作成(Math.ceil(Math.random()*10000000) + ".jpg"など)
2:ajaxで画像名、仮ファイル名をpost
3:clone.phpが/tmp/フォルダに、仮ファイルを作成。
4:returnで仮ファイル名のURLを取得
5:canvasに画像を書き出し
6:ajaxで仮ファイル名をpost
7.delete.phpが/tmp/フォルダの仮ファイルを削除

設定(特徴的な箇所のみ記述)

main.html
http://www.stylish-style.com/csstec/basic/g-photo-guard.html
こちらを参考に、canvasには透明gifをのせておく。

/tmp/.haccess

Header set Cache-Control "no-store"
Header set Pragma "no-store"
(注意)no-cacheではないです。

/image/.haccess
-deny from all

clone.php、delete.php
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') (ajax以外のアクセスでは動かないように)

結果

○右クリック、ドラッグ保存→透過gifでガード
○ソースコードを読む→読み込んだ仮画像は削除済
○キャッシュから拾う→キャッシュ防止済

元画像フォルダへのアクセスは、phpのみ可能にしておきます。
スクリーンショットは防げませんが、かなり防げるような。
javascriptが切られていると、ajaxが発動されないので画像のコピーが行われません。
ajaxでファイルのクローンを作るという動作を行っているので、
悪意のあるユーザーにビシバシpostされまくると危険かも。
ここでは書いていませんが、連続post対策は必須。

2016年2月19日金曜日

【php】declare&&ticksと分かり合えるのには時間がかかる気がする

declareについて調べている途中。

<?php
function ticks_echo() {
   static $count_of_ticks = 1;
   echo 'ticks >> '.$count_of_ticks."<br />";
   $count_of_ticks++;
}
register_tick_function( 'ticks_echo' );
declare( ticks = 1 ) {
   for($n =1;$n<4;$n++)
   {
      echo "何かしらの処理:".$n."回目<br />";
   }
}

/*
僕の予想:
何かしらの処理:1回目
ticks >> 1
何かしらの処理:2回目
ticks >> 2
何かしらの処理:3回目
ticks >> 3


実際の結果:
何かしらの処理:1回目
ticks >> 1
ticks >> 2
何かしらの処理:2回目
ticks >> 3
ticks >> 4
何かしらの処理:3回目
ticks >> 5
ticks >> 6
ticks >> 7
ticks >> 8

*/
えっ、こいつら、ボディランゲージ通じない感じ。
どうやら、declareは{}ブロックの終わりでも一度評価されるよう。

つまり、
declare( ticks = 1 ) {
   for($n =1;$n<4;$n++)
   {
      echo "何かしらの処理:".$n."回目<br />";
   }
}
の挙動は

何かしらの処理:1回目
ticks >> 1//forの最初のecho
ticks >> 2//forの最初の{}閉じ
何かしらの処理:2回目
ticks >> 3//forの2回目のecho
ticks >> 4//forの2回目の{}閉じ
何かしらの処理:3回目
ticks >> 5//forの3回目のecho
ticks >> 6//forの3回目の{}閉じ
ticks >> 7//forの4回目の{}閉じ(forの条件式が$n===4でfalseなので、中の文は実行されず)
ticks >> 8//declare最後の{}閉じ

となっている(のでしょう)。
その辺を考えて使わないと、痛い目にあいそう。
というか、時間計測くらいしか使いどころが分からない・・・。