setechdiv@wiki

備忘録201101

最終更新:

Bot(ページ名リンク)

- view
管理者のみ編集可

2010/01/31


2010/01/28


今日そういえばPTSEの新年会だ・・・

http://d.hatena.ne.jp/hasegawayosuke/
ここを読んでたら色々と面白そうだった。
でも頭悪いからすごくふんわりとしか分んなかった。
とりあえず、iTunes - iPod間の転送がクソほど独自で面倒なのは、
ハッシュアルゴリズムが独自であるためだ・・・てこと?
ちうかどっかの時点から音楽ファイルがMP3じゃなくM4A形式に
されていたのがちょっとムカつくのだ。
だって他の機器に入れたいときとか、いちいちエンコせないかん…やん…

あとsniffという用語を知った。
書いて字のごとく、くんくん嗅ぐこと。
LANアナライザを使ったトラフィック監視のことをいうらしい。

おお、あとXSSのことも意識したので忘れんように書いとこう。
:【XSS(Cross Site Scripting)】
|動的にWebページを作成するアプリケーション(ASPベースとか!)の
セキュリティの脆弱性を利用して、悪意あるスクリプトを混入させること

wikiによると、一般人がこれの被害を防ぐ方法っていい感じのがないらしい。
(スクリプトを切るとか、訪問サイトの脆弱性対策を予め知っとくとか、極端な…)
サイト作成者側の対策としては、
1.適切なエスケープを行う(アンパサンド→&とか)
2.タグの属性を必ず"(ダブルクォーテーション)でくくる

2については、へーそんなの関係あるんだ、という印象。え、これなんで?

で、上記のブログ。
レスポンスヘッダにX-Content-Type-Options: nosniffを付けとくと、
htmlじゃないコンテンツがhtml扱いされてXSSが発生する(そんなあほなことあるんか)
ことがなくなるそうな!
あでも、IE7以前じゃ意味ないそうな;
ブラウザ更新せんとか、いるの?そんな人?と思うけど、結構いてるんよね…
webベースでjavascript使った開発して、初めてそういう人たちに悪意を感じたわ…


2010/01/20


【現在】
db.Execute strSQL

【変更後】
DoCmd.RunSQL strSQL

こうすると、SQL実行時にレコードを追加する旨のメッセージが表示されるとともに、
エラーが生じた場合はそれも表示されます。
(=アクションクエリ実行時と同じ状況)

というのを発見したのでとりあえずぺたぺた。

あと、VBSのNz関数で、第2引数に「''」を渡したらエラーになった!
VBって「""」以外ダメだったっけ!?

母の抗がん剤治療の説明に家族の付き添いが必要とのことで、明日は名古屋へ。
折悪しく熊本の叔母さんも急病で父はそっちに行っちゃってるし、
弟や親戚は遠方すぎるので、今仕事ヒマな私が行くのが妥当かと…と申請。
というか母が黙ってたから前日になって父が慌てて電話してきたのだ。
あんなガンバリ屋で頑固な人、孤独な闘病生活大丈夫だろうか。


2010/01/19


CSSいじってみますた。楽しすぎwww
こ、これはwww韓国とかで見るうさんくさい日本語フォント!

朝食のメニュー
なまみず ₩500
ただいま焼いたトースト ₩2300
願う新鮮なジュース 無料
みたいな!w

メモ:CSSを読み込むコード
<link rel="stylesheet" type="text/css" href="../CSSファイルの名前.css"/>


2010/01/18


<javascript> スペースリバースティンギーアイズ!

スラッシュとバックスラッシュを間違えるとややこしいことになる。javascriptでは特に。
funcOpenPop('../report/temp/<%=cnsREPONAME%>.xls','excel');
てな感じでパス指定してエクセル開こうと思ったのに、
funcOpenPop('..\report\temp\<%=cnsREPONAME%>.xls','excel');
と間違えていたら…

正規表現と解釈されて、/rが改行に、\tがタブになってしまった…

2010/01/17


<Excel> 改ページ
WS.HPageBreaks.Add before:=WS.Rows(lngRCnt + 1)

<ASP> Timeout

:Session.Timeout ( = 分 )
| Timeoutプロパティはセッションのタイムアウトの時間を分単位で取得/設定します。このプロパティの標準は 20で、20分間サーバに対して更新や要求を行なわれなければセッションオブジェクトが破棄されます。Timeoutプロパティに数値を設定した場合、その時間を変更する事が出来ます。また、明示的にセッションオブジェクトの破棄を行ないたい場合は Abandonメソッドを実行します。

