2019年4月10日水曜日

非常勤講師初日出勤

以前より30分遅い出勤で,書類提出やら出勤簿押印やら。間違えてすぐにもとの研究室に足が向かう。帰りは3時間早かった。時間感覚がつかめない状態で新年度が始まった。完全リタイアーまでの過渡期。

写真:肌寒しピンボケ桜の散り初め(2019.4.10)

2019年4月9日火曜日

2019年4月8日月曜日

(春休み 8)

「ちるさくら海あをければ海へちる」 (高屋窓秋 1910-1999)

2019年4月7日日曜日

(春休み 7)

「春燈のシェードの翳を書の上に」 (五十崎古郷 1896-1935)

2019年4月6日土曜日

(春休み 6)

「バスを待ち大路の春をうたがはず」 (石田波郷 1913-1969)

2019年4月5日金曜日

(春休み 5)

" freshly mown grass
clinging to my shoes
 my muddled thoughts "
(Gracie Starkey 2004-)

2019年4月4日木曜日

2019年4月3日水曜日

(春休み 3)

「小さき堰波立てゝをり春の川」 (高木晴子 1915-2000)

2019年4月2日火曜日

2019年3月31日日曜日

元号ゲーム(2)

元号ゲームの結果をながめていたら,「弘文」が目に入った。こんな元号あったんじゃないか。調べてみると天皇の名称(弘文天皇)だった。確かに,過去の元号制定の条件(昭和大礼記録)では「元号は本邦はもとより言うを俟たず、支那、朝鮮、南詔、交趾(ベトナム)等の年号、その帝王、后妃、人臣の諡号、名字等及び宮殿、土地の名称等と重複せざるものなるべきこと」となっているので,過去の天皇の名称(漢風諡号)は排除すべきだった。

明日からの旅行の準備に忙しくてもう時間がない。面倒だなと思いつつ,日本の天皇のリストでもつくっておこうとして,天皇名のCSVファイルをつくって,EXCELに読み込ませると,何と文字化け。EXCELはUNICODEのCSVファイルをちゃんと読み込んでくれないのだった。SHIFT-JISに変換するとよいのだが,面倒な話だ。ということで,ここで意欲を失ったので,今日はおしまい。というか明日発表なので,もうおしまい。

とりあえず,データだけあげておく(正しいかどうか確認していないので注意せよ)。
"1","神武","2","綏靖","3","安寧","4","懿徳","5","考昭","6","考安","7","考霊","8","考元","9","開化","10","崇神","11","垂仁","12","景行","13","成務","14","仲哀","15","応神","16","仁徳","17","履中","18","反正","19","允恭","20","安康","21","雄略","22","清寧","23","顕宗","24","仁賢","25","武烈","26","継体","27","安閑","28","宣化","29","欽明","30","敏達","31","用明","32","崇峻","33","推古","34","舒明","35","皇極","36","考徳","37","斉明","38","天智","39","弘文","40","天武","41","持統","42","文武","43","元明","44","元正","45","聖武","46","考謙","47","淳仁","48","称徳","49","光仁","50","桓武","51","平城","52","嵯峨","53","淳和","54","仁明","55","文徳","56","清和","57","陽成","58","光考","59","宇多","60","醍醐","61","朱雀","62","村上","63","冷泉","64","円融","65","花山","66","一条","67","三条","68","後一条","69","後朱雀","70","後冷泉","71","後三条","72","白河","73","堀河","74","鳥羽","75","崇徳","76","近衛","77","後白河","78","二条","79","六条","80","高倉","81","安徳","82","後鳥羽","83","土御門","84","順徳","85","仲恭","86","後堀河","87","四条","88","後嵯峨","89","後深草","90","亀山","91","後宇多","92","伏見","93","後伏見","94","後二条","95","花園","96","後醍醐","97","後村上","98","長慶","99","後亀山","100","後小松","101","称光","102","後花園","103","後土御門","104","後柏原","105","後奈良","106","正親町","107","後陽成","108","後水尾","109","明正","110","後光明","111","後西","112","霊元","113","東山","114","中御門","115","桜町","117","後桜町","118","後桃園","119","光格","120","仁考","121","孝明","122","明治","123","大正","124","昭和","125","今上",

P. S. ミカド文庫(モラロジー研究所由来)というサイトに,「日本の年号候補・未採用文字案」というページを発見した。まじめに取り組むとこういうふうになる。

P. P. S. 明日から1週間ほどBLOG投稿はお休みになると思いますのでよろしく。

2019年3月30日土曜日

元号ゲーム(1)

前回の元号予想プログラムを少しチューニングした。条件は次のとおり。

