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

  1. 2022.09.23 Xeon 열쇠고...리?
  2. 2022.09.22 한국 대통령 미국 의회에서 망언?
  3. 2022.09.22 2020년형 올데이 그램 써멀패드 작업
  4. 2022.09.21 ipc 성능 비교
  5. 2022.09.21 posix message queue
  6. 2022.09.20 zeroMQ
  7. 2022.09.16 jquery ajax delete가 없다?
  8. 2022.09.15 golang 'go doc'
  9. 2022.09.15 golang main arg, getopt
  10. 2022.09.15 golang json
개소리 왈왈/컴퓨터2022. 9. 23. 14:36

일단은 전체를 하려니 너무 투박하고 무거워서

무게를 조금 줄일겸 깔끔하게 만들려고 뚜껑을 떼었으나

2세대 샌디 기반이라 인듐 솔더 된 모델이다 보니 잘 떼어지지 않을건 예상했으나

 

두둥!! 거의 모든 실리콘과 일부의 실리콘 - PCB 연결부분이 뜯겨져 버렸다.

 

 

조금 더 손을 보니, 더 구려지는 효과가... OTL

1000번 사포 이런걸로 살살살 밀면 좀 광택이 나려나?

 

일단은 아래 구멍을 좀 더 넓히고, 하단의 실리콘 부서지거나 다칠걸 고려해서 순간접착제를 부어서 굳히거나

투명 레진을 부어야 하나 갈등 중. 그것도 아니라면.. 접착식 아스테이지?!

'개소리 왈왈 > 컴퓨터' 카테고리의 다른 글

ai 그림  (0) 2022.11.07
로지텍 M185  (0) 2022.09.26
2020년형 올데이 그램 써멀패드 작업  (0) 2022.09.22
HDMI to USB (capture)  (0) 2022.08.01
USB to HDMI.. 다른 제품  (0) 2022.07.29
Posted by 구차니

처음부터 되서도 안되고 잘 할거라고 생각도 안했지만

하.하.하.

 

내 생에 내 입에서

박근혜가 차라리 나았다 소리가 나오게 될 줄이야.

 

 

지금 국회에서 이 xx들이 승인 안 해주면 바이든이 x 팔려서 어떡하나

