- iPhoneでGmailや連絡先と同期する方法 (2012-02-01) このエントリーを含むブックマーク

Androidユーザーになって久しく、iPhoneでGmailや連絡先と同期する方法を忘れてしまいました。検索してみたところ、情報が古いものも多く、具体的なやり方がすぐに見つからなかったのでメモ。

- JScriptでクリップボード (2012-01-22) このエントリーを含むブックマーク

JScriptでクリップボードを扱う方法。その昔、IEを使う方法が主流でしたが、今はセキュリティの関係で使えないので、代わりに、MS Officeをインストールすると使える「Forms.Form.1」がベスト。

function getClipboard() { // クリップボードを取得する関数
  var ff = new ActiveXObject("Forms.Form.1");
  var tb = ff.Controls.Add("Forms.TextBox.1").Object;
  tb.MultiLine = true;
  if (tb.CanPaste) tb.Paste();
  return tb.Text;
  tb = null; ff = null;
}
function setClipboard(text) { // クリップボードにコピーする関数
  var ff = new ActiveXObject("Forms.Form.1");
  var tb = ff.Controls.Add("Forms.TextBox.1").Object;
  tb.MultiLine = true;
  tb.Text = text;
  tb.SelStart = 0;
  tb.SelLength = tb.TextLength;
  tb.Copy();
  tb = null; ff = null;
}

- JavaScriptのオブジェクト指向確認 (2012-01-12) このエントリーを含むブックマーク

仕事でJavaScriptをよく書いていますが、大きなライブラリ的なものを書くことは少ないので、なかなか深いところまで触る機会は少ないのです。となると、必然的に、あまり使わないJavaScriptの機能は忘れてしまうということに。特に、プロトタイプ的なオブジェクト指向は、よく考えないと使い方を間違えてしまいます。

そこで、再度、ここで確認。関数の中で「this.xxx」のように定義したプロパティは、インスタンスからも利用できます。

<script>
var DogClass = function () {
  this.name = "dog";
  this.age = 20;
  this.naku = function () { return "wan!"; }
};
var taro = new DogClass();
alert(taro.age);    // 20
alert(taro.naku()); // wan!
</script>

ちなみに、関数ないで定義したローカル変数をインスタンスから使うことはできません。

<script>
var DogClass = function () {
  var name = "dog";
  var age = 20;
};
var taro = new DogClass();
alert(taro.age); // undefined
</script>

そして、prototypeを使うと、各インスタンスの中で定義された定義を共通化することができます。逆に言えば、prototypeを使わないと、インスタンスを作るたびに、個々のインスタンスに新たなプロパティが作成されます。prototypeを使うと、各インスタンスのプロパティを共通化(リンクのような感じ?)することができます。

<script>
var DogClass = function () {
  this.name = "dog";
  this.age = 20;
};
DogClass.prototype.naku = function () { return "wan!"; };
var taro = new DogClass();
alert(taro.naku()); // wan!
</script>

とは言え、インスタンスのprototypeされたプロパティを書き換えると、新たな値が生成される(リンクではなくなる)ので、値を書き換えたからといって全てのインスタンスの値が書き換わる訳ではありません。

<script>
var DogClass = function () { this.age = 20; };
DogClass.prototype.name = "dog";
DogClass.prototype.naku = function () { return "wan:" + this.name; };
var taro = new DogClass(); // インスタンス taro を作成
taro.name = "taro";        // prototypeされた値を書き換え(新たな値が生成される)
var jiro = new DogClass(); // インスタンス jiro を作成
jiro.name = "jiro";        // prototypeされた値を書き換え(新たな値が生成される)
alert(taro.naku());        // wan:taro
alert(jiro.naku());        // wan:jiro
</script>

【参考】

- PHP公式資格教科書の正誤表 (2012-02-04) このエントリーを含むブックマーク

技術評論社から出版されている「PHP公式資格教科書 PHP5技術者認定初級試験対応」について、本文に一部、誤りがありました。すみません。ここでその正誤表(速報)を紹介します。

http://aoikujira.com/demo/sozai/20111128-G7-php-kyoukasyo.jpg

PHP公式資格教科書の正誤表 †

P9 プログラム2の拡張子が「html」になっている †

  • [誤] html
  • [正] php

P27 printf,sprintfの表 †

  • [誤] ptintf($format,$args...)
  • [正] printf($format,$args...)

P35 「変数の操作」の5行目のデクリメントの記述がおかしい †

  • [誤]「$--」
  • [正]「$i--」

P36 解説1 †

  • [誤] sgtrpos()
  • [正] strpos()

P51 問題2の誤り †

問題文に「返り値の配列が空となるような$_POST['point']の値を2つ選択せよ。」とありますが、このソースでは文字列を代入しているので返り値が配列になることはありません。ソースコードに以下の修正が必要です。

2行目:$error = array();
4行目:$error[] = "Your point must be a number.";
6行目:$error[] = "Your point must be at least 70 and no more than 90.";

P73, 74 問題2の解説の誤り †

  • [誤] array()関数を使って連想配列をセットしたとき、配列キーは文字コード順に

セットされます。

  • [正] ksort()関数を使って連想配列をソートすると、配列キーは文字コード順に並び変わります。

P101 HTMLの代表的なフォーム要素の表 †

  • [誤] </textare>
  • [正] </textarea>

P122 第7章の説明 †

ページ上部の第7章の説明が第6章のそれと完全に同一で「データベース」の説明としては不適切となっています。

[データベース]の説明
本章では、Webフォームとデータベースを扱います。PHPではHTMLのフォームから送信した値を手軽に利用できる仕組みが備わっています。どのような処理でフォームを処理するのか確認しましょう。また、Webアプリケーションを作る上で、データベースの操作は外せません。データベースの基本的な事柄を整理し、PHPでデータベースを操作する方法を紹介しましょう。

P175 session.auto_startの記述ミス「解説」の3行目 †

  • [誤]「session_auto_start」
  • [正]「session.auto_start」

P194 書き込みテストの誤り †

「プログラム1」の4行目、条件式が書き込み可能な場合に「書き込みパーミッションがありません。」というメッセージを出力して終了するようになっていますので、メッセージ通り動作させるには、is_writable関数の前に否定の演算子「!」を付ける必要があります。

  • [誤] if (is_writable($afile)) {
  • [正] if (!is_writable($afile)) {

P219 脱字「警告(Warning)」の説明の4行目。 †

  • [誤]「動作を停止することはありませ。」
  • [正]「動作を停止することはありません。」
コメントの一覧
永田 勝利「P122 第7章の説明 †ページ上部の第7章の説明が第6章のそれと完全に同一で「データベース」の説明としては不適切となっています。」とありますが、正しい記述はどのようなことですか。 (2012-01-09 00:03:44)
クジラ補足ありがとうございます。修正内容を記述しました。 (2012-02-04 00:56:25)

- JScriptでコマンド実行 (2011-11-13) このエントリーを含むブックマーク

WSH/JScriptでコマンド実行の方法をメモ

var shell = new ActiveXObject("WScript.Shell");
shell.Exec("notepad"); // コマンドを実行

終了まで待機する場合

var shell = new ActiveXObject("WScript.Shell");
var e = shell.Exec(cmd); // コマンドを実行
while (e.Status == 0) {
  WScript.Sleep(100);
}

作成:1970-01-01 09:00:00/更新:2008-02-04 14:16:51
くじらぶろぐD by kujirahand RSS
konawiki 0.31