ICTについて使える情報を発信していきます. 遠回りしたり, 自分のペースで...

このブログを検索

2020年4月20日 振り返り

スケジュール

  • ~ 7:00 寝てた
  • ~ 9:30 仕事準備
  • ~18:30 仕事
  • ~19:00 風呂
  • ~20:30 食事
  • ~23:30 だらだら
  • ~24:00 振り返り書く

出来事

  • macの画面が壊れていたので, hdmiで対処し, 仕事準備
  • メルカリでmac book pro 7万9000円を購入, 適宜返信
  • docker-compose ローカルホストで繋がらない問題を解決. ESETのFWのせい.
  • GAEでクローラを作成プロジェクトが進行中.
  • 人工知能と人工無能, 仕事について, 両親とおしゃべり
  • Bluetooth モジュールを作ってみたくなった
    • USB切り替え機のBluetooth版が欲しい
  • 新しいプログラミング言語を考える
    • 日本語によるオブジェクト指向の言語
      • 例
        • 果物:りんごを切る みたいに, 〇〇を〇〇するという構文でつくりたい

適当に

なんとなく振り返りを始めた. 3日は続ける

眠いので今日はここまで.

Read More

dockerでDocker Composeができるようになっていたお話

コンカイハ, Docker ComposeをインストールすることなくDocker Composeを使う話をします. なんのこっちゃと思われそうですがw

あらかじめ, Dockerはインストールしていてください.

環境

docker/composeイメージを使う

docker/composeというdockerイメージがDocker Hubにあります.
それを使うことにより, dockerコマンドのみで, Docker Composeが使えるようになります.

実際に使ってみましょう.

$ docker run --rm \
-v "/var/run/docker.sock:/var/run/docker.sock" \
-v $PWD:$PWD -w $PWD docker/compose:alpine-1.25.4 \
version

Unable to find image 'docker/compose:alpine-1.25.4' locally
alpine-1.25.4: Pulling from docker/compose
89d9c30c1d48: Pull complete
eccc02a3b135: Pull complete
7382d3c5d78f: Pull complete
f410c750fbcb: Pull complete
Digest: sha256:390bdf3da99a622f5c11f4db386dd97f2858db30cfed07d000b867f1fb25b2f7
Status: Downloaded newer image for docker/compose:alpine-1.25.4
Define and run multi-container applications with Docker.

docker-compose version 1.25.4, build 8d51620
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.1d  10 Sep 2019

これで簡単にdocker-composeが使えちゃいます. ありがたい.

使っているオプションを説明すると

-v "/var/run/docker.sock:/var/run/docker.sock"

docker deamonの通信に必要.
Ref: https://docs.docker.com/engine/docker-overview/


-v $PWD:$PWD -w $PWD

これがないとdocker-compose.ymlのvolume機能が効かないため, 追加した.
volumeを使わない場合はいらない.

となっています.

docker/composeでhello world

では, docker-compose.ymlを使って実際に動かしてみましょう.

$ cat <<EOF > docker-compose.yml
version:  "3"
services:
  hello-world:
    image: hello-world
