ESET Smart Securityで、メールの末尾にメッセージを出さないようにする方法
ウィルスチェックソフトのESET Smart Securityを使用して、メール送信を行うと、自動で以下のメッセージが付きます。 __________ ESET Smart Security からの情報, ウイルス定義データベースのバージョン 9999 (20120831) __________ このメッセージは ESET Smart Security によって検査済みです。 http://canon-its.jp__________ ESET Smart Security からの情報, ウイルス定義データベースのバージョン 9999 (20120831) __________ このメッセージ…
続きを読む
アマゾンマケプレで、配送業者を自動選択するスクリプトを変更
以前、アマゾンのマーケットプレース出品者向けに、Greasemonkeyのスクリプトを書きました。 アマゾンマーケットプレースの「複数商品の出荷通知」で、配送業者を自動選択する アマゾンのhtmlソースが変わったせいで、このスクリプトが動かなくなっており、今回対応版を作成したので公開しておきます。 ソースは以下のような感じで、プログラムで変わったのはElementのID名称だけです。 // ==UserScript== // @name Amazon_MarketPlace_ShippingConfirm // @namespace http://nanoappli.com/ // @incl…
続きを読む
[PIC]HI-TECH Cでコンフィギュレーションビットを指定する
PICのプログラムをアセンブリ(MPASM)で作成する場合は、CONFIG命令でコンフィギュレーションビットを指定するのですが、HI-TECH Cではこの設定は、__CONFIG()マクロで行います。 下記のプログラムは、__CONFIG()マクロの使用を使用したサンプルです。 #include <stdio.h> #include <htc.h> void main( void ) { __CONFIG( FOSC_HS & WDTE_OFF & PWRTE_ON & CP_OFF ); …
続きを読む
[PIC]HI-TECH Cで一定時間スリープさせる
PICでは、HI-TECH Cコンパイラをを使用した、C言語による開発を行う事ができます。 C言語で開発を行う場合、プログラム中で一定時間処理をスリープさせるにはどうしたら良いでしょうか? HI-TECH Cの環境では、主に以下の4つの手法があります。 1. 空ループを回す 2. _delay()マクロを使用する 3. __delay_ms()マクロを使用する 4. __delay_us()マクロを使用する1. 空ループを回す 2. _delay()マクロを使用する 3. __delay_ms()マクロを使用する 4. __delay_us()マクロを使用する 上記のうち2,3,4のマクロはH…
続きを読む
PIC16F84AをC言語で,MPLAB IDE環境で開発する
PIC16シリーズでは、入門者向けとしてよく使用されているPIC16F84Aですが、プログラムの格納エリアが小さいため通常はMPASMというアセンブラを使用してプログラムを行う事が多いです。 PICの製造メーカであるMicroChipが提供している統合開発環境のMPLABでも、標準ではアセンブラしか用意されていません。ですが、実はMicroChipはCのコンパイラも用意してくれているので、追加でコンパイラをインストールすれば、Cで開発する事も可能です。 今回はMPLABで、PIC16F84AのプログラムをC言語で開発する方法を説明します。 C言語によるPICプログラミング入門 MicroChi…
続きを読む
[C#]ネットワーク(NIC)の情報をプログラムで取得する
C#(.Net Framework)では、System.Net.NetworkInformationクラスを使用することで、NICの情報を取得する事が可能です。 下記のコードはIPCONFIGで出力されるような、IPアドレス/MACアドレス等の情報を出力しています。 送受信速度は取得できませんが、これは一定時間周期でBytesSentやBytesReceivedの値を取得し、一定時間内にどれだけ値が増えたかを元に速度を算出します。 例えば1秒周期で値を取得すれば、前回取得値との差分が、Byte/Secの単位として速度が算出できます。 using System.Net.NetworkInform…
続きを読む
[パタヘネ:読書メモ]付録B アセンブラ,リンカ,SPIMシミュレータ その2
B.6 手続き呼出し規約 分割コンパイルする場合は、各コンパイル単位で関数の引数・戻り値をどうやって(=どのレジスタに)セットするかのルールが必要でそのルール手続き呼び出し規約(calling convention)と呼ぶ。 例えばIntel CPUの場合だけでも、以下のようなものがある。 cdecl fastcall stdcall safecall thiscall Pascal Intel ABI x86-64cdecl fastcall stdcall safecall thiscall Pascal Intel ABI x86-64 呼び出し規約が異なるobjやlibフ…
続きを読む
[パタヘネ:読書メモ]付録B アセンブラ,リンカ,SPIMシミュレータ
B.1 はじめに コンピュータが理解できるのは0/1の羅列である機械語のみだけど、機械語だと人が読みづらいので、アセンブリ言語を用意した。アセンブリ言語は、機械語と1:1に対応する名前を付けることで、人が読みやすくなる。この名前(命令)をニーモニックと呼ぶ。 アセンブリ言語を機械語に置き換えるために、アセンブラというプログラムを使用する。 素のアセンブリ言語だけだと、表現できる幅が狭いので、マクロ機能を設ける事が多い。 アセンブリのプログラム(.asm)は、アセンブリ->リンクという経緯を経て実行ファイルが作成される。 また、.asmファイルはニーモニック以外にも情報を記述できる場合が多い。あ…
続きを読む
Amazon MWS商品APIの実行結果例
前回の記事ではGetLowestOfferListingsForASINのレスポンス例を紹介しました。 ここでは、他の商品APIの実行結果を紹介します。 GetCompetitivePricingForASIN 出品数とランクが分かります。 <?xml version="1.0"?> <GetCompetitivePricingForASINResponse xmlns="http://mws.amazonservices.com/schema/Products/2011-10-01"> <GetCompetitivePri…
続きを読む
Amazon MWSで商品の情報を取得する
今までAmazonでは、Amazon Product Advertising API(PA-API)を使用して商品情報が取得できていたのですが、このAPIは2012/8末で廃止になります。 代わりに用意されたAmazon MWSの商品APIを使用して商品情報を取得する方法を説明します。 Amazon MWSとは? Amazon MWSは、Amazon Marketplace Web Serviceの略で、アマゾンのマーケットプレースに出品している人が、WebAPIベースで作業を行うためのサービスですこれを使用する事によって、Amazonのサイトにブラウザでアクセスしなくても、出品・出荷・価格改…
続きを読む
[C言語]リンクリストを使用したプログラムの基礎
構造体とmallocによるメモリの確保を利用した、リンクリストのサンプルプログラムです。 //———————————————————————- // File : linklist.c // Description : リンクリストを使用して、入力された点数の平均点を求める //———————————————————————- #include <stdio.h> #include <stdli…
続きを読む
「CPUの創りかた」は、パタヘネ本の次に必読の一冊
CPUの創りかた CPU設計の超入門書として良書とという評判だったので、読んでみました。 表紙の絵は、書店で買うにはちょっと恥ずかしい感じですが、内容は至って真面目です。 説明の順序が良くて文章も平易で非常に読みやすかったので3時間程度での読了でした。すんなり内容が入ってきたのは、本書の読みやすさももちろんですが、先にパタヘネ本を読んでCPUの概要を把握していたのも大きかったです。 文章がどれくらい読み易いかは、以下のサンプルページを見てもらうと一目瞭然です。 専門的な内容にも関わらず、いわゆる教科書っぽい堅苦しさは一切有りません。 この本を読む上での前提知識は、2進数、論理式(AND,OR等…
続きを読む
ITmediaのTechTargetで”続きを読むには会員登録…”のページを、会員登録せずに読む方法
テクノロジー系のニュースサイトとして有名なITmediaが運営していているサイトに、TechTargetというものが有ります。 TechTargetでは、IT製品や、サービスの導入・購買について有用な情報を提供してくれています。 利用は無料なのですが、一部会員登録しないと読めない記事もあります。 TechTargetはこんなページのサイトです。 で、非会員の立場で記事を読んでいると、具体的には以下のような感じで、記事の途中までしか読めなくなっているという仕組みです(記事によっては最後まで読めるものも有ります) 続きを読むには会員登録(無料)が必要です。 TechTargetジャパンは、企業情報…
続きを読む
Bluetoothイヤホンに関する規格まとめ(EDR,HSP,A2DP,AVRCPなど)
AndroidやiPhone等のスマホで、音楽を聴く用のBluetoothのイヤホンを買う際の判断基準のメモです。 Bluetoothのバージョン まずは、バージョンのチェックです。 とりあえず、Ver.2.0 + EDRならOK。 Ver.2.0 + EDR EDRは、Enhanced Data Rateで、高音質になります。 Ver.2.1 + EDR バージョンが2.1だとペアリング時の暗証番号入力が不要になります。 但し、ペアリングは最初に行うだけなので、ver2.1か2.0かはあまり重要では無いです。 EDR無し 音声通話用なので、オーディオ目的ではないで…
続きを読む
[パタヘネ:読書メモ]付録A グラフィックスとGPU コンピューティング
この章の筆者はNVIDIAの人なので、内容にバイアスが入っている可能性があるかも…. A.1 はじめに GPUはグラフィックプロセッサだけではなく、複数コアを持つ並列数値演算の側面も持ってきている。最近は汎用プログラムを実行するための仕組み(ハードのサポートや開発環境)が整備されてきている。 CUDAというプラットフォームでは、C,C++で開発が出来て、メニーコア環境での並列処理が行える。 A.2 GPUシステムのアーキテクチャ 昔のVGAカードは、ノースブリッジとサウスブリッジをつないでいるPCIバスに接続されていた。 一方今のGPUは、メモリと同列レベルに格上げされており、ノー…
続きを読む
[gcc]CPUID命令を使用して、CPUの情報を取得する
IntelのCPUでは、CPUIDというアセンブラの命令を使用することで、CPUの情報を入手する事が出来ます。 ここでいうCPU情報というのは、CPUのシリーズや、対応している命令セット、キャッシュ容量、プロセッサシリアルNoなどが含まれます。 このCPUID命令、C言語で普通にプログラムしていてはコールする事が出来ませんが、インラインアセンブラを使用することで利用する事が可能です。 今回は、gccのインラインアセンブラである”__asm__”命令を使用して、CPUID情報を取得する方法を説明します。 C言語からCPUID命令をコールする まずは、CPUID取得のベース…
続きを読む
[パタヘネ:読書メモ]第7章 マルチコアとマルチプロセッサとクラスタ
7.1 はじめに 単一のCPUの能力を向上させるには、密度、発熱量的に限界があるので、可能であれば複数のプロセッサ(マルチプロセッサ)を使用してプログラミングを行いたい。”能力を向上…”の能力には色々な意味があるけど、ここでは単位時間当たりの処理量であるスループットを対象とする。マルチプロセッサで、スループットをあげるには全てのプロセッサに別の仕事(ジョブ)を割り当てればよい。 独立したジョブが沢山ある場合の特性を、ジョブレベル並列性(あるいはプロセスレベル並列性)と呼ぶ。 一方、単一のプログラムのコード片を複数のプロセッサで分散処理する場合は、並列処理プロ…
続きを読む
[C言語入門]共用体でメモリを有効活用
今回は共用体です。 共用体の定義は以下のように行います。 union タグ名 { メンバ1; メンバ2; … };union タグ名 { メンバ1; メンバ2; … }; 一見すると構造体っぽい定義方法で、同じように見えるかもしれませんが、構造体と、共用体ではメモリ確保のされ方が異なります。 このことを確認するために、サンプルを1つ実行してみます。 #include <stdio.h> struct t_CHARACTER { char c0; char c1; char c2; char c3; }; union u_CHA…
続きを読む
[gcc]C言語のプログラムからレジスタの内容をダンプする
C言語のコードをgccで開発している場合、インラインアセンブラを使う事でレジスタの内容をダンプさせることが出来ます。 以下のdefine文を定義しておくと、1命令書くだけで、全レジスタをダンプしてくれるので便利です。 #define DUMP_REGISTER() { \ register int eax asm( "%eax" ); \ register int ebx asm( "%ebx" ); \ register int ecx asm( "%ecx" ); \ register int edx asm( "%ed…
続きを読む
[パタヘネ:読書メモ]第6章 ストレージおよびその他の入出力の話題 その2
6.7 入出力性能の測定法:ディスクおよびファイル・システムを例にして 省略 6.8 入出力システムの設計 入出力システムを設計する上で、要求される指標値には、バスのバンド幅と応答の遅延(レイテンシ)がある。 無負荷時のレイテンシ試算は簡単だけど、負荷がある場合は設計が難しい。 そのあたりの設計は、待ち行列理論などでシミュレーションさせたりする必要がある。 6.9 並列処理と入出力:RAID 基本的なRAIDの仕組みは常識レベルの話なので省略。 RAID構成の問題点として1台のディスクに故障が出ると、リビルド時に既存ディスクに負荷が高くなる問題がある。既存ディスクも同じ環境に晒されているため、…
続きを読む