2015年7月27日月曜日

【C++の勉強(1)】ポインタとファイル読込・出力

これから、C++の勉強を初めていきます。
まずはじめに、ポインタとファイル読込・出力について、まとめます。

尚、文法等については、省略いたします。

1、ポインタ
(1) 変数の参照渡し
  ポインタptrを宣言して、xのアドレスを設定する
  & 演算子が x の位置を表現する事、* 演算子で p が指すメモリを表現する事を示します。
    int x = 123;
    int *ptr = &x;        //  ptr を宣言し、x のアドレスで初期化


(2) 文字列や配列へのアクセス
配列へのポインタは、次のような書き方をします。
尚、ptr = v; と記載することも可能です

    char v[] = "hoge";
    char *ptr = &v[0]; //  ptr は v[0] を指す


配列を関数に渡すときは、次のように関数宣言します。
void func(int a[])
void func(int *a)
*aとa[ ]は同じ意味になります。

(3) 動的なデータ構造(ポインタのメモリ割り当て)
・malloc を使うときは #include <stdlib.h> を記述する。
・malloc(バイト数) で指定したバイト数のメモリを確保し、そのアドレスを返す
・malloc() の型は void * なので、ポインタに代入する時はキャストを行う
        int *ptr = (int *)malloc(sizeof(int));

・複数のデータ分のメモリを一度に確保したい場合は、その個数倍のサイズを指定する
        int *ptr = (int *)malloc(sizeof(int)*10);     //  int 型データ10個分のメモリを確保

・確保したメモリが不要になった時は、free(ポインタ) によりメモリを解放する
        free(ptr);

※ C++ では、 new, delete を使う方がよい
  int *ptr = new int(12);   //  int 型のメモリを確保し、12 で初期化
  delete ptr;

(4) 多重ポインタ
(5) 関数ポインタ

(4)、(5)については、別の機会にします。

