Jukka Aho (@ahojukka5)

Welcome to my blog !


Varmuuskopioiden verifioiminen

Published at June 4, 2020 ·  2 min read

Kun varmuuskopiointi on kerran saatu toimimaan, on vähän liiankin helppoa unohtaa koko asia. Kuten kaikilla asioilla, myös varmuuskopiolla on taipumusta mennä aikanaan rikki, esimerkiksi kun ohjelmistoja päivitetään, voikin käydä niin että varmuuskopiointia ei enää ajeta. Salasanat tuppaavat unohtumaan kun niitä ei tarvita eikä käytetä. Tai sitten vaan unohtuu tai ei ole tiedossa kuinka koko varmuuskopio tarvittaessa palautetaan. Tätä asiaa on syytä harjoitella, ja mielellään etukäteen eikä siinä vaiheessa, kun varmuuskopioita oikeasti tarvitsisi.

...

SSH-tunnelin pitäminen ylhäällä autossh:lla

Published at June 4, 2020 ·  2 min read

Pätkivissä internet-yhteyksissä ssh-tunnelien pitäminen ylhäällä voi osoittautua melko työlääksi touhuksi. Tämän ongelman voi kuitenkin ratkaista käynnistämällä autossh-ohjelman systemd:llä. Tällä tavalla tunneli luodaan automaattisesti kun tietokone käynnistetään sekä pidetään ylhäällä aina kun intenert-yhteys löytyy.

...

Makefile ja ympäristömuuttujat

Published at June 3, 2020 ·  4 min read

Makefilet ovat varsin kätevä tapa automatisoida erilaisia prosesseja. Monesti myös tulee tarvetta käyttää erilaisia ympäristömuuttujia Makefileissä. Niiden käytössä kuitenkin piilee iso riski, joka voi pahimmillaan maksaa kaikki datasi. Esittelen tässä joitakin keinoja, joilla voit varmistaa, että ympäristömuuttujat todella ovat määriteltyjä.

...

Pandocin suodattimien käyttö

Published at May 31, 2020 ·  4 min read

Aiemmassa postauksessa tarkastelin Pandocin AST:tä. Siihen voi esimerkiksi tallentaa CodeBlock-noden, johon sisältyy ohjelmakoodia. Esittelen tässä lyhyesti, kuinka voidaan vaikuttaa yksityiskohtaisesti siihen, miltä AST:stä renderöity lopputulos näyttää LaTeXilla. Käytännön tasolla, CodeBlock pitää muuttaa RawBlock-nodeksi käyttämällä Pandocin suodattimia.

...

Pandoc-konvertoijan datatyypeistä

Published at May 29, 2020 ·  9 min read

Pandoc on universaali dokumenttikonvertoija. Sillä voi kääntää dokumentteja eri formaattien väilllä, esimerkiksi blogimaailmasta tutusta Markdown-formaatista HTML-formaattiin, ja toisaalta samasta lähteestä myös LaTeX-formaattiin, ja niin edelleen. Kuinka se sen tekee? Pandoc parsii dokumentin abstraktiksi syntaksipuuksi tai AST:ksi (englanniksi “abstract syntax tree”), jonka jälkeen se kirjoittaa tämän edelleen haluttuun formaattiin. Olen tutkiskellut tuota Pandocin AST:tä sekä eri dokumenttien välisiä konversioita ja julkaisen löydökseni tässä blogissa.

...

Ohjelmointikielien tehokkuudesta, Julia vs. C++

Published at May 21, 2020 ·  7 min read

Ajattelin kirjoittaa lyhyen blogisarjan Julia-ohjelmointikielestä, lähinnä tehokkuusnäkökulmasta. Tarkoituksena on tuoda esille joitakin pointteja jotka vaikuttavat ohjelmien suoritusnopeuteen.

...

Wrapping C++ libraries to Julia: part 1

Published at September 24, 2019 ·  2 min read

Ability to wrap old program codes to use them in new programming environments is an essential task for efficient code reuse. In this blog post, I will present a minimum working example on how to compile and wrap a shared C ++ library with CxxWrap.jl. ...

Parametric FEM simulations using JuliaFEM and Gmsh

Published at September 17, 2019 ·  12 min read

The JuliaFEM project develops open-source software for reliable, scalable, distributed Finite Element Method. Gmsh is an open-source 3D finite element mesh generator with a built-in CAD engine and post-processor. In this blog post, I will demonstrate how to create a simple geometry, mesh it using Gmsh Julia API and transfer the mesh after that to a format JuliaFEM understands. Because the mesh is created programmatically, it is possible to parametrize to make an automatic workflow....

Blogging using Jupyter notebooks

Published at January 20, 2019 ·  1 min read

Hello world! In [4]: 1+1 Out[4]: 2 \begin{equation} F\left(t\right)=\int_{0}^{t}\frac{1}{2}x^{2}\,\mathrm{d}x \end{equation} In [5]: using Plots In [9]: x = range(0, stop=2*pi, length=50) y = sin.(x) plot(x, y) Out[9]: 0 1 2 3 4 5 6 -1....