[SES 프로젝트] 베타 버전 완성~~!!

아… 이런 감격적인 순간에는 스크린캐스팅을 찍어야 하는데… 스크린캐스팅은 나중에 집에가서 찍기로 하죠.

이번에는 사용법만 간략히 설명드리죠.

1. SES 베타 버전 친구 추가하기.

구글토크에 SES(s2cmailer@gmail.com)를 추가해 줍니다.

2. 말을 걸어 봅니다. 채팅창에 보이지 않는다면, 검색해서 찾아줍니다.


3. 이제 이걸 가지고 즐겁게 영어 공부를 합니다.

3-1. 일단은 문제를 몇 개 넣어보세요.

q:질문 a:답변

또는

q:질문 a:답변 r:o

형태로 넣어주세요. 이때 주의할 것이 있는데
– q: 왼쪽으로 빈공간이 있으면 안 됩니다.
– q: 와 질문 사이에 빈 공간이 생기면 안 됩니다
– 질문과 a: 사이의 공간은 딱.. 스페이스 하나 입니다. 더도 덜도 안 됩니다.
– a:와 답변 사이에도 빈공간이 들어가지 않습니다.
– r:o를 입력하지 않을 때는 답변 맨 뒤에 빈공간이 오면 안 됩니다.
– 답변과 r:o 사이의 공간도 딱… 스페이스 하나 입니다. 더도 덜도 안 됩니다.
– r:o 뒤에 빈공간이 있으면 안 됩니다.
– r:o에서 o는 영어 소문자 입니다.
– r:o를 입력하면, 질문과 답변을 맞 바꾼 문제도 추가됩니다.
(q:apple a:사과 입력시 q:사과 a:apple 문제도 추가됩니다.)

3-2. 입력한 문제들을 확인해 보세요.

list

간단하죠. 그러면 문제 목록이 쫙.. 나올껍니다.

3-3. 질문을 받으세요.

q

그럼 SES가 질문을 던집니다.

3-4. 답변하세요.

질문에 대한 답을 입력하세요.

끝입니다!. 참~ 쉽죠~잉


꺄오~~~ 만들었어 만들어~~~ 예에~~

ps: TDD로 만들었어요~(러너 뺴고)

[SES 프로젝트] Self English Study 프로젝트를 시작합니다.

영어 공부도 스스로 하는거죠. 스스로 할 때 도움이 되는 프로그램을 만들까 합니다. 제가 주로 사용하고 있는 구글토크에 SES를 친구로 등록해주시면 다음과 같은 일을 할 수 있습니다.

1. 문제 추가하기

예제 1)
q:apple a:사과 r:o
=> OK q:apple a:사과 r:o

예제 2)

q:I ____(cycle) home yearterday when a man ____ (step) out into the road in front of me. a:was cycling, stepped
=> OK q:I ____(cycle) home yearterday when a man ____ (step) out into the road in front of me. a:was cycling, stepped

예제 1은 질문과 답변이 바껴도 상관없는 문제를 추가한 것이고, 예제 2는 질문 답변이 바뀌면 안 되는 문제를 추가한 것입니다. r:o로 질문과 답변이 바껴도 되는지 결정하는데, 기본값이 r:x 인거죠.

2. 문제 요청하기

q
=>q:apple

대화창에 q를 입력하면 입력한 문제 중에 랜덤으로 선택해서 질문을 합니다.

3. 답변하기

예제 1)
=>q:apple
사과
=> OK

예제 2)
=>q:apple
몰라…
=> (바보 멍청이 똥개 멍게 말미잘 해삼) a:사과

그냥 답을 입력하면 되며, 맞으면 OK, 틀리면 정답을 알려줍니다.

4. 문제 목록 보기

list
=>
q:apple a:사과 r:o
q:I ____(cycle) home yearterday when a man ____ (step) out into the road in front of me. a:was cycling, stepped

채팅창에 list를 입력하면 화면에 위와 같이 질문/답변 목록을 뿌려줍니다.

5. 초기화하기

clear
=> clear!

clear를 입력하면 저장해두었던, 문제들이 모두 날아가고, 응답으로 clear!를 출력합니다.

————————–
오늘은 일단 여기까지 만들어서 구글토크에 올려두는 것이 목표고 현재까지 생각난 추가로 할 일들은 다음과 같습니다.

1. 메시지 바인더를 추가할 것.
2. 특정 문제 수정.
3. 특정 문제 삭제

090731 Unit 5, 6 정리

Unit 5. Past simple(I did)

과거형은 보통 -ed가 붙는다.
불규칙하게 변하는 동사들도 많다.
의문문 또는 부정문을 만들 때 did/didn’t를 사용한다.
do를 주동사로 사용할 때 didn’t do/What did you do
be 동사의 과거형은 was/were(주의 할 건, you는 단수든 복수든 were)
I/he/she/it was
we/you/the were

외울 문장

1. Did you go out last night or were you too tired?
2. Yes, I went to the cinema, but I didn’t enjoy the film much
3. I didn’t do anything.
4. Was the weather good when you were on holiday?

