技術日記()

てきとーに気になったことなど書いていきます

Proxy環境下でのDocker導入メモ

環境

% uname -a
Linux sakura 3.16-2-amd64 #1 SMP Debian 3.16.3-2 (2014-09-20) x86_64 GNU/Linux

% lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 8.7 (jessie)
Release:    8.7
Codename:   jessie

導入手順

まずは公式通り進める リンク(以下手順は上記環境の場合のもの)

# バージョンが3.10以上か確認
% uname -r
3.16-2-amd64

# 必要なパッケージのインストール
% sudo apt-get install \
     apt-transport-https \
     ca-certificates \
     curl \
     gnupg2 \
     software-properties-common

# プロキシ未設定の場合は「-x xxx.xxx.xxx:8080」で設定
% curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

# dockerをインストールパッケージリストに追加してインストール
% sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"
% sudo apt-get update
% sudo apt-get install docker-ce

dockerの動作テスト

% sudo docker run hello-world

ここでプロキシが原因で通らないかつsystemd環境以外の場合は
export https_prox=...export http_proxy=...をすれば通るらしい.
私はsystemd環境だったので以下の設定をした.

# systemd環境用proxy設定
% sudo vim /lib/systemd/system/docker.service

# docker.service
...
[Service]
Environment='http_proxy=http://xxx.xxx.xxx:8080'
Environment='https_proxy=https://xxx.xxx.xxx:8080'
...

# 設定を読み込み直して再起動
% sudo systemctl daemon-reload
% sudo systemctl restart docker

おまけ Dockerfile からのイメージ作成時のプロキシ設定

# Dockerfile
From ...
ENV http_proxy http://xxx.xxx.xxx:8080
ENV https_proxy https://xxx.xxx.xxx:8080
RUN ...
RUN ...
% sudo docker build .

参考サイト

docs.docker.com qiita.com

応用情報技術者試験の勉強法

はい...
今年の春に合格しました.

f:id:Klavier4869:20161223010430p:plain:w300

4回も受験した上にめっちゃぎりぎり合格だったので記事を書いてませんでしたが, セスペに合格した記事を書いたのでついでに応用も軽く書いておきます. klavier4869.hatenablog.com

午前対策

午前はひたすら過去問を解いとけば60点は超えます.
私はこのサイトで勉強しました.
応用情報技術者試験ドットコム

午後対策

はい...
3回とも午後で落ちてました...
午後は複数の問題から5問解きます.
4回受けた結果, 午後は最低3つ得意分野にしておくべきだと思いました.
まず必須のセキュリティは確実に押さえておくべきです. 残り選択でのおすすめはプログラムとネットワークです. 特に理系の方はプログラムで高得点が狙いやすい思います. ネットワークでも網羅的に知識をつけておけばどんな問題でもそれなりに点数が取れると思いますが, ここは自分の得意分野でいいと思います.
ただプログラムは本当に点数が取りやすいのでおすすめです.
あとは, 後ろの方の設問が国語の問題率が高いのでマネジメント, 監査あたりから解けそうなのを選びました.
午後対策で使った参考書はこれです.

2017 応用情報技術者 午後問題の重点対策 (午後試験対策)

2017 応用情報技術者 午後問題の重点対策 (午後試験対策)

解説や解き方のテクニックなどがのっていてとても参考になりました.

最後に

自分の場合はかなり不真面目さがにじみ出ていましたが,
3つ得意分野を作り, 他の2~3個の分野もある程度勉強しておくのが一番いいと思います.
まあお察しの通り自分は後ろの問題が解きやすいことを天に祈っていました...

セキュリティスペシャリスト(情報処理安全確保支援士)の勉強法

秋にセスペ合格できたので勉強法をまとめておきます。
安全確保支援士という資格に来年から変わりますが、内容は同じらしいです。

f:id:Klavier4869:20161223002933p:plain:w400

ちょーぎりぎり...(汗)

午前対策

午前IIの内容は半分くらいの過去問なので 、 ひたすら過去問を解いとけば60点は余裕で超えると思います。
自分はこのサイトを使って勉強しました。

www.sc-siken.com

午前Iは応用情報の範囲なので午前IIと同様に上記と同系列のサイトで午前の過去問を解いとけば多分大丈夫だと思います。

午後対策

午後はひたすら過去問を解きました。
特に実務経験の無い方は問題を解いて経験値を貯める必要があると思います。 また知識以上に問題文を読み、求められている回答を指定の文字数以内に収める国語力が重要になります。 そのあたりのテクニックを知った上で過去問を解いていくと効率よく勉強ができると思います。 私は回答パターンや文字数調節のコツがのっているこの本を使って基礎知識と国語力をつけました。

ただ知識0の状態で読むのは大変だったので、午前問や合格教本から基礎的な部分を勉強してから読んだ方がいいと思います。

過去問はこの本を使いました。

2016 情報セキュリティスペシャリスト 「専門知識+午後問題」の重点対策 (午後対策シリーズ)

2016 情報セキュリティスペシャリスト 「専門知識+午後問題」の重点対策 (午後対策シリーズ)

ジャンルごとに基礎知識と過去問、解説が丁寧に紹介されていたのでとても使いやすかったです。 他にもこれまでの出題割合も書かれていて、どの問題がよく出ているのかも分かりました。 そのため、どのジャンルを優先的に勉強するかの計画が立てやすかったです。

ここまで紹介した本は少し邪道なとりあえず合格したい人向けの本でしたが、 真面目に知識をつけるために資格を受けているんだという方は以下の本がお勧めです。

おなじみの合格教本

情報処理教科書 情報処理安全確保支援士 2017年版

情報処理教科書 情報処理安全確保支援士 2017年版

暗号周りの本

