2023.08 Chrome 한글 전환 이슈 등등 이슈

Google Chrome 사이트에서 RPM 다운로드 받지 않고, Fedora Repository에 있는 Chrome 설치하면 아무 문제 없네;;

 

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

 

2023부터 네이버 웨일로 바꿔 사용 중.. 위 문제들 없이 좋은거 같음

(deb를 rpm으로 변환해서 설치)

 

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

 

36 버전 사용 중 업데이트 시 또는 37 버전 에서 Chrome 렌더링 이슈 생김.. 깜빡깜빡.. 한 참 뒤에 열리기는 함..

 

열리면 chrome://flags 들어가서 Vulkan Disabled

비디오 하드웨어 디코딩 성능 관련 옵션으로 보임

 

[확인] https://forum.babylonjs.com/t/performance-and-rendering-issues-since-fedora-37-upgrade/35739

 

Performance and rendering issues since Fedora 37 upgrade

I upgraded to Fedora 37 and now all Babylon-related rendering is flickering (with a bright interframe) and the browser seems to be struggling because of high CPU load. Almost any other WebGL(2) content is rendering just as before (e.g. three.js-based). I t

forum.babylonjs.com

Wayland, X11 옵션 선택

chrome://flags/#ozone-platform-hint

 

 

import org.apache.commons.codec.DecoderException;
import org.apache.commons.codec.binary.Hex;

public class Test {
    public static void main(String[] args) {
        String hexString = "123 abc [0xea][0xb0][0x80][0xeb][0x82][0x98] [0xeb][0x8b][0xa4][0xeb][0x9d][0xbc]";
        do {
            hexString = hexToString(hexString); // output : 123 abc 가나 다라
        } while (hexString.indexOf("[0x") > -1);
        System.out.println("en : " + hexString);
    }
    
    private static String hexToString(String s) {
        try {
            int idx = s.indexOf("[0x");
            if (idx > -1) {
                String t = s.substring(idx, idx + 18);
                String c = new String(Hex.decodeHex(t.replaceAll("\\[0x", "").replaceAll("\\]", "").toCharArray()));
                s = s.replace(t, c);
            }
        } catch (DecoderException e) {
            throw new RuntimeException(e);
        }

        return s;
    }
}
groupadd -g 200 nexus
useradd -g 200 -u 200 nexus

yum install -y podman java-1.8.0-openjdk-devel.x86_64

mkdir /data/nexus2-data

podman load -i docker_image_nexus_2.15.1-02.tar
podman run -d -p 8088:8081 --name nexus2 -v /data/nexus2-data:/sonatype-work --privileged=true registry.hub.docker.com/sonatype/nexus:2.15.1-02
podman logs -f $(podman ps -a -q -f name=nexus2)
#podman rm --force $(podman ps -a -q -f name=nexus2)

mkdir /root/.m2
cat << EOF > /root/.m2/settings.xml
<settings>
  <mirrors>
    <mirror>
      <id>nexus</id>
      <mirrorOf>*</mirrorOf>
      <url>http://localhost:8088/nexus/content/groups/public</url>
    </mirror>
  </mirrors>
</settings>
EOF

https://extensions.gnome.org/#

  • Dash to Panel
    • 실행한 창이 하단 TaskBar 에 표시
    • 빠른 단축 아이콘 설정
    • 설치 에러 시 42.46 버전 설치(Fedora 37 에서..)
  • GSConnect
  • AATWS(Advanced Alt+Tab Window Switcher)
    • 듀멀 모니터일때 개별적으로 동작

 

 

  • Dash to Dock - Dash to Panel과 유사 하지만 맥 같은 스타일
  • Window List
    • 실행한 창이 하단 TaskBar 에 표시(Dash To Panel 사용하기 전에 사용 했었음)
  • Launch new instance
    • 실행 아이콘을 클랙 했을때 새로운 창이 열림(예로 브라우저 클릭 시 이미 실행 되어 있을때도 빈 창이 열림)
  • Applications Menu
    • 메뉴에 프로그램 드롭다운 버튼 생김
  • Places Status Indicator
    • 메뉴에 탐색기의 기본 메뉴 처럼 드롭다운 버튼 생김
  • Extenstion List
    • 메뉴에 확장 드롭다운 버튼 생김
  • Allow Locked Remote Desktop
    • 화면 잠금 시에도 원격 RDP 접속 허용

 

 

 

 

IntellJ 를 이용하기

  • Rebase Current onto Selected
  • Merge into Selected
  • Rebase --interactive (fixup)

시나리오

  1. 개인 개발 브랜치에서 커밋 내용에 신경 쓰지 않고 저장을 목적으로 커밋한다.
  2. master 브랜치에 다른 사람들이 반영 내용이 주기적으로 반영된다.
  3. 개인 개발 브랜치에 master 에 반영된 내용도 함께 업데이트되어 테스트 해야 한다.

시나리오 예

