忍者ブログ

カウンター

プロモーション

カレンダー

02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

AntinomyMy の実験室

   私のWEBアプリ実験室です!

ブログ内検索

楽天でお買い物

twitter

最新トラックバック

最新コメント

忍者アナライズ

ウェザーニュース

バーコード

本を買う

アクセス解析

Google+

[PR]

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


No Image

windows から Mac へのリモート接続時 の文字変換 キーは[Ctrl + Space]

Mac の調べ物とメモ

Windows からMac へなんらかのリモート接続のソフトを用いて接続した時に
とても厄介な事柄を感じたことのメモ( ..)φメモメモ

Macにあるキーの「英数」っていうボタンを押したいけど
Mac のキーの「英数」は、Windows のキーの「無変換」とは違うのが厄介だった

まぁ、結果的にアレコレキーを押して分かったんだけど
Windows からWindows のキーボードを用いてホストのMac のMac キー「英数」ボタンを
押すには[Ctrl + Space] キーで出来る!

どんなアサインになってるか不明だけど?
Mac 側でこれもOKになってるのか
キーボードのコードが同一なのかまでは全く調べてない

というか意識したくないし、キーと機能の設定をWindows 側も
Mac 側もいじりたくない・・・w

なんせMacってWindows とキーボードが違うし
それに割り当てられてる機能も違うからややこしい

どっちかの設定、例えばWindows のキーの設定を変えても
それは機能を変えるだけでキーボードの位置とか、その部分に無いキーまで
なんとかできる訳でもない

この
Ctrl + Space を忘れない為のメモでした<_ _> お粗末

拍手[0回]

PR

No Image

長文なアンカーをボックス(pre)要素内で改行

HTML のスキーマの調べ物

まず、動くけど無駄な間違いあり!!!

<pre style="height: 300px;width: 300px;background: #00aa00;"><a style="overflow: visible; color:#ff00aa;zoom: 1;white-space:normal;
            white-space: pre;           /* CSS 2.0 */
            white-space: pre-wrap;      /* CSS 2.1 */
            white-space: pre-line;      /* CSS 3.0 */
            white-space: -pre-wrap;     /* Opera 4-6 */
            white-space: -o-pre-wrap;   /* Opera 7 */
            white-space: -moz-pre-wrap; /* Mozilla */
            white-space: -hp-pre-wrap;  /* HP Printers */
            word-wrap: break-word;      /* IE 5+ */
            ">123aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</a>
</pre>


うーん。。。。
これ間違ってました!!!!!!!!!!!!!!
a にハックかける必要ないんじゃないか?ってこと。

入れ物にハックして、アンカーを改行するんじゃないか?


pre タグの機能は、css の
white-space: pre;
と同等だとか言う話だが、それで動かなかった・・・・

うーん・・・・

