DNSレコードの種類や文言まとめ

DNSレコードの種類や文言まとめ

Aレコード

アドレスレコードのこと

hogehoge.com IN A 192.168.22.30

このドメインのIPアドレスは192.168.22.30ですという意味
WEBブラウザなどからの問い合わせに対して、このドメインは、ここですよとDNSが、返してくれる。

CNAMEレコード

Canonical Name 正規名のこと

ドメインを別のドメインに置き換えるレコード

www.hogehoge.com IN CNAME hogehoge.com

NSレコード

ドメインが管理されるサーバー DNSを記述したもの

hogehoge.com IN NS ns01.jp

SOAレコード

ざっくり説明すると
ドメインの情報が記載されているレコードだと思えば良い。

【ドメイン名】     【クラス名】 SOA 【DNSサーバのドメイン名】 【連絡先】 (
        【シリアル番号】
        【更新チェックの間隔】
        【リトライ間隔】
        【問い合わせ諦めるぜ期間】 DNSがゾーンファイルが新しくなったかどうか確認するのを諦める時間
        【ネガティブキャッシュの有効期限】 )

digコマンド

ドメイン名からipアドレスを調査できる nslookup と同じ感じ

dig hogehoge.com

//ドメインから調査する

dig -x IPアドレス
//IPアドレスからドメインを調査する

参考サイト

https://wa3.i-3-i.info/word12285.html

laravel と Railsの比較-2 忘備録

モデルの作り方

laravel

1-マイグレーションファイル作成

$ php artisan make:migration create_listings_table --create=listings

//==
make:migration のあとがマイグレーションファイル名 --create= 以下がテーブル名 複数形
--create 以下は省略可能

2-必要に応じてマイグレーションファイルを変更

    public function up()
    {
        Schema::create('listings', function (Blueprint $table) {
            $table->increments('id');
            $table->string('titile');
            $table->string('user_id');
    
            $table->timestamps();
        });
    }

Schema クラスの createメソッドを利用している 第一引数にテーブル名 第二引数にテーブルを作成するための処理がクロージャーで記載される。

3-マイグレーションファイルの実行

$ php artisan migrate

4-モデルの作成 先程オプションでtableを作ったので、ここではモデルのみ

$ php artisan make:model Listing

フレームワークの例にもれず、モデルは単数形、大文字始まり

laravel と Railsの比較-1 忘備録

どちらもMVCで構成される

routing

laravelは、routeフォルダがある。

基本web.phpでroutingをしていると考えて良い

確認コマンドは、

php artisan route:list

書き方の基本

Route::get(アドレス, 関数);

第一引数にアドレス、第二引数には関数

Route::get('/home', 'HomeController@index')->name('home');

これだと、ルート直下のhomeディレクトリと、HomeControllerのindex アクションが呼ばれている indexアクションは以下

 public function index()
    {
        return view('home');
    }

ここでviewの homeを返却している

ここで resources>view>home.blade.phpが呼ばれる。

このbladeというのは、テンプレートエンジン。 部分テンプレートを出力してくれる。

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Dashboard</div>

                <div class="panel-body">
                    @if (session('status'))
                        <div class="alert alert-success">
                            {{ session('status') }}
                        </div>
                    @endif

                    You are logged in!
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

@section

@section()~ @endsection は継承することができる。部分テンプレートのイメージ。

@if(条件)は、コントローラーから渡した変数が利用できる

PHPのように<?php と書かなくても@ だけ書けば良い。

{{ session('status') }}

はecho session('status') と同じ意味

@extendsは継承元を記載する。また書きます。


railsのrouting

railsは config>routes にある。

コマンドはurlより

ホームのurl/rails/info/routes

で確認するほうがわかりやすい。

Controller

laravelはapp>Http>Controller

にある。

railsはapp>controller

コンストラクタの書き方

phpは

__construct()と記載する

アンダーバー2つ コンストラクタはnewするだけで自動的に実行される。

rubyは

initialize()

SASSの設定

アプリケーション直下の composer.js に記載する

"require-dev": {
    "filp/whoops": "~2.0",
    "symfony/thanks": "^1.0",
    "panique/laravel-sass": "dev-master"
},

public>index.php に以下を記載

SassCompiler::run("scss/", "css/");

public>scss フォルダを作成

composer update を実行

ruby クラス モジュールの違い 忘備録

クラス はオブジェクトになれる

つまりインスタンス化能力を持ち、インスタンスメソッドやクラスメソッドを格納できる。

モジュール はインスタンス化能力は持たないがメソッドを格納できる。

クラスメソッド定義

class hoge

  def self.hoge
    #クラスメソッドの実装
  end

end

#こうもかける

class hoge

  class << self
    #クラスメソッドの実装
  end

end

そもそも

Rubyは単一継承 1つのクラスしか継承できない。 では複数のクラスのメソッドを利用したいときはどうするのか? そのときにモジュールを利用する

大規模開発に使うことが多い。

参考サイト クラス・モジュールの概念 Ruby - Qiita

文字分解 unicode 忘備録

特殊文字を分解することになったので,unicodeの調査

コンピュータは直接テキストを扱うことができません。彼らは数しか扱えない。コンピュータ内でテキスト(文字列)を(文字列)数として表現するには、文字から数へのマッピングを指定します。これはエンコーディングと呼ばれます。

エンコードのことですね。

最もよく知られている文字エンコーディングはASCIIです。ASCIIは、英語のアルファベット、0〜9の数字、句読点および制御文字を0〜127の整数にマップする7ビットコードです。その後、さまざまな8ビットエンコーディングが作成され、コンピュータが他の言語でも動作するようになりました。英語。それらは主にASCIIに基づいており、追加の文字、記号、またはアルファベット全体(キリル文字やギリシャ文字など)をエンコードするために未使用の8ビット目を利用していました。