타임라인 순

  • 00:00 master 반영 v1
    • 01:00 master dev 브랜치 checkout
    • 01:10 dev 쓰기 기능 커밋
    • 01:20 dev 쓰기 기능 이래저래 막 커밋1
  • 02:00 master 반영 v2
    • 03:10 dev 쓰기 기능 이래저래 막 커밋2
    • 03:20 dev 쓰기 기능 이래저래 막 커밋3
      [master 브랜치]                                                                                 [dev 브랜치]

    • 04:00 master 내용 dev 브랜치에 반영 ("20:00 master 반영 v2" 내용이 rebase 01:00 시점 이후에 들어옴)
      dev 브랜치에서 "Rebase Current onto Selected"
      master 내용이 dev Checkout 시점으로 들어옴
    • 04:10 dev 쓰기 기능 이래저래 막 커밋4
    • 04:20 dev 쓰기 기능 이래저래 막 커밋5

05:00 dev 쓰기 기능 1~5번 커밋 내용 합쳐 master 에 머지하기

커밋 메시지 합치기
커밋 합치고 메시지 변경

Master 브랜치로 이동

dev -> master 로 Merge
완료

 

방법

  1. HttpClient 등 모듈에서 유효한 인증서를 체크하는 로직을 예외 시키는 방법
  2. certificate 인증서를 저장하여 호출하는 서버의 keystore 에 등록해주는 방법

방법 1에 대한 방법

            ## HttpClient 4.x 
            
            SSLContextBuilder builder = new SSLContextBuilder();
            builder.loadTrustMaterial(null, (certificate, authType) -> true);

            SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
                    builder.build(),
                    NoopHostnameVerifier.INSTANCE);

            httpClientBuilder.setSSLSocketFactory(sslsf);

방법 2에 대한 방법

  1. 크롬에서 아래와 같이 test1.cer 파일로 저장 (이름 무관)
  2. keytool -import -alias test1 -keystore $JAVA_HOME/lib/security/cacerts -file test1.cer -storepass changeit (alias 기존과 겹치지 않는 적당한 명칭, pass는 적당하게)
    1. 해당 파일만 가져와서 하드코딩으로 지정 할때
      System.setProperty("javax.net.ssl.trustStore", "$JAVA_HOME/lib/security/cacerts");

2024현재

 

과거

 

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
	at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316)
	at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639)
	at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223)
	at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
	at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
	at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
	at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1564)
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1492)
	at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:347)
	at UrlConTest.main(UrlConTest.java:15)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:397)
	at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:302)
	at sun.security.validator.Validator.validate(Validator.java:262)
	at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324)
	at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229)
	at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124)
	at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
	... 14 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
	at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141)
	at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126)
	at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280)
	at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:392)
	... 20 more

 

인증 정상으로 됐으나 에러 날때 vi ~/.bashrc 에서 실행되는 항목 있는지 체크

우선 agent 설치 전에 주석

 

[] Launch failed - cleaning up connection
[] [SSH] Connection closed.

 

Centos 7

$ sudo podman run -it centos:7 /bin/bash

[root@c0f41f59555f /]# ls
ls: cannot open directory .: Permission denied

/etc/selinux/config

SELINUX=disabled 확인

function maxVersion {
  FILE_FIND=$1
  START_STR=$2
  END_STR=$3

  FILES=$(ls $FILE_FIND)

  MAX_VERSION=-1
  for FILE in $FILES ; do
    FILE="$(basename -- $FILE)"
    VERSION=`echo $FILE | grep -o -P "(?<=$START_STR).*(?=$END_STR)"`
    if [ -n "$VERSION" ] ; then
      IFS='.' read -ra arr <<< "$VERSION"
      VERSION=${arr[2]}
      if [ $VERSION -gt $MAX_VERSION ]; then
        MAX_VERSION=$VERSION
      fi
    fi
  done
  echo $MAX_VERSION

}


CATALINA_HOME=/data/tomcat/apache-tomcat-9.0.7
PATCH_VERSION=$(maxVersion "/data/tomcat/apache-tomcat-*.zip" "tomcat-" ".zip")
echo "PATCH_VERSION: $PATCH_VERSION"

NOW_VERSION=`echo "$CATALINA_HOME" | grep -o -P '(?<=tomcat-).*(?=$)'`
IFS='.' read -ra arr <<< "$NOW_VERSION"
PATCHED_VERSION=${arr[2]}
echo "PATCHED_VERSION: $PATCHED_VERSION"

if [ $PATCH_VERSION -gt $PATCHED_VERSION ]; then
  echo "패치 파일 있음. 현재: $NOW_VERSION, 패치 버전: $PATCH_VERSION"
fi
vi /home/ddakker/.local/share/applications/idea.desktop

[Desktop Entry]
Version=1.0
Type=Application
Name=IntelliJ IDEA Ultimate Edition
Icon=/apps/idea-IU-193.6494.35/bin/idea.svg
Exec="/apps/idea-IU-193.6494.35/bin/idea.sh" %f
Comment=Capable and Ergonomic IDE for JVM
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-idea

 

+ Recent posts