EOF
% docker run --rm \
-v "/var/run/docker.sock:/var/run/docker.sock" \
-v $PWD:$PWD -w $PWD docker/compose:alpine-1.25.4 \
> up
Creating network "hello-world_default" with the default driver
Pulling hello-world (hello-world:)...
latest: Pulling from library/hello-world
Digest: sha256:9572f7cdcee8591948c2963463447a53466950b3fc15a247fcad1917ca215a2f
Status: Downloaded newer image for hello-world:latest
Creating hello-world_hello-world_1 ... done
Attaching to hello-world_hello-world_1
hello-world_1  |
hello-world_1  | Hello from Docker!
hello-world_1  | This message shows that your installation appears to be working correctly.
hello-world_1  |
hello-world_1  | To generate this message, Docker took the following steps:
hello-world_1  | 1. The Docker client contacted the Docker daemon.
hello-world_1  | 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
hello-world_1  | (amd64)
hello-world_1  | 3. The Docker daemon created a new container from that image which runs the
hello-world_1  | executable that produces the output you are currently reading.
hello-world_1  | 4. The Docker daemon streamed that output to the Docker client, which sent it
hello-world_1  | to your terminal.
hello-world_1  |
hello-world_1  | To try something more ambitious, you can run an Ubuntu container with:
hello-world_1  | $ docker run -it ubuntu bash
hello-world_1  |
hello-world_1  | Share images, automate workflows, and more with a free Docker ID:
hello-world_1  | https://hub.docker.com/
hello-world_1  |
hello-world_1  | For more examples and ideas, visit:
hello-world_1  | https://docs.docker.com/get-started/
hello-world_1  |
hello-world_hello-world_1 exited with code 0

これによって, docker-compose.ymlが動かせることがわかりました.
実際にはdocker-composeの公式のhello worldを動かしたほうが良いと思いますが, ここは手抜きさせてください…

docker/composeを使うコマンドを関数にする

これで, docker-composeがdockerのみで動かせるようになりましたが, 何しろコマンドが長い. なので, コマンドを関数化しましょう.

docker-compose(){  docker run --rm -v "/var/run/docker.sock:/var/run/docker.sock" -v $PWD:$PWD -w $PWD docker/compose:alpine-1.25.4 "$@"; }

これを\.*shrcなりにおいておくと, つぎからdocker-composeコマンドがインストールされているかのように使えます.

$ docker-compose(){  docker run --rm -v "/var/run/docker.sock:/var/run/docker.sock" -v $PWD:$PWD -w $PWD docker/compose:alpine-1.25.4 "$@"; }
$ docker-compose version
docker-compose version 1.25.4, build 8d51620
docker-py version: 4.1.0
CPython version: 3.7.5
OpenSSL version: OpenSSL 1.1.1d  10 Sep 2019
$ docker-compose up -d
Starting hello-world_hello-world_1 ... done

もしくはaliasを使うという手もあります.

alias docker-compose='docker run --rm -v "/var/run/docker.sock:/var/run/docker.sock" -v $PWD:$PWD -w $PWD docker/compose:alpine-1.25.4'

まとめ

ということで, Docker ComposeをインストールせずにDocker Composeを使う方法を紹介しました. 言われてみれば思うのですが, DockerあるのにDocker Composeをインストールするのはおかしいですよね…
あんまり目立った欠点もなさそうですし, 普段使いはこれでDocker Composeを使おうと思います.

Read More

2021年01月08日 振り返り

dairy icatch image

スケジュール

適当に

  • メラトニン3mg飲んだのですごい爆睡してた. 11時ぐらいまでちょっとまどろんでいた感じ. 昔は3mgで快眠できるぐらいだったんだけど, いったん錠剤割って使ってみる.
  • 仕事
    • まぁこの日は自分のタスク出来ないなぁと思ってたので普通. 外部の人とかとしゃべったりした.
  • ゲーム
    • 最近キルレ意識しすぎてきもい戦い方しかできない. もっととつってとつってキルを取りたい.
  • 英語の勉強
    • inpatient(せっかち)はpatient(忍耐) に in(反対)の接頭辞がついてそういう意味になる
    • rudeは失礼とか未熟?的な意味らしい. 語源はよくわかっていないらしい. もとはrufousとかrufusと同じ赤という言葉から派生したんじゃないかなと思われているらしいけどやっぱよくわかってない. ちなみにrufousは赤とブラウンが混じった色らしい. あと, rufousで検索すると鳥がヒットするからもとは鳥の色から来たのかもね.
    • flawは欠陥という意味らしいけど, かけらという意味のフレーク(flake)と似た意味らしいので, コーンフレークと同じ見たいに思っとけば良さそう. 人に使ったら欠けている状態 -> 欠陥的な.
    • projectは動詞もとれるんだね知らなかった. もととなった単語はproicereらしく, proが前に進むで, icereが投げ出すという意味らしいので前に投げ出すという意味らしい.物理的には「 捨てるか前に出す」という意味で使われるらしい. 前に出すというのはプロジェクターがまさにそれニッ使われているね. あと, 精神的なものに適応されて, 「心を前に投げ出す」という概念になるらしい. なので思いをはせる -> 計画するになったんじゃないかなぁという推測
