1004 at tsix.net 의 요청으로, 개인별 문제 출제 점유율을 표시하는 기능을 넣었다.
설명하면 읽는 사람도 귀찮고 쓰는 사람도 귀찮은 동시에 이해가 안갈 수도 있으니까, 여느때처럼 스크린샷을 올리고 도망간다.
어제 퍼키님과의 번개에서 알콩달콩 이 얘기 저 얘기 하다가, 타자방 정확도 체크하기에 아주 좋은 녀석을 알아냈다.
파이썬의 difflib 이였다. 오전에 회사에서 살짝 삽질을 해보니
from difflib import ndiff
from string import join
join(ndiff('dkssudgktpdy', 'dkssudgktldb'), '')
이렇게만 하면 되는 이런 간단한 녀석을 봤나! 같으면 앞에 0x20이 2개, 추가면 +, 있어야되는데 없으면 - (diff와 같다) 이제 .. 밀려쓰는 오타가 나도 정확도를 잘 평가할 수 있을 것이다.
문제: '동해물과 백두산이 마르고 닳도록 하느님이 보우하사 우리나라 만세' 답안1: '도해물과 ..' 답안2: '동ㅇ해물과 백두산이 마르ㅗㄱ 닳도록...'
현 구조에서는 답안을 QWERTY로 바꿔서 체크를 하기 때문에 위의 2가지 답안 모두 정확도가 10% 미만으로 인식이 안된다. 답안1에서 동해물과에서는 '동'의 종성이 입력되지 않았고, 답안2에서는 수전증으로 인해 ㅇ이 2회 입력되고 '마르고' 입력시 순서가 뒤바뀌어 한칸 밀리기까지 했으니 말이다.
아아 difflib으로 이제 '#오타' 명령까지 만들 수 있겠구나~!
그런데 아직 연동되지 못했다. 그 이유는..
타자봇은 자바라서 JNI로 C에서 Python을 pure로 임베딩해서 difflib 모듈을 로드하고.. 뽕뽕 하게 해놨는데, 이녀석이 이상하게도.. 그냥 C에서 임베딩만 했을때는 difflib 모듈이 잘 로드되고 실행도 잘 되는데, 이상하게 이녀석을 JVM에서 로드해서 사용하면 difflib을 찾을 수 없다고 한다.
Py_NoStruct 가 undefined symbol 이라나 뭐라나 .. 이거가지고 1시간 넘게 삽질하다가 잠시 접어두고 회사일 했다. --; 구글링해도 맘에 드는 답을 못찾았으니.. 런쳐만 C나 Python으로 만든담에 이녀석이랑 자바 타자봇이랑 통신해버려?;;;
주중에는 회사일을 열심히 해야겠다.
Comments
6 thoughts shared
rath
difflib.ndiff 보다 덜 직관적이여서 좀 헤매긴했는데 잘 되네요 흐흐. 고마워요~ -ㅇ- 짬뽕안하고 그냥 bmsi.util 써야겠어요 :D
rath
오, 파라미터에 double minimum이 있는게 아주 인상적이군요. 리턴값도 double 이고.. ㅎㅎ
rath
리턴값이 double에 파라미터도 double 뿐이라 게임에 쓰기는 어렵겠군요..
rath
퍼키님의 많은 도움으로 -ㅇ-; bmsi.util.Diff를 공부해서 문장인식 및 오타 보여주는 부분 다 만들었어요. ㅎㅎㅎ 아이 뿌듯~ 뿌듯~
Continue Reading
Discover more thoughts and insights
커뮤니케이션
커뮤니케이션에서 중요하다고 생각하는 것은 상대방에 대한 배려와 이해이다. 상대방이 무엇을 말하고자 하는지 알고자 하는 노력. 내가 말하고자 하는 것을 상대방이 이해하고 있는지 확인하려는 의지. 몇
입사 3주차, 자아 성찰
입사 3주를 채웠다. 3주 동안 학습한 게 정말 많다. 평소에 쳐다도 안 보던 많은 기술 스택과 새로운 개념들을 커버하고 있고, 서로 비슷한 점이라고는 찾아보기 어려울 만큼 다양한 사람들을 관찰하면서 평소에는 가질
Swift 1.2에서 긴 문자열 연결 시 컴파일 속도 저하 문제
Swift 1.2로 작성된 파일에서 아무 문자열 리터럴 뒤에 "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" + "" +