本『暗号解読』(サイモン・シン)の感想
- 作者: サイモンシン,Simon Singh,青木薫
- 出版社/メーカー: 新潮社
- 発売日: 2007/06/28
- メディア: 文庫
- 購入: 30人 クリック: 216回
- この商品を含むブログ (234件) を見る
面白かった。 「暗号の歴史」が知れる本。
そもそもは暗号というのは、バレてはいけない内容の話(急襲とか反乱とか)が漏れ出ないように、重要人物から重要人物への通信(手紙とか)に使う手段だった。
とにかくバレなければ良い、ということなので、最初は手紙、それ自体の存在を隠すという、ステガノグラフィ(隠蔽)も秘密の通信には大事な要素だった。
しかし、次第にバレても絶対読めないよね?の暗号技術がより研究されるようになり、それが戦争の勝利への重要要素になったりと、人類に非常に関わっていくこととなる。
印象的だったのは、今日は当たり前の無線通信が、それが発見された当初はとても画期的であり、例えば、それまでの通信というのは地点間にケーブルを埋設してやっと交信できたのに対して、無線はそういった工事がなく使用できたという歴史の流れ。
すなわち、無線はいち早く、基地と基地、前線と基地が通信でき、これがあるのとないのとでは、戦争に勝てるかどうか決定的な差が生まれる。
しかし無線なので、その通信の存在自体は隠匿できず、したがってその通信内容をいかに秘密にするべきか暗号技術がまたさらに発展し、さらに無線になったことで有線の時よりも通信しやすくなり、通信量が増えたことで人間による暗号化・複合化に限界がきて、暗号機械(エニグマ)が誕生・・・というくだりが読みごたえがあった。
SwiftUI プレビューのデバイスを指定する、複数指定する
コード
- previewDevice() でデバイスを指定できる
- 例として iPhone SE, iPhone XS Max をプレビューする
import SwiftUI struct ContentView: View { var body: some View { VStack { Text("Hello") .font(Font.custom("AvenirNext-Heavy", size: 100)) } .background(Color.yellow) } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ForEach(["iPhone SE", "iPhone XS Max"], id: \.self) { deviceName in ContentView().previewDevice(PreviewDevice(rawValue: deviceName)) } } }
プレビュー結果
資料
macOS Catalina 10.15 Beta をインストールして Xcode / SwiftUI の Canvas Preview を試す
はじめに
Xcode 11 をインストールして SwiftUI を試した。
SwiftUI のチュートリアルはここにある。
https://developer.apple.com/tutorials/swiftui/creating-and-combining-views
これをみると、コーディングした結果が、リアルタイムでプレビュー確認できる大変便利な形になっているが、実際は私の環境(macOS 10.14.6 Mojave)ではこのプレビューがなかった。
チュートリアルをよくみると、上のようにプレビューを動作させるためには macOS 10.15 Catalina が必要と書かれていた。
ということで、本日時点(2019/9/25)では正式な macOS 10.15 はまだリリースはされていないので、 Beta バージョンをインストールし、SwiftUI のプレビューできるかを試してみる。
ただし、正式な macOS 10.15 がリリースされるのは、近い将来(おそらく 2019/10ごろ)だろうから、Beta に抵抗がある場合、少し待って正式版を使うと良い。
macOS Catalina 10.15 Beta をインストール
https://developer.apple.com/download/
このページに行き
Install Profile ボタンをクリックする。
dmg ファイルがダウンロードされるので、クリックして実行(マウント)する。 dmg 内に pkg があるので、クリックして実行する。
ソフトウェア・アップデートから Catalina Beta をインストールできるようになっているので、インストールする。
インストールが実行される。
macOS 10.15 Catalina が起動される。
Xcode の追加コンポーネントのインストールを要求されるので、インストールする。終わったら Xcode を起動する。
エディタの右上のオプションをクリックする。
オプションのメニューの Canvas を選択すると、プレビューが起動する。
こういった感じでコード変更がライブプレビューされるので、目的は達成できた。
OpenWeather から気象情報を取得する
OpenWeather
https://openweathermap.org/
はじめに
OpenWeather とは
どんな気象 API があるか
https://openweathermap.org/api
おおざっぱに、いくつか API をあげる。これらは無料でも使用可能。
- 現在の気象データ
- 1時間ごとの予測気象データ(4日間、96時間分)
- 16日間の予測気象データ
基本的に API のレスポンスは JSON フォーマットで取得できる。さらに一部の API については XML フォーマットのレスポンスも対応している雰囲気。
価格
https://openweathermap.org/price
現在と今後の予測の API は無料でも使用できるが、有料プランもある。ここではプランごとの API 呼び出し回数上限(分ごと)を取り上げる。
プラン | 料金(月ごと) | API 呼び出し回数上限(1分間) |
---|---|---|
Free | 無料 | 60 回 |
Startup | 40 US$ | 600 回 |
Developer | 180 US$ | 3,000 回 |
Professional | 470 US$ | 30,000 回 |
Enterprise | 2,000 US$ | 200,000 回 |
API キーを準備する
https://home.openweathermap.org/users/sign_up
- 上のページからユーザ登録する
- 「I am 16 years old and over」のチェックボックスがあるので、16歳以上しか登録できないようだ。
- ログインした状態で HOME (https://home.openweathermap.org/) にアクセスし、「API Keys」タブをクリックすると、 API キーが表示される
- もしくはユーザ登録時に届くメールにも API キーは書かれている
API をテストする
前提
- ここでは「現在の気象データ」API をテストする
- 例として、新宿(東京)のデータを取得してみる
- リクエストパラメータ
- appid パラメータに API キーを設定する
- q パラメータに都市名を設定する
API リクエスト例
https://api.openweathermap.org/data/2.5/weather?appid=<APIキー>&q=Shinjuku,jp
API レスポンス例
{ "coord":{ "lon":139.71, "lat":35.7 }, "weather":[ { "id":801, "main":"Clouds", "description":"few clouds", "icon":"02n" } ], "base":"stations", "main":{ "temp":297.58, "pressure":1008, "humidity":65, "temp_min":294.82, "temp_max":299.82 }, "visibility":10000, "wind":{ "speed":4.1, "deg":270 }, "clouds":{ "all":20 }, "dt":1569268257, "sys":{ "type":1, "id":8074, "message":0.0101, "country":"JP", "sunrise":1569270598, "sunset":1569314220 }, "timezone":32400, "id":1850144, "name":"Shinjuku", "cod":200 }
API 呼び出し回数上限
#!/bin/sh for i in {0..100} do curl "https://api.openweathermap.org/data/2.5/weather?appid=<API キー>&q=Shinjuku,jp" done
1分間の API 呼び出し回数制限(60回)を超えた時の動作を試したく、上のシェルを複数に並列で動作させたが、上限を超えた旨を示すレスポンスは確認できなかった。すべて正常にデータを得られた。これについては不明。(2019/9/28 時点)
そのた
- 気温の単位がデフォルトでケルビンになる。摂氏で取得したい場合は units=metric で API を呼び出すこと(参照:https://openweathermap.org/current#data)
https://api.openweathermap.org/data/2.5/weather?appid=<APIキー>&q=Shinjuku,jp&units=metric
- 都市名ではなく、緯度経度指定したい場合は lat, lon パラメーターを使用する
https://api.openweathermap.org/data/2.5/weather?appid=<APIキー>&lat=35.690128&lon=139.701701
本『哲学的な何か、あと数学とか』(飲茶)の感想
- 作者: 飲茶
- 出版社/メーカー: 二見書房
- 発売日: 2018/02/01
- メディア: 文庫
- この商品を含むブログを見る
アマチュアの数学者フェルマーが残したこの定理には当時「証明」がなく、実際にそれが証明されたのは、フェルマーが生きた時代17世紀から300年以上だった20世紀だった。
この本には、フェルマーが残した謎に満ちた、しかし悪魔的に魅力があるこの定理に、数々の数学者が挑戦してきた歴史が書かれている。
そこには、人間の情熱だったり、苦しさからくる挫折だったり、環境の問題(性差別、貧困)によるどうしようもない不幸だったりがある。ひとことで言うと人間ドラマ。
だから、フェルマーの最終定理ってどんな感じで解決したの? と数学に興味があり手にとったが、読んでいて、その人間ドラマとしての部分も楽しめた。
ちなみに、この本の序盤の部分は、作者のサイト フェルマーの最終定理 - 哲学的な何か、あと科学とか に公開されているので、どんな感じの本かはここで確認して、この先が読みたければ、実際に本を読んでもいい感じ。
Docker ディスクイメージのファイルサイズを変更する
環境
- Docker Desktop Community for Mac : Version 2.1.0.3(38240)
手順
!この手順を行うと、今あるすべてのイメージ / コンテナが失われることに注意!
- メニューから Preferences を選び、 Preferences のウインドウの中から Disk タブを選択する
- この画面の Disk image location の Reveal in Finder ボタンをクリックすると実際のディスクイメージのファイルを Finder で閲覧できる(Docker.raw)
- Finder でみるとこんな感じ
- スライダーを移動させると任意のサイズを指定できるので、指定して Apply ボタンをクリックすると、ディスクイメージサイズを変更できる(今回は 16 GB に変更した)
- 警告のウインドウが表示される。すべてのイメージとコンテナが消されることが書かれている。問題ないならば、 Resize ボタンをクリックする
- Resize すると Docker が再起動中になり、一番下のステータスが Docker Desktop is starting に変わる
- さらに待つとステータスが Docker Desktop is running になる
- あらためて Finder でディスクイメージをみるとファイルサイズが変更されることが確認できる