Translate

2018년 9월 4일 화요일

응용 어플 끝글자 버그 잡는 거 진짜 개쉽습니다

그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유


우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다. 이렇게 개떡 같은 게 오픈소스입니다.
전 과거 libhwp 하냐고 시간이 없었고, 지금은 nimf 개발하냐고, 밥 먹고 사냐고 시간이 없습니다. 그리고 제가 겪는 문제가 아닙니다.
컴퓨터가 저사양 노트북입니다. 컴파일 시간이 아마 10시간 정도 걸릴 거에요.
저 시간 없어요. 한가한 사람 아닙니다. 아침 06시 40분 기상해서  집에 오면 22시 30분 정도됩니다. 구라가 아니라 진짜로 컴퓨터 살 돈도 없어요.
nimf 에 GTK, Qt 어플에 있는 끝글자 버그를 무력화시킬 수 있는 옵션이 있습니다.
이 옵션은 마우스 클릭할 때 im 을 리셋하지 않는 버그에만 유용합니다. geany, eclipse 같은 어플에 유용합니다. XIM 어플에 유용하지 않고, preedit 를 draw 하는 부분이 없거나 그 부분에 버그가 있는 어플 krita, inkscape, wine 이런 어플에는 유용하지 않습니다.

끝글자 버그는 초보자도 고칠 수 있는 아주 단순한 버그에요.


입력기에게 일을 시키거나 정보를 주고 받는 API 가 있습니다.

GTK 는 gtk_im_context_*

https://developer.gnome.org/gtk3/stable/GtkIMContext.html

Qt

http://doc.qt.io/qt-5/qinputmethodevent.html
http://doc.qt.io/archives/qt-4.8/qinputcontext.html
http://doc.qt.io/qt-5/eventsandfilters.html

XIM

https://linux.die.net/man/3/xopenim
https://linux.die.net/man/3/xcreateic

등의 함수가 있습니다.

그래서 리브레오피스의 끝글자 버그를 잡으려고 한다면, 리브레오피스 소스코드를 다운받아서 바다처럼 광대한 소스코드량에 놀랄 필요가 없이,
grep 명령어로 XOpenIM, XCreateIC 이러한 함수를 찾으면 입력과 관련된 파일이 어느 것인지 금방 파악할 수 있습니다.
그렇게 작성한 패치입니다.

hodong@debian:~/Downloads/libreoffice-5.2.7.2$ git diff
diff --git a/vcl/unx/generic/app/i18n_ic.cxx b/vcl/unx/generic/app/i18n_ic.cxx
index a67e589..fedf1de 100644
--- a/vcl/unx/generic/app/i18n_ic.cxx
+++ b/vcl/unx/generic/app/i18n_ic.cxx
@@ -618,6 +618,17 @@ SalI18N_InputContext::UnsetICFocus( SalFrame* pFrame )
     }
 }

+void
+SalI18N_InputContext::ResetIC()
+{
+    if ( mbUseable && (maContext != nullptr) && maClientData.pFrame )
+    {
+      char *text;
+      text = Xutf8ResetIC( maContext );
+      free (text);
+    }
+}
+
 // multi byte input method only

 void
diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx
index 061abbf..50326c1 100644
--- a/vcl/unx/generic/window/salframe.cxx
+++ b/vcl/unx/generic/window/salframe.cxx
@@ -2653,6 +2653,7 @@ long X11SalFrame::HandleMouseEvent( XEvent *pEvent )
         }
         else if( pEvent->type == ButtonPress )
         {
+            mpInputContext->ResetIC();
             // see if the user clicks outside all of the floats
             // if yes release the grab
             bool bInside = false;

코드 몇 줄 되지도 않습니다. 컴퓨터가 저사양 노트북이라 컴파일은 해보지 않아서 작동 여부는 저도 모릅니다. 하지만 이클립스 등 어플에서 마우스 클릭할 때 reset 하지 않아서 발생하는 끝글자 버그는 저러한 방식으로 고치면 됩니다. 언어 문법만 알면 고칠 수 있는 버그입니다.
초보 개발자도 할 수 있는 걸 아무도 고쳐주지 않아 수년 간 방치되고 있는 것이죠.

krita, inkscape, wine  어플은 폰트를 draw 하는 코드가 있습니다. 그 부분에 버그가 있는 것이니 로직 버그를 수정하면 됩니다.
사람들이 끝글자 버그에 대해 엉뚱하게도 저를 탓하여 geany, eclipse, libreoffice 에 발생하는 끝글자 버그를 모두 고치려 했으나, 제 컴퓨터가 저사양 노트북이라 컴파일하는데 아마 10시간 정도 걸릴 거에요. 컴퓨터 구입하려면 또 손실 발생하고 시간 빼앗겨 더 열폭할 거 같아서 여기까지만 하겠습니다.

끝글자 버그가 저렇게 초보 개발자도 고칠 수 있는 아주 단순한 버그에요.
저렇게 단순한 버그가 왜 수 년간 방치되고 있는지 이해를 하지 못하겠습니다.
애초 geany, libreoffice, eclipse 끝글자 버그를 모두 고치려 했으나 컴퓨터 살 돈도 없고 더 하다간 개짜증 나서 돌아가실 것 같아 안 고치고 방치하겠습니다.
저 버그가 몇 년 더 방치되는지 한 번 지켜보겠습니다.
저를 열심히 욕하고 탓하세요!!
제가 nimf 개발 외에는 컴퓨터를 쓸 일이 없어요.
저는 직업이 개발자도 아니고, 오픈소스 개발자도 아닐 뿐더러 그렇게 소개한 적도 없고 오픈소스 관계자도 아닙니다.
오픈소스가 이렇게 개떡같은 거라 컴퓨터 갖다 버리고 앞으로 관심 끄고 살거에요.
사실 컴퓨터 갖다 버리고 관심 끄고 살고 있었어요. 개인 이메일 절대 보내지 마세요.
개인 이메일 보내면 낚여서 개짜증 나서 다시 나타나겠지만...
서로 욕하시고 욕 쳐 드시면서 시작할거라는 거 알고 계세요.
님들끼리 잘 해보세요.

오픈소스고 나발이고 그 딴거 개나 줘버리라고 하세요

이제서야 고백합니다.
kldp 관계자분들께 죄송스런 얘기지만
제가 옛날에 수 년간 안티 활동 격렬하게 했던 사람입니다. 민원에 관공서 직접 방문도 여러 번 했습니다.
우분투 사용자 포럼에서도 hwp, 공인인증서에 대한 안티 활동 열심히 했습니다.
원래가 개발자였던 사람이 아니고, 원래가 일반 사용자였던 사람입니다.
해주는 사람이 아무도 없어서 일반 사용자가 결국에 참다참다 못참아 직접 ruby, C언어를 수년 간 공부하여

2010년 ruby-hwp
2012년 libhwp

어떻게 된 게, 세월이 흐를 수록 한글 입력이 불편해지고 있습니다.

결국 또 폭발하여

2015년 dasom
2016년 dalkom, nimf

이렇게 개발해오고 있습니다.

오픈소스에 대한 환상 libhwp 하면서 산산조각 났고 오픈소스 품질이 하도 개떡같아서 2014년부터 오픈소스 안티로 전향하여 주변 사람들에게 리눅스 쓰지 말라고 전파하고 다닌 답니다.

우리가 당면하고 있는 문제도 10여 년간 해결도 못하면서 무슨 놈의 오픈소스 
오픈소스고 나발이고 그 딴거 개나 줘버리라고 하세요!
제가 원하는 소원은 본인 스스로 모두 성취했습니다.
제가 nimf 개발하는 것은 시간이 남아서 심심해서 하는 게 아닙니다.
해주는 사람이 아무도 없으니까 직접 나선 거에요.
오픈소스 세계는 아주 개떡 같은 세계고 두 번 다시 하고 싶지 않습니다.
nimf 를 마지막으로 두 번 다시 오픈소스 세계에 나타나고 싶지 않습니다.

열심히 제 탓하시고 저를 열심히 욕하세요!



https://kldp.org/node/107443

한국 IT 산업, 독자적 발전인가, 고립인가?

글쓴이: studenes / 작성시간: 화, 2009/07/28 - 2:52오전

* 한글 산업
    워드 프로세서
        HWP 문서의 비호환성

    한글 폰트
        폐쇄적인 라이선스 정책
            윈도우, Mac 전용
            폰트 드라이버를 설치해야만 한다.
                OS와 충돌하여 시스템을 다운시키기도 한다.
                듀얼코어가 지원되지 않을 수 있다. 이는 거짓이 아니다.
                    현재는 듀얼코어 잘 지원해주는가.
                리눅스에서 절대 사용 못하는 라이선스 정책이다.

            IE용 웹폰트
                MS 강국을 만드는데 일조할 것인가.

        유니코드 시대에 부합하는 폰트가 거의 없다.
            11172개의 문자를 포함하고 있는 폰트가 몇 개나 되는지 세어 볼 것.
            옛한글 유니코드 영역은 국 끓여 먹을 것인가?
            한양 PUA만 고집할 것인가?
            국가 사업, 옛문서 전산화가 현재에도 한양 PUA로 작업 중이다.
                후에 유니코드로 변환하려면 이중 지출이 발생한다.

        LCD 시대에 부합하는 폰트가 거의 없다.
            한글이라는 문자가 복잡해서 그렇다고 변명하는 것은 이해를 하겠는데
            한글 폰트 내에 영문을 보면 이해할 수가 없다.

        BOLD체를 제공하는 폰트는 별로 없다.

        table이 잘못되어 있는 폰트가 있다.

        잘못된 부분을 지적해도 웬만해서는 고치지 않는다.

* 인터넷 분야
    독점적인 운영체제 : MS윈도우, MS 익스플로러, 약 99% 점유율
        오로지 액티브X만을 통한 공인인증서 발급.
        이는 MS이외의 타운영체제와 웹브라우저가 성장하는데 큰 장애가 된다.
        DDoS 같은 사태는 또다시 반복된다.
        가짜 백신이 판을 치게 된다.
        악순환이 자꾸 계속 반복된다.

    보안업계는 언제까지 혹세무민 할 것인가?
        한편으로는 액티브X 쓰지 말라고 하면서
        다른 한편으로는 액티브X를 열심히 쓴다.
        안티바이러스 설치 의무화로 보안의식 향상?
            의무화하면 보안의식이 더욱 하락된다.
            말하건대, 안티바이러스는 구세주가 아니다.
            방탄헬멧, 방탄조끼 입었다고 총알 안 맞나.

    다음, 네이버
        robots.txt
        사용자들을 다음과 네이버에 꽁꽁 가두어 놓고 있다.
        검색엔진이 왜 이렇게 잘 검색이 되지 않는 것인가.
        3S 정책을 스스로 만들어 가는 것인가.

* 홈페이지
    실버라이트 문제: 실버라이트가 멀티플랫폼이라고?
        MS가 뒤통수 친 것인가, MS 추종세력이 뒤통수 친 것인가?
        sbs 뉴스
        danawa 상품정보

    은행, 학교, 정부 홈페이지
        MS윈도우 아니면 안된다.
        정부는 국민, 학교는 학생들에게 의무적으로 MS윈도우 카피를 제공해야 하는 것이 아닌지.
        액티브X 원없이 사용할 수 있도록 종속화하여 돈별려고 티사에서 티윈도우 개발하나?

    플래쉬 문제
        한글 코드 언제 utf8로 바꾸어 줄 것인가?

    사전
        utf8은 11172개의 모든 문자가 표현 가능하다.
        IPA 문자도 들어있다. 굳이 그림으로 처리하지 않아도 된다.

    euc-kr, cp949, utf8 혼재
        이제 새로 만드는 홈페이지, 문서, DB들은 utf8로 만들어야 되지 않을까.

* 핸드폰
    다운그레이드 된 모델을 한국에서 더 비싸게 판다고 함.
    반면, 제가격 주고 사면 병신 소리 듣는다.
    mp3 파일을 핸드폰에서 재생할 수 없음에 놀랐다.
    무선인터넷 요금이 저렴하다고들 하는데, 자살하는 사람들이 속출한다.
    아이폰이 수입되지 않는 이유는 이통통신사의 독점적 구조 때문이라고 밝혀졌다.

* IT 정책
인터넷 실명제, 저작권 위반에 대한 3진 아웃제, 사이버 모욕죄
포털의 모니터링 의무화에 대한 입법 추진
안티바이러스 프로그램 설치 의무화 고려
반대하는 사람도 많고 찬성하는 사람도 많다.

* 한국 IT 산업은 이제 독자적으로 나아가기로 결심했는가?
티맥스 윈도우 개발?
삼성 CPU 개발했다고 기사 떴다.


IT 뿐만이 아닐 것이다.
정치, 종교 또한 마찬가지이다. 독자적으로 나아가고 있다.

과연 독자적인 행보일까, 고립화되어 가는 것은 아닐까.


---------------------
정치, 경제, 사회, 문화, 종교, IT 정책, 보안, 건설, 역사에 대해 관심을 갖게 해주고
나도 대통령이 될 수 있다는 희망을 준
이명박 대통령 각하께 진심으로 감사한다.


https://kldp.org/node/111434

새해 소원입니다.

글쓴이: 불편한웹 / 작성시간: 수, 2009/12/30 - 11:35오후

1. 금융권, 공공기관, 교육기관 홈페이지

1-0 개념 탑재할 것.
1-1 사용자 브라우저 차별하지 말 것.
1-2 보안 접속을 액티브X에 의존하지 말고 HTTPS 로 구현할 것.
1-3 리눅스 사용자에게 키보드 보안 프로그램 강요하지 말 것
1-4 금칙어 검출 액티브X 프로그램(검열 프로그램) 설치를 강요하지 말 것

2. 한글 관련

2-1 공공기관에서 문서를, hwp 외 정보 접근과 이용에 불편이 없는 다른 문서 포맷으로도 제공할 것.(수정했습니다.)
2-2 유니코드 옛한글 폰트 출시하여 아래 2-3의 작업을 할 것.
2-3 국가와 폰트업계는 옛한글 문서를 PUA 방식으로 디지털화하지 말 것. 유니코드 폰트를 사용하여 유니코드로 디지털화할 것.

3. 웹 개발자

3-0 웹 사이트 사용자의 의견을 무시하지 말 것
3-1 자기들끼리 만들고 놓고 잘만들었다고 북치고 장구치지 말 것.
3-2 자기들끼리 웹표준,웹접근성 우수상 주지 말 것.

컴퓨터를 이용하면서 가장 힘들고 불편한 점들이 개선되기를 새해 소원으로 빕니다.

2018년 9월 3일 월요일

꿈의 입력기 nimf 이야기 23화 - 제가 오픈소스를 바라보는 시각

제가 원래 개발자가 아니라 원래가 일반 사용자였습니다.과거 MS윈도우 품질이 개떡같아서 유닉스 사용하다가 유닉스가 비싸고 망해서 리눅스를 사용하고 있는 거고 리눅스 품질이 지금은 우수하지만 예전에는 문제가 진짜 많았죠. 그렇게 리눅스를 지금까지 사용해오고 있습니다.

그런데 리눅스에서 hwp, 공인인증서, 한글 문제 참 개짜증납니다.
그래서 공인인증서, hwp 안티 활동 많이 했고,
공인인증서 플러그인에 대한 취약점을 오픈웹 쪽에 제공했고,
리눅스에 키보드 보안 프로그램 설치하는게, 정신나간 발상이라 생각하여
아마 2009년쯤 랜덤 스크린 키보드 아이디어를 오픈웹쪽에 제공하여
아마 2010년쯤 랜덤 스크린 키보드 방식이 인터넷 뱅킹에 먼저 적용되었고,
수년 전부터 현금 인출기에서도 널리 사용되고 있습니다.
랜덤 스크린 키보드 방식을 제가 제일 먼저 생각해냈는지 아닌지는 저도 모릅니다.

그러면서 항상 드는 생각이 개발자들은 뭐하고 이런 걸 내가 하냐는 피해 의식.
hwp 도 마찬가지입니다.
그 당시 C언어를 몰랐습니다. 믿으시겠습니까?
그래서 2010년에 ruby 언어로 ruby-hwp 로 만들다가
아마 2012년 쯤, C언어를 몰라서 vala 언어로 libhwp 를 개발하기 시작했습니다.
https://gitlab.com/hodong/libhwp/commit/50907b4a6e0678a2979f98af3c38f18ce3b4e021
구라 같죠? ㅋㅋㅋ C언어를 차츰 공부하면서 C언어로 만들어갔습니다.
그렇게 C언어를 공부하기 시작했습니다.

당시에도 한글 입력 문제가 있었습니다.
libhwp 개발 때문에 시간이 없어서 손을 못데고 있다가,
libhwp 개발을 중단하고 시간이 확보되어,
한글 타자 연습 프로그램이 있었으면 좋겠다는 생각에
새로 만들기보단 klavaro 프로젝트에 한국어 지원을 하였고,
2014년 끝글자 버그 문제 때문에 도저히 못참아 개짜증나서 리눅스 갖다버리고 MS 윈도 사용하려고 하다가 끝글자 문제를 해결하고자 dasom 을 개발하고 그걸 포크하여 nimf 에 이르고 있습니다. libhwp 그만둘 당시 두 번 다시 오픈소스 안 한다고 했었는데, 또 다시 나타난 이유가 그렇습니다.
아무도 해결해 주는 사람이 없습니다. 일반 사용자가 얼마나 빡쳤으면 컴퓨터 공부해서 개발하고 이러고 있을까요?


그동안 블로그, SNS, 저장소 생성 삭제, 아이디 생성 삭제 수십 번 한 거 같습니다.
오해하시는 분들이 많으신데 기분 나빠서 삭제하는 게 아니라, 저는 성격이 필요없으면 삭제하는 성격입니다.
지마켓 사용하다가 11번가로 갈아타면 지마켓 아이디 삭제하고,
인스타그램도 사용하다가 필요없으면 아이디 삭제하고 뭐 그런거에요.
제가 사람들에게 알려지기 전부터 프로젝트, 블로그 생성/삭제 엄청 많이 했습니다.
워드프레스 블로그, 구글 사이트 블로그, 블로거, geekforum, joomla, drupal, jekyll, hugo 등 수십 번 블로그를 생성, 삭제를 했지요.
트위터 계정도 수십 번 생성 삭제를 했고, 카카오톡, 페이스북도 마찬가지고..
SNS 등 온라인 활동에 큰 의미를 두지 않습니다. 원래 이런 걸 하지 않았습니다.
컴퓨터도 수개월 사용하다가 필요 없으면 팔고, 수개월에서 수년 후 다시 필요하면 다시 구입하는 등 원래 성격이 그렇습니다.
현재 블로그도 삭제하고 갈아업고 싶은데, 뉴스기사 링크되어 있어서 그거 삭제하면 욕 대박 얻어먹을거 같아서 그러지 못할 뿐이죠.
그리고 github 사용하다가 bitbucket 으로 갈아타면 github 계정을 삭제하고,
bitbucket 에서 gitlab 으로 갈아타면 bitbucket 계정 삭제하고..
은행 계좌도 마찬가지입니다. 갈아타면 기존에 있던거 모조리 삭제합니다.

신경 쓰는거 딱 질색이라 원래 성격이 그래요.

ruby-hwp, libhwp 이거는 개인 프로젝트입니다.
과거에 libhwp 가 널리 알려져서 이게 단체 프로젝트로 오해하고 계신 분들도 많으시던데,
개인 프로젝트입니다. 당시 기여자분이 1분 계셨던 것 같은데 컴파일 속도 개선에 대한 기여였고 비중이 낮았습니다.
메일링 리스트 삭제는 욕을 먹을 만한 부분이고 그거는 제 잘못이라 인정합니다.
개인 프로젝트가 그거 말고도 폰트, 사전, 형태소 분석기 이런 게 있었고 모두 삭제했습니다.

그러면 dasom 으로 넘어와서 볼 때, dasom 초기는 완전한 개인 프로젝트였습니다.
dasom 저장소를 삭제했다고 오해하시는 분들도 계시는 것 같은데,
맨 처음에 github.com/cogniti/dasom 이게 주소였습니다.
제 성격상 스스로가 다 망가뜨리고 파괴할 것 같아서
dasom-im 그룹을 만들고 거기로 옮겨놓은 후 github.com/cogniti/dasom 저장소를 삭제했지요. 은행 계좌도 안 쓰면 삭제합니다. 원래 성격이 그래요.

그리고 머리 아프고 피곤한거 딱 질색하는 사람이라 직업이 개발이 아닙니다.
프로젝트 하면서 개발 능력이 향상되는데 그게 본업에 도움이 전혀 되지 않습니다.
github.com/cogniti/nimf 저장소 삭제한 거는 nimf 가 오픈소스가 아니다는 것에 대한 항의 차원에서 그런 거에요.
nimf 저장소 삭제하고, 소스코드와 이슈 내용을 블로그에 다운 받을 수 있도록 했을 때,
이것도 오픈소스다. 폐쇄 소스라면 소스코드를 어떻게 다운받냐 이렇게 항의한 거죠.
기분 나뻐서 삭제한 게 아닙니다.
nimf 를 사용 못 하도록 할 목적이 아니였기 때문에 현재는 gitlab 에서 호스팅하고 있습니다.
그러다 나중에 gitlab 보다 더 좋은 호스팅 업체가 있다면 당연히 거기로 옮겨갈 거고,
옮긴 후 gitlab 을 삭제하겠죠. 만약 그럴 계획이 있다면 공지가 있을 겁니다.

그리고 이제 본론이 시작되는데,
2016년 nimf 이슈 게시판을 폐쇄한 적이 있습니다. 시간 손실이 커서 개발에 방해되었기 때문입니다. 대다수의 이슈는 저 좋으라고 하는게 아니라 자기들 좋으려고 하는거죠.
이렇게 얘기하면 싸가지 없다고 백만 안티 양성될 것 같은데...ㅎㅎ
어쨌든 저는 하고 싶은 말을 안 하면 속병이 생기기 때문에 합니다.
코드 기여는 얘기가 다른데 코드 검토하려면 시간이 또 소비되겠죠.
그래서 또 짜증나고. 왜냐면 그만큼 잠을 못 자게 되고 너무 피곤하면 회사 쉬어야 합니다.
당연히 벌 수 있는 돈을 못 벌면 그게 손실이 아니면 뭡니까.

저는 오픈소스를 할 형편이 안 됩니다.
오픈소스 관련 협회, 모임, 회사에서 참석해달라고 연락이 10여 건 온 적이 있는데,
밥 먹고 사냐고 바쁘고 남는 시간에 개발하냐고 시간 없어 모두 거부했습니다.
그랬더니 서운하시다고 하시더군요.
그런데 제 입장에서는

아니 어떻게 libhwp, nimf 를 무상으로 제공하는데
내 개인 시간까지 님들한테 제공해야 하냐. 내 개인 시간까지 오픈소스로 풀어야 하냐.
님들은 시간이 남아 돌아 모임도 개최하고 참석도 하는데 난 그럴 시간 자체가 아예 없다.
참 팔자 좋은 사람들아.


저는 딱 이 정도 밖에 생각하지 못하는 그릇입니다.
게다가 nimf 가 debian 저장소 이런 데 탑재되면 사용자수 늘어나서 피곤할텐데...
nimf PPA 만들면 사용자수 늘어나서 피곤할텐데...
잠깐이지만 제가 nimf 안티 활동을 하기도 했습니다.
지금은 nimf 안티 활동을 하지 않습니다.
제 성격상 불특정 다수를 상대해야 하는 오픈소스 프로젝트 이런 거 하면 진짜 스트레스 엄청 많이 받습니다. 본인 스스로 생각해봐도 오픈소스를 할 그릇이 못 되는 것 같습니다.

그러면 안 하면 되지 왜 하냐고 묻는 분들 계실 겁니다.
제가 아무 것도 안 하고 손 놓고 있었으면,
리눅스에 아직까지도 키보드 보안 프로그램 설치를 강요당하고 있었을지도 모르고,
libhwp 는 지금까지도 없었을 것이고,
klavaro 한글 타자 지원도 없었을 것이고,
끝글자 버그 없는 다국어 입력기 프레임워크도 없었을 것입니다.
이제 곧 리브레오피스, geany, 이클립스의 끝글자 버그를 해결하려고 하는데,
10여년간 지속된 끝글자 버그를 해결해주는 사람도 없었을 것입니다.
이쯤되면 제가 하고 싶은 말이 뭔지 아시겠습니까?
그래 니 잘났다.. 
열심히 욕해 주세요.

제가 libhwp 할 동안 님들 뭐하셨습니까?
제가 libhwp 할 동안 끝글자 버그 없는 다국어 프레임워크 좀 만들어주실 수 없었냐고요?
제가 dasom, nimf 할 동안 응용 어플 끝글자 버그 해결하지 않고 뭐하시고 계셨습니까?
C언어 몰라서요? 번역하냐고 바쁘셨다고요? 생업, 학업에 바쁘셨다고요?
그러면 저는 돈과 시간이 남아돌아 수년간 공부하여 개발하고 이러고 있습니까?
제가 libhwp 를 지금까지도 계속 해왔다면 nimf 는 없었을 것입니다.
2010년에 nimf 를 시작했다면 libhwp 는 없었겠죠.

제가 libhwp, dasom, nimf 할 동안 님들은 어디서 뭐하시다가 이제 나타나셔서 저를 탓하고 왈가불가하냐고요...
열폭하시는 분들 많으실텐데 저를 열심히 욕하세요. 욕먹을 만합니다.
기분 나뻐서 욕하시는거 법에 저촉도 안 되고, 먹고 살기 바뻐서 제가 법적으로 어떻게 하지 못해요. 그리고 온라인 생활, 오프라인 생활이 완전히 구분되어 있어서 온라인에서 열심히 욕먹어도,제 현실 생활에 영향을 끼치지 못합니다. 명예 때문에 오픈소스 하는 거 하는거 아니니 열심히 욕해 주세요. 저는 단지 욕먹는게 싫을 뿐, 이미지로 밥먹고 사는 사람이 아니니 명예 훼손되어도 상관없습니다.

제가 개발을 할 여건이 되지 않고, 오픈소스 프로젝트할 그릇도 못 되고 그럴 인격도 못되요.
스트레스 받아서 지인들한테 얘기하면 너 미쳤다고 지인들도 하지 말라고 말려요.
찌질하게 살지 말고 니 앞가림이나 잘 하라고 그런거 왜 하냐고.
내가 리눅스를 왜 사용해서 이 고생일까.. 그냥 MS윈도 사용했더라면 큰 불편없이 살아왔을텐데.. 이런 생각이 많이 든답니다. 리눅스 사용하면서 버린 시간에 일을 했으면 지금보다 먹고 살기 괜찮았을텐데..

오픈소스면 수정 배포 가능하지 않는가, 스스로 해결하면 될 걸, 아니 그걸 왜 나한테 해달라고 하냐고?
저는 딱 이 정도 밖에 생각하지 못하는 것 같아요.
오픈소스할 인간이 못 되는 거죠. 제 스스로도 알아요.

10여 년간 한글 문제 해결도 못하고 있는데
오픈소스 이 딴거 개나 줘버리라고 하세요.
누가 누구한테 왈가불가야!
오픈소스 개발자님, 관계자님들
니나 잘 하세요. 참 잘나셨습니다.

저는 오픈소스에 대해 이렇게 생각하는 사람입니다.

저를 믿고 따라와 주신 분들, 지지자 분들, 기여자분들께 참 죄송하다는 말씀을 드립니다.
제가 이런 인간입니다.
오해는 말아주세요. 프로젝트 포기, 방치, 중단, 저장소 삭제 이런 거 아닙니다.
저는 사실 욕먹어도 쌉니다. 많이 많이 욕해주세요.
그리고 사실 저는 오픈소스에 낚인 거 지금도 엄청 후회하고 있습니다.
여러분들은 제가 하는 프로젝트 이런 거에 낚이지 마시고 본업에 충실하세요.
말을 너무 막해서 죄송하고, 원래 성격이 그런데 연기하거나 참으면 병 되요.
너무 제 입장만 생각하는거 저도 알아요.
기분 많이 상하셨을텐데, 알고 보니 저 인간 개또라이네..
참으면 병 되요. 열심히 욕 해주세요.
긴 글 읽어주셔서 감사드리고, 별 내용도 없는 피해의식에 가득 찬 글인데, 시간을 빼앗아서 죄송합니다.
학생 분들은 학업에 열중해 주시고, 상처 받으신 젊으신 분들도 계실텐데,
거듭 죄송하다는 말씀을 드립니다.
스트레스 받아도 어디 말할데도 없고. 이렇게 스트레스를 풀어서 죄송하네요.
제가 일반 사용자 출신이다보니,
리눅스 사용하면서 소프트웨어 품질 때문에 개빡친 적 엄청 많아서
님들은 nimf 사용하시면서 빡치지 말라고 품질 관리는 열심히 하고 있습니다.
저는 그것으로 만족하렵니다.
감사합니다.

2018년 8월 31일 금요일

꿈의 입력기 nimf 이야기 22화 - GTK, Qt 끝글자 버그에 대한 무력화 옵션

마우스 클릭했을 때 im 이 리셋이 되지 않아 끝글자 버그가 있는 어플이 있습니다.
GTK, Qt 어플에서 마우스 클릭할 때 im 을 리셋하지 않아 생기는 끝글자 버그를 무력화 시킬 수 있는 Reset when clicking the mouse button 옵션이 있습니다.


그림에 보이는 옵션을 ON 해주면 마우스 클릭할 때 reset 해줍니다.
geany 에 있는 끝글자 버그는 이렇게 해결할 수 있습니다.

꿈의 입력기 nimf 이야기 21화 - 프로젝트 운영을 상식적으로 하겠습니다

안녕하세요.
현재의 nimf 프로젝트는 개인 프로젝트의 성격이 강하지만
그렇다고 해서 완전한 개인 프로젝트도 아닙니다.
그동안 제가 침소봉대, 경거망동했습니다.
자꾸 이랬다 저랬다해서 죄송합니다.
최근 커밋에 경고문으로 거북하게 해서 죄송합니다.
본인도 거북했는데 사용자분들도 당연히 거북하겠죠.
제 스스로가 nimf 에 대해 안티짓을 했는데 기여자분들은 갑자기 멘붕 왔겠죠.
변명은 아니고 참 바쁘게 살아와서 삶의 여유가 없어 피해의식에 사로잡혔던 같습니다.
경고 메시지 등을 없애 2018.08.22 버전의 내용으로 원상 복구 해놓겠습니다.
휴식을 취하며 제 자신을 돌아보겠습니다.

2018년 8월 29일 수요일

꿈의 입력기 nimf 이야기 20화 - 시간은 저를 기다려주지 않습니다

여유가 없는 삶


밥먹고 살기도 바쁜데 입력기까지 신경쓰냐고 사는게 정말 힘듭니다.
출근 때문에 아침 06시 40분 쯤 기상, 퇴근하고 집에 오면 밤 22시 정도.
이슈라도 올라오면 거기 답변해 드리느냐고 잠을 01시~03시쯤 잡니다.
허위 사실 유포로 인한 명예 훼손 문제 때문에 어떻게 대처를 할까 고민하며 최근 일주일 간 약 2~3시간 자면서 생활했습니다. 과장이 아니라 시간이 진짜 없기 때문에 개발 및 유지보수를 하려면 회사를 쉬어야 합니다.
당연히 벌 수 있는데 못 버는 돈. 손실은 그렇게 발생합니다.
그게 연간 500만원에서 1000만원 정도.
발생된 손실을 메우기 위해 쉬지 않고 일하는 악순환이 반복되고 있습니다.
2015년부터 지금까지 잠을 제대로 못자고 있습니다.
건강에 당연히 문제가 생기고 탈모도 생겼습니다.
벌써 노안이 왔는지 눈도 침침하고.

이슈에 대한 답변이 늦어지고 처리가 지연될 예정입니다


현재 열려있는 이슈들은 품질 향상 관련 이슈와 HiDPI, 멀티 모니터 관련 이슈입니다.
과장이 아니라 현재의 nimf 는 품질 및 완성도가 굉장히 높아서 마땅히 개발 및 유지보수할 것도 없습니다. 베트남 입력 엔진이며 그외 언어 입력 엔진 개발, 문서 작성을 제외하고는 말이죠.
이슈가 올라오거나 답변이 달리면 이메일로 알림이 오도록 설정해 놓았었는데 알림을 모두 껐습니다. 따라서 이슈가 올라오거나 답변이 달리더라도 바로 확인하지 못합니다. 언제까지 알림을 꺼둘지는 모르겠으나 저도 남들처럼 앞으로는 제가 시간날 때 확인하도록 하겠으며 가급적 손해가 발생하지 않는 시간에 처리하도록 하겠습니다.

이슈에 대한 답변이 늦고 처리가 지연되더라도
* 독촉 메일 보내지 마시고
* 프로젝트가 중단되었다고 허위 사실을 유포하지 마시고
* 개발 또는 유지보수가 중단되었다고 허위 사실을 유포하지 마시고
* 개발자를 욕하거나(비난하거나)
* 개발자를 욕보이거나(음해하거나)
* 개발자를 탓하며 원망하는 등
이런 일 없었으면 좋겠습니다.
좀 쉬다가 인터넷 봤을 때 허위사실, 음해, 비난, 원망글 보면 제 기분이 어떻겠습니까?
제가 로보트가 아니고 감정이 있고 밥먹고 사는 사람입니다.
타 프로젝트에는 안 그러시는 거 저도 압니다.
그만큼 저에게 기대가 커서 그러시겠죠.

법적 고지와 면책 조항을 넣었습니다


신경 끄고 푹 쉬고 싶어서 법적 고지와 면책 조항을 좀 강력하게 넣었습니다.
2018.08.28 버전부터 거의 모든 파일에

# 법적 고지

Nimf 소프트웨어는 대한민국 저작권법과 국제 조약의 보호를 받습니다.
Nimf 개발자는 대한민국 법률의 보호를 받습니다.
커뮤니티의 위력을 이용하여 개발자의 시간과 노동력을 약탈하려는 행위를 금하시기 바랍니다.

* 커뮤니티 게시판에 개발자를 욕(비난)하거나
* 욕보이는(음해하는) 글을 작성하거나
* 허위 사실을 공표하거나
* 명예를 훼손하는

등의 행위는 정보통신망 이용촉진 및 정보보호 등에 관한 법률의 제재를 받습니다.

# 면책 조항

Nimf 는 무료로 배포되는 오픈소스 소프트웨어입니다.
Nimf 개발자는 개발 및 유지보수에 대해 어떠한 의무도 없고 어떠한 책임도 없습니다.
어떠한 경우에도 보증하지 않습니다. 도덕적 보증 책임도 없고, 도의적 보증 책임도 없습니다.
Nimf 개발자는 리브레오피스, 이클립스 등 귀하가 사용하시는 소프트웨어의 버그를 해결해야 할 의무가 없습니다.
Nimf 개발자는 귀하가 사용하시는 배포판에 대해 기술 지원을 해드려야 할 의무가 없습니다.

이런 내용을 한글(한국어)로 넣었습니다.
사실 이런 내용이 간결하게 이미 영어로 들어가 있습니다.

Nimf is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Nimf is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

구글 번역기로 번역해 보면

Nimf는 자유 소프트웨어입니다. 자유 소프트웨어 재단 (Free Software Foundation)이 발행 한 GNU 약소 일반 공중 사용 허가서 (버전 3 라이센스 또는 귀하의 선택에 따라)를 기준으로 이후 버전을 재배포 및 / 또는 수정할 수 있습니다.

Nimf는 유용 할 것이라는 희망으로 배포되었지만 어떠한 보증도하지 않습니다. 상품성 또는 특정 목적에의 적합성에 대한 묵시적 보증조차하지 않습니다. 자세한 내용은 GNU 약소 일반 공중 사용 허가서 (GNU Lesser General Public License)를 참조하십시오.

nimf 가 자유 소프트웨어이며 오픈소스 소프트웨어인 이유


유/무상 서비스와는 무관하게 nimf 는 무료로 배포되는 오픈소스 소프트웨어입니다.
프로젝트 처음 2015년부터 2018년 지금까지 소스코드를 무료로 이용하실 수 있습니다.
LGPL 사용권에 따라 수정/배포하실 수 있습니다.
제가, 사람들이 소스코드를 다운받지 못하도록 방해한 적도 없고,
nimf 를 돈 받고 판 적도 없고,
수정/배포하시는 것을 방해한 적도 없고,
특정 배포판을 차별한 적도 없습니다.
다만, fedora 는 rime 버전 때문에 바이너리 배포 서비스를 못해드리고 있습니다. rime 최신 버전을 rpm 으로 만들면 되는 데 번거롭고 귀찮아서 하고 싶지 않습니다.
gentoo 의 경우는 emerge 파일을 작성해야 되는데 관련 문서가 GPL 입니다. emerge 파일을 nimf 프로젝트 저장소에 넣어서 관리하고 싶은데 nimf 는 LGPL 이기 때문에 호환이 안 됩니다. emerge 파일을 위한 별도의 저장소를 만들면 되는데 관리가 번거로워 그렇게 하고 싶지 않습니다. 그리고 바이너리 패지키 배포는 사실 제가 담당해야 하는 일이 아니죠. 바이너리 패지키 배포를 하지 않는 프로젝트도 수두룩합니다.
그리고 https://opensource.org/osd 여기서 말하는 오픈소스의 정의도 모두 지켜고 있습니다.
인종이나 국가, 국민을 차별하지도 않습니다.
그래서 nimf 가 오픈소스인 것입니다.

위의 내용에 동의하지 않거나 부정하시면 nimf 를 사용하시면 안 됩니다. 뿐만 아니라 리눅스 등 오픈소스를 사용하시면 안 됩니다. 오픈소스가 원래 이런 겁니다. 그래서 상호 존중하며 협력적인 관계로 사용자분들과 개발자간에 암묵적인 룰을 지켜야하는 것인데 nimf 프로젝트에서는 서로 그게 안 된 거죠. nimf 를 돈 받고 파는 것도 아닌데도, 처음부터 지금까지 무상으로 배포하는데도 고객과 개발자의 관계가 되어버린 거죠.

오픈소스가 무엇인지 확실하게 알리고자 nimf-settings 를 실행하자마자 위 내용이 나오도록 변경했습니다.

정보 대화창에도 내용을 넣었습니다.



사실 이렇게 프로그램을 수정하는게 상당히 거북합니다. 그래도 프로젝트 방치 또는 프로젝트 폐기보다는 나은 결정이라고 생각합니다. 저도 거북한데 사용자분들도 당연히 거북하겠죠.

nimf 는 자유 소프트웨어이고 오픈소스 소프트웨어이기 때문에 이번 업데이트로 인해 경고 메시지가 거북하신 분들은 2018.08.21 버전을 다운받아서 컴파일하여 사용하시면 됩니다. README 문서에 컴파일하는 방법이 나와 있습니다. 한국어 버전이 필요하시면 구글 번역기 돌리시면 됩니다. 한국어 버전 파일을 따로 만들면 마찬가지로 관리가 번거롭기 때문에 그렇게 하고 싶지 않을 뿐 한국 사람을 차별하는 것이 아닙니다.

https://gitlab.com/nimf-i18n/nimf/tree/9db1a7c4c31ee1a810216782f1b214bfd426d4f5

https://gitlab.com/nimf-i18n/nimf/-/archive/9db1a7c4c31ee1a810216782f1b214bfd426d4f5/nimf-9db1a7c4c31ee1a810216782f1b214bfd426d4f5.tar.bz2

제가 이런 것을 못하게 하거나 방해하지 않아요. 그래서 nimf 가 자유 소프트웨어이고 오픈소스 소프트웨어인 것입니다.

바라는 점


쉬고 싶습니다. 생계에 열중하고 싶습니다.
이번 업데이트로 라이선스 위반 및 위법 행위가 더 이상 발생되지 않았으면 좋겠습니다.
리눅스 애용하면서 입력 문제 때문에 짜증나는 거 제가 왜 모르겠습니까?
저도 말이죠.. 리눅스 20여년 간 쓰면서 2014년 말에 한글 문제 때문에 하도 짜증나서 리눅스 갖다 버리고 MS윈도 사용하려고 했었습니다.
자유 소프트웨어, 오픈소스의 장점이 뭘까요?
개발자가 어떠한 사유로 못 해주거나 안 해주면, 관련 소스코드 다운받아서 공부해서 수정하거나 직접 만들면 됩니다. 관련 오픈소스 라이브러리도 풍부합니다.
문서가 없다고요? 소스코드가 문서가 아니면 뭘까요? 문서보다 더 확실하고 좋은게 소스코드입니다.
그래서 끝글자 버그 때문에 고생하다가 만든 게 2015년 dasom 이고 2015년 말 dasom을 포크하여 이름을 nimf 로 변경하여 현재에 이르고 있습니다.(포크로 수정했습니다.)
저는 이제 휴식기에 접어들 것이고 1년 중 며칠이나 될 지 모르겠지만 시간이 남아돌아 심심할 때 이슈 확인하겠습니다.
이슈 관련 개인 메일, 독촉 메일 보내지 마세요. 이럴 때는 모르는게 약입니다.

2018년 8월 28일 화요일

꿈의 입력기 nimf 이야기 19화 - 법적 고지 및 면책 조항

커뮤니티의 위력을 이용하여 힘없는 개인 개발자의 시간과 노동력을 약탈하려는 행위가 프로젝트 초기부터 지금까지 지속되고 있습니다.
과거에는 단순히 음해하는 수준이었지만 현재는 허위 사실을 유포함으로써 명예를 훼손하는 수준에 이르렀습니다.
사람들이 이슈를 작성하면 제가 스트레스를 받는 이유가 이런 이유 때문입니다.
요구를 거부하거나 신속히 해결해 드리지 않으면 자신이 속한 커뮤니티에 저를 음해하고 허위 사실을 유포하는 일이 발생하기 때문에 앞으로 법적 고지와 면책 조항이 소스코드, 프로그램, 홈페이지 등에 한글(한국어)로 추가될 예정입니다.

아래 내용은 업데이트 됩니다.

# 법적 고지

Nimf 소프트웨어는 대한민국 저작권법과 국제 조약의 보호를 받습니다.
Nimf 개발자는 대한민국 법률의 보호를 받습니다.
커뮤니티의 위력을 이용하여 개발자의 시간과 노동력을 약탈하려는 행위를 금하시기 바랍니다.

* 커뮤니티 게시판에 개발자를 욕(비난)하거나
* 욕보이는(음해하는) 글을 작성하거나
* 허위 사실을 공표하거나
* 명예를 훼손하는

등의 행위는 정보통신망 이용촉진 및 정보보호 등에 관한 법률의 제재를 받습니다.

# 면책 조항

Nimf 는 무료로 배포되는 오픈소스 소프트웨어입니다.
Nimf 개발자는 개발 및 유지보수에 대해 어떠한 의무도 없고 어떠한 책임도 없습니다.
어떠한 경우에도 보증하지 않습니다. 도덕적 보증 책임도 없고, 도의적 보증 책임도 없습니다.
Nimf 개발자는 리브레오피스, 이클립스 등 귀하가 사용하시는 소프트웨어의 버그를 해결해야 할 의무가 없습니다.

응용 어플 끝글자 버그 잡는 거 진짜 개쉽습니다

그 동안 제가 끝글자 버그를 잡지 않고 방치한 이유 우선 책임, 의무가 없습니다. 제가 해당 어플 개발자도 아닐 뿐더러 오픈소스가 원래가 유지보수 의무, 보증 책임이 없습니다 . 이렇게 개떡 같은 게 오픈소스입니다. 전 과거 libhwp 하냐고...