2020년 8월 21일 금요일

Functions of Google Spreadsheet that I used for balancing game.

 


Function list is here. 


INDEX: show the content of indicated row & column in the selected range. 

example: 

=INDEX(AM12:AN19, 5 ,1)

=> INDEX(selected range, indicated row, indicated column)




Switch & IFS

1) I would like to something that return a value according to its range.
- Usually in C#, it is possible to use Switch operator and range.
- But I couldn't find the way to do in Google Spreadsheet function.

2) What I want is 'return out of chart' if the point is less than 800, and 'return 100 if point is between 800 and 1000. The solution is like this

- IFS(AJ12 < 'b1'!B14, "순위권 밖", AND( AJ12>='b1'!B14, AJ12 <'b1'!B13), RANDBETWEEN(91,100))

- IFS(first condition, value for return, second condition, value for return)
- It seems for me there is no syntax like 'AJ12> B14 && AJ< B13)
- Instead I use like this 'AND( AJ12> B14, AJ< B13), some value)
- it means if the value passes as true for both of condition in AND( ) then return some value.

To get the value from other sheet
= the name of other sheet '!' and cell number
like this = b1! B13

2020년 8월 16일 일요일

Balancing with Google Apps Script

I learned Google Apps Script for fun. My current task is balancing game. I use google spread sheet for balancing game. There are some calculation that can't be done only with functions in Google Spread Sheet. At that moment, Google Apps Script is very useful. 

1. Use function with button

 I wrote calculation that use random function. I wanted to refresh the result anytime I want to. But to click refresh button is not good. I found easy way. This way is using a Google Apps Script.  

 1) You put a button in spreadsheet. 




 2) Right click the button you made. Then choose 'allocate script'. 

3) Allocate the function you write at a script editor. When doing this, just write the name of function. No '()' allowed.  
4) You can write functions in Google Apps Script here. 
Upper menu bar> Tool> Script Editor



Ignore other code from 'act' function. All I wanted is 'flush' method. 'flush' method refresh every value that are linked to 'current time' or 'random' function. 

(It shows 'K16' over there.  When you write that in Spreadsheet, not in script editor, you must write "K16" not 'K16')


Yet I am learning Google Apps Script (painfully) slowly. 

There is no return type as 'cell' instead there is 'range' return type. When you need to return some value into cell, use 'range'. 

You can learn easily with this tutorial. 


2. Use customized function in the cell with writing the name of the function

Let's try with easy one. 
When you put a value from other cell. Your function will be like this. 

function getChart(x) {
  var sheet  = SpreadsheetApp.getActive().getRange(x).getValue();
  return sheet;
}

And you use that function in your Spreadsheet like this. 

            SpreadsheetApp.getActive()      :Select the spreadsheet that is open now. 
            getRange()                                  :Select the cells your want to use. You can input single cell or 
                                                                 some range.
            getValue()                                   :get value from the selected cells. 

When you write function in the Spreadsheet, don't ";"(semi colon).  










더블린 사람들 - 제임스 조이스

 매우 즐겁게 읽었다. 

스타일이 일반 단편 소설과 다르게 극 사실주의로 씌어져있다. 제목처럼 다양하고 우울한 더블린 사람들의 인생의 한 부분을 잘 잘라서 보여준다. 

기승전결로 스토리를 전개해나가지 않고 묘사 위주로 나가다가 결말에서 갑작스럽게 이야기를 마치는 단편이 많은데, 그럼에도 그 결말은 강한 이미지를 준다. 

그의 소설에 공통적으로 많이 등장하는 것들은 종교(카톨릭), 음악, 영국의 속국이었던 당시 상황 등이 나온다. 

테렌스 브라운이 쓴 해설에 의하면, 조이스가 이 소설을 쓸 때 유명한 아일랜드 작가는 예이츠였다고 한다. 예이츠의 문학 사조는 신비주의(켈트의 황혼파)에 기반을 두고 있었는데, 조이스는 이에 반하여 철저히 극사실주의로 더블린 사람들은 관찰했다. 심지어 그의 시선엔 권력을 쥔 악마같은 느낌도 있다. 

