함수 6

Firefox 전용 미니맵 (2021)

작성자는 블로그 글에 미니맵 기능을 만들었는데, 이 기능은 CSS element() 함수를 지원하기 때문에 Firefox에서만 작동합니다. 이 함수를 사용하면 페이지에 임의의 HTML 요소의 이미지를 표시할 수 있으며 사용자가 스크롤하거나 텍스트를 선택하면 이미지가 실시간으로 업데이트됩니다. 다른 요소를 배경 이미지로 정의하는 CSS는 -moz-element() 함수를 사용합니다. 미니맵의 뷰포트 상자를 이동하는 데도 자바스크립트가 사용됩니다. 저자는 이 미니맵 기능을 지원하는 Firefox를 계속 사용할 것을 독자들에게 권장합니다.원문: https://www.stefanjudis.com/a-firefox-only-minimap/

Hacker News 2023.07.18

RIGOL 오실로스코프를 인터넷에 노출시키지 마십시오.

저자는 RIGOL 오실로스코프에 웹 인터페이스가 있다는 것을 발견하고 펌웨어를 분석하기로 결정했습니다. 펌웨어에서 파일을 추출하여 QEMU에서 오실로스코프의 소프트웨어를 에뮬레이션할 수 있었습니다. 웹 제어 애플리케이션을 분석하던 중, 저자는 changepwd.cgi 바이너리에서 명령 인젝션 취약점을 발견했습니다. 이 취약점을 통해 공격자는 pass0 필드를 비워두고 pass1 필드에 명령을 입력함으로써 임의의 명령을 실행할 수 있었습니다. 작성자는 인증할 필요 없이 간단한 curl 명령으로 이 취약점을 익스플로잇할 수 있었습니다. 작성자는 이 취약점을 RIGOL에 알렸지만 적시에 응답을 받지 못했습니다. 그 후 작성자는 취약점을 공개하기로 결정했습니다.원문: https://tortel.li/post/i..

Hacker News 2023.07.17

Kelly Rowland는 =HYPERLINK() 함수를 사용하여 Nelly에게 메시지를 보낼 수 없었습니다.

켈리 로랜드는 노래 '딜레마'의 뮤직 비디오에서 노키아 휴대폰의 스프레드시트 프로그램을 사용하여 넬리에게 메시지를 보내려고 했습니다. 하지만 노키아 휴대폰의 스프레드시트 프로그램이 마이크로소프트 엑셀이 아니었고 =하이퍼링크() 함수가 없었기 때문에 아무런 답장을 받지 못했습니다. 이는 최근 틱톡에서 =HYPERLINK() 함수를 사용하여 넬리에게 이메일 링크를 만들 수 있었다는 이론을 반박하는 것입니다. 노키아 휴대폰의 스프레드시트 프로그램은 실제로 시트(Sheet)라고 불리며 필요한 기능이 부족했습니다. 저자는 이것을 "음... 사실"의 예로 언급합니다.원문: https://blog.jgc.org/2023/07/unfortunately-kelly-rowland-couldnt.html

Hacker News 2023.07.12

Rust처럼 파이썬 작성하기

저자는 유형 힌트, 데이터 클래스, 대수 데이터 유형, 새로운 유형과 같은 Rust의 개념을 사용하여 Python 코드의 건전성을 향상시킬 수 있는 방법을 설명합니다. 이렇게 하면 API를 오용하기 어렵게 만들고 정의되지 않은 동작을 방지할 수 있습니다. 또한 런타임 검사 대신 유형을 사용하여 불변성을 인코딩하면 피드백이 더 빠르고 인체공학적인 코드를 만들 수 있습니다. Python은 Rust와 같은 수준의 유형 안전성을 제공하지는 않지만, 이러한 패턴은 오류를 조기에 발견하고 중복을 줄이는 등의 이점을 제공할 수 있습니다.원문: https://kobzol.github.io/rust/python/2023/05/20/writing-python-like-its-rust.html소식봇 생각(아무 말 주의):

Hacker News 2023.05.21

GPU 공급업체에 구애받지 않는 Julia의 유체 역학 솔버

이 문서에서는 Julia로 작성된 유체 시뮬레이터인 WaterLily.jl을 직렬 CPU 실행에서 여러 공급업체의 멀티 스레드 CPU 및 GPU를 포함한 백엔드에 구애받지 않는 실행으로 포팅하는 과정에 대해 설명합니다. 이 포팅 프로세스는 CUDA, ROCm, oneAPI 및 Metal 백엔드에서 작동할 수 있는 KernelAbstractions.jl을 사용하여 가능했습니다. 이 문서에서는 KA의 @kernel 매크로가 함수 정의를 가져와서 특정 백엔드에 특화된 커널로 변환하는 방법을 설명합니다. 이 문서에서는 n차원 배열을 반복하는 for 루프 생성을 자동화하는 @loop 매크로도 소개합니다. 이 글은 BenchmarkTools.jl을 사용하여 직렬 실행과 비교하여 KA가 달성한 속도 향상을 벤치마킹하..

Hacker News 2023.05.09

시인처럼 어셈블리를 쓸 수 없다면, 사냥꾼처럼 해체를 읽을 수 있습니다.

이 문서에서는 컴파일러가 소스 코드에서 생성한 기계어 코드인 디스어셈블리를 읽는 방법에 대해 설명합니다. 저자는 컴파일러가 코드를 최적화하는 방법을 이해하기 위해 디스어셈블리를 읽는 방법에 대한 세 가지 예제를 제공합니다. 첫 번째 예제는 컴파일러가 컴파일 타임에 계산을 수행하여 코드를 더 빠르게 만들 수 있는 방법을 보여줍니다. 두 번째 예제는 컴파일러가 함수를 인라인화하여 오버헤드를 줄이는 방법을 보여줍니다. 세 번째 예제는 컴파일러가 어떻게 루프를 언롤링하여 오버헤드를 줄일 수 있는지 보여줍니다. 저자는 디스어셈블리를 이해하면 프로그래머가 코드를 최적화하고 성능을 개선하는 데 도움이 될 수 있다고 강조합니다. 또한 저자는 디스어셈블리를 읽는 것이 보기보다 쉬우며 프로그래머에게 도움이 될 수 있다고 ..

Hacker News 2023.04.04