(1) これまでの日本の元号に登場した漢字の範囲で考える。ただし1文字目と2文字目は区別して考える(4文字元号は2文字元号に読み替える)。
(2) 1文字目の漢字と2文字目の漢字のそれぞれの出現確率の積で順序づける。
(3) 既存のアジア(日本,中国,朝鮮,ベトナム,台湾)の元号とそれを入れ替えたものに一致するものは排除する(例えば,「安久」は排除される)。
(4) 慶応,明治,大正,昭和,平成の各漢字は排除する。
(5) 画数の多い漢字,MTSHで始まる漢字などを排除する(「など」のところにプログラマの主観が入る)

昭和とか平成の場合を考えると,このアルゴリズムはよくないことがわかっているが,目をつぶることにしよう(そりゃ,「苦節」とか「余命」とか「結婚」とか「懲役」とか「西暦」とか「卍」とか「タピオカ」のほうがおもしろいに決まっている)。とにかくこの条件で結果抽出されたものが下記のとおり。

(250, 839, 26, 159, 17)
("弘久", 0.020164609053497942)
("永化", 0.019753086419753086)
("元化", 0.018518518518518517)
("万安", 0.016049382716049384)
("万元", 0.014814814814814815)
("文弘", 0.01316872427983539)
("弘文", 0.011522633744855968)
("万久", 0.008641975308641974)
("文万", 0.006584362139917695)
("文同", 0.006584362139917695)
("文字", 0.006584362139917695)
("永同", 0.006584362139917695)
("永字", 0.006584362139917695)
("元万", 0.006172839506172839)
("元同", 0.006172839506172839)
("元字", 0.006172839506172839)
("安化", 0.006172839506172839)
("斉永", 0.005761316872427984)
("朱永", 0.005761316872427984)
("白永", 0.005761316872427984)
("至永", 0.005761316872427984)
("斉安", 0.005349794238683128)
("昌安", 0.005349794238683128)
("朱安", 0.005349794238683128)
("白安", 0.005349794238683128)
("至安", 0.005349794238683128)
("万文", 0.0049382716049382715)
("斉元", 0.0049382716049382715)
("昌元", 0.0049382716049382715)
("朱元", 0.0049382716049382715)
("白元", 0.0049382716049382715)
("万化", 0.003703703703703704)
("弘万", 0.002880658436213992)
("弘同", 0.002880658436213992)
("弘字", 0.002880658436213992)
("斉久", 0.002880658436213992)
("昌久", 0.002880658436213992)
("朱久", 0.002880658436213992)
("白久", 0.002880658436213992)
("至久", 0.002880658436213992)
("万弘", 0.0024691358024691358)
("久化", 0.0024691358024691358)
("安万", 0.00205761316872428)
("安同", 0.00205761316872428)
("安字", 0.00205761316872428)
("久弘", 0.0016460905349794238)
("斉文", 0.0016460905349794238)
("昌文", 0.0016460905349794238)
("朱文", 0.0016460905349794238)
("白文", 0.0016460905349794238)

Juliaが使える方は,これで適当に遊んでください。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function exch(knj)
#
# knj input kanji string with 2 char
# return exchanged string with 2 char
return knj[4]*knj[1]
end

function gfrq(c,n,r,m)
#
# c input array of kanji char
# n size of c  
# r output array of sorted (kanji, count)
# m size of r
#
  sort!(c)
  k=0
  for j=2:n
    k=k+1
    if c[j]!=c[j-1]
      push!(r,(c[j-1],k))
      k=0
    end
  end
  sort!(r, by=x->x[2], rev=true)
  m=length(r)
#  println((m,r))
end

