MENU

冷凍庫の霜取り - debris 3

いつかしなければ、、と思ってなかなかできないことの一つに冷凍庫の霜取りがある。

小さいお下がりの冷凍庫は勝手に自らの容積をじりじりと減らしていくのだ。

素麺の季節が終わって薬味の冷凍ネギがなくなったので、冷凍庫が空になった。

まさに今がチャンスだということで平日にも関わらず、霜取りを始めてみた。

何でも調べるのも、と思いまず冷凍庫の電源を落とす。

そして扉を開けっぱなしにする。

これで放置すればいいだろうと思ったが、積もり積もった氷は一向に溶けてくれない。

PCに向かう背中が妙に涼しいのは季節の変わり目というだけではなさそうだ。(冷蔵庫は背後に設置してある。)

温めればいいのではと思い立って、沸騰させたお湯をかけてみた。

底面は溶けたが、強敵は上底なのだ(上底という言葉は台形の公式でしか使わないと思っていた)。

仕方なく手近似合ったフォークで突いてみた。

これが意外に上手く行って大きな氷の塊がガサッと削れてくれた。

誰にも教わらなくてもなぜか上手くいくことが自分に向いていること、と聞いたことがあるが、 作曲もエンジニアもなぜか上手くいくことなんて一つもないので氷を削る人にでもなった方がいいのかもしれない。

今日は冷凍庫は開けたまま眠る。

iPhone Xから楽天unlimitedに繋がらない - tips9

iPhone X楽天unlimitedが使いたい

  • 基本は以下のサイトをよく読めばいけるはず

dagashi.pw

  • 環境
    • iPhone X
      • A1902(Settings->General->About->Model Numberをタップすると表示される)
        • A1902だとGSMモデルのipsw
        • Choose an iPhone / IPSW Downloads←このサイトから
        • フォルダとして開いて、一番大きなdmgファイルを展開
        • 中にあるKDDI_LTE_only_jpを手元にコピー(拡張子外す)
        • 手元にPayload/unknownを作成する
        • KDDI_LTE_only_jpの中身を作ったところにいれる
        • zipで固めて.ipccにする
      • IOS14.0.2

Network構築について - tips8

ネットワーク構築において注意すること

arpタイムアウト

  • 機器によって異なる
  • Ex. SWX3200の初期値→arp-ageing-timeout 1200(s)

DNSについて

  • ネットワーク機器では以下の3点を設定することがある
    • 自身がDNSクライアントとして動作するときの設定
    • 自身がリカーシブ(代理)サーバーといて機能するときの設定
    • 配下の端末にdhcpで配信するときの設定

デフォルトドメイン名について

  • デフォルトドメインを".co.jp"設定しておくと、ping yahooと打つだけでドメインを補完してくれる
  • ping以外にもdnsから取得する際にも有効

icmpリダイレクト

  • L3デバイスがパケットの送信元ホストに、特定の宛先ネットワークに対する適切なゲートウェイを通知する機能のこと
  • パケットがあふれることがあるため注意する
  • 回避するために明示的にルーティングを指定する

l2msパケット

  • デフォルトのvlan1を使用するため、vlan1をtrunkで許可しないと使用できなくなる
  • デフォルトではvlan1は通すはず

ネットワーク - tips7

メモ

読んだ本


OSI認証モデル

  • アプリケーション層
    • 通信に使うサービス
  • プレゼンテーション層
  • データの表現方法を通信に適した形式にする
  • セッション層
    • 通信するプログラム間で会話をする
    • コネクションの開始、終了、同期など
  • トランスポート層(Ex.TCP,UDP)
    • コンピュータ内でどのアプリケーションと通信をするのかを管理する
    • 通信網の品質の差を補完し、通信の信頼性を確保する
  • ネットワーク層(Ex.IP)
    • データが始点から終点まで届くように管理する
  • データリンク層
    • ネットワーク上でデータが直接接続された通信機器まで配送されるように管理する
    • この層で作成されるパケットをフレームと呼ぶ
    • フレームが実際に通信路を流れるデータとなる
  • 物理層
    • 物理的な接続を管理する
    • デジタルを光に変換したりする

音について

  • 標本化
    • 音声信号を一定の間隔をおいてサンプリングすること
  • 標本化定理
    • ある周波数のアナログ信号をデジタル化するときアナログで信号に復元するためには、その周波数の2倍のサンプリング周波数が必要という定理

通信で使われるデータ

  • 文字で表すことのできるデータをテキストデータ
  • 画像や音声などテキストデータ以外のものをバイナリデータ
  • 一般的にトランスポート層まではバイナリデータ、アプリケーション層ではテキストデータを扱う

サーバースペックについて

  • 何の要素が何に影響を与えるか
    • CPU→クロック数,個数,コア数,キャッシュ容量,仮想化対応
    • メモリ→容量,転送速度,枚数,ECCの有無
      • ECC(Error-correcting code)メモリとは、コンピュータの記憶装置の種類の1つで、最も一般的な種類の内部データ破損を検出し修正することができるもの

システム構成

  • クラスタ
    • 複数のコンピュータを結合してひとまとまりにしたシステム
  • シンクライアント
    • 仮想化、処理のほとんどをサーバー側で行う
  • P2P
    • 端末同士で対等に通信を行う方式
  • 分散処理システム
    • 複数のプログラムが並列に処理をするシステム
    • 利用者は其のことを意識せずに使用可能(アクセス透過性)
  • CDN(Contents Delivery Network)
    • 動画や音声などの大容量データを利用する際に、回線の負荷を軽減するようにサーバーを分散配置する手法

