読みかけの技術ノート

やったこと、困ったこと、解決したこと、書いていきます。

データベーススペシャリスト試験のために1ヶ月間でやったこと

はじめに

去年の春は試験会場にすら行かなかったので今年こそは、でリベンジ。
セキュリティスペシャリストの時と同じく、記録がてらブログに残そうと思う。
以下は受験時の前提条件。

  • 新卒4年目になったばっかり
  • 業務では開発時にOracleを触る程度。設計の経験は無し。
  • SQLは業務で使うので問題なし。

使った書籍やサイト

勉強の進め方

  • 午前問題は勉強期間を通して演習しておく

  • 情報処理教科書で基礎知識を学ぶ
    個人的な勉強法としては、こういったイチから学ぶ場合、理解度は横において繰り返し読むことを重視している。
    初めから100%理解できるわけもなく、ペンキを塗るように全体をムラなく学ぶ感じ。1~2日で1周みたいに。
    これを2週間くらい。

  • ポケットスタディで細かいところを埋める
    試験で問われそうな部分について、重要度順に強化していく。
    これを1週間くらい。

  • 過去問での演習
    直近3年分以外は、テキストの学習に平行して、適宜確認演習として使用する。
    試験1週間前から、実際に過去問でまとめて演習。
    2回くらいは時間をはかって取り組むのがよいと思う。
    特に午後1は時間がかなりタイトなので。。

結果

合格しました。午前2:84 午後1:86 午後2:68
午後2、手応え通りの微妙な感じ。。

Xamarin(Visual Studio)でデザイナーがエラーで機能しない

環境

現象

  • axmlファイルはソースとデザイン画面があるが、デザイン画面での編集が出来なくなる。
  • エラーメッセージとしては以下が表示される

      Connecton to the layout renderer failed. This may be caused by misconfiguration of Java.
    
  • Xamarinのログファイル(%USERPROFILE%\AppData\Local\Xamarin\Logs)では以下のエラーが出力されていた。

      Xamarin.VisualStudio.ActivationManager Information: 0 : [2016-05-29 14:56:47.3330] Error occurred during initialization of VM
      Xamarin.VisualStudio.ActivationManager Information: 0 : [2016-05-29 14:56:47.4908] Could not reserve enough space for object heap
      Xamarin.VisualStudio.ActivationManager Information: 0 : [2016-05-29 14:56:48.0968] Error: Could not create the Java Virtual Machine.
      Xamarin.VisualStudio.ActivationManager Information: 0 : [2016-05-29 14:56:48.2438] Error: A fatal exception has occurred. Program will exit.
      Xamarin.VisualStudio.ActivationManager Error: 0 : [2016-05-29 14:56:49.6750] Connection failed
      System.AggregateException: 1 つ以上のエラーが発生しました。 ---> System.Exception: Could not start Java process
         場所 Xamarin.AndroidDesigner.JavaProcessConnection.<>c__DisplayClass70_0.<InitializeJavaProcessAsync>b__0()
         場所 System.Threading.Tasks.Task`1.InnerInvoke()
         場所 System.Threading.Tasks.Task.Execute()
         --- 内部例外スタック トレースの終わり ---
      ---> (内部例外 #0) System.Exception: Could not start Java process
         場所 Xamarin.AndroidDesigner.JavaProcessConnection.<>c__DisplayClass70_0.<InitializeJavaProcessAsync>b__0()
         場所 System.Threading.Tasks.Task`1.InnerInvoke()
         場所 System.Threading.Tasks.Task.Execute()<---
    

対応

  • システム環境変数_JAVA_OPTIONSを設定する。(値例:-Xmx512M

つぶやき

ちょっとしたバランスの崩れでエラーが出てしまい、時間がくわれて辛いなあ。よく理解できていない、ということだろうけど。

Xamarin.AndroidでListViewを実装する

実装例

独自アダプターを作ってみました
https://github.com/yomika4-14/ListViewSample

簡単な説明

MainActivity.cs

ListView memoList;
MemoListAdapter memoListAdapter;
List<Memo> memos;

// 省略

btnDeleteAllMemo.Click += (sender, e) =>
{
    memos = new List<Memo>();
    memoListAdapter = new MemoListAdapter(this, memos);
    memoList.Adapter = memoListAdapter;
};

Memo.cs

  • ListViewに表示させるメモのクラス

MemoListViewAdapter.cs

  • 独自アダプター
  • BaseAdapterクラスを継承する
  • MemoクラスとListViewクラスの橋渡し役
  • GetViewメソッド内でリスト1項目分を設定している
public override View GetView(int position, View convertView, ViewGroup parent)
{
    Memo memo = memoList[position];

    // Viewが再利用されていない場合は新しく作成
    var view = convertView;
    if (view == null)
        view = context.LayoutInflater.Inflate(Resource.Layout.Memo, null);


    // 表示内容の設定
    TextView tvTitle = view.FindViewById<TextView>(Resource.Id.title_text);
    TextView tvContent = view.FindViewById<TextView>(Resource.Id.content_text);
    TextView tvMemoDate = view.FindViewById<TextView>(Resource.Id.date_text);

    tvTitle.Text = memo.title;
    tvContent.Text = memo.content;
    tvMemoDate.Text = memo.memoDate.ToString("yyyy/MM/dd HH:mm:ss");
    
    return view;
}

Main.axml

  • メイン画面のレイアウト

Memo.axml

  • メモ一つひとつのレイアウト

実際の画面

f:id:yomika414:20160507190235j:plain

NuGetでパッケージの管理ができなくなった

背景

諸事情により、システムの復元をしたところ、VisualStudioでプロジェクトを右クリックして出てくるはずの[NuGetパッケージの管理]が出てこなくなった。
また、メニューの[ツール]-[オプション]で[NuGetパッケージマネージャー]を選択しても、「プロパティファイルの読み込みでエラーが発生しました]」という文言が出て、設定が変更できなくなった。

