k8s에서 sidecar 테스트를 위해 진행했는데... 잘 되는 것 확인!

 

윈도우에서도 잘 된다.!

            var builder = WebApplication.CreateBuilder(args);

            var socketName = "my.socket";
            var socketPath = Path.Join(Path.GetTempPath(), socketName);
            if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
                socketPath = Path.Join("/tmp", socketName);

            if (File.Exists(socketPath))
                File.Delete(socketPath);

            // Configure Kestrel to listen at the UDS path
            builder.WebHost.ConfigureKestrel(
                opts => opts.ListenUnixSocket(socketPath));

 

inkscape는 훌륭한 벡터이미지 편집기입니다.

상용프로그램인 Adobe illustrator에 비할는 아니지만,

적절하게 벡터이미지가 필요할 경우 조금 시간을 들이면 원하는 이미지를 만들 수 있습니다.

 

다만, 도형으로 만들다보면 객체들이 많이 생겨서 나중에 svg리소스를 프로그램에서 활용하고자할때 좀 무겁게 됩니다.

 

하나의 path로 만들고 싶을때 적용하는 방법입니다.

 

1. 그린 개체들을 모두 선택 한 후

 

2.객체를 경로로 변경합니다.

 

 

3. 이후 경로 합치기를 하거나, 여러가지 도형에 대한 적절한 오퍼레이션을 합니다.

 

4. 경로가 합쳐지기 때문에 색상이 통일 됨을 주의합니다.

 

5. 파일 문서 속성에서 Resize to content를 누르면 컨텐츠에 맞게 여백이 사라집니다.

iframe과 부모창간의 메시지 통신예제입니다.

 

 

 

index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Main</title>
    <style>
      html,
      body {
        width: 100%;
        height: 100%;
      }
      textarea {
        border: 1px solid #ccc;
        box-sizing: border-box;
        width: 100%;
        resize: none;
        height: 30vh;
        padding: 1em;
      }
      textarea:focus {
        outline: none;
      }
    </style>
  </head>
  <body>
    <iframe src="chart.html" width="100%" height="300"></iframe>
    <textarea id="log"></textarea>
    <script>
      window.addEventListener("message", (event) => {
        // if (event.origin !== "https://parent-origin.com") {
        //   return;
        // }

        const logElement = document.getElementById("log");
        const message = event.data;
        if (message.type !== "chart") return;
        logElement.textContent += JSON.stringify(message) + "\r\n";
        logElement.scrollTop = logElement.scrollHeight; //스크롤 내리기
      });
    </script>
  </body>
</html>

 

 

chart.html

<!DOCTYPE html>
<html lang="ko">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Chart</title>
    <style>
      html,
      body {
        width: 100%;
        height: 100%;
        background-color: #ccc;
        overflow: hidden;
      }
    </style>
  </head>
  <body>
    CHART
    <br />
    <button type="button" onclick="sendMessage(event)">이벤트 전송</button>
    <br />
    <script>
      function sendMessage(event) {
        const message = {
          type: "chart",
          time: new Date(),
          text: "Message from chart",
          data: [0, 1, 2, 3],
        };
        window.parent.postMessage(message, "*");
      }
    </script>
  </body>
</html>

 

 

소스 다운

iframe_event.zip
0.00MB

 

먼저 볼륨 이름을 확인,

sudo lvdisplay

 

sudo lvscan

 

우분투 리눅스 논리 볼륨 확장하기

sudo lvextend -l +100%FREE  /dev/ubuntu-vg/ubuntu-lv

 

 

확장 전 100G만 사용중이다.

 

확장 후 모습. /에 473.9(500G)사용할 수 있도록 하였다.

 

 

# sudo resize2fs /dev/ubuntu-vg/ubuntu-lv

sudo resize2fs [경로]

PS D:\Work\ozstack-n2> npm run dev  

> ozstack-n2@0.0.0 dev
> vite

error when starting dev server:
Error: listen EACCES: permission denied 127.0.0.1:5173
    at Server.setupListenHandle [as _listen2] (node:net:1313:21)
    at listenInCluster (node:net:1378:12)
    at GetAddrInfoReqWrap.doListen [as callback] (node:net:1516:7)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:73:8)

 

 

> 해결

cmd 관리자모드에서 아래 명령어 실행 후 재 시도.

 

net stop winnat

net stop winnat

# ilspy를 이용한 모델 추출 스크립트

dotnet tool install ilspycmd

dotnet ilspycmd  .\MyModels\bin\Debug\net6.0\MyModels.dll --list c | `
                 Where-Object {$_ -like '*MyModel*'} | `
                 %{ $_.replace("Class MyModels.","") } | `
                 ConvertTo-Json -Compress

가끔씩 쓰는데 명령어가 헷갈릴 때가 있어 남겨둡니다.

bash 쉘에서 base64 툴 이용 시.

# base64 인코딩
echo "test" | base64

# base64 디코딩
echo "dGVzdAo=" | base64 -d

#  without new line
echo -n "test" | base64 -w 0

powershell에서 base64 툴 이용 시

# base64 인코딩
echo "test" | %{ [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($_)) }

# base64 디코딩
echo "dGVzdA==" | %{ [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($_)) }

# %{ } 는 foreach의 shorthand다.

Toast GRID를 React/TypeScript환경에서 사용해보았습니다. (생각나는 데로 팁을 추가해보겠습니다.)

 

#01. row수가 약 300건 가까이 될때, 셀 선택시 엄청나게 느린 경우가 발생했는데, 아래 속성을 추가하니 속도가

빨라졌습니다.

 

bodyHeight={'fitToParent'}

 

#02. ajax 처리 후 데이터건수를 업데이트 해 주려고 할 때, ToastGrid의 TypeScript Wrapper에 response에 이벤트 타입이 TuiGridEvent로 받아버려서 제대로 속성 값을 처리할 수 없습니다. 그럴 땐  아래처럼 해 주면 됩니다. (any타입을 받아서 처리합니다.)

 

   

 grid_detail.current?.getInstance().on('response', function (ev: any) {

        const { response } = ev.xhr;

        const responseObj = JSON.parse(response);

		//setTotalRow 는 useState 함수입니다. 
        setTotalRow(responseObj.data.contents.length);

      });

#03. checkbox 체크시 해당row에 특정CELL 색상 변경

tuiGrid 의 addCellClassName, removeCellClassName을 이용해서 구현이 가능합니다..

+ Recent posts