まぁいいや、時間がないので次回実験だ(ぁ

って、次回の前に気になったので変えてみた・・・・


<div style="height: 300px;width: 300px;background: #00aa00;float: left;
            white-space: pre;           /* CSS 2.0 */
            white-space: pre-wrap;      /* CSS 2.1 */
            white-space: pre-line;      /* CSS 3.0 */
            white-space: -pre-wrap;     /* Opera 4-6 */
            white-space: -o-pre-wrap;   /* Opera 7 */
            white-space: -moz-pre-wrap; /* Mozilla */
            white-space: -hp-pre-wrap;  /* HP Printers */
            word-wrap: break-word;      /* IE 5+ */"><a>123aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</a>
</div>

これ動く!

Firefox で有効なのを見たら
    white-space: pre-wrap;
    word-wrap: break-word;
だけだった
<div style="height: 300px;width: 300px;background: #00aa00;float: left;
    white-space: pre-wrap;
    word-wrap: break-word;">
<a>456aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</a>
</div>

div をpre にして・・・・も意味あるのかな?

これで動かないbrowserのためのハックなんだろうか?

ネットから拾ったハックの部分、謎過ぎる

追伸:
結局これを使う様になった・・・

.pre-hack-on-anchor{
white-space: pre; /* CSS 2.0 */
white-space: pre-wrap; /* CSS 2.1 */
white-space: pre-line; /* CSS 3.0 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
white-space: -moz-pre-wrap; /* Mozilla */
white-space: -hp-pre-wrap; /* HP Printers */
word-break: break-all;
/word-wrap: break-word; /* IE 5+ */
}

word-break: break-all; がスマホとかで使うみたい、
IE はIE だけ解釈できた /を入れているが、
多分もうIE用の word-wrap: break-word; は入れなくても
どちらでもいい^^;




お粗末なブログでした<_ _>

拍手[0回]


No Image

Apache のhttpd.conf のデフォルト基点はSRVROOTで作られている

PHP の調べ物

Windows (Linux も多分、同様な気がする)のApache のconf ファイルのデフォルト基点は
SRVROOTで作られているので
DocumentRoot の位置を一部変更すると、他(のファイル)も変更しなければ
ならなくなるという至って当たり前そうだけど、ハマる可能性がある話しだと思って
私的にメモ

理由は、
DocumentRoot を1箇所、例えばc:\htdocs
など、Apache がインストールされれいるファイル位置から変更するとする。

これは、普通に考えて、httpd.conf の中のDocumentRoot を
変えれば終わる・・・気がする・・・

しかし、これ一箇所だけ変えて、Apache のインストールされているディレクトリ直下の
hddocs を消す(もしくは、前途のc:\htdocs にそのまま移動したりする)と、
AH00112: Warning: DocumentRoot [C:/~~Apache のインストールディレクトリ~/htdocs] does not exist
と起動時にエラーがでる。

実は、httpd.conf の中で、DocumentRoot はinclude されている
Include conf/extra/httpd-ahssl.conf
など、この中でもssl 用などで、DocumentRoot はSRVROOT が使われていて
  DocumentRoot "${SRVROOT}/htdocs"
なんて書き方で記述され、コメントアウトもされていないので
これらのファイルをそのまま雛形として使っていると、
httpd -k install -n "付けたいApache のサービス名" -D phpのIfDefine名での
インストール作業(Windows)や毎回起動時にエラーが出てしまう。

Apache の最大の難関は、設定、でも設定が終わればそれまでなんだけど、
一度悩むと長い間、時間をかけて考えたり結構労力がいるので
一応個人的なメモを何時もの様にしてみた。

お粗末でした<_ _>


拍手[0回]


No Image

Apache でcgi-bin を閲覧で「403 Forbidden」になる原因はScriptAlias(Alias)で「/」が無かったから。

Apache の調べ物

勿論メモ書き(きっちり箇条書きとかで纏めてはいないので)
とりあえず、cgi-bin を閲覧 で403になる原因を調べてみた。
Apache 2.2 系と2.4系では、ネットで調べると、
Order ディレクティブ は、 Require ディレクティブ に変更になったので
Order とかAllow とか使わずに、Require を使う事は分かった。
 
だけどデフォルトで然程触ったつもりもないし、
htdocs のディレクトリの設置とも変わりがない権限な気がした。
なのでとりあえず、異常じゃないと思えたので、
error ログを見てみた。
error ログで
[Sat Nov 21 15:04:12.193888 2015] [authz_core:error] [pid 23584:tid 952] [client ::1:51703] AH01630: client denied by server configuration: C:/Apache/cgi-binperl_test.cgi
[Sat Nov 21 15:04:13.222947 2015] [authz_core:error] [pid 23584:tid 952] [client ::1:51703] AH01630: client denied by server configuration: C:/Apache/cgi-binperl_test.cgi
[Sat Nov 21 15:04:13.872984 2015] [authz_core:error] [pid 23584:tid 952] [client ::1:51703] AH01630: client denied by server configuration: C:/Apache/cgi-binperl_test.cgi
[Sat Nov 21 15:04:14.056995 2015] [authz_core:error] [pid 23584:tid 952] [client ::1:51703] AH01630: client denied by server configuration: C:/Apache/cgi-binperl_test.cgi
[Sat Nov 21 15:04:14.233005 2015] [authz_core:error] [pid 23584:tid 952] [client ::1:51703] AH01630: client denied by server configuration: C:/Apache/cgi-binperl_test.cgi
[Sat Nov 21 15:04:14.403015 2015] [authz_core:error] [pid 23584:tid 952] [client ::1:51703] AH01630: client denied by server configuration: C:/Apache/cgi-binperl_test.cgi
[Sat Nov 21 15:04:14.559024 2015] [authz_core:error] [pid 23584:tid 952] [client ::1:51703] AH01630: client denied by server configuration: C:/Apache/cgi-binperl_test.cgi
みたいなのが、起動しようと思うと必ず出てきたので、疑問に思いました。
初めはこれを見て、何処にもcgi-binperl_test なんていうのは設定していないのに・・・と
思ってよく見たら、何か繋がっていそうだったので気がついて、
これは・・・ディレクトリの指定まちがってる?!って思ったので、
ディレクトリを設定している場所(ScriptAlias もしくはAlias)を見たのでした。
とりあえず、私の場合のミスは、
cgi-binperl_test
は、
cgi-bin/perl_test.cgi
本当で
perl_test.cgi を閲覧しようとしているのにパスの指定が悪くて、
こうなんだろうと思えました。 
 
 
 
そこで、cgi-bin のディレクトリを設定している部分を調べてみた。 
 
 私の場合は、なにやらいじっているので、367行前後にあるが
    #ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
これを編集して
    ScriptAlias /cgi-bin/ "${CGI-BINROOT}"
つまり強制的にhtdocs(私の環境の場合)に乗せてる感じにしてる記述している訳であるので、
別名のエイリアスなんだろうなって、そのままなんだけど、その理解であってると思う。
 
少し余談だが、 
よく分からないので、まず自分のパスを眺めなおした。
私の場合は、
Apache / cgi-bin
            / htdocs
            / apache2.2.xx
            / apache2.4.xx-x86
            / apache2.4.xx-x64
 
といった並びになっている
 
Apache2.4.xx~~~ は、本来、サーバールートとして設定し、
つまりApache 本体になる。
 
これは設定したとしても、cgi-bin とhtdocs の場所は変えられるのだ。
 
Apache のバージョンとコンパイルが32bit か64bit かを色々変えられる様に設定しているので、
共通であるコンテンツとcgi-bin は、極力上部ディレクトリに退避したいのでこんな構成にしている。
では、余談気味でもあるが、一応説明を終えて、話を戻す。
細かな何度も使う固有の設定はDefine で指定している。
 
2.4.16の64bit の一例))
Define SRVROOT "C:\Apache\httpd-2.4.16-x64-vc11"
ServerRoot "${SRVROOT}"
 