#japan
g1="大化,白雉,朱鳥,大宝,慶雲,和銅,霊亀,養老,神亀,天平,感宝,勝宝,宝字,神護,景雲,宝亀,天応,延暦,大同,弘仁,天長,承和,嘉祥,仁寿,斉衡,天安,貞観,元慶,仁和,寛平,昌泰,延喜,延長,承平,天慶,天暦,天徳,応和,康保,安和,天禄,天延,貞元,天元,永観,寛和,永延,永祚,正暦,長徳,長保,寛弘,長和,寛仁,治安,万寿,長元,長暦,長久,寛徳,永承,天喜,康平,治暦,延久,承保,承暦,永保,応徳,寛治,嘉保,永長,承徳,康和,長治,嘉承,天仁,天永,永久,元永,保安,天治,大治,天承,長承,保延,永治,康治,天養,久安,仁平,久寿,保元,平治,永暦,応保,長寛,永万,仁安,嘉応,承安,安元,治承,養和,寿永,元暦,文治,建久,正治,建仁,元久,建永,承元,建暦,建保,承久,承応,元仁,嘉禄,安貞,寛喜,貞永,天福,文暦,嘉禎,暦仁,延応,仁治,寛元,宝治,建長,康元,正嘉,正元,文応,弘長,文永,建治,弘安,文永,建治,弘安,正応,永仁,正安,乾元,嘉元,徳治,延慶,応長,正和,文保,元応,元亨,正中,嘉暦,元徳,元弘,正慶,建武,延元,興国,正平,建徳,文中,天授,弘和,元中,暦応,康永,貞和,観応,文和,延文,康安,貞治,応安,永和,康暦,永徳,至徳,嘉慶,康応,明徳,応永,正長,永享,嘉吉,文安,宝徳,享徳,康正,長禄,寛正,文正,応仁,文明,長享,延徳,明応,文亀,永正,大永,享禄,天文,弘治,永禄,元亀,天正,文禄,慶長,元和,寛永,正保,慶安,承応,明暦,万治,寛文,延宝,天和,貞享,元禄,宝永,正徳,享保,元文,寛保,延享,寛延,宝暦,明和,安永,天明,寛政,享和,文化,文政,天保,弘化,嘉永,安政,万延,文久,元治,慶応,明治,大正,昭和,平成,"
#china
g2="建元,元光,元朔,元狩,元鼎,元封,太初,天漢,太始,征和,後元,始元,元鳳,元平,本始,地節,元康,神爵,五鳳,甘露,黄龍,初元,永光,建昭,竟寧,建始,河平,陽朔,鴻嘉,永始,元延,綏和,建平,太初,元将,元寿,元始,居摂,初始,始建,天鳳,地皇,更始,建武,建武,中元,永平,建初,元和,章和,永元,元興,延平,永初,元初,永寧,建光,延光,永建,陽嘉,永和,漢安,建康,永憙,本初,建和,和平,元嘉,永興,永寿,延熹,永康,建寧,熹平,光和,中平,光熹,昭寧,永漢,初平,興平,建安,延康,黄初,太和,青龍,景初,正始,嘉平,正元,甘露,景元,咸熙,章武,建興,延熙,景耀,炎興,黄武,黄龍,嘉禾,赤烏,太元,神鳳,建興,五鳳,太平,永安,元興,甘露,宝鼎,建衡,鳳凰,天冊,天璽,天紀,泰始,咸寧,太康,太熙,永熙,永平,元康,永康,永寧,太安,永安,建武,永興,光熙,永嘉,建興,建武,大興,永昌,太寧,咸和,咸康,建元,永和,升平,隆和,興寧,太和,咸安,寧康,太元,隆安,大亨,元興,義熙,元熙,桓玄,天康,永鳳,河瑞,光興,嘉平,建元,麟嘉,漢昌,光初,太和,建平,延熙,建武,太寧,青龍,永寧,永興,元璽,光寿,建熙,建初,建興,晏平,玉衡,玉恒,漢興,太和,嘉寧,建興,和平,升平,皇始,寿光,永興,甘露,建元,太安,太初,延初,元光,燕元,建興,永康,建始,延平,青龍,建平,長楽,光始,建始,燕興,更始,昌平,建明,建平,建武,中興,建平,太上,正始,太平,太興,白雀,建初,皇初,弘始,永和,建義,太初,更始,永康,建弘,永弘,龍昇,鳳翔,昌武,真興,承光,勝光,太安,麟嘉,龍飛,承康,咸寧,神鼎,太初,建和,弘昌,嘉平,庚子,建初,嘉興,永建,神璽,天璽,永安,玄始,承玄,義和,承和,承平,真興,承陽,縁禾,太縁,永初,景平,元嘉,太初,孝建,大明,永光,景和,泰始,泰豫,元徽,昇明,建元,永明,隆昌,延興,建武,永泰,永元,中興,天監,普通,大通,大通,大同,大同,太清,大宝,天正,太始,承聖,天成,紹泰,太平,天啓,大定,天保,広運,永定,天嘉,天康,光大,太建,至徳,禎明,登国,皇始,天興,天賜,永興,神瑞,泰常,始光,神䴥,延和,太延,太平,真君,正平,承平,興安,興光,太安,和平,天安,皇興,延興,承明,太和,景明,正始,永平,延昌,熙平,神亀,正光,孝昌,武泰,建義,永安,建明,普泰,中興,太昌,永興,永熙,天平,元象,興和,武定,大統,天保,乾明,皇建,太寧,河清,天統,武平,隆化,徳昌,承光,武成,保定,天和,建徳,宣政,大成,大象,大定,開皇,仁寿,大業,義寧,皇泰,武徳,貞観,永徽,顕慶,龍朔,麟徳,乾封,総章,咸亨,上元,儀鳳,調露,永隆,開耀,永淳,弘道,嗣聖,文明,光宅,垂拱,永昌,載初,神龍,景龍,唐隆,景雲,太極,延和,先天,開元,天宝,至徳,乾元,上元,宝応,広徳,永泰,大暦,建中,興元,貞元,永貞,元和,長慶,宝暦,大和,開成,会昌,大中,咸通,乾符,広明,中和,光啓,文徳,龍紀,大順,景福,乾寧,光化,天復,天祐,天授,如意,長寿,延載,証聖,天冊,万歳,万歳,登封,万歳,通天,神功,聖暦,久視,大足,長安,仁安,大興,宝暦,中興,正暦,永徳,朱雀,太始,建興,咸和,建初,承平,義熙,甘露,章和,永平,和平,建昌,延昌,延和,義和,重光,延寿,賛普,長寿,見龍,上元,元封,応道,龍興,全義,大豊,保和,天啓,建極,法尭,貞明,大同,嵯耶,中興,安国,始元,天瑞,景星,安和,貞祐,初歴,孝治,天応,尊聖,興聖,大明,鼎新,光聖,文徳,神武,文経,至治,明徳,広徳,順徳,明政,広明,明応,明統,明聖,明治,明啓,乾興,明通,正治,聖明,天明,保安,正安,正徳,保徳,明侯,上徳,広安,上明,保定,建安,天祐,上治,天授,開明,天政,文安,日新,文治,永嘉,保天,広運,永貞,大宝,龍興,盛明,建徳,利貞,盛徳,嘉会,元亨,安定,鳳歴,元寿,天開,天輔,仁寿,道隆,利正,興正,天定,彝泰,開平,乾化,鳳歴,貞明,龍徳,同光,天成,長興,応順,清泰,天福,開運,天福,乾祐,広順,顕徳,天復,天祐,武義,順義,乾貞,大和,天祚,昇元,保大,中興,交泰,天宝,宝大,宝正,龍啓,永和,通文,永隆,天徳,乾亨,白龍,大有,光天,応乾,乾和,大宝,天復,武成,永平,通正,天漢,光天,乾徳,咸康,明徳,広政,乾祐,天会,広運,応天,同慶,天尊,中興,天興,天寿,建隆,乾徳,開宝,太平,興国,雍熙,端拱,淳化,至道,咸平,景徳,大中,祥符,天禧,乾興,天聖,明道,景祐,宝元,康定,慶暦,皇祐,至和,嘉祐,治平,熙寧,元豊,元祐,紹聖,元符,建中,靖国,崇寧,大観,政和,重和,宣和,靖康,建炎,紹興,隆興,乾道,淳熙,紹熙,慶元,嘉泰,開禧,嘉定,宝慶,紹定,端平,嘉熙,淳祐,宝祐,開慶,景定,咸淳,徳祐,景炎,祥興,神冊,天賛,天顕,会同,大同,天禄,応暦,保寧,乾亨,統和,開泰,太平,景福,重熙,清寧,咸雍,太康,太安,寿昌,乾統,天慶,保大,甘露,建福,徳興,神暦,延慶,康国,咸清,紹興,崇福,天禧,収国,天輔,天会,天眷,皇統,天徳,貞元,正隆,大定,明昌,承安,泰和,大安,崇慶,至寧,貞祐,興定,元光,正大,開興,天興,顕道,開運,広運,大慶,天授,礼法,延祚,延嗣,寧国,天祐,垂聖,福聖,承道,奲都,拱化,乾道,天賜,礼盛,国慶,大安,天安,礼定,天儀,治平,天祐,民安,永安,貞観,雍寧,元徳,正徳,大徳,大慶,人慶,天盛,乾祐,天慶,応天,皇建,光定,乾定,宝義,中統,至元,元貞,大徳,至大,皇慶,延祐,至治,泰定,致和,天順,天暦,至順,元統,至元,至正,至正,宣光,天元,洪武,建文,永楽,洪熙,宣徳,正統,景泰,天順,成化,弘治,正徳,嘉靖,隆慶,万暦,泰昌,天啓,崇禎,弘光,隆武,紹武,永暦,天命,天聡,崇徳,順治,康熙,雍正,乾隆,嘉慶,道光,咸豊,祺祥,同治,光緒,保慶,宣統,民国,洪憲,大同,康徳,"
#korea
g3="永楽,延寿,建元,開国,大昌,鴻済,建福,仁平,太和,慶雲,正開,武泰,聖冊,水徳,万歳,政開,天授,光徳,天開,開国,建陽,光武,光武,隆熙,大韓,民国,"
#vietnam
g4="天徳,太平,天福,興統,応天,景瑞,順天,天成,通瑞,乾符,有道,明道,天感,聖武,崇興,大宝,龍瑞,太平,彰聖,嘉慶,龍彰,天嗣,天貺,宝象,神武,太寧,英武,昭勝,広祐,会豊,龍符,会祥,大慶,天符,睿武,天符,慶寿,天順,天彰,宝嗣,紹明,大定,政隆,宝応,天感,至宝,貞符,天資,嘉瑞,天嘉,宝祐,治平,龍応,建嘉,天彰,有道,建中,天応,政平,元豊,紹隆,宝符,紹宝,重興,興隆,大慶,開泰,開祐,紹豊,大治,大定,紹慶,隆慶,昌符,光泰,建新,聖元,紹成,開大,興慶,重光,天慶,順天,紹平,大宝,大和,延寧,天興,光順,洪徳,景統,泰貞,端慶,洪順,光紹,統元,明徳,大正,広和,永定,景暦,光宝,淳福,崇康,延成,端泰,興治,洪寧,武安,宝定,康佑,乾統,隆泰,順徳,元和,順平,天祐,正治,洪福,嘉泰,光興,慎徳,弘定,永祚,徳隆,陽和,福泰,慶徳,盛徳,永寿,万慶,景治,陽徳,徳元,永治,正和,永盛,保泰,永慶,龍徳,永佑,景興,昭統,泰徳,光中,景盛,宝興,嘉隆,明命,紹治,嗣徳,協和,建福,咸宜,同慶,成泰,維新,啓定,保大,"
#taiwan
g5="永暦,康熙,永和,雍正,乾隆,順天,天運,嘉慶,光明,道光,咸豊,祺祥,同治,光緒,永清,大靖,民国,"
#east-asia
g=g1*g2*g3*g4*g5
println((div(length(g1),3),div(length(g2),3),div(length(g3),3),div(length(g4),3),div(length(g5),3)))
m=div(length(g),3)
#
# making array of tupples with numbered era names of east asia
#
c=fill((" ",0),m)
for i=1:7:m*7
  c[div(i,7)+1]=(g[i]*g[i+3],div(i,7)+1)