Read More

mitmproxyでプロキシを立てて簡単にiphoneの通信を取得する

コンカイハ, プロキシ経由で簡単に通信情報が取得できるmitmproxyを使ってみました.

環境

  • Mac OS(プロキシを立てるためのパソコン)
  • Iphone(クライアント)

どうやって通信情報を取得する?

iphoneとwebの間にmitmproxyを挟みます.
それによって, mitmproxyで通信情報を取得, 見ることができます.

iphone <-> mitmproxy <-> network

httpsでも情報を見ることができるそうです.

詳しくは公式に色々書いてあります.

実際に通信情報を見てみた.

実際にmitmproxyのサーバーをmacで立てて, iphoneをつなげて試してみました.

mitmproxyでプロキシを立てる

プロキシを立てるためにdockerを使います.
公式が用意しているdockerがdockerhubにあるのでそれを使います.

ターミナルで

docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy

と打つと画面が更新され, サーバーが立ち上がります.

-p <任意のポート>:8080にすれば任意のポートを開放することができます.

サーバーのつながっているネットワークのSSIDとIPアドレスを確認する.

サーバーのネットワーク接続先のSSIDとIPアドレスを確認します.
Macの場合だとシステム環境設定から開くことができます.

Mac System Preference > Network Settings

今回の場合だと, SSIDはhogehoge, IPアドレスは192.168.0.2となります.

Iphoneで通信先のプロキシを設定する

iphoneで実際に通信先のプロキシを設定してみます.

iphoneのsetting画面を開いてWi-Fi欄をタップします.

SSIDはhogehogeとしておきます.

iphone settings

Wifi設定画面でhogehogeをタップします.

iphone>wifi settings

下の方にスクロールし, プロキシを構成をタップします.

iphone>wifi>ssid settings

プロキシの設定画面で, 手動をタップし, サーバーのIPアドレス(192.168.0.2)とポート(8080)をそれぞれ入力します.

iphone>wifi>ssid>proxy settings

以上でセッティングは終わりです.

まとめ

ということで, プロキシ経由で簡単に通信情報が取れるmitmproxyを使ってみました. デバッグとかに使えそうです.

Read More

DaiGo提案のサイクルメモのやり方

コンカイハ, Youtubeで紹介されていた, DaiGoさんが勉強で使っているというサイクルメモの手順をブログに書いてみました.

何日か後にDaiGoの公式ブログの方で紹介すると思いますが, 今すぐ自分が使ってみたいので, サイクルメモのやり方をまとめてみます.

サイクルメモのやり方

6つの手順 + α で構成されています.

  1. Todoリストを作成する.
  2. 各Todoについて, 使うサイクル数を予測する.
  3. 各Todoについて, 自分の中で測定可能な数値を決める.
  4. 1サイクル行い, 学んだことを一言でまとめ, 進捗と改善点を書く
  5. 休憩を取る.
  6. 予測と実際のサイクル数を照らし合わせる.
  7. (Option)やりたいことや誘惑ができたら, メモに書いておく.

手順0 メモ帳, タイマーを用意し, サイクルを定義する.

サイクルメモを行うための事前準備が必要です.

メモ帳とタイマーを用意します. スマホのアプリでも構いませんし, 紙や時計を買ってきても良いです. IPhoneだとデフォルトでタイマーとメモ帳が入っています.

