2024년 4월 28일 일요일

draft__texi2html 기본 설정 파일 위치 .... Config 은 기본 설정 파일 이름인가/아니면 폴더의 이름인가

 --

-

GNU 'ed' 매뉴얼 (html)의 상황이 amazon회사의 kindle 에 넣기에 그냥은 불가능하다는 사실을 알게 되었고, 여러가지 삽질을 하다가 결국 실패했는데, w3c의 html 점검 기능을 써서 검사를 해 봤을 때에 

 _(    https://validator.w3.org/    )_  html 문서 자체에 심각한 이상이 있다는 것을 그제서야 알게 되었고, ( 일반적인 web browser 로는 읽기는 잘 되었으니 이런 문제가 있다는 것을 모르고 있었다. ) 


처음에는 ( 그러니까, html 검사를 하기 전에는 )  ed_manual.html 도움말 파일이 일반적인  html이 아니라, email의 multi-part 첨부파일의 형식인 꼼수였다는 것은 알고 있었으나, 대충 간단하게 손을 보면 고칠 수 있을 줄 예상했으나 틀려먹었고, 내가 계속해서 수정했던 html 마저도 이상한 문자코드가 들어 있어서 완전히 (치명적 오류)를 발생하는 것과 여러 수정 version 들 마저도 (치명적 오류)까지는 아니어도 각종 구형 문서의 경고들이 난무하는 것을 보고, 처음부터 source  texi 파일 단계에서부터 재변환을 시도하기로 방향이 바뀌었고, ...

 texi2html 을 선택해서 정보를 알아봤는데, 그 과정에서 '기본 설정 파일 위치'인 곳에 결국은 Config  내용에 설정을 저장할 수 있다는 애매모호한 도움말 언급을 보게 되었고, 이 Config 이 디렉토리를 뜻하는지, ..디렉토리 내부에 기본 설정이 들어간 script 파일을 뜻하는지 도움말만 읽고서는 헷갈려서, 소스코드 거의 전체를 뒤져보게 되었다. 찾아 헤매다가 .... 결국 

texi2html.pl  메인 소스코드 내용 중에서 Config 를 검색해서,   204번째 줄에서 아래의 내용이 나오는 것을 확인했고, 설정 perl source file 이름이라는 것을 다시 _( $conf_file_name )_을 찾아보고 확신하게 되었다.

my $conf_file_name = 'Config' ;

이것은 아래에 언급한  _(  texi2html.pl  )_ 파일의  3684부터 3688 번째 줄에 아래의 내용을 보고, 이것이 perl 소스 파일이라는 것도 알게 되었다.

foreach my $file (locate_init_file($conf_file_name, 1))

 

내가 이것을 조금 고쳐서 지금까지 한 것과 같은 의문을 갖고 찾아보기를 하느라 헤매지 않으려면, 이 소스 코드에서 

my $conf_file_name = 'ConfigFile' ;

이라고, 뒤에 ...File 이라는 것을 덧붙이도록 고치고 싶다. 물론 내가 배포를 할 것이 아니기 때문에 그냥 알아서 적응할 것이다.

시간은 이렇게 지나가고 있다.

-

-

 

rust__항간에는 근래에 rust가 안전한 컴파일(compile) 언어로 주목받고 있다 그래서

 웬만하면 rust 정보가 있으면 찾아보게 되었다.

그런데, youtube 에 easyrust 를 만든 이는 서울에서 개발자로 일하고 있으며, 한국어를 무척 잘 하고, 물론 그의 모국어인 영어도 당연히 잘 하는 사람(아래의 영어 강의 사이트에는 Who am I 항목에 자신이 Canada인이라고 함)이 만든 것임을 알게 되었다. ( 놀랍다! )

아래의 유튜브 주소는 한 줄짜리이다. (blog editor에서는 두줄로 표시되고 있어서 한 줄이라고 강조한다.)

아래 _(

https://www.youtube.com/watch?v=W9DO6m8JSSs&list=PLfllocyHVgsSJf1zO6k6o3SX2mbZjAqYE

)_아래 끝. 다시 언급하지만, 위의 주소는 한줄 짜리이다.

188개 정도의 약 10-20여 분짜리 강의 재생목록이다. 

글로 적은 영어로 된 강의도 만들어 놓았다고 하며, rust를 컴퓨터에 설치하지 않아도 실행해 볼 수 있는 실습용 인터넷 site를 구축해 놓았다고도 한다.

글로 적은 rust 영어 강의

https://github.com/Dhghomon/easy_rust/

여기에는 간체 중국어 (현재 중국 대륙 본토 언어/글자)와 인도네시아 언어로 된 곳도 만들어져 있다는 갱신 기록(update)이 있다. (각 언어 사용자 도움으로 ... )


그래서, .... 내 환경이 OpenSuse 에도 설치가 되는지를 알아봤다.( Leap LTS version )

한국 네이버 카페인 linuxmasternet (리눅스마스터넷)의 글 하나에는 rocky linux 8 에 설치한 방법을 알려주고 있었다.

https://cafe.naver.com/linuxmasternet/32157

 

핸드폰으로 볼 때의 주소는 아래와 같다.

https://m.cafe.naver.com/ca-fe/web/cafes/29437110/articles/32157?tc=article_bottom_article_list

여기에서는 curl 이라는 명령어 한 줄로 설치하는 것이었다. 

이것은 rust 언어의 공식 사이트로 보이는 ..

https://www.rust-lang.org/tools/install

..에서 소개한 방법이다. 하지만, 운영체제 배포본에서 배포하는 (배포판마다 다른 rpm/deb/pkg 등등의 )패키지를 설치하는 것에 익숙한 나는, 운영체제 배포판에서 제공하는 package를 찾아봤다.

내 환경에서 보통 패키지를 관리하는 Yast Software 를 실행한 후에 보니, 

rust

rustup

등등이 나왔다.

rust 에 있는 설명은 아래와 같았다.

rust - A systems programming language

Rust is a systems programming language focused on three goals: safety, speed, and concurrency.

(_ ! _) This is the Rust toolchain intended for build pipelines. If you want to install Rust for a development environment, you should install 'rustup' instead. 

--

위의 설명에서 toolchain for build pipelines 라는 말이 무엇인지 이해하지 못했지만, 일단, 내가 쓰기에는 이 rust 패키지가 아니라 rustup 패키지를 설치하라는 설명이라고 이해했다.

rustup 설명은 아래와 같다.

--
rustup - A tool for managing user Rust toolchains

A tool to manager user Rust toolchains. This is generally used by developers managing multiple parallel toolchains in their environment.


rustup 패키지를 설치했다.

설치는 너무 간단하게 끝났다. 허무할 정도이고, 이게 제대로 된 설치인지 의심스러울 정도이다. 

설치된 목록은 아래의 20개 파일이다.

--
rustup - A tool for managing user Rust toolchains

/usr/bin/cargo
/usr/bin/cargo-clippy
/usr/bin/cargo-fmt
/usr/bin/cargo-miri
/usr/bin/clippy-driver
/usr/bin/rls
/usr/bin/rust-analyzer
/usr/bin/rust-gdb
/usr/bin/rust-gdbgui
/usr/bin/rust-lldb
/usr/bin/rustc
/usr/bin/rustdoc
/usr/bin/rustfmt
/usr/bin/rustup
/usr/share/bash-completion/completions/cargo
/usr/share/bash-completion/completions/rustup
/usr/share/zsh
/usr/share/zsh/site-functions
/usr/share/zsh/site-functions/_cargo
/usr/share/zsh/site-functions/_rustup

총 20개 파일

--

이것으로 무엇을 할 수 있을지 모르겠다. 도움말도 설치되지 않은 것으로 보인다. 기껏해야 rustdoc 이라는 명령이 아마도 도움말을 볼 수 있게 해 주는 것일지도 모르겠다는 느낌을 가지고 있다. 그리고, zsh 는 왜 설치되었는지? 설치위치가 .../bin/이 아니고, .../share/라는 점에서, 명령어는 아니고 도움용 폴더인 듯한데, 아직 잘 모르겠다.


-

-


2024년 2월 14일 수요일

m4 (GNU MACRO PROCESSOR) -정보

-

 최신 GNU m4 manual 읽기 힘든 부분... ( "여기까지" 라고 표시된 목록.)

https://www.gnu.org/software/m4/manual/m4.html

-

  1. define(`twoline', `1         /// --synclines 옵션에 대한 예제 code. 예제 전체가 길다. 그런데 완벽하게 당황스럽다. 어떻게 작동한다는 것인지 이해가 안된다.
  2. underquoted
  3. See Trace, if you do not understand this.
  4. define(`foo', a'a)
  5. defn([l])defn([r])
  6. define(`string', `The macro dnl is
  7. now reproduce the behavior of blind    ///   defining blind macros
  8. and reverses their order
  9. This means that every third argument to cond
  10. Here is the implementation of cond //// 도대체 뭐하는 쓰레기야? 몰라서 읽고 있는 머리 나쁜 입문자에게 폭탄을 사정없이 투척하는 이 매뉴얼의 저자는?
  11. define(`_case', ` $1)
  12. The implementation of the foreach macro is a bit more
  13. Composite: define_blind    /// blind macro 라는 것이 무엇인지 모르는데 이것이 무엇인지 잘 알고 있어야 하는 것처럼 설명을 하고 있다. 다시 앞의 내용을 봐야하나? 찾아보니, blind macro 는 아니지만, blind builtin macro 라는 말은 앞에 있었다. 이것을 다시 읽어봐야 하겠다.  /( 4.2절에 Preventing macro invocation ( macro 호출을 막기 ) 에 나온다. )/
  14.  Composite: curry     /// 내가 영어를 잘 못하는 것인가... 설명이 거꾸로인 것인가, 내가 머리가 나쁜것인가...   구글에 번역을 시켜보든가 해야겠다.     /( 정확히 하나의 인수를 사용하는 매크로 호출로 확장한 다음 해당 인수를 원래 인수에 추가하고 결과 인수 목록과 함께 매크로를 호출합니다.  /)  /// 여기까지는 번역이 정확하고 내가 읽은 것이 맞는 듯하다. 번역 잘하는가봐.. 똑똑하네.. 번역된 글을 보니까 좀 더 이해가 잘 되는 듯하다. 구글 번역을 좀 더 시켜볼까?

--

여기까지 ...

관련 부분 (위의 단어를 검색해 보자.)

일단 넘어가야 한다.... 도망쳐... 일단 도망쳐 살아남으려면...

천재의 폭력? ㅋㅋ 정신차리기 힘들다.

-

GNU m4 를 다룬 매뉴얼이 아닌 설명글

https://copyprogramming.com/howto/what-is-the-format-of-this-m4-file

---

https://www.solanara.net/solanara/m4
-
-
-
-
-
-
-
-
-
-
-
-
-


2024년 2월 7일 수요일

MC tips

-

  1. Quick Search :  (Ctrl+S) or (Alt+S)//  starts File name search in the directory listing.
  2.  CMDL:   (Alt+Enter) or (Ctrl+Enter)// copy the currently selected file to the command line
  3. CMDL:  (Ctrl+Shift+Enter)//  copy the full path name currently selected file
  4. CMDL:  (Alt+Tab)//  Auto completion for you
  5. CMDL:  (Ctrl+X) T  / (Ctrl+X)+(Ctrl+T)//   Copy currently Tagged(or selected) file of the current panel   / of the other panel
  6. CMDL:  (Ctrl+X) P / (Ctrl+X)+(Ctrl+P)//   Copy path name of current panel  / the other panel
  7. CMDL: (Ctrl+Q)//   Quote command used to insert character otherwise interpreted by MC (like the  '+' symbol )
  8. CMDL: (Alt+P) / (Alt+N)// Browse through command history. (P)->Previous(last entry) (N)->(Next one)
  9. CMDL: (Alt+H)//  displays the History for the Current input line.

 

 

-

-

-

 

2024년 2월 6일 화요일

web assembly (wasm) / emscripten // 에 관심이 생겨서 git-core 를 설치한다.

 -

git 을 최소한도로설치한다. 이유는제목에 적었다.

JavaScript(ECMA_Script)의 문제점 비판을 보게 되었고, 그 대안이랄까.. ( 대체하지는 않는다는 소극적인 언급이 web assembly에 있지만.. ) 최소한 우회라든가 입맛에 따른 선택 또는 같이 쓰는 것이 되겠지만, 일단 체험을 해 보고싶어졌고, web assembly에서는 배우려면 일단 내가 조금이나마 아는 것으로 시작하는 안내서가 있기에 emsctipten 을 설치하고 체험을 시작해 보려고 한다. git은 최소한으로 git-core만을 설치한다. ( mercurial도 git 도 조금 전까지는 전혀 설치되어 있지 않았다. ) ( 이런데도 git-hub에는 이미 가입하는 객기를 부렸었다. )

git-core만 설치하려 해도, 몇 가지 package가 추가로 더 설치되었다.

아래에 그 기록을 찍어 놓았다.

-

-


 

-

참고하게 된 정보는 아래와 같다.

https://webassembly.org/getting-started/developers-guide/

-

https://developer.mozilla.org/en-US/docs/WebAssembly/C_to_wasm

-

https://emscripten.org/docs/getting_started/downloads.html

-

24-0207/04:15 처음 작성

-

설치 과정에서 위에 언급한 3 정보 중에서 3번째 것에서 

source ./emsdk_env.sh

라는 명령을 하라는 것이 있는데, 여기에서 언급된 source 라는 명령이 무엇인지 몰라서 which 명령어로 찾아봐도 안나와서 매뉴얼(설명서) page인  ( man source ) 로 하니까 bash (shell) 의 builtin 명령이라고 나온다.그리고, 이것이 상당히 중요한 것인 듯하게, 언급된 여러 builtin 명령어 중에서, 처음에 나오는 ...  : ( 콜론colon 기호 명령어 ), 그리고  . ( 점 dot 기호 명령어 ) 바로 다음에, 원래 alphabet 순서에 의하면 한참 더 먼저 나와야 할 alias 명령어 등등을 제치고 alphabet 이름을 가진 명령어로는 맨 처음에 이 source 라는 명령어가 설명된다. (심지어는 기호 명령어인 [ (왼쪽 대괄호) 명령어 보다도 먼저 나온다. ) 이것은 info 페이지 설명서 ( info source 명령에 의해 나오는 것 )에서도 마찬가지이다. 그리고, 아래의 웹페이지에도 자세히 설명되어 있었다.

https://www.computerhope.com/unix/bash/source.htm

-

24-0207/05:15 에 작성.

-

Emscripten  _의  Wikipedia 페이지에서 설명하길 JavaScript의 subset인   asm.js  _와 관련있다고 한다. 그리고 이 asm.js  _는 wasm과는 직접적인 관련/일치는 없는 듯 하다. 좀 다른 것들이라는 뜻... 헷갈릴 수 있다.  관련 자료의 고리는 아래와 같다.

https://ko.wikipedia.org/wiki/Emscripten

http://asmjs.org/ 

-

24-0208/00:42 에 작성

-

-

 

2024년 2월 2일 금요일

github signup trouble (24-0203 and later) / usage logging

 github에 가입할 때에는웹브라우저(web browser)의 배경이 우주여행 게임에서 본 듯한 인상의 화면으로 바뀌며 검은 바탕에 별(star/planet)들 또는 성운(nebula)들로 보이는 흰색 또는 회색의 점과 흡사한 얼룩들이 계속 움직이는 배경화면 속에서 github 가입 절차가 진행된다. 그런데, 이 상황에서, 나는 firefox 를 사용했는데, CPU 사용량이 급격하게 증가하며 웹브라우저 및 그외의 컴퓨터 작동 속도가 매우 버겁게 작동하는 현상이 발생했다. firefox가 사용하는 CPU 사용량이 매우 크므로 이런 현상은 자연스러운 결과라고 할 수 있는데, 이런 현상이 github 가입 웹페이지 제작에서 의도된 것인지, 아니면 내 컴퓨팅 환경에서만 발생하는 특수한 문제인지 알 수 없다. 아마도 이런 증상을 내가 아닌 다른 사람들도 겪는다면 그 기록들이 있을텐데 google 검색을 해 봐도 이런 기록에 대한 보고는 찾을 수 없었다. 

지금   _( 구글검색:    github signup trouble  )_을 다시 해 봤는데, 몇 건의 기록이 뽑혀나왔다. 하지만 내가 겪었던 것과 같은 증상은 아니었다.다만 T_(  Tor  )_ 웹브라우저(web browser)를 사용한 가입이 고난이 있었다는 보고만이 내가 겪은 것과 일부분 일치했다.

내가 겪은 증상은 github 가입절차 페이지에서 그 ( 별 또는 작은 성운모양이 움직이는 ) 우주여행 배경화면이 나오는 상태에서는 CPU 가동율이 급격하게 증가하며, 정보 typing input 작동이 매우 느려졌고, Captcha 작동이 비워져서 화면에 표시되지 않거나, 왼쪽에는 아래 방향으로 맞추라는 지시가 있지만, 오른쪽 화면에서는 화살표를 클릭해도 변경 대상물을 움직일 수 있는 방향은 좌우로 회전하기 밖에 안되어서 아래방향으로 향하는 방향으로 맞추도록 조종할 수 없었다. 어쨌든 매우 느린 작동과 버벅거림을 겪으면서 2회 정도는 실패를 했고,  꾸역꾸역 진행을 하는데에 약 3번째의 시도 끝에 성공할 수 있었다. 이 과정 중에서 우주여행 움직이는 배경화면이 없어진 화면이 되면 (가입 과정을 모두 통과하고 계정의 개인 설정 과정까지 마친 후 이다.) 이런 버벅거림 현상이 없어졌다.


-

-

2024년 1월 21일 일요일

telegram-desktop fail to run. // the workdir problem maybe...? // maybe...perhaps...

Somewhat bad happened to my telegram-desktop application and it hanged just after I started through the Desktop [Menu] button on my OpenSuSe OS PC computer. and it continually consumes 50% of my CPU time resource without showing any window or any progress of launching this application, so I killed this process with Task Manager utility.

I repeated to remove the installation of Telegram-desktop application and re-install it. But it didn't solve the trouble.

 The underlined text below is in ONE line. and the ..../user01/... is the user name folder of the current user.

-

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
NoDisplay=true
Exec=/usr/bin/telegram-desktop -workdir /home/user01/.local/share/TelegramDesktop/ -- %u
Name=Telegram Desktop
Comment=Telegram Desktop에 대한 사용자 설정 정의
 

-

I finally removed the content files in ~/.local/share/TelegramDesktop/ folder with the hint above. 

It didn't work.

-