Jekyll2021-06-03T01:01:27+00:00http://sookiwi.com/feed.xmlsookiwiComputer Science and Engineering & Cognitive Studies of Religion한자와 나오키를 보고2021-06-03T00:00:00+00:002021-06-03T00:00:00+00:00http://sookiwi.com/posts/diary/2021/06/03/%ED%95%9C%EC%9E%90%EC%99%80%20%EB%82%98%EC%98%A4%ED%82%A4%EB%A5%BC%20%EB%B3%B4%EA%B3%A0<p>배우들의 감정선이나 연기가 과한 것을 제외하면 잘만든 드라마라고 생각한다.<br />
배경이 미쓰비시UFJ라는 이야기가 있다.</p>
<p>다만 생각컨데, 드라마가 현실을 일부분이라도 반영한다면, 은행이라는 곳은 쓸데없는 의전과 권위, 공직자에 대한 맞춰주기에 과도하게 집착하는 것으로 보였다.<br />
이러한 회사 혹은 조직은, 보통 회사 자체가 어떤 가치를 충분히 창출하지 못하거나, 회사가 창출하는 가치가 외부의 권위에 의존하는 곳에서 벌어진다고 생각한다.<br />
국가의 비호를 받는 메가뱅크가 그렇겠지. 은행원을 다른 회사에 꽂고 마음대로 회사를 옮기고… 가관이다. 자기들이 무슨 일반 회사의 상사인줄 안다.<br />
내가 일본에서 체감한 법인들의 부풀려진 부, 국가가 선도하여 이루어지는 법인과 개인의 과도한 재무 격차가 수면 밑에서 보인다.</p>
<p>그리고 메가뱅크라는 곳들은 투자은행도 아니면서 채권자가 무슨 주주마냥 행동하고, 동시에 경영에 간섭하여 컨설팅처럼 활동하기도 한다.<br />
일본의 메가뱅크라는게 원래 은행 + 투자은행 + 컨설팅 같은 형태인가?<br />
아니면 그냥 드라마적 과장인가.</p>
<p>메가뱅크에서는 회사에 소속된 사람들이 생산하는 것이 중요한 것이 아니라, 돈은 어떻게든 외부의 비호하에 자동적으로 벌어진다. 따라서 은행원에게 중요한 것은 가치 생산이 아니라 정치가 된다.<br />
국가에 의한 인위적 자본 제한은 이런 유한계급, 아니 유한 직장인들을 만든다. 그리고 그들은 자기만의 성 안에서 자리차지하기 게임을 한다.<br />
이 난리 피우느니 그냥 쿨한 평범한 회사 다니는게 낫지 않나.<br />
한자와의 어떤 꿈과 사명의식은 알겠는데, 다른 사람들은 무엇을 위해서 서로 밀어내고 댜투고 하는 걸까. 왜 그렇게까지 하는지 잘 모르겠다.</p>
<p>일본 윗세대의 직장 포르노인것 같다.</p>Soo배우들의 감정선이나 연기가 과한 것을 제외하면 잘만든 드라마라고 생각한다. 배경이 미쓰비시UFJ라는 이야기가 있다.방학의 끝2020-08-29T00:00:00+00:002020-08-29T00:00:00+00:00http://sookiwi.com/posts/diary/2020/08/29/%EB%B0%A9%ED%95%99%EC%9D%98%20%EB%81%9D<p>지난 회사에서 1년 10개월 간 내 노동과 금전을 맞바꾸어 왔다. 그 전까지는 나 자신만을 위해서 읽고 쓰고 말하던 삶이었는데, 본격적으로 내가 아닌 것을 위해 내 노력을 제공해 보았다. 금전적 보상은 차치하고, 타인의 의지에 따라 내 노력을 안배하는 것은 지루하면서도 때론 중독적이었다. 시키는 대로 하는 것은 얼마나 편안한일인가, 라고. 내가 스스로 움직이지 않아도 그저 흘러가는 생활은 치명적으로 안락했다, 고. 회사를 나오고 한달간 한시적 백수생활을 하며 생각했다.<br />
잠깐의 자율적 삶은 끝이나고 이제 다시 타율의 세계로 돌아간다. 아니 사실은 지난 한 달 간의 휴식도 새로운 고용-피고용의 관계가 전제되었기에 가능했으므로, 실은 완전히 자율적이지 않았다. 휴가는 끝이났고, 다시 노동의 시간이 온다.</p>Soo지난 회사에서 1년 10개월 간 내 노동과 금전을 맞바꾸어 왔다. 그 전까지는 나 자신만을 위해서 읽고 쓰고 말하던 삶이었는데, 본격적으로 내가 아닌 것을 위해 내 노력을 제공해 보았다. 금전적 보상은 차치하고, 타인의 의지에 따라 내 노력을 안배하는 것은 지루하면서도 때론 중독적이었다. 시키는 대로 하는 것은 얼마나 편안한일인가, 라고. 내가 스스로 움직이지 않아도 그저 흘러가는 생활은 치명적으로 안락했다, 고. 회사를 나오고 한달간 한시적 백수생활을 하며 생각했다. 잠깐의 자율적 삶은 끝이나고 이제 다시 타율의 세계로 돌아간다. 아니 사실은 지난 한 달 간의 휴식도 새로운 고용-피고용의 관계가 전제되었기에 가능했으므로, 실은 완전히 자율적이지 않았다. 휴가는 끝이났고, 다시 노동의 시간이 온다.키보드2020-07-18T00:00:00+00:002020-07-18T00:00:00+00:00http://sookiwi.com/posts/diary/2020/07/18/%ED%82%A4%EB%B3%B4%EB%93%9C<p>R2TLSA-US4M-WH가 갖고 싶었는데 못사고 대신에 R2TLSA-US3M-BK 구입.<br />
빨리 새 물량이 풀렸음 좋겠다</p>
<p>https://www.realforce.co.jp/products/R2TLSA-US4M-WH/index.html<br />
https://www.realforce.co.jp/products/R2TLSA-US3M-BK/index.html</p>
<p>fc660c랑 이제 투톱 체제로 간다!</p>SooR2TLSA-US4M-WH가 갖고 싶었는데 못사고 대신에 R2TLSA-US3M-BK 구입. 빨리 새 물량이 풀렸음 좋겠다기다림2020-02-11T00:00:00+00:002020-02-11T00:00:00+00:00http://sookiwi.com/posts/diary/2020/02/11/%EA%B8%B0%EB%8B%A4%EB%A6%BC<p>끝나지 않을 것 같은 기다림</p>
<p>한달쯤 더 걸릴까?<br />
결국에는 잘 되기를.</p>Soo끝나지 않을 것 같은 기다림혐오에 대한 걱정2020-01-31T00:00:00+00:002020-01-31T00:00:00+00:00http://sookiwi.com/posts/diary/2020/01/31/%ED%98%90%EC%98%A4%EC%97%90%20%EB%8C%80%ED%95%9C%20%EA%B1%B1%EC%A0%95<p>한국 인터넷 커뮤니티상(네이버 댓글 등)에서 질병 명칭을 무엇으로 할 것인가에 대한 고지전이 벌어지고 있는 것을 보며<br />
이러한 논란은 사실 실질적 병원균과 질병과는 하등 관계없다. 이건 현상을 어떻게 해석할지에 대한 갑론을박이다. 갑작스런 공포를 어떻게 부를 것이냐. 현상을 어떻게 해석할지에 대한 상징 투쟁이다. 질병이라는 공포상황이 기존의 인식과 결합하여 새로운 메타적 담론을 이끌어낸다.<br />
공포가 현 정권의 외교적 스텐스에 대한 각 사람들의 인식과 결합하여 정부 비판의 재료로 쓰인다. 그것이 참인지 거짓인지를 떠나, 그 결과 이러한 논란은 사실 기술이 아닌 정치적 언어가 된다.<br />
공포가 중국인에 대한 일부 한국인의 부정적 인식과 결합한다. 그 결과 질병에 대한 상징부여를 통해 일종의 혐오가 그들의 내적 논리 안에서 정당성을 입는다. 내 기준에 따르면 이것은 일종의 엇나간 혐오다.</p>
<p>한국의 인터넷 커뮤니티에서의 신종 코로나 논란은 질병 자체에 대한 정보와 공포가 절반 정도, 정치적/혐오적 발언이 나머지 정도 되는 것 같다고 생각한다. 다행이 내가 보는 한에는 황색지도 아직 이런 정치적/혐오적 담론에 적극 가담하지는 않고 있다. (시간 문제일지는 모르지만)</p>
<p>반면 내가 현재 생활하는 이시국에서의 신종 코로나 논란은 어떨까? 내가 여기에서 접하는 인터넷 커뮤니티가 한국보다 ‘깊지’ 않으니 잘 알기는 어렵지만, 적어도 야후, 즉 한국으로치면 네이버, 평소에는 상당히 우익이라는 인식이 지배적인 공간으로 인식되는 곳의 덧글을 보면, 한국보다는 정치/혐오의 담론의 수위가 낮다.<br />
일본 사람들이 상대적으로 탈정치화되었기 때문일수도 있지다. 하지만 몇몇 보이는 그나마 정치적 이야기는 주로 현정부 비판에 치중되어 있다. 대응이 미흡하다는 이야기가 메인이다. 그렇지만 방역 대책 미흡에 대한 비판은 현 정부의 외교적 스텐스에 대한 비판과는 다른 수준의 이야기이다. 좀더 이 질병에 포커스를 맞춘 이야기이다.<br />
또 다른 주요한 토픽은 올림픽을 제대로 치를 수 있을지에 대한 걱정이다. 중국 국적을 가진 사람에 대한 혐오는 내가 본 샘플이 작아서이기도 하겠지만, 솔직히 거의 보지 못했다.</p>
<p>무언가 다르다. 그리고 나는 한국 인터넷 일부 커뮤니티의 혐오적 발언들이 위험하게 느껴진다. 폭발 직전의 긴장감을 느낀다.<br />
이번 주말에 한국에 가려 했지만 전염이 확산되는 것 같아 공항에 가는게 부담스러워 취소했다. 빨리 이 상황이 끝이났으면.</p>Soo한국 인터넷 커뮤니티상(네이버 댓글 등)에서 질병 명칭을 무엇으로 할 것인가에 대한 고지전이 벌어지고 있는 것을 보며 이러한 논란은 사실 실질적 병원균과 질병과는 하등 관계없다. 이건 현상을 어떻게 해석할지에 대한 갑론을박이다. 갑작스런 공포를 어떻게 부를 것이냐. 현상을 어떻게 해석할지에 대한 상징 투쟁이다. 질병이라는 공포상황이 기존의 인식과 결합하여 새로운 메타적 담론을 이끌어낸다. 공포가 현 정권의 외교적 스텐스에 대한 각 사람들의 인식과 결합하여 정부 비판의 재료로 쓰인다. 그것이 참인지 거짓인지를 떠나, 그 결과 이러한 논란은 사실 기술이 아닌 정치적 언어가 된다. 공포가 중국인에 대한 일부 한국인의 부정적 인식과 결합한다. 그 결과 질병에 대한 상징부여를 통해 일종의 혐오가 그들의 내적 논리 안에서 정당성을 입는다. 내 기준에 따르면 이것은 일종의 엇나간 혐오다.Unhcr2020-01-29T00:00:00+00:002020-01-29T00:00:00+00:00http://sookiwi.com/posts/diary/2020/01/29/UNHCR<p>오늘 확인해보니 UNHCR에 기부한 금액이 270만원이 되었다<br />
월에 5만원이었으니 54회 기부한 셈이다.</p>
<p>대학교 3학년? 2학년?때 연구실 인턴을 시작하며 처음으로 어떤 노동의 대가스러운 돈을 받았다.<br />
40만원 남짓이었을 것이다. 지금와서야 아무것도 아닐지 몰라도, 학생이던 당시는 굉장히 큰 돈으로 느껴졌다.<br />
이 큰 돈을 어떻게 할지 고민하다, 월 5만원을 UNHCR에 기부하기로 마음먹었던 것이다. 당시 시리아 난민문제가 핫했었고 나도 중동학회를 할때라 관심이 많았다.<br />
나의 정신적 사치를 위해 기꺼이 투자한 셈이다.</p>
<p>그 후 나는 몇번의 연구실과 사회 인턴을 반복하고, 때론 아무런 수입이 없을때도 있었지만, 후원을 끊지는 않았었다. 월 5만원은 학생에게 작다면 작고 크다면 큰 돈이었지만 어쩐지 그만둘 수 없었다.</p>
<p>이제 나는 원화로 돈을 벌지 않은지 좀 되어, 원화 후원을 끊고 지금 내가 버는 화폐로 이어가고자 한다. 한번의 매듭을 지을 때가 왔다.</p>
<p>버는 것은 내 한몸 건사할 만큼 어떻게 벌 수 있을 것 같다. 어떻게 사치스럽게 쓸 것인지가 중요하다.</p>Soo오늘 확인해보니 UNHCR에 기부한 금액이 270만원이 되었다 월에 5만원이었으니 54회 기부한 셈이다.야간비행2020-01-14T00:00:00+00:002020-01-14T00:00:00+00:00http://sookiwi.com/posts/diary/2020/01/14/%EC%95%BC%EA%B0%84%EB%B9%84%ED%96%89<blockquote>
<p>구름 사이로 떠오르던 바로 그 순간에 비행기는 단번에 믿을 수 없는 평온을 되찾고 있었다. 비행기를 기울게 하는 파도 하나 없었다. 방파제를 뛰어넘는 배처럼 그는 예정되어 있던 물 속으로 들어가고 있었다. 만의 행복한 섬들처럼 숨어있는 하늘의 한 부분, 미지의 하늘에 들어서 있는 것이었다. 배힝기 아래에서는 돌풍과 폭우의 번개를 동반한 폭풍이 3천 미터의 두께의 딴 세상을 형성하고 있지만, 수정과 눈으로 만들어진 것 같은 폭풍의 얼굴은 천체를 향하고 있었다.<br />
…<br />
이제까지 붙잡아주고 있던 수천 개의 암흑의 팔이 그를 놓아버린 것이었따. 한동안 꽃밭을 자유롭게 걸을 수 있는 죄수처럼 그를 결박했던 줄이 풀려져 있었다.<br />
‘정말 아름답군’ 하고 파비앵은 생각했다. 그는 그 자신과 무선기사 외에 살아있는 것이라곤 아무것도 없는, 그 외의 다른 것이라곤 아무것도 없는 세계에서 보물처럼 밀집되어 있는 별들 사이를 떠돌고 있엇다. 그들은 다시는 나올 수 없는 보물의 방에 갇혀버린 전설속의 도둑과 같은 신세였다. 그들은 차디찬 보석들 속에서 엄청난 부자가 되었지만, 사형 선고를 받은 몸으로 떠돌고 있는 것이었다.</p>
</blockquote>
<blockquote>
<p>피비앵의 죽음으로 인해 내일부터는 이 부인에게도 모든 행위와 모든 물건이 의미를 잃기 시작할 것이다. 파비앵이라는 존재는 그 집에서 서서히 사라질 것이다.</p>
</blockquote>
<blockquote>
<p>“영원히 살기를 바라는 것이 아니라고해서 우리가 하는 행동이나 사물마저 갑자기 그 의미를 상실했다고 생각할 필요는 없다. 그렇게 생각하면 우리를 둘러싸고 있는 것들이 그저 허망하게만 보일 테니까…”<br />
그의 눈길이 전신들에 머물렀다<br />
‘이제는 의미를 상실해버린 이 보고들… 이런 것들을 거쳐서 우리에게 죽음이 스며드는 것이다.’</p>
</blockquote>
<blockquote>
<p>시간이 피처럼 흘러가고 있었다.</p>
</blockquote>Soo구름 사이로 떠오르던 바로 그 순간에 비행기는 단번에 믿을 수 없는 평온을 되찾고 있었다. 비행기를 기울게 하는 파도 하나 없었다. 방파제를 뛰어넘는 배처럼 그는 예정되어 있던 물 속으로 들어가고 있었다. 만의 행복한 섬들처럼 숨어있는 하늘의 한 부분, 미지의 하늘에 들어서 있는 것이었다. 배힝기 아래에서는 돌풍과 폭우의 번개를 동반한 폭풍이 3천 미터의 두께의 딴 세상을 형성하고 있지만, 수정과 눈으로 만들어진 것 같은 폭풍의 얼굴은 천체를 향하고 있었다. … 이제까지 붙잡아주고 있던 수천 개의 암흑의 팔이 그를 놓아버린 것이었따. 한동안 꽃밭을 자유롭게 걸을 수 있는 죄수처럼 그를 결박했던 줄이 풀려져 있었다. ‘정말 아름답군’ 하고 파비앵은 생각했다. 그는 그 자신과 무선기사 외에 살아있는 것이라곤 아무것도 없는, 그 외의 다른 것이라곤 아무것도 없는 세계에서 보물처럼 밀집되어 있는 별들 사이를 떠돌고 있엇다. 그들은 다시는 나올 수 없는 보물의 방에 갇혀버린 전설속의 도둑과 같은 신세였다. 그들은 차디찬 보석들 속에서 엄청난 부자가 되었지만, 사형 선고를 받은 몸으로 떠돌고 있는 것이었다.쉼없이 성장하자2019-12-31T00:00:00+00:002019-12-31T00:00:00+00:00http://sookiwi.com/posts/diary/2019/12/31/%EC%89%BC%EC%97%86%EC%9D%B4%20%EC%84%B1%EC%9E%A5%ED%95%98%EC%9E%90<p>Push myself out of my comfort zone</p>
<ul>
<li>Keep look for other oppertunities
<ul>
<li>Evaluate my market value continuesly</li>
<li>Ask myself whether current place is close to the best to enhance my skills</li>
</ul>
</li>
<li>Other locations(conturies)</li>
<li>Try my own services (app, web…)</li>
<li>Keep study alogrithm</li>
<li>Keep study functional programming ideas and stream processing</li>
<li>Study fundamentals of CS
<ul>
<li>Network</li>
<li>System (Kernal)</li>
<li>DB (focused on scalability, availability)</li>
</ul>
</li>
</ul>SooPush myself out of my comfort zone Keep look for other oppertunities Evaluate my market value continuesly Ask myself whether current place is close to the best to enhance my skills Other locations(conturies) Try my own services (app, web…) Keep study alogrithm Keep study functional programming ideas and stream processing Study fundamentals of CS Network System (Kernal) DB (focused on scalability, availability)Scala call By Name vs 0 Arity function2019-12-20T00:00:00+00:002019-12-20T00:00:00+00:00http://sookiwi.com/posts/tech/2019/12/20/Scala%20call-by-name%20vs%200-arity%20function<p>Call by name and 0 arity functions are interchangable. i.e.</p>
<div class="language-scala highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">object</span> <span class="nc">CallByNameVsFunction0</span> <span class="o">{</span>
<span class="k">def</span> <span class="nf">f0Arity</span><span class="o">(</span><span class="n">f</span><span class="k">:</span> <span class="o">()</span> <span class="o">=></span> <span class="nc">Int</span><span class="o">)</span><span class="k">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="nf">f</span><span class="o">()</span>
<span class="k">def</span> <span class="nf">fCallByName</span><span class="o">(</span><span class="n">f</span><span class="k">:</span> <span class="o">=></span> <span class="nc">Int</span><span class="o">)</span><span class="k">:</span> <span class="kt">Int</span> <span class="o">=</span> <span class="n">f</span>
<span class="nf">f0Arity</span><span class="o">(()</span> <span class="k">=></span> <span class="mi">1</span><span class="o">)</span>
<span class="nf">fCallByName</span><span class="o">(</span><span class="mi">1</span><span class="o">)</span>
<span class="o">}</span>
</code></pre></div></div>
<p>Behaves same.</p>
<p>But is there performance difference or bytecode diff?</p>
<p>I decompiled compiled bytecode in Java to make things clear.</p>
<div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="nc">CallByNameVsFunction0</span><span class="err">$</span> <span class="o">{</span>
<span class="kd">public</span> <span class="kd">static</span> <span class="kd">final</span> <span class="nc">CallByNameVsFunction0</span><span class="err">$</span> <span class="no">MODULE</span><span class="err">$</span> <span class="o">=</span> <span class="k">new</span> <span class="nc">CallByNameVsFunction0</span><span class="err">$</span><span class="o">();</span>
<span class="kd">static</span> <span class="o">{</span>
<span class="no">MODULE</span><span class="err">$</span><span class="o">.</span><span class="na">f0Arity</span><span class="o">(()</span> <span class="o">-></span> <span class="o">{</span>
<span class="k">return</span> <span class="mi">1</span><span class="o">;</span>
<span class="o">});</span>
<span class="no">MODULE</span><span class="err">$</span><span class="o">.</span><span class="na">fCallByName</span><span class="o">(()</span> <span class="o">-></span> <span class="o">{</span>
<span class="k">return</span> <span class="mi">1</span><span class="o">;</span>
<span class="o">});</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">int</span> <span class="nf">f0Arity</span><span class="o">(</span><span class="kd">final</span> <span class="nc">Function0</span> <span class="n">f</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="n">f</span><span class="o">.</span><span class="na">apply</span><span class="n">$mcI$sp</span><span class="o">();</span>
<span class="o">}</span>
<span class="kd">public</span> <span class="kt">int</span> <span class="nf">fCallByName</span><span class="o">(</span><span class="kd">final</span> <span class="nc">Function0</span> <span class="n">f</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="n">f</span><span class="o">.</span><span class="na">apply</span><span class="n">$mcI$sp</span><span class="o">();</span>
<span class="o">}</span>
<span class="kd">private</span> <span class="nc">CallByNameVsFunction0</span><span class="err">$</span><span class="o">()</span> <span class="o">{</span>
<span class="o">}</span>
<span class="c1">// $FF: synthetic method</span>
<span class="kd">private</span> <span class="kd">static</span> <span class="nc">Object</span> <span class="n">$deserializeLambda</span><span class="err">$</span><span class="o">(</span><span class="nc">SerializedLambda</span> <span class="n">var0</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="nc">Class</span><span class="o">.</span><span class="na">lambdaDeserialize</span><span class="o"><</span><span class="n">invokedynamic</span><span class="o">>(</span><span class="n">var0</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
</code></pre></div></div>
<p>So, they are identical for this case.<br />
But it is a super simple case, so it is possible that compiler do some more magics with complicated cases. But the case shows it can be compiled to identical bytecode.<br />
This make me understand how call-by-name actually works.</p>
<hr />
<p>제가 원래 Call-by-name이라는 개념에 익숙지 않아서 그런 것도 있겠습니다만, 코드를 읽다가 다음과 같은 코드를 만났다고 가정해보면</p>
<p>def naiveFunction(futureVal : Future[T]): IO[T]<br />
def cbnFunction(futureExp : => Future[T]): IO[T]<br />
def arity0Function(futureThunk : () => Future[T]): IO[T]</p>
<p>// lets assume onErrorRetry is defined. retry when exception happens. And lets assume given future(or whatever exp with side effect) can throw error</p>
<p>val a = naiveFunction(future).onErrorRetry() // future explicitly excuted only once</p>
<p>val b = cbnFunction(future).onErrorRetry() // if the function parameter is call-by-name, can be evaluated multiple times. but if is not(like naiveFunction), only once it will be evaluated.</p>
<p>val c = arity0Function(() => future).onErrorRetry() // explicitly can be excuted multiple times</p>
<p>A와 B가 함수를 부르는 입장에서 형태가 동일하지만, 실제 동작은 다릅니다. 즉 호출하는 함수가 Call-by-name인지 아닌지에 따라서 Retry 동작이 달라지게 된다고 생각합니다. 따라서 함수 호출시 이런 문제를 피하기위해 side-effect가 있는 파라미터를 넘길때에는 불리는 함수의 타입을 매번 확인해야 한다고 생각하고 있었습니다.</p>SooCall by name and 0 arity functions are interchangable. i.e.LINE Bot API with Armeria2019-11-17T00:00:00+00:002019-11-17T00:00:00+00:00http://sookiwi.com/posts/tech/2019/11/17/LINE%20Bot%20API%20with%20Armeria<p>Presented at 2019 Armeria workshop</p>
<iframe src="/resources/LINE-Bot-API-with-Armeria.pdf" width="100%" height="500px" />SooPresented at 2019 Armeria workshop