[JavaScript] 基本メモ: 配列、オブジェクト

配列

多次元配列の定義は以下のように。

オブジェクト

名前と値のペアをプロパティとして定義できる。

メソッド(関数)も定義できる

[JavaScript] 基本メモ: データ型、演算子、真偽値、関数

JavaScriptの基礎的なことをメモ。

データ型

  • 文字列
  • 数値
  • 真偽値 (true/false)
  • オブジェクト (配列、関数、組み込みオブジェクトなど)
  • undefined
  • null

比較演算子

等価演算子

  • === 厳密に等しい (オペランド同士が型変換すること無しに厳密に等しい)
  • == 等しい (オペランド同士の型が等しくなければ型変換する)

不等価演算子

  • !== 厳密に等しくない (オペランド同士が等しくない、型が等しくない、またはその両方)
  • != 等しくない (オペランド同士の型が等しくなければ型変換する)

真偽値

  • 文字列: 空文字以外ならtrue
  • 数値: 0かNaN以外ならtrue
  • オブジェクト: null以外ならtrue
  • undefined, null: false

良く使いそうなUI関数

関数の書き方

1. 普通の関数

2. 無名関数(nameless-)/匿名関数(anonymous-)

3. 即時関数(immediate-)

関数名は省略できるので以下のようにも書ける。こちらのほうが一般的。

[アフィリエイトシステム] アイデアメモ

アフィリエイトシステムの独自開発の相談あり。アフィリエイトシステムについて良く知らなかったので、ネットでざっくり情報収集してメモ書き。

コンバージョン発生までの流れ

  1. アフィリエイト広告がクリックされる
  2. 広告主のサイトや商品ページ・購入ページが表示される (ランディングページ)
  3. 商品の購入・申し込み完了ページが表示される (サンクスページ)
  4. コンバージョンが発生する (コンバージョンポイント)

アフィリエイト広告を経由したか判断するタイミング

1. 広告がクリックされたとき

  • リンク: アフィリエイトシステムのURL (出稿先のシステムのURL)
  • パラメータ: どのアフィリエータなのか、どの広告なのか

2. 広告主のページが表示されたとき

  • 広告主は自分のサイトにコードを埋め込む。
  • サイトに埋め込まれたコードによって「どのページから来たのか」と併せてユーザ情報を取得する。
  • 利点: 被リンクも集めることができる。
  • 欠点: サイトにコードを埋め込むのが手間。

購入や申し込みの判定

  • 広告や申し込みの完了時に表示されるページに広告主がコードを埋め込む。
  • 広告主により埋め込まれたコードが呼び出されたとき、アフィリエイトシステム側でそれまでに取得・保存しておいたユーザ情報と照合し、それが特定のアフィリエータの成果であると計上する。

トラッキング方法

1. Cookie

  • 広告を経由したタイミングでユーザにCookie発行する。
  • サンクスページに辿り着いたときにそのCookieを以っていれば広告を経由したと判断する。

2. IPアドレス

  • ユーザのIPアドレスが変わる可能性や共有されたIPアドレスを使う場合がある。
  • ブラウザから得られるその他の情報と組み合わせて照合する必要あり。

3. Flash

  • Flashクッキー(Shared Object)を用いる。

[PIC] シリアル通信における「同期式」と「非同期式」の違い

普段上位アプリ開発が主体の自分が、たまに組み込み開発に関わると解らないことばかりで困惑する。

たとえばシリアル通信。何を今更的な基本事項だけど覚え書き。

「シリアル通信」とは?
http://www.picfun.com/cpu12.html

  • 同期 – クロック信号がある
  • 非同期 – クロック信号は無い、スタートビットの長さからタイミングを測る