2、ファイル読込
fstreamを使ったり、その他方法ありますが、C言語でも使えるFILEポインタを使った方法で十分であるので、これを使用する。
以下サンプルコードです。
まずstdio.hをincludeして、文字配列bufを200バイトで作成して、data.txtをfopenでFILEポインタのfpに設定します。
ファイルからの読込はfgetsでfpから200バイト読み込みます。

    #include <stdio.h>    char buf[200];    FILE *fp;
 
    fp = fopen(\"data.txt\", \"r\");    fgets(buf,200,fp);

    fclose(fp);

最後にfcloseは忘れずに!  

読込には,freadやfgetsなども使えますが、一行読み込むには、fscanfが一番使いやすいです。
fscanf(fp,"%s",buf);

尚、ファイル内データが数値で羅列している場合は、次のように読み込みます
int i,j;
fscanf(fp,"%d,%d",&i,&j);

3、ファイル出力
ファイル出力については、fprintfを使うのが一番です。
以下サンプルコードです。

    #include <stdio.h>
    FILE* fp;
    char  buffer[] = "test !!!!";

    fp= fopen("fprintf.txt", "w");
    fprintf(fp, "%s\n", buffer);


<< まとめ >>
(1) ファイルの開く閉じるはfopen,fcloseを使う
(2) ファイル読込はfscanf、ファイル出力はfprintfを使う

【参考URL】
http://vivi.dyndns.org/tech/cpp/pointer.html 
http://itpro.nikkeibp.co.jp/article/COLUMN/20061206/256198/
http://miffysora.wikidot.com/ja:fileread
http://d.hatena.ne.jp/nagardjunas/20110524/1306231384
http://www9.plala.or.jp/sgwr-t/c/sec17.html
http://simd.jugem.jp/?eid=49
http://qiita.com/kyoshiro-obj/items/9f36aa4666eafcbf78ad
http://bituse.info/c_func/46

※ポインタについて詳しく勉強したい人は次の本をおすすめします。
C言語ポインタ完全制覇 (標準プログラマーズライブラリ)
http://www.amazon.co.jp/C%E8%A8%80%E8%AA%9E%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E5%AE%8C%E5%85%A8%E5%88%B6%E8%A6%87-%E6%A8%99%E6%BA%96%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%83%BC%E3%82%BA%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA-%E5%89%8D%E6%A9%8B-%E5%92%8C%E5%BC%A5/dp/4774111422

レスポンシブwebデザイン 各デバイスの表示確認に便利なサイト

 レスポンシブルWebサイト開発していると、各デバイスで都度確認するのに手間がかかります。
そこで、便利なテストサイトがありましたので、情報提供いたします。
 

Responsive Web Design Testing Tool
http://mattkersley.com/responsive/
サイズ別の表示結果を一覧で確認出来ます。

例として、私が作成した知人のサイトのURLアドレスをテキスト欄に入力します。

すると、下絵のように各サイズごとにWebサイトが表示できます



【参考URL】

2015年7月21日火曜日

【Flash】相次ぎ発見される脆弱性について(各ブラウザごとのFlashブロック方法)



最近FirefoxでFlashがブロックされるようになりました。


ネットでしらべると、次ぎ発見される脆弱性が発見されていて、ブロックするようになったようです。


悪用されると
・システムをクラッシュ
・システムを乗っ取られる恐れがある
と言われています。


まずは、Adobeは脆弱性の悪用を避けるため、Flash Playerをアップデートをしないと危険だそうです。


国際交流サービス協会(IHCSA)のWebサイトとコスメテックのWebサイトで、ユーザーをリダイレクトして、脆弱性悪用コードを仕込んだWebサイトに誘導していたそうですで、
コスメテックのWebサイトでは、ユーザーがFlash Player最新版のバージョン11.4.0をインストールしているかどうかをチェックした上で、細工を施したSWFファイルをダウンロードさせる手口が使われていた。




「いったんシステムが感染してしまうと手遅れになってしまうかもしれない。ユーザーは、セキュリティの脅威を未然に防ぐためにプロアクティブな方法を取り入れる必要がある」(セグラ氏)




すでに手遅れだったりして。




※ゼロデイ脆弱性(ぜいじゃくせい )
システム上の欠陥や問題点について、発見されて公表された場合に、修正プログラム(パッチ)の提供が開始される前に、その脆弱性を突くマルウェアを開発して攻撃することを指す。




また、Flashをブロックする方法がありますので、手動で設定してください。
Internet Explorer 11 | Chrome | Firefox | Safari on Mac | Edge on Windows 10.





【参考URL】
http://techtarget.itmedia.co.jp/tt/news/1507/17/news09.html
http://www.zdnet.com/article/firefox-now-blocks-all-versions-of-flash-player-by-default/
http://www.zdnet.com/article/flash-is-dying-here-is-how-to-kill-it/
http://www.itmedia.co.jp/enterprise/articles/1507/21/news049.html

2015年7月20日月曜日

【HTML5】HTML5&CSS3デザインブック


本屋で、CSS3について、もっと勉強しようと思いまして、本を購入しました。

すごく見やすい分かりやすい本で、
レスポンシブルWebサイトについて、勉強するに、良い本を紹介します。

特にBOXについて、詳しく書いてありますので、ページ内の構成について、なかなか理解できずに苦労している方は是非一読お勧めです。

HTML5&CSS3デザインブック
「レスポンシブWebデザイン」で、レイアウトを自在に操るための最新技法を身につける!
エビスコム 2,808円


http://www.socym.co.jp/book/964
サンプルのダウンロード先
http://www.socym.co.jp/support/s-964#ttlDownload


見やすいので、HTML5とCSS3について、ある程度知っている方向きです。
 HTML5とCSS3について、よく分からない方は、初心者向きの本を読んでから購入をお勧めします。
JavaScriptについても、一切記載がありません。
あくまで、「デザインブック」です。

サンプルファイルがダウンロードできますので、サンプルを使って、スマートフォン向けWebサイト構築するのに、手間をかけずに、作成できそうです。

2015年7月16日木曜日

【Silverlight】Silverlight開発時に、パフォーマンスを向上させるための手段

Silverlight開発で必要とする、パフォーマンスを向上するための、手段をまとめました。
内容は参考URLをまとめたものですが、Silverlightだけでなく、WEBサイト開発時に覚えておくと役に立つ知識となります。

・拡張ライブラリをキャッシュさせる
・開発時はフレームレートを表示させる

 開発時は EnableFrameRateCounter を true に設定する
・HTTPリクエストを減らす
なるべくXAMLで書く

半透明の扱いに気をつける(Opacity ではなく Visibility をできるだけ使用)
 Silverlight プラグインでは透明な背景をできるだけ使用しない
 単純に非表示にしたい場合はVisibilityをCollapsedに設定する
・GPUを活用する
 UIElement の不透明度または変換をアニメーション化する場合は CacheMode を設定する
・複数のプラットフォームやブラウザーでテストする
・MediaElement オブジェクトでは幅と高さを使用しない
・Path オブジェクトでは幅と高さを使用しない
・CPU を集中的に使用する作業を小さなタスクに分割する
・大きなサイズのアプリケーション パッケージを分割する
・Double.ToString() ではなく Double.ToString(CultureInfo.InvariantCulture) を使用する
・大量のイメージをレンダリングする場合は Stretch = "Fill" を使用する



【参考URL】
http://techblog.yahoo.co.jp/tips/silverlight_2/
https://msdn.microsoft.com/ja-jp/library/cc189071(VS.95).aspx

2015年7月14日火曜日

【Chrome】Flashバナー広告が表示しなくなる?


Google Chromeが、Flashバナー広告の効果が激減するような仕様変更を間もなく行う予定でそうです。


実際の記事は以下となります。

PCでのFlash広告バナーなどの「重要でないと判断したFlashコンテンツについては実行を停止する」と、グーグルが6月に発表。
http://cc.mas.impress.co.jp/c/007l6i_0001bwzi_c2


要は、Chromeで見ると、Flashバナー広告は標準では最初の画像だけ表示されて動かなくなり、ユーザーがクリックするまでそのままになるようなデフォルトの仕様変更が予定されているということらしいです。

この記事に書いてある通り、Flashでの「ノートPCのバッテリーを無駄に消費している」が改善されるので、一般ユーザは喜ぶのですが、広告主にとっては死活問題ですね。


●今すぐChromeで設定を変更して影響をチェック
【参考URL】から以下の手順で、すでにこの状態を自分で確認できます。
確認するには、Chromeを最新版にアップデートしたうえで、次のようにします。

1. ハンバーガーメニュー(ウィンドウ右上)から[設定]を選ぶ
2. 下にスクロールし、[詳細設定を表示]をクリック
3. [プライバシー]セクション上部の[コンテンツの設定]ボタンをクリック
4. [プラグイン]セクションの設定を「重要なプラグイン コンテンツを検出して実行する」を選ぶ
5. 右下の[完了]ボタンをクリック



【参考URL】
http://cc.mas.impress.co.jp/c/007l6d_0001bwzi_61
http://cc.mas.impress.co.jp/c/007l5d_0001bwzi_82

2015年7月7日火曜日

【Silverlight】「Windows 10」の新ブラウザ「Microsoft Edge」はSilverlightをサポートせず


Microsoftが、7月2日に、「Windows 10」の標準ブラウザである「Microsoft Edge」ではSilverlightをサポートしないと発表したそうです。

Silverlightのサポート自体は継続し、Windows 10に搭載されるInternet Explorer 11では利用できるとのことです。

当面併存するInternet Explorer 11ではサポートするそうですので、Silverlightを使ったWebサイトはIE11で使用するしかないようです。

Microsoftは2007年、米Adobe Systemsの「Flash」に対抗するプラグインとしてSilverlightを発表してから、8年で終焉となりました。
なんか、せつないですね。

【参考URL】
http://www.itmedia.co.jp/news/articles/1507/03/news085.html
http://japan.cnet.com/news/service/35066918/ 
http://blogs.windows.com/msedgedev/2015/07/02/moving-to-html5-premium-media/ 
http://blog.livedoor.jp/itsoku/archives/45428753.html 
http://headlines.yahoo.co.jp/hl?a=20150706-00000055-mycomj-sci

2015年7月6日月曜日

[iPhone]バッテリー交換を考えている方へのアドバイス

最近どんどんバッテリーの減りが早いので、知人のSさんに相談したら、バッテリーの寿命といわれました。
たしかに2年半も使っていれば、バッテリーの寿命ですね。

そこで、今日会社近くのSoftbankショップに会社帰りに、バッテリー交換の相談に行ってきました。
すると、40分待た上で、秋葉原のQuick Garageを紹介されました。

待たせるのでなくはじめから、Quick Garageを紹介して頂けたら、助かったのだが。
(仕事上、順番にしなければいけないから、しょうがないか)

もし、バッテリー交換や、iPhoneの故障やトラブルを抱えている人がいたら、はじめからQuick Garageにいったほうが時間の節約になります。

しかも、Softbankショップは有料といわれたのですが、Quick Garageにいったら、バッテリー交換無料機種だから、無料で交換できるといわれました。

Quick Garageを調べてみると、、
Apple正規サービスプロバイダで、iPhone、iPad、iPodなど、Apple製品のトラブルを対応してくれる会社です
であることが分かりました。

秋葉原店は、「ヨドバシカメラ マルチメディアAKIBA 2F」にあります。


こちらのURLに営業日等記載されているので、参照ください。
http://www.gssltd.co.jp/individual/country/qg_akihabara.html

Quick Garageの店員さんは、応対が丁寧で、仕事も早く大変たすかりました。
しかし、人気があるためか、待ち時間が長いのがちょっとネック(1時間半から2時間待たされました)です。
店員さんに聞いたら、仕事帰りはいつも混むそうなので、午前中であれば20分待ちくらいですむそうです。

私の番号が7時過ぎ到着で960番台なので、一日で対応するお客様の数はすごく、店員様お疲れ様です、といった感じです。

その忙しさでも、丁寧な対応ですので、大変感謝です。

2015年7月1日水曜日

SilverlightでのTextBox入力時IMEの制御


System.Windows.Input.InputMethod 型を利用して、TextBoxコントロール入力時、IME(Input Method Editor)を制御できます。

IME のような入力方法を制御するために InputMethod というクラスが用意されています。たとえば、現在の IME の状態を取得したり、設定したりするためには以下の
  • InputMethod.PreferredImeConversionMode
  • InputMethod.IsInputMethodEnabled
  • InputMethod.PreferredImeState
という3つの添付プロパティをつけることで実現できます。


(1) InputMethod.IsInputMethodEnabled
「半角/全角漢字」キー有効・無効の切り替え
falseだと、「半角/全角漢字」が使えなくなります。


(2) InputMethod.PreferredImeState
ONだとデフォルトは「あ」で入力する、OFFだとデフォルトは「A」で入力する(日本語入力OFF)。
「半角/全角漢字」キーは有効の状態です。

(3) InputMethod.PreferredImeConversionMode
IMEの変換方式を指定できます。
Katakanaとかを指定すると、カタカナ入力になります。
詳しく下記のMSDN情報を参考ください。
http://msdn.microsoft.com/ja-jp/library/system.windows.input.imeconversionmodevalues.aspx



 カタカナ入力の例:
<TextBox InputMethod.IsInputMethodEnabled="True" InputMethod.PreferredImeConversionMode="Katakana" InputMethod.PreferredImeState="On" />

TextBox testBox1 = new TextBox(); testBox1.SetValue(InputMethod.IsInputMethodEnabledProperty, True); testBox1.SetValue(InputMethod.PreferredImeConversionModeProperty, ImeConversionModeValues.Katakana); testBox1.SetValue(InputMethod.PreferredImeStateProperty, InputMethodState.On);


【参考URL】
http://tuotehhou.y.ribbon.to/index.php?%2BSL%2BTextBox%E5%85%A5%E5%8A%9B%E6%99%82IME%E3%81%AE%E5%88%B6%E5%BE%A1

https://code.msdn.microsoft.com/windowsdesktop/XAML-WPF-IME-Windows-WPF-9ef457d7