2020年12月31日木曜日

2020年12月30日水曜日

2020年12月29日火曜日

2020年12月28日月曜日

2020年12月27日日曜日

鉄犬ヘテロトピア文学賞

日経朝刊の文化欄に管啓次郎さんが,「遠吠えする鉄犬文学」として,鉄犬ヘテロトピア文学賞の話題を書いていた。まったく読んだことにない作品ばかりだった。かろうじて,第2回の候補作の「加藤直樹『九月、東京の路上で』(ころから)」だけは読んでいた。

第1回鉄犬ヘテロトピア文学賞
第2回鉄犬ヘテロトピア文学賞
第3回鉄犬ヘテロトピア文学賞
第4回鉄犬ヘテロトピア文学賞
第5回鉄犬ヘテロトピア文学賞
第6回鉄犬ヘテロトピア文学賞
第7回鉄犬ヘテロトピア文学賞


写真:鉄犬ヘテロトピア文学賞(読書人WEBから引用)


2020年12月26日土曜日

レゴ(2)

レゴ(1)からの続き

LEGO組み立て説明書」アプリをダウンロードすると(アプリ名称が「の遊び方」になるのはなぜだ),これまでの製品の詳細がわかる。また,製品についているマニュアルのpdf版もあるので便利かもしれない。

LEGO Classic 11717 1504 (2020) ブロックブロックプレート
LEGO Classic 11911 1500 (2020) アイデアパーツ〈動物セット〉
LEGO Classic 10717 1500 (2018) ブロックブロックブロック
LEGO Classic 10697 1500 (2015) アイデアパーツ〈XXL〉
LEGO Classic 10705 1000 (2016) アイデアパーツ〈XL〉
LEGO Classic 10704 900 (2017) アイデアパーツ〈スペシャルセット〉
LEGO Classic 11002 900 (2019) 作ってあそぼう
LEGO Classic 10698 790 (2015) 黄色のアイデアボックス〈スペシャル〉
LEGO Classic 10705 583 (2016) アイデアパーツ〈エクストラセット〉
LEGO Classic 10695 580 (2015) アイデアパーツ〈スペシャルセット〉
LEGO Classic 10703 502 (2017) アイデアパーツ〈建物セット〉
LEGO Classic 10698 484 (2015) 黄色のアイデアボックス〈プラス〉
LEGO Classic 11004 450 (2019) 創造力の窓
LEGO Classic 11003 451 (2019) アイデアパーツ〈目のパーツ入〉
LEGO Classic 10715 442 (2018) アイデアパーツ〈タイヤセット〉
LEGO Classic 11009 441 (2020) アイデアパーツ〈ライトセット〉
LEGO Classic 11008 270 (2020) アイデアパーツ〈お家セット〉
LEGO Classic 10712 244 (2018) アイデアパーツ〈歯車セット〉

2020年12月25日金曜日

WHOのCOVID-19データ(3)

WHOのCOVID-19データ(2)からの続き

