'잡동사니'에 해당되는 글 13030건

  1. 2024.02.19 golang echo i18n
  2. 2024.02.19 vue.js i18n
  3. 2024.02.19 golang package
  4. 2024.02.19 3d 그림판 보다는 3d builder
  5. 2024.02.18 으윽 비가 온다.
  6. 2024.02.17 간만에 자전거
  7. 2024.02.16 golang html/template ParseFiles()
  8. 2024.02.15 btrfs CoW
  9. 2024.02.15 statvfs() 의 f_bavail과 f_bfree 차이
  10. 2024.02.15 db 식별/비식별 관계
Programming/golang2024. 2. 19. 15:22

echo 라이브러리에서도 i18n(다국어 지원)이 가능하단다.

근데 결국에는 이걸 쓰려면 템플릿을 이용해서 쇼를 해야하고,

템플릿은 서버 사이드에서 렌더링 해주는거라, 이래저래 매번 프로세싱을 해야 하는것도 부담이니

클라이언트 사이드에서 문자열 치환해서 넣는 방식으로 가야할 듯.

 

[링크 : https://phrase.com/blog/posts/internationalisation-in-go-with-go-i18n/]

[링크 : https://www.alexedwards.net/blog/i18n-managing-translations]

'Programming > golang' 카테고리의 다른 글

golang tcp socket timeout 주기(listen, read)  (0) 2024.04.08
golang reflect  (0) 2024.02.20
golang package  (0) 2024.02.19
golang html/template ParseFiles()  (0) 2024.02.16
golang runtime.GOMAXPROCS()  (0) 2024.02.15
Posted by 구차니
Programming/vue.js2024. 2. 19. 15:18

vue.js 에서도 다국어 지원이 가능하다.

json으로 문자열 테이블을 만들어야 하는게 조금 귀찮아 보이는데

과거 poedit 처럼 단수/복수에 대한 문장을 하나의 메시지에 넣어서 쓸 수 있어 좀 더 편해 보인다.

 

csv -> json 변환툴을 찾거나 만들면 서로 좀 편하게 작업이 가능할 듯.

 

[링크 : https://jollyworker.co.kr/vue-js를-활용한-다국어-지원-구현하기/]

[링크 : https://lily-choi.tistory.com/5]

'Programming > vue.js' 카테고리의 다른 글

vue import "@"  (0) 2024.04.19
vue webpack ckeditor  (0) 2024.04.19
vue3 ckeditor5 document editor 추가하기  (0) 2024.04.18
vue 입력창 포커스 설정  (0) 2024.03.28
vue proxy  (0) 2024.03.26
Posted by 구차니
Programming/golang2024. 2. 19. 14:00

내가 잘 못 쓰고 있는 느낌인데..

아래와 같은 구조로 되어서 디렉토리당 하나의 패키지만 존재해야 하는 것 같다.

main.go
test1/
    rest.go
test2/
    template.go

 

main.go 에서는

import에서 디렉토리 명을 적으면 되고

vscode 지원을 받으면 자동으로 아래처럼 별칭을 붙여준다.

import (
rest_handler "was_test/test1"
template_handler "was_test/test2"
)

'Programming > golang' 카테고리의 다른 글

golang reflect  (0) 2024.02.20
golang echo i18n  (0) 2024.02.19
golang html/template ParseFiles()  (0) 2024.02.16
golang runtime.GOMAXPROCS()  (0) 2024.02.15
golang echo 템플릿 파일로 불러오기  (0) 2024.02.14
Posted by 구차니
Microsoft/Windows2024. 2. 19. 10:07

3d 그림판은 먼가 이것저것 불러와서

그려넣고 장난은 칠 수 있지만

예를 들어 사람 모델을 불러서 팔만 색상을 바꾼다거나, 팔을 들어 올린다거나 할 수 있진 않아 쓰임새가 모호했는데

메뉴 - 인쇄 - 3D 인쇄를 해보니 스토어에서 3D builder 라는걸 설치하도록 유도한다.

 

MS 답지 않은 후한 점수에 한번 설치!

 

대충 기본 도형 그리고

하나 선택해서 빼기 누르니, 일반적인 캐드 프로그램 처럼 쓸 수 있어 보인다.

그리고 아래 숫자 클릭하면 mm 단위이긴 하지만 치수를 입력할 수 있어서 3d 그림판 보다 내가 쓰려고 하는 용도에 더 맞을 듯.

 

저장은 STL / OBJ 정도가 눈에 띈다. 3MF는 어디꺼지?

 

그나저나 대충 만들어서 subtract 해보는데

array 기능도 없어서 노가다 해야하고, 여러개 선택해서 뺄수도 없고

빼고 나서 와이어 프레임이 의도한거랑은 너무 달라져서(어떻게 보면 삼각형으로 나오는게 맞긴한데..)

이걸 쓸 수 있다고 해야하나 고민..

 

+

3d builder 에서 지원하는 프린터는 모델이 꽤나 제한되는 듯.

prusa의 i3 mk2 정도만 아는 모델이고

xyzprinting 이라는 업체의 da vinci 모델들이 다양하게 지원한다.

[링크 : https://www.microsoft.com/en-us/3d-print/printing-partners?rtc=1]

[링크 : https://support.microsoft.com/ko-kr/windows/windows용-3d-builder-사용-방법-e7acb10c-d468-af62-dc1d-26eccd94fae3]

 

Posted by 구차니

개 데리고 산책하러 나갔는데 비가 와서 후다닥 후퇴

비가 오는 바람에 자전거는 못 타고..

 

휴대용 펌프로 바람 넣으려니 너무 힘들어서

스탠드형을 하나 사려고 하는데 가격이 꽤나 비싸네 -_ㅠ

'개소리 왈왈 > 육아관련 주저리' 카테고리의 다른 글

생일 파티 part 1  (0) 2024.03.01
주말이 짧다  (0) 2024.02.25
피곤모드  (0) 2024.02.12
애견놀이터 민원은 실패  (0) 2024.02.03
상병발생원인 신고서?  (0) 2024.02.02
Posted by 구차니
개소리 왈왈/자전거2024. 2. 17. 20:56

오랫만에 자전거 탔더니 다리가 못 버틴다

올해 건강검진을 위해서 열심히 타야지 ㅠㅠ

'개소리 왈왈 > 자전거' 카테고리의 다른 글

오랫만에 약간 먼 자전거  (0) 2024.04.06
서울 자전거 대행진 신청  (0) 2024.04.01
라이트 손..상?  (0) 2023.05.21
이런.. 자전거대행진 신청 실패  (0) 2021.11.09
라이트 청소  (0) 2021.10.26
Posted by 구차니
Programming/golang2024. 2. 16. 11:44

아래의 붉은 부분에 대한 해석이 필요해서 검색

func main() {
  // Echo instance
  e := echo.New()

  // Instantiate a template registry with an array of template set
  // Ref: https://gist.github.com/rand99/808e6e9702c00ce64803d94abff65678
  templates := make(map[string]*template.Template)
  templates["home.html"] = template.Must(template.ParseFiles("view/home.html", "view/base.html"))
  templates["about.html"] = template.Must(template.ParseFiles("view/about.html", "view/base.html"))
  e.Renderer = &TemplateRegistry{
    templates: templates,
  }

  // Route => handler
  e.GET("/", handler.HomeHandler)
  e.GET("/about", handler.AboutHandler)

  // Start the Echo server
  e.Logger.Fatal(e.Start(":1323"))
}

[링크 : https://gitlab.com/ykyuen/golang-echo-template-example/-/blob/master/main.go?ref_type=heads]

[링크 : https://gitlab.com/ykyuen/golang-echo-template-example]

[링크 : https://dev.to/ykyuen/setup-nested-html-template-in-go-echo-web-framework-e9b]

 

ParseFiles() 는 가장 마지막 파일이 결과로 나온다.

다르게 해석하면 앞에서 부터 웹 레이아웃 구성요소들로 넣고, 가장 마지막에 페이지 하나에 대한 템플릿을 두면 된다.

func (*Template) ParseFiles ¶
func (t *Template) ParseFiles(filenames ...string) (*Template, error)
ParseFiles parses the named files and associates the resulting templates with t. If an error occurs, parsing stops and the returned template is nil; otherwise it is t. There must be at least one file.

When parsing multiple files with the same name in different directories, the last one mentioned will be the one that results.

ParseFiles returns an error if t or any associated template has already been executed.

[링크 : https://pkg.go.dev/html/template#Template.ParseFiles]

'Programming > golang' 카테고리의 다른 글

golang echo i18n  (0) 2024.02.19
golang package  (0) 2024.02.19
golang runtime.GOMAXPROCS()  (0) 2024.02.15
golang echo 템플릿 파일로 불러오기  (0) 2024.02.14
golang switch  (0) 2024.02.08
Posted by 구차니
Linux API/linux2024. 2. 15. 18:13

장점일수도 있고 위험요소일수도 있는 부분 같은데

Btrfs 에서 파일을 복사하면 CoW 로 작동하게 된다.

물론 inode도 다르고 전혀 다른 파일이지만 수정 하기 전까지는 공간을 차지 하지 않는데

수정하는 순간 대용량 파일이라면 갑자기 용량을 먹어 버리는데

전체 스토리지를 넘길 경우에는 어떻게 작동하려나?

 

해당 기능을 끄면 checksum도 끈다는 먼가 무시무시한 경고가 보인다.

Disabling CoW
Warning: Disabling CoW in Btrfs also disables checksums. Btrfs will not be able to detect corrupted nodatacow files. When combined with RAID 1, power outages or other sources of corruption can cause the data to become out of sync.
To disable copy-on-write for newly created files in a mounted subvolume, use the nodatacow mount option. This will only affect newly created files. Copy-on-write will still happen for existing files. The nodatacow option also disables compression. See btrfs(5) for details.

[링크 : https://wiki.archlinux.org/title/btrfs]

'Linux API > linux' 카테고리의 다른 글

usb hid, hidraw  (0) 2024.03.11
linux 멀티터치 프로토콜  (0) 2024.03.08
statvfs() 의 f_bavail과 f_bfree 차이  (0) 2024.02.15
corrupted size vs. prev_size 에러.. part2  (0) 2023.12.15
리눅스 커널 6.6.6 릴리즈  (0) 2023.12.13
Posted by 구차니
Linux API/linux2024. 2. 15. 17:42

해당 함수의 리턴은 아래 구조체를 사용하는데

f_blocks / f_bfree / f_bavail 로 구성되고

free와 available 이라는 미묘~하게 겹치는 비슷한 의미를 지닌 단어로 지칭되는 변수가 두개가 존재한다.

           struct statvfs {
               unsigned long  f_bsize;    /* Filesystem block size */
               unsigned long  f_frsize;   /* Fragment size */
               fsblkcnt_t     f_blocks;   /* Size of fs in f_frsize units */
               fsblkcnt_t     f_bfree;    /* Number of free blocks */
               fsblkcnt_t     f_bavail;   /* Number of free blocks for unprivileged users */
               fsfilcnt_t     f_files;    /* Number of inodes */
               fsfilcnt_t     f_ffree;    /* Number of free inodes */
               fsfilcnt_t     f_favail;   /* Number of free inodes for nprivileged users */
               unsigned long  f_fsid;     /* Filesystem ID */
               unsigned long  f_flag;     /* Mount flags */
               unsigned long  f_namemax;  /* Maximum filename length */
           };

[링크 : https://blog.naver.com/gauya/220573174198]

 

간단하게 프로그램을 짜서 실행해보면

#include <sys/statvfs.h>
#include <stdio.h>

int main() {
struct statvfs sv;
statvfs("/app/data",&sv);

long total, usabe;
double frate;

total = ((long long)sv.f_blocks * sv.f_bsize / 1024);
usabe = ((long long)sv.f_bavail * sv.f_bsize / 1024);
frate = ((double)sv.f_bavail * 100.) / (double)sv.f_blocks;

printf("%ld %ld %ld\n",
sv.f_blocks,
sv.f_bavail,
sv.f_bfree);

printf("%ld %ld %.1f\n", total, usabe, frate);
printf("%f\n",(sv.f_blocks - sv.f_bavail) * 100.0 / sv.f_blocks);
}

 

아래와 같이 나오는데

# df;./arm.o 
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/mmcblk2p9  50500092 1322852  46579560   3% /app/data
12625023 11644890 12294310
50500092 46579560 92.2
7.763416

 

값을 4k block -> 1k block 으로 변환해서 계산하면 아래와 같이 block / avail / free 값이 나온다.

df 의 used는 block - avail이 아니라 block - free 용량이라..

blocks avail free
12,625,023 11,644,890 12,294,310
50,500,092 46,579,560 49,177,240
  3,920,532 (block - avail) 1,322,852 (block - free)

 

그럼 avail과 free는 무슨 차이일까? 저기.. unprivileged users의 의미가 도대체 멀까...

               fsblkcnt_t     f_blocks;   /* Size of fs in f_frsize units */
               fsblkcnt_t     f_bfree;    /* Number of free blocks */
               fsblkcnt_t     f_bavail;   /* Number of free blocks for unprivileged users */

'Linux API > linux' 카테고리의 다른 글

linux 멀티터치 프로토콜  (0) 2024.03.08
btrfs CoW  (0) 2024.02.15
corrupted size vs. prev_size 에러.. part2  (0) 2023.12.15
리눅스 커널 6.6.6 릴리즈  (0) 2023.12.13
mmap() 과 munmap() 예제  (0) 2023.11.17
Posted by 구차니

대부분 외래키로 배워와서.. 비식별 관계로 하면 되는구나..

그런데 식별관계 처럼 쓰는 경우는 도대체 머지? 감이 안온다.

식별관계 - 부모 테이블의 기본키/유니크 키를 자식 테이블의 기본키로 사용하는 관계
비식별 관계 -  부모 테이블의 기본키/유니크 키를 외래 키로 사용하는 관계

[링크 : https://deveric.tistory.com/108]

 

erdcloud 사용법 관련

[링크 : https://inpa.tistory.com/entry/ERD-CLOUD-☁%EF%B8%8F-ERD-다이어그램을-온라인에서-그려보자]

[링크 : https://blog.naver.com/sssang97/222808912681]

[링크 : https://velog.io/@lkm021/database007]

'이론 관련 > 컴퓨터 관련' 카테고리의 다른 글

1.58bit  (0) 2024.03.16
gps kalman  (0) 2024.03.13
vRAN  (0) 2023.08.23
cordic (coordinate rotation digital computer)  (0) 2023.02.27
tlv  (0) 2022.10.19
Posted by 구차니