logo

-

-

줄리아에서 윈도 벌룬으로 알림 띄우는 법

코드

줄리아를 어떤 목적으로 사용하든, 태스크가 끝나거나 문제가 발생했을 때 윈도 알림을 통해 보고를 받을 수 있으면 여러 면에서 편리할 것이다. 다음 코드는 윈도에서 파워쉘을 통해 특정 텍스트를 벌룬으로 띄우는 함수 balloon를 정의한 것이다.

function balloon(msg = "에러가 발생했습니다")
    run(`powershell -command "[reflection.assembly]::loadwithpartialname('System.Windows.Forms') | Out-Null; \$n=new-object system.windows.forms.notifyicon; \$n.icon=[System.Drawing.SystemIcons]::Error; \$n.visible=\$true; \$n.showballoontip(5000,'알림','$msg',[system.windows.forms.tooltipicon]::Error); Start-Sleep -Seconds 5; \$n.dispose()"`)
    return nothing
end

실제로 실행하면 다음과 같이 작동한다.

근본적으로 이 방법은 패키지에 의존하지 않고 파워쉘 그 자체를 사용하는 것이기 때문에 system.windows.forms.tooltipicon을 검색해서 MS 공식 문서를 읽는 식으로 기능을 추가하고 확장할 수 있을 것이다.

대안: Alert.jl

지금까지 소개한 방법은 패키지 의존성이 없는 대신 윈도에서만 사용할 수 있는 방법이었다. Alert.jl는 크로스플랫폼을 지원해서 OS에 관계 없이 알림을 사용할 수 있는 패키지다1.


줄리아에서 푸리에 역변환 직접 구하는 법


줄리아에서 시스템 이미지로 패키지 로드 속도 빠르게 하는 법

julia -J sysimage.so

using PackageCompiler
create_sysimage(["Plots"], sysimage_path="sys_plots.so", precompile_execution_file="precompile_plots.jl")
"julia.environmentPath": "C:\\Users\\대식\\path\\to\\your\\project",
"julia.additionalArgs": [
    "--sysimage",
    "C:\\Users\\대식\\path\\to\\sys_plots.so"
]

이거 글 좀 크다… 쉽게 끝날 일이 아님


줄리아로 외부 커맨드에서 실행시킬 코드를 직접 주는 법

julia -e “특정 커맨드”


줄리아 패키지 설치 속도 확인하는 법

https://discourse.julialang.org/t/any-way-to-speed-up-loading-large-precompiled-packages/98762/11

@time_import


줄리아 막대그래프에서 테두리 없애는 법 lw = 0


줄리아 라벨에 다른 번호 쓰는 법

plt = scatter(expanded.u, color = expanded.label, xticks = (lasticds, 1:29), msw = 0, ms = 1, dpi = 300, legend = :none, size = 50 .* [16, 9]);


줄리아 레이텍 문자열에서의 보간법

https://github.com/JuliaStrings/LaTeXStrings.jl

https://discourse.julialang.org/t/plots-string-interpolation-in-labels/10799/4

x=3
L"y = %$x"
plot(rand(10), xlabel = L"y = %$x")

줄리아에서 데이터 읽어들일 때 깨지는 인코딩 문제 해결

https://github.com/JuliaStrings/StringEncodings.jl


줄리아 GR 백엔드 폰트 목록

https://gr-framework.org/fonts.html


다항함수 인터폴레이션의 실제 구현(수치해석)

using Plots, Polynomials

function interpolate(xs, ys)
    V = [x^(i-1) for x in xs, i in 1:length(xs)]
    coeffs = V \ ys
    return Polynomial(coeffs)
end
foo = sort(rand(5))
bar = randn(5)
p = interpolate(foo, bar)
plot(0:0.01:1, p.(0:0.01:1))
scatter!(foo, bar)

근데 이것보단 원래 있는 API로 하는 게 나을듯

https://juliamath.github.io/Polynomials.jl/stable/reference/#Polynomials.fit


줄리아 히트맵에서 특정 부붙 투명하게 남겨두는 법

# 색상은 1일 때만 빨간색, 나머지는 아무것도 렌더링되지 않도록
heatmap!(vf, x_, y_, nc_x',
    alpha = nc_x',
    color = [:transparent, :red],
    colorbar = :none,
    transpose = true
)

텍 여러가지 화살표

\gets \to \implies \iff \impliedby \mapsto \longimplies


텍 소수점 정렬

\documentclass{article} \usepackage{array, siunitx}

\begin{document}

\begin{table}[h] \centering \begin{tabular}{S[table-format=3.2]} \hline {값} \ \hline 12.3 \ 4.56 \ 123.4 \ 78.91 \ \hline \end{tabular} \caption{소수점을 기준으로 정렬된 테이블} \end{table}

\end{document}


텍 등호 정렬

\documentclass{article}
\usepackage{breqn} % 자동 줄바꿈과 등호 정렬

\begin{document}

\begin{dmath}
dx = -0.018 x^{2} + 0.023 x y - 0.008 y^{2} + 0.033 x^{3} - 0.083 x^{2} y + 0.065 x y^{2} - 0.012 y^{3} + 0.02 x^{4} - 0.093 x^{3} y + 0.169 x^{2} y^{2} - 0.137 x y^{3} + 0.038 y^{4} - 0.037 x^{5} + 0.192 x^{4} y - 0.412 x^{3} y^{2} + 0.447 x^{2} y^{3} - 0.244 x y^{4} + 0.054 y^{5} + 0.011 x^{6} - 0.066 x^{5} y + 0.173 x^{4} y^{2} - 0.241 x^{3} y^{3} + 0.188 x^{2} y^{4} - 0.077 x y^{5} + 0.013 y^{6}
\end{dmath}

\begin{dmath}
dy = 0.009 + 0.006 x - 0.003 y + 0.005 x^{2} - 0.005 y^{2} - 0.025 x^{3} + 0.073 x^{2} y - 0.086 x y^{2} + 0.034 y^{3} - 0.025 x^{4} + 0.109 x^{3} y - 0.157 x^{2} y^{2} + 0.094 x y^{3} - 0.018 y^{4} + 0.068 x^{5} - 0.362 x^{4} y + 0.771 x^{3} y^{2} - 0.82 x^{2} y^{3} + 0.439 x y^{4} - 0.095 y^{5} - 0.027 x^{6} + 0.175 x^{5} y - 0.472 x^{4} y^{2} + 0.677 x^{3} y^{3} - 0.547 x^{2} y^{4} + 0.236 x y^{5} - 0.042 y^{6}
\end{dmath}

\end{document}

텍 서수 표현

1\textsuperscript{st}, 2\textsuperscript{nd}