〈復習〉確かな力が身につくJavaScript「超」入門
読みました。振り返ります。
最近、技術書を乱読していてふと気付きました。
入門書って楽しいな と。
新しい知識に出会うのって楽しいんですよね。
入門書は誰でも読めるような簡単な作りになっていて、少し知識を持っていれば楽に読み進めるので楽しいんですよね。
この本も例に漏れず楽しかったです。
内心は、簡単に思えるような本を読んでいて勉強になるのかな?とは思いますが、勉強になるかどうかは本の内容と本を読む目的によるでしょう 。
第1章イントロダクション
イントロダクションです。概要の説明があります。
第2章アウトプットの基本
JavaScriptのアウトプットには大きく分けて3種類あります。
- コンソールにテキストを書き出す
- ダイアログボックスを表示する
- HTMLやCSSを書き換える
コンソールにアウトプット
まずはここから、コンソール出力。
JavaScriptはコンソール出力をしてデバッグ作業を行うことも多いため、頻繁に使う機能です。
- console.log(出力する内容);
JavaScriptはどこに置く?
htmlの<script>タグの中に書きます。
書く場所は<head>か<body>内であればどこでも良いですが、一般的には</body>の直前に書くことが多いようです。
今の現場では<head>内書いていますが、、、
<script>タグは別ファイルを指定することもできるので違うファイルに書くこともあります。
- <script src="script.js"> ... <script>
ダイアログボックスを表示する
コンソールの出力とほとんど変わりません。
alertはよくデバッグで使いました。
- window.alert(ダイアログボックスに出力する内容);
- alert(ダイアログボックスに出力する内容);
HTMLを書き換える
要素の取得方法と要素の書き換えを学びます。
- documento.getElementById(id名); // 取得
- documento.getElementById(id名).textcontent = 書き換えたい文字列; // 書き換え
第3章JavaScriptの文法と基本的な機能
Javascriptの基礎文法の章です。
if文、for文、while文などが出てきます。
条件分岐 if文
まずはここから、if文。
- window.confirm(メッセージ); // 出力した確認ダイアログがOKかキャンセルか確認して条件分岐する
if(window.confirm(メッセージ)){
console.log(true);
} else {
console.log(false);
}
その他
- window.prompt(メッセージ); :入力ダイアログを表示する
- 条件分岐(else if) :if文の条件を増やす文
- 比較演算子 :データを比較する
- データ型 :整数や文字列の種類のこと
- Math.floor(Math.random()*整数); :ランダムな整数を生成
- parthInt(文字列型の整数); :文字列型の整数を整数の型に変換
- 論理演算子 :かつ = && 、 または = ||
- for文 :回数指定の繰り返し処理
- i++ :インクリメント
- i-- :デクリメント
- while文 :条件指定の繰り返し処理
- 変数の代入の省略 :enemy = enemy - atack; 同義 enemy -= atack;
ファンクション
ファンクションを用いると、よく使う処理を何度でも使えるようにまとめることができます。
ファンクションを変数に入れると、ファンクションを一種のデータとして扱えます。
var 変数名 = function(引数){
処理内容
~~~
}
配列
- 配列 :複数のデータを格納する
- 配列.pop() :配列の最後のデータを削除する
- 配列.push(データ) :配列の最後にデータを追加する
- 配列.shift() :配列の最初のデータを削除する
- 配列.unshift(データ1、データ2、・・・) :配列の最初にデータ1、データ2•••を追加する
オブジェクト
オブジェクトは配列にプロパティ値が加わったようなものです。
これまでに出てきたwindowやdocumentもすべてオブジェクトです。
ver 変数名 = { プロパティ: データ };
第4章インプットとデータ加工
フォームの入力、日付処理、配列などのデータ加工をHTMLに表示します。
フォーム
要素にイベントを設定します。
// htmlタグのsubmitボタンを押した際に作動するイベント
document.getElementById("form").onsubmit = function() {
console.log("クリックされました");
};
// 入力内容の取得
var search = document.getElementById("id名").name属性.value;
Dateオブジェクト
// 現時点の日付オブジェクトを作成
var now = new Date();
// 変数nowに格納されている年月日分ごとに日付を取得
var year = getFullYear();
var month = now.getMonth();
var date = now.getDate();
var hour = now.getHour();
var min = now.getMinutes();
var output = year + "/" + (month +1) + "/" + date + "/" + " " + hour + ":" + min;
小数点の切り捨て
Mathオブジェクトのメソッドの紹介です。
- Math.PI :円周率 3.141592653589793
- Math.floor(数値) :小数点を切り捨てる
- Math.pow(a, b) :aをb乗する
- Math.SQRT1_2 :1/2の平方根。約0.707
- Math.SQRT :2の平方根。約1.414
- Math.abs(x) :xの絶対値
- Math.atan2(y, x) :座標(x, y)のX軸からの角度(ラジアン)
- Math.ceil(x) :xの小数点を切り上げる
第5章一歩進んだテクニック
少し難しくなってきます。
日付の計算、データの引き渡し方法、イベントの設定などです。
カウントダウンタイマー
1秒ごとに表示が変わるタイマー機能を作成します。
「待ち時間」後にファンクションの実行を繰り返す
setTimeout(ファンクション, 待ち時間);
※ファンクションに()は付けない。
日時を指定した状態でDateオブジェクトを初期化
new Date(年,月 ,日 ,時 ,分 ,秒 ,ミリ秒)
プルダウンメニューで指定ページへ
プルダウンを変更すると言語が変わる方法を学びます。
// onchangeイベントでURLを変更
document.getElementById("form").select.onchange = function() {
location.href = document.getElementById("form").select.value;
}
// URLを書き換える
location.href = 新しいURL;
document.querySelector("CSSセレクタ");
アンケートへの回答は一度だけ
js-cookieライブラリを利用してクッキーを学びます。
Cookies.get(クッキー名);
Cookies.set(クッキー名、値、{expires: 有効期限});
Cookies.remove(クッキー名);
イメージの切り替え
サムネイルクリックによる画像の切り替えを学びます。
// マッチする要素すべてを取得する
// セレクタにマッチした要素が配列の形になって取得される
document.querySelectorAll(CSSセレクタ);
// datasetプロパティの取得
取得した要素.dataset.指定した名前;
// 属性の値を書き替える
取得した要素.属性 = 値;
第6章jQuery入門
jQueryはjavaScriptのライブラリです。
// jQueryで要素を取得する
// document.querySelectorAllメソッドと同じ意味
$("セレクタ");
// 「jQueryオブジェクト」と言う独自の形で取得される
$()メソッド
// 取得した要素にイベントを設定する
$("セレクタ").on("イベント名", function(){ 処理 }
// 要素のボックスを開く・閉じる
$("セレクタ").slideToggle(スピード)
第7章外部データを活用したアプリケーションに挑戦!
RSSフィードやWebAPIに挑戦します。
RSSフィードの取得と解析
jQueryのAjax機能を使ってWordPressのRSSフィードを取得します。
Ajaxは別オリジンにあるデータを取得することができないため、PHPを使ってデータを取得します。
http://<ドメイン名>/<WordPressが保存されているディレクトリ>/feed/
InstagramAPIを利用したフォトギャラリー
本書の総まとめになります。
Instagramに投稿した自分の写真を取得して、フォトギャラリーを作成します。
WebAPIの活用方法から、レスポンシブデザインやローディングサインの付け方など学べます。
終わり
Python1年生〜2年生の3部作を読みました
特に仕事でPythonを使っているわけでも使う予定があるわけでもありませんが、いつ買ったのかも分からない本書が本棚に積まれていることに気付き、軽い気持ちで読み始めました。
実際内容も軽かったのでシリーズの3冊分読むことになりました。
巷で言われている通り、Pythonはシンプルでわかりやすい言語でした。
Python1年生
とても簡単に読み進めることができます。
超初心者向けの本で、小中学生でも読めそうな内容です。
ヤギ博士とフタバちゃんによる会話形式で話が進みます。
フタバちゃん(犬?)が可愛いくて、楽しみながら読むことができました。
あまり込み入った説明はせずに、とりあえずPythonを動かしてアウトプット先行で学習をするスタイルです。
あえて文法の説明を少なくしてプログラミングが未経験の方でも分かるように書いてあるのが、この本の特徴だと思われます。
最終的には機械学習ライブラリであるscikit-learn(サイキット・ラーン)をインポートして、画像に書いてある数字を機械学習して認識できるようにする人工知能を作ります。
scikit-learnの説明はほとんどないので、とりあえず機械学習を動かすところまでやってみよう的な感じです。
正直、本の内容は理解できるのですが文法に対する説明が少なすぎて不安になります。
心配すぎて他の本に乗り換えようか考えながら読んでいたほどです。
しかし、もう読み始めてしまったために貧乏性の私は最後まで読みました。
内容が簡単だったこともあり3時間くらいで読み終えました。
普通の技術書は3時間で読み終えることはまずあえりないので、相当簡単に書かれているのだと思います。
そして、Python2年生が出ていたのでそれも読みました。
Python2年生 - スクレイピングのしくみ -
2年生も簡単な内容でした。
今回もヤギ博士とフタバちゃんの会話形式で話が進みます。
フタバちゃんの洋服がピンク一色からボーダーに変わっていて一段と可愛くなっています。
スクレイピングとは、ウェブ上のデータを抽出する技術のことです。
機械学習に取り込む大量のデータを抽出する技術、と聞くとなんだか面白そうな気配があります、
スクレイピングを利用して何かアプリ作りたい。とか考えちゃいます。作らないけど。
ただ、スクレイピングは割とあっさり終わり、グラフの作り方、オープンデータの利用方法、Web APIの利用方法の3つのお話が続きます。
文法の説明は本書も少なかったでしたが、Pythonの大枠を短時間で理解できる、とポジティブに捉えました。
この本は6時間程度で読み終わりました。
そして、Python1年生シリーズの三冊目です。
Python2年生 - データ分析のしくみ -
今回もPython2年生です。
今回はデータ分析のしくみに関してです。
使う予定の無い言語なので自分がどこに向かっているのか不安になりつつあるところです。
発売日が1ヶ月前だったので、無意味にラッキーだなと優越感に浸れました。
まだまだPythonに関して勉強しなくてはならないことがありそうなので、これが最終章と言うわけでは無さそうですが、まだこのシリーズは3冊しか出ていないので今のところ本書が最後の本となります。
フタバちゃんの服装は黄色になっていて可愛いです。
フタバちゃんの楽天的な性格に今回も癒されました。
Pythonに関するデータ分析の本ですが、Python以外でも使えそうなデータ分析に関する知識が学習できました。
統計学の話が多いです。
- PPDACサイクル Problem(課題の設定)/Plan(計画)/Data(データの収集)/Analysis(分析)/Conclusion(取りあえずの結論)
- 代表値 データの分布の中心的な位置を表す一つの値
- 中央値 データを大きさの順に並べてちょうど真ん中にくる値
- 最頻値 最頻値とは度数の最も多い階級に対する値
- 正規分布 確率論や統計学で用いられる連続的な変数に関する確率分布の一つ
- 回帰分析 結果となる数値と要因となる数値の関係を調べて、それぞれの関係を明らかにする統計的手法
- 相関係数 2つの確率変数の間にある線形な関係の強弱を測る指標
言葉の意味だけ見てもわからないので 、実際に動かさないとですね。
結果、これらのシリーズは大変読み進めやすく、アウトプット先行型のこの本は良書でした。
Python自体も動的型付け言語だけあってわかりやすく、私のメイン言語であるJavaと比べるとだいぶ理解しやすかったです。
<復習>デイトレード -マーケットで勝ち続けるための発想術-
復習。
本書の説明として、
一言で説明するなら、
トレードをする際の心がけを教えてくれる書籍です。
トレーダーに限らず、すべてのプロフェッショナルな人にとって大切な言葉が綴られています。
プロフェッショナルになるための言葉ではなく、プロフェッショナルな人も成長し続けるための心構えです。
しかし、本書は私にはあまり響かなかったです。
Amazonの口コミを見ると大変好評で、ネットの評価が高いのも納得のできる内容で、とても大事なことを言っているような気はします。
精神的な部分は重要だと思いますが、抽象的な話が多くまだ経験が浅いために理解が及ばなかっただけかもしれません。
少なくとも今の自分には早かったようです。
時間が経ってから再度読み直したいと思います。
精神を律することがどれだけ大事か
すべての話は”損失を最小限に減らして如何にして利益を増やしていくか”につながります。
基本的なことを忠実にやる。
基本的なことを忠実にやることが如何に難しいか。
欲を欠いて基本から外れないためにどうすればよいか。
欲を欠かないために平常な精神を保つにはどうすればよいか。
十分な知識をもち、冷静にコストを見極められるか。
日々の負けをどのように成長につなげるか。
日々の勝ちで天狗にならないためには。
常に謙虚にいる成長し続けるトレーダーになるには。
これらのような精神的な話が本書の内容です。
補足
そもそも原作は英語で執筆されており、前半の第一部はトレーダーの心構えのお話で、後半の第二部がスキルについてのお話のようです。
そして本書は前半の第一部を翻訳したものなので、心構えの話がメインになっています。
後半のスキルの部分はアメリカの企業を具体例として執筆されていて内容が日本向けでは無いため、翻訳はされていないようです。
ドットインストールのJavaScriptシリーズ3部作を見て思ったことつらつらと
ドットインストール面白かった。
今回見た動画は下記です。
ドットインストールはスピーディに終えられるので非常にありがたいです。
大体の動画が2分〜3分です。
30分もあれば10個の動画が見れます。
プログラミングをある程度している方なら本を読むよりも労力が掛からず全体像を掴むことができます。
ただ、初心者の方は動画のスピードについていけないと思われます。
ある程度プログラミングをしている方限定です。
もちろん、実際に使えるようにするには制作していかないとなりませんがそれは本を読んでも同じことです。
プログラミング学習は如何にインプットに労力をかけずにアウトプットに時間をかけられるかで学習スピードが変わってきますので、全体像を早く掴むことは重要です。
なので、そんなインプットをさらっと終えたい方にはとても良いサービスだと思います。
ちなみに、これらの動画はドットインストールのプレミアム会員にならないと見れません。
プレミアム会員になるには月額1080円掛かります。
私はひと月だけ入会して、これらの動画と他にもチョロチョロ見ましたが、ほとんどJavaScriptしか見ていないので、そのために入会したようなものです。
安めの本を1冊買ったと思えば全然安いです。
入会すると機能も色々と使えるようになります。
- 質問機能
- デモプレイ
- 動画の文字起こし
- 動画上のコード
が、私はほとんど使っていません。
ドットインストールは内容が充実しているとか、様々なプログラミング言語を網羅しているとか言われていますが、そこは関係なく、見たい動画があレバ見ればいいだけの話だと思います。
有料会員になれば全部の動画が見れるようになるので、勿体無いから見れるだけみようとか考えるのはむしろ時間が勿体無いです。
必要なタイミングで必要な部分だけ見るのがベストだと思っています。
結果、
1080円から入れるので、見てみたい動画があればひと月だけ入って一月のうちにそれだけさらっと見る。の使い方が良いと思います。
ちなみに無料で見れる動画もあります。
<書評>アフィリエイトブログ入門講座 - 今日からはじめて月10万円稼ぐ -
本日は下記の本の書評をしたいと思います。
この本はアフィリエイトの知識が無い方でも読める非常に敷居の低い本です。
アフィリエイトブログを始めたい方が一番最初に読む本として良書だと思います。
この本を読めば知識がゼロからアフィリエイトの全体像を掴めて、ブログの立ち上げ方法や記事の書き方などを学べます。
ただ、とても入門向けなのですでに自分のブログサイトを持っているような方には物足りないと思われます。
内容
アフィリエイトとは?
アフィリエイトとはインターネット広告の一種で、商品が売れたタイミングで広告料がもらえる「成功報酬型広告」と言われています。
ブログを始める前に知っておきたいこと
- ブログはすぐに成果が出るわけでは無いので楽に稼げるわけではありません。時間がかかります。
- ブログのジャンルを決めると更新が楽になり長く続けることができるようになります。
- 記事を書く前に要点を整理して、読者の立場に立っている記事にします。
その他
- 実践的な内容でブログサービスの作り方からASPの登録の仕方、Google Analyticsの導入
- ブログのアクセス数や収益を増やすためのテクニックなどのお話
- 読者のターゲットを絞り込んで、掘り下げた記事を書けば読者にとって有益な記事にする
記事を書く際のコツ
- 記事の文字数に正解は無い
- 記事を書く際は検索結果の上位になっている記事がそのまま参考になる
- 自分の悩みは他人も知りたい情報になる
- ブログのデザインはかっこよさより読みやすさ
- ASPの問合せには必ず返信して積極的に交流する
〜最後に〜
ブログは結果が出るまで時間が掛かります。
ブログの収益が伸びたら世界が広がり、生活をよりよくできます。
アクセスが伸びなくても楽しく続けることが重要です。
〈書評〉かんたん合格 基本情報技術者教科書 - 単語まとめました -
2020年10月18日(日)の基本状況技術者試験に合格するべく本書を読みました。
※コロナの影響で試験が延期となりました。
正直に言って説明が簡素すぎてわかりにくかったです。説明の無い単語が出てきて、ネットで調べれば問題ないですがわざわざネットで調べるのもめんどくさいですし本を読みながら理解したかったです。
本書は電子版をダウンロードできるようですが、アプリではなくPDFである上に個人情報を登録するのが面倒だったため使用しませんでした。
本書に出てきた単語をこの場でまとめていきます。
0章 出題増の数学問題で点を取る!
数学の問題です。そこまで難しい問題ではなかったですが、公式を覚えないと太刀打ちできません。
順列 nからr個 順番を区別して取り出す
- nPr = n! ÷ (n-r)!
重複順列 nからr個 重複を許して取り出す
- nのr乗
組合せ nからr個 順番を区別しないで取り出す
- nCr = n! ÷ r!(n-r)!
確率の求め方
- P(A) = 事象Aが起きる場合の数 ÷ 起きる可能性のある全事象
独立事象の乗法定理
- P(A∩B) = P(A) × P(B | A)
片方が条件付き確率であるときの乗法定理
- P(A∩B) = P(A) × P(B)
1章 ハードウェア
- 静電容量方式タッチパネル タッチした部分の表面電荷の変化から位置を検出
- 3Dプリンタ 熱溶解積層方式などにより、立体物を造形
- 液晶ディスプレイ バックライトや外部の光を使って表示
- 有機ELディスプレイ 電圧を加えると発光ダイオードのような物質が自ら光って表示する
- アンチエイリアシング 液晶ディスプレイなどで、傾いた直線の境界を滑らかに表示する方法
- フラッシュメモリ データの書込み、消去を電気的に行う半導体メモリ。回数に制限があるが、ブロック単位で書き替え可能
- DRAM コンデンサで構成、安価、リフレッシュが必要、主記憶で用いられる
- SRAM フリップフロップで構成、高価、キャッシュメモリで用いられる
- SDRAM DRAMの一種
- キャッシュメモリ CPUと主記憶の間に置いて処理を高速化するメモリ
- ライトスルー方式 キャッシュメモリと主記憶の両方に同時に書き込む
- ライトバック方式 キャッシュメモリにだけ書込み、キャッシュメモリから当該データが追い出されるときに主記憶に書き込む
- クロック周波数 CPUが1秒間に刻むクロックの数
- プログラムカウンタ 次に実行する命令のメモリ番地を記憶。割り込み発生時には、中断場所から再開できるように、この値が保存される
- 命令レジスタ 主記憶から読み出された命令を記憶
- パイプライン処理 命令をステージに分割し、ずらしながら同時に実行
- スーパーパイプライン 命令の各ステージをさらに細分化して、ずらしながら同時に実行
- スーパスカラ 複数のパイプラインを使って、同時に複数の命令を実行
- マルチコアプロセッサ 消費電力を抑え、プロセッサ全体の処理能力を向上
- CPUの投機実行 分岐命令の先が決まる前に、予測した命令の実行を開始
2章 ソフトウェア
- デバイスドライバ アプリケーションの要求に沿って、ハードウェアを直接制御できるようにするソフトウェア
- ディスパッチ 実行可能なタスクにCPUの使用権を割り当てる
- ラウンドロビン方式 各タスクに均等にCPU時間を割り当てて実行
- ノンプリエンティブ 実行状態のタスクが自ら待ち状態に遷移するか終了するまで、他のタスクが実行状態に遷移しない
- スプーリング 低速な装置への出力データを一時的に高速な補助記憶に蓄え、待ち時間を減らす
- バッファ 処理速度の違いを緩和するために、入出力装置と処理装置の間にもうけた記憶域
- 固定区画方式(固定長方式) 主記憶の使用効率は悪いが、処理時間は一定で速い
- 可変区画方式(可変長方式) 主記憶の使用効率は良いが、処理速度は不定で遅い
- メモリリーク OSなどのバグが原因で、動作中に確保した主記憶が解放されない
- 仮想記憶管理 補助記憶の一部を主記憶に見せかけて、実際の主記憶容量よりも大きな記憶空間を使用できる
- ページング方式 主記憶と補助記憶をページ単位で区切り、対応づけて管理する方式
- ページフォールト 主記憶上に必要なページがない
- FIFO方式 一番古くから存在するページを置き換える方式
- LRU方式 最後に参照されてから経過時間が最も長いページを置き換える方式
- LFU方式 最も参照回数が少ないページを置き換える方式
- スラッシング ページングが頻繁に発生し、システム性能が低下
3章 コンピュータで扱うデータ
- 正規化 仮数部の最上位桁が0以外になるように桁合わせする操作
- 丸め誤差 切り捨て、切り上げ、四捨五入などで生じる誤差
- 打切り誤差 計算を途中で打ち切ることで生じる誤差
- 情報落ち 小さな数値の桁情報が計算結果に反映されず生じる誤差
- 桁落ち ほぼ等しい数値の引き算で有効桁数が減るために発生する誤差
- 桁溢れ 表現できる範囲を超えることで発生する誤差
- モーフィング 複数の画像の中間を補い連結して滑らかに変化させる技法
- モーションキャプチャ センサやビデオカメラで人間や動物の自然な動きを取り込む技法
- クリッピング 画像の一部を切り抜いて残し、他の部分を消去
4章 コンピュータシステム
- クラウドコンピューティング コンピュータ資源をネットワーク経由で提供し、拡張性は可用性の高いサービスを実現
- ストアドプロシージャ よく利用する命令群をサーバに用意し、通信負荷を軽減
- デュアルシステム 2つのシステムで同一処理
- デュプレックスシステム 一方の現用系が稼働し、もう一方の待機系は待機
- ホットスタンバイ方式(ホットサイト) 待機系も起動状態。障害時には、すぐに自動で切替え
- 密結合マルチプロセッサシステム CPUが主記憶を共有、単一のOSで制御、タスク単位で分散
- フォールアボイダンス 障害を回避するため事前に対策を行っておく
- フォールトトレラント 故障が発生しても稼働するような対策を行っておく
- フェールセーフ システムの安全性を重視する
- フェールソフト システムを稼働し続けることを重視する
- フールブルーフ 誤った操作をしても、システムが壊れたり危険が生じたりしないようにしておく
- RAID0 データを分散して記録する(ストライピング)→アクセスの高速化
- RAID1 別の磁気ディスクにも同じデータを書き込む(ミラーリング)→システムの高信頼化
- RAID5 データとパリティ情報を分散して記録する→アクセスの高速化、システムの高信頼化
- スループット 単位時間あたりに処理される仕事の量
- ベンチマークテスト 標準的なプログラムを実行させ、その処理性能を測定し比較
5章 システム開発
- 非機能要件 業務要件の実現に必要な品質・技術・運用・操作要件を明確化。例えば、開発基準の作成など
- 外部設計 画面などシステムの見た目の部分を設計
- ソフトウェア方式設計(内部設計) ソフトウェア全体の構造を決定し、ソフトウェアコンポーネントと呼ばれるプログラム単位に分割
- DFD データの流れに注目して表現する
- E-R図 実体(エンティティ)と実体間の関連(リレーションシップ)に着目してデータの構造を表現する
- 状態遷移図 システムの状態の推移を実現。リアルタイムシステムに適用される
- 自然言語インターフェース 人間とコンピュータが人間同士のように自然な会話でやり取り
- モジュール強度 最も強いのは機能的強度、最も弱いのは暗号的強度。強い方がモジュールの独立性が高い
- モジュール結合度 最も強いのは内部結合、最も弱いのはデータ結合。弱い方がモジュールの独立性が高い
- アセンブラ アセンブラ言語で書かれた原始プログラム
- コンパイラ 原始プログラムを一括して機械語に翻訳
- インタプリタ 原始プログラムの命令を1つずつ解釈して実行
- 最適化 コンパイル時、原始プログラムを解析し、実行時の処理効率を高めた目的プログラム
- リンカ 複数の目的モジュールやライブラリモジュールを組み合わせて、ロードモジュール
- 動的リンク アプリケーションの実行中、必要に応じて動的リンクライブラリを呼び出して、プログラム本体と結合
- ロード ロードモジュールを主記憶上に配置
- リファクタリング プログラムの動作を変更せず、内部を変更
- リバースエンジニアリング ソースコードを解析して、内部仕様や構造を復元
- UML オブジェクト指向開発で使用されるモデル化の統一表記
- クラス図 操作、属性、ロール名を記述
- シーケンス図 オブジェクト間の総合作用を時系列で記述
- アクティビティ図 オブジェクトの一連の振る舞いの流れを記述
- リグレッションテスト 修正が他の部分に影響を及ぼしていないかをテスト
- デザインレビュー 設計上の問題点を発見
- コードレビュー プログラム上の問題点を発見
- ウォークスルー レビュー対象物の作成者が主催者になりレビューを行う
- インスペクション モデレータが議長となりレビューを主導し、正式な記録を残す
- モデレータ インスペクションレビューを主導し、参加者にそれぞれの役割を果たさせる
6章 アルゴリズム
- キュー 最初に入れたデータから先に取り出す(FIFO)
- スタック 最後に入れたデータから先に取り出す(LIFO)
- 線形探索法の平均比較回数 ( n + 1)/2回
- 2分探索法の平均比較回数 log2n 回
- ハッシュ探索法 関数を使ってデータ格納場所を決定
- ハッシュ探索法の平均比較回数 1回
- 一様分布 事象の発生確率が等しい。ハッシュ値の衝突確率が最も低くなる状態
- クイックソート 基準値を選び、基準より大きいグループと小さいグループに分け、この操作を繰り返して整列
- 再起呼出し 関数の中で自分自身を使った処理を行う
7章 ネットワーク
- CSMA/CD方式 衝突した場合、しばらく待ってから再送
- リピータ 信号を増幅することによって伝送距離を延長する
- ブリッジ 宛先MACアドレスを基にして、データを中継
- MACアドレス ベンダIDと固有製造番号から構成される48ビットの物理アドレス
- ルータ 宛先IPアドレスを基にして、データを中継
- ゲートウェイ 第4〜7層のプロトコルが異なるLAN同士を接続
- ARP IPアドレスからMACアドレスを取得
- RARP MACアドレスからIPアドレスを取得
- TELNET リモートログインし、遠隔操作を行うプロトコル
- SMTP メールサーバ間で電子メールも送信・転送を行うプロトコル
- POP3 メールサーバ上の電子メールをメーラが受信するためのプロトコル
- NTP ネットワーク上の各コンピュータの時刻を同期するプロトコル
- UDP トランスポート層のプロトコルで、即時性を重視
- SMTP-AUTH メール送信時、送信者をメールサーバで認証
- MIME 電子メールでテキストだけでなく音声や画像も送れる企画
- S/MIME 電子メールの暗号化と署名が行える
- NAT プライベートIPアドレスとグローバルIpアドレスを1対1で変換
- NAPT プライベートIPアドレスとグローバルIPアドレスを多対1で変換
- DHCP IPアドレスを自動的に割り当てるプロトコル
- IPv6 次世代プロトコル。IPアドレスは128ビット
- サブネットマスク ホストアドレス部を分割し、複数のサブネットワークに細分化する情報
- 垂直パリティ 1文字ごとにパリティを付け加え、1ビットの誤りを検出できる
- ハミング符号方式 同一データに、複数の方法でチェックコードをつける
- CRC ビット列を生成多項式で割った余りでチェックする
- チェックディジット 一定の計算式によって元のコードに数字を付加し、入力値の誤りを検出できる
8章 データベース
- 階層型データベース データを木のような形の階層構造で表現する
- ネットワーク型データベース データを網の目のような形で表現する
- 関係データベース データを表形式で表現する
- スキーマ データベースの構造や性質、形式などの定義
- 主キー 行を一意に識別できる列、重複せず空でない
- 外部キー 他の表の主キーを参照する列
- 関係モデルの属性 並び順に意味はなく、順番を入れ替えても同じ関係を表す
- 選択 検索条件に合う行を検索
- 射影 検索条件に合う列を検索
- 結合 複数の表を連結する
- ソートマージ結合法 結合する列で並べ替えた表の行を、先頭から順に結合する
- ACID特性 データの一貫性を保証するためのトランザクションの性質
- 排他制御 最初にアクセスした人の処理が終了するまで、2番目以降にアクセスした人の操作を制限する機能
- デッドロック 互いに相手のロックしているデータを要求し、永遠に待っている状態
- ログファイル リカバリに使用するデータベースの更新履歴
- ロールフォワード 物理障害時にバックアップとログファイルを使って処理を復帰
- ロールバック 論理障害時にログファイルを使って処理をキャンセル
- インデックス 索引によって検索を高速化する機能
- オプティマイザ SQL実行時、効率が良いアクセス経路を選択する機能
- 2相コミット 一連のトランザクション処理を行う複数サイトに問い合わせ、全サイトが可能であれば更新処理を確定
9章 セキュリティ
- タイムスタンプサービス 電子データがある日時に存在し、それ以降改竄されていないことを証明
- パスワードリスト攻撃 別システムから流出したアカウント情報を使って使い回している利用者のアカウントを乗っ取る
- フィッシング 偽サイトにアクセスさせて情報を盗む
- DNSキャッシュポイズニング DNSサーバに誤ったドメイン管理情報を覚え込ませて偽サーバに誘導
- SEOポイズニング 検索結果の上位に悪意のあるサイトが並ぶよう細工する
- SQLインジェクション Webアプリケーション上で悪意あるSQL文を入力してデータベースのデータ改竄、不正に取得
- DoS攻撃 大量のデータを送りつけてサーバの機能を停止させる
- ディレクトリトラバーサル攻撃 管理者が許可していないパスで、Webサーバ内のファイルに不正アクセス
- Webビーコン 小さい画像を埋め込み、アクセス動向を収集する
- キーロガー PCに仕掛けて入力パスワードを収集し悪用
- ブルートフォース攻撃 パスワード解析や暗号解読の手法で、総当たりパスワードや鍵を割り出す
- ソーシャルエンジニアリング 人間の心理の隙をついて機密情報を聞き出す
- サラミ法 表面化しない程度に、多数の資産から少しずつ搾取
- リスクアセスメント 予測リスクを洗い出し評価・分析。損失額と発生確率に応じて、対応を優先順位付け
- リスクレベル リスク発生時の損失額と発生確率によって表されるリスクの大きさ
- セキュリティバイデザイン システム企画・設計段階からセキュリティ確保を検討
- パターンマッチング方式 既知ウイルス情報(シグネチャコード)を使用して、対象ファイルと比較しウイルスを検出
- ビヘイビア法 検査対象をメモリ上の仮想環境下で実行し、挙動を監視
- C&Cサーバ ボットネット支配下にあるコンピュータを操り、他コンピュータを攻撃
- 共通鍵暗号方式 同じ鍵(共通鍵)で暗号化・復号を行う
- 公開鍵暗号方式 受信者の公開鍵で暗号化し、秘密鍵で復号する
- RSA 巨大な数の素因数分解の困難さを利用した公開鍵暗号方式
- 楕円曲線暗号 RSAと比べて短い鍵長で同じレベルの安全性を実現する公開鍵暗号方式
- ディジタル署名 データ送信者の証明と改ざんされていないかどうかを確認する技術
- CA 公開鍵の正当性を証明する第三者機関
- SSL インターネット上でデータを安全にやり取りする業界標準プロトコル
- CAPTCHA 歪めた画像などから文字を判読し入力させることで、コンピュータではなく人間がアクセスしていることを確認
- バイオメトリクス認証 人間の指紋や虹彩など身体的特徴によって認証。筆記速度や筆圧など行動的特徴により認証する方式もある
- ファイアウォール 内部ネットワークを外部攻撃から守るもの
- DMZ 外部と内部のネットワークの間にある地帯
- WAF Webアプリケーションの脆弱性への外部攻撃から守るもの
- パケットフィルタリング IPやポート番号を識別し通過させるパケットを制限
- プロキシ 代理でインターネットへ接続し内部ネットワークを隠す
- ペネトレーションテスト システムを実際に攻撃して侵入を試みるテスト
- IDS サーバやネットワークを監視し、不正行為を検出・通知
- バックドア 侵入者が通常の経路以外から不正侵入するために仕掛けた裏経路
- rootkit バックドアを作り、サーバ内の侵入痕跡を隠蔽する不正プログラム
10章 マネジメント
- プロジェクト 独自性や有期性がある
- ファンクションポイント法 画面数といった入出力などのシステム機能に着目し開発規模を見積もる
- WBS プロジェクトの作業をトップダウン方式で細分化し、構造化する作業計画手法
- スコープマネジメント プロジェクトの目的や範囲を明確化
- アローダイアグラム(PERT) プロジェクトの日程計画に使われる、各作業の順序関係を示した図
- クリティカルパス 作業開始から終了までの経路を一番時間がかかる経路。全体の遅れに直結する作業を把握できる
- クラッシング クリティカルパス上の作業に割り当てる資源を増やして所用期間を短縮
- トレンドチャート 進歩と予算を関連つけた折れ線グラフ
- 傾向分析 資源の利用状況を時系列で分析し、将来の変化を予想
- SLA ITサービスの品質や内容を合意して文書化したもの
- 既知の誤り 根本原因が特定、または回避策が存在する問題
- ローカルサービスデスク 利用者の近くに配置
- バーチャルサービスデスク 複数の地域に分散したスタッフを通信技術で連携
- 監査調査 監査業務の実施記録で、監査意見の根拠となるもの
11章 情報化と経営
- ディジタルディバイド IT知識や利用環境の違いにより生じる社会的・経済的格差
- CIO 企業の情報化戦略を立案し、経営戦略との整合性の確認や評価を行う
- アカウンタビリティ 経営活動に関する説明責任
- ステークホルダ 顧客、従業員、株主などの企業に対する利害関係者
- コーポレートガバナンス 経営の透明性のために、企業活動を監督・監視する仕組み
- 事業部制組織 製品や市場、地域ごとに組織を分けて独立して仕事を行う
- 職能別組織 同じ専門知識を持ったスタッフごとに編成
- マトリックス組織 構成員が事業部門と職能別部門と言った異なる部門の両方に所属する
- プロジェクト組織 一定期間、特定の目的のために活動する
- 社内カンパニー制 事業分野ごとに独立採算性の組織に分けて運営
- BPR 業務プロセスを抜本的に見直し、企業の体質や構造を改善すること
- BPM 業務プロセスの継続的な改善サイクル
- ベンチマーキング 自社の業務プロセス改善のために優良企業を参考にすること
- BCP 予期せぬ事態が発生した場合でも、事業を継続するための行動計画
- ニッチ戦略 他の企業が参入していない隙間市場を開拓する戦略
- コアコンピタンス 他社にまねのできない独自のノウハウや技術
- アウトソーシング(BPO) 自社の業務の一部を外部の専門業者に依頼
- EMS 他メーカから受注した電子機器などの受託生産を行う
- グリーン購入(調達) 原材料や部品を、環境負荷の低減に努める事業者から優先して購入
- CSR調達 自然環境や人権への配慮を調達基準とし、調達先に遵守を要求
- SWOT分析 「強み」「弱み」「機会」「脅威」の4つの要素で自社の環境を分析
- PPM 市場成長率と市場占有率によって、「花形」「金のなる木」「問題児」「負け犬」の4つに分類して製品や事業を分析
- ITポートフォリオ リスクや投資価値が似たものを区分けし、組み合わせて最適な資源配分を行う手法
- バリューチェーン分析 企業活動を機能ごとに分け、どこで利益が出ているかを分析
- ナレッジマネジメント 企業内に散在した知識を共有し、全体の問題解決力を高める手法
- ファシリテータ 中立の立場で、会議の参加者に発言を促し、議論の流れを整理
- エンタープライズアーキテクチャ 業務とシステムを、ビジネス、データ、アプリケーション、テクノロジの4つの観点から分析し、全体最適化する技法
- ERP 経営資源を統合的に管理するシステム
- SCM(サプライチェーンマネジメント) 調達から販売までの一連のプロセスを全体で管理し、時間の短縮やコストの削減を図るシステム
- SFA 営業活動の情報を共有・分析するシステム。営業活動の履歴を管理するコンタクト管理機能などを持つ
- CRM 顧客情報を分析し、収益の拡大を図るためのシステム
- CAD コンピュータを使って設計図面を作成
- かんばん方式 生産ラインで、後工程が自工程の生産に合わせ、必要な部品を前工程から調達
- データマイニング 大量のデータから統計的な手法を使って意味のある情報や規則性を見つけ出す技術
- GPSシステム 位置情報を地図上に表示する技術
- RFID 無宣電波を使ってICタグの情報を読み書きする仕組み
- CGM 個人が制作コンテンツを配信、利用者同士で共有する仕組み
- eマーケットプレイス インターネット上で売り手と買い手が直接取引
- O to O 顧客をネットから実店舗、または実店舗からネットに誘導する仕組み
- ロングテール ネットショップにおいて、あまり売れない商品の売上合計が無視できない割合になること
- 逆オークション 買い手が買いたい品物と購入条件を示し、売り手が応じる取引形態
- シェアリングエコノミー インターネットを活用して、個人同士で遊休資産を共有する仕組み
- 機械学習 コンピュータにデータを学習させ、特定のパターンや特徴を見つけ出す
- ディープラーニング ニューラルネットワークを用いて、コンピュータにも人間と同じような認識ができるようにする
- IoT 様々なモノに通信機能を持たせ、インターネットに接続させて情報を収集・解析して高度なサービスなどを実現
- HEMS 家庭で使う機器をネットワークで繋ぎエネルギーを可視化
- ホスティングサービス 事業者か用意したサーバの利用権を貸し出す
- BYOD 個人所有の情報機器を業務に使用
- SOA 既存ソフトを部品化し、組み合わせてシステムを作る設計手法
- 損益分岐点 損益分岐点の売上高は固定費と変動費の和に等しい
- 損益計算書 一定期間における企業の経営成績
- 貸借対照表 一定期間における企業の資産や負債を示す。財務状態を把握できる
- コストプラス法 製造原価、営業費を基準に、利幅の織りこみ価格を決定
- 内部統制 企業みずからが正常に活動しているかをチェックする体制や仕組み
- サイバーセキュリティ基本法 国民に対し、サイバーセキュリティ確保に注意を払うよう求める
- ワークシェアリング 1人あたりの勤務時間を短縮、仕事を配分見直し雇用確保
- 準委任契約 善管注意義務をもって作業を受託
- 包括的クロスライセンス 分野を特定した上で、その分野に関するすべての特許権をお互いに使用できる契約形態
- オープンソースソフトウェア(OSS) 一定の条件で使用、複製、改変、再頒布を許可。著作権は保持
- Eclipse ソフトウェア統合開発環境のOSS
- コピーレフト 著作権は保持したまま、複製や改変、再配布を許可し、派生物にはオリジナルと同じ配布条件を適用
- IETF インターネット利用技術を標準化、RFC策定
- 日本工業標準調査会 日本国内の工業製品規格(JIS)を審議
ただただ単語を並べただけのつまらないブログになりました。
在宅勤務のメリット・デメリット
在宅勤務をして3ヶ月ほど経ちました。
いまだに全然生産性が上がらず苦労しています。
ここで一度振り返って生産性の向上に貢献(自分へ)したいと思います。
まずは一番のメリット
通勤がなくなること
満員電車にゆられないことによりストレスが減ります。毎朝早起きする必要がなくなり寝坊の恐れもなくなります。簡単に言うとストレスが非常に減ります。通勤時間がなくなることにより自分の自由時間を増やすことができます。
一番のデメリット
集中が続かない
いつでもサボれる環境にいて、サボらずにいるのは本当に難しいです。正直、会社より生産性が上がると言ってる人は信じられません。集中が続かないことで仕事の生産性が減り自分の成長の疎外になっていることが問題なだけで、割り切ってしまええば仕事をバレないようにサボってプライベートを充実されることができます。
メリット一覧
通勤がない
通勤がなくなったのは本当に最高です。私の場合は満員電車が嫌いすぎて始発で出社していたので、始発に乗らなくて済むようになりぐっすり眠れるようになりました。
寝坊しない
正確には通勤時間がなくなったことにより、寝坊する可能性が限りなくゼロになります。私は在宅勤務になっても毎日6時30分に起きて三文の徳を得るようにしていますが、そんな風に自分でアレンジできるのも在宅勤務の魅力です。
自分の時間が圧倒的に増える
サボっていてもバレません。やりたいことができます。会社の管理がずさん(弊社の場合)なら実働1、2時間でもやることやっていればバレません。1日5、6時間は自由時間を増やすことが可能です。私はこの考え方は最低だと思いますが、正直言って誘惑には勝てません。毎日でなくてもたまに(本当は頻繁に)やってしまいます。
サボらなくても自由時間は増える
これは通勤時間が無くなったことによる自由時間の増加と、ちょっと料理を作ったり家事をするくらいならなら問題ないだろう的な考えです。喫煙所にいる人だって、他部署に行って全然戻らない人だって、電話がやたら長い人だって同じと考えれば少しくらいならサボっているとはなりません。会社に勤めていれば上司の評価で決まりますが、やることやっていれば家事を使用が問題ないと言うことです。
毎日ランニングができるようになった
通勤時間がなくなった事により自分の時間を有効に使えます。
気持ちよく昼寝ができる
お昼時間以外でも堂々と昼寝ができます。私の場合は毎日きちんと寝ていても仕事中に死ぬほど眠くて辛い時がありましたが、今はいつでも仮眠をとることができます。これは本当にストレスフリーで在宅勤務の大きなメリットです。もちろんやることはやらなくてはいけませんが、寝過ぎて罪悪感がある場合は勤務時間を伸ばしたりすれば良いだけです。
むしろ、いくらでも寝れる
私の会社では朝の出勤チェックなど無いので、いつ起きてもバレません。寝ようと思えば午前中ずっと寝ていられます。
デメリット
集中できない
マジで集中できないです。すぐにスマホを見てしまいます。集中してさっさと仕事を終わらせることができれば自分の時間をもっと作ることもできるし、仕事ももっと進めることができるのですが、無理です。会社にいる時より生産性下がっているのは問題なのでなんとかしなくてはいけないのですが、今のところ解決策はありません。
家族から家事を頼まれる
家族は平気で洗濯物干しておいて、とか頼んでくるし頼みたくなる気持ちもわかりますがこっちは仕事中なので言い返せば喧嘩に発展します。正直言って仕事中と言いつつ漫画読んでますからね。読みたくて読んでいるわけではなく、そこに漫画があるので致し方ないです。
会社への往復が無くなった分、運動不足になる
これは自分次第なので、自由時間に運動すれば良いだけですが、人間はラクしたくなる生き物なんですよね。通勤の往復分がなくなり、自主的な運動をしないと一歩も家から出ないです。iPhoneのヘルスケアを見ると徒歩500mで終わる日もあります。
逆に勉強時間が減った
電車に乗っている時と出社前のカフェタイムで勉強していたので勉強時間が減りました。これも自分の工夫次第でどうとでもなりますが、どうしても人間はラクしたくなるのでサボりがちになるのは事実で、勉強の進み具合は落ちています。
寂しくなる
人とのつながりが減り寂しくなると言う話も聞きますが、私の場合はそもそも職場で会話はほとんどなかったし、むしろいつでも友人と電話できる環境なので寂しさは一切ないです。と、思っていたのは最初だけで友人との電話なんて最初だけでした。今はめっちゃ寂しいです。たまに会話すると普段会話していないからすぐに喉が枯れます。
喫茶店代がかさむ
家だと集中できなさすぎて、1秒も仕事しない日とかあります。やる気はあってもいつの間にか漫画を読んでいます。なので、喫茶店に行って仕事をするようにしているのですが、喫茶店代がかさみます。
結論
うちの会社の管理がずさん過ぎ。
在宅勤務はストレスフリーで最高。