約 5,664,335 件
https://w.atwiki.jp/0x0b/pages/89.html
ハイパーテキスト転送プロトコル RFC 2616 WebブラウザとWebサーバの間でHTMLなどのコンテンツの送受信に用いられる通信プロトコル リクエスト-レスポンス型 トランスポート・プロトコルとして通常TCPを使用 基本的な考え方は非常に単純であり「何を」「どうして」ほしいのかを相手に要求する。「何を」に当たるのがURL、「どうして」がメソッドにあたる。 World Wide WebにおけるWebページなどのリソースは、Uniform Resource Identifierによって指定される。 ポート番号80をデフォルトとして使用する(送信時は8080)。 TLSで暗号化され、セキュリティを確保したHTTPは、HTTPSと呼ばれる(httpsは実際にはURIスキームの1つであり、実際のプロトコルにはHTTP over SSL/TLSが用いられる)。 HTTP は基本的にサーバが状態を保持しない (stateless) プロトコルだが、データベースなどを使用するWebアプリケーションにおいては状態保持が必要だったため、そのためにいわゆる Cookie とよばれる機構が Netscape Communications Corporation によって導入された。Cookie を使用することによって状態を管理し、"セッション" を維持することが可能になる。 HTTPの拡張プロトコルとしてWebDAVがある。 UPnPでは、HTTPをUDP上で使用するHTTPUや、マルチキャストで使用するHTTPMUが規定された。 HTTP/0.9 URLのみの簡単なやりとり HTTP/1.0 NNTPやSMTPのような各種ヘッダが定義 HTTP_Cookieなどの利用 HTTP/1.1 複数データを転送するためのキープアライブ(keep-alive)機能やプロキシなどの利用も想定された仕様 バーチャルホストをサポートした。インターネット人気に伴い多くの企業がWebサイトを持ち始めたが、当時ではまだまだ企業が自前のWebサーバを運用するのは人員、効率の問題で難しかったためISPのサーバでホスティングをしていた。当時はまだ一社ごとに専用サーバを用意するほどのことでもないため一台のサーバで複数のWebサイトを運用していた。 しかしバーチャルホストには問題がある。例えばある1台のサーバに foo.example.com と bar.example.com という二つの仮想Webサーバがあるとする。ここではクライアントは http //foo.example.com/index.html にアクセスしたいとする。そのためにはまず foo.example.com をIPアドレスに解決するためDNSサーバに問い合わせ、そのサーバにアクセスし GET index.html を要求する。しかしサーバ側のIPアドレスは foo.example.com と bar.example.com 共におなじIPアドレスである。もし foo.example.com にも bar.example.com にも index.html というファイルが存在すればクライアントはどちらのサーバにアクセスしたのかわかるすべがない。 これを解決するにはそれぞれにIPアドレスを付与することで解決できるが、IPv4の資源を無駄にすることになる。 HTTP/1.1ではこれを解決するためにHostヘッダを追加した。 HTTP/1.0のヘッダ GET /index.html HTTP/1.0 HTTP/1.1のヘッダ GET /index.html HTTP/1.1 Host foo.example.com 動作 通信の開始 他のプロトコル同様クライアント側とサーバ側ではHTTPの役割が大きく異なる。HTTP通信を開始できるのはクライアント側のみである。 クライアント側はサーバにリクエストを送り、サーバはクライアントにレスポンスを返すのが最も典型的なHTTPのやりとりである。 接続 システム間でメッセージをやりとりするにはTCP接続を確立させる必要がある。 HTTP/0.9ではクライアントのリクエストごとにTCP接続を確立させる必要があったが、これは当時のWebサイトがシンプルなテキストベースであることが多かったためである。近年ではJavaScriptやアニメーション画像など、多数のオブジェクトが埋め込まれたWebサイトが一般的となってきているが、これら全てのオブジェクトを取得するたびにTCP接続を確立するのはサーバやネットワークに大きな負担を強いるため、HTTP/1.1では持続的接続がサポートされることとなった。ただしこの機能が利用できるのはサーバ側がその要求を許可した場合のみである。 パイプライン クライアントは前のリクエストに対するサーバの応答を待たずに別のリクエストを発行できる。 メソッド HTTPでは8つのメソッドが定義されている。ただし実際のHTTP通信ではGETとPOSTメソッドだけで殆どを占める。 HTTPメソッドの一覧 メソッド HTTP/0.9 HTTP/1.0 HTTP/1.1 GET ○ ○ ○ POST ○ ○ PUT △ ○ HEAD ○ ○ DELETE △ ○ OPTION ○ TRACE ○ CONNECT ○ GET 指定されたURIのリソースを取り出す。HTTPの最も基本的な動作で、HTTP/0.9では唯一のメソッド。 POST GETとは反対にクライアントがサーバにデータを送信するメソッドである。Webフォームや電子掲示板、Wikiなどに投稿する。GETの場合と同じくサーバはクライアントにデータを返すことができる。 PUT 指定したURIにリソースを保存する。URIが指し示すリソースが存在しない場合は、サーバはそのURIにリソースを作成する。画像のアップロードなどが代表的。 DELETE 指定したURIのリソースを削除する。 OPTION サーバを調査するメソッド。例えばサーバがサポートしているHTTPのバージョンなどを調査できる。 HEAD GETと似ているがサーバはHTTPヘッダのみ返す。クライアントはWebページを取得せずともそのWebページが存在するかどうかを知ることが出来る。例えばWebページのリンク先が生きているか検証するときなどにリンク先のデータを全て取得することなく調査することが出来る。 TRACE サーバまでのネットワーク経路をチェックできる。サーバは受け取ったメッセージのそれ自体をレスポンスのデータにコピーして応答する。WindowsのTracertやUNIXのTracerouteとよく似た動作。 CONNECT 暗号化したメッセージをプロキシで転送する際に用いる。 サーバの連携 バーチャルホスト リダイレクト 301 MovedというステータスコードとURIを受け取りクライアントはこの受け取ったURIに再度GETを送る。 クッキー(HTTP_Cookie) HTTPメッセージ クライアントからのHTTPリクエストは3つの要素から構成される。それぞれメソッド、URI、HTTPのバージョンでありスペースで区切られている。 下にもっとも単純な、クライアントとサーバ(www.google.co.jp 80)とのHTTPプロトコルのやり取りの例を挙げる。 クライアントのリクエスト GET / HTTP/1.0 GETがメソッド、URIは / 、バージョンはHTTP/1.0であることを示す。 URIは/でルートリソースを対象にしたリクエストであることを示している。TRACEなど特定のサーバを対象としないリクエストの場合には*が表示される。 サーバのレスポンス HTTP/1.0 200 OK Cache-Control private Content-Type text/html Set-Cookie PREF=ID=72c1ca72230dea65 LD=ja TM=1113132863 LM=111 3132863 S=nNO7MIp W2o7Cqeu_; expires=Sun, 17-Jan-2038 19 14 07 GMT; path=/; domain=.google.co.jp Server GWS/2.1 Date Sun, 10 Apr 2005 11 34 23 GMT Connection Close html head meta http-equiv="content-type" content="text/html; charset=Shift_JI S" title Google /title style !-- ・・・以下省略 上のリクエストのGETにあたる部分をメソッドといい、 HTTP/1.0では、GET, HEAD, PUT, POST, DELETE, LINK, UNLINK、 HTTP/1.1ではさらに、OPTIONS, TRACEがある。 GETメソッドのレスポンスにはヘッダ情報のあとに改行が挟まれ、コンテンツ本体が送られる。 HEADメソッドのレスポンスにはコンテンツサイズや更新日時などの情報を含むヘッダのみが送られる。 また、リクエストの2行目以降はヘッダを送る。 HTTPヘッダフィールド ヘッダの各要素は フィールド名 内容 のペアで構成される。 ブラウザの情報を表すUser-Agent、使用候補言語を表すAccept-Language、他ページへのリンクを辿った場合にそのリンク元ページのURLを表すRefererなどが代表的なフィールドである。 なお、リクエスト時のHostヘッダはHTTP/1.1では必須であるが、HTTP/1.0では無くても良い。 但し、サーバがバーチャルホストを利用している場合は、Hostヘッダが無いとリソース取得に失敗するので、たとえHTTP/1.0を使用していてもHostヘッダを付加しなければならない。 HTTPヘッダフィールドの一覧 リクエストヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Acceptクライアントの受け入れ可能コンテンツタイプを示す○○ Accept-Charsetクライアントの受け入れ可能文字セットを示す○○ Accept-Encodingクライアントの受け入れ可能文字エンコーディングを示す○○ Accept-Languageクライアントの受け入れ可能言語を示す○○ Authorizationクライアントの認証情報を示す○○ Cookieクライアントの状態管理情報をサーバに返す Cookie2HTTP/1.1のSet-Cookie2ヘッダの受け入れ可能をサーバに知らせる Expectクライアントがサーバに期待する動作を示す○ Fromリクエスト発行者個人の情報を示す。一般的に電子メールアドレスを使用する○○ Host要求しているオブジェクトがあるホストを示す○ If-Matchif文を用い条件が真の場合のみリクエストを処理するようサーバに要求する○ If-Modified-Since指定日及び指定時刻以降にオブジェクトが変更されている場合のみリクエストを処理するよう要求する○○ If-None-MatchIf-Matchの逆で条件が真でない場合のみリクエストを処理する要求○ If-Range条件が真の場合のみ指定したオブジェクトの範囲を返すようサーバに要求する○ If-Unmodified-SinceIf-Modified-Sinceの逆で真でないときのみ実行する○ Max-Forwardsリクエストの中間システム経由数を最大いくつまでかを指定する○ Proxy-Authorizationクライアントがプロキシサーバに対して自身の認証を行う○ Rangeオブジェクト全体でなくリソースの一部を要求する○ Refererリクエストの出所を示す。一般的にはユーザの辿ったWebページのURLが用いられる。○○ TEレスポンスの受け入れ可能転送エンコーディングを示す○ レスポンスヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Accept-Rangesオブジェクトの一部に対するリクエストをサーバが受け入れ可能か示す○ Ageオブジェクトの経過時間を秒単位で返す○ AllowオブジェクトがサポートするHTTPメソッドを示す○○ ETagオブジェクトのエンティティタグ値を示す○ Locationオブジェクトの場所を示す○○ Proxy-Authenticateプロキシサーバがクライアントに認証を要求するときに用いる○ Retry-Afterリクエストの再試行をいつ行うかをクライアントに通知する○○ Serverサーバのベンダー名、バージョン番号を占めす○○ Set-Cookie2サーバがクライアントにCookieを送信するときに用いる Varyサーバのレスポンス内容を決定する際にリクエストURI以外に使用したHTTPヘッダのリストを示す○ WWW-Authenticateクライアントに対してリクエストの再発行を要求する。認証情報も含まれる○○ 一般ヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Cache-Controlメッセージの経由する中間キャッシュの動作を指示する○ Connection中間システムが転送すべきでないヘッダのリストを示す○○ Dateメッセージの作成日時を示す○○ Pragmaメッセージに関する追加情報を示す○○ Trailerメッセージボディの後に追加のヘッダーが表れることを示す○ Transfer-Encodingクライアントの転送を目的としたオブジェクトのエンコーディングを示す○ Upgrade通信相手に別のプロトコルにアップデートするよう要求する○ User-AgentクライアントのWebブラウザなどの情報を示す○○ Warningメッセージに関する追加情報を示す。通常はキャッシュの問題を警告するときに使われる○ エンティティヘッダ ヘッダ概要HTTP/0.9HTTP/1.0HTTP/1.1 Content-Encodingオブジェクトのエンコーディングを示す○○ Content-Languageオブジェクトの言語(人間の言語)を示す○○ Content-Lengthオブジェクトのサイズをバイト単位で示す○○ Content-Locationオブジェクトの場所を示す○ Content-MD5オブジェクトのメッセージダイジェストを運ぶ○ Content-Rangeメッセージボディで運ばれるオブジェクトの範囲を示す○ Content-Typeオブジェクトのタイプを示す○○ Expiresオブジェクトの有効期限の日時を示す○○ Last-Modifiedオブジェクトが最後に変更された日時を示す○○ Accept サーバのレスポンスに含まれるメッセージボディで受け入れることが出来るコンテンツタイプと各コンテンツタイプの相対的な優先度を指定するリクエストヘッダ。指定できるコンテンツタイプはIANAによって定義されている。 Accept text/plain; q=0.5, text/html, text/x-dvi; q=0.8, text/x-c 上記のようにAcceptヘッダには行をわけて複数のコンテンツタイプを指定できる。上記の例はいずれの4のコンテンツタイプのいずれも受け入れ可能であることを示す。0.5や0.8といった数字は品質係数で0~1の範囲の数値である。数値の指定がなければ1.0となる。 text/plain; q=0.5 text/html text/x-dvi; q=0.8 text/x-c Accept-Charset レスポンスで返されるメッセージボディの文字コードを指定するリクエストヘッダ。Acceptと同じく複数指定でき品質係数も設定できる。定義済み文字セットはIANAが管理している。 Accept-Charset unicode, *; q=0.8 この例だとクライアントはUnicode文字セットを優先的に希望しているが他の文字セットとの相対優先度0.8で受け入れている。ただしサーバからのレスポンスのHTTPヘッダそのものの文字コードは常にISO-8859-1である。 Accept-Encoding Accept-Language レスポンスの言語(人間の言語)に対する優先度を指定する。言語コードはISO-639の2文字の省略コードを用いる。書き方は他のAccept-群と変わらず。 Accept-Language en-gb, en; q=0.8 上記の例はまずイギリス英語を要求し、利用できない場合はその他の英語を要求する。 Accept-Ranges Acceptで始まる他のヘッダフィールドと違いレスポンスヘッダーである。現在の仕様では2つの指定方法しかない。 Age リソースの推定経過時間を表示するレスポンスヘッダ。キャッシュサーバーはAgeヘッダの値からキャッシュしたリソースが有効かどうかを判定する。 Allow Authentication-info ユーザ認証のやりとりの最後で用いられる、成功したレスポンスのサーバが含めることの出来るレスポンスヘッダー。 Authorization サーバに対するクライアント自身の認証を行うことが出来る。 Cache-Control キャッシングの動作を指定するためのマスターヘッダ。 Connection Content-Encoding Content-Language リソースを英語などの自然言語で示すのに使われる。言語の指定はAccept-Languageヘッダと同じ。 Content-Length Content-Location Content-MD5 メッセージボディが変更されず宛先に届くことを保証する。MD5アルゴリズムを実行する。ただし悪意の改ざんに対しては当然MD5も改ざんされるのであまり機能はしない。どちらかといえば偶発的な変更の保証をしている。 Content-Range ダウンロードの再開に用いられる。 Content-Type メッセージボディに含まれるオブジェクトタイプを示す。次の例はリソースがテキストファイル、文字セットはISO-8859-4を使用していることを示している。 Content-Type text/plain; Charset=ISO-8859-4 Cookie クライアントがHTTP状態管理を望む場合にサーバから受け取ったクッキーを以後のリクエストに次の例のようなヘッダーを付加する。 Cookie $Version="1"; NAME="VALUE"; $Path="/shopping"; $domain="www.shop.com"+ $Port="80" $VersionはHTTPのバージョン、NAMEはクッキーの名前である。$から始まるクッキー名は使用が禁止されている。 Cookie2 基本的にCookieヘッダーとCookie2ヘッダーは別物である。 Date サーバがメッセージを生成した日時を示す。リソースの時間を示すLast-Modifiedヘッダーとは区別する必要がある。 HTTP/1.1では次のような形式を用いるようRFC1123で定義されている。 Date Sun, 06, Nov 1994 08 49 37 GMT HTTP仕様ではレスポンスにDateヘッダーを含めることを求めている。ただしレスポンスのステータスがサーバエラーの場合にはDateヘッダーは返らない。 ETag 主にキャッシングのパフォーマンスを向上する目的で使われる。 Expect サーバに対して特定の動作の期待を知らせる。用途としてはクライアントがサーバに対して100 Continueステータスを返すことを期待する場合に使われる。 Expect 100-continue サーバが期待に応じれない場合は417 Expectation Failedを返す。クライアントがいくつかのプロキシ経由で通信している場合、各プロキシサーバはExpectヘッダの一切の修正を許されない。 Expires オブジェクトの有効期限を示す。このヘッダで指定された日時までキャッシュはレスポンスのコピーを保持し、リクエストに対するレスポンスとして返すことが出来る。サーバがオブジェクトのキャッシュを望まない場合にはExpiresヘッダに過去の日時を設定することが多い。また、HTTP仕様では1年以上先の日時は設定できない。 Expires Thu, 28 Aug 2010 16 00 00 GMT Cache-Controlヘッダのmax-ageディレクティブはExpiresヘッダより優先されるため注意が必要である。 From リクエストを発行したユーザを特定することが出来る。1990年代では電子メールアドレスを設定することが多かったが、迷惑メールの問題もあり現在では殆ど使われていない。 From hoge@hogehoge.com Host 主にレンタルサーバのサポートを目的としてHTTP/1.1で導入された。現在ではHostヘッダを利用できない場合レンタルサーバのウェブサイトとまともな通信が出来ないと言ってよい(詳細はHTTP#歴史を参照)。 If-Match クライアントのリクエストを条件付きのリクエストにするために使われる。サーバは一定の条件が真であった場合のみリクエストを受け入れることが出来る。例えばウィキペディアを編集する際、記事のソースを取得し、書き換える際の間に別のユーザが既に編集していないかを判断するときなどに用いられる。 「if文」も参照 利用者:HogeがHTTPの記事を取得。ETagは1234 利用者:HageがHTTPの記事を取得。ETagは1234 利用者:HogeがHTTPのETagを再度取得。先ほど取得したETag 1234と現在のETag 1234が一致。 利用者:HogeがHTTPの記事を編集。ETagは1256になる。 利用者:HageがHTTPのETagを再度取得。先ほど取得したETagと現在のETagはマッチせず。 サーバは利用者:Hageの書き込みを拒否。 If-Modified-Since このヘッダーで指定された日時以降にオブジェクトが変更されている場合のみリクエストに応答するようサーバに要求する。リソースの削減に効果がある。 If-None-Match If-Matchと逆で条件が真でない場合のみリクエストを処理するよう要求する。 If-Range クライアントがキャッシュにオブジェクトの一部分を持っている場合にパフォーマンスを向上できる。 If-Unmodified-Since If-Modified-Sinceの逆の働きをする Last-Modified サーバオブジェクトの最終更新日時を示す。クライアントはこのヘッダを利用しIf-Modified-Sinceヘッダ等と組み合わせることによって効果を発揮する。 Location サーバがクライアントにリダイレクト先URLを知らせる際に用いられる。一般的にステータスコードが3xx代のレスポンスと共に使われるが201 Createdのレスポンスでも使うことが出来る。Content-Locationヘッダと名前が似ているが全く関係のない別のヘッダであるため注意。 Max-Forwards プロキシサーバ等を経由する際の最大ホップ数を指定する。二重ループなどでサーバから応答が得られない場合の問題解決の際、OPTIONメソッドやTRACEメソッドと共に用いられる。 HTTPステータスコード ステータスコードはクライアントのリクエストが成功したかどうかを示した上で追加情報を提供するいずれも3桁の数字から成る。具体的には100-199が情報提供、200-299が成功を示す。300-399はリダイレクト、400-499はエラーを示す。 セキュリティ技術 Basic認証 HTTP/1.1でBasic認証が定義されており最も単純なセキュリティ技術である。しかし仕様書を読むと定義を書いた著者自身が認証技術に疎いことがよくわかる。『HTTPプロトコル セキュア&スケーラブルなWeb開発』の著者は「基本認証を用いるくらいならなにも使わない方がまし」と著書に書いている。通常サーバは401ステータスコードで応答する。 行末文字はWindowsと同じCRLF。 RFC 2818 - HTTP Over TLS RFC 2817 - Upgrading to TLS Within HTTP/1.1 RFC 2616 - HTTP/1.1 ハイパーテキスト転送プロトコル -- HTTP/1.1 RFC 2068 - HTTP/1.1(初版,RFC 2616 によって obsolete) TS X 0085 2004 - ハイパテキスト転送プロトコル HTTP/1.1 標準仕様書(TS) RFC 1945 - HTTP/1.0 HttpTea Freeware HTTP Logger Studying HTTP
https://w.atwiki.jp/coccet/pages/182.html
Ab~Ac Ad~ Ab 1076 abandon 490 ability 2330 abnormal 2603 aboard 61 above 1894 abroad 1865 absence 2870 absent 1840 absolute 2249 absolutely 624 absorb 2220 abstract 2898 absurd 2205 abundant 1636 abuse Ac 445 academic 1413 accelerate 3289 accent 452 accept 565 access 660 accident 2883 accommodate 1608 accompany 2675 accomplish 285 account 136 according 1301 accumulate 1797 accuracy 1071 accurate 1667 accuse 2780 accustom 2466 ache 481 achieve 326 acid 1535 acknowledge 3138 acquaint 1284 acquire 211 across 218 act 347 action 1615 activate 563 active 290 activity 580 actually 2380 acute
https://w.atwiki.jp/netcommons/pages/15.html
プロジェクトサイトのダウンロードページから各バージョンの圧縮ファイルがダウンロードできます。 http //www.netcommons.org/ このドキュメントではバージョン2.1.0.1のzip圧縮されたファイルを前提に説明しています。 http //www.netcommons.org/index.php?action=cabinet_action_main_download block_id=93 room_id=1 cabinet_id=1 file_id=522 upload_id=1222
https://w.atwiki.jp/tekubari/pages/19.html
ご近所.comのTM企画 ■ご近所.comについて ご商売をなさっている皆様はお店の情報をどのようにして地域の皆様に発信していますか? 折込広告、新聞広告でしょうか? それとも手配りのチラシでしょうか? 一方、お店に来ていただくお客様方は、 ○パソコンの普及で多くのご家庭でネットに接続できるようになりました。 ○携帯電話を持っていない人を探すほうが難しい時代です。 この様にパソコン、携帯を使って情報を取得していることも事実です。 そこで、新聞離れの世帯を含め、地域外の情報も手軽に入手できる方法がないかと立ち上げたのが『ご近所.com』です。お店のPR用(HPのない方はHP)としてご利用いただくサイトです。 商店街の皆様には、 このパソコン、携帯を活用して、これらのチラシやメニュー、店頭POPを再利用することを考えて見てはいかがでしょうか? また、新規に情報を発信してみてはいかがでしょうか? ★ご利用は簡単です。 『ご近所.com』にお店の情報(チラシやメニュー、店頭POPほか)を掲載、又は作成していただければ、この 『ご近所.com』にお店専用のサイト(1ページ)と、携帯サイト(QRコード付)をお作りします。 チラシやメニュー、店頭POPなどの作成はこちら(TM企画)でお手伝いさせていただきます。それを各お店でダウンロードし、ご家庭のプリンタ等で印刷してご利用(手配りや店頭に貼る)いただきます。 また、新聞に折込みたい、数百枚欲しい方には印刷の手配もいたします。 TM企画 〒021−0031 岩手県一関市青葉町1丁目4−33 TEL:0191−23−3397 E-mail:tirasi-net@amail.plala.or.jp 担当:岩渕 最新のチラシ 〈ブログ2〉 #blogsearch /
https://w.atwiki.jp/0x0b/pages/102.html
リファレンスグローバルオブジェクト 関数 文 算術演算子演算子の優先順位 コメント E4X (拡張) 予約語 非推奨の機能EDITWATCH リファレンス プログラミング経験(C、 Visual Basicなどの言語)があれば役に立ちますが、必須ではない JavaScriptという言語は、幅広い環境(ブラウザ、サーバーサイドスクリプトなど)で使われることが意図されている このリファレンスは、ほとんどの部分で、環境に依存せず、ウェブブラウザ環境をターゲットにしていない デモンストレーションの目的で、println 関数を使用 この関数は、JavaScript の一部ではないので、環境ごとに、与えた値を表示する関数として独自に定義する必要がある 例:ウェブブラウザでは、println 関数は以下のように定義されるでしょう。 function println(string) { window.alert(string); } 他の環境で、同等の関数を独自に定義することは、読者のために課題として残しておきます 文書の約束事 このリファレンスには、文書中の主題の適切なもしくは共通な利用法を具体的に説明するための構文の説明の部分があります。これらの部分では、文字通りそのままであることを表すすべてのテキストリテラルは 3 点リーダを除いてイタリックにはなっていません。イタリックの単語はユーザ定義の名前や 文 (statements) を表します。角括弧 ([ および ]) で囲まれた部分 はオプションです。コンマで区切られ、3 点リーダ (...) を含む一連の並びは、それが一覧であり、最初の項目を除いた項目のすべてがオプションであることを示します (例: "param1, param2, ..., paramN" では param1 のみが必須)。 JavaScript の歴史 Mozilla ベースのブラウザの最近のバージョンは、JavaScript のより新しいバージョンをサポートしています。以下の表は、Mozilla べースブラウザ の異なるバージョンでサポートされる JavaScript のバージョンを一覧にしています。 最低でも JavaScript 1.5 をサポートしないブラウザは、今日ではとても珍しくなっています。JavaScript 1.5 が紹介されたのは、1999 年にさかのぼります。歴史的な情報に興味があるならば、Wikipedia の HTTP Status InternalError(500) (click for details) の記事を参考にしてください。 JavaScript (SpiderMonkey) のバージョン ブラウザのリリースバージョン Gecko のバージョン JavaScript 1.5 Navigator 6.0, Mozilla Application Suite, Firefox 1.0 Gecko 0.6x-1.7 JavaScript 1.6 Firefox 1.5 Gecko 1.8 JavaScript 1.7 Firefox 2 Gecko 1.8.1 JavaScript 1.8 Firefox 3 Gecko 1.9 JavaScript の情報の所在 コア言語機能 (そのほとんどの部分は純粋な ECMAScript) についての JavaScript の文書としては以下のものがあります。 Core JavaScript 1.5 ガイド Core JavaScript 1.5 リファレンス 初めて JavaScript に触れる方は ガイド から読み始めるのがよいでしょう。基本的なところをしっかり理解している方は リファレンス を利用し、個々のオブジェクトや言語コンストラクタについてのより詳しい情報を得ることができます。 グローバルオブジェクト Global ObjectsEDITWATCH 目次 標準グローバルオブジェクト(カテゴリ別) コンストラクタ エラー 非コンストラクタ関数 その他 標準グローバルオブジェクト(アルファベット順) タグ ファイル ページ通知 オフ この章では JavaScript のオブジェクトの全てを、それらのメソッドやプロパティと共に文書化しています。 ここでの「グローバル・オブジェクト (global objects) 」という言葉をグローバルオブジェクト (global object) と混同しないでください。ここでは、グローバルスコープ中のオブジェクトのことをグローバル・オブジェクトと言っています。グローバルオブジェクト自身はグローバルスコープ中での this によってアクセスすることができます。実際のところ、グローバルスコープはグローバルオブジェクト(継承されたプロパティがあればそれらも含む)のプロパティから成り立っています。 標準グローバルオブジェクト(カテゴリ別) コンストラクタ Boolean Number String Array Object Function RegExp Date (このカテゴリでの他のものと文字通り同じではありません) エラー Error EvalError RangeError ReferenceError SyntaxError TypeError URIError 非コンストラクタ関数 decodeURI decodeURIComponent encodeURI encodeURIComponent eval isFinite isNaN parseFloat parseInt その他 Infinity Math NaN undefined 標準グローバルオブジェクト(アルファベット順) Array Boolean Date decodeURI decodeURIComponent encodeURI encodeURIComponent eval Error EvalError Function Infinity isFinite isNaN Math NaN Number Object parseFloat parseInt RangeError ReferenceError RegExp String SyntaxError TypeError undefined URIError グローバルスコープ中の他のオブジェクトは、ユーザースクリプトによって作られるか、ホストアプリケーションによって提供されます。Gecko ベースのブラウザで利用可能なホストオブジェクトは Gecko DOM Reference で文書化されています。 DOM とコア JavaScript との違いに関する詳しい情報は、文書 The DOM and JavaScript をご覧ください。 関数 arguments 文 この章は JavaScript のすべての文 (statements) を説明しています。JavaScript の文は適切な構文のもと使われるキーワードから成ります。1 つの文が複数行にわたることもあります。それぞれの文がセミコロンで分けられていれば、1 行に複数の文が現れることもあります。 文 説明 ブロック ブロック文は 0 個以上の文をグループ化するのに使われます。ブロックは中括弧 (波括弧) の組で区切られます break 現在のループ、switch、またはラベル文を終了し、プログラムの制御を、終了した文の次の文へと移します const 読み取り専用の名前付き定数を宣言します continue 現在のループ、またはラベル付きループの現在反復中の文の実行を終了し、そのループの実行を、その次の反復を用いて継続します do...while 指定された文を、テスト条件が false に評価されるまで実行するループを作成します。条件は文を実行した後に評価されます。結果として、指定された文は少なくとも 1 回は実行されます export 署名付きスクリプトが、ほかの署名付きまたは署名なしスクリプトに、プロパティ、関数、およびオブジェクトを提供することを可能にします。この機能は ECMA-262 第 3 版には含まれていません for 丸括弧で囲まれ、セミコロンにより分けられた、3 つの省略可能な式で構成されるループを作成します。式の後にはループの中で実行される文が続きます for...in 指定された変数を、オブジェクトの全プロパティに対して任意の順序で反復します。異なるそれぞれのプロパティに対し、指定された文が実行されます for each...in 指定された変数を、オブジェクトの全プロパティの値に対して反復します。異なるそれぞれのプロパティに対し、指定された文が実行されます function 指定されたパラメータで関数を宣言します if...else 指定された条件が true なら文を実行します。条件が false なら、もう一方の文を実行することがあります import スクリプトが、プロパティ、関数、およびオブジェクトを、その情報をエクスポートした署名付きスクリプトからインポートすることを可能にします label 文に、break または continue 文を使って参照できる識別子を与えます let 局所変数を宣言します。任意で値を代入して初期化できます return 関数により返される値を指定します switch 式を評価し、その式の値が case のラベルと一致するなら、その case に関連付けられた文を実行します throw ユーザー定義の例外を投げます try 試みる文のブロックを印付け、例外が投げられるのなら、対処を指定します var 変数を宣言し、任意でそれをある値に初期化します |while|テスト条件が true に評価される間、指定された文を実行するループを作成します。条件は文を実行する前に評価されます。 with文に対するスコープチェーンを拡張します| 算術演算子 (+, -, *, /, %, ++, --, unary -) 算術演算子は、数値(リテラル、変数の両方)を演算対象とみなし、単一の数値を返します。 代入演算子 (=, +=, -=, *=, /=, =, =, =, =, |=, ^=) 代入演算子は、右オペランドの値を左オペランドに代入します。 ビット演算子 ( , |, ^, ~, , , ) ビット演算子は、演算対象を 32 ビットの(0 と 1 の)ビットの並びとして扱い、標準的な JavaScript の数値を返します。 比較演算子 (==, !=, ===, !==, , =, , =) 比較演算子は、演算対象を比較し、比較が真であるかどうかを基準とした論理値を返します。 論理演算子 ( , ||, !) 論理演算子は、基本的に真偽(論理)値とともに用いられます。そのときは、真偽値を返します。 文字列演算子 (+ and +=) 文字列演算子は、2 つの文字列の値を結合し、2 つの文字列を組み合わせた別の文字列を返します。 メンバー演算子 (object.property and object["property"]) メンバー演算子は、オブジェクトのメソッド、または、プロパティへのアクセスを提供します。 特殊演算子 他のカテゴリには入らない特殊な演算子です。 条件演算子 (condition ? ifTrue ifFalse) 条件演算子は、条件の論理値を基にして、2つの値のうちの 1 つ を返します。 コンマ演算子 (,) コンマ演算子は、複数の式を単一の文で評価し、その最後の式の結果を返します。 delete 演算子 (delete) delete 演算子は、オブジェクトを削除します。 function 演算子 (function) function 演算子は、関数を定義します。 get 演算子 (get) get 演算子は、ゲッタにプロパティを定義します。 in 演算子 (in) in 演算子は、オブジェクトが指定したプロパティを持っているどうかを判別します。 instanceof 演算子 (instanceof) instanceof 演算子は、オブジェクトが他のオブジェクトのインスタンスかどうかを判別します。 let 演算子 (let) let 演算子は、その式でのみ有効である変数に値を一時的に代入します。 new 演算子 (new) new 演算子は、コンストラクタのインスタンスを生成します。 set 演算子 (set) set 演算子は、セッタにプロパティを定義します。 this 演算子 (this) this 演算子は、実行コンテキストを参照します。 typeof 演算子 (typeof) typeof 演算子は、指定したオブジェクトの型を判別します。 void 演算子 (void) void 演算子は、式の戻り値を捨てます。 yield 演算子 (yield) yield 演算子は、ジュネレータにおいてそのジュネレータのイテレータによって返されるものを決定します。 演算子の優先順位 演算子の優先順位は、演算子が評価される順番を定義します 概要 演算子の優先順位は、演算子が評価される順番を決定します。より高い優先順位の演算子は最初に評価されます。 よくある例 3 + 4 * 5 // 23 を返す 乗算演算子 ("*") は加算演算子 ("+") より高い優先順位を持つので、最初に評価されます。 結合性 結合性は、同じ優先順位の演算子を処理する順番を決定します。例えば、次のような式を考えてみましょう。 a OP b OP c 左結合性 (左から右) とはこれを (a OP b) OP c というように処理するという意味であり、対して右結合性 (右から左) はこれを a OP (b OP c) というように解釈するという意味です。代入演算子は右結合性なので、あなたは、 a = b = 5; と書くことで、a と b が値 5 を得るという期待通りの結果を得ることができます。これは代入演算子が代入した値を返すためです。まず b に 5 がセットされます。そして a に b の値がセットされるのです。 表 以下の表は優先順位の最も高いもの (1) から最も低いもの (17) の順に並べられています。 優先順位 演算子の種類 結合性 個々の演算子 1 メンバ 左から右 . [] new 右から左 new 2 関数呼び出し 左から右 () 3 インクリメント n/a ++ デクリメント n/a -- 4 論理 NOT 右から左 ! ビットごとの NOT 右から左 単項の + 右から左 + 符号反転 右から左 - typeof 右から左 typeof void 右から左 void delete 右から左 delete 5 乗算 左から右 * 除算 左から右 / モジュロ 左から右 % 6 加算 左から右 + 減算 左から右 - 7 ビットシフト 左から右 8 大小関係 左から右 = = in 左から右 in instanceof 左から右 instanceof 9 同値関係 左から右 == != === !== 10 ビットごとの AND 左から右 11 ビットごとの XOR 左から右 ^ 12 ビットごとの OR 左から右 | 13 論理 AND 左から右 14 論理 OR 左から右 || 15 条件 右から左 ? 16 代入 右から左 = += -= *= /= %= = = = = ^= = 17 コンマ 左から右 , コメント コードコメント (// と /* */) 概要 スクリプトの挙動を説明するための作者によるメモ。コメントはインタプリタには無視されます コメント 実装されたバージョン JavaScript 1.0, NES2.0 ECMA バージョン ECMA-262 構文 /* 複数行のコメント内容 */ 説明 JavaScript は Java 形式のコメントをサポートしています。 1 行だけのコメントは 2 重のスラッシュ (//) から始まります。 複数行にまたがるコメントは /* から始まり */ で終わります。複数行コメントは入れ子にさせることができません。 例 例 1 行コメント // これは 1 行コメント var intAge = 37; // これはもう 1 つのコメント 例 複数行コメント /* これは複数行コメント。 どんな長さでもかまわず、書きたいことを何でもここに書ける。 ただし他の複数行コメントは含められない。 */ E4X (拡張) グローバル文 標準 XML 名前空間 グローバル関数 isXMLName() グローバルコンストラクタ Namespace() QName() XML() XMLList() 予約語 Reserved WordsEDITWATCH 目次 ヘッダーがありません タグ ファイル ページ通知 オフ 以下は予約語であり、変数、関数、メソッド、あるいはオブジェクトの識別子として用いることはできません。以下は ECMAScript の仕様で既存のキーワードとして予約されているものです。 break case catch continue default delete do else finally for function if in instanceof new return switch this throw try typeof var void while with 以下は ECMAScript の仕様で将来のキーワードとして予約されているものです。 abstract boolean byte char class const debugger double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile ECMA-262 では仕様となっていませんが、const、export、import は Mozilla では実装されているので注意してください。 さらに、null は Null リテラル として ECMAScript の仕様で予約されており、true と false は Boolean リテラルとして ECMAScript の仕様で予約されています。 非推奨の機能EDITWATCH 目次 RegExp オブジェクトのプロパティ RegExp メソッド エスケープシーケンス タグ ファイル ページ通知 オフ この付録リストは、JavaScript 1.5 では非推奨の機能です。 RegExp オブジェクトのプロパティ 以下のプロパティは非推奨です。 プロパティ 説明 $1, ..., $9 (もしあれば)括弧で囲まれた部分文字列にマッチします $_ input プロパティを参照してください。 $* multiline プロパティを参照してください $ lastMatch プロパティを参照してください $+ lastParen プロパティを参照してください $` leftContext プロパティを参照してください $ rightContext プロパティを参照してください input 正規表現がマッチする対象となる文字列 lastMatch 最後にマッチした文字 lastParen (もしあれば)最後に括弧で囲まれた部分文字列のマッチ leftContext 一番最近のマッチに先行する部分文字列 rightContext 一番最近のマッチの後に続く部分文字列 以下は、 現在、RegExp インスタンスのプロパティであり、もはや、RegExp オブジェクトのプロパティではありません。 プロパティ 説明 global 対象文字列で可能なマッチ全てに対して正規表現をテストするか、それとも、最初のマッチに対してのみテストするどうかのフラグ ignoreCase 文字列でのマッチを適用する際に、大文字と小文字の違いを無視するかどうかのフラグ lastIndex 次のマッチが始まる位置 multiline 複数行に渡って文字列を検索するかどうかのフラグ source パターンのテキスト RegExp メソッド compile メソッドは、非推奨です。 valueOf メソッドは、もはや RegExp で限定されません。Object.valueOf を使用してください。 エスケープシーケンス 文字列及び正規表現リテラル内での、8 進表現のエスケープシーケンス(\ に続く、1つ、2つ、もしくは、3つの 8 進表現の数字) は非推奨です。 escape 及び unescape 関数は非推奨です。 特殊文字のためのエスケープシーケンスをエンコードかデコードするためには、encodeURI、encodeURIComponent、decodeURI もしくは、 decodeURIComponent を使用してください。
https://w.atwiki.jp/javadsge/pages/3721.html
google.load("visualization", "1", {packages ["corechart"]}); var point = new Array(); var x = new Array(); var year = new Array(); var month = new Array(); var v = new Array(); var y = new Array(); var m = new Array(); function sample() { var query = "SELECT * FROM " + 1rG8NFY6f0HtIPsRsxgzKOfYWi3uDqdZWXByX1Z2j ; var encodedQuery = encodeURIComponent(query); var url = [ https //www.googleapis.com/fusiontables/v1/query ]; url.push( ?sql= + encodedQuery); url.push( key=AIzaSyAH0WCAXRIdHdbI-6bnMSN4kVDDZZmGyqY ); url.push( callback=? ); $.ajax({ url url.join( ), dataType jsonp , success function (data) { var rows = data[ rows ]; sx = 0; for (var i in rows) { sx = sx + 1; point[sx]=rows[i][2]; } number = sx; mm=12; yy=1992; for(s=1;s number+1;s++){ mm=mm+1; if(mm 12)yy=yy+1; if(mm 12)mm=1; year[s]=yy; month[s]=mm; } for(s=0;s number+1;s++){ x[s]=new Array(); } x[0][0]="date"; x[0][1]="乗用車"; for(s=1;s number+1;s++){ x[s][0]=year[s]+"年"+month[s]; x[s][1]=point[s]*1; } var data =google.visualization.arrayToDataTable(x); var op = {title 自動車工業会 }; var chart = new google.visualization.LineChart(document.getElementById( memo )); chart.draw(data, op); } }); }
https://w.atwiki.jp/sugawara/pages/105.html
Qt Tips ComboBoxが変更されたときのActionには currentIndexChanged() と activated() がある。currentIndexChanged()はプログラム上でsetItemText()などで変更した場合にも発行される。 一方、activated()はユーザの操作によって変更された時にしか発行されない。また、もともと選択されていたのと同じ項目を選択した場合にも発行されるという違いがある。 通常は後者のactivated()を使うのがよい。
https://w.atwiki.jp/usb_audio/pages/27.html
原文:Audio Terminal Types 1.0(PDF) USB Device Class Definition for Terminal Types Release 1.0 March 18, 1998 6 1 Introduction The intention of this document is to describe in detail all the Terminal Types that are supported by the Audio Device Class. This document is considered an integral part of the Audio Device Class Specification, although subsequent revisions of this document are independent of the revision evolution of the main Audio Device Class Specification. This is to easily accommodate the addition of new Terminal Types without impeding the core Audio Device Class Specification. 1.1 Scope The Audio Device Class Definition applies to all devices or functions embedded in composite devices. All audio signals inside an audio function start at an Input Terminal, pass through some Units, and leave the function through an Output Terminal. Units can manipulate the signal in various ways. Terminals represent the connections of the function to the outside world. As part of the Terminal descriptor, the wTerminalType field specifies the vendor’s suggested use of the Terminal. For example, a pair of speakers is a more suitable target for music output than a telephone line. This feature allows a vendor to ensure that applications use the device in a consistent and meaningful way. 1.2 Related Documents · Universal Serial Bus Specification, 1.0 final draft revision (also referred to as the USB Specification). In particular, see Chapter 9, “USB Device Framework”. · Universal Serial Bus Device Class Definition for Audio Data Formats (referred to in this document as USB Audio Data Formats). · Universal Serial Bus Device Class Definition for Terminal Types (referred to in this document as USB Audio Terminal Types). · ANSI S1.11-1986 standard. · MPEG-1 standard ISO/IEC 111172-3 1993. · MPEG-2 standard ISO/IEC 13818-3 Feb. 20, 1997. · Digital Audio Compression Standard (AC-3), ATSC A/52 Dec. 20, 1995. (available from http //www.atsc.org) · ANSI/IEEE-754 floating-point standard. · ISO/IEC 958 International Standard Digital Audio Interface and Annexes. · ISO/IEC 1937 standard. · ITU G.711 standard. 1.3 Terms and Abbreviations None. USB Device Class Definition for Terminal Types Release 1.0 March 18, 1998 7 2 Terminal Types The following is a list of possible Terminal Types. This list is non-exhaustive and will only be expandedin the future. 2.1 USB Terminal Types These Terminal Types describe Terminals that handle signals carried over the USB, usually throughisochronous pipes. These Terminal Types are valid for both Input and Output Terminals. Table 2-1 USB Terminal Types Terminal Type Code I/O Description USB Undefined 0x0100 I/O USB Terminal, undefined Type. USB streaming 0x0101 I/O A Terminal dealing with a signal carried over an endpoint in an AudioStreaming interface. The AudioStreaming interface descriptor points to the associated Terminal through the bTerminalLink field. USB vendor specific 0x01FF I/O A Terminal dealing with a signal carried over a vendor-specific interface. The vendor-specific interface descriptor must contain a field that references the Terminal. 2.2 Input Terminal Types These Terminal Types describe Terminals that are designed to record sounds. They either are physically part of the audio function or can be assumed to be connected to it in normal operation. These Terminal Types are valid only for Input Terminals Table 2-2 Input Terminal Types Termina Type Code I/O Description Input Undefined 0x0200 I Input Terminal, undefined Type. Microphone 0x0201 I A generic microphone that does not fit under any of the other classifications. Desktop microphone 0x0202 I A microphone normally placed on the desktop or integrated into the monitor. Personal microphone 0x0203 I A head-mounted or clip-on microphone. Omni-directional microphone 0x0204 I A microphone designed to pick up voice from more than one speaker at relatively long ranges. Microphone array 0x0205 I An array of microphones designed for directional processing using host-based signal processing algorithms. USB Device Class Definition for Terminal Types Release 1.0 March 18, 1998 8 Terminal Type Code I/O Description Processing microphone array 0x0206 I An array of microphones with an embedded signal processor. 2.3 Output Terminal Types These Terminal Types describe Terminals that produce audible signals that are intended to be heard by the user of the audio function. They either are physically part of the audio function or can be assumed to be connected to it in normal operation. These Terminal Types are only valid for Output Terminals. The distinction between headphones, desktop speakers, and room speakers may be used by applications to select different 3D signal processing algorithms. Table 2-3 Output Terminal Types Terminal Type Code I/O Description Output Undefined 0x0300 O Output Terminal, undefined Type. Speaker 0x0301 O A generic speaker or set of speakers that does not fit under any of the other classifications. Headphones 0x0302 O A head-mounted audio output device. Head Mounted Display Audio 0x0303 O The audio part of a VR head mounted display. The Associated Interfaces descriptor can be used to reference the HID interface used to report the position and orientation of the HMD. Desktop speaker 0x0304 O Relatively small speaker or set of speakers normally placed on the desktop or integrated into the monitor. These speakers are close to the user and have limited stereo separation. Room speaker 0x0305 O Larger speaker or set of speakers that are heard well anywhere in the room. Communication speaker 0x0306 O Speaker or set of speakers designed for voice communication. Low frequency effects speaker 0x0307 O Speaker designed for low frequencies (subwoofer). Not capable of reproducing speech or music. 2.4 Bi-directional Terminal Types These Terminal Types describe an Input and an Output Terminal for voice communication that are closely related. They should be used together for bi-directional voice communication. They may be used separately for input only or output only. These types require two Terminal descriptors. Both have the same type. The two Terminals are linked together through the bAssocTerminal fields in their respective Terminal descriptors. The Associated Interfaces descriptor can be used to reference a HID interface for conferencing functions. USB Device Class Definition for Terminal Types Release 1.0 March 18, 1998 9 Table 2-4 Bi-directional Terminal Types Terminal Type Code I/O Description Bi-directional Undefined 0x0400 I/O Bi-directional Terminal, undefined Type. Handset 0x0401 I/O Hand-held bi-directional audio device. Headset 0x0402 I/O Head-mounted bi-directional audio device. Speakerphone, no echo reduction 0x0403 I/O A hands-free audio device designed for host-based echo cancellation. Echo-suppressing speakerphone 0x0404 I/O A hands-free audio device with echo suppression capable of half-duplexoperation. Echo-canceling speakerphone 0x0405 I/O A hands-free audio device with echo cancellation capable of full-duplex operation. 2.5 Telephony Terminal Types These Terminal Types describe Terminals that connect to the PSTN or PBX. Initiating calls and monitoring call progress will be done through an associated interface which may be Communication, HID or Vendor-Specific class. These Terminals are bi-directional and follow the rules for bi-directional Terminals. Table 2-5 Telephony Terminal Types Terminal Type Code I/O Description Telephony Undefined 0x0500 I/O Telephony Terminal, undefined Type. Phone line 0x0501 I/O May be an analog telephone line jack, an ISDN line, a proprietary PBX interface, or a wireless link. Telephone 0x0502 I/O Device can be used as a telephone. When not in use as a telephone, handset is used as a bi-directional audio device. Down Line Phone 0x0503 I/O A standard telephone set connected to the device. When not in use as a telephone, it can be used as a bidirectional audio device. 2.6 External Terminal Types These Terminal Types describe external resources and connections that do not fit under the categories of Input or Output Terminals because they do not necessarily translate acoustic signals to or from the user of the computer. Most of them may be either Input or Output Terminals. USB Device Class Definition for Terminal Types Release 1.0 March 18, 1998 10 Table 2-6 External Terminal Types Terminal Type Code I/O Description External Undefined 0x0600 I/O External Terminal, undefined Type. Analog connector 0x0601 I/O A generic analog connector. Digital audio interface 0x0602 I/O A generic digital audio interface. Line connector 0x0603 I/O An analog connector at standard line levels. Usually uses 3.5mm. Legacy audio connector 0x0604 I/O An input connector assumed to be connected to the lineout of the legacy audio system of the host computer. Used for backward compatibility. S/PDIF interface 0x0605 I/O An S/PDIF digital audio interface. The Associated Interface descriptor can be used to reference an interface used for controlling special functions of this interface. 1394 DA stream 0x0606 I/O An interface to audio streams on a 1394 bus. 1394 DV stream soundtrack 0x0607 I/O An interface to soundtrack of A/V stream on a 1394 bus. 2.7 Embedded Function Terminal Types These Terminal Types represent connections to internal audio sources or sinks in a device. All have associated interfaces for control. These interfaces may be HID or other classes (vendor-specific, mass storage for CD-ROM, etc.). Devices capable of both playback and recording should follow the rules for bidirectional Terminals. Table 2-7 Embedded Terminal Types Terminal Type Code I/O Description Embedded Undefined 0x0700 I/O Embedded Terminal, undefined Type. Level Calibration Noise Source 0x0701 O Internal Noise source for level calibration (MPEG decoding, Dolby PrologicÔ, AC-3 etc.) Equalization Noise 0x0702 O Internal Noise source for measurements. CD player 0x0703 I Audio compact disc player or CD-ROM capable of audio playback. DAT 0x0704 I/O Digital Audio Tape. DCC 0x0705 I/O Digital Compact Cassette. 1 - 6 - 11 ここを編集
https://w.atwiki.jp/ongaeshi/pages/21.html
もう一押し、ktouさんと協力してpthreadへの依存をなくす 用意するもの ruby - RubyInstaller for Windows (mingw32) インストール先は、c /app/ruby187-mingw32 を想定 cygwin - 1.7.7-1 gitからチェックアウト # 読み書き可能(要管理権限) $ git clone git@github.com ongaeshi/rroonga.git # 読み込み専用 $ git clone git //github.com/ongaeshi/rroonga.git extconf.rb(失敗する) $ ruby extconf.rb checking for groonga version ( = 1.1.0)... no downloading http //groonga.org/files/groonga/groonga-1.1.0.tar.gz... done extracting... done configuring... failed *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. vendor/groonga-1.1.0 が出来ているはずなので、そっちから先に片付ける。 ※ この時は例外的に、ktouさんからパッチを当てた最新版のgroonga-1.1.0を頂く groongaのコンパイル new!! configureの設定 $ cd vendor/groonga-1.1.0 $ ./configure --host=i686-w64-mingw32 --prefix= /c/users/ongaeshi/work/rroonga/vendor/local rubyのヘッダを一部修正する c /app/ruby187-mingw32/lib/ruby/1.8/i386-mingw32/win32/win32.h #ifdef __MINGW32__ // struct timezone { // int tz_minuteswest; // int tz_dsttime; // }; src/Makefile 125行目 # @todo # LDFLAGS = LDFLAGS = -L/usr/i686-w64-mingw32/sys-root/mingw/lib -L/usr/lib make $ make . . . make install $ make install Making install in include make[1] Entering directory `/c/users/ongaeshi/work/rroonga_new/vendor/groonga-1.1.0/include Making install in groonga make[2] Entering directory `/c/users/ongaeshi/work/rroonga_new/vendor/groonga-1.1.0/include/groonga . . これで、vendor/local 以下にbin/libgroonga-0.dll 等が作られたら成功。 rroongaのコンパイルに戻る。 rroonga-1.1.0-x86-mingw32.gem を作る $ cd ~/work/rroonga rake native gem $ rake native gem rake-compiler must be configured first to enable cross-compilation cd tmp/i386-mingw32/groonga/1.8.7 (in c /users/ongaeshi/work/rroonga_new) make Makefile 121 *** target pattern contains no `% . Stop. エラーが起きるのでmakefileを修正する tmp/i386-mingw32/groonga/1.8.7/Makefile C → /c c → /c に変換(どちらも小文字の c にする必要があることに注意) もう一箇所修正 tmp/i386-mingw32/groonga/1.8.7/Makefile # 42行目 gcc → i686-w64-mingw32-gcc # CC = gcc CC = i686-w64-mingw32-gcc . . # 51行目 -mo-cygwin追加 # CFLAGS = -mno-cygwin -g -O2 -DFD_SETSIZE=256 $(cflags) -I../../../../vendor/local/include/groonga CFLAGS = -g -O2 -DFD_SETSIZE=256 $(cflags) -I../../../../vendor/local/include/groonga . . # 62行目 gcc → i686-w64-mingw32-gcc # LDSHARED = gcc -shared -s LDSHARED = i686-w64-mingw32-gcc -shared -s rake native gem $ rake native gem cp tmp/i386-mingw32/groonga/1.8.7/groonga.so lib/groonga.so mkdir -p pkg rm -f pkg/rroonga-1.1.0/AUTHORS ln AUTHORS pkg/rroonga-1.1.0/AUTHORS rm -f pkg/rroonga-1.1.0/NEWS.ja.rdoc ln NEWS.ja.rdoc pkg/rroonga-1.1.0/NEWS.ja.rdoc rm -f pkg/rroonga-1.1.0/NEWS.rdoc ln NEWS.rdoc pkg/rroonga-1.1.0/NEWS.rdoc rm -f pkg/rroonga-1.1.0/README.ja.rdoc ln README.ja.rdoc pkg/rroonga-1.1.0/README.ja.rdoc . . pkg/rroonga-1.1.0-x86-mingw32.gem が出来ていれば成功 $ cd pkg $ ls -la total 6532 drwx------+ 1 ongaeshi 0 Dec 30 17 41 . drwx------+ 1 ongaeshi 0 Dec 30 17 41 .. drwx------+ 1 ongaeshi 0 Dec 30 17 40 rroonga-1.1.0 -rwx------+ 1 ongaeshi 3370496 Dec 30 17 41 rroonga-1.1.0-x86-mingw32.gem -rwx------+ 1 ongaeshi 3316736 Dec 30 17 41 rroonga-1.1.0.gem インストール .gemファイルを直接指定 $ gem install rroonga-1.1.0-x86-mingw32.gem Enclosing class/module mGrn for class Accessor not known Enclosing class/module mGrn for class ArrayCursor not known Enclosing class/module mGrn for class Array not known Enclosing class/module mGrn for class Column not known . . 動作確認 $ mkgrendb.bat mkgrendb INPUT_YAML1 [INPUT_YAML2 ...] --ddb, --default-db Create or Update default DB. (Plase set ENV[ GRENDB_DEFAULT_DB ]) --full Full update DB. (Delete and create) --delete Delete DB. (Not delete yaml) --dump Dump DB. --report Database Report. もうpthreadGC2.dllは要らない!!万歳!!
https://w.atwiki.jp/usb_audio/pages/38.html
原文:Audio Device Document 1.0(PDF) USB Device Class Definition for Audio Devices Release 1.0 March 18, 1998 46 Offset Field Size Value Description 7 baSourceID(1) 1 Number ID of the Unit or Terminal to which the first Input Pin of this Processing Unit is connected. … … … … … 7+(p-1) baSourceID (p) 1 Number ID of the Unit or Terminal to which the last Input Pin of this Processing Unit is connected. 7+p bNrChannels 1 Number Number of logical output channels in the audio channel cluster of the Processing Unit. 7+p+1 wChannelConfig 2 Bitmap Describes the spatial location of the logical channels in the audio channel cluster of the Processing Unit. 7+p+3 iChannelNames 1 Index Index of a string descriptor that describes the name of the first logical channel in the audio channel cluster of the Processing Unit. 11+p bControlSize 1 Number Size in bytes of the bmControls field n 12+p bmControls n Bitmap A bit set to 1 indicates that the mentioned Control is supported D0 Enable Processing.D1..(n*8-1) process-specific allocation. 12+p +n iProcessing 1 Index Index of a string descriptor, describing this Processing Unit. 13+p +n Process-specific x NA A process-specific descriptor is appended to the common descriptor. See the following paragraphs. 4.3.2.6.1 Up/Down-mix Processing Unit Descriptor The wProcessType field of the common Processing Unit descriptor contains the value UP/DOWNMIX_PROCESS. (See Appendix A.7, “Processing Unit Process Types”) The Up/Down-mix Processing Unit has a single Input Pin. Therefore, the bNrInputs field must contain the value 1. The bNrChannels, wChannelConfig, and iChannelNames fields together constitute the output cluster descriptor of the Up/Down-mix Processing Unit. It describes which logical channels are physically present at the output of the Processing Unit. Depending upon the selected operating mode, one or more channels may be unused. The bmControls field is a bitmap, indicating the availability of certain audio Controls in the Up/Downmix Processing Unit. For future expandability, the number of bytes occupied by the bmControls field is indicated in the bControlSize field. Bit D0 of the bmControls field represents the Enable Processing Control. The Mode Select Control (D1) is used to change the behavior of the Processing Unit by selecting different modes of operation. USB Device Class Definition for Audio Devices Release 1.0 March 18, 1998 47 The process-specific descriptor of the Up/Down-mix Processing Unit describes the supported modes of operation of the Processing Unit. Selecting a mode of operation is done by issuing the Set Mode Request. The number of supported modes (m) is contained in the bNrModes field. This field is followed by an array of mode fields, waModes(). The index i into this array is one-based and directly related to the number of the mode described by entry waModes(i). It is the value i that must be used as a parameter for the Set Mode request to select the mode i. The bit allocations in the waModes() fields are very similar to those of the wChannelConfig field in a cluster descriptor (see Section 3.7.2.3, “Audio Channel Cluster Format”) i.e. a bit set in the waModes(i) field indicates that for mode i, the Up/Down-mix Processing Unit produces meaningful audio data for the logical channel that is associated with the position of the set bit. Logical channels that are present in the output cluster but are not used in a certain mode are considered to be inactive and at most produce silence in that mode. Each waModes(i) field can only contain set bits for those logical channels that are present in the output channel cluster. In other words, all waModes() fields can only contain a subset of the wChannelConfig field of the cluster descriptor of the Unit. Furthermore, logical channels that have a non-predefined spatial position can not be marked as active in the waModes() fields. It is therefore assumed by default that they are active. The following table outlines the combination of the common and process-specific Up/Down-mix Processing Unit descriptors. Table 4-9 Up/Down-mix Processing Unit Descriptor Offset Field Size Value Description 0 bLength 1 Number Size of this descriptor, in bytes 15+n+2*m 1 bDescriptorType 1 Constant CS_INTERFACE descriptor type. 2 bDescriptorSubtype 1 Constant PROCESSING_UNIT descriptor subtype. 3 bUnitID 1 Number Constant uniquely identifying the Unit within the audio function. This value is used in all requests to address this Unit. 4 wProcessType 2 Constant UP/DOWNMIX_PROCESS process type. 6 bNrInPins 1 Number Number of Input Pins of this Unit 1 7 bSourceID 1 Number ID of the Unit or Terminal to which the Input Pin of this Processing Unit is connected. 8 bNrChannels 1 Number Number of logical output channels in the output channel cluster of the Processing Unit. 9 wChannelConfig 2 Bitmap Describes the spatial location of the logical channels in the output channel cluster of the Processing Unit. 11 iChannelNames 1 Index Index of a string descriptor, describing the name of the first logical channel in the Processing Unit’s output channel cluster. USB Device Class Definition for Audio Devices Release 1.0 March 18, 1998 48 Offset Field Size Value Description 12 bControlSize 1 Number Size, in bytes, of the bmControls field n 13 bmControls n Bitmap A bit set to 1 indicates that the mentioned Control is supported D0 Enable Processing.D1 Mode Select.D2..(n*8-1) Reserved 13+n iProcessing 1 Index Index of a string descriptor, describing this Processing Unit. 14+n bNrModes 1 Number Number of modes, supported by this Processing Unit m 15+n waModes(1) 2 Bitmap Describes the active logical channels in mode 1. … … … … … 15+n+(m-1)*2 waModes(m) 2 Bitmap Describes active the logical channels in mode m. 4.3.2.6.2 Dolby Prologic Processing Unit Descriptor The wProcessType field of the common Processing Unit descriptor contains the value DOLBY_PROLOGIC_PROCESS. (See Appendix A.7, “Processing Unit Process Types”) The Dolby Prologic Processing Unit has a single Input Pin. Therefore, the bNrInputs field must contain the value 1. The bNrChannels, wChannelConfig, and iChannelNames fields together constitute the output cluster descriptor of the Dolby Prologic Processing Unit. It describes which logical channels are physically present at the output of the Processing Unit. Depending upon the selected operating mode, one or more channels may be unused. Bit D0 of the $b(){bmControls} field represents the Enable Processing Control. The Mode Select Control (D1) is used to change the behavior of the Processing Unit by selecting different modes of operation. Although the input cluster may contain a number of logical channels, the Dolby Prologic Processing Unit only uses Left and Right logical input channels as input for the decoding process. Obviously, these two logical channels must be present in the input cluster for the Unit to operate properly. All other logical channels are discarded. The output cluster may contain logical channels other than Left, Right, Center, and/or Surround (these must be present) to facilitate connectivity within the audio function. Channels that are present in the output cluster but do not participate in the chosen mode of operation must be muted. The process-specific descriptor of the Dolby Prologic Processing Unit describes the supported modes of operation of the Processing Unit. The number of supported modes (m) is contained in the bNrModes field. This field is followed by an array of mode fields, waModes(). The bit allocations in the waModes() fields are very similar to those of the wChannelConfig field in a cluster descriptor (see Section 3.7.2.3, “Audio Channel Cluster Format”) i.e., a bit set in the waModes(i) field indicates that for mode i, the Dolby Prologic Processing Unit produces meaningful audio data for the logical channel that is associated with the position of the set bit. The Dolby Prologic Processing Unit supports, at most, the following three different modes USB Device Class Definition for Audio Devices Release 1.0 March 18, 1998 49 · Left, Right, Center channel decoding waModes() = 0x0007 · Left, Right, Surround channel decoding waModes() = 0x0103 · Left, Right, Center, Surround decoding waModes() = 0x0107 The wChannelConfig field of the cluster descriptor of the Unit must at least contain the union of all bits set for all the supported modes. The following table outlines the combination of the common and process-specific Dolby Prologic Processing Unit descriptors. It is identical to the Up/Down-mix Processing Unit descriptor except for some field values. It is repeated here for clarity. Table 4-10 Dolby Prologic Processing Unit Descriptor Offset Field Size Value Description 0 bLength 1 Number Size of this descriptor, in bytes 15+n+2*m 1 bDescriptorType 1 Constant CS_INTERFACE descriptor type. 2 bDescriptorSubtype 1 Constant PROCESSING_UNIT descriptor subtype. 3 bUnitID 1 Number Constant uniquely identifying the Unit within the audio function. This value is used in all requests to address this Unit. 4 wProcessType 2 Constant DOLBY_PROLOGIC_PROCESS process type. 6 bNrInPins 1 Number Number of Input Pins of this Unit 1 7 bSourceID 1 Number ID of the Unit or Terminal to which the Input Pin of this Processing Unit is connected. 8 bNrChannels 1 Number Number of logical output channels in the output channel cluster of the Processing Unit. 9 wChannelConfig 2 Bitmap Describes the spatial location of the logical channels in the Processing Unit’s output channel cluster. At least Left, Right, Center and/or Surround must be set. 11 iChannelNames 1 Index Index of a string descriptor, describing the name of the first logical channel in the Processing Unit’s output channel cluster. 12 bControlSize 1 Number Size, in bytes, of the bmControls field n 13 bmControls n Bitmap A bit set to 1 indicates that the mentioned Control is supported D0 Enable Processing.D1 Mode Select.D2..(n*8-1) Reserved USB Device Class Definition for Audio Devices Release 1.0 March 18, 1998 50 Offset Field Size Value Description 13+n iProcessing 1 Index Index of a string descriptor, describing this Processing Unit. 14+n bNrModes 1 Number Number of modes, supported by this Processing Unit mA maximum of 3 different modes is possible. 15+n waModes(1) 2 Bitmap Describes the active logical channels in mode 1. … … … … … 15+n+(m-1)*2 waModes(m) 2 Bitmap Describes active the logical channels in mode m. 4.3.2.6.3 3D-Stereo Extender Processing Unit Descriptor The wProcessType field of the common Processing Unit descriptor contains the value 3D-STEREO_EXTENDER_PROCESS. (See Section A.7, “Processing Unit Process Types”) The 3D-Stereo Extender Processing Unit has a single Input Pin. Therefore, the bNrInputs field must contain the value 1. The bNrChannels, wChannelConfig and iChannelNames fields together constitute the output cluster descriptor of the 3D-Stereo Extender Processing Unit. It describes which logical channels are physically present at the output of the Processing Unit. Bit D0 of the bmControls field represents the Enable Processing Control. Bit D1 indicates the availability of the Spaciousness Control. Although the input cluster may contain a number of logical channels, the 3D-Stereo Extender Processing Unit only uses Left and Right logical input channels as input for the extension process. Obviously, these two logical channels must be present in the input cluster for the Unit to operate properly. All other logical channels are discarded by the process. The output cluster may contain logical channels other than Left and Right (these must be present) to facilitate connectivity within the audio function. Channels that are present in the output cluster but not in the input cluster must be muted. Channels other than Left and Right that are present in both input and output cluster can be passed unaltered from input to output. Channels only present in the input cluster are absorbed by the Processing Unit. There is no process-specific descriptor for the 3D-Stereo Extender Processing Unit. The following table outlines the 3D-Stereo Extender Processing Unit descriptor. It is identical to the common Processing Unit descriptor, except for some field values. It is repeated here for clarity. Table 4-11 3D-Stereo Extender Processing Unit Descriptor Offset Field Size Value Description 0 bLength 1 Number Size of this descriptor, in bytes 14+n 1 bDescriptorType 1 Constant CS_INTERFACE descriptor type. 2 bDescriptorSubtype 1 Constant PROCESSING_UNIT descriptor subtype. 1 - 6 - 11 - 16 - 21 - 26 - 31 - 36 - 41 - 46 - 51 - 56 - 61 - 66 - 71 - 76 - 81 - 86 - 91 - 96 - 101 - 106 - 111 - 116 - 121 - 126 ここを編集