end
#
# the first and the second characters of the Japanese Gengo
#
n=div(length(g1),3)
a=fill(' ',n)
b=fill(' ',n)
for i=1:7:n*7
  a[div(i,7)+1]=g1[i]
  b[div(i,7)+1]=g1[i+3]
end
p=[ ]
q=[ ]
mp=0
mq=0
gfrq(a,n,p,mp)
gfrq(b,n,q,mq)
mp=length(p)
mq=length(q)
#
r=[ ]
for j in 1:mp
  for k in 1:mq
    if p[j][1]!=q[k][1]
      push!(r,[string(p[j][1],q[k][1]),p[j][2]*q[k][2]/(mp*mq)])
    end
  end
end
mr=length(r)
#
# exclude previousely used names of era (Japan China Korea Vietnum Taiwan)
# & their exchanges
#
for i in 1:mr, j in 1:m
  if r[i][1] == c[j][1] || r[i][1] == exch(c[j][1])
    r[i][2]=0
  end
#
# exlude recently used characters & complex characters & MTSH characters
#
  if occursin(r[i][1][1],"慶応明治大正昭和平成寛嘉亀徳康暦承雉吉祥福禄寿喜建延享亨興景観祚感乾老雲霊国勝武衡護養銅授泰神政天中長禎貞宝保仁")==true || 
     occursin(r[i][1][4],"慶応明治大正昭和平成寛嘉亀徳康暦承雉吉祥福禄寿喜建延享亨興景観祚感乾老雲霊国勝武衡護養銅授泰神政天中長禎貞宝保仁")==true
    r[i][2]=0
  end
