NATとNAPTとは

インターネットで使用するものは「グローバルIPアドレス」であり、企業内ネットワークに存在する端末が利用するようなLANは、「プレイベートIPアドレス」を使用します。 コンピュータネットワークで、データを2つ以上の異なるネットワーク間に中継する通信機…

インターフェースとは

オブジェクト指向プログラミング言語を学んでいると様々な部品が登場します。オブジェクト指向とは複数の部品(オブジェクト)を組み合わせて1つのプログラムを作ることであり、僕が学んでいる「Ruby」も「Java」もオブジェクト指向プログラミング言語となりま…

コンパイルとは

コンパイル方式に関する用語を説明していきます。下記の書籍を参考にしています。 栢木厚『基本情報技術者教室』(技術評論社、2021年) コンパイルとは、原始プログラムから目的プログラム(オブジェクトモジュール)を生成することであり、字句解析、構文解析…

「RubyZip 3.0 is coming!」の警告を消す方法

最近アプリを作り、テストコードを実行してみると、「RubyZip 3.0 is coming!」という警告が出てしまう問題が発生しました。この問題を解消した方法を軽くまとめておきます。 まずこの警告はrubyzip2.3.1で追加されたようです。 Gemfile group :development,…

テストコードでエラーメッセージを確認する方法

