XMLのタグとエレメント

タグはエレメントのサブセットと定義されているらしい。 エレメントにはマークアップ対象の文字列をタグで囲んだものを指す。 タグは<>そのものを指す。 タグと要素(エレメント)の違いを説明して

Pythonでのイテレータの利用②

next() next() 組み込み型関数next()

スマホアプリの通信デバック

HTTPS通信を除く方法はいくつか存在している。どちらもオレオレ証明書をインポートすればHTTPSの通信もキャプチャできるようになる。 iPhoneアプリ いくつか試したけどこれが一番。 dev.classmethod.jp Androidアプリ play.google.com

トラブル解決の方法論

プログラムであれ、NWであれ、クラウドであれ、オンプレであれ、およそシステムの構築にはトラブル発生がつきものである。トラブル解決には2通りの方向性がある。「できないこと」を確認するアプローチ「できること」を確認するアプローチだ。 できないこと…

Pythonでのイテレータの利用

Pythonでindex込みでループする場合はenumerateが一般的であるが、イテレータを使う方法もある。下のようにiter()*1でイテレータオブジェクトを用意し、next()関数で次の要素の取得を行う。 next() vs Forループ イテレータオブジェクトのnext()を利用するの…

Assert

Assertを使えば簡易確認が可能であり、オプションによって無効化も可能となる。うまく使えば実装効率向上に利用できるかも! qiita.com

Javaの型

実はJavaに関して書くのは初めてだったりする。 Nand2Tetrisを読んだおかげでこのあたりも意識するようになってきた。 プリミティブ型 こちらは変数には値そのものが格納される。 boolean byte char short int float long doubule 参照型 こちらは変数には参…

組み込み型一覧

組み込み型 + 数値型 | + 整数 | + 長整数 | + 浮動小数点 | + 複素数 + シーケンス型 | + 文字列 | + ユニコード文字列 | + リスト | + タプル + マップ型 | + 辞書(ディクショナリ) + ファイルオブジェクト 参考 http://www.python.ambitious-engineer.com…

文字コード