[C#] Dapperを使ってMS-Accessのデータベースを操作する

MS-Accessのデータベースを操作する簡単なアプリをC#で書きたい。なぜC#なのかというと、自分はC#に慣れているから。たぶんVBのほうがサンプルはいろいろありそうだけど、VBはほとんどやったことが無いので。

.NETの適当なクラスを使って書くんだろうなーと思ってネットを検索してみたら、Dapperというフレームワークを使うと楽らしい。

StackExchange/dapper-dot-net · GitHub
https://github.com/StackExchange/dapper-dot-net

ちょっと試してみる。

サンプルアプリ

環境はVisual Studio 2013。DapperはNuGet Package Managerを使ってプロジェクトに追加できる。

1. 新規プロジェクトを作成 (C# – Windows Forms Applications)。

2. [TOOLS]-[NuGet Package Manager]-[Manage NuGet Packages for Solutions…]メニューを選択。

0008

3. 右ペインで[Online]を選択し、左上のサーチボックスに”Dapper dot net”と入力。

0009

4. [Install]ボタンを押下してDapper dot netをインストール。

0010

5. [Close]ボタンを押下してダイアログボックスを閉じる。

するとSolution ExplorerのReferencesにDapperが追加されているはず。

0011

6. テストに使うデータベースに合わせて適当にコードを書く。

見通しが良いコードが書ける。いい感じ。

参考サイト

C# + MS Accessで、OLE DB接続にてDapperを使う – メモ的な思考的な
http://thinkami.hatenablog.com/entry/2014/06/17/045753

ORMとかdapper dot netについてお話させていただきました – きよくらの備忘録
http://kiyokura.hateblo.jp/entry/20131014/p1

参考までに、.NET標準のSystem.Data.OleDbを使った例が以下にある。

NonSoft – アクセスMDBを操作するサンプル(C#.NET)
http://homepage2.nifty.com/nonnon/SoftSample/CS.NET/SampleAccessMdb.html

[MySQL] 文字列検索に大小文字を区別する

MySQLの文字列型フィールドにおける大小文字区別について調べてみた。

テストデータの作成

テーブルを作る。

レコードを追加する。

普通に検索すると大小文字は区別されない

大小文字を区別するにはフィールド属性にBINARYを追加する

テーブル作成時にフィールド属性にBINARYを指定しても同様。

BINARY属性が付加された文字列はビット値として比較されるようになるらしい。

あるいは、検索時にBINARY指定を追加する

参考サイト

CHAR型とVARCHAR型 – MySQLのデータ型 – MySQLの使い方
http://www.dbonline.jp/mysql/type/index3.html

[Visual C++] ActiveXの作り方

Visual Studio 2013でActiveXを作成する手順メモ。

1. MFC ActiveX Control のプロジェクトを作成。とりあえずオプションは全てデフォルト。

create_activex_1
create_activex_2
create_activex_3
create_activex_4
create_activex_5

2. ビルドすると以下エラー発生。regsvr32の実行に権限が不足しているらしい。

コマンドプロンプトを管理者として実行してコマンドを手打ちしたら通った。

3. Test.idlからuuidを取得

4. テスト用にActiveXを埋め込んだHTMLファイルを作成。

5. IEでtest.htmlを表示したら動いた。

run_activex_1
0006
run_activex_2

これをたたき台にして必要な機能を追加していけばよいだろう。

参考サイト

VisualStudio2005によるActiveXコントロール開発 – LangEdge Weblog
http://www.langedge.jp/blog/?itemid=634

VS2005 の C/C++ でつくった MFC ActiveX コントロールを HTML へ貼り付ける – すがブロ
http://sugamasao.hatenablog.com/entry/20070516/1179339385

ActiveX コントロールの作成手順
http://msdn.microsoft.com/ja-jp/library/5xt905y8.aspx

スクリプトおよび初期化を実行しても安全として MFC コントロールにマークする方法
http://support.microsoft.com/kb/161873/ja

[PHP] スクリプトの実行タイムアウトを変更する

ローカルのXAMPP環境で、処理時間が長いスクリプトにブラウザからアクセスしたら、以下のメッセージでタイムアウトになった。

実行タイムアウトを変更するには

グローバルに変更したければ、php.ini の max_execution_time を変更する。

特定スクリプトだけ変更したければ、set_time_limit()関数を呼ぶ。引数は秒数。ゼロを指定するとタイムアウト無しになる。

参考サイト

PHPスクリプトの実行時間を制御する(max_execution_time) – hogehoge foobar Blog Style5
http://d.hatena.ne.jp/mrgoofy33/20100922/1285168658
いろんな方法がまとめられていてわかりやすい。

PHP: set_time_limit – Manual
http://php.net/manual/ja/function.set-time-limit.php

[PHP] ウェブサイトの画像やデータをファイルに保存させるには

サイト上の画像や動画、PDFファイルなどにブラウザがアクセスしたとき、それらをブラウザ画面に表示させる代わりにファイルへ保存させたいことがある。

そのためには、ファイルに保存するかどうかはブラウザの振る舞いなので、ブラウザがそのように振舞ってくれるように配慮してサーバーからデータを送出する必要がある。

具体的にはHttpの “Content-Disposition” レスポンスヘッダに “attachment” を指定すればよい (ちなみに “inline” を指定すると、ファイル保存されずにブラウザ画面に表示されるらしい)。”filename” でファイル名を指定すると、それがブラウザがファイル保存時のデフォルトファイル名になる。

サンプルコード

“Content-Length” は指定しなくてもほとんどのブラウザで問題なさそうだけど、指定しておくとダウンロード中の進捗表示(パーセント表示)が適切に行われるようになるかも。

[Docker] とりあえず動かす

Dockerイメージの操作

CentOSのDockerイメージを探す。

オフィシャルビルドの最新版をダウンロードする (リポジトリ:タグ指定)

ダウンロードしたイメージを一覧する

イメージを削除する

Dockerコンテナの作成と実行

まずは超簡単な例から。

コンテナを作成して”Test123″と表示する

実行中のコンテナを一覧する

全てのコンテナを一覧する

コンテナを削除する

参考サイト

「いまさら聞けないDocker入門」最新記事一覧 – ITmedia Keywords
http://www.atmarkit.co.jp/ait/kw/docker_nyumon.html