Posts

Terminator 화면 분할 상태에서 브로드캐스트시 문자 두번 입력 문제

Terminator 화면 분할 상태에서 브로드캐스트시 문자 두번 입력 문제

Multiple GNOME terminal in one window

Terminator Terminal Emulator

터미털 에뮬레이터의 화면 분할 기능을 제공하는 Terminator Terminal Emulator를 사용한다.

무엇 보다 손에 익었고 화면 분할 기능을 제공하는 터미널 에뮬레이터에는 없는 그룹 브로드캐스트 기능을 제공하기 때문에 터미널을 여러 개 열어 놓고 그룹별로 다른 입력을 해야 하는 테스트에 적합하다.

문제점

브로드캐스트 시 문자 두번 입력

얼마전 아래 위의 그림 처럼 부터 화면 분할 상태에서 브로드캐스트 기능을 키면 수신받는 터미널에서 문자가 2번 입력되는 문제가 발생한다.

Petalinux error on ArchLinux

Petalinux error on ArchLinux

Errors

petalinux-config -c rootfs
[INFO] generating Kconfig for project
ERROR: Failed to generate /home/euikook/working/oran/xilinx/102/build/misc/config/Kconfig.syshw
ERROR: Failed to Kconfig project
ERROR: Failed to config rootfs.

petalinux-config with the -v option

petalinux-config -c rootfs -v
[INFO] generating Kconfig for project
package require hsi FAILED:
invalid command name "hsi::create_dt_node"
    while executing
"hsi::create_dt_node -help"
    (in namespace eval "::hsi::help" script line 6)
    invoked from within
"namespace eval ::hsi::help {
    variable version 0.1

    ::xsdb::setcmdmeta {hsi create_dt_node} categories {hsi}
    ::xsdb::setcmdmeta {hsi create..."
    (file "/home/euikook/Tools/Xilinx/PetaLinux/2019.2/tools/xsct/scripts/xsct/hsi/hsihelp.tcl" line 25)
    invoked from within
"source /home/euikook/Tools/Xilinx/PetaLinux/2019.2/tools/xsct/scripts/xsct/hsi/hsihelp.tcl"
    ("package ifneeded hsi::help 0.1" script)
ERROR: Failed to generate /home/euikook/working/oran/xilinx/102/build/misc/config/Kconfig.syshw
ERROR: Failed to Kconfig project
ERROR: Failed to config rootfs.
SSH config and Include Statement

SSH config and Include Statement

~/.ssh/config

SSH를 사용하다보면 서버별 접속 옵션이나 암호화 방식을 달리 해야 될 경우가 있다. 이때 이러한 설정 정보들을 ~/ssh/config 파일에 저장해 두면 접속시에 명령행에 옵션으로 주지 않더라도 적용된다.

~/.ssh/config파일의 활용법은 다음과 같다.

서버 별칭(Aliases) 부여

또한 Domain Name이 할당되어 있지 않고 IP 주소로 접속하는 경우 서버에 자신만의 이름을 부여하고 그 이름으로 접속할 수 있기 때문에 매우 유용하다.

접속하고자 하는 IP 1.2.3.4에 Domain Name이 할당되어 있지 않거나 해당 IP 정보가 /etc/hosts에 지정되어 있지 않더라도 호스트 지정자로 1.2.3.4test로 지정돼어 있기 때문에 1.2.3.4 뿐 아니라 test로 접속 해도 1.2.3.4 로 접속된다.

ssh 1.2.3.4

또는

ssh test

접속 SSH Port 변경

외부에 공개된 서버의 SSH 데몬의 포트 번호를 보안상의 이유등으로 변경한 경우 변경된 SSH 포트 번호를 config 파일에 Port 옵션으로 지정하면 -p 옵션으로 포트번호를 지정할 필요 없이 접속가능하다.

Host example.com
    Hostmname example.com
    Port 5545
    PreferredAuthentications password 
    PubkeyAuthentication no

인증을 위한 Identity 파일 지정

키 관리를 위해 Key Agent를 사용하지 않는 경우 인증을 위해 Identity 파일을 명시적으로 -i 옵션으로 지정할 수 있다.

~/ssh/config 파일에 IdentityFile 옵션을 사용하여 명시적으로 Private Key를 지정할 수 있다.

아래는 example.com인증을 위해 개인키로 ~/.ssh/test를 지정한 예제이다.

Host example.com
    Hostmname example.com
    IdentityFile ~/.ssh/test
평균과 평균필터(Feat. Python)

평균과 평균필터(Feat. Python)

산술 평균

$n$개의 수 $x_1, x_2, … x_n$ 가 있다. 이 수의 산술 평균은 $A_n$ 은 다음과 같이 정의 된다.

$$ A_n = \frac{x_1 + x_2 + … + x_n}{n}, A_0 = 0 \tag{1}$$

그냥 주어신 수의 합을 수의 개수로 나누면 된다. 이러한 식을 배치식이라고 한다. 고정된 데이터의 경우 배치식을 이용햐여 구하면 된다.

def avg_batch(v):
    return sum(v)/len(v)

if __name__ == '__main__:
    ages = [10, 12, 26, 30, 40, 33, 21, 34, 54, 3]
    print(f'Average using Batch Expression: {avg_batch(ages)}')

하지만 입력 데이터가 계속 실시간으로 계속 추가 된다면? 입력 데이터의수가 많아저셔 100만개 정도 된다면? 위 배치식으로 평균을 구하기 위해서는 입력된 모든 값을 메모리에 저장 하여야 하며 새로운 값이 입력 될때마다 모든 값의 평균을 다시 구해야 하기 때문에 비효율 적이다.

Development Environment per Project

Development Environment per Project

Development environment per project

Motivation

Development environments installed in project directory

/home/$USER/test-project/.env

Example of environment file

TOP_DIR=$(dirname $(realpath $_))
. ${TOP_DIR}/venv/bin/activate
export LD_LIBRARY_PATH=${VIRTUAL_ENV}/lib
cd ${TOP_DIR}
Disable RALT  as ISO_Level3_Shift

Disable RALT as ISO_Level3_Shift

Disable RALT as ISO_Level3_Shift

그놈을 최신 버전으로 업그레이드 하면서 Right ALT 키가 ISO_Level3_Shift 로 인식 되는 경우 가 있다.

xev

아래와 같이 Keycode 108 번이 ISO_Level3_Shift로 인식된다.

KeyRelease event, serial 37, synthetic NO, window 0x1400001,
    root 0x529, subw 0x0, time 107702472, (862,0), root:(2932,214),
    state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False
Pacman Cheatsheet

Pacman Cheatsheet

Pacman Cheatsheet

CommandParamsDescription
pacman -Syu<pkg>Sync package list and install <pkg>.
pacman -S<pkg>Install <pkg> only.
pacman -Rsc<pkg>Uninstall <pkg>.
pacman -Ss<keyowrd>Search <keyword>.
pacman -SyuN/ASync package list and update available packages.

Let use gollum wiki

Let use gollum wiki

gollum - A git-based Wiki

Docker Image

https://github.com/euikook/gollum-unicorn.git

Install instruction

Let’s Encrypt

Set DOMAINS variable

export DOMAINS="oneuon.com notes.oneuon.com"

Start nginx webroot server

make webroot

Get Let’s Encrypt certificate using certbot

make certbot

Run Gollum as docker service

docker-compose up -d

Generate sitemap.xml

gollum/app.rb

bin/gollum.rb

views/sitemap.rb

«Note(“Did you know?”, “https://github.com/euikook/gollum")>>