Define CGI-BINROOT "C:\Apache\cgi-bin"
Define DOCUMENTROOT "C:\Apache\htdocs"
 
となっている。
 
上記な様に設定をしていたのだが、これを
前途のお手本となる
   #ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
と比べた。
 
まず、
<Directory パス>のDrirecty ディレクティの場合
 
DocumentRoot "${DOCUMENTROOT}"
と書いた上で、
 
<Directory "${DOCUMENTROOT}">
と書いても
<Directory "${DOCUMENTROOT}/">
と書いても換わらない
(余談だけど、なぜかWindows で
<Directory "${DOCUMENTROOT}\">
つまり、ディレクトリのマークを\ だと動かない)
つまりディレクトリであると自動で判断してくれている
でも、ScriptAlias や、Alias は、違う!
完全にしっかり最後をディレクトリであると
/ か\ で閉じなければならない。
試してないが、多分ディレクトリだけでなく、
単体のファイル1つを別名として使えるのかもしれない。
なので、私の場合は
<Directory パス> で使う予定でdefine していたので
Define CGI-BINROOT "C:\Apache\cgi-bin"
となり、
これをそのままScriptAlias で
    ScriptAlias /cgi-bin/ "${CGI-BINROOT}"
としていたので、最後を閉じていなかったのでこれが原因だった!!!!
つまり、正解は
    ScriptAlias /cgi-bin/ "${CGI-BINROOT}"
ではなく、
    ScriptAlias /cgi-bin/ "${CGI-BINROOT}/"
