Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

20210521

関東はまだ梅雨入りしていないのだが、実際にはとっくに梅雨入りしているのではないか、というくらいの雨天、曇天続き。ゴールデン・ウィーク空け頃から天候が怪しくなる、とは言われていたので、5月6日の外出日程を後にずらすことを考えていたが、予定通りに出かけておいて正解だった。
気象庁|令和3年の梅雨入りと梅雨明け(速報値)

天候による心理的影響、首から肩の痛みによる肉体的影響など、何かと前向きになることを妨害し、集中削ぐ要因が多いのが鬱陶しい。


日経平均TOPIXともに上昇した。日経平均の上昇幅が大きいものの、上ひげ、下ひげ付の小休止、転換サインのローソク足なのが怪しい。
f:id:espio999:20210521230202p:plain

一方、TOPIXの上昇幅は小さいながらも、赤三兵からの上昇に加えて、100日移動平均を超えたことから、少し底堅さを感じる。
f:id:espio999:20210521230218p:plain

この勢いを捉えたのか、今日は”ひふみ”の上昇が大きかった。

日経平均 0.78%
ひふみ 0.77%
ひふみワールド 0.76%
TOPIX 0.46%
さわかみ 0.24%
ひふみらいと 0.23%
ポートフォリオ 0.11%

ポートフォリオの動きが相対的に弱いのは、総じて構成銘柄の上昇が全体的に弱かったことを反映している。変動を抑えるために、変動の少ない銘柄の比率を増やした構成が、このような場面で仇になる。

第63回ISSスクエア水平ワークショップ

iss.iisec.ac.jp
今回のテーマは大変興味深いものだった。資料が配布されていれば、後からじっくりと読み直したい話題なのだが。資料が配布されないのが残念だった。
講座の録画、スクリーン・キャプチャは禁止されているのだが、後から読み返すことを前提に、スライドのスクリーン・キャプチャを取りながら臨むべきだと、認識を改めた。

Kotlin-インタフェイス、抽象クラス

Kotlinを通じて、オブジェクト指向の勘が戻ってきているのを感じる。インタフェイス、抽象クラスなど、説明を読みながらサンプル・コードを考えていると、軽い抵抗を感じながら前進している感じの手ごたえがあって、心地が良い。

ロトの子孫-インタフェイス版

interface BasicSkill{
    fun attack(){}
    fun guard(){}
    fun run(){}
}

open class BasicJob():BasicSkill{
    override fun attack(){
        println("攻撃した")
    }
    
    override fun guard(){
        println("身を守っている")
    }
    
    override fun run(){
        println("逃げ出した")
    }
}

class Fighter():BasicJob(){
    fun doubleAttack(){
        println("2回攻撃!")
        this.attack()
        this.attack()
    }
}

class Magician():BasicJob(){
    fun magic(){
        println("呪文を唱えた!")
    }
}

class Priest():BasicJob(){
    fun pray(){
        println("祈りをささげた!")
    }
}

fun main(){
    val rhodesia = Fighter()
    val sumaltria = Magician()
    val moonburg = Priest()
    
    rhodesia.attack()
    rhodesia.doubleAttack()
    sumaltria.attack()
    sumaltria.magic()
    moonburg.attack()
    moonburg.pray()
}


ロトの子孫-抽象クラス版

abstract class BasicRole(name:String){
    var name = name
    
    abstract fun attack()
    abstract fun guard()
    abstract fun run()
}

interface FighterSkill{
    fun doubleAttack(){}
}

interface MagicianSkill{
    fun magic(){}
}

interface PriestSkill{
    fun pray(){}
}

class Fighter(name:String):BasicRole(name), FighterSkill{
    override fun attack(){
        println("${name}は攻撃した")
    }
    
    override fun guard(){
        println("${name}は身を守っている")
    }
    
    override fun run(){
        println("${name}は逃げ出した")
    }
    
    override fun doubleAttack(){
        println("${name}の2回攻撃!")
        this.attack()
        this.attack()
    }
}

class Magician(name:String):BasicRole(name), MagicianSkill{
    override fun attack(){
        println("${name}は攻撃した")
    }
    
    override fun guard(){
        println("${name}は身を守っている")
    }
    
    override fun run(){
        println("${name}は逃げ出した")
    }
    
    override fun magic(){
        println("${name}は呪文を唱えた!")
    }
}

class Priest(name:String):BasicRole(name), PriestSkill{
    override fun attack(){
        println("${name}は攻撃した")
    }
    
    override fun guard(){
        println("${name}は身を守っている")
    }
    
    override fun run(){
        println("${name}は逃げ出した")
    }
    
    override fun pray(){
        println("${name}は祈りをささげた!")
    }
}

fun main(){
    val rhodesia = Fighter("Rhodesia")
    val sumaltria = Magician("Sumaltria")
    val moonburg = Priest("Moonburg")
    
    rhodesia.doubleAttack()
    sumaltria.magic()
    moonburg.pray()
}