2019-01-01から1年間の記事一覧

Julia - #undef か否かを調べる

環境 Julia 1.3.0 配列の要素が undef か否かを調べる時は isassigned を使う Arrays · The Julia Language julia> v = Vector{Any}(undef, 5) 5-element Array{Any,1}: #undef #undef #undef #undef #undef julia> v[1:3] .= 'a':'c' 3-element view(::Arra…

Julia - ドット . を使って method を呼ぶ

約1年前に全く Julia っぽくない邪道な遊びをしていたなということをふと思い出した。 微妙なメモだけは残っていたので供養しておく。 好奇心に負けて倫理的に許されないことをしてしまった気分になった。#julialang pic.twitter.com/ahmRgVFz7t— goropikari…

Julia - retry 機構

環境 Julia 1.3.0 retry ある処理がエラーになってしまったとき、時間を置いて再度実行したらエラーが出ないことはよく有ることです。例えばサーバーにうまく接続できないとか。 そんなときに使うのが retry 機構です。retry 機構を使うことでエラー時の再実…

Julia - ソースコードを読んでみる

gdb を使って Julia のソースコードを追ってみる 環境 ArchLinux Julia 1.3.0 GNU gdb (GDB) 8.3.1 gcc version 9.2.0 (GCC) gdb でソースコードリーディング gdb で追う場合ソースコードからビルドする必要がある。 $ wget https://github.com/JuliaLang/ju…

Julia - Channel コードサンプル

環境 Julia 1.2.0 Golang で Channel を使ってようやく Julia の Channel の動きを理解できた気がする。 capa = 10 c = Channel(capa) function f(c) for i in 1:10 put!(c, i) end end function g(c) for i in c sleep(0.5) println("From g: ", i) end pri…

Intro to Relational Databases | Udacity を受講した