[링크 : https://v.daum.net/v/20220922204418464]

Posted by 구차니
개소리 왈왈/컴퓨터2022. 9. 22. 12:30

다시 뜯어보니 그램이나 플렉스 알파나.. 블로워 팬 낮은건 노답인 것 같고(풍량이 어림도 없을..)

 

코어는 꽤 큰 편인데 히트 파이트 하나만으로 식히려고 하니 가능할리가?

 

중앙 약간 왼쪽의 흰색 프라스틱 지지대 높이 까진 올라야 밑판에 닿을수 있을 것 같다.

 

굴러 다니는(?) GELID 서멀패드를 대충 달라서 찹!

 

찹찹!

 

밑판을 조립했다 빼내니 밑판에 써멀이 달라붙었다. 높이는 문제 없다는 의미니 조립 고고!

 

 

이전에 남겨 놓은게 없어서 비교 자료가 없어서 아쉽..

아무튼 가만 냅둬도 60은 기본으로 넘었는데 조금은 양호해진 느낌.

밑판이 좀 많이 멀고 재질도 마그네슘인가 그래서 알루미늄보단 열전도가 떨어지는 느낌?

 

아무튼.. 이 녀석.. 30도 이하로 떨구긴 글러 먹은 듯

'개소리 왈왈 > 컴퓨터' 카테고리의 다른 글

로지텍 M185  (0) 2022.09.26
Xeon 열쇠고...리?  (0) 2022.09.23
HDMI to USB (capture)  (0) 2022.08.01
USB to HDMI.. 다른 제품  (0) 2022.07.29
USB3.0 to HDMI  (0) 2022.07.28
Posted by 구차니
Linux API/linux2022. 9. 21. 19:08

zmq는 이런데서는 확 떨어지는 구나

 

Shared Memory > MQ > UDS > FIFO > Pipe > TCP 이런식인데

POSIX Message Queue가 생각외로 성능이 잘 나와서 놀랍다.

IPC Message rate
Pipe 36539 msg/s
FIFOs (named pipes)  26246 msg/s
Message Queue  67920 msg/s
Shared Memory  3821893 msg/s
TCP sockets 22483 msg/s
Unix domain sockets  40683 msg/s
ZeroMQ  15414 msg/s

 

[링크 : https://stackoverflow.com/questions/50171306/message-queue-vs-tcp-ip-socket-which-ipc-is-faster-in-linux]

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

SIGPIPE  (0) 2022.10.17
linux ipc 최대 데이터 길이  (0) 2022.10.11
posix message queue  (0) 2022.09.21
zeroMQ  (0) 2022.09.20
파일 존재유무 확인하기  (0) 2022.02.11
Posted by 구차니
Linux API/linux2022. 9. 21. 19:01

4세대 벤치에서는 mq가 udp sock보다 빠르다고

https://the-linux-channel.the-toffee-project.org/index.php?page=8-tutorials-research-socket-overhead-in-linux-vs-message-queues-and-benchmarking

https://reakwon.tistory.com/m/209

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

linux ipc 최대 데이터 길이  (0) 2022.10.11
ipc 성능 비교  (0) 2022.09.21
zeroMQ  (0) 2022.09.20
파일 존재유무 확인하기  (0) 2022.02.11
select, poll, epoll  (0) 2021.11.02
Posted by 구차니
Linux API/linux2022. 9. 20. 14:43

ZMQ 혹은 0MQ 라고도 쓰는것 같은데 접속 모델부터 좀 찾아 보는 중

 

REQ-REP는 단순(?)한 요청-응답 모델이고

PUB-SUB는 서버에 의한 broadcast 모델 pipeline은 아직 모르겠다.

REQuest-REPly
PUBlisher - SUBscriber
PUSH- PULL (pipeline)

[링크 : https://soooprmx.com/zmq의-기본-개념들/]

[링크 : https://makersweb.net/opensource/19422]

[링크 : https://zeromq.org/]

 

Figure 2 - Request-Reply Figure 4 - Publish-Subscribe Figure 5 - Parallel Pipeline
Figure 6 - Fair Queuing    
   

[링크 : https://zguide.zeromq.org/docs/chapter1/]

 

Shared Queue (DEALER and ROUTER sockets)
In the Hello World client/server application, we have one client that talks to one service. However, in real cases we usually need to allow multiple services as well as multiple clients. This lets us scale up the power of the service (many threads or processes or nodes rather than just one). The only constraint is that services must be stateless, all state being in the request or in some shared storage such as a database.

[링크 : https://zguide.zeromq.org/docs/chapter2/]

 

Request-Reply Combinations
We have four request-reply sockets, each with a certain behavior. We’ve seen how they connect in simple and extended request-reply patterns. But these sockets are building blocks that you can use to solve many problems.

These are the legal combinations:

REQ to REP
DEALER to REP
REQ to ROUTER
DEALER to ROUTER
DEALER to DEALER
ROUTER to ROUTER

[링크 : https://zguide.zeromq.org/docs/chapter3/]

 

Messaging Patterns

Underneath the brown paper wrapping of ZeroMQ’s socket API lies the world of messaging patterns. ZeroMQ patterns are implemented by pairs of sockets with matching types.
The built-in core ZeroMQ patterns are:
  • Request-reply, which connects a set of clients to a set of services. This is a remote procedure call and task distribution pattern.
  • Pub-sub, which connects a set of publishers to a set of subscribers. This is a data distribution pattern.
  • Pipeline, which connects nodes in a fan-out/fan-in pattern that can have multiple steps and loops. This is a parallel task distribution and collection pattern.
  • Exclusive pair, which connects two sockets exclusively. This is a pattern for connecting two threads in a process, not to be confused with “normal” pairs of sockets.
XPUB socket
Same as PUB except that you can receive subscriptions from the peers in form of incoming messages. Subscription message is a byte 1 (for subscriptions) or byte 0 (for unsubscriptions) followed by the subscription body. Messages without a sub/unsub prefix are also received, but have no effect on subscription status.
XSUB socket
Same as SUB except that you subscribe by sending subscription messages to the socket. Subscription message is a byte 1 (for subscriptions) or byte 0 (for unsubscriptions) followed by the subscription body. Messages without a sub/unsub prefix may also be sent, but have no effect on subscription status.

[링크 : https://zeromq.org/socket-api/]

 

int zmq_device (int device, const void *frontend, const void *backend);
ZMQ_QUEUE starts a queue device
ZMQ_FORWARDER starts a forwarder device
ZMQ_STREAMER starts a streamer device

Queue device
ZMQ_QUEUE creates a shared queue that collects requests from a set of clients, and distributes these fairly among a set of services. Requests are fair-queued from frontend connections and load-balanced between backend connections. Replies automatically return to the client that made the original request.

This device is part of the request-reply pattern. The frontend speaks to clients and the backend speaks to services. You should use ZMQ_QUEUE with a ZMQ_XREP socket for the frontend and a ZMQ_XREQ socket for the backend. Other combinations are not documented.

Refer to zmq_socket(3) for a description of these socket types.

Forwarder device
ZMQ_FORWARDER collects messages from a set of publishers and forwards these to a set of subscribers. You will generally use this to bridge networks, e.g. read on TCP unicast and forward on multicast.

This device is part of the publish-subscribe pattern. The frontend speaks to publishers and the backend speaks to subscribers. You should use ZMQ_FORWARDER with a ZMQ_SUB socket for the frontend and a ZMQ_PUB socket for the backend. Other combinations are not documented.

Refer to zmq_socket(3) for a description of these socket types.

Streamer device
ZMQ_STREAMER collects tasks from a set of pushers and forwards these to a set of pullers. You will generally use this to bridge networks. Messages are fair-queued from pushers and load-balanced to pullers.

This device is part of the pipeline pattern. The frontend speaks to pushers and the backend speaks to pullers. You should use ZMQ_STREAMER with a ZMQ_PULL socket for the frontend and a ZMQ_PUSH socket for the backend. Other combinations are not documented.

Refer to zmq_socket(3) for a description of these socket types.

[링크 : http://api.zeromq.org/2-1:zmq-device]

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

ipc 성능 비교  (0) 2022.09.21
posix message queue  (0) 2022.09.21
파일 존재유무 확인하기  (0) 2022.02.11
select, poll, epoll  (0) 2021.11.02
Unhandled fault: external abort on non-linefetch  (0) 2021.05.25
Posted by 구차니
Programming/jquery2022. 9. 16. 14:40

ajax에서 DELETE로 하면 된다고 해서 해보는데 크롬에서 보면 자꾸 POST로 보내는 것 같기도?

아무튼.. 다시 해보니 되긴한데 머가 잘못되었던 걸까...

 

jquery 문서에는 1.9.0에 추가된 기능으로 POST GET PUT 과 같은 방법을 입력한다고 되어있는데

왜 DELETE가 언급이 안되어 있는걸까?

 

method (default: 'GET')
Type: String
The HTTP method to use for the request (e.g. "POST", "GET", "PUT"). (version added: 1.9.0)

type (default: 'GET')
Type: String
An alias for method. You should use type if you're using versions of jQuery prior to 1.9.0.

 [링크 : https://api.jquery.com/jquery.ajax/]

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

jquery ajax auth  (0) 2023.07.27
jquery-cookie 라이브러리  (0) 2022.09.05
jquery 우클릭 가로채기  (0) 2019.06.04
jquery ajax json flask  (0) 2019.01.07
jquery this 버튼 checked  (0) 2019.01.07
Posted by 구차니
Programming/golang2022. 9. 15. 19:02

 

$ go doc os.Pipe
package os // import "os"

func Pipe() (r *File, w *File, err error)
    Pipe returns a connected pair of Files; reads from r return bytes written to
    w. It returns the files and an error, if any.

 

$ go doc os
package os // import "os"

Package os provides a platform-independent interface to operating system
functionality. The design is Unix-like, although the error handling is Go-like;
failing calls return values of type error rather than error numbers. Often, more
information is available within the error. For example, if a call that takes a
file name fails, such as Open or Stat, the error will include the failing file
name when printed and will be of type *PathError, which may be unpacked for more
information.

The os interface is intended to be uniform across all operating systems.
Features not generally available appear in the system-specific package syscall.

Here is a simple example, opening a file and reading some of it.

    file, err := os.Open("file.go") // For read access.
    if err != nil {
     log.Fatal(err)
    }

If the open fails, the error string will be self-explanatory, like

    open file.go: no such file or directory

The file's data can then be read into a slice of bytes. Read and Write take
their byte counts from the length of the argument slice.

    data := make([]byte, 100)
    count, err := file.Read(data)
    if err != nil {
     log.Fatal(err)
    }
    fmt.Printf("read %d bytes: %q\n", count, data[:count])

Note: The maximum number of concurrent operations on a File may be limited by
the OS or the system. The number should be high, but exceeding it may degrade
performance or cause other issues.

const O_RDONLY int = syscall.O_RDONLY ...
const SEEK_SET int = 0 ...
const PathSeparator = '/' ...
const ModeDir = fs.ModeDir ...
const DevNull = "/dev/null"
var ErrInvalid = fs.ErrInvalid ...
var Stdin = NewFile(uintptr(syscall.Stdin), "/dev/stdin") ...
var Args []string
var ErrProcessDone = errors.New("os: process already finished")
func Chdir(dir string) error
func Chmod(name string, mode FileMode) error
func Chown(name string, uid, gid int) error
func Chtimes(name string, atime time.Time, mtime time.Time) error
func Clearenv()
func DirFS(dir string) fs.FS
func Environ() []string
func Executable() (string, error)
func Exit(code int)
func Expand(s string, mapping func(string) string) string
func ExpandEnv(s string) string
func Getegid() int
func Getenv(key string) string
func Geteuid() int
func Getgid() int
func Getgroups() ([]int, error)
func Getpagesize() int
func Getpid() int
func Getppid() int
func Getuid() int
func Getwd() (dir string, err error)
func Hostname() (name string, err error)
func IsExist(err error) bool
func IsNotExist(err error) bool
func IsPathSeparator(c uint8) bool
func IsPermission(err error) bool
func IsTimeout(err error) bool
func Lchown(name string, uid, gid int) error
func Link(oldname, newname string) error
func LookupEnv(key string) (string, bool)
func Mkdir(name string, perm FileMode) error
func MkdirAll(path string, perm FileMode) error
func MkdirTemp(dir, pattern string) (string, error)
func NewSyscallError(syscall string, err error) error
func Pipe() (r *File, w *File, err error)
func ReadFile(name string) ([]byte, error)
func Readlink(name string) (string, error)
func Remove(name string) error
func RemoveAll(path string) error
func Rename(oldpath, newpath string) error
func SameFile(fi1, fi2 FileInfo) bool
func Setenv(key, value string) error
func Symlink(oldname, newname string) error
func TempDir() string
func Truncate(name string, size int64) error
func Unsetenv(key string) error
func UserCacheDir() (string, error)
func UserConfigDir() (string, error)
func UserHomeDir() (string, error)
func WriteFile(name string, data []byte, perm FileMode) error
type DirEntry = fs.DirEntry
    func ReadDir(name string) ([]DirEntry, error)
type File struct{ ... }
    func Create(name string) (*File, error)
    func CreateTemp(dir, pattern string) (*File, error)
    func NewFile(fd uintptr, name string) *File
    func Open(name string) (*File, error)
    func OpenFile(name string, flag int, perm FileMode) (*File, error)
type FileInfo = fs.FileInfo
    func Lstat(name string) (FileInfo, error)
    func Stat(name string) (FileInfo, error)
type FileMode = fs.FileMode
type LinkError struct{ ... }
type PathError = fs.PathError
type ProcAttr struct{ ... }
type Process struct{ ... }
    func FindProcess(pid int) (*Process, error)
    func StartProcess(name string, argv []string, attr *ProcAttr) (*Process, error)
type ProcessState struct{ ... }
type Signal interface{ ... }
    var Interrupt Signal = syscall.SIGINT ...
type SyscallError struct{ ... }

 

 

$ go help
Go is a tool for managing Go source code.

Usage:

go <command> [arguments]

The commands are:

bug         start a bug report
build       compile packages and dependencies
clean       remove object files and cached files
doc         show documentation for package or symbol

 

$ go help doc
usage: go doc [doc flags] [package|[package.]symbol[.methodOrField]]

Doc prints the documentation comments associated with the item identified by its
arguments (a package, const, func, type, var, method, or struct field)
followed by a one-line summary of each of the first-level items "under"
that item (package-level declarations for a package, methods for a type,
etc.).

Doc accepts zero, one, or two arguments.

Given no arguments, that is, when run as

go doc

it prints the package documentation for the package in the current directory.
If the package is a command (package main), the exported symbols of the package
are elided from the presentation unless the -cmd flag is provided.

When run with one argument, the argument is treated as a Go-syntax-like
representation of the item to be documented. What the argument selects depends
on what is installed in GOROOT and GOPATH, as well as the form of the argument,
which is schematically one of these:

go doc <pkg>
go doc <sym>[.<methodOrField>]
go doc [<pkg>.]<sym>[.<methodOrField>]
go doc [<pkg>.][<sym>.]<methodOrField>

The first item in this list matched by the argument is the one whose documentation
is printed. (See the examples below.) However, if the argument starts with a capital
letter it is assumed to identify a symbol or method in the current directory.

For packages, the order of scanning is determined lexically in breadth-first order.
That is, the package presented is the one that matches the search and is nearest
the root and lexically first at its level of the hierarchy. The GOROOT tree is
always scanned in its entirety before GOPATH.

If there is no package specified or matched, the package in the current
directory is selected, so "go doc Foo" shows the documentation for symbol Foo in
the current package.

The package path must be either a qualified path or a proper suffix of a
path. The go tool's usual package mechanism does not apply: package path
elements like . and ... are not implemented by go doc.

When run with two arguments, the first is a package path (full path or suffix),
and the second is a symbol, or symbol with method or struct field:

go doc <pkg> <sym>[.<methodOrField>]

In all forms, when matching symbols, lower-case letters in the argument match
either case but upper-case letters match exactly. This means that there may be
multiple matches of a lower-case argument in a package if different symbols have
different cases. If this occurs, documentation for all matches is printed.

Examples:
go doc
Show documentation for current package.
go doc Foo
Show documentation for Foo in the current package.
(Foo starts with a capital letter so it cannot match
a package path.)
go doc encoding/json
Show documentation for the encoding/json package.
go doc json
Shorthand for encoding/json.
go doc json.Number (or go doc json.number)
Show documentation and method summary for json.Number.
go doc json.Number.Int64 (or go doc json.number.int64)
Show documentation for json.Number's Int64 method.
go doc cmd/doc
Show package docs for the doc command.
go doc -cmd cmd/doc
Show package docs and exported symbols within the doc command.
go doc template.new
Show documentation for html/template's New function.
(html/template is lexically before text/template)
go doc text/template.new # One argument
Show documentation for text/template's New function.
go doc text/template new # Two arguments
Show documentation for text/template's New function.

At least in the current tree, these invocations all print the
documentation for json.Decoder's Decode method:

go doc json.Decoder.Decode
go doc json.decoder.decode
go doc json.decode
cd go/src/encoding/json; go doc decode

Flags:
-all
Show all the documentation for the package.
-c
Respect case when matching symbols.
-cmd
Treat a command (package main) like a regular package.
Otherwise package main's exported symbols are hidden
when showing the package's top-level documentation.
-short
One-line representation for each symbol.
-src
Show the full source code for the symbol. This will
display the full Go source of its declaration and
definition, such as a function definition (including
the body), type declaration or enclosing const
block. The output may therefore include unexported
details.
-u
Show documentation for unexported as well as exported
symbols, methods, and fields.

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

golang package main  (0) 2022.09.23
golang REST client  (0) 2022.09.23
golang main arg, getopt  (0) 2022.09.15
golang json  (0) 2022.09.15
golang ini  (0) 2022.09.15
Posted by 구차니
Programming/golang2022. 9. 15. 19:00

 

package main

import (
	"fmt"
	"os"
)

func main() {
	argsWithProg := os.Args
	argsWithoutProg := os.Args[1:]

	// You can get individual args with normal indexing.
	arg := os.Args[3]

	fmt.Println(argsWithProg)
	fmt.Println(argsWithoutProg)
	fmt.Println(arg)
}

[링크 : https://gobyexample.com/command-line-arguments]

[링크 : https://stackoverflow.com/questions/2707434/how-to-access-command-line-arguments-passed-to-a-go-program]

[링크 : https://golangdocs.com/command-line-arguments-in-golang]

 

[링크 : https://pkg.go.dev/github.com/pborman/getopt]

 

[링크 : https://pkg.go.dev/os]

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

golang REST client  (0) 2022.09.23
golang 'go doc'  (0) 2022.09.15
golang json  (0) 2022.09.15
golang ini  (0) 2022.09.15
golang http.request  (0) 2022.09.14
Posted by 구차니
Programming/golang2022. 9. 15. 10:36

프로그램 환경설정 파일로 ini나 다른걸 찾아보는데

golang 기본 라이브러리로 json이 있고 yaml은 없다고 하니 고민중

 

func LoadConfigration(path string) Config {
    var config Config
    file, err := os.Open("config.json")
    defer file.Close()
    if err != nil {
        fmt.Println(err.Error())
    }
    jsonParser := json.NewDecoder(file)
    jsonParser.Decode(&config)
    return config
}

[링크 : https://loperlee.tistory.com/15]

 

import "encoding/json"

[링크 : https://pkg.go.dev/encoding/json]

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

golang 'go doc'  (0) 2022.09.15
golang main arg, getopt  (0) 2022.09.15
golang ini  (0) 2022.09.15
golang http.request  (0) 2022.09.14
golang range  (0) 2022.09.06
Posted by 구차니