次にサイクルを定義します. ポモドーロのように, 作業時間と休憩時間を1サイクルとして決めます. ポモドーロテクニックでは

1サイクル: 25分作業 -> 5分休息

がよく使われています.

作業時間と休憩時間は自由で構いません.

今回は25分作業, 5分休息を1サイクルとして説明していきます.

手順1 Todoリストを作成する.

Todoリストを作成します. 例えば明日のTodoリストを今日の夜に作成しておきます.

例えば, 「<タイトル名>の本を読み終える」などです.

手順2 各Todoについて, 使うサイクル数を予測する

何をするかを決めたら, どのぐらいサイクル数を使うか予測します.

例えば, 「<タイトル名>の本は難しいから, 読み終えるのに4サイクル(約1時間半)ぐらい使いそう.」 などです.

手順3 各Todoについて, 自分の中で測定可能な数値を決める.

作業量や生産性を測れるような基準, 数値を決めます. 進捗がわかるような基準がベストです. もし測るのが難しいなら, 集中力など, 主観に頼った基準でも良いです.

例えば本だと「読んだページ数」, 「まとめた目次の数」などです.

手順4 1サイクルを行った後に学んだことを一言でまとめ, 進捗と改善点を書く

では実際にタイマーを使って1サイクルを行います.

1サイクルが終わったら, メモ帳に次の3つを書きます.

  1. 1サイクル中に学んだことを一言でまとめる.
  2. どれだけ進んだかを数値として書く.
  3. 改善点を書く.

学んだことを一言でまとめることによって, 要約能力が身につき, 軽い復習もできます.

進捗を書くことで, この1サイクルでどれぐらい進んだか, 集中できたかどうかがわかります.

最後に次のサイクルに改善したい点, 効率化できる点を書きます. そうすることで, 次に書き出した効率できる点をやりたくなります. それによってモチベーションの維持ができます.

例えば, 「<タイトル名>の本はこういう事が書いてあった. 20ページ読んだ. 途中でスマホの通知で気がそれたので, 次のサイクルではスマホを機内モードにしてみる.」などです.

手順5 休憩を取る.

手順4が終わった後は休憩をしましょう.

休憩中は運動か瞑想を行うことで, より知識が定着しやすくなります. そのため, 運動か瞑想をすることをおすすめします.

DaiGoさんは, 休憩時間中にHIITと呼吸瞑想のどちらかを行うことをおすすめしていました. 理由は次の2つです.

  1. うまくいけばHIITができ, 心肺機能を高めることができる.
  2. うまく行かなくても呼吸瞑想を行うことができ, めんどくさいと思わなくなる.

手順6 予測と実際のサイクル数を照らし合わせる.

予測と実際のサイクル数を照らし合わせることで, タスク完了の予測力を高めることができます.

例えば「本を読み終えるのは4サイクルぐらいでできると思っていたら, 実際には5サイクルかかっていたなぁ」などです.

これによって, 仕事の見積もりができるようになります.

手順7(Option) やりたいことや誘惑ができたら, メモに書いておく.

やりたいことを先延ばしにするとモチベーションが下がることを利用します.

やりたいことや誘惑が出てきたらメモに書いておいて先延ばしにします. そして永遠に先延ばしができるようになると, 誘惑に強くなるのでおすすめです.

まとめ

ということで, サイクルメモの方法を文章で書いてみました. PDCAを30分で回している感じですね.

  1. Todoリストを作成する.
  2. 各Todoについて, 使うサイクル数を予測する.
  3. 各Todoについて, 自分の中で測定可能な数値を決める.
  4. 1サイクル行い, 学んだことを一言でまとめ, 進捗と改善点を書く
  5. 休憩はHIITと呼吸瞑想のどちらかを行う.
  6. 予測と実際のサイクル数を照らし合わせる.
  7. やりたいことや誘惑ができたら, メモに書いておく.

お手軽なのでしばらく使ってみようと思います.

Read More

Popular Posts