2018-04-01から1ヶ月間の記事一覧
大きく分けてコンパイルエラーとランタイムエラーからなる。 実際問題としてはソフトウェア試験で問題になるのはランタイムエラーに対して適切なエラー処理の実装がなされているかである。 コンパイルエラー(シンタックスエラー) コンパイル時に発生するエ…
セグメント(セクション) 通常プログラムやデータはメインメモリの連続した領域を単位として管理される。 このプログラムやデータの管理単位となる連続した領域のことをセグメントと呼ぶ。 Programセクション(Pセクション) プログラムコードが格納される…
「x86系CPU」といった場合インテル製の CPU に加えアスロンなどのインテル互換CPU も含まれる x86のここがすごい 世界中のPCとサーバの90%以上で使われているx86系 1970年代後半のコンピューティング技術で残っているのはコンピュータの命令セット でもスマ…
CPUのbit数の定義 CPUに関連するbit数は多岐に渡る。 CPUを表現する場合のビット数の意味は以下の通りである。 - アドレス幅(内部のアドレスレジスタ幅、外部アドレスバス幅) - データバス幅(内部データ幅、外部データバス幅) - 内部演算幅(=演算装置…
どれも昔大学院でお世話になった懐かしい名前です。ベイズ推定とかもう一度勉強しなおしたいなぁ。 決定木 遺伝的手法 ニューラルネットワーク サポートベクターマシン ⇒分類境界とデータの距離が最大になるようにするモデル ベイズ学習
大きく分けると教師あり学習と教師なし学習と強化学習の3つに分類される。 教師あり学習 教師データ*1を用いて学習する。 教師なし学習 教師データを用いずに学習する。 強化学習 環境とのフィードバックから教師データを得る。 転移学習 学習済みモデルを…
CPUにはカーネルモードとユーザモードの2つのモードがある。 CPUモードはCPUとしての機能(アセンブラとして提供)ではなくて、プログラムとしての機能だと思うのだが実際はどうなのだろう? カーネルモード(OSの核となる処理) デバイスドライバ プロセス…
okn-yu.hatenablog.com 補足 上の以前書いた記事の中で1メソッド中のステップ数は10行未満が望ましいと記載した。 ⇒これを実現するには1メソッド1機能という方針を貫徹する必要がある。 ⇒そうすると必然的にメソッド名=機能名となるのでメソッド名から実装…
リモートリポジトリにはマージ後にコミットしないとマージの反映がなされないことに注意!! merge手順 マージ先のブランチにチェックアウト マージ元のブランチを指定してマージ 【コマンド】 git checkout <マージ先ブランチ名> git merge <マージ元ブラン…
難しそうなんだけど参照透過性とか当たり前のようで実はそんなことなかったりする。 多分大多数の関数は参照透過性を満たしていない。 関数でも疎結合を意識していれば自然と副作用も減るし参照透過性も強まるのではないだろうか? 参照透過性 関数が同じ入…
前提条件は以下と同じ。 okn-yu.hatenablog.com VNCサーバの設定 vnc4serverのインストール sudo apt-get install vnc4server ~/.vnc/xstartupを以下のように編集 #!/bin/sh def export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS…
グラフィックボード 主にパソコンンのグラフィック処理を担当する拡張ボード。 GPU グラフィック機能を制御するプロセッサ。 マザーボードにCPUが搭載されるように、グラフィックボードにGPUが搭載される。 統合型GPU CPUにGPUコアがパッケージ化されている…
インスタンス変数とカプセル化 グローバル変数は便利だが多用するとモジュール間の密結合化によりバグの温床となり、またスコープが広すぎるためデバッグが困難となる。 クラス内のどこからでもアクセスできるインスタンス変数は疑似グローバル変数と同じ振…
ピクセル・画素数・解像度の違いがよくわかっていませんでした...。 ピクセル 画像をデジタルデータで表すためには、画像を細かく分割して、その分割したものを1つの色で表示す。この分割した領域(面積)が画素。 別の言い方ではコンピュータで画像を扱うと…
Ubuntu16.04のUnityとXRDPは相性が悪いらしい...。 前提条件 $ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.4 LTS" $ uname -a Linux ***-VirtualBox 4.13.0-39-generic #44~…
何度も同じことを確認してしまうので。。。 Privateメンバ __でPrivateメンバとなり原則外部アクセスができなくなる。
意外と奥が深い。 デバイスファイルの別名はデバイスノード。 デバイスファイルの種類 デバイスファイルが2種類あるということはOS側からはハードウェアには2種類存在するということになる。 キャラクタデバイス システムが一文字ずつデータを転送を行う …
ユーザ空間とカーネル空間は分離されている。 アプリケーションのバグ等によりカーネル空間を破壊してしまうのを防ぐため。 アプリケーションがカーネル空間に自由にアクセスできるのはセキュリティ上の重大な問題となるため。 SIGSEGVの発生する原因の一つ…
OSSのライセンスは全部で数千以上あるらしいのですがここでは有名なものを抜粋。同じライセンスでも複数バージョンがあり差異が存在するため概要だけ整理した。また例のごとく参照先サイトによって微妙に内容に差異があるのが気になるので詳しくは原典にあた…
用語の整理 デバイス:カメラ・ディスプレイ・スピーカなどの外付けハードウェア。 デバイスドライバ:ハードウェアをOSから制御するためのプログラム。 デバイスファイル:デバイスドライバのインタフェース。ソフトウェアからは入出力システムコールで制御…
凝縮度と結合度で少しわかってきた(つもり)なんだけど、自分なりの言葉でまとめてみよう。 モジュール・インタフェースのあるべき論 機能・責任・担当毎にはっきりと分割されているのが良いモジュール。 モジュールのインタフェースは少なくシンプルなほど…
リモートリポジトリの表示 【コマンド】 git remote //URL省略 git remote -v //URL表示 【実行例】 $ git remote origin $ git remote -v origin https://***@github.com/okn-yu/Nand2Tetris.git (fetch) origin https://***@github.com/okn-yu/Nand2Tetris…
ブランチの表示 ローカルブランチの確認 【コマンド】 git branch 【実行例】 $ git branch * master リモートブランチの確認 【コマンド】 git branch -r 【実行例】 $ git branch -r origin/master ローカル・リモート両方のブランチを表示 リモートブラン…
タグの代表的な利用シーンとしてはトピックブランチでの実装が完了し統合ブランチにマージが完了に伴う新規バージョン更新時など。 はじめに 適時更新していくこと タグ概要 軽量タグと注釈付きのタグの2種類ある。 軽量タグは単なるコミットの別名(コミッ…
まずはいつもどおり用語の整理から。当たり前だけどGitとGithubは全然違う。 Git 分散型バージョン管理システム。もともとLinuxカーネルのソースコード管理用に開発された。 分散型なのでソーシャルコーディングが可能。 GitHubを利用しなくてもGitの利用は…
今更ですが、OSSってなんとなくわかるようなわからないようなとこがあるので調べた。このあたりは基本のようで業務のビジネスモデルとも関連があるので実はすごく大切。 OSSとは OpenSourceSoftwareの略。OSSの定義は以下のようにいくつかあり単純にソースコ…
結合度の高い順に記載。結合度の内容が参照したサイト毎に微妙に異なるのが困る。 これからクラス図を見るときは結合度も意識しよう。 副作用*1との関係も含めて整理してみたい。 基本の考え方 変数のスコープがローカルの結合度 受け渡しのパラメータがデー…
コミュニケーションって本当に難しい。これが上手い人は尊敬しています。 コミュニケーションの目的 お互いの利益の最大化が目的(一方が他方を使い潰すような関係は必ず破綻) 利益最大化のためには面倒でも必要なことを伝えるのは省かないこと。 ビジネス…
技術力とは全然関係ないけどこういうのも仕事を進める上ですごく大切。 請負契約 大切なのは過程ではなく結果 契約の完了に伴い報酬が発生 完成義務と瑕疵担保責任あり 受注者と発注者には使用従属関係なし 準委任契約 大切なのは結果ではなく過程 作業の実…
凝縮度なんて情報処理試験勉強のための用語だと思ってました。用語を覚える必要はないですがこれらの根底にある考え方を理解するとソースコードの実装が捗りそうです。凝縮度が低いとモジュールのAPIに一貫性がないため再利用性が低くなるんですよね。凝縮度…