文字コードみたいなのって意外に重要だったりすることが多い。 文字コード 文字コードとは、コンピュータ上で文字を利用する目的で各文字に割り当てられるバイト表現。 (符号化)文字集合と(文字)符号化形式 (符号化)文字集合:世界中の文字の集合 (文…

Gitチェックアウトコマンド

Git

本当に今更なんだけど。。。チェックアウトコマンドには2通りの使い方がある。 ブランチの切り替え 複数ブランチ間の切り替えに用いる。 ワーキングツリーへのファイル展開 ワーキングツリーで編集したファイルを差し戻す場合に利用する。 # コミット「6f87…

クラス設計雑記

最近スクリプト*1に機能追加してプログラム*2を作成する機会があった。 最初はなんとなく実装しながら必要に応じてクラスを追加していったが、途中からロジックをシンプルにするために、あちこちのクラスのメンバーの修正が発生してしまい、結局最初に書いた…

動的型付け・静的型付け

動的型付け...変数の型をプログラムの実行前に規定しない。型宣言が不要。 静的型付け...変数の型をプログラムの実行前に規定する。型宣言が必要。

仕様なし開発

開発では事前に仕様を定義して、その仕様に基づいてプログラムを作成する。しかし中には様々な理由で仕様がない(あってもほとんど意味がない)まま開発する場合がある。 その場合はできた実装が仕様である。こうなると当然テストケースの作成などはできない…

次元の呪い(球面集中化現象)

次元の呪いとは、高次元データの場合データのほとんどが原点から遠い場所に集中していること。 高次元空間の球は体積のほとんどが表面付近に集中。 高次元空間ではメロンパンのほとんどは皮。 mathwords.net

型とは

質問: 型とはなんですか? 回答:値の意味です。 あえてプログラミング言語に限定せず、NW・IO・HW等も含む広義の意味でのコンピュータがやり取りするのは2進数の羅列だけである。そうした2進数の羅列を意味づけし解釈するには「型」が必要となる。この意味…

リファクタリング

リファクタリングにも定義があったのね。。 リファクタリングの定義 リファクタリングとは外から見たときの挙動は変えずに内部のコードだけを変更すること。 リファクタリングには挙動が変わらないことを保証する手段としのテストコードが必要である。 テス…

プログラムカウンタ

プログラムカウンタ用のレジスタは、名前は違えどもどのCPUにも必ず存在する。 ハードウェア的な観点からは、プログラムカウンタの数=同時に実行できるプログラムの数である。 マルチコアCPUには各コアごとにプログラムカウンタが存在する。 Intelのハイパ…

無線LANの帯域

各帯域の特徴をしっかり抑えること!! 2.4GHz帯域 回析するため障害物に強い。 電子レンジなどの家電が利用する帯域と重複し電波干渉の恐れがある。 5GHz帯域 W56帯以外は屋外の利用は法律上認められていない。 W53帯およびW56帯にはDFSおよびTPCの実装が必…

チャンネルボンディング

チャネルボンディングとは 束ねた複数チャネルを用いることで通信速度更新する技術。 11nでは束ねるチャネル数は2つまで 11acでは束ねるチャネル数は4/8/16まで チャネルボンディング時のチャネル幅 chを束ねない場合は20MHz幅 chを2つ束ねた場合40MHz幅 ch…

無線LANのチャネル

本当に自分の頭の中で整理して、一度自分自身の言葉で書き出さないと何もかも忘れてしまう。。 チャネル IEEE802.11nでは2.4GHzおよび5GHz帯域を利用する。帯域という言葉がある通り正確には2.4GHzおよび5GHz近傍の連続する帯域をチャネルという単位に分割し…

無線LANの基本

そもそも 周波数が300GHz~3THzの電磁波を電波という。 周波数と波長 c = fλ より波長と周波数は逆の関係。 波長が長いほど周波数は低く、波長が短いほど周波数が高い。 天候による影響 周波数が高いほど雨天による悪影響が大きい。 雨の日に1kmの減衰は 10G…

AWSの環境構築(EC2)

現在追記中 インスタンスの作成 コンソール画面からGUI経由で5分もかかわらず作成可能! キーペア キーペアをダウンロードは初回しかできないことに注意。 EC2インスタンスの確認 CLIで作成したインスタンスの確認が可能なはずがなぜかできない。 結局コン…

AWSの環境構築(S3)

S3(Simple Storage Service)へのファイルのアップロードはCLI経由で行うため、最初にCLI環境の構築が必要。 S3の概要 S3はその名前の通りオブジェクトストレージ。 99.999999999%(ナイン・イレブン)の耐久性を実現する。 S3は単純なKVS(Key-Value型デー…

AWSのアカウント管理

AWSのアカウント管理は複数機能あるためまとめた。現在加筆中。 ベスト・プラクティス ルートアカウントはアクセスキーおよびシークレットアクセスキーを利用しない(ルートアカウント自体を普段利用しないため問題ない)。

認証の種類

記載中 ベーシック認証 IDとパスワードをサーバに送信することで認証する。 IDとパスワードが漏洩した場合は第三者によるなりすましが可能となる。 パスワードを暗号化した場合でもリプレイアタックの恐れがある。 チャレンジ・レスポンス認証 サーバ側から…

Gitコマンドチートシート(commit/push取り消し)

Git

焦らず少しづつマスターしていこう!! commitの取り消し resetとrevertの2通りが存在する。revertのほうが安全ではあるが不要な履歴がログに残ってしまう。resetはその逆。 resetはcommit履歴および修正履歴自体が削除される。 revertはcommit履歴および修…

汚いソースコードの分類と対策

「綺麗なソースコードはどれも似ているが、汚いソースコードは千差万別だ」by トルストイ 「良いソースコードは短いけど理解に時間がかかるソースコードではなくて、長くても理解するまでにかかる時間が短いソースコード」というのが私の哲学です。 たまには…

AWSの環境構築(VPC)

現在加筆中。 VPC(Virtual Private Cloud) VPCの構築自体では料金は発生しない。 VPNおよびNatGateway利用時に料金が発生する。 リージョン・AZ AWS → 複数リージョン → AZ(Availability Zone) サービス単位 サービス毎にスコープが異なる。 グローバル…

PEP8(命名方法)

一番知りたかったところ。実装時にここに最も頭を使います。 原則 公開されている API の一部としてユーザーに見える名前は、実装よりも使い方を反映した名前にすべきです。 l(小文字L),O(大文字O),I(大文字I)を変数に利用しない。 実践されている命名…

AWSの環境構築準備(ユーザの作成まで)

AWS

qiita.com とりあえず設定は完了した。MFAは初回登録時以降は入力数値は1パターンのみでよい。 次回以降はいよいよ実際にクラウド上に環境の構築!!! IAM (AWS Identify and Access Management ) AWSのユーザ管理やリソースのアクセス管理を行うサービス…