'진흙(Clay)'에 빨래 공장에서 일하는 중년의 마리아가 나온다. 그녀는 자식처럼 사랑하는 조를 만나러 갈 생각에 들떠있고 거울을 보며 아직 자신의 몸매는 매력적이라고 자족하는 장면이 나온다. 그러다 제과점에선  실수로 비싼 (2-3일 생활비) 케이크를 사게 되고 전차 안에서는 매력적인 중년 남성과 대화도 한다. 그러나 실수로 케이크를 전차에 두고 내렸게 되고 이에 자책을 한다. 조의 집에서 할로윈 놀이를 한다. 눈을 감고 테이블 위에 있는 물건을 잡는 놀이인데, 반지를 잡으면 곧 결혼을 하게 되고 진흙을 잡으면 곧 죽게 된다는 것이다. 마리아는 반지를 못잡고 진흙을 잡게 되고 파티 분위기를 가라 앉는다. 조가 분위기를 띄우려고 마리아에게 노래를 부르라고 하고 마리아는 "I dreamt that I dwelt in Marble halls." 를 부른다. 2절이 결혼에 대한 내용이라서 마리아는 민망한 마음에 2절을 부르지 못하고 1절을 한번 더 부른다. 

이게 단편 '진흙'의 짤막한 요약인데 조이스는 결혼하지 못하고 중년이 된 하류층 여성의 삶을 사실적으로 묘사하고 그의 마음 들뜬 하루를 엉망으로 만들고 그 불길하고 민망한 인물의 반응까지 사실적으로 묘사했다. 이건 이 소설집의 놀라운 매력이자 독자를 불안하게 만드는 작가의 권능이다. 

당시 아일랜드의 종교는 카톨릭이다. 카톨릭이 80%이고 신교(개신교)는 20%인데 친영파인 이 20%가 더블린의 권력층이라고 한다. 조이스는 아일랜드 가난의 주범인 영국에 대해 적대시 하면서도 카톨릭과 아일랜드 민족주의자 정치인들에 대해서도 거리를 둔다.  

제일 좋아한 단편들은 '가슴 아픈 사건', '죽은 사람들' (둘 다 사랑이야기) 이고 나머지 '우연한 만남' , '분풀이', 진흙' '이블린', '애러비'도 좋았다. 

단편집에 수록된 단편들이 인간의 연대기 순으로 진행된다. 어린 소년의 이야기부터 죽은 사람까지. 더블린의 한 성직자의 죽음으로 시작한 소설집은 단편집의 끝에선 조이스의 부인의 고향인 갤웨이에서 끝이 난다. 

조이스의 아버지가 가수였고, 본인도 노래를 부르기 좋아해서 노래 경연 대회에도 나갔다고 한다. 그리고 그가 작곡한 곡도 있다.  더블린 사람들 기질인지, 조이스의 취향이 가미되었는지 이 소설에 노래도 많이 나온다. 

'진흙'에서 마리아가 민망함을 감추기 위해 부른 노래. 'I dreamt that I dwelt in Marble halls.'



'죽은 자들' 에서 가브리엘의 부인에게 듣고 울었던 노래. 


소설과는 관계 없지만 조이스가 작곡한 가곡. Dido의 장송곡과 코드 진행이 비슷하다. 

이것도 소설과 관련 없지만 BBC 라디오 4에서 블룸스 데이 (6월 16일)를 기념하면서 제임스 조이스 애청곡을 플레이 리스트로 만들었다. 

더블린과 제임스 조이스의 가장 유명한 성지인 마텔로 타워, 조이스의 부인의 고향이자 '죽은 사람들' 단편에도 나오는 갤웨이, 조이스가 영어를 가르치며 10년 동안 살았던 트리에스테(이탈리아)에 공교롭게 다 방문해보았다. 2015년에 '죽은 사람들'에 나오는 노래 '오그리마의 처녀'가 조이스 부인의 고향인 갤웨이의 민요래. 이러면서 노래를 들었는데 그 다음해에 갤웨이에 방문하게 될 지는 꿈에도 몰랐지. 

킨들로 읽다가 영어가 너무 어려워서 '은총', '위원실의 담쟁이 날'은 도서관에서 펭귄문고 판을 빌려서 읽었다. 

잘 모르는 부분은 https://crossref-it.info/textguide/dubliners/38/2797 요 사이트 주석을 보고 도움 많이 받음.