WHOのjsonデータの冒頭部分を取り出してみた。国別に,UNIX-timeの行と地域名の行の次に10項目の数値データが並んだ配列が格納されていた。10項目の内訳は,死亡数/日,死亡数累計,1週間の死亡数,1週間の死亡数の変化分,100万人あたりの死亡数,確定感染数/日,確定感染数累計,1週間の確定感染数,1週間の確定感染数の変化分,100万人あたりの確定感染数,となっていて,これを取り出していたのだった。

 {

"componentChunkName":"component---src-templates-table-tsx",

"path":"/table",

"result":

  {"pageContext":

    {"countryGroups":[


{

"dimension":{"name":"Country","type":"STRING","dataType":"STRING"},

"value":"US",

data":

{"metrics":

[

{"name":"Deaths",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

,

{"name":"Cumulative Deaths",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

,

{"name":"Deaths Last 7 Days",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

,

{"name":"Deaths Last 7 Days Change",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

,

{"name":"Deaths Per Million",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

,

{"name":"Confirmed",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

,

{"name":"Cumulative Confirmed",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

,

{"name":"Cases Last 7 Days",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

,

{"name":"Cases Last 7 Days Change",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

,

{"name":"Cases Per Million",

 "type":"NUMBER",

 "dataType":"NUMERIC",

 "aggregateFunction":"SUM"}

],


"dimensions":

[

{“name":"day", "type":"TIMESTAMP", “dataType":"STRING"},

{“name":"Region", “type":"STRING", "dataType":"STRING"}

],


"rows":

[

[1578009600000,”AMRO",0,0,0,0,0,0,0,0,0,0],

[1608595200000,"AMRO",1570,315318,18478,9.16,952.61,197199,17712290,1671195,13.64,53511.02]

],


"totals":[315318,42488183,2153709,15832.590000000002,128361.91999999997,17712290,1494857008,118829648,32537.839999999975,4516148.239999997]

}

},


{"dimension":

    


2020年12月24日木曜日

Alfred(1)

 macOSのデスクトップツール(ランチャーアプリ)であるAlfredが超強力であるとの噂を聞きつけて,さっそくダウンロードしたものの,肝腎のメモ(Notes)が呼び出せないので速攻でアンインストールした。

しかし待てよと思い直して検索したところ,Spotlightの検索範囲に該当のファイルが存在しないと発見されないということだった。確かめてみると案の定,Spotlightからはアプリケーションフォルダが外されていた。普通はドキュメントだけ探したいからだった。

早速修正の上でAlfredを再インストールしたところ,OK。アマゾンだとかDeepLとか,いろいろと試して見る価値はあるかもしれないので,もう少し調べてみることにする。


[1]アルフレッドの使い方とおすすめワークフロー
[2]Alfred【概要・設定・使い方】〜Mac最強のランチャーアプリ
[3]Alfredアプリの設定・使い方まとめ完全版

2020年12月23日水曜日

OpenData API

 だいたい,日本のIT政策やシステムはほとんどダメダメのようにみえるけれど,オープンデータAPIポータルというのはちょっと良さげなので,登録してみた。すべての行政データをカバーするのかスゴイと思っていたら,新型コロナウィルス感染症関連情報だけなのか。ちょっと残念。早速ユーザ登録してみたが,英語のアナウンスというのはまあよいとして結構スマートに標準的なユーザ登録方法が実装されている。パスワードで特殊文字を要求されたのでハイフンを使ったが,違うような雰囲気だった。ハイフンは特殊文字ではないのだろうか。

札幌市,会津若松市,群馬県,東京都,神奈川県,横浜市,福井県,三重県,神戸市,福岡市が早速対応していた。もちろん大阪や奈良はないのであった。

著作権について記述されている,利用規約の第12条は以下の通り,まあいいんじゃないの。

本サイトに掲載されている各地方公共団体が著作権を有する著作物の利用(複製、公衆送信、翻訳・変形等の翻案等)については、クリエイティブ・コモンズ・ライセンス(以下「CCライセンス」という。)の著作権を有するもの(ロゴ、シンボルマーク等を除く。)は、クリエイティブ・コモンズ・ライセンス(以下「CCライセンス」といいます。)の表示4.0 国際(CC BY 4.0)((https://creativecommons.org/licenses/by/4.0/legalcode.ja)に規定される著作権利用許諾条件を指します。)により利用できます。なお、数値データ、簡単な表・グラフ等のデータは著作権の対象ではありませんので、ライセンス欄に「CC BY」の表記がある場合でも、当該データのうち、これらのデータについてはCCライセンスの適用はなく、 自由に利用できます。

2020年12月22日火曜日

JSON

 JSONは, Javascript Ibject Notation の略であり,JavaScript(ECMAScript)のデータ定義文をベースとした簡易データ定義言語である。共通データ定義言語として,XMLにかわってJSONが利用されるようになった。以下にJSONの形式をまとめる。

オブジェクト:" "で囲まれた"キー"(文字列型)と"値"の対をコロンで結び,カンマで区切って並べたものを{}で包んだもの,階層構造が可能なので,値には,オブジェクト,配列,数値,文字列,真偽値,ヌル値がくる {"name":"koshix", "age":67}

配列:ゼロ個以上の"" で囲まれた"値"をカンマで区切って並べたものを[]で包んだもの,オブジェクトの値がすべて値として取れるので,オブジェクトや配列の配列も可能["seiryu","suzaku","byakko","genbu"]

数値:10進法整数,10進法浮動小数点(1.0e-10も可)

文字列:" "で囲まれたUnicode文字列,\" (ダブルクォーテーション) \\ (バックスラッシュ) \/ (スラッシュ) \b (バックスペース) \f (フォームフィード) \n (ラインフィード) \r (キャリッジリターン)\t (タブ) \uxxxx (Unicode文字)

真偽値:true, false(真偽を示す,必ず小文字で)

ヌル値:null(値がないことを示す,必ず小文字で)

[1]Juliaでのjsonの利用

2020年12月21日月曜日

python3の入出力

python3の入出力周りをまとめた。


(1)標準入出力( test1.py < a > b )
#!/usr/local/bin/python3
import sys
a = []
for l in sys.stdin:
    a.append(l)
    print(l.rstrip())
print(a)

(2)ファイル入出力 (test2.py )
#!/usr/local/bin/python3
with open('kajitu.txt','w',encoding='utf-8') as f:
    with open('fruits.txt',encoding='utf-8') as inf:
        for row in inf:
            columns = row.rstrip()
            print(columns)
            f.write(columns) 

(3) コマンドライン引数 (test3.py x y )
#!/usr/local/bin/python3
import sys
print('sys.argv : ', sys.argv)
print('type(sys.argv) : ', type(sys.argv))
print('len(sys.argv) : ', len(sys.argv))
print('sys.argv[0] : ', sys.argv[0])
print('sys.argv[1] : ', sys.argv[1])
print('sys.argv[2] : ', sys.argv[2])

2020年12月20日日曜日

3Dプリンタ

引き込もり生活が続いて,YouTubeが不可欠のツールになった。 時間は無限に溶かすことができる。

レゴは,YouTube動画を3本くらいみて卒業したので,次は3Dプリンタである。大阪教育大学のICT支援ルームにも導入されていた。導入企画案の作文をしたかも(しなかったかも)なので,関心・意欲・態度はあったのだが,残念なことに実行が伴わず,自分では使おうともしなかった。

ICT支援ルームのウェブページを確かめてみると,導入されている3DプリンターはUltimakerのものらしい。UltimakerというとスライサーソフトCURAなので(というか今日学んだ),筋はよかったのではないか。しかしながら,YouTubeをざっと眺めてみたところ,おすすめは,CrealityのEnder-3である。ステッピングモータの基盤を交換すると静音化もできて最強である。最初から静音基盤を使った Ender-3 V2も2万7千円で入手可能だ(あら,アマゾンでは倍の値段がついている,ひどいなぁ)。

FreeCADFusion360などを使えば,自分でデザインした立体物をつくれる。あるいは,iPhone12 Pro やiPad ProのLiDARによる3Dスキャンデータを使うといろいろ楽しいことがまっているということなのかもしれない。

[1]iPhoneが3Dスキャナーに アプリと活用方法を徹底解説(Tsukasa-3D)
[2]Creality  Ender-3 V2 User's Manual
[3]Thingiverse

2020年12月19日土曜日

ANN

 日本物理学会大阪支部の2020年度公開シンポジウム「AIで切り開く物理の世界」をZoomのウェビナーで視聴した。普段はなかなか足が重くて敬遠してしまうイベントでも,オンライン開催だと気軽に参加できるところがありがたい。橋本幸士さんの話も,牧野淳一郎さんの話も面白かった。

深層学習を関数 $y=f(x)$ だと定義して,$y$を求める順問題,$x$を求める逆問題(初期値問題),$f$を求める逆問題(システム決定問題)に分類したところや,多体系の量子力学を解くために,行列積状態,テンソルネット状態,ニューラルネット状態を用いるという整理は腑に落ちた。

原子核への応用はどうなっているのかをarxivで調べてみると,A≦4の変分モンテカルロ法をANN(Artificial Neural Network)で求めるというのが,2020年の7月に投稿されており,これを含めてIsing系でニューラルネット状態を提案したCarleoの一連の論文が非常に興味深かった。ニューラルネットを実験データと直接付き合わせるような論文は,1980年頃にはNuclear Physicsで見かけていたが,ついにここまできたか。

牧野さんがコンピュータのCPUの90%は計算に使われておらず,理論的な限界を目指した科学的な再設計が必要であると主張されていた。これはこれで面白い話だ。


2020年12月18日金曜日

ボキャブラリ

 英語のボキャブラリサイズのテストがあったので,覗いてみたところ,日本語もある。ほんとかなと思って試してみると,同義語と反義語の2種類が繰り返し4択式で出てくる問題だった。英語のほうも試してみたところ,10歳児程度であった。かなり難しかったのよ。

図1 英語ボキャブラリサイズテストの結果

図2 日本語ボキャブラリサイズテストの結果



2020年12月17日木曜日

素数の計算(4)

 素数の計算(3)の続き

というわけで,JuliaのPrimes.jlでは,primes()を使って探す方が,prime()を計算するより早いということがわかってしまった。1億番目の素数を求める場合,prime()単体では,primes()を用いた場合より35倍遅い。なんだか・・・。なお,素数計数関数 $n = \pi(x)$の逆関数としては,前回のものをちょっと修整して,$x(n) = 10^{1.05 \log(n) + 1.0}$を用いた。

using Primes

function testp(n,k)
  if(k==1)
    m=Int64(floor(10^(1.05*n+1.0)))
    p=primes(m)
    println(p[10^n])
  elseif(k==2)
    println(prime(10^n))
  end
end

for i in 6:8
  @time testp(i,1)
end

for i in 6:8
  @time testp(i,2)
end


15485863
0.067474 seconds (43 allocations: 14.778 MiB)
179424673
0.915835 seconds (163 allocations: 151.275 MiB, 0.35% gc time)
2038074743
12.159200 seconds (163 allocations: 1.536 GiB, 0.10% gc time)
15485863
2.350876 seconds (2.53 M allocations: 38.664 MiB)
179424673
33.536126 seconds (29.35 M allocations: 447.880 MiB)
2038074743
426.317886 seconds (333.40 M allocations: 4.968 GiB, 0.12% gc time)

2020年12月16日水曜日

勝負の三週間

「新型コロナウイルスの感染拡大防止に向けて政府が短期間の集中した取り組みを呼びかけた「勝負の3週間」が16日最終日を迎えた」ということらしいが,感染者数も死亡者数も高止まりしている。東京に比べて大阪が若干ましに見えているけれど本当のところはどうだかわからない。吉村は和歌山県知事のメッセージもスルーしているようだし,相変わらずマスコミとの共依存でまともな対応がなされていないような気がする。とにかくデータが信頼できないというのが致命的だ。

2020年12月15日火曜日

レゴ(1)

 クリスマスプレゼントにレゴをと考えて,探してみたものの,自分の考えていた昔のレゴは,LEGO CLASSICの中にも見つからなかった。単純な白,赤,黃,青,黒の5色の基本ブロックだけであらゆるものを作り出すという考えはもう古いのかもしれない。レゴ社のコマーシャルフィルムによれば,単純なものから複雑なものという戦略をやめて,最初から複雑な多様なブロックを組み合わせて,よりリアルで定まった完成品を作るという商品系列が主流になってしまった。レゴユーザーのメイキング動画をYouTubeでみているとそれなりに引き込まれてしまうので,戦略としては正しいのかもしれないが,全ての物質は素粒子から成り立っていて,世界は単純な基本法則で説明されるという世界観はもう古びてしまったのかもしれない。

2020年12月14日月曜日

素数の計算(3)

 素数の計算(2)からの続き

JuliaのPrime.jlのprime()がおかしいのであれば,n番目までの素数が登場する範囲の整数の範囲がわかれば,その整数をすべてisprime()でチェックしたほうが早いのではないかという考えで,n番目の素数から整数範囲を求める方法を調べた。

素数定理によれば,素数の数$n=\pi(x)$は${\rm Li}(x)=\int_2^x \frac{1}{log t}dt$で与えられるということだ。対数積分は,Pythonのライブラリにはあるが,JuliaのSpecialFunctions.jlには入っていない。いずれにせよ近似値でよいのだから,素数定理の$\pi(x)$の表をながめて,えいやっと逆関数の近似式を求めた。

$x=\pi^{-1}(n)=10^{\dfrac{9.11*\log_{10}n+6.5}{8.5}}$

残念ながらこれで計算したprime()の代替関数はオリジナルの15倍時間がかかるという情けない結果に終わってしまった。猿の浅知恵の典型的パターンである。

using Primes

function logint(n)
  x=10.0^((9.11*log10(n)+6.5)/8.5)
  m = BigInt(floor(x))
  println(m)
  return m
end

function test(n)
  m = logint(n)
  i = 0
  for p in 1:m
    if(isprime(p))
      i = i+1
      if(i == n)
        println(p)
        break
      end
    end
  end
end

@time test(10^6)
@time println(prime(10^6))


15678124
15485863
32.740030 seconds (124.81 M allocations: 4.688 GiB, 12.73% gc time)
15485863
2.493369 seconds (2.53 M allocations: 38.664 MiB, 0.99% gc time)

2020年12月13日日曜日

素数の計算(2)

素数の計算(1)の続き

Juliaの素数計算が遅い原因を絞り込みたい。python3とJuliaを比べると,素数判定のisprimeや範囲指定素数のprimerangeやprimesではともに高速であるが,順序指定素数のprimeにおいて,juliaはpythonの200倍程度時間がかかっている。しかし,同じ範囲の素数は,素数判定や範囲指定素数では高速に計算できているので,juliaのprimeのコードがややこしいことになっているのが問題だと思われる。

python3では, 
- - - - - - - - - - 
from sympy import *
import time
start_time=time.time()
n=179424673
m=10**7
for p in range(n,n+50):
    if isprime(p)==1:
        print(p)
lap1_time=time.time()
print(list(primerange(n, n+50)))
lap2_time=time.time()
for i in range(m,m+4):
    print(prime(i))
end_time=time.time()
print(lap1_time-start_time)
print(lap2_time-lap1_time)
print(end_time-lap2_time)

- - - - - - - - - - 
179424673
179424691
179424697
179424719
[179424673, 179424691, 179424697, 179424719]
179424673
179424691
179424697
179424719
0.0050160884857177734
0.002671957015991211
0.5041019916534424

julia1.5.1では 
- - - - - - - - - - 
using Primes

function test1(n)
  for p in n:n+50
    if(isprime(p))
      println(p)
    end
  end
end

function test2(n)
  println(primes(n,n+50))
end

function test3(n)
  for p in n:n+3
    println(prime(p))
  end
end

@time test1(179424673)
@time test2(179424673)
@time test3(10^7)

- - - - - - - - - - 
179424673
179424691
179424697
179424719
0.000310 seconds (146 allocations: 3.500 KiB)
[179424673, 179424691, 179424697, 179424719]
0.000521 seconds (207 allocations: 8.109 KiB)
179424673
179424691
179424697
179424719
128.789228 seconds (117.41 M allocations: 1.750 GiB, 0.34% gc time)


2020年12月12日土曜日

ファンドマネージャー

だまされないようにと思いながら,だまされて 一月万冊を見ていると,ときどき,気になるニュースが飛び込んでくる。今回の清水有高と安富歩の話題の終わりの方に,ファンドマネージャーの課税の問題が登場した。ああ,これが大阪を国際金融都市にという大阪維新の妄言の根拠だったのか。新自由主義ブレーンのもとで,菅政権が狙っているサッチャリズムのコアとなる政策のひとつなのかもしれない。世襲血縁にまで手を突っ込もうとしているのかどうかはまだよくわからない。