暗号技術入門 第3版 秘密の国のアリス

暗号技術入門 第3版 秘密の国のアリス

IPA公式の資料

ちなみに不真面目な私は数ページ読んだ後どこかへいきました...

最後に

私は1ヶ月間で午前問とポケスタで基礎知識をつけ、半月くらい午後問を解いてました。 多分実務経験がある方は午前の過去問とポケスタを読めば受かると思います。

以上が自分の勉強法になります。

お金がかかるようになる前になんとかセキュスペ取れてよかったです...
あとはDBとネスペ取って目指せ3冠!

KotlinでAndroid開発

タイトルで開発とか言ってるけど、
JAVAですらアプリ作り遂げていないど素人です...

経緯

Kotlin名前かわいい!
Javaやめて、これでAndroid開発するか!

以上です。

今回はKotlinでカスタムリストビューを作ってみました。
コードが糞なのは許してください...

まずKotlinとは...

Kotlin(ことりん、コトリン)は、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、静的型付けのオブジェクト指向プログラミング言語である。
-wikipediaより-

とりあえず出来たモノ

klavier4869/KotlinCustomListView · GitHub

自分的に新鮮だったKotlinの文法まとめてみた

//newがない
a = new b();  //java
x = y()       //kotlin
//変数宣言
var a: Int = 1  //読み書き可
val b: Int? = null  //読み込みのみ

//`?`をつけるとnullを代入できる
//あと、変数にはsetter,getterが自動で生成されてカスタマイズも出来るっぽい

var listview: ListView =
    findViewById(R.id.listview) as ListView  //ついでにキャスト例
//  クラス宣言
class a(): b(){  //bを継承したクラスa
    inner class c(){}  //クラス内クラス
    override fun d(): Int{return 1}  //オーバーライド+返り値Int型
}

//`private`とかも使用可  
//コンストラクタを使用する場合
class a(b: Int, c: Int){
    init{  //コンストラクタ
        var b = b  //見にくいけど、こういうのもあり
        var c = c
    } 
}
//javaのクラスも使える
var ItemList = ArrayList<Item>()

まだまだ良くわかって無い感が...
その他、オブジェクト系のことも色々目新しい点があったので、
ちょっとずつ慣れていこうと思います。
あと本当名前かわ(ry

Kotlinの文法で参考になったサイト

プログラミング言語Kotlin 解説

ctf4b滋賀 WriteUp

初めての勉強会に行ってきました。
ctf初心者の自分には参考になるお話が
たくさん聞けてとてもためになりました。

以下うろ覚えctf_writeup

  • ネットワーク問題
    wiresharkのフォローストリーム使ったら解けた。
  • web問題
    開発者ツールで見たら解けた。
  • バイナリ問題
    strings file名 | grep ctf*で解けた。

そんな感じで600点しか取れませんでした...
200点以上の問題が全然分からなかった、ちょー悔しい
基礎知識を固めなければ...

感想

お話はもちろん
ctfでは競う相手がその場にいて
点数を取り合っている感からの緊張感を味わえて
モチベーションの向上に繋がりました。
にしても悔しすぎる、出直してきます...

レスポンシブサイト制作の際に気をつけること

RaspberryPiにWebサーバ入れて、
早速scpでファイル送ってサイトの確認していたところ...

スマホ版が想定してたのと全然ちがうやん!!
もっと小さい状態になってほしいねん!!

経緯

はい。というわけであるレスポンシブサイトを制作中でして、
ずっとPCのブラウザ上でのみ動作確認しながら作り進めておりました。
そんな中 chrome開発ツールのシミュレーションの存在に気づき試してみると...
これマジでこれ?
となったのでWebサーバー上にアップしてみると
chromeで見たものと大体同じ感じで絶望したという流れです。

原因

とても頭の悪い話ですが、
ブラウザを小さくしていきスマホぐらいの大きさになったところが
スマホで表示されるのだろうと思い込んでいました。

私はcss@mediaでレスポンシブさせていたので
切り替えのタイミングはpxで決まっています。
そして、pxの実質的な大きさはdpiによって変動するものなので
端末によって切り替わる位置が変わっているという感じ。

つまり原因はdpiのことを考慮せずにレスポンシブの際に
%指定せずに少しずつpx指定で縮めていくように作ったことかな...

改善策

今回は使用が想定されるPCの横幅が1800pxくらいということを考えて、 1024pxくらいで切り替えるか...

調べたところスマホは大体dpi300超えで
iphone5が横幅600pxみたいだからそれくらいを考慮しながら作るといいかも

その他レスポンシブサイト制作で参考になったサイト
レスポンシブデザインを制作するなら頭に入れておくべき基本事項7つ | 株式会社LIG

Raspberry Pi2(ubuntu 14.04)にLamp入れてみた

経緯

以前からテスト用のWebサーバ欲しいなと思っていて、
先日RaspberryPiを購入してファイルサーバにしたので、
ついでにWebサーバ入れちゃおうという流れ

参考サイト
ubuntu に lamp をインストールして apache+php+MySQL 環境を作ったメモ

Webサーバ

以前Windowsでxamppを触ったことがあったのですが、
それではなくLinux系はLampというものがあるようです。

手順

macからsshでRaspberryPi操作して進めていく

  1. sudo install taskselして
    sudo tasksel install lamp-serverlampをインストール
  2. /var/www/html/というフォルダが出来てた。
    ここにファイル入れていくっぽい
  3. vi /etc/apache2/apache2.confを編集して、
    アクセス制限設定したりする。
  4. sudo /etc/init.d/apache2 restartapache再起動
  5. ブラウザでRaspberryPiのアドレス入力してアクセス出来ているか確認

アクセス制限はとりあえず
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
的な感じで