Udacity で開講されている Intro to Relational Databases を受講してみた。 www.udacity.com 日々、雰囲気で SQL を書いていて基礎知識がないなぁと感じていたので受講してみた。終了するまでに4時間21分費やした。 講義内容としては SQL の基本的な構文(se…

Configuring Linux Web Servers | Udacity を受講した

Udacity で開講されている Configuring Linux Web Servers を受講してみた。 www.udacity.com TIMELINE: Approx. 1 Weeks という講義だけあって重い講義ではないので1日でサクッと終わらせた。 講義では Vagrant を使ってそこに Ubuntu Server を建てるとい…

Introduction to Cybersecurity with Chronicle | Udacity を受講した

ネットワークの勉強の一環で Udacity の Introduction to Cybersecurity を取ってみた。 www.udacity.com 講義動画自体は長くても1分程度で動画を見ると言うよりも各ページに書かれた説明を読んでいくという形だった。 Introduction ということもありセキュ…

AWS Developer: Building on AWS | edX を Terraform を使ってやり直してみた

AWS が edX で開講している AWS Developer: Building on AWS を Terraform でやり直してみた。 www.edx.org この講義では最終的に下図のようなシステムを構築する。 以前にもこの講義を受講したことがあり、その時は講義どおりマネジメントコンソールからポ…

「ふつうのLinuxプログラミング」を読んだ

日頃 Linux を使っているものの、Linux について全然理解していないなぁと思っていたので「ふつうの Liunx プログラミング」を読んでみた。 読み終わるまでに22時間12分かかった。 ふつうのLinuxプログラミング 第2版 Linuxの仕組みから学べるgccプログラミ…

Terraform で 「Amazon Web Services 基礎からのネットワーク&サーバー構築」をやり直す

Terraform の練習がてら「Amazon Web Services 基礎からのネットワーク&サーバー構築」の内容を全て Terraform でやり直してみました。 Amazon Web Services 基礎からのネットワーク&サーバー構築 改訂版作者:玉川憲,片山暁雄,今井雄太,大澤文孝出版社/メー…

Manta40 を組み立てた

少しずつ作っていた自作キーボード "Manta40" がようやく完成しました。 私は軽いキータッチが好きなのでスイッチは Gateron Clear (35 g)。 はんだごてを使うのは久リぶりだったので手こずりましたがなんとか動くものが作れました。 私は Dvorak user なの…

Julia - プロンプトを変える

この記事は Qiita に 2018/08/15 に投稿したものです。2020/3/26 移行しました。 Julia v1.0 への移行作業のために v0.7 と v1.0 を行ったり来たりしているのですが、色々と動作確認しているうちにどっちのバージョンを使っているのか失念することが度々あっ…

Julia - Lisp を作る

環境 Julia 1.1.1 初めての Lisp 作り 最近、Software Design (2017/05, 08, 09)で連載されていた五味さんの「人工知能時代の Lisp のススメ」を読んだので、Julia で Lisp を作ってみました。 とりあえず、五味さんの SDLisp を機械的に Julia に翻訳しただ…

Julia - PostgreSQL に接続する

環境 ArchLinux PostgreSQL 11.5 Julia 1.1.1 LibPQ.jl 0.11.0 Tables.jl 0.2.10 Docker で PostgreSQL を立ち上げる $ docker run -d --name postgres -e POSTGRES_PASSWORD=test -p 5432:5432 postgres:11.5 Julia から PostgreSQL に接続する julia> usin…

Julia - MySQL への接続・データを CSV・JSON で保存する

環境 ArchLinux MySQL 8.0 Julia 1.1.1 MySQL.jl 0.7.0 JSON.jl 0.21.0 Tables.jl 0.2.10 Docker で MySQL を立ち上げる $ docker run --name mysql -e MYSQL_ROOT_PASSWORD=test -d -p 3306:3306 mysql:8.0 # 以下 MySQL 8.0 の場合は必要 $ cd ~/.julia/pa…

Julia - 配列の実装について

2つの配列を結合するときは何故 push! よりも append! が推奨されるのか? sizehint! を何故使うべきなのか? とかあたりの話。今回は一次元配列 (Vector) のみの話で、多次元配列は扱いません。 最近今更ながらデータ構造とアルゴリズムを勉強しているのです…

Julia - 並列計算用のリダクション演算子を作る

ふと「そういえば、Juliaのリダクション (reduction) は分かりづらかったなぁ」と思い出したので複数の変数をリダクションする方法と自前のリダクション演算子(reduction operator, reducer)の作り方について紹介します。 環境 Julia での for 文の並列化 そ…

Julia - パッケージを効率よく読み込む ~ Requires.jl のすすめ ~

Julia 1.0 が出てから半年経って Julia に慣れてきた頃なのか、私のパッケージの作り方の記事が地味に見られているようなので、パッケージを作るときに知っておいて損はない Requires.jl について紹介します。 goropikari.hatenablog.com 環境 三種の神器 Re…

Julia - PackageCompiler.jl を使って Plots.jl を早くする

PackageCompiler.jl の README によるとついに Plots.jl がコンパイルできるようになったらしいので試してみました。 github.com 環境 Plots.jl をコンパイルする スピードを比較 Linux デフォルト PackageCompiler Windows 10 デフォルト PackageCompiler m…

Julia - IJulia のセルで Bash コマンドを使う

環境 Julia 1.1.0 OS: ArchLinux IJulia で ; から始めると Shell mode になるので Bash*1 コマンドが使えるけれども、2行以上書くと実行できなくなる。 run を使えば長々書くことも出来るけれども、それは面倒だなぁというときは以下のマクロを定義する。 #…

Julia - run を使って Julia の中から Julia を実行する方法

環境 Julia 1.1.0 Julia の中から Julia を実行する Julia を使っていると、 Julia の中から run を使って Julia を起動したいと思うことがあると思います。 このように run(`julia ex.jl`) ただこの方法はすでに julia へ PATH が通っていれば良いのですが…