end
#
sort!(r, by=x->x[2],rev=true)
for k in 1:50
 println((r[k][1],r[k][2]))
end
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

2019年3月29日金曜日

最後の出勤日

2019年3月31日を持って定年退職となるが,月末が土日なので,3月29日(金)が最後の出勤日となった。教員控室のメールボックスはすでに撤去されていた。手回しが早い。最後の出勤簿に捺印し,職員証と共済組合員証を返却し,部屋の鍵を預けた。1993年からなので,柏原キャンパスのこの部屋には26年住んでいたことになる。天王寺キャンパスでは11年か。20世紀の間は院生が同じ部屋に共存していたのだけど,21世紀にはいると別の部屋に入ってもらうようになった。どうしてだったのだろう。

写真 C1-209 2019年3月29日8:00ごろ




2019年3月28日木曜日

数学パワーが...orz

AI人材25万人育成の背景にあるのが,これなのか。

経済産業省「理数系人材の産業界での活躍に向けた意見交換会の報告書『数理資本主義の時代~数学パワーが世界を変える~』を取りまとめました」。理数系人材の産業界での活躍に向けた意見交換会の報告書が,「数理資本主義の時代〜数学パワーが世界を変える〜」として2019年3月26日に公表されている。

※1ここで言う「数学」は、純粋数学、応用数学、統計学、確率論、さらには数学的な表現を必要とする量子論、素粒子物理学、宇宙物理学なども含む広範な概念。