環境

  • Windows10 64bit
  • VisualStudio 2015

対処法

結論から言うと、NuGetパッケージマネージャーをアンインストール→再インストールでOKだった。

手順

  1. [スタートメニュー]→[ツール]→[拡張機能と更新プロジェクト]をクリック
  2. 右上の検索ボックスで「パッケージ」と入力する
  3. 中央ペインに表示されたNuGetパッケージマネージャーの[アンインストール]をクリック
  4. アンインストール後、左ペインの[オンライン]をクリック
  5. 右上の検索ボックスで「パッケージ」を入力
  6. 中央ペインに表示されたNuGetパッケージマネージャーの[インストール]をクリック
  7. ダイアログにそってインストールする

Window10にアップグレードしたらタッチパッドが自動で無効にならなくなった(Lenovo G580)

背景

仕事でWindows10を半年ほど扱ってきて特に不満もなかったので、自宅のメインノートPCをWindows10にアップグレードした。
クリーンインストールをしたのだが、それまでUSBマウスを接続すると、自動でタッチパッドが無効になっていたのに、その動作をしなくなった。
本来であれば Fn + F6でタッチパッドの有効/無効が切り替えられるが、それも効かない。

環境

Windows10 64bit Home
バージョン 1511 (10586.164)

対応

  1. デバイスマネージャーを起動
  2. [マウスとそのほかのポインティングデバイス]→[Lenovo Pointing Device]を選択し、右クリック
  3. [ドライバー ソフトウェアの更新]を選択
  4. [コンピュータを参照してドライバー ソフトウェアを検索します]を選択
  5. 検索場所をC:\(Cドライブ全体)として[次へ]を選択
  6. 処理が終わったらダイアログを閉じる
  7. [デバイス設定]タブで[USBマウス接続時に内蔵ポインティングデバイスを無効にする]をチェック

Raspberry Pi2 にIPが割り当てられなくて困った話

環境

  • Windows7 64bit
  • Buffalo WHR-300HR(ルーターDHCPサーバー)
  • Raspberry Pi2 Model B(Raspbian JESSIE 11.21版)

経緯

RaspberryPiを作っては壊して遊んでいたら、急にLANに接続してもIPが割当たらず、Windowsから接続できなくなってしまった。
ラズパイはルーターのLAN側ポートに接続していた。

解決策

結論から言うと、ルーターファームウェアをバージョンアップしたら、今まで通りLANに接続した時点でDHCPからIPが割り振られるようになった。
多分、の話だけども、IP競合が起きてしまったのではないかと思う。
ファームウェアアップデートのタイミングでリース情報の履歴がリセットされたため、解決したのではないかと推測。

やったこと

  • ラズパイをディスプレイに繋ぎ、IPアドレスを確認。
    →169.254.XXX.XXXのリンクローカルアドレスになっていた。
    この時点でDHCPからIPが取得できていないことに気付く。

  • 念のためOSを最新のRaspbian JESSIE 2.26版にして再インストール。
    →上と同じ結果に。

  • LANに接続した前後のルーター側のログを見る。
    sending OFFER ...``Request incoming from ...は見当たるが、ACKが来ていない。割り当てのやり取りが上手くいっていない?

  • ルーターのIP固定設定を解除してみる。
    →状況変わらず。

  • Windows側の有線LANポートと無線LAN(メイン)をブリッジ接続し、ラズパイと有線LANで接続。WireSharkでパケットをキャプチャしてみる。
    DHCP decline...``Duplicate...というような文字列が頻繁に見える。

  • Windows側の有線LANポートでインターネット共有を設定し、ラズパイを有線LANで直接接続。
    →有線LAN側のネットワークで無事IPが割り当てられ、ここでラズパイに接続することはできるようになった。

  • 結局にっちもさっちもいかない状態になったので、ルーターファームウェアをアップデート。
    →再起動後、元通りルーターのLAN側ポートに有線で接続すると、無事IPが割り当てられた。

まとめ

IP固定のあたりで変な設定にしてしまったのだろうと思う。重複という文言も出ていたし。
DHCPのあたり、仕組みをぼんやり理解しているだけなので、勉強せねば…。

セキュリティスペシャリスト試験のために1ヶ月間でやったこと

はじめに

勉強を始めたときの状況を書く。

こんな状態で2015年9月も中ごろになり、そろそろ勉強を始めないと大変、ということで重い腰をあげて勉強を開始した。

使った書籍やサイト

勉強の進め方

基礎知識はある程度あったので、本当の意味での基礎勉強はすっ飛ばした。

  • 情報セキュリティスペシャリストドットコムで、1週間くらい集中して午前問題を解く
    大体の問題が正解できるようになったら、試験までは25問/日くらいで復習をしておく。

  • ポケットスタディを読み進める
    私の場合は以下のような順で進めた。

    • 重要度3の項目 + 後半のサプリメント
    • 重要度3の項目 + 重要度2の項目 + 後半のサプリメント + 後半の過去問
      ※本当は重要度1の項目についても着手したかったが、時間がなかったため断念…
      試験直前の電車の中で読んだりした。
  • 「情報セキュリティ10大脅威 2015」を一読する。
    仕組みや対策を中心に流し読みしただけ。

結果

合格しました。午前2:84 午後1:67 午後2:84

毎度ながら午後1が鬼門。