初期は8ビットで足りたということだね

unicodeはこちらで調べられるらしい

Code Charts

正規化フォーム

我々は、文字列の等価性がUnicodeの単純な概念ではないことを見ました。コードポイントとコードポイントの2つの文字列を比較する以外に、正規の等価性または互換性の等価性をテストする方法も必要です。ユニコードはこれのためにいくつかの正規化アルゴリズムを定義します。文字列を正規化することは、それを等価な文字シーケンスの一意の表現を保証する形式に変換することを意味します。その結果、文字列を別の正規化文字列とバイナリ比較することができます。

Unicode標準には、C、D、KD、およびKCというラベルの付いた4つの正規化形式があります。これらは、2行2列の行列に配置できます(NSString正規化を実行するメソッドもリストしました)。

UTF-16と代理ペアの概念

UTF-16はもっと一般的であり、これから見るように、NSStringのUnicode実装の議論に非常に関連があります。これは、16ビットの固定幅を持つ、いわゆるコード単位で定義されています。UTF-16自体は可変幅エンコーディングです。BMPの各コードポイントは、1つのコード単位に直接マッピングされています。BMPはほとんどすべての共通文字を網羅しているので、UTF-16は通常UTF-32の半分のメモリしか必要としません。他のプレーンではめったに使用されないコードポイントは、2つの16ビットコードユニットでエンコードされます。一緒に1つのコードポイントを表す2つのコード単位は、サロゲートペアと呼ばれます。

UTF-16でエンコードされた文字列のあいまいなバイトシーケンスを回避し、サロゲートペアを簡単に検出できるようにするため、Unicode規格ではUTF-16の使用のためにU + D800からU + DFFFまでの範囲を予約しています。この範囲のコードポイント値には文字が割り当てられません。プログラムがUTF-16文字列でこの範囲に入るビットシーケンスを検出すると、サロゲートペアの一部に遭遇したことがすぐにわかります。実際のエンコーディングアルゴリズムは単純です、そしてあなたはUTF-16のためのウィキペディアの記事でそれについてもっと読むことができます。UTF-16の設計も、コードポイントの21ビット範囲が奇妙に見える理由です。U + 10FFFFは、この方式でエンコードできる最大値です。

最初の2バイトを調べれば、バイトオーダーを識別できる

すべてのマルチバイトエンコーディングスキームと同様に、UTF-16(およびUTF-32)もバイト順に注意する必要があります。メモリ内の文字列の場合、ほとんどの実装は当然それらが実行されるCPUのエンディアンを採用します。ディスクへの保存やネットワーク上での転送のために、UTF-16は実装が文字列の先頭にByte Order Mark(BOM)を挿入することを可能にします。BOMは値U + FEFFを持つコード単位であり、ファイルの最初の2バイトを調べることによって、デコードマシンはそのバイトオーダーを認識できます。BOMはオプションであり、標準ではデフォルトとしてビッグエンディアンのバイトオーダーを規定しています。バイトオーダーを指定する必要性によってもたらされる複雑さは、OS XとWindowsの両方が内部的にそれを使用するけれども、UTF-16がファイルフォーマットまたはネットワーク上の伝送のための一般的なエンコーディングではない理由の1つです。

文字列をまずlengthで求める

文字列オブジェクトはそれ自身をUnicode文字の配列として表します…。lengthメソッドを使用して文字列オブジェクトに含まれる文字数を決定し、メソッドを使用して特定の文字を取得できますcharacterAtIndex:。これら2つの「プリミティブ」メソッドは、文字列オブジェクトへの基本的なアクセスを提供します。

ただその場合は é  は2文字としてカウントされてしまう。

NSString *s = @"e\u0301"; // e + ´
NSLog(@"The length of %@ is %lu", s, [s length]);
// => The length of é is 2

 文字シーケンスの結合:éがその分解形式(e + ´)でエンコードされている場合、2つのコード単位としてカウントされます。

precomposedStringWithCanonicalMappingを使用すると実際の文字数を把握できる。

NSString *n = [s precomposedStringWithCanonicalMapping];
NSLog(@"The length of %@ is %lu", n, [n length]);
// => The length of é is 1

参考サイト

https://www.objc.io/issues/9-strings/unicode/

Ruby で文字列の Unicode コードポイント

参考サイト これでめどが付きました。

Ruby で文字列の Unicode コードポイントと \uXXXX 表記用の 16 進数を得る - @kyanny's blog

めでたし、めでたし

Elastic Beans Rails Deploy 忘備録

ここを参考にRailsに挑戦 AWS Elastic Beanstalk と Python3+Django そしてデプロイ - Qiita

そもそもRubyのバージョンが2.6になっているのが問題。バージョンが違うのだ

仮想環境を設定する。

https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/create-deploy-python-django.html

Railsの仮想環境はvagrant が良いので、インストールからする。

まずVirtualBox をインストール

最近のMACだと カーネルと呼ばれるOSの中核的機能を拡張するようなアプリケーションのインストールの際、手動での追加認証が必要になりました。普通にすると、インストールできない。 システム環境設定>セキュリティとプライバシーを変更する。

vagrantもインストールされていた

$ vagrant -v
Vagrant 2.1.5

作業環境は~/vagrant/centos7 とした。

RDSの問題

mbstringに対応していない。 そのため結論から言うとmysql5.7以上を利用すること パラメーターグループを作成 f:id:happy_teeth_ago:20190217114959p:plain その後設定

このページが一番良い

blog.hello-world.jp.net

追加で下記のパラメータも1にしておく

skip-character-set-client-handshake

リブート完了を待って再びshow variables like 'char%';

rails db:seedをする前なら動く

mysql> select * from users; Empty set (0.00 sec)