틀린 문제 7

I never have lunch –> 과거형으로(she)
=> She didn’t have lunch.

She never had lunch라고 써서 땡.

불규칙 동사 변화
teach -> taught
catch -> caught
spend -> spent
leave -> left

___________? Yes, but it was very hot – sometimes too hot.
=> Was the weather good?

yes it was로 대답을 했으니 Was로 물어봐야 한다.

Unit 6. Post continuous(I was doing)

과거 진행형: 과거에 무엇을 하던 중이었을 때 사용한다.
과거는 이미 종료된 상황을 말한다.
주로 과거와 과거 진행형을 같이 사용해서 과거에 무엇을 하던 중에 어떤 일이 있었다는 것을 표현한다.
순차적인 발생한 사건들을 이야기 할 떄는 과거형을 사용한다.
특정 동사는 과거 진행형을 사용하지 못한다.(Unit 4 참조)

외울 문장

1. What were you doing at 10 o’clock last night?
2. It was raining when I got up
3. I hurt my back while I was walking in the garden
4. I saw Dave. So I stopped, and we had a chat.
5. We knew each other well.

틀린 문제 3

I ____(cycle) home yearterday when a man ____ (step) out into the road in front of me.
=> was cycling, stepped

나머지 두 개는 역시 인칭 문제

Were you 인데, was you 라고 쓴 것.

[smack] 라이브러리 추가 및 기초 코드


교묘하게 비번을 가렸습니다. 후훗. 저 계정은 저희 스터디에서 쓸 계정이기 때문에 유충되면… 다른 아이디를 만들면 됩니다.ㅋㅋ

참조: http://www.andrejkoelewijn.com/wp/2008/12/30/using-google-talk-from-java-example/

위 코드를 참조했고, 라이브러리는 일단 메이븐 리파지토리를 추가해줍니다.

        <repository>
            <id>m2-repository-smack</id>
            <url>http://maven.reucon.com/public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>

다음으로 의존성을 추가해 줍니다.

        <dependency>
            <groupId>org.igniterealtime.smack</groupId>
            <artifactId>smack</artifactId>
            <version>3.0.4</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.igniterealtime.smack</groupId>
            <artifactId>smackx</artifactId>
            <version>3.0.4</version>
            <exclusions>
                <exclusion>
                    <groupId>javax.servlet</groupId>
                    <artifactId>servlet-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

끝~ 3.0.4 버전 말고 더 최신 버전도 나온 듯 한데.. 그건 아직 안 받아봤습니다.

[smack] 구글 토크 봇 – 파일럿 프로그래밍

구글 토크 봇을 만들고 싶어서 이것 저것 찾아보다가 결국엔 가장 중요한 사이트인 http://www.igniterealtime.org/ 이곳이 사이트 점검 중이라 막막해졌습니다. 이 사이트에서 제공하는 Smack(자바로 XMPP 프로토콜을 사용할 수 있게 해주는 프레임워크)을 사용해야 조금이라도 더 편하게 봇을 만들 수 있을텐데 사이트가 막혔으니..

‘XMPP와 Jabber 책을 보면서 코딩해야되는건가… 아이 귀찮아… 하지 말까…’ 하는 고민에 빠졌습니다.

그러나~~ 저 사이트에는 못 들어가더라도 누군가 메이븐 jar를 어느 리파지토리엔가는 올려놨겠지.. 그래! 그냥 라이브러리를 받고 관련 아티클 찾아서 코딩해보자~. 마음 먹고.. 구글신을 통해 이것 저것 찾아본 결과..


자바 코드로 구글토크에 접속해서 제 계정으로 메시지 하나(hello 기선)를 보내놓고 나가버리는 봇을 코딩 해볼 수 있었습니다. 음하하핫 재밌어요 재밌어~~ 이걸로 구글 토크 봇만들기 파일럿은 성공했다고 봐도 되겠습니다.

보아하니.. 서버 프로그래밍을 해야 할 것 같은데, 동시성 제어도 하고 이것 저것 많은 공부가 될 듯 하네요. 요즘 한참 인기가 상승하고 있는 아이폰 프로그래밍을 해볼까 생각했었는데, 그럴 여유가 없겠군요.

만들고 싶은건 요즘 공부중인 영어 문장들을 한글로 물어보면 저는 영어로 답변을 해주고 그럼 서버에서 그 영어가 맞았는지 틀렸는지 판별해주는.. 그런 영어 학습 봇입니다. 오늘 외울 문장들을 저장할 수 있는 기능도 있어야겠고, 전체 목록을 보여주는 기능도 있어야 하고.. 뭐 기타 등등 이건 한 번 정리를 해봐야겠네요.

또 스터디용 봇. study? 라고 치면 봇이 이번주 몇시부터 몇시까지 어디서 무슨 스터디를 한다고 정보를 주는거죠. 스터디 공지도 메시지로 쫙 뿌려주구요.

캬~~

소스코드와 Smack 라이브러리를 메이븐으로 추가하는 방법은 비밀입니다. 영원히~ 어쩔 수 없어요. 이제 세상의 이치에요.