という注釈があるのだけれど,物理屋さんはよんでいないのかな。数学者の加藤文元さんは,参考人としてよばれて「NPO法人数理の翼」の話などしているようだけど。

キャリアパスの流れを変えるには,数理資本主義というキーワードも必要だったのだろうが,なんだか気持ち悪いし実効性もないような気がする。この際,グローバル化しきれない経済産業省と右傾化した文部科学省を統合して,経済教育開発省とすると,発展途上国に向かって逆進化の道を進んでいる我が国の未来にふさわしいのではないだろうか。なんで定年退職の最後から2番目の出勤日にこんなくだらない記事を書いているのだろうか。反省することしきりなり。

2019年3月27日水曜日

AI人材年25万人育成...orz

うーん,政府の中枢が経産省に乗っ取られると,なかなか面白い政策が次々と実行され,我が国はますますボロボロになっていくような気がガガ。Radio Ga Ga

日本経済新聞の3月27日の夕刊によりますと,内閣府の統合イノベーション戦略推進会議が29日に公表する「AI戦略」の概要に,人工知能(AI)を使いこなす人材を25万人育てる心目標を掲げるとのこと。全大学生がAIの初等教育を受けるように大学に要請し,社会人向けの専門課程も設置するそうだ。小学校の教育課程へのプログラミング教育導入と見事に対をなしているのだった(経産省起点で文科省に手を突っ込む作戦か)。そのAI戦略の概要は次の通り。

理念:
 「数理・データサイエンス・AI」はすべての国民にとって
 「読み・書き・そろばん」と並ぶスキルに
主な取り組み:
 ・全ての大学生・高専生に初級レベルのAI教育(この対象は60万人である)
 ・AIと専門分野のダブルメジャーを促進
 ・大学に社会人専門コースを設置し,学び直しを支援

かつて,ソフトウェア技術者の不足をソフトウェア危機としてあおり,情報系のバブルをもたらしたまま,後始末におわれた経験を生かしているようには見えないのだけれども。いったいどうなっているのだろうか。必要な人材数の数量的評価も杜撰(ニュースの社会科学的な裏側)なのかもしれない。

2019年3月26日火曜日

Juliaで標準入出力

今朝の日経新聞に,全国統一プログラミング王決定戦本戦の記事が載っていた。新聞に示された例題を見るとそんなに難しそうではない。自分でもできそうなレベルだ。さっそくウェブサイトを訪れると,昨年のマストドンブームでお見かけしたC++の江添亮さんに影響されてC++を勉強するためにバーチャルに通った,会津大学のAOJオンラインプログラミングチャレンジと同じようなフレーバーのサイトだった。

さっそくJuliaで挑戦してみようとしたところ,C++とかPythonはありそうだが,そもそもJuliaなんて受け付けられないのではないか。それはそれとして,Juliaで標準入力をどうするのかは今まで考えてこなかった。この機会に調べてみよう。

(1) Jupyter環境の場合
なんのことはない,readline()とすると stdin> として標準入力が要求された。めでたしめでたし。

(2) REPL環境の場合
標準入力のプロンプトは自分で設定しないと出ないのだが,入力待ちの環境中で入力と改行を繰り返せばよいだけである。入力データの型はStringになっていた。例えばMacOSXの Julia REPL環境でプログラム開発ループを実現するには,まずbashのコマンドラインでJuliaを起動し,REPL環境が立ち上がれば,julia>プロンプトに対し,
  edit("/Users/xxxx/yyyy/test.jl")
  include("/Users/xxxx/yyyy/test.jl")
を繰り返して,編集とプログラムの読み込みを実行すればよかった。

ここで,ユーザxxxxの作業ディレクトリyyyyにJuliaのテストプログラム test.jl を置いたものと仮定している。editでは標準に設定されているエディタが起動した(ここがまだよくわかっていない)。したがって,これ以降はエディタで編集し,includeを繰り返えせばよい。