である。
また余談だが、<Directry パス>のディレクティブも
ScriptAlias も、ディレクトリの指定に \ が使えない\ が使える。
前途の通り、Directry ディレクティブは端折れるが、ScriptAlias やAliasは端折れない。
バグの元なので統一して欲しい、ややこしい・・・・・w
こんな単純なミスで必死に時間費やして、頭回して、変な疲労があるから、
案外モチベは下がるから、余計に時間はかかる。
Apache の小さな躓きは、毎回時間がかかって辛い^^;
Apache の設定って1度動けば、毎回触るところじゃないから、
まいったなー!と思いながら、それでもアレコレ触っちゃってたりするんです。
-------------------
余談ですが、
-------------------
ScriptAlias でなく、Alias を選ぶと、
スクリプトの設定以外を多少省けるが、
ScriptAlias の設定をすると、スクリプト以外のファイルを閲覧するならば
スクリプト以外のファイルタイプをDirectry ディレクティブの中に
書かなければいけない。
例えば、html を閲覧したければ、
初めからAlias ディレクティブでcgi-bin を公開する方法もあるが、
ある意味丸見えなので、極力避けるべきなんだろうと思う。
むしろ極力避けたいので、ScriptAlias という、ほぼ目的としては
cgi 用のディレクティブがあるのだと思う。
例 ScriptAlias の場合)
Define CGI-BINROOT "C:\Apache\cgi-bin"
ScriptAlias /cgi-bin/ "${CGI-BINROOT}/"
と設定し、
http://localhost/cgi-bin/_index.html
を閲覧しようとすると
500 Internal Server Error
となる。
スクリプトだけ許可される設定なので、
html などは見られない、設定が成されていないので。
なので、
<Directory "${CGI-BINROOT}">
AddHandler text/html .html
~~略~~
とAddHandler をつけなければ表示されない
どっちが便利なのかとか分からないが
セキュリティーなどどがえしして、簡易設定か
もしくは、全部がっちり手動で設定をするならば
    ScriptAlias /cgi-bin/ "${CGI-BINROOT}/"
でなく
    Alias /cgi-bin/ "${CGI-BINROOT}/"
でもいいかもしれない。
デバッグのときだけ、Alias 、実際の運営はScriptAlias とか使い分けるのも
良いかもしれないが、そもそもcgi-bin にテストの目的以外で
html のファイルや、それらがリンクする画像や、ファイルを置く意味は薄いかもしれない。
やっぱ、基本、cgi-bin は、個人的にScriptArias にしておこうかなと思っているのでした。
最後に・・・・余談だらけじゃないか!www
そしてApache を毎回何かを直そうとするとこんな感じになる。
いったりきたり、えらーログとアクセスログを眺めたり@x@
実際のパスの構成とかまで考えて
しかもバージョンによって2.2から2.4とかは閲覧できる権限設定がちがったりするし、
ネットでも探したり。
人が作った環境であると、そもそもPerl がうまく動いていない場合もあるので、
本当にcgi-bin が見える以前の問題もある。
まぁ・・・・一応解決できたからよかったと、忘れない為にメモしました。
お粗末<_ _>

拍手[0回]


No Image

iScrollをjQuery Mobiel で使う場合の初期化は、$(window).load で!

JavaScript の調べ物

あれこれ、タッチ対応のスクロールバーをカスタマイズできる、
スマホ用のプラグインを探していると、
最終的にブラウザの持つ、スクロールで更新してしまう機能などと
衝突したりして、うまく使えないものもあった。

その中でiScroll というのが一番うまく動いて、
指で謎って動かしすぎた時に、裏のスクロールや
そのブラウザで他の挙動が起こったりする事ができた。

というか、数種類みたりしてみたけど、どれも優れて居そうな点はあるけれど、
何処かを多少の手間を入れて補わなければいけない雰囲気。

実は一度、jQuery custom content scroller を試したけど、
一番上まで入ってスワイプでブラウザ更新にiPod のChrome でひっかかり、
こりゃ使えないな!って思って、実装した後にこのiScroll に変えました。

これバージョンがあって
http://cubiq.org/iscroll-4
http://cubiq.org/iscroll-5
とあったので、iscroll-5 を使ってみました。

