[냉무] 데비안 10 gnome+wayland 가 디폴트네요 왠일이래요!!!!

emptynote의 이미지

안정 보수주의 데비안이 정말로 왠일인가요.

데비안 10 : gnome+wayland 가 디폴트네요.

세벌의 이미지

https://www.debian.org/News/2019/20190706.en.html

In this release, GNOME defaults to using the Wayland display server instead of Xorg.
Wayland has a simpler and more modern design, which has advantages for security.
However, the Xorg display server is still installed by default and the default display manager allows users to choose Xorg as the display server for their next session.
라고 나오네요.

Xorg 쓰고 싶다면 그거 선택하면 되겠는데요?

lalupo20의 이미지

새로 까는건 오바같고..

세벌의 이미지

https://www.debian.org/releases/stable/i386/release-notes/ch-upgrading.en.html
또는
https://linuxize.com/post/how-to-upgrade-debian-9-stretch-to-debian-10-buster/
등 참고하면 될 거 같네요.

debian 9 to 10 찾아보면 위 링크 외에도 여럿 나오네요. 편하신 거 참고하면 될 듯.

lalupo20의 이미지

부팅이 안되는 참사가...다행히 라이브모드로 중요 파일들은 살렸네요. ㅠㅠ 이미지 파일 새로 받고 있습니다. 암튼 댓글 감사 드립니다.

Hodong Kim@Google의 이미지

데비안 공식 설치 이미지에는 non-free firmware 가 작동되지 않던가... 아마 그럴거에요.
설치한 이후에 non-free firmware 이용에는 문제가 없는데,
간혹 설치할 때, 랜카드 펌웨어가 없어서 작동 안 하는 경우가 있거든요.
특히 노트북에서 설치하시려거든,

https://cdimage.debian.org/cdimage/unofficial/non-free/cd-including-firmware/10.0.0+nonfree/amd64/iso-dvd/

에 있는 이미지로 설치 시도해보세요.
데비안 사이트에서 제공하는 이미지입니다.

Hodong Kim@Google의 이미지

데비안에 wayland 가 기본값으로 ON 되어 있습니다.
GTK+ 팀에서 wayland 를 디폴트로 하자고 그랬다 카더라구요.
gdm3 로그인 화면에서 톱니바퀴 눌러서 GNOME on xorg 선택할 수 있습니다.
문제가 되지는 않습니다. 그런데, 아무래도 wayland 를 사용할 경우, 버그(이슈, 문제)가 더 올라오겠죠?
데비안 쪽에서는 많은 사람들이 wayland 를 사용해서 이슈(문제, 버그)가 많이 올라오기를 바라는 것 같습니다. 그렇게 해서라도 빠르게 wayland 를 테스트하고 개발하기 위함이겠죠.
데비안 배포판 개발자들은 단순히 남들이 만들어놓은 패키지들을 조합해서 배포판을 만드는게 아니라, 직접 소프트웨어 개발에 뛰어들기도 하거나 타 프로젝트에 소스코드를 제공하기도 합니다.
따라서 데비안에 wayland 를 기본값으로 해놓은 것에 대해 부정적인 시각으로 볼 필요까지는 없습니다.
정 불만이면 xorg 위에서 GNOME 이 돌아가도록 로그인 화면에서 선택해서 사용하면 되거든요.

emptynote의 이미지

배포판 특성상 배포판에 포함된 모든 응용프로그램에 대한 버그에 대한 원망 그대로 안게 될텐데

총대 매고 wayland 를 디폴트로 선택하였네요.

다른 배포판에 wayland 장착이 디폴트라서 부러웠는데 드뎌 데비안도 wayland 장착되었습니다 ^^

더불어 자바도 openjdk 11 이네요.

자바는 openjdk 와 같은 jvm 도 중요하지만 개발 인프라가 풍부하여 각광 받는 언어입니다.

데비안9에서 개인프로젝트 자바8(=openjdk8) 에 맞추어서 하고 있는데

apt-get install 로 설치되는 이클립스가 자바8을 지원하지 않아 이클립스 사이트에서 다운로드 받아 사용중인데요.

데비안10에서는 openjdk 11 지원인지라 어찌될지 궁굼하기도 하네요.

또 가장 궁굼한것이 wayland 에서도 한글 입력 특히 끝문자 버그 그대로 일지도 궁굼하기도 하네요.

세벌의 이미지

끝글자 버그는 입력기 뿐 아니라 응용프로그램이 얽혀서, 간단하지 않은 문제라서,배포판 업그레이드로 자동해결될 문제는 아닐 겁니다.

Hodong Kim@Google의 이미지

진짜 데비안에서 총대 메고 wayland 를 기본값으로 해놓은 거 같습니다.
아마 많은 버그를 접하실텐데 로그인 화면에서 GNOME on Xorg 선택할 수 있습니다.

끝글자 버그를 겪지 않으시려면 ibus, fcitx 를 사용하지 말고,
nimf 를 사용하되 "마우스 버튼을 클릭할 때 리셋합니다(Reset when clicking the mouse button)"라는 옵션을 ON 해놓고 사용하시는 것이 유일한 방법으로 알고 있습니다.
그렇게 해도 wxWidgets 을 사용하고 있는 어플들은 해결이 되지 않는데,

https://nimf-i18n.gitlab.io/docs/lets-fix-the-last-character-bug-2/

패치 파일을 제공하고 있습니다.