[注]Macにインストールしたjuliaは,/Applications/Julia-1.1.app/Contents/Resources/julia/bin/julia にあった。bashでパスを有効にするには,.bashrcにパスを記述して,.bash_profileにでbash起動時に.bashrcを読み込むようにする必要がある。
cat .bash_profile
if [ -f ~/.bashrc ] ; then
. ~/.bashrc
fi
cat .bashrc
export PATH=$PATH:/Applications/Julia-1.1.app/Contents/Resources/julia/bin

(3) コマンドライン環境の場合
この場合はもう少し勉強してコンパイルできるようになってから考えよう。

P. S. At Coder のプログラム言語,Juliaは隅の方にあったけど,0.5.0なのだった...orz

参考:Juliaで競技プログラミング(AtCoder)やるときのTips(Julia 0.5.0用)

2019年3月25日月曜日

JupyterLab

JupyterLabのすすめ」という記事があったので,JupyterLabをさっそくインストールしてみた。

退職後の4月から非常勤講師としてこれまでと同じような授業を担当する。とりあえず,現在使用しているコンピュータ(MacProやMacBookProなど)を明け渡さなければならないので,MacBookAirに新しい環境を構築して移動作業をしている。その結果,現在の自分の環境は,次のようになっている。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
※mbaの設定
(1) homebrewの導入
    xcode-select —install (コマンドライン開発ツールの導入)
    sudo xcodebuild -license
    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
(2) homebrewの練習と基本環境の設定
    brew update
    brew upgrade
    brew doctor
    brew install wget
    brew install nkf
    brew cask reinstall xquartz
    brew install lynx
    brew install w3m
    brew install xxxx (xxxxをインストール)以下適当に繰り返した。
(3) python3環境(jupyterを含む)の設定
    brew install python3
    python3 -V
     Python 3.7.2
    pip3 -V
     pip 19.0.2 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
    python -V
     Python 2.7.10
    ・これで,python3がインストールできた。
    which python
     /usr/bin/python
    which python3
     /usr/local/bin/python3
    ・pip3のアップデート方法
    pip3 install --upgrade setuptools
     Requirement already up-to-date:...
    pip3 install --upgrade pip
     Collecting pip
    ...
     Successfully installed pip-19.0.3
    ・環境設定してその中で作業
    python3 -m venv env
    . env/bin/activate
    (env) … python -V
     Python 3.7.2
    (env) … pip -V
     pip 18.1 from /Users/admin/env/lib/python3.7/site-packages/pip (python 3.7)
    (env) ... pip install --upgrade pip
    (env) ... pip install --upgrade setuptools
    (env) ... pip install numpy
    (env) ... pip install scipy
    (env) ... pip install scikit-learn
    (env) ... pip install matplotlib
    (env) ... pip install Pillow
    (env) ... pip install sympy
    (env) ... pip install jupyter
    (env) ... deactivate
(4) julia環境の設定
    https://julialang.org/downloads/
    からダウンロードすればコマンドラインで実行可能に
    echo 'export PATH=$PATH:/Applications/
Julia-1.1.app/Contents/Resources/julia/bin' >> ~/.bashrc
    source ~/.bashrc
    julia
    julia> using Pkg
    julia> Pkg.add(“IJulia”)
    export PATH=$PATH:/Users/admin/env/bin
    jupyter notebook
    これで,jupyter が起動して,julia 1.1 が使えるようになった。
    versioninfo()
    using Pkg
    Pkg.update()
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

(5) jupyterlabの導入と起動は簡単であった。
    pip3 install jupyterlab
    jupyter lab
(付)JupyterLab環境での設定
Settings -> Advanced Settings Editor -> Notebook
codeCellConfigのlineNumbersをTrueにする。
Settings -> Advanced Settings Editor -> Extension Manager -> "enabled": trueにする。

Mathematicaノートブックを長らく使ってきたので,Jupyter Notebook(この記事もWikipedia中文はあるが日本語はない・・・)はすんなりと馴染むことができた。JupyterLabはJupyter Notebookの後継で,今後はこれに移行するのだそうだ。まだ違いがよくわからないが,Jupyter Notebook のことだってそれほどわかっていたわけではない。ぼちぼちやっていくことにしよう。

2019年3月24日日曜日

金沢泉丘高等学校のプール

大乗寺丘陵公園から円光寺の方に下り,泉丘高校に向って歩いた。前身の一中創立70周年から80周年の間で,理数科ができて2年目の1969年に入学した。1984年には新校舎が落成しており,我々の時代の旧校舎はなくなっている。正門のあたりの古い木々や碑などはそのまま残っているが,校舎も制服も生徒も変わってしまった(昔よりみなさんよくできるのである)。グラウンド横の部室裏のプールは当時のままだと思ったが,沿革によると1992年にプールが完成とあるので同じ場所で新しくしたのだろう。校庭の周辺の桜の木とか,相撲場はどうだっただろうか。