問題だったのは、タイトルにある様に、
iScrollをjQuery Mobiel で使う場合の初期化は、$(window).load で
なければ、jQuery Mobile って全てをスクリプトで処理した後で
無いのに、それを知らずに

$(document).ready
とか
$(document).on("pagecontainerchange" ~~~
を使っていて、alert()を入れてびっくり、
まだ描画が途中なのにこれらのイベントが発生しているので、
スクロールできる量、heigth とかが確定していないままで
iScroll の初期化をしていました。


なんで分かったかっていうと、
alert()をいっぱいしているサイトを見て
http://weback.net/jqm/2439/
そうか、こうなったら知りうる限りalert() しちゃえば、
どうなってるかそこでコマ切れで見られる!!!
って単純な発想で、既存のスクリプトに付け加えたりしてみました。

//------------------------------------------------------------------------
$(document).ready(function() {
alert("document  ready");
});
$(document).load(function() {
alert('document  load');
});
$(window).load(function() {
alert('window  load');
});
$(window).ready(function() {
alert('window  ready');
});

//サイトにあったのとか、+アルファ
$(document).on("pagecontainerload", function(e,d){
alert("pagecontainerload - ページロード完了後 - ページ遷移で発生");
});
$(document).on("pagebeforecreate", function(e,d){
alert("pagebeforecreate - ページ初期化前 - ページロード/ページ遷移で発生");
});
$(document).on("pagecontainerbeforehide", function(e,d){
alert("pagecontainerbeforehide - 前ページの非表示前 - ページ遷移/リターンで発生");
});
$(document).on("pagecontainerchange", function(e,d){
alert("pagecontainerchange - ページ変更後 - ページロード/ページ遷移/リターンで発生");
});
$(document).on("pagebeforecreate", function(e,d){
alert("pagebeforecreate - ほとんどのプラグインの自動初期化の前、ページ初期化処理の最初に発生する。 - ページロード/ページ遷移/リターンで発生");
});
$(document).on("pagecreate", function(e,d){
alert("pagecreate - Ajaxであるかどうかにかかわらず、ページがDOMに生成されたときに発生する。 - ページロード/ページ遷移/リターンで発生");
});
$(document).on("pagecreate", function(e,d){
alert("pagecreate - jQuery Mobile のロードが終わった時点で発生する - ページロード/ページ遷移/リターンで発生");
});
$(document).on("pagecontainerbeforechange", function(e,d){
alert("pagecontainerbeforechange - ページロードあるいはページ遷移前と、ページロードが成功して完了した後の2回発生する。 - ページロード/ページ遷移/リターンで発生");
});
$(document).on("pageinit", function(e,d){
alert("pageinit - ページの初期化が完了した後 - ページロード/ページ遷移/リターンで発生");
});
//------------------------------------------------------------------------

これだけで順番が分かったので、改めて、windows.load が一番最後に発生する!って思いました。
ただjQuery のラッパー込みで読み出しているので、jQuery ですが。




私の場合、スクロールバーをカスタムしているので
$(window).load(function() {
myScroll = new IScroll('#menu_scroll_contents', {
// scrollX: true,
scrollbars: 'custom', //カスタムの見栄えを使う
click: true,
mouseWheel: true, //マウスホイールでの操作を有効
keyBindings: true, //キーでの操作を有効
interactiveScrollbars: true, //内部の移動とバーの移動が正比例か反比例か?(ture=正比例)
fadeScrollbars: true //動かすと現れて、止めると消えるスクロールバー
});
});

にして動きました!

$(document).ready
とか
$(document).on("pagecontainerchange" ~~~
だと、スクロール量も表示の大きさもおかしかったので
うまくいってよかったのと、改めて、イベントのタイミングを
見直せたかな?と思いました。

以上、何時もの様にメモでした<_ _>

追伸:
他の参考サイト
http://weback.net/jqm/2433/
http://www.buildinsider.net/web/jquerymobileref/35

iscrollview(プル機能)
GitHub
これもiScroll の拡張で、そのブラウザが邪魔してた部分、
リロードになってたけれど、そこを好きな機能、中身だけ更新とか
新しい情報を読み込む挙動をJavaScirpt で作れるのでいいな!と思ったので
これもメモです。


拍手[0回]


[PR]