:[ Sample ]
|'# セッションタイムアウトを 5分に設定
Session.Timeout=5

:Web系ならではの先輩のワザ
|表示ページのディレクトリとファイル名をテーブルに一覧保存しておいて、
画面IDでそれを探し、表示ファイルのパスとして使用する

=やること=
○寒中見舞いハガキ出す!今日中!
○クレD予約(いつでもできるっちゃ!)

2010/01/13


<VB> instrRev関数

:instrRev
|instrが、指定文字列を、検索対象の文字列の先頭から探すのに対し、
指定文字列を、検索対象の文字列の末尾から探す。
instr の Reverse って言いたいのか…!
rev ってずっと腑に落ちなかった…

<ASP> Server.CreateObject

:Serverオブジェクト
|Webサーバ上のメソッド及びプロパティへアクセスする際に使用する。
RequestオブジェクトやResponseオブジェクト、Serverオブジェクトなどは組込みオブジェクトと呼ばれるもので、使用する前にインスタンスを生成するというステップは必要はない。
 しかし、その他のオブジェクトに関しては Server.CreateObjectメソッドを使用してインスタンスを生成する必要がある。また、オブジェクトの代入は通常の代入とは異なり Set 句を使用する。

:書き方
|Set object = Server.CreateObject( コンポーネントID )

:例
|
Dim objExcel
Dim objWbk

Set objExcel = Server.CreateObject("Excel.Application")
 Set objWbk = objExcel.Workbooks.Add
 
 objWbk.ActiveSheet.Range("A1").Value = "Sample"
 objWbk.SaveAs ("C:\Sample.xls")
 objWbk.Close False
 objExcel.Quit
 
 Set objWbk = Nothing
 Set objExcel = Nothing
 

このように、サーバー上にエクセルのインスタンスを生成して、
エクセルのVBAを直接操るように、ASP上でエクセルを操作できるのだ!

さらに、ここでADBDBを呼び出したりすると、
INSERT文を発行して、データベースの値をそのままエクセルに書く!
てなこともできるのだがそのへんはハッキリした方法はもにょもにょ…
ADODBはMicroSoftが提供するソフトウェア部品で、
AccessだけじゃなくVBscriptでも使えたんだね!
なぜ…?なぜ使えてるの??
疑問が尽きなすぎる。

2010/01/13


<仕事要領> 質問を増やそう

1.使ったことない方法をとってみる
2.できない
3.「これじゃダメなんでしょうか??」って訊いてみる

でいいと思うよ!
そしたら、「こうした方がいい」って、先輩の方法を教えてもらえるから!

ブログページ、一応javascriptだけでもページまとめたのだ!
ということで過去分を切り離すのだ!

メモ:距離感に非常にぶれがある。不安定である。


2010/01/12


とにかくフローチャート!フローチャートなのだよ!

<javascript> ラジオボタンの選択値の取得

  1. var hoge = document.getElementsByName("huga");
  2. for(var i=0;i<hoge.length;i++) {
  3. if (hoge[i].value == '0') {
  4. //...
  5. }
  6. }
  7.  

2010/01/11


キーボードをたたいてプログラムを組むだけのところに、
どうしてこんなに多様な図が存在するのかちょっと分かった気がする。
問題には色々ベクトルがあって、それぞれに適した図解が必要なのだ。

画面設計は画面の図を使うし、展開図もやっぱりそうだし、
でも実際のPGで迷ったらフローチャートが必要だ。
そんなふうなんだきっと。

<SQL> 「Aにあって、Bにないデータ」/UPDATE条件に設定する

SELECT HOGE.*
FROM HOGE LEFT JOIN HUGA ON HOGE.ID = HUGA.ID
WHERE HUGA.ID IS NULL

LEFT JOINでとりあえず全件みられる状況を作り、
そこから結合「できなかった」ものを絞り込む。
これの応用で、「ワークテーブルHOGEにあって本テーブルHUGAにないデータ」を出し、
「HUGAにあってHOGEにないHUGAのデータに削除フラグを立てる!」ことができる!

UPDATE 本テーブル SET 削除FG = '1'
FROM 本テーブル AS HOGE LEFT JOIN 
(SELECT * FROM ワークテーブル WHERE IPアドレス = '299.299.299.299') AS HUGA
ON HOGE.NO = HUGA.NO 
WHERE HOGE.ID = 'ididid' AND HOGE.発生日 = '20110101' AND HOGE.連番 = 7
AND HUGA.NO IS NULL

