자바 스크립트에서 JSON을 직렬화할때 두번째 함수 구현 옵션을 활용하여, 함수내용 자체를 문자열로 변환해서 보낼 수 있다.

 

 

{"userId":"erith","summary":"__function_data__function(x, y) {\n    return x + y;\n  }"}
App.tsx:44 4

 

 

 

아래 명령어로 폰트를 설치합니다.

wget -O /tmp/YaHei.Consolas.1.12.zip https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/uigroupcode/YaHei.Consolas.1.12.zip
unzip /tmp/YaHei.Consolas.1.12.zip
sudo mkdir -p /usr/share/fonts/consolas
sudo mv YaHei.Consolas.1.12.ttf /usr/share/fonts/consolas/
sudo chmod 644 /usr/share/fonts/consolas/YaHei.Consolas.1.12.ttf
cd /usr/share/fonts/consolas
sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv

 

VS Code 환경설정에서 다음의 폰트명을 추가합니다.

Settings > TextEditor > font

- 적용시 Editor 뿐만 아니라 터미널 폰트도 변경됩니다.

asp.net으로 rest api개발할 때 Swashbuckle.AspNetCore 패키지를 많이 사용할 것입니다.

그런데 기본 설정으로는 소스코드의 주석이 swagger주석으로 출력되지 않기 때문에 다음 설정을 해줘야합니다.

 

1. 프로젝스 설정 > 빌드 > 설명서 파일을 체크.

 

2. Program.cs 에 AddSwaggerGen 부분의 코드를 아래와 같은 형태로 변경

            builder.Services.AddSwaggerGen(options =>
            {
                // using System.Reflection;
                var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                options.IncludeXmlComments(Path.Combine(AppContext.BaseDirectory, xmlFilename));
            });

'C#' 카테고리의 다른 글

엑셀의 공분산 COVARIANCE.P, COVARIANCE.S 함수의 c#구현  (0) 2020.08.07
asp.net core 3.1, NLog 설정시 문제해결  (0) 2020.06.26
log4net.config 예제  (0) 2019.08.03
GDI+ Bitmap Rotaion  (0) 2019.02.19
WPF RichText에서 HTML 표시하기  (2) 2019.02.09

 

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

+ Recent posts