通信方式

  • 半二重通信
    • 送信と受信を同時に行えない
  • 全二重通信
    • 送信と受信を同時に行える
  • オートネゴシエーション
    • スイッチ間で上記のどちらにするかを取り決める
  • CSMA/CD方式
    • 半二重通信では一度に1組ずつしか通信できない
    • 其の為、どの端末が通信するかを決めて、其の組だけが通信するように制御する必要がある
    • イーサネットでは早い者勝ちで端末が決まる
    • この競走を制御するのがコンテンション方式(CSMA方式)
      1. Carrier Sense(CS)
      2. Multiple Access(MA)
      3. Collision Detection(CD)

オクテット

  • 8bitのこと
    • 1byteとほぼ同じだが、正確に8bitを表すときに使われる

ブロードキャストアドレス

  • 全てのbitが1のアドレス

通信サービス

  • VPN
    • IP-VPN
      • 通信事業者が提供するIPネットワークでVPNを構築する
      • パケットの前にラベルを付けて通信を認識するMPLS(Multi-Protocol Label Switching)を使う
    • インターネットVPN
      • IPsecを使いインターネット上に独自にVPNを構築する
  • 広域イーサネット
    • VLANを使い他の顧客との通信を分離する

IPv4アドレス

  • ユニキャスト
    • 相手を一つのホストに限定した1:1の通信
  • ブロードキャスト
    • 同一ネットワークの全てのホストにパケットを送信するためのアドレス
  • マルチキャスト
    • 必要としているグループのみにパケットを送信する仕組み
  • 最長一致法(ロンゲストマッチ)
    • ルーティングテーブルに複数ある場合にはネットワークアドレスのプレフィックスが長い方が優先される
    • /16,/24があったら/24

ICMP(Internet Control Message Protocol)

  • IPで通信するするときに必要になる
  • PCのデフォゲの設定が間違っていたときにルータが正しいゲートウェイを知らせるためにICMPリダイレクトパケットが利用される
  • 種類
    • 情報メッセージ
      • 障害対策などで診断を行うために情報の問合せを行う
    • エラーメッセージ
      • エラーが起きたときにエラー通知を行う

ARP

  • GARP(Gratutious ARP)
    • DHCPでIPを割り当てるときにそのIPアドレスがすでに使われているかを確認する

NATトラバーサル

  • NAT越え
  • IPsecではポート番号がないのでNAT越えができない
  • IPsecパススルー機能

IPv6アドレス

Cオブジェクト指向 - tips6

気になったことメモ

読んだ本

  • モダンC言語プログラミング(花井志生)

Cのモジュール化とオブジェクト指向

  • オブジェクト指向の基本的な考え方
    • データとデータの処理を1つにまとめることで独立性を高める
  • 多態性
    • 外から見たら見分けがつかないが、中の振る舞いが異なる特性
    • Ex.)validete(検証)という関数さえ呼べば、内部の処理は引数として渡した構造体に格納されている値で決まる
  • 継承
    • 親子関係(is - a関係)

*1

*1:Continue...

Cメモ - tips5

気になったことメモ

読んだ本

  • C言語ポインタ完全制覇(前橋和弥)
  • ふつうのLinuxプログラミング(青木峰郎)

主にポインタ

  • %pに入れる時はvoid*でキャストする必要がある
#include <stdio.h>

int main(void)
{
  int hoge = 5;

  printf("&hoge : %p\n", (void*)&hoge);

  return 0;
}
  • void型のポインタ宣言注意
#include <stdio.h>

int main(void)
{
  int hoge = 5;
  void *hoge_p;

  hoge_p = &hoge;
// アドレスの値だけ渡している状態
// hoge_pのままだと型が定まっていないためエラー
// どの型で取り出していいか分からない
  printf("%d\n", *(int*)hoge_p);

  return 0;
}
  • ポインタに加算をするとそのポインタの型の大きさバイト分だけアドレスが増加する
#include <stdio.h>

main(void)
{
  int hoge;
  int *hoge_p;

  hoge_p = &hoge;

  *hoge_p++;  // +1でint分(4バイト)だけ増加する
  printf("hoge_p : %p\n", (void*)hoge_p);
  return 0;
}
  • NULLについて
int *p = 3; // これは警告、型が違う
int *p = 0; // 0という定数はポインタとして扱うべき時はヌルポインタとして扱われる
  • 配列について
    • 宣言で使われる""と式の中で使われる""は別物
    • 式の中で使われる"[]"は*(p + i)のようなポインタpからiだけずらした位置を示すシンタックスシュガー
    • 関数の仮引数の宣言においてだけ、配列の宣言はポインタに置き換えられる
int func(int a[]) → int func(int *a)
  • アライメントについて
    • 構造体のサイズを求める時にメンバーのサイズを足し算して求めるのは誤り
    • CPUによってメンバーが入るアドレスは異なる
    • 例えばcharの後のメンバーの型がdouble型でCPUがdouble型を8の倍数のアドレスにしか配置しない場合、charのうしろにはパディングが入る

  • printfについて

    • 注意点としてfgetsなどで取得した文字列の中に%が入っていると挙動がおかしくなる
  • Linux動作環境

    • ほとんどが32bitOS上→long型が32ビット *1

*1:Continue...