テストコードでエラーメッセージを確認する方法を記録しておきます。やることは簡単です。まずテストコード内の「valid?」の後ろに「binding.pry」を記述します。 spec/models/user_spec.rb it 'emailが空では登録できない' do user = User.new(nickname: 't…

whereとLIKE句

whereメソッドとLIKE句についてまとめておきます。テーブルとのやりとりで使われるメソッドであるため、モデルに置きます。 whereメソッド 「検索」の時によく使われるメソッドであり、モデルが使用できるActiveRecordメソッドの1つです。「モデル.where(検…

モジュール、オブジェクト指向、ポリモフィズム

栢木厚『基本情報技術者教室』(技術評論社、2021年) 上記の書籍を参考にしてモジュール、オブジェクト指向、ポリモフィズムに関連する知識をまとめていきます。オブジェクト指向に関しては過去にも記事にしていますが、別の言い方で捉え直していきます。 kim…

バックアップと磁気ディスク

栢木厚『基本情報技術者教室』(技術評論社、2021年) 上記の書籍を参考にしてバックアップと磁気ディスクについてまとめてみました。 バックアップ バックアップの方法には、磁気ディスクに保存されている全てのデータをバックアップする「フルバックアップ」…

クライアントサーバシステム

栢木厚『基本情報技術者教室』(技術評論社、2021年) 坂村健『痛快!コンピュータ学』(集英社文庫、2016年) 上記の書籍を参考にしてクライアントサーバシステムについてまとめてみました。 クライアントサーバ クライアントサーバシステムは、クライアントと…

AIとは

下記の書籍を参考にしてAIについて軽くまとめてみました。 栢木厚『基本情報技術者教室』(技術評論社、2021年) AIとは、人が行うような学習、認識、予測、判断などの知的な活動を、コンピュータにさせる取り組みや「技術」のことを指します。 学習の仕方は主…

ハードウェアとCPU

ハードウェアやCPUに関する情報をまとめておきます。 コンピュータのハードウェアは「制御装置」、「演算装置」、「記憶装置」、「入力装置」、「出力装置」で構成されています。物理的に存在する装置であります。逆に記憶装置に記憶された「1」、「0」の信…

計算機がコンピュータになるまでのプロセス

計算機がコンピュータになるまでのプロセスの一端を紹介したいと思います。以下の書籍の内容を参考にしております。 坂村健『痛快!コンピュータ学』(集英社文庫、2016年) 汎用性 複雑な計算でも高速で行ってくれる機械が「電子計算機」です。そして計算専門…

Railsのデータベースについて

Railsで扱うデータベース関連の知識をまとめておきます。 database.yml(データベースヤムル) Railsアプリケーションのデータベース設定ファイルです。configディレクトリ内にあります。このdatabase.ymlを編集することによって、データベースの設定を「運用…

複数の静的ファイルがブラウザで適用されるまでの仕組み

サーバーサイドでは色々な言語が用いられますが、ブラウザはHTML、CSS、JavaScript、WebAssemblyといった4つの言語しか認識できません。つまりRubyが埋め込まれたHTMLであるERBなどは認識できないということです。 高級言語と低級言語 しかしHTML、CSS、Java…

Linuxが注目されるようになった背景

Linuxの歴史に関する情報を軽く整理しておきます。 LinuxとはOSの一種です。コンピュータ本体のことをハードウェアといい、コンピュータが処理するプログラムやデータのことをソフトウェアと言います。その中でもOS(オペレーティングソフト)は基本ソフトウェ…

JavaScriptのdocumentオブジェクトとは?

JavaScriptのdocumentオブジェクトに関わる知識をまとめていきます。 documentオブジェクトとは ブラウザで表示された情報(HTML)を操作することができる「オブジェクト」です。HTMLに対して何かしらの処理をする際に頻繁に利用します。 JavaScriptのオブジェ…

AWSで使う用語の説明①

AWSの理解を深める目的でAWSに関連する知識を整理してみました。あくまでも自己満足ですし、まだ勉強不足であるため解釈に間違いがある可能性もあります。今回整理する知識は以下のものです。 EC2インスタンス AMI キーペア パブリックIP Elastic IP ssh プ…

Qiitaに移行します

はてなブログで記事を書いていくときにコードのインデントが整わずに読みづらいという問題が発生していました。マークダウン記法にすれば良かった話なのですが、コードを用いる記事に関してはQiitaに移行していくことにしました。 qiita.com 今日からQiitaで…

コマンドの仕組みと管理ツール

環境構築の時に実行するコマンドの仕組みや、インストールできるソフトウェアの仕組みについてまとめておきます。 ターミナルでコマンドを実行できる理由 ターミナルでコマンドを実行できる理由は、「シェル」が、ターミナルから入力されたコマンドを読み取…

クラスとインスタンスのメソッド

クラスとインスタンスに関するメソッドについて説明したいと思います。 kim-shun.hatenablog.com 過去に記事にした通り、クラスとは「設計図」のことであり、インスタンスとは「設計図」の中で使う「データ」のことです。今回説明するのはその中で登場する具…

配列の入子構造を紐解く

配列の入れ子構造を紐解いていきたいと思います。これからこちらのデータを使っていきたいと思います。 vegetables_price = [["cabbage", [200, 100, 320]], ["onion", [100, 210, 80]], ["carrots", [120, 150]]] ここからそれぞれの野菜の合計金額を算出し…

each_with_indexを使って任意の数字を特定する

「each_with_index」とはRubyで使えるメソッドです。繰り返し処理と同時にその要素が何番目に処理されたのかが分かるようになります。 では任意の数字が何番目に格納されているかを確認できるプログラムを作っていきます。インデントは整っていないのでそこ…

二重ハッシュを紐解く

二重ハッシュのデータから特定の情報だけを取り出す方法を書きたいと思います。 users = [ {user: {profile: {name: '佐藤', age: 22}}}, {user: {profile: {name: '鈴木', age: 30}}}, {user: {profile: {name: '田中', age: 40}}}, ] ここから、名前、もし…

約数の総和を算出する

ある整数の約数の総和を算出するプログラムを作ってみました。また一定の条件下での約数の和も出せるようにしていきたいと思います。コードのインデントは整っていないのでごめんなさい。 約数を表示させる 約数を足し合わせる 1000以下の約数の和を出してみ…

4乗的ガウスを解く

1から40までの整数の4乗の和をプログラムで算出してみました。コードのインデントが整っていないのはご了承ください。 1⁴ + 2⁴ + 3⁴ + ........ + 40⁴ こんな感じの計算ですね。 具体的な数字で試してみる 40回繰り返し処理をしてみる 40回足した総和だけを…

逆数の和を算出する

逆数の和を算出する問題を解いたので記録しておきます。ブログの仕様上インデントが整っていないのでそこはご了承ください。 1/1 = 1 1/1 + 1/2 = 1.5 1/1 + 1/2 + 1/3 = 1.8333... このような形で1からNまでの整数の逆数の和を出していき、その逆数の和が7…

ネットワークの仕組み

「プロトコル」とは何だという疑問から、ネットワークの仕組みの1部をまとめてみました。あくまでもアバウトな解釈であるため、ここから説明することで間違えている内容があればご指摘いただけるとありがたいです。まずだいたいのイメージを掴むために、紹介…

クローンしたアプリをGitで管理する方法

クローンしたアプリをGitで管理する方法を紹介します。 まず以下の手順でクローンしたアプリを使えるようにします。 ターミナル % git clone https://github.com/アプリ名.git % cd アプリ名 % bundle install % yarn install % rails db:create % rails db:…

Herokuでデータベースをリセットする方法

Herokuで公開したアプリのデータベースをリセットする方法を書いておきます。 ターミナルで下記のコマンドを実行してメールアドレスとパスワードを入力します。 % heroku login --interactive その後下記のコマンドを実行します。 % heroku run DISABLE_DATA…

トランザクションとは

データベースのトランザクションとは複数の処理のまとまりのことです。1つの処理ではなくワンセットになった複数の処理になります。 複数の処理をまとめるとはどういうことかを僕なりにイメージしてみました。 もともと財布に1万円が入っていて2つの処理を行…