diff --git a/src/gtk/textctrl.cpp b/src/gtk/textctrl.cpp
index 02bd068..43ed914 100644
--- a/src/gtk/textctrl.cpp
+++ b/src/gtk/textctrl.cpp
@@ -750,6 +750,12 @@ bool wxTextCtrl::Create( wxWindow *parent,
 
     m_focusWidget = m_text;
 
+#if GTK_CHECK_VERSION(3, 24, 0)
+    g_object_set_data_full (G_OBJECT (m_text), "im-filter",
+                            gtk_event_controller_key_new (m_text),
+                            (GDestroyNotify) g_object_unref);
+#endif
+
     PostCreation(size);
 
     if (multi_line)
@@ -862,6 +868,12 @@ GtkEntry *wxTextCtrl::GetEntry() const
 
 int wxTextCtrl::GTKIMFilterKeypress(GdkEventKey* event) const
 {
+#if GTK_CHECK_VERSION(3, 24, 0)
+    GtkEventController *im_filter;
+    im_filter = (GtkEventController*) g_object_get_data (G_OBJECT (m_text), "im-filter");
+    return gtk_event_controller_handle_event (im_filter, (GdkEvent*) event);
+#endif
+
     if (IsSingleLine())
         return wxTextEntry::GTKIMFilterKeypress(event);
 
diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp
index 96b4544..d67cd2c 100644
--- a/src/gtk/window.cpp
+++ b/src/gtk/window.cpp
@@ -1077,19 +1077,7 @@ gtk_window_key_press_callback( GtkWidget *WXUNUSED(widget),
 
 int wxWindowGTK::GTKIMFilterKeypress(GdkEventKey* event) const
 {
-    return m_imContext ? gtk_im_context_filter_keypress(m_imContext, event)
-                       : FALSE;
-}
-
-extern "C" {
-static void
-gtk_wxwindow_commit_cb (GtkIMContext * WXUNUSED(context),
-                        const gchar  *str,
-                        wxWindow     *window)
-{
-    // Ignore the return value here, it doesn't matter for the "commit" signal.
-    window->GTKDoInsertTextFromIM(str);
-}
+    return FALSE;
 }
 
 bool wxWindowGTK::GTKDoInsertTextFromIM(const char* str)
@@ -2065,15 +2053,6 @@ gtk_window_grab_broken( GtkWidget*,
 }
 #endif
 
-//-----------------------------------------------------------------------------
-// "unrealize"
-//-----------------------------------------------------------------------------
-
-static void unrealize(GtkWidget*, wxWindow* win)
-{
-    win->GTKHandleUnrealize();
-}
-
 #if GTK_CHECK_VERSION(3,8,0)
 //-----------------------------------------------------------------------------
 // "layout" from GdkFrameClock
@@ -2107,22 +2086,6 @@ void wxWindowGTK::GTKHandleRealized()
 {
     GdkWindow* const window = GTKGetDrawingWindow();
 
-    if (m_wxwindow)
-    {
-        if (m_imContext == NULL)
-        {
-            // Create input method handler
-            m_imContext = gtk_im_multicontext_new();
-
-            // Cannot handle drawing preedited text yet
-            gtk_im_context_set_use_preedit(m_imContext, false);
-
-            g_signal_connect(m_imContext,
-                "commit", G_CALLBACK(gtk_wxwindow_commit_cb), this);
-        }
-        gtk_im_context_set_client_window(m_imContext, window);
-    }
-
     // Use composited window if background is transparent, if supported.
     if (m_backgroundStyle == wxBG_STYLE_TRANSPARENT)
     {
@@ -2168,15 +2131,6 @@ void wxWindowGTK::GTKHandleRealized()
     GTKUpdateCursor(false, true);
 }
 
-void wxWindowGTK::GTKHandleUnrealize()
-{
-    if (m_wxwindow)
-    {
-        if (m_imContext)
-            gtk_im_context_set_client_window(m_imContext, NULL);
-    }
-}
-
 // ----------------------------------------------------------------------------
 // this wxWindowBase function is implemented here (in platform-specific file)
 // because it is static and so couldn't be made virtual
@@ -2330,7 +2284,6 @@ void wxWindowGTK::Init()
 
     m_clipPaintRegion = false;
 
-    m_imContext = NULL;
     m_imKeyEvent = NULL;
 
     m_dirtyTabOrder = false;
@@ -2518,13 +2471,6 @@ wxWindowGTK::~wxWindowGTK()
     // destroy children before destroying this window itself
     DestroyChildren();
 
-    // delete before the widgets to avoid a crash on solaris
-    if ( m_imContext )
-    {
-        g_object_unref(m_imContext);
-        m_imContext = NULL;
-    }
-
 #ifdef __WXGTK3__
     if (m_styleProvider)
         g_object_unref(m_styleProvider);
@@ -2660,7 +2606,6 @@ void wxWindowGTK::PostCreation()
         g_signal_connect (connect_widget, "realize",
                           G_CALLBACK (gtk_window_realized_callback), this);
     }
-    g_signal_connect(connect_widget, "unrealize", G_CALLBACK(unrealize), this);
 
     if (!IsTopLevel())
     {
@@ -3456,9 +3401,6 @@ bool wxWindowGTK::GTKHandleFocusIn()
                "handling focus_in event for %s(%p, %s)",
                GetClassInfo()->GetClassName(), this, GetLabel());
 
-    if (m_imContext)
-        gtk_im_context_focus_in(m_imContext);
-
     gs_currentFocus = this;
     gs_pendingFocus = NULL;
 
@@ -3519,9 +3461,6 @@ void wxWindowGTK::GTKHandleFocusOutNoDeferring()
                "handling focus_out event for %s(%p, %s)",
                GetClassInfo()->GetClassName(), this, GetLabel());
 
-    if (m_imContext)
-        gtk_im_context_focus_out(m_imContext);
-
     if ( gs_currentFocus != this )
     {
         // Something is terribly wrong, gs_currentFocus is out of sync with the

끝글자 버그에 대해서는 아래 글들을 읽어보시기 바랍니다.
(kldp 강좌에도 써놓았는데, 그걸 더 수정해서 nimf 홈페이지에 다시 올렸습니다.)

끝글자 버그를 고칩시다 1 - ibus
https://nimf-i18n.gitlab.io/docs/lets-fix-the-last-character-bug-1/

끝글자 버그를 고칩시다 2 - wxWidgets
https://nimf-i18n.gitlab.io/docs/lets-fix-the-last-character-bug-2/

끝글자 버그를 고칩시다 3 - scintilla
https://nimf-i18n.gitlab.io/docs/lets-fix-the-last-character-bug-3/

끝글자 버그를 고칩시다 4 - 결론
https://nimf-i18n.gitlab.io/docs/lets-fix-the-last-character-bug-4/

리눅스 사용하시면서 끝글자 버그를 겪지 않으려면,
1. nimf 를 사용하시고
2. "마우스 버튼을 클릭할 때 리셋합니다(Reset when clicking the mouse button)"라는 옵션을 ON 해놓고,
3. wxWidgets 패치를 적용하면 끝글자 버그를 겪지를 않습니다.
이 방법이 현재 유일한 방법으로 알고 있습니다.

그외 일부 홈페이지에서 끝글자 버그가 발생되는 경우가 있는데 아마 자바 스크립트를 잘못 사용하는 것으로 추정되고 그건 홈페이지 제작자가 해결해야 하는 문제입니다.

댓글 첨부 파일: 
첨부파일 크기
Image icon 20190711_195715.jpg132.32 KB
Hodong Kim@Google의 이미지

보시다시피 현 시점에서 끝글자 버그를 해결할 수 있는 유일한 기술 및 소프트웨어를 제공해드리는 사람이 바로 저입니다. 능력자 대우를 못 받는 것은 괜찮은데 욕하거나 욕보이는 일은 없었으면 좋겠습니다. 개발자가 다 떨어져 나가면 불편하더라도 외국인이 만들어 놓은 것에 의존해야겠죠.
어찌 되었건 저는 이러한 척박한 환경에도 불구하고 nimf 를 완성했습니다.
2015년부터 지금까지 하루에 4~5시간씩 자면서 살았습니다. nimf (구 dasom)의 핵심 부분을 만들기 위해 3일 동안 잠을 안 잔 적도 있습니다. 약 10줄 정도 밖에 안 되는데 이것이 nimf 동기화 통신의 핵심부입니다.

void
nimf_result_iteration_until (NimfResult      *result,
                             GMainContext    *main_context,
                             guint16          icid,
                             NimfMessageType  type)
{
  g_debug (G_STRLOC ": %s", G_STRFUNC);
 
  do {
    result->is_dispatched = FALSE;
    g_main_context_iteration (main_context, TRUE);
  } while ((result->is_dispatched == FALSE) ||
           (result->reply && ((result->reply->header->type != type) ||
                              (result->reply->header->icid != icid))));
 
  if (G_UNLIKELY (result->is_dispatched == TRUE && result->reply == NULL))
    g_critical (G_STRLOC ": %s:Can't receive %s", G_STRFUNC,
                nimf_message_get_name_by_type (type));
 
  /* This prevents not checking reply in the following iteration
   *                               send commit (wait reply)
   *                               recv   reset
   *                               send     commit (wait reply)
   *                               recv     commit-reply (is_dispatched: TRUE)
   * `result->is_dispatched = FALSE' prevents breaking loop
   *                               send   reset-reply
   *                               recv commit-reply
   */
  result->is_dispatched = FALSE;
}

그동안 nimf 에 최대한의 노력을 쏟아부은 것처럼, 앞으로는 돈버는 데에 최대한의 노력을 쏟아부을 겁니다. nimf 만들면서 발생한 손실을 충당하기 위해 월화수목금토일 쉬지 않고 일을 해야 하며 wayland 가 보편화될 때를 대비하여 wayland 관련 인터페이스를 개발할 비용을 마련해야 하기 때문입니다.
허울뿐인 오픈소스 정신 그런 거 다 필요없습니다. 오픈소스는 소프트웨어를 개발하는 여러 방법 중 하나입니다.
nimf 프로젝트는 오픈소스라는 걸 하기 위해 만든 프로젝트가 아니라, 고품질 입력기를 만들기 위한 프로젝트이며 이미 목표를 달성했습니다.

남들이 뭐라고 하든간에 여러 기여자분들의 코드, 사용자분들의 의견이 nimf 에 녹아들어 있습니다.
개발자의 장인 정신, 기여자분들의 오픈소스 정신, 사용자분들의 의견의 결정체가 바로 nimf 입니다.
이것은 부정할 수 없는 진실입니다. nimf 는 성공한 프로젝트이고 그 결과물이 증명합니다.

이미 완성되었기 때문에 기여를 못해서 미안하다는 심정을 가지실 필요가 전혀 없습니다.
편안한 마음으로 사용하시기 바랍니다.
감사합니다.

---

nimf 는 자유/오픈소스 소프트웨어입니다.
anthy, glib, gtk, IMdkit, libhangul, m17n, rime, xklavier 등 훌륭한 자유/오픈소스 소프트웨어 덕분에 nimf 를 만들 수 있었습니다.

emptynote의 이미지

사용자의 의견이라고 생각하지 않고 무상 기술 지원 요구로 생각하고 있는거잖아요.

아닙니까?

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
참고 주소 : https://cogniti-works.blogspot.com/2018/05/nimf_26.html

2018년 5월 26일 토요일
nimf 개발, 유지보수, 지술지원 유료화 안내

안녕하세요.
그동안 제가 2015년부터 약 3년간 무상으로 개발, 유지보수, 지술지원을 해왔는데, 더이상 장기적으로 누적 손실을 감당할 수 없어서 개발, 유지보수, 지술지원을 유료화하기로 했습니다.

nimf 는 오픈소스 라이선스로 배포되는 오픈소스 소프트웨어입니다.
사용자분께서 개발, 유지보수, 지술지원을 의뢰하면 유료로 개발 및 수정한 코드가 오픈소스 라이선스로 공개됩니다.
제 이메일 주소는 cogniti@gmail.com 입니다. 이메일로 문의하시면 되겠습니다.
감사합니다.

---------------

참고 주소 : https://cogniti-works.blogspot.com/2018/05/nimf_11.html

2018년 5월 11일 금요일
nimf 프로젝트 이슈 페이지를 닫습니다

안녕하세요.
그동안 저는 참 호구같은 인생을 살아온 것 같습니다. 예전부터 느끼고 있었던 건데 참 글로벌 호구답다는 것입니다. 참 바보같은 인생을 살아온 것이죠.
나이도 점점 먹어가고 요즘은 미래가 심각히 걱정이 됩니다. 그동안 무상으로 기술 지원을 해왔는데 앞으로 nimf 에 대해 무상 기술 지원을 하지 않겠습니다. 이에 따라 이슈 페이지를 닫습니다.

Hodong Kim@Google의 이미지

지금까지 무상으로 기술 지원을 해왔고, 사용자분들의 기능 추가 의견이 반영되어 있습니다.
"이슈"의 뜻이 "문제"입니다. 즉, 이슈 관리는 품질 관리입니다.

이런 게 기술 지원이고
https://gitlab.com/nimf-i18n/nimf/issues/270

이런 게 의견 반영입니다.
https://gitlab.com/nimf-i18n/nimf/issues?scope=all&utf8=%E2%9C%93&state=closed&label_name[]=proposal

2015년부터 이렇게 해왔습니다. 이슈를 보시면 알 수 있습니다.
유료 기술 지원을 한 적이 없습니다. 모두 무상으로 기술 지원을 해왔고,
또한 무상으로 배포하고 있고, 무상으로 패키지를 제공하고 있습니다.

그리고 저도 우분투, 레드햇처럼 유상으로 기술 지원하고 유상으로 개발하고 싶습니다.
이미 여러 회사들이 그렇게 하고 있습니다.
제가 만들었고 저작권을 제가 보유하고 있는데 그게 무슨 문제라도 있나요?
제가 nimf 를 판매하는 것도 아니고,
제가 nimf 관련 서비스를 판매하는 것도 아닙니다.
그러면 시간이 있어야 개발을 하는데 회사를 쉬어야 개발/유지보수가 가능한데, 그게 언제까지 지속이 가능하리라 보십니까?

Hodong Kim@Google의 이미지

그렇게 개발자가 한두명 씩 떨어져 나가면 한글 관련 버그, 개능 개선은 누가 합니까?
님께서 해주시는게 아니잖아요. 그런 일을 할 수 있는 사람이 소수인데다 실제로 그런 일을 하는 사람이 극소수인데, 그런 사람들을 원망하고 욕하고 비난하고 쓰레기라하여 사람들이 하나 둘씩 떨어져 나가면 아무도 손을 못 댑니다. 타 어플 가지고도 여기저기 욕처먹게 되는 지옥문이 열리거든요. 제가 당하는 수모를 사람들이 죽 지켜봐왔습니다. 이러한 분위기라면 미래에 누가 이런 걸 하려고 할까요? 그 사람들은 고급 인력입니다. 욕 처먹고, 쓰레기 취급 당하면서 할 사람이 없죠. 어디 회사 들어가서 일하면 돈도 받고, 회사에서 밥도 주고, 우리 회사에 와서 일해줘서 고맙다는 얘기를 듣는 사람들인데.

Hodong Kim@Google의 이미지

님께서 원하시는 걸 해드리는 사람이 저 밖에 없고,
현재 시점에서는 제가 보유한 기술 및 소프트웨어가 유일한 해결책인데,
게다가 무상으로 제공하고 있고, 비용을 받은 것도 아닌데,
고맙다는 생각이 들지 않나요?
현 시점에서 제가 제공하고 있는 해결책이 유일한 해결책입니다.

alstjr7375의 이미지

아직까지 님프가 젤 좋더라고요.
잘 쓰고 있습니다 ㅎ

Hodong Kim@Google의 이미지

님프 애용에 감사드립니다.
제가 일부 사람들과 싸우는게 어제 오늘 일도 아니고
편안한 마음으로 사용하시면 되겠습니다.
새로운 대응 전략을 마련했습니다.
감사합니다.

Hodong Kim@Google의 이미지

저는 더 이상 장기 누적 손실을 감당할 수가 없습니다.
미래에 발생하는 한글 문제는 나머지 사람들이 알아서 하세요. 끝글자 버그 관련하여 해결할 수 있는 방법을 강좌를 통하여 알려 드렸고, 관련 기술 및 소프트웨어를 오픈소스로 제공하고 있습니다.
"오픈소스로 제공"하고 있다는 말이 무슨 의미냐면 소스코드가 공개되어 있어서 그 소스코드를 활용할 수 있다는 의미입니다. 그런데 이게 조건부입니다. 개발자가 어떠한 책임도 없습니다. 그러니까 저한테 책임을 묻고 욕하면 오픈소스 라이선스 계약이 해지가 되는거죠. 그게 오픈소스입니다.

nimf 에 더 추가하고 싶은 기능으로 화상 예측 입력, 음성 입력, 모션 입력 등이 있는데, 이것은 특허 검색/등록/유지 비용 문제 때문에 오픈소스로 제공할 수 없습니다.

그런데 오픈소스 모델로 할 수 있는 부분은 모두 다 했고, nimf 개발 비용을 본인 스스로 마련을 하였고, nimf 가 이미 완성이 되었기 때문에, "허울뿐인 오픈소스 정신" 이런거 내세우지 말고,

지금 nimf 라는 걸 알게 되신 분들은 기여를 못하여 미안하다는 마음을 가지지 말고,
마음 편하게 사용하시기 바랍니다.
nimf 프로젝트는 오픈소스라는 걸 하기 위해 만든 프로젝트가 아닙니다.
오픈소스 프레임에 갖혀서 생각하지 말고 소프트웨어 그 자체를 보시라는 의미입니다.
오픈소스를 떠나서 마음 편하게 사용하시라는 의미입니다.
감사합니다.

Hodong Kim@Google의 이미지

요즘 개발/유지보수 비용, 프로젝트 지속성에 대해서 여러 고민을 하고 있는데, 제 생각은 이렇습니다.

끝글자 버그를 제가 고칠 필요는 없지만, 아마 사람들은 이렇게 생각할거에요.

입력기에 대해 생판 모르는 사람이 엄청난 시간을 할애해서 버그 리포트 제출하느니,
좀 아는 사람이 응응 어플 프로젝트 측에 대신 버그 보고해주는게 수월하지 않겠느냐.
nimf 버그는 아니지만, 응용 어플 개발자가 입력기에 대해 잘 모르니
입력기 개발자가 응용 어플 측에 얘기해서 버그를 같이 고치는게 좋지 않겠느냐.

그런 바람 또는 원망이 있을 거에요. 그걸 제가 모르지 않아요.
그런데 제가 사람이라서 밥을 먹어야 하고 아프면 병원을 가야 살 수 있어요.
다들 마찬가지겠지만, 대부분의 시간이 돈버는데 소비됩니다.
그 돈의 대부분은 현재 또는 노후 생명 유지에 소비됩니다.

그러면 nimf 를 개발/유지보수하려면 시간이 필요한데, 그 시간을 마련하려면 잠자는 시간을 줄이거나 회사를 쉬어야 합니다. 당연한 얘기를 이렇게 설명하는 것도 참...ㅎㅎㅎ

그래서 사용자분들의 요구 수준에 맞추려면 유료화를 생각할 수 밖에 없습니다.
무료 버전은 그대로 제공하면서 유료 버전 또는 유료 서비스를 판매하는 등 서로 윈윈하는 방법이 있을 거 같은데 한국에서 그러한 방법을 적용하면 악효과가 발생할 것이라 판단하고 있습니다.

제가 타 어플 소스코드를 보면서 알게된 사실인데,

poedit 는 무료 오픈소스 버전 / 유료 버전이 있고,

https://poedit.net/pro

wxwidgets 은 유료 지원이 있고,

http://www.wxwidgets.org/support/commercial/

RedHat 은 RHEL 이 있고, 이슈(기술지원) 유료화입니다.
이슈 접근이 안 되더군요.

https://access.redhat.com/solutions/2695711

우분투는 유료 지원이 있습니다.

https://ubuntu.com/pricing

아마 님프도 이런 식으로 가야하지 않을까... 그렇게 해야 사람들이 저를 원망하지 않고 사용자분들의 수준에 맞출 수 있지 않을까 이런 생각이 드는데 어떻게 생각하십니까?

emptynote님 덕분에 nimf 홍보도 되고 개발비를 마련할 수 있는 토대를 마련할 수도 있겠네요.
감사 감사~~

emptynote의 이미지

이슈는 다 함께 이룬 성과이지 당신의 개인 소유물이 아니죠.

그런데도 당신은 유료화에 눈 멀어 일방적으로 닫았죠.

이슈를 개인 사비로 운영한다면 이해라도 하지요.

github or gitlab 은 걍 무료이기에 방치해도 좋은데 닫았죠.

이슈라는 소통 창구를 일방적으로 닫아 놓구선 "사용자들의 의견" 어쩌구 저쩌구 쉴드 치지 마세요.

이상 끝.

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
참고 주소 : https://cogniti-works.blogspot.com/2018/05/nimf_26.html

2018년 5월 26일 토요일
nimf 개발, 유지보수, 지술지원 유료화 안내

안녕하세요.
그동안 제가 2015년부터 약 3년간 무상으로 개발, 유지보수, 지술지원을 해왔는데, 더이상 장기적으로 누적 손실을 감당할 수 없어서 개발, 유지보수, 지술지원을 유료화하기로 했습니다.

nimf 는 오픈소스 라이선스로 배포되는 오픈소스 소프트웨어입니다.
사용자분께서 개발, 유지보수, 지술지원을 의뢰하면 유료로 개발 및 수정한 코드가 오픈소스 라이선스로 공개됩니다.
제 이메일 주소는 cogniti@gmail.com 입니다. 이메일로 문의하시면 되겠습니다.
감사합니다.

---------------

참고 주소 : https://cogniti-works.blogspot.com/2018/05/nimf_11.html

2018년 5월 11일 금요일
nimf 프로젝트 이슈 페이지를 닫습니다

안녕하세요.
그동안 저는 참 호구같은 인생을 살아온 것 같습니다. 예전부터 느끼고 있었던 건데 참 글로벌 호구답다는 것입니다. 참 바보같은 인생을 살아온 것이죠.
나이도 점점 먹어가고 요즘은 미래가 심각히 걱정이 됩니다. 그동안 무상으로 기술 지원을 해왔는데 앞으로 nimf 에 대해 무상 기술 지원을 하지 않겠습니다. 이에 따라 이슈 페이지를 닫습니다.

세벌의 이미지

emptynote 님은 뭐하는 사람인가요?
지난 얘기 끌고 와서 남 비난만 하는 사람인가요 ?
발전적 얘기 좀 했으면 좋겠네요 :-\

Hodong Kim@Google의 이미지

이슈를 삭제한 것도 아니고, 읽을 수 있게 해놓았는데 뭐가 문제에요? 말 그대로 방치를 했는데 뭐가 문제냐고요? 레드햇 같은 경우는 이슈 접근이 안 되요. MS도 마찬가지고요.

nimf 프로젝트는 계속 됩니다
https://cogniti-works.blogspot.com/2018/06/nimf.html?m=1

Warning: 2018년 5월 부터 Nimf 프로젝트가 공식적으로 완전히 중단 되었습니다. 해당 GitHub 저장소는 아카이브 처리 되었습니다.

https://cogniti-works.blogspot.com/2018/06/nimf_13.html?m=1
2018년 6월 13일 수요일
nimf 저장소 삭제 예정: 소스코드 및 이슈를 백업 받으시기 바랍니다.
지금 현재는 소스코드만 제공하고 싶은데,
github.com/cogniti/nimf 에서 이슈 페이지, Pull requests 메뉴를 없앨 수 있는 방법이 없습니다.
nimf 관련한 스트레스를 조금이라도 받고 싶지 않습니다.
issue, pull request 가 올라오는게 싫어서 프로젝트를 read-only 로 해 놓았더니,
"nimf 프로젝트가 공식적으로 완전히 중단되었다"고 말하는 사람이 있습니다.
이러한 짜증나는 일들을 더 이상 겪고 싶지 않습니다.
issue 페이지만 닫으면 과거 issue 에 접근할 수 없게 됩니다. 그렇게 되면 제가 욕먹을게 뻔하니,
따라서 nimf 저장소를 삭제할 예정이오니 소스코드 및 이슈를 백업 받으시기 바랍니다.
저 또한 백업 방법을 알아보고 소스코드 및 이슈 백업이 완료되는데로 nimf 저장소를 삭제하겠습니다.
그렇게 되면 github.com/cogniti/nimf 주소에 접근할 수 없게 됩니다.
nimf 프로젝트는 계속됩니다. 프로젝트 중단을 의미하는 것이 아닙니다.

---

몇 년 동안 잠을 4~5시간 밖에 못자는데...
어제도 출근, 오늘도 출근.. 연속 근무 8일째 피곤해 죽겠어요.

만약 emptynote님께 프로젝트 소유 권한 및 소스코드 저작권, 판권 등 모든 권리를 무상으로 양도하면 님께서 nimf 를 계속 개발/유지보수 하실래요? 원하시면 만나서 양도 계약서 써드리죠. 어떻게 하실래요?
아휴.. 맨날 잠도 못자고 월화수목금토일 매일 일하는 것도 죽겠는데.

Hodong Kim@Google의 이미지

저번에도 말씀드렸듯이, 이슈(정확히는 지술지원 질문/답변)는 공공재가 아니에요. 제가 개인 소유물이라 주장한바 없고, 읽지 못하도록 삭제한 것도 아니고, 백업 공지도 했고, 옛날 거는 dasom-im 쪽 가시면 있고,

https://github.com/dasom-im/dasom/issues?q=is%3Aissue+is%3Aclosed

그리고, github.com/cogniti/nimf 쪽 이슈는

https://gitlab.com/nimf-i18n/nimf/issues/114 에 있고,

또한 https://gitlab.com/nimf-i18n/nimf/issues 에 복구해 놓았습니다.

님께서 옛날에 github 에 쓰신 것도 gitlab 에 있습니다.

https://gitlab.com/nimf-i18n/nimf/issues/186

이미 오래 전에 복구해놓았어요.

허위 주장 좀 안 하셨으면 좋겠네요.
다음 번에 뭘 들고 나오실 지 궁금하네요 ㅎㅎㅎ


이슈는 다 함께 이룬 성과이지 당신의 개인 소유물이 아니죠.

내용에 오해의 소지가 있어서 수정했습니다.
제가 작성한 글은 제 소유이고, 다른 분이 작성한 것은 다른 분 소유입니다. (<== 이거는 주장이 아니라 사실(팩트))
전체 이슈 글이 저의 개인 소유라 주장한 적이 없습니다.

---

자꾸 불편한 글 써서 죄송하고, 앞으로 불편한 글을 쓰지 않고 미래 지향적인 글을 작성하도록 하겠습니다. 수정하면 글이 상단으로 올라가는데... 죄송합니다. ㅠㅠ

emptynote의 이미지

만약에 제가 떠들지 않았다면 이슈 닫은 채로 있었겠죠.

아니면 또 어느 순간 또 자기 기분 내키는데로 닫았다 열였다 했겠죠.

싫은 소리를 하는 사람이 있어 의식하니 냅두는거 아닙니까?

그래서 저는 끊임 없이 이야기할겁니다.

님프 이슈에 gitlab 회원 가입만 하면 글을 쓸 수 있는데

지켜보고 있으니 또 닫아 보시요. 히스토리 추가할테니....

Hodong Kim@Google의 이미지

아니라고요.. 오래전이라구요...
이슈 게시판 운영하는게 개발에 방해가 되면 닫는다구요.
2016년에도 닫은 적 있거든요. 개인 이메일, 블로그 댓글 너무 많이 달려서..
포기하고 한달 만에 다시 열은거에요. OK?
사람들이 왜 닫았냐고 따지는게 아니라, 이슈 게시판을 닫아도 이메일이며 블로그며 문의가 많이 오기 때문에 닫는 의미가 없어서 다시 열었다고요. 2016년에요.
지금은 완성도가 매우 높아 문의가 거의 없어요. ㅇㅋ?
버그 문의도 거의 없네요.
농담이 아니라 내과라도 함 가셔서 진찰을 함 받아보세요.
개인 블로그에도 다 나오는 자료인데.. 왜 그러시는지요?
무슨 문제라도 있나요?
개발자 본인이 질문 받기 싫고 답변도 드리기 싫어서 읽기 전용으로 해놓는게 무슨 문제라도 있나요?
그런게 싫으면 다른 사람들이 답변을 드리면 되잖아요? 안 그래요?
왜 저 혼자만 답변을 해드려야 하냐고요?

자꾸 그러시면 이슈 게시판을 완전히 폐쇄하겠습니다.
폐쇄하고 백업 파일 kldp 에 게시하면 되나요?
제가 백업 파일도 보존/보관해야 하는 의무도 없어든요.
농담 아닙니다. 이슈 게시판 없는 오픈소스 프로젝트 많습니다.
이메일로만 문의 받는 경우도 많아요.
그러니까 쓸데없는 소리하지 말라고요.
emptynote 님께서는 저에게 2015년부터 지금까지 책임을 묻고 계신건데..
남 하는 일에 훼방놓지 말고 병원이나 빨리 가봐요.

https://cogniti-works.blogspot.com/2016/07/nimf_30.html
2016년 7월 30일 토요일
님프 nimf 프로젝트 앞으로의 계획
안녕하세요.
프로젝트에 도움을 주시는 분들과 nimf 를 애용하시는 분들께 감사의 말씀을 드립니다.

오늘 예정대로 Nimf PPA 를 삭제하였습니다.
데비안, 우분투 계열에서는 nimf 를 컴파일하여 사용하시기 바랍니다.
소스를 다운받아서 dpkg-buildpackage -b 라는 명령을 주면 .deb 패키지가 만들어집니다.

제가 배포판 패키지를 제공하지 않으므로 패키지 제공 요청이 각종 배포판 측으로 흘러 갈 것이라 예상하고 있습니다. 배포판에서 패키지를 제공하게 되면 issue 일부가 배포판 측에 보고됩니다. 특히 배포판 이슈.

배포판 패키지에 대해서는 여러 커뮤니티나 배포판 프로젝트에서 다루어지길 바랍니다.
제가 아무 생각없이 Nimf PPA 를 삭제한 것이 아니라 많은 고민 끝에 삭제한 것이니 양해 부탁드립니다.

그리고 이슈 게시판을 다시 열었습니다.
이슈 게시판을 폐쇄하니 이슈가 블로그로 오고 블로그 댓글을 폐쇄하니 이메일로 문의가 오게 되어 이슈 게시판을 다시 열었습니다. 대화는 상호 존중이 기반되어야 합니다.

nimf 는 매우 정교하게 설계된 입력기 프레임워크입니다.
nimf 는 성숙된 프로젝트이기 때문에 현재 특별히 개발할 부분이 없습니다.
nimf 를 장기간 10년~20년 유지 보수하면서 다듬어 가게 됩니다.

Hodong Kim@Google의 이미지

이슈 게시판 운영하는게 제 의무가 아니에요. 뭔가 대단히 착각하고 계신 겁니다.
문의 받고 답변 드리는 사람은 2015년부터 지금까지 저 혼자 밖에 없거든요.
(아... 과거에 한두분 계셨었습니다. 님 그때 차단한거는 제가 한게 아니에요.)
저는 아쉬울게 없는 사람이거든요. 고마운 줄 아시라고요.
앞으로 미래에도 계속 5년 10년 그렇게 저를 훼방놓을 것 같으면,
이슈 게시판을 영구히 운영하지 않겠습니다.
백업을 미리 미리 받으세요.

그러니까 님께서 원하시는 건 저를 끊임없이 5년 10년 동안 계속 괴롭혀서 프로젝트 망가뜨리는게 목적인 사람이에요. 제가 그걸 2015년에 미리 간파를 하였고, 최근에도 하두 짜증나서 손실을 무릅쓰고 빨리 완성시킨거에요. 이미 완성되었는데 ㅎㅎㅎ

그리고 또 하나, 자기가 뭔가를 해서 nimf 에 뭔가 도움이 되었다건가 그런 착각은 버리세요.
님 때문에 계속 방해가 되고 시간이 빼앗기고 감정이 상하는 거거든요.
뭔가 남들에게 인정 받고 싶어서 그러시는거 같은데, 님께서는 nimf 에 방해가 되면 되었지 도움이 안 되었어요. 뭐 하나 해드리면 땜빵이라 불만 불평이고, 타 어플 고쳐내라고 생떼쓰고, 이것저것 다 해드려도 어떻게하면 개발자를 망가뜨릴 수 있을까... 궁리를 하는 사람이에요.
전 세계에서 10년 동안 해결하지 못한 문제를 제가 해결했어요.
이 정도면 "고급 인력" 정도가 아니라 "특급 인력"입니다.

알고 보니 특급 인력
https://hodong.gitlab.io/blog/2019/07/15/ignorance-is-bliss/

모든 걸 무상으로 제공하고 있는 특급 인력에 대한 대우가 고작 이건가요?

Hodong Kim@Google의 이미지

emptynote님 증세가 점점 심해지는거 같으니 병원 가셔서 꼭 진찰을 받아보세요.
농담 아닙니다.

2016년에 이슈 게시판 닫은 사유는 기분 나뻐서가 아니라, 아시다시피 개발할 시간 자체가 없는데 답변 드리다보면 개발이 그만큼 지연되기 때문입니다. 그래서 닫았습니다.
2015년에 님께서 하두 짜증나게 굻어서 스트레스 받아 개발 지연되어 nimf 로 이름을 변경한 거죠. 님의 눈을 피해서 개발을 한거에요. 때마침 우분투 포럼이 고장나서 접속 안 되니 님께서 절 괴롭히지 못하는 상황이 되었죠. 그덕분에 nimf 를 개발할 수 있었던 겁니다.

다들 봐두세요. 저런 사람 프로젝트 초기에 걸리면 프로젝트 망합니다.
다른 사람들 같으면 스트레스 받아서 방치를 했을텐데, 저는 더욱 빠르게 개발을 했습니다.
"번아웃"이라고 하죠? 전 그런 거 없습니다. 그런게 무서웠으면 시작조차 하지 않았죠.
님 예전에 저를 "유리멘탈"이라 그랬죠? 지금은 어떻게 느껴지나요?
우리 만나서 얘기합시다. 서울로 가면 되나요? 님 집에서 만나서 얘기합시다.

Hodong Kim@Google의 이미지

그리고 제가 볼 때에는 님은 개발자가 아니에요.
개발자라는 사람이 어떻게 컴퓨터에 대한 지식이 없을 수가 있죠?
오픈소스 라이선스 고지 의무 이것도 모르시는 거 같고,..
이해가 안 된단 말이죠. 동기 통신, 비동기 통신, 멀티 플렉싱 이런 걸 어떻게 모를 수가 있나요.
그리고 님께서 제게 책임을 묻는 행위는 남들이 보면 nimf 에 대한 기여를 많이 하신 줄 오해하기 십상이죠. 님은 nimf 에 기여한 바 없습니다.
님께서 그렇게 따지시려면 nimf 에 소스코드를 30% 정도는 기여를 해야 그런 말을 할 수 있는거에요.
님은 기여자 흉내를 내고 계시는 건데.. 그러지 말아요.
그리고 nimf 가 공공재 성격을 가지려면 기여자분 수가 더 많아야 공공재 성격을 띨 수 있어요.
GNOME, Firefox 는 기여자, 참여자 수가 셀 수 없을 정도로 많거든요.
그래서 GNOME, Firefox 는 공공재는 아니지만 공공재 성격을 띄기도 하거든요.
nimf 는 아직까지 개인 프로젝트 성격이 강한데 기여자도 아닌 사람이 이래라 저래라 하는건 매우 결례입니다. 최소한의 예의는 좀 지킵시다.
emptynote 님은 고마움도 모르고 부끄럼도 모르고 염치도 없는 분이라 이제 앞으로는 상대해드리지 않을 거에요. emptynote님의 허위 주장에 대해서는 왜 허위 주장인지는 제 블로그에 많은 글이 있고.. 삭제를 안 해서 다행이군요. ㅎㅎㅎ 보통 블로그 옮기면 기존 거는 제가 삭제를 하는데. ㅎㅎ
emptynote님은 이제 포기합니다. 말 상대 안 해드려요. 시간 없어요.
그리고 nimf 이슈 게시판은 그대로 유지합니다. 게시판 읽기 전용으로 설정하면 이메일로 문의올거 뻔한데 오히려 서로 불편해져요. nimf가 이미 개발 완료되어 개발 지연이 될 일이 없는데, 제가 미치지 않는 이상 그런 결정을 내리진 않죠. ㅎㅎㅎ
님께서 소통을 강조하시는데, 누가 님을 저처럼 이렇게 상대해드리고 원하는걸 해드리나요?
저만큼 이렇게 소통을 중요시하는 사람이 있나요?
이슈 글들을 몇 개라도 함 읽어보세요.
그러니까 님께서 허위 주장을 아무리 사람들에게 설파해도 사람들이 믿지 않는다는 거에요.
다른 분들 의견처럼 이제부터는 emptynote님을 무시하겠습니다.

제가 계속 이렇게 싸우면 사람들 마음이 불편해지실텐데...
앞으로 emptynote님을 무시하겠고 그런 사람들 다음에 또 나타날텐데 그냥 쿨하게 무시하겠습니다.
지금까지 누구든 평등하게 대해서 소통을 열심히 했는데 앞으로는 그런 사람들하고 소통을 하지 않겠다고요. "고급인력"도 아닌 "특급인력"을 어떻게 이렇게 대할 수가 있는지 참.

알고 보니 특급 인력
https://hodong.gitlab.io/blog/2019/07/15/ignorance-is-bliss/

회사 나가면 돈도 주고 밥도 주고 ‘우리 회사에서 일 해줘서 고맙다’ 이런 얘기 듣는데… 수년간 넷상에서 욕 많이 처먹어와서 이 몸 “특급 인력”은 도로 은둔 세계로 돌아갑니다. 돈 많이 벌어서 걱정 없이 잠 푹 자는게 소원입니다. 님들 빠잉~~

Hodong Kim@Google의 이미지

이거는 좀 설명이 필요할 것 같네요.

현재 이슈 게시판을 닫지 않는 거는 님께서 문제 삼아서 닫지 않는게 아니라,
현재에는 닫을 이유가 없기 때문이에요.
님께서 문제 삼기 휠씬 이전에 아마 2018년 6월 경? gitlab 으로 옮겨온 때부터 다시 이슈를 받는 거고, 왜 gitlab 을 선택했냐면 github 보다 정교하게 권한 설정을 할 수 있기 때문입니다.

아무것도 안 하고 쉬고 싶은데 답변을 해드리지 않으면 그게 커뮤니티 게시판으로 흘러가고 개발자를 음해하는 식으로 글이 흘러가요. 그래서 휴식을 취하고자 읽기 전용으로 해놓은 거고, 그렇게 하면 이메일로 문의가 올 거 뻔하니 유료 기술 문의하라고 한거죠. 그렇게 해야만 마음 편히 잘 수 있겠다고 판단했습니다.

개발자를 도와서 뭘 해보는 식으로 이야기가 진행이 되는 것이 아니라, 어떻게 하면 개발자를 타박해서 원하는 것을 얻어낼까.. 이런 식으로 진행이 되는거죠.
개발자가 스트레스를 받든 말든, 프로젝트 지속 가능성에 대해 일부 사람들은 이런 거 관심이 없습니다.
그 일부 사람들이 커뮤니티에 큰 소리로 외치는 거죠. 그렇게 해서 여론을 형성을 시도해서 개발자를 압박하고 어떻게든 개발자를 움직여서 개발을 시켜서 원하는 걸 얻으려 하죠. "오픈소스"란 탈을 쓰고 말이죠. 있지도 않은 "도덕적 책임"을 만들어 냅니다.

무시하기가 쉽지 않는게 허위 주장, 허위 사실 유포, 음해, 모함.. 이런 걸 한답니다.
10여년간 전 세계에서 아무도 해주지 않으니 이해는 합니다만,
필요로 하는 사람이 자신의 노동력/시간/돈/소스코드를 지불/제공해야 하는데 본인은 그걸 하기 싫고 남들이 해주길 바라는 거죠. 그러면서 "오픈소스"를 주창하죠.

이에 대한 대비책으로 유료화가 있습니다. 무료로 제공하되 유료 옵션을 두는 방식이 있습니다.

예를 들면, https://poedit.net/pro

nimf 도 이렇게 할 수는 있는데 수익이 발생할 거라 생각하지 않습니다.
emptynote 님이 유료화에 대해 문제 삼아서 제가 그걸 안 하는게 아니라,
입력기라는게 수익을 낼 수 없는 물건이라고 생각하기 때문에,
즉, 매출은 한달에 5만원인데, 사업자 유지비가 한달에 50만원 나간다고 생각하기 때문에 안 하는 것입니다. emptynote님께서 nimf 의 유료화를 막아서 여러 사용자분들이 계속 무료로 사용하는데에 큰 역할을 했다고 착각하실까봐서 말씀드리는 겁니다.

다른 분들도 프로젝트 하실 때 참고하시기 바랍니다.
자기가 하는 프로젝트가 유일한 해법이고 대체제가 없는 상황에서 방치를 하면, 다른 사람이 포크 떠서 계속 진행합니다. 그런데 nimf 의 경우는 개발자를 타박해서 어떻게든 개발자를 움직이는 방식으로 진행이 된거죠.

이제 정말 앞으로 잠 푹 자면서 푹 쉴겁니다. 소소한 업데이트는 계속 있습니다.
4~5년간 4~5시간 자면서 살았습니다. 정말 쉬고 싶습니다.
제가 전직 개발자도 아니고 현직 개발자도 아니라서 제 가치를 몰랐는데,
알고보니 제가 "특급 개발자"입니다. 그에 걸맞는 대우까지는 바라지 않는데,
욕하지 말고 원망 좀 하시 마십시오.

alstjr7375의 이미지

유료지원이 나쁜거 아닌데요..
소스 공개한것 만으로도 충분하죠.

프로그램 개발하는 시간이 다 돈이에요.
글을 쭉 읽어보니 기여도 거의 없었다고 하고요.