これを自分で書けますか、というと、まだ書けない。
ダメダメだ―!

<SQL> サブクエリを使用した更新

UPDATE HOGE SET 項目A = HUGA.項目B FROM HUGA
WHERE HOGE.項目C = HUGA.項目C;

三連休でまあまあリフレッシュできたかな?
私事は、定時後で十分消化できるはずだ!
明日の食事、服装、洗濯さえキッチリできていれば部屋が荒れていようが構わん!
ところで明日は猫カフェ
今日は…

=やること=
  • 100均で文庫ボックス買う?
  • 模様替えレイアウト案

2010/01/07


外部結合で値の取れてこなかったやつって何になるんだろーか →NULLになっている

モジュール分割の視点(ソースレビューより)
  • 機能単位(共通の初期設定、DB更新などの別)
  • 言語単位(複数の言語が入り乱れる時/ASP・javascript・SQL・CSSなど)

機能盛りだくさんの画面を効率よく製造するポイント
  • 仕様書を読んで、「できるだろう」「やったことない機能」を振り分ける
  • 「できるだろう(=DB更新なら何度もやってる、等)」は置いといて、
  • とりあえず「やったことない機能」の実現案を訊きまくる
  • 実現案が分かったら、視点を変えて、「独立性の高い順」に並べる
  • 独立性の高いもの(パラメタさえあればできる画面制御など)から開始
  • 不明点がでたときは、簡単な画面の時よりもっと慎重になる
  • 安易に放置や変更をして、他の機能に影響がでるかもだから…



2010/01/06


<javascript> リストボックス~色々な値の取得~

色々といっても…2こ!

コード 表示名称

リストボックスを持っている場合、
リストボックス.value でコードが、
リストボックス.options[リストボックス.selectedIndex].text で表示中の文字列が取得出来ちゃう!

<ASP> MAX関数使用時のレコードセット戻り値

ASPからMAX関数を使用して値を取得しようとしたら、NULLでも必ず1行になった。
これってMAX関数の特徴?それとも、SQLServerの特徴??
と思っていたけど、よく考えたら集計関数はグループ化されたもので、
グループ化ってのは、指定なしでも全体を一つのグループと見なすから最小でも1件になるってことか?




2010/01/05


メモ:javascriptはなんでもかんでもオブジェクト。

<javascript> switch文 は進化した!switch文 は「ORじょうけん」を覚えた!

switch([条件]){
case [a]:
case [b]:
  [処理ab];
  break;
case [c]:
  [処理c];
  break;
default:
  break;
}

なんとこういう書き方らしい・・・

<javascript> IE6のonClickがタコい理由

いつか書いていたと思ってたら書いてなかったので。

問題:
リンククリックで、遷移ではなく動作(行追加、アイテム削除など)したいとき、
<a href="javascript:void(0)" onclick="javascript:funcExe();">
て書くと、IE6でだけは、動かない。

原因:(先輩伝授)
javascript:void(0)は、それ自体がhref属性の動きを制御するおまじないではなく、
ただのURLダミーみたいなもん。
だから、onClickで明示的にreturn false を記述しておかないと、href が動作してしまう。
で、動作した場合、「void(0)ってなんじゃ」となって落ちる(私の推測)。

対策:
form の onsubmit でチェック関数を呼び出して、
関数内でチェックエラーとなったときreturn false してsubmitを回避する、という処理があるが、
あれと同じように、return false してhrefを回避する必要がある。っぽいのだ!



2010/01/04


明けましておめでとうございます。

<javascript> 正規表現について


まず上の記事の"「/」で囲む"ルールを知らなかった。。。

∥例(半角/全角スペースをトリムする)∥
varX.replace(/^[  ]+|[  ]+$/,"")

/~/  …/で挟まれた部分が正規表現
^  …後に続く文字「から始まる」という指定
[ ]  …[ ]内の文字のいずれか、という指定(ここでは半角/全角スペース)
|  …javascriptの演算子。Or演算子。
$  …前にある文字「で終わる」という指定
+  …直前の1文字が一個以上、という数量指定

先頭に半角/全角スペースがある(複数も含む)、または
末尾に半角/全角スペースがある(複数も含む)とき、
""と置換える
記事メニュー
ウィキ募集バナー