写真 金沢泉丘高等学校のプール(2019.3.22)

小学校5年までは泳げなかったので,水泳の授業(小学校にはまだプールがなかった)では,金沢市営の25mプールに集められた数名の泳げない組で練習していた。というか,先生はあまり教えてくれないのである。同級生の畦地勉君に浮き方をおそわって,ようやく潜った状態でばた足で前進できるようになった。

中学校の体育では25mを泳ぐことが要求された。3年間でようやく25mをなんとか泳げたがほぼ息継ぎのないクロールだったかもしれない。背泳ぎも少しできるようになった。中学の体育の先生は親切だったので,泳ぎの苦手な子に飛び込みを教えてくださった。プールサイドに腰掛けた状態から始まって,徐々に慣らして行き,最後にはスタート台から飛び込むことができるようになった。

高校の体育では200mを泳ぐことが要求された。これはちょっと難しかったので,夏休み前に10名程度泳ぎの苦手な連中がプールで特別指導された。というかここでも指導された記憶はあまりないのだが,梅雨も明けきらないやや肌寒いプールでばしゃばしゃしていた。授業本番では背泳ぎで200mをなんとか泳ぐことができた。これ以降は夏休みに市営プールに一人で通って1000mを平泳ぎで泳ぐことができるようになった。

2019年3月23日土曜日

大乗寺丘陵公園

お彼岸に金沢に墓参に帰省したとき,大乗寺から岡部病院を抜けると,その横が大乗寺丘陵公園として整備されていた。泉野小学校や野田中学校のときに,毎年花見遠足やスキーに来たあたりである。丘陵公園の下あたりが,金沢泉丘高等学校時代の体育の時間のマラソンコースになっていた。ここからは,金沢平野が一望できる。まだ肌寒くて花見の季節ではなかった。

写真 大乗寺丘陵公園案内図(2019.3.22)

写真 大乗寺丘陵から金沢市街地の方向(2019.3.22)


2019年3月22日金曜日

MathJaxで数式表示(2)

MathJaxの数式表示で行番号がでないのがどうなのかを調べて試しているうちに,調子が悪くなってしまった。古い設定がどこかに残っているためなのか,Safariで数式が小さく表示される現象が生じている。再起動で回復しても,そのページを閲覧した後にはどこでも発症してしまう。どうしたものか。FirefoxやChromeでは問題ない。

今のヘッダーの設定では,標準で連番あり,"¥begin{equation*}"はだめ,"¥[ ¥]"で行番号なし,"¥tag{n}" で番号指定可になっている(¥はバックスラッシュを表す)。

\begin{equation}
\begin{aligned}
\sqrt{x}+\cos{y}\\
\dfrac{\log(x)}{e^x}
\end{aligned}
\end{equation}
\[
\sqrt{\dfrac{z^2+y^2}{x^2}}
\]
\begin{equation}
y= a x^2 + b x + c \tag{4}
\end{equation}
\begin{equation}
m \ddot{\bm{r}} = \bm{F}
\end{equation}

これで"¥bm{}"も使えるようになったのは次のヘッダーである。
参考にしたのは以下のサイトである。
Mathjaxを使ってBloggerで数式を書く
おもちゃ箱:Bloggerで数式を表示する
MathJaxの使い方(黒木玄)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
<script async='async' src='https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML' type='text/javascript'/>
<script type='text/x-mathjax-config'>
    MathJax.Hub.Config({
        HTML: [&quot;input/TeX&quot;,&quot;output/HTML-CSS&quot;],
        TeX: {
               Macros: {
                        bm: [&quot;\\boldsymbol{#1}&quot;, 1],
                        argmax: [&quot;\\mathop{\\rm arg\\,max}\\limits&quot;],
                        argmin: [&quot;\\mathop{\\rm arg\\,min}\\limits&quot;]},
               extensions: [&quot;AMSmath.js&quot;,&quot;AMSsymbols.js&quot;],
               equationNumbers: { autoNumber: &quot;AMS&quot; } },
        extensions: [&quot;tex2jax.js&quot;],
        jax: [&quot;input/TeX&quot;,&quot;output/HTML-CSS&quot;],
        tex2jax: { inlineMath: [ [&#39;$&#39;,&#39;$&#39;], [&quot;\\(&quot;,&quot;\\)&quot;] ],
                   displayMath: [ [&#39;$$&#39;,&#39;$$&#39;], [&quot;\\[&quot;,&quot;\\]&quot;] ],
                   processEscapes: true },
        &quot;HTML-CSS&quot;: { availableFonts: [&quot;TeX&quot;],
                      linebreaks: { automatic: true } }
    });
</script>
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -