Move articles posts

master
Samuel ORTION 3 months ago
parent dd6e2e14e4
commit 8850ee34b2
  1. 117
      content/compute_inverse_of_a_matrix.md
  2. 59
      content/draw_a_plot_in_c.md
  3. 155
      content/make_automatic_documentation.md
  4. 31
      content/render_equation_in_pelican.md
  5. 348
      output/analyse-sound-on-gnulinux-using-wine.html
  6. 217
      output/archives.html
  7. 383
      output/author/samuel-ortion.html
  8. 204
      output/authors.html
  9. 342
      output/automatized-code-documentation.html
  10. 208
      output/categories.html
  11. 221
      output/category/audio.html
  12. 223
      output/category/code.html
  13. 220
      output/category/documentation.html
  14. 226
      output/category/linux.html
  15. 293
      output/category/math.html
  16. 230
      output/drafts/algorithmes-alignement-sequences-fr.html
  17. 240
      output/drafts/classify-blood-cells-using-neural-networks.html
  18. 272
      output/draw-a-plot-in-c-with-gnu-plotutils.html
  19. 524
      output/feeds/all.atom.xml
  20. 203
      output/fr/archives.html
  21. 313
      output/fr/author/samuel-ortion.html
  22. 203
      output/fr/authors.html
  23. 346
      output/fr/automatized-code-documentation.html
  24. 203
      output/fr/categories.html
  25. 220
      output/fr/category/documentation.html
  26. 293
      output/fr/category/math.html
  27. 230
      output/fr/drafts/algorithmes-alignement-sequences.html
  28. 348
      output/fr/drafts/analyse-sound-on-gnulinux-using-wine-en.html
  29. 342
      output/fr/drafts/automatized-code-documentation-en.html
  30. 240
      output/fr/drafts/classify-blood-cells-using-neural-networks-en.html
  31. 272
      output/fr/drafts/draw-a-plot-in-c-with-gnu-plotutils-en.html
  32. 266
      output/fr/drafts/install-gephi-on-linux-en.html
  33. 324
      output/fr/drafts/matrix-inverse-algorithm-en.html
  34. 246
      output/fr/drafts/rendering-latex-pelican-en.html
  35. 305
      output/fr/drafts/using-virtual-environments-en.html
  36. 276
      output/fr/draw-a-plot-in-c-with-gnu-plotutils.html
  37. 2
      output/fr/feeds/all.atom.xml
  38. 200
      output/fr/index.html
  39. 328
      output/fr/matrix-inverse-algorithm.html
  40. 206
      output/fr/pages/about.html
  41. 204
      output/fr/pages/contact.html
  42. 250
      output/fr/rendering-latex-pelican.html
  43. 257
      output/fr/tag/c.html
  44. 220
      output/fr/tag/doxygen.html
  45. 236
      output/fr/tag/latex.html
  46. 256
      output/fr/tag/math.html
  47. 236
      output/fr/tag/pelican.html
  48. 220
      output/fr/tag/python.html
  49. 220
      output/fr/tag/sphinx.html
  50. 202
      output/fr/tags.html
  51. BIN
      output/images/batsound.png
  52. BIN
      output/images/batsound/enter-sound-format-menu.png
  53. BIN
      output/images/batsound/enter-spectrogram-settings-defaults.png
  54. BIN
      output/images/batsound/pipkuh-spectro-batsound.png
  55. BIN
      output/images/batsound/spectrogram-settings-default-values.png
  56. BIN
      output/images/favicon.ico
  57. BIN
      output/images/launch_wine.png
  58. BIN
      output/images/sphinx/make_documentation_sphinx.png
  59. BIN
      output/images/vigie-chiro.png
  60. 382
      output/index.html
  61. 266
      output/install-gephi-on-linux.html
  62. 324
      output/matrix-inverse-algorithm.html
  63. 206
      output/pages/about.html
  64. 204
      output/pages/contact.html
  65. 246
      output/rendering-latex-pelican.html
  66. 221
      output/tag/bat.html
  67. 221
      output/tag/batsound.html
  68. 221
      output/tag/bird.html
  69. 257
      output/tag/c.html
  70. 220
      output/tag/doxygen.html
  71. 226
      output/tag/graph.html
  72. 223
      output/tag/julia.html
  73. 236
      output/tag/latex.html
  74. 226
      output/tag/linux.html
  75. 256
      output/tag/math.html
  76. 236
      output/tag/pelican.html
  77. 243
      output/tag/python.html
  78. 223
      output/tag/r.html
  79. 220
      output/tag/sphinx.html
  80. 221
      output/tag/syrinx.html
  81. 221
      output/tag/ultrasound.html
  82. 226
      output/tag/visualization.html
  83. 219
      output/tags.html
  84. 4
      output/theme/font-awesome/css/font-awesome.min.css
  85. BIN
      output/theme/font-awesome/fonts/FontAwesome.otf
  86. BIN
      output/theme/font-awesome/fonts/fontawesome-webfont.eot
  87. 685
      output/theme/font-awesome/fonts/fontawesome-webfont.svg
  88. BIN
      output/theme/font-awesome/fonts/fontawesome-webfont.ttf
  89. BIN
      output/theme/font-awesome/fonts/fontawesome-webfont.woff
  90. BIN
      output/theme/font-awesome/fonts/fontawesome-webfont.woff2
  91. BIN
      output/theme/img/cc/by-nc-nd.png
  92. BIN
      output/theme/img/cc/by-nc-sa.png
  93. BIN
      output/theme/img/cc/by-nc.png
  94. BIN
      output/theme/img/cc/by-nd.png
  95. BIN
      output/theme/img/cc/by-sa.png
  96. BIN
      output/theme/img/cc/by.png
  97. BIN
      output/theme/img/profile.png
  98. BIN
      output/theme/img/social/facebook.png
  99. BIN
      output/theme/img/social/instagram.png
  100. BIN
      output/theme/img/social/mastodon.png
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,117 +0,0 @@
Title: Compute the inverse of a matrix
Date: 2022-06-14 14:20
Modified: 2022-06-14 14:20
Category: math
Tags: math, python
Slug: matrix-inverse-algorithm
Authors: Samuel ORTION
Summary: I faced recently the issue of computing the inverse of a matrix, when I wrote the Algae library code. I finally found a solution, and here it is.
## Introduction
Recently, I wrote a C++ Library [[1]](#ref-algae) for linear algebra, and wanted to wrote a method to inverse a matrix. I got stuck for a while, but finally, I found a solution. Here it is.
## The algorithm
The algorithm is rather simple. It firstly check if the matrix is squared, as is it required for the inverse.
Then it computes the determinant of the matrix, and check if it is not zero.
If not, it computes for each element of the matrix, the submatrix of the transposed matrix without the row and column of the element.
Finally it set the element of the matrix as the formula goes:
$$
A^{-1}_{i, j} = (-1)^{i+j} \times \det(subA.T) / \det(A)
$$
## Python implementation
For the sake of simplicity, here we describe the algorithm in Python, rather than C++.
```python
#!/usr/bin/env python3
"""Get the submatrix of the matrix without the row and column of the element at position (a, b)."""
def submatrix(a, b, matrix):
submatrix = [[0 for i in range(len(matrix[j]) - 1)] for j in range(len(matrix) - 1)]
for j in range(len(submatrix)):
y = j if j < b else j + 1
for i in range(len(submatrix[j])):
x = i if i < a else i + 1
submatrix[j][i] = matrix[y][x]
return submatrix
"""Return (-1)^i"""
def toggle(i):
return 1 if i % 2 == 0 else -1
"""Compute the determinant of the matrix"""
def determinant(matrix):
if len(matrix) != len(matrix[0]):
raise ValueError("The matrix must be squared.")
if len(matrix) == 1:
return matrix[0][0]
elif len(matrix) == 2:
return matrix[0][0] * matrix[1][1] - matrix[0][1] * matrix[1][0]
else:
det = 0
for i in range(len(matrix)):
det += toggle(i) * matrix[0][i] * determinant(submatrix(i, 0, matrix))
return det
"""Get the transposed matrix"""
def transpose(matrix):
transposed = [[0 for i in range(len(matrix[j]))] for j in range(len(matrix))]
for i in range(len(matrix)):
for j in range(len(matrix[i])):
transposed[j][i] = matrix[i][j]
return transposed
"""Invert the matrix if possible"""
def invert(matrix):
if len(matrix) != len(matrix[0]):
raise ValueError("The matrix must be squared.")
det = determinant(matrix)
if det == 0:
raise ValueError("The matrix is not invertible.")
else :
inverse = [[0 for i in range(len(matrix[j]))] for j in range(len(matrix))]
transposed = transpose(matrix)
for j in range(len(matrix)):
for i in range(len(matrix[j])):
sm = submatrix(i, j, transposed)
sm_det = determinant(sm)
inverse[j][i] = toggle(i + j) * sm_det / det
return inverse
def main():
# Test submatrix calculation
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
minor = [[5, 6], [8, 9]]
assert submatrix(0, 0, matrix) == minor, "Minor does not work properly."
# Test submatrix calculation 2
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
minor = [[1, 3], [7, 9]]
assert submatrix(1, 1, matrix) == minor, "Minor does not work properly."
# Test tranposition of matrix
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transposed = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
assert transposed == transpose(matrix), "Transpose does not work properly."
# Test determinant calculation
matrix = [[8, 2, 3], [4, 7, 6], [7, 8, 9]]
assert determinant(matrix) == 81, "Determinant does not work properly."
# Test inversion of a matrix
matrix = [[1, 4],[3, 2]]
assert invert(matrix) == [[-1/5, 2/5], [3/10, -1/10]], "Inversion does not work properly."
print("All is fine !")
if __name__ == "__main__":
main()
```
This little piece of code is available [here](https://framagit.org/-/snippets/6636/).
## References
- <a name="ref-algae">[1]</a> [Algae: A C++ Library for Linear Algebra](https://framagit.org/1ibre/lib/algae/)

@ -1,59 +0,0 @@
Title: Draw a Plot in C with GNU plotutils
Author: Samuel ORTION
Date: 2022-06-12 8:13
Category: math
Tags: c
## Install plotutils
### Debian
```bash
$ sudo apt-get install plotutils-dev
```
### Fedora
```bash
$ sudo dnf install plotutils-devel
```
## Use PlotUtils to plot a graph
Let us draw the $sin(x)$ function using math library.
```c
#include <stdio.h>
#include <math.h>
#define RANGE 100
// Export data to stdout
void plot(double *x, double *y, size_t len)
{
for (unsigned int i = 0; i < len; i++)
printf("%lf %lf\n", x[i], y[i]);
}
int main(void)
{
int i;
double x[RANGE], y[RANGE];
// Compute sin(x)
for (i = 0; i < RANGE; i++)
{
x[i] = i * 0.1;
y[i] = sin(x[i]);
}
plot(x, y, 100);
return 0;
}
```
```bash
$ gcc -o plot plot.c -lm
$ ./plot # Show data on screen
```
### Use graph utility to plot the data
```bash
$ ./plot | graph -T X -T PNG -L "sin(x)" > output.png
```

@ -1,155 +0,0 @@
Title: How to make automatic documentation using Doxygen, breathe and Sphinx
Date: 2022-06-15 11:56
Modified: 2022-06-15 12:35
Category: documentation
Tags: C++, Doxygen, Sphinx
Slug: automatized-code-documentation
Authors: Samuel ORTION
Summary: Doing documentation is required, to allow people to use your project. Here I present a rather easy solution.
## Introduction
I recently wrote a C++ Library, and I wanted to document how to use it. I searched for a solution to extract the documentation from the code, and I found [Doxygen](https://www.doxygen.org/). It works well, but produces an ugly html output.
So I decided, with advices from the [JeBif](https://jebif.fr/) discord, to use Sphinx, to render the documentation.
Sphinx does not extract documentation from source code, it rather generates the documentation from Markdown or ReStructuredText files, so I still use Doxygen to do this job, and thanks to breathe, we can use its xml output to render documentation using Sphinx.
## Let's go !
### Setting all the stuff up
First of all, Install Doxygen.
```bash
apt-get install doxygen
```
Let us create a dummy example:
```bash
mkdir myawesomelibrary
cd myawesomelibrary
mkdir include
cd include
```
And create a dummy header file:
```c++
// myawesomelibrary/include/cat.hpp
/**
* @brief This is a cat
*/
class Cat {
public:
Cat() {
say("I'm a cat");
}
/**
* @brief the cat is saying meow
*/
void meow()
{
say("meow");
}
/**
* @brief the cat is saying something
*/
void say(const std::string& message)
{
std::cout << message << std::endl;
}
};
```
Let's generate the doxygen cofiguration file:
```bash
cd ..
doxygen -g Doxyfile
```
Then in this file, we have to set the path to the header files source directory, and allow doxygen to look up to source code files recursively. It is also time to set the output directory.
```text
INPUT = "./include"
EXTRACT_ALL = YES
RECURSIVE = YES
OUTPUT_DIRECTORY = "./doc/"
```
We need to tell doxygen to generate the xml output.
```text
GENERATE_XML = YES
```
And, we can disable html and $\LaTeX$ output.
```tex
GENERATE_HTML = NO
GENERATE_LATEX = NO
```
Now let's set up Sphinx
```bash
mkdir doc
cd doc
sudo apt install python-sphinx
sphinx-quickstart
```
In the `conf.py` file, we need to add the following lines:
```python
extensions = ['breathe']
breathe_projects = {'myawesomelibrary': '../xml'}
breathe_default_project = 'myawesomelibrary'
```
Of course we also need to install the `breathe` package.
```bash
pip install breathe
```
We need to tell Sphinx to render the class documentation:
```rst
// in `index.rst`
.. doxygenclass:: Cat
:members:
```
We can use the theme from ReadTheDocs:
```bash
pip install sphinx_rtd_theme
```
```python
# in conf.py
html_theme = 'sphinx_rtd_theme'
```
### Generating the documentation
```bash
cd .. # go back to the root of the project
doxygen Doxyfile
cd doc
make html
```
That's it !
The output is in the `doc/build/html` directory.
Here is the result I got:
![sphinx dummy documentation](/images/sphinx/make_documentation_sphinx.png)

@ -1,31 +0,0 @@
Title: How to render LaTeX formula in Pelican
Date: 2022-06-14 14:28
Modified: 2022-06-14 14:28
Category: math
Tags: math, latex, pelican
Slug: rendering-latex-pelican
Authors: Samuel ORTION
<!-- Summary: -->
Rendering $\LaTeX$ formulas in Pelican is easy.
Firstly import the pelican plugin in the proper python environment:
```bash
pip install pelican-render-math
```
Then type formula in your blog post markdown documents:
```tex
$$
\frac{1}{2}
$$
```
$$
\frac{1}{2}
$$
And that's it !

@ -0,0 +1,348 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="" />
<link rel="stylesheet" type="text/css" href="/theme/stylesheet/style.min.css">
<link rel="stylesheet" type="text/css"
href="/theme/pygments/github.min.css">
<link rel="stylesheet" type="text/css" href="/theme/font-awesome/css/font-awesome.min.css">
<link href="https://blog.samuel.ortion.fr/feeds/all.atom.xml" type="application/atom+xml" rel="alternate"
title="BioloGeek's blog Atom">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<meta name="author" content="Samuel ORTION" />
<meta name="description" content="After recording bats, orthoptera or birds, it is often necesserary to see the spectrograms of the sounds, for instance while analysing Vigie-Chiro Program bat records The software needed to do so are often only for Windows, in the present article, we will learn how to install these softwares (i.e …" />
<meta name="keywords" content="bat, bird, ultrasound, syrinx, batsound">
<meta property="og:site_name" content="BioloGeek's blog"/>
<meta property="og:title" content="Analyse Sound on GNU/Linux using Wine"/>
<meta property="og:description" content="After recording bats, orthoptera or birds, it is often necesserary to see the spectrograms of the sounds, for instance while analysing Vigie-Chiro Program bat records The software needed to do so are often only for Windows, in the present article, we will learn how to install these softwares (i.e …"/>
<meta property="og:locale" content="en_US"/>
<meta property="og:url" content="./analyse-sound-on-gnulinux-using-wine.html"/>
<meta property="og:type" content="article"/>
<meta property="article:published_time" content="2021-03-25 10:40:00+01:00"/>
<meta property="article:modified_time" content=""/>
<meta property="article:author" content="./author/samuel-ortion.html">
<meta property="article:section" content="audio"/>
<meta property="article:tag" content="bat"/>
<meta property="article:tag" content="bird"/>
<meta property="article:tag" content="ultrasound"/>
<meta property="article:tag" content="syrinx"/>
<meta property="article:tag" content="batsound"/>
<meta property="og:image" content="">
<title>BioloGeek's blog &ndash; Analyse Sound on GNU/Linux using Wine</title>
</head>
<body>
<aside>
<div>
<a href=".">
<img src="./theme/img/profile.png" alt=""
title="">
</a>
<h1><a href="."></a></h1>
<p>The Blog of a juvenile Geekus biologicus</p>
<nav>
<ul class="list">
<li><a href="./pages/about.html#about">About</a></li>
<li><a href="./pages/contact.html#contact">Contact</a></li>
<li><a href="https://samuel.ortion.fr" target="_blank">website</a></li>
<li><a href="https://forge.chapril.org/UncleSamulus" target="_blank">forge</a></li>
<li><a href="https://gallery.samuel.ortion.fr" target="_blank">gallery</a></li>
</ul>
</nav>
<ul class="social">
<li><a class="sc-mastodon" href="https://mamot.fr/@unclesamulus" target="_blank"><img
src="/theme/img/social/mastodon.png"></a></li>
<li><a class="sc-twitter" href="https://twitter.com/SAmULuUus" target="_blank"><img
src="/theme/img/social/twitter.png"></a></li>
</ul>
</div>
</aside>
<main>
<nav>
<a href=".">Home
</a>
<a href="https://blog.samuel.ortion.fr/feeds/all.atom.xml">Atom
</a>
<a class="active" href="/">English</a>
<a href="/fr">Français</a>
</nav>
<article class="single">
<header>
<h1 id="analyse-sound-on-gnulinux-using-wine">Analyse Sound on GNU/Linux using Wine</h1>
<p>
Posted on Thu 25 March 2021 in <a href="./category/audio.html">audio</a>
</p>
</header>
<div>
<p>After recording bats, orthoptera or birds, it is often necesserary to see the spectrograms of the sounds, for instance while analysing <a href="http://www.vigienature.fr/fr/chauves-souris">Vigie-Chiro Program</a> bat records</p>
<p>The software needed to do so are often only for Windows, in the present article, we will learn how to install these softwares (i.e. Kaleidoscope, Syrinx, Batsound 4, 7-zip, Lupas-Rename).</p>
<h2>Install Wine</h2>
<p>Wine is a software that enable .exe software to run on UNIX systems such as Linux or Mac OS.</p>
<h3>On Debian and derivatives (Ubuntu...)</h3>
<p>Enable 32 bit packages (if you haven't already):</p>
<div class="highlight"><pre><span></span><code>sudo dpkg --add-architecture i386
</code></pre></div>
<p>Download and install the repository key:</p>
<div class="highlight"><pre><span></span><code>wget -nc https://dl.winehq.org/wine-builds/winehq.key
sudo apt-key add winehq.key
</code></pre></div>
<p>Add the repository to /etc/apt/sources.list or create a wine.list under /etc/apt/sources.list.d/ with the following content:</p>
<div class="highlight"><pre><span></span><code><span class="k">deb</span><span class="w"> </span><span class="s">https://dl.winehq.org/wine-builds/debian/</span><span class="w"> </span><span class="kp">buster</span><span class="w"> </span><span class="kp">main</span><span class="w"> </span>
</code></pre></div>
<p>Update packages</p>
<div class="highlight"><pre><span></span><code>sudo apt update
</code></pre></div>
<p>Install Wine stable</p>
<div class="highlight"><pre><span></span><code>sudo apt install --install-recommends winehq-stable
</code></pre></div>
<h3>On Fedora, RHEL, and derivatives</h3>
<p>Add repository :</p>
<div class="highlight"><pre><span></span><code>dnf config-manager --add-repo https://dl.winehq.org/wine-builds/fedora/33/winehq.repo
</code></pre></div>
<p>Install stable package :</p>
<div class="highlight"><pre><span></span><code>dnf install winehq-stable
</code></pre></div>
<h2>Install Kaleidoscope</h2>
<p>Kaleidoscope is available on both fedora and debian based distros at <a href="https://www.wildlifeacoustics.com/">wildlife acoustics</a>.</p>
<h2>Install Syrinx</h2>
<p>As all following softwares, Syrinx is not available for GNU/Linux, we need Wine to execute the <code>.exe</code>.
Syrinx-PC is available at <a href="https://drive.google.com/file/d/0B5ZM90wrDzUOM0ZfYlpDR2l1cU0/view">Google Drive</a>.
You will also need the config files available at <a href="https://drive.google.com/file/d/0B5ZM90wrDzUOQnBhRjNVRFM1Rkk/view">Google Drive</a>.</p>
<p>You have almost two options :
You can either right click on the <code>.exe</code> installer and select <code>Open with other application</code> and <code>Wine Windows Program Loader</code>, or either run <code>wine syrinxalphainst.exe</code> in Terminal.</p>
<h3>Set up app launcher</h3>
<p>You have to create a new file <code>.local/share/applications/syrinx.desktop</code>:</p>
<div class="highlight"><pre><span></span><code><span class="k">[Desktop Entry]</span><span class="w"></span>
<span class="na">Type</span><span class="o">=</span><span class="s">Application</span><span class="w"></span>
<span class="na">Encoding</span><span class="o">=</span><span class="s">UTF-8</span><span class="w"></span>
<span class="na">Name</span><span class="o">=</span><span class="s">Syrinx</span><span class="w"></span>
<span class="na">Comment</span><span class="o">=</span><span class="s">Acoustic analysis</span><span class="w"></span>
<span class="na">Exec</span><span class="o">=</span><span class="s">/usr/bin/wine /home/&lt;USER&gt;/.wine/drive_c/Program\ Files\ (x86)/syrinx/Syrinx.exe</span><span class="w"></span>
<span class="na">Icon</span><span class="o">=</span><span class="s">/home/&lt;USER&gt;/.wine/drive_c/Program Files (x86)/syrinx/img/vigie-chiro.png</span><span class="w"></span>
<span class="na">Terminal</span><span class="o">=</span><span class="s">false</span><span class="w"></span>
</code></pre></div>
<p>Change <code>&lt;USER&gt;</code> by your username. To have the icon, you can download <a href="images/vigie-chiro.png"><code>vigie-chiro.png</code></a>.
To analyse ultrasound, with a 384 kHz sampling frequency, we have to open <code>Configs_syrinx/exp384.dsp</code>; and next Load sound file (<code>Ctrl+L</code>). To switch to other sound file in same folder, we can use <code>alt+arrows</code>. For more tips, you can view <a href="https://www.youtube.com/watch?v=BPPSw2FSLxs">the video of Charlotte ROEMER (Fr)</a>.</p>
<h2>Install and Configure Batsound 4</h2>
<p>The procedure is quite similar with Syrinx-PC installation.</p>
<h3>Set up app launcher</h3>
<p>Create a new file <code>.local/share/applications/batsound.desktop</code>:</p>
<div class="highlight"><pre><span></span><code><span class="k">[Desktop Entry]</span><span class="w"></span>
<span class="na">Type</span><span class="o">=</span><span class="s">Application</span><span class="w"></span>
<span class="na">Encoding</span><span class="o">=</span><span class="s">UTF-8</span><span class="w"></span>
<span class="na">Name</span><span class="o">=</span><span class="s">Batsound</span><span class="w"></span>
<span class="na">Comment</span><span class="o">=</span><span class="s">Acoustic analysis</span><span class="w"></span>
<span class="na">Exec</span><span class="o">=</span><span class="s">/usr/bin/wine /home/&lt;USER&gt;/.wine/drive_c/Program\ Files\ (x86)/Pettersson/Batsound4/BatSound.exe</span><span class="w"></span>
<span class="na">Icon</span><span class="o">=</span><span class="s">/home/&lt;USER&gt;/.wine/drive_c/Program Files (x86)/Pettersson/Batsound4/img/batsound.png</span><span class="w"></span>
<span class="na">Terminal</span><span class="o">=</span><span class="s">false</span><span class="w"></span>
</code></pre></div>
<p>(Do not forget to change <code>&lt;USER&gt;</code> to your username.)</p>
<p>To have the icon, you can download <a href="images/batsound.png"><code>batsound.png</code></a>.</p>
<h3>Configure Batsound to analyse ultrasounds</h3>
<ul>
<li>Enter the <code>Sound/Sound Format</code> menu.</li>
</ul>
<p><img alt="Entering Sound/Sound Forma menu" src="images/batsound/enter-sound-format-menu.png"></p>
<ul>
<li>Change <code>Time expansion</code> value to 10 (according to your recorder settings)</li>
<li>
<p>Keep 44 100 as <code>Samples per second</code> value.</p>
</li>
<li>
<p>Enter the <code>Analysis/Spectrogram Settings - Defaults</code> menu.</p>
</li>
</ul>
<p><img alt="Entering Spectrogram Setting - Defaults menu" src="images/batsound/spectrogram-settings-default-values.png"></p>
<ul>
<li>Change <code>Max frequency</code> to <code>150000</code>;</li>
<li>Set <code>Amplitude color mapping</code> to <code>Yellow, Red &amp; Blue</code>;</li>
<li>
<p>Adapt <code>Threshold</code> to sound intensity.</p>
</li>
<li>
<p>You can zoom in.</p>
</li>
</ul>
<p>With a <em>Pipistrellus kuhlii</em> record, I obtain the following spectrogram with the above settings :
<img alt="pipkuh spectro" src="images/batsound/pipkuh-spectro-batsound.png"></p>
<h2>Install 7-zip</h2>
<p>7-zip is useful in Vigie-Chiro process to compress audio files for faster upload to <a href="https://vigiechiro.herokuapp.com">https://vigiechiro.herokuapp.com</a>.</p>
<ol>
<li>Download <code>.exe</code> installer at <a href="https://www.7-zip.org/">https://www.7-zip.org/</a></li>
<li>Execute <code>7z1900.exe</code> with wine.</li>
</ol>
<h2>Install Lupas-Rename</h2>
<p>Lupas-Rename is used in Vigie-Chiro protocole to batch rename audio file to add protocoles informations such as pass and square.</p>
<ol>
<li>Dowload <code>.exe</code> installer at <a href="https://rename.lupasfreeware.org/download.php">https://rename.lupasfreeware.org/download.php</a></li>
<li>Execute installer with wine</li>
<li>Batch rename audio files...</li>
</ol>
<h2>Conclusion</h2>
<p>With all these functionnal softwares, you are able to perform Vigie-Chiro protocole and sound analysis on GNU/Linux. I look forward to see your participation at <a href="https://vigiechiro.herokuapp.com">https://vigiechiro.herokuapp.com</a> !</p>
</div>
<div class="tag-cloud">
<p>
<a href="./tag/bat.html">bat</a>
<a href="./tag/bird.html">bird</a>
<a href="./tag/ultrasound.html">ultrasound</a>
<a href="./tag/syrinx.html">syrinx</a>
<a href="./tag/batsound.html">batsound</a>
</p>
</div>
</article>
<footer>
<p>
&copy; Samuel ORTION 2022 - This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Attribution-ShareAlike 4.0 International License</a>
</p>
<p>Powered by <a href="http://getpelican.com" target="_blank">Pelican</a> - <a href="https://github.com/alexandrevicenzi/flex" target="_blank">Flex</a> theme by <a href="http://alexandrevicenzi.com" target="_blank">Alexandre Vicenzi</a>
</p><p>
<a rel="license"
href="http://creativecommons.org/licenses/by-sa/4.0/"
target="_blank">
<img alt="Creative Commons License"
title="Creative Commons License"
style="border-width:0"
src="https://i.creativecommons.org/l/by-sa/4.0/80x15.png"
width="80"
height="15"/>
</a>
</p> </footer>
</main>
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Blog",
"name": " BioloGeek's blog ",
"url" : ".",
"image": "",
"description": "This is the informal Blog of Samuel ORTION, a juvenil Geekus biologicus enjoying computer science, machine learning, bird watching, taking photographs and more ;-)."
}
</script>
<a href="https://forge.chapril.org/UncleSamulus/blog" class="gitea-corner" aria-label="View source on Gitea">
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true" version="1.1" id="svg1474" sodipodi:docname="gitea.svg" inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
<metadata id="metadata1480">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs1478" />
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1011" id="namedview1476" showgrid="false" inkscape:zoom="5.31875" inkscape:cx="120.52189" inkscape:cy="1.8161983" inkscape:window-x="0" inkscape:window-y="32" inkscape:window-maximized="1" inkscape:current-layer="svg1474" />
<path d="M 0,0 C 85.37539,81.415499 171.40214,170.44093 250,250 V 0 Z" id="path1468" style="fill:#27a722;fill-opacity:1" sodipodi:nodetypes="cccc" />
<g id="g2265" transform="matrix(0.69313465,0.67537894,-0.67537894,0.69313465,155.71733,-10.938791)">
<g inkscape:label="Layer 1" id="layer1" transform="translate(0,-161.53334)" style="display:inline;fill:#ffffff">
<path style="fill:#ffffff;fill-opacity:1;stroke:#428f29;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 27.709937,195.15095 c -9.546573,-0.0272 -22.3392732,6.79805 -21.6317552,23.90397 1.105534,26.72889 25.4565952,29.20839 35.1916502,29.42301 1.068023,5.01357 12.521798,22.30563 21.001818,23.21667 h 37.15277 c 22.27763,-1.66785 38.9607,-75.75671 26.59321,-76.03825 -46.781583,2.47691 -49.995146,2.13838 -88.599758,0 -2.495053,-0.0266 -5.972321,-0.49474 -9.707935,-0.5054 z m 2.491319,9.45886 c 1.351378,13.69267 3.555849,21.70359 8.018216,33.94345 -11.382872,-1.50473 -21.069822,-5.22443 -22.851515,-19.10984 -0.950962,-7.4112 2.390428,-15.16769 14.833299,-14.83361 z" id="path3722" inkscape:connector-curvature="0" sodipodi:nodetypes="sscccccsccsc" />
</g>
<rect style="display:inline;fill:#27a722;fill-opacity:1;stroke:none;stroke-width:0.247573;stroke-opacity:1" id="rect4599" width="34.762054" height="34.762054" x="87.508659" y="18.291576" transform="rotate(25.914715)" ry="5.4825778" />
<path style="display:inline;fill:#27a722;fill-opacity:1;stroke:none;stroke-width:0.266448px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 79.804947,57.359056 3.241146,1.609954 V 35.255731 h -3.262698 z" id="path4525" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" />
<g id="layer3" inkscape:label="Layer 3" style="display:inline">
<g style="display:inline" id="g4539">
<circle transform="rotate(-19.796137)" r="3.4745038" cy="90.077766" cx="49.064713" id="path4606" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" />
<circle transform="rotate(-19.796137)" r="3.4745038" cy="102.1049" cx="36.810425" id="path4606-3" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" />
<circle transform="rotate(-19.796137)" r="3.4745038" cy="111.43928" cx="46.484283" id="path4606-1" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" />
<rect transform="rotate(26.024158)" y="18.061695" x="97.333458" height="27.261492" width="2.6726954" id="rect4629-8" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.274447;stroke-opacity:1" />
<path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4514" d="m 76.558096,68.116343 c 12.97589,6.395378 13.012989,4.101862 4.890858,20.907244" style="fill:none;stroke:#ffffff;stroke-width:2.68;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
</g>
<g id="steam">
<path style="fill:none;stroke:#ffffff;stroke-width:3.125px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 214.48028,23.6314 c 1.317,20.007164 -28.72477,12.742419 -28.08363,27.254313" id="path2287" sodipodi:nodetypes="cc" />
<path style="fill:none;stroke:#ffffff;stroke-width:3.54871px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 222.67793,32.58836 c -0.62421,20.715424 -24.70978,14.100738 -23.90648,27.110411" id="path2289" sodipodi:nodetypes="cc" />
</g>
</svg>
</a>
<style>
.gitea-corner:hover #steam {
animation: octocat-wave 560ms ease-in-out
}
@keyframes steam {
0%,
100% {
transform: rotate(0)
}
20%,
60% {
transform: rotate(-25deg)
}
40%,
80% {
transform: rotate(10deg)
}
}
@media (max-width:500px) {
.gitea-corner:hover #steam {
animation: none
}
.gitea-corner #steam {
animation: steam 560ms ease-in-out
}
}
</style>
</body>
</html>

@ -0,0 +1,217 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="" />
<link rel="stylesheet" type="text/css" href="/theme/stylesheet/style.min.css">
<link rel="stylesheet" type="text/css"
href="/theme/pygments/github.min.css">
<link rel="stylesheet" type="text/css" href="/theme/font-awesome/css/font-awesome.min.css">
<link href="https://blog.samuel.ortion.fr/feeds/all.atom.xml" type="application/atom+xml" rel="alternate"
title="BioloGeek's blog Atom">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<meta name="author" content="Samuel ORTION" />
<meta name="description" content="This is the informal Blog of Samuel ORTION, a juvenil Geekus biologicus enjoying computer science, machine learning, bird watching, taking photographs and more ;-)." />
<meta property="og:site_name" content="BioloGeek's blog"/>
<meta property="og:type" content="blog"/>
<meta property="og:title" content="BioloGeek's blog"/>
<meta property="og:description" content="This is the informal Blog of Samuel ORTION, a juvenil Geekus biologicus enjoying computer science, machine learning, bird watching, taking photographs and more ;-)."/>
<meta property="og:locale" content="en_US"/>
<meta property="og:url" content="."/>
<title>BioloGeek's blog &ndash; Archives
</title>
</head>
<body>
<aside>
<div>
<a href=".">
<img src="./theme/img/profile.png" alt=""
title="">
</a>
<h1><a href="."></a></h1>
<p>The Blog of a juvenile Geekus biologicus</p>
<nav>
<ul class="list">
<li><a href="./pages/about.html#about">About</a></li>
<li><a href="./pages/contact.html#contact">Contact</a></li>
<li><a href="https://samuel.ortion.fr" target="_blank">website</a></li>
<li><a href="https://forge.chapril.org/UncleSamulus" target="_blank">forge</a></li>
<li><a href="https://gallery.samuel.ortion.fr" target="_blank">gallery</a></li>
</ul>
</nav>
<ul class="social">
<li><a class="sc-mastodon" href="https://mamot.fr/@unclesamulus" target="_blank"><img
src="/theme/img/social/mastodon.png"></a></li>
<li><a class="sc-twitter" href="https://twitter.com/SAmULuUus" target="_blank"><img
src="/theme/img/social/twitter.png"></a></li>
</ul>
</div>
</aside>
<main>
<nav>
<a href=".">Home
</a>
<a href="https://blog.samuel.ortion.fr/feeds/all.atom.xml">Atom
</a>
<a class="active" href="/">English</a>
<a href="/fr">Français</a>
</nav>
<article class="single">
<header>
<h1>Archives
</h1>
</header>
<div>
<dl>
<dt>Sun 19 June 2022</dt>
<dd><a href="./install-gephi-on-linux.html">Install Gephi on Linux</a></dd>
<dt>Sun 19 June 2022</dt>
<dd><a href="./using-virtual-environments.html">How to use virtual environments</a></dd>
<dt>Wed 15 June 2022</dt>
<dd><a href="./automatized-code-documentation.html">How to make automatic documentation using Doxygen, breathe and Sphinx</a></dd>
<dt>Tue 14 June 2022</dt>
<dd><a href="./rendering-latex-pelican.html">How to render LaTeX formula in Pelican</a></dd>
<dt>Tue 14 June 2022</dt>
<dd><a href="./matrix-inverse-algorithm.html">Compute the inverse of a matrix</a></dd>
<dt>Sun 12 June 2022</dt>
<dd><a href="./draw-a-plot-in-c-with-gnu-plotutils.html">Draw a Plot in C with GNU plotutils</a></dd>
<dt>Thu 25 March 2021</dt>
<dd><a href="./analyse-sound-on-gnulinux-using-wine.html">Analyse Sound on GNU/Linux using Wine</a></dd>
</dl>
</div>
</article>
<footer>
<p>
&copy; Samuel ORTION 2022 - This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Attribution-ShareAlike 4.0 International License</a>
</p>
<p>Powered by <a href="http://getpelican.com" target="_blank">Pelican</a> - <a href="https://github.com/alexandrevicenzi/flex" target="_blank">Flex</a> theme by <a href="http://alexandrevicenzi.com" target="_blank">Alexandre Vicenzi</a>
</p><p>
<a rel="license"
href="http://creativecommons.org/licenses/by-sa/4.0/"
target="_blank">
<img alt="Creative Commons License"
title="Creative Commons License"
style="border-width:0"
src="https://i.creativecommons.org/l/by-sa/4.0/80x15.png"
width="80"
height="15"/>
</a>
</p> </footer>
</main>
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Blog",
"name": " BioloGeek's blog ",
"url" : ".",
"image": "",
"description": "This is the informal Blog of Samuel ORTION, a juvenil Geekus biologicus enjoying computer science, machine learning, bird watching, taking photographs and more ;-)."
}
</script>
<a href="https://forge.chapril.org/UncleSamulus/blog" class="gitea-corner" aria-label="View source on Gitea">
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true" version="1.1" id="svg1474" sodipodi:docname="gitea.svg" inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
<metadata id="metadata1480">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs1478" />
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1011" id="namedview1476" showgrid="false" inkscape:zoom="5.31875" inkscape:cx="120.52189" inkscape:cy="1.8161983" inkscape:window-x="0" inkscape:window-y="32" inkscape:window-maximized="1" inkscape:current-layer="svg1474" />
<path d="M 0,0 C 85.37539,81.415499 171.40214,170.44093 250,250 V 0 Z" id="path1468" style="fill:#27a722;fill-opacity:1" sodipodi:nodetypes="cccc" />
<g id="g2265" transform="matrix(0.69313465,0.67537894,-0.67537894,0.69313465,155.71733,-10.938791)">
<g inkscape:label="Layer 1" id="layer1" transform="translate(0,-161.53334)" style="display:inline;fill:#ffffff">
<path style="fill:#ffffff;fill-opacity:1;stroke:#428f29;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 27.709937,195.15095 c -9.546573,-0.0272 -22.3392732,6.79805 -21.6317552,23.90397 1.105534,26.72889 25.4565952,29.20839 35.1916502,29.42301 1.068023,5.01357 12.521798,22.30563 21.001818,23.21667 h 37.15277 c 22.27763,-1.66785 38.9607,-75.75671 26.59321,-76.03825 -46.781583,2.47691 -49.995146,2.13838 -88.599758,0 -2.495053,-0.0266 -5.972321,-0.49474 -9.707935,-0.5054 z m 2.491319,9.45886 c 1.351378,13.69267 3.555849,21.70359 8.018216,33.94345 -11.382872,-1.50473 -21.069822,-5.22443 -22.851515,-19.10984 -0.950962,-7.4112 2.390428,-15.16769 14.833299,-14.83361 z" id="path3722" inkscape:connector-curvature="0" sodipodi:nodetypes="sscccccsccsc" />
</g>
<rect style="display:inline;fill:#27a722;fill-opacity:1;stroke:none;stroke-width:0.247573;stroke-opacity:1" id="rect4599" width="34.762054" height="34.762054" x="87.508659" y="18.291576" transform="rotate(25.914715)" ry="5.4825778" />
<path style="display:inline;fill:#27a722;fill-opacity:1;stroke:none;stroke-width:0.266448px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 79.804947,57.359056 3.241146,1.609954 V 35.255731 h -3.262698 z" id="path4525" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" />
<g id="layer3" inkscape:label="Layer 3" style="display:inline">
<g style="display:inline" id="g4539">
<circle transform="rotate(-19.796137)" r="3.4745038" cy="90.077766" cx="49.064713" id="path4606" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" />
<circle transform="rotate(-19.796137)" r="3.4745038" cy="102.1049" cx="36.810425" id="path4606-3" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" />
<circle transform="rotate(-19.796137)" r="3.4745038" cy="111.43928" cx="46.484283" id="path4606-1" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" />
<rect transform="rotate(26.024158)" y="18.061695" x="97.333458" height="27.261492" width="2.6726954" id="rect4629-8" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.274447;stroke-opacity:1" />
<path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4514" d="m 76.558096,68.116343 c 12.97589,6.395378 13.012989,4.101862 4.890858,20.907244" style="fill:none;stroke:#ffffff;stroke-width:2.68;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
</g>
<g id="steam">
<path style="fill:none;stroke:#ffffff;stroke-width:3.125px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 214.48028,23.6314 c 1.317,20.007164 -28.72477,12.742419 -28.08363,27.254313" id="path2287" sodipodi:nodetypes="cc" />
<path style="fill:none;stroke:#ffffff;stroke-width:3.54871px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 222.67793,32.58836 c -0.62421,20.715424 -24.70978,14.100738 -23.90648,27.110411" id="path2289" sodipodi:nodetypes="cc" />
</g>
</svg>
</a>
<style>
.gitea-corner:hover #steam {
animation: octocat-wave 560ms ease-in-out
}
@keyframes steam {
0%,
100% {
transform: rotate(0)
}
20%,
60% {
transform: rotate(-25deg)
}
40%,
80% {
transform: rotate(10deg)
}
}
@media (max-width:500px) {
.gitea-corner:hover #steam {
animation: none
}
.gitea-corner #steam {
animation: steam 560ms ease-in-out
}
}
</style>
</body>
</html>

@ -0,0 +1,383 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="HandheldFriendly" content="True" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="robots" content="" />
<link rel="stylesheet" type="text/css" href="/theme/stylesheet/style.min.css">
<link rel="stylesheet" type="text/css"
href="/theme/pygments/github.min.css">
<link rel="stylesheet" type="text/css" href="/theme/font-awesome/css/font-awesome.min.css">
<link href="https://blog.samuel.ortion.fr/feeds/all.atom.xml" type="application/atom+xml" rel="alternate"
title="BioloGeek's blog Atom">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<meta name="author" content="Samuel ORTION" />
<meta name="description" content="This is the informal Blog of Samuel ORTION, a juvenil Geekus biologicus enjoying computer science, machine learning, bird watching, taking photographs and more ;-)." />
<meta property="og:site_name" content="BioloGeek's blog"/>
<meta property="og:type" content="blog"/>
<meta property="og:title" content="BioloGeek's blog"/>
<meta property="og:description" content="This is the informal Blog of Samuel ORTION, a juvenil Geekus biologicus enjoying computer science, machine learning, bird watching, taking photographs and more ;-)."/>
<meta property="og:locale" content="en_US"/>
<meta property="og:url" content=".."/>
<title>BioloGeek's blog &ndash; Posts by Samuel ORTION
:</title>
</head>
<body>
<aside>
<div>
<a href="..">
<img src="../theme/img/profile.png" alt=""
title="">
</a>
<h1><a href=".."></a></h1>
<p>The Blog of a juvenile Geekus biologicus</p>
<nav>
<ul class="list">
<li><a href="../pages/about.html#about">About</a></li>
<li><a href="../pages/contact.html#contact">Contact</a></li>
<li><a href="https://samuel.ortion.fr" target="_blank">website</a></li>
<li><a href="https://forge.chapril.org/UncleSamulus" target="_blank">forge</a></li>
<li><a href="https://gallery.samuel.ortion.fr" target="_blank">gallery</a></li>
</ul>
</nav>
<ul class="social">
<li><a class="sc-mastodon" href="https://mamot.fr/@unclesamulus" target="_blank"><img
src="/theme/img/social/mastodon.png"></a></li>
<li><a class="sc-twitter" href="https://twitter.com/SAmULuUus" target="_blank"><img
src="/theme/img/social/twitter.png"></a></li>
</ul>
</div>
</aside>
<main>
<nav>
<a href="..">Home
</a>
<a href="https://blog.samuel.ortion.fr/feeds/all.atom.xml">Atom
</a>
<a class="active" href="/">English</a>
<a href="/fr">Français</a>
</nav>
<article>
<header>
<h2><a href="../install-gephi-on-linux.html#install-gephi-on-linux">Install Gephi on Linux</a></h2>
<p>
Posted on Sun 19 June 2022 in <a href="../category/linux.html">linux</a>
&#8226; Tagged with
<a href="../tag/graph.html">graph</a>, <a href="../tag/visualization.html">visualization</a>, <a href="../tag/linux.html">linux</a>
</p>
</header>
<div>
<p>Gephi is a software package for graph visualization. Let's install it on Linux.</p>
<h2>Install Gephi</h2>
<div class="highlight"><pre><span></span><code>su - <span class="c1"># Switch to root</span>
<span class="nb">cd</span> /opt/
wget https://github.com/gephi/gephi/releases/download/v0.9.5/gephi-0.9.5-linux-x64.tar.gz -o
tar -xzf gephi-0.9.5-linux-x64.tar.gz
rm gephi-0.9.5-linux-x64.tar …</code></pre></div>
<br>
<a class="btn" href="../install-gephi-on-linux.html#install-gephi-on-linux">Continue reading
</a>
</div>
<hr />
</article>
<article>
<header>
<h2><a href="../using-virtual-environments.html#using-virtual-environments">How to use virtual environments</a></h2>
<p>
Posted on Sun 19 June 2022 in <a href="../category/code.html">code</a>
&#8226; Tagged with
<a href="../tag/python.html">python</a>, <a href="../tag/r.html">R</a>, <a href="../tag/julia.html">julia</a>
</p>
</header>
<div>
<p>To not interfere with your os configuration and keep your project reproducible, you should use a virtual environment as long as possible.</p>
<p>Virtual environment are a way to isolate your project from the rest of the system, and to avoid dependencies conflicts.</p>
<h2>Python Virtualenv</h2>
<p>Lets start by installing the virtualenv …</p>
<br>
<a class="btn" href="../using-virtual-environments.html#using-virtual-environments">Continue reading
</a>
</div>
<hr />
</article>
<article>
<header>
<h2><a href="../automatized-code-documentation.html#automatized-code-documentation">How to make automatic documentation using Doxygen, breathe and Sphinx</a></h2>
<p>
Posted on Wed 15 June 2022 in <a href="../category/documentation.html">documentation</a>
&#8226; Tagged with
<a href="../tag/c.html">C++</a>, <a href="../tag/doxygen.html">Doxygen</a>, <a href="../tag/sphinx.html">Sphinx</a>
</p>
</header>
<div>
<p>Doing documentation is required, to allow people to use your project. Here I present a rather easy solution.</p>
<br>
<a class="btn" href="../automatized-code-documentation.html#automatized-code-documentation">Continue reading
</a>
</div>
<hr />
</article>
<article>
<header>
<h2><a href="../rendering-latex-pelican.html#rendering-latex-pelican">How to render LaTeX formula in Pelican</a></h2>
<p>
Posted on Tue 14 June 2022 in <a href="../category/math.html">math</a>
&#8226; Tagged with
<a href="../tag/math.html">math</a>, <a href="../tag/latex.html">latex</a>, <a href="../tag/pelican.html">pelican</a>
</p>
</header>
<div>
<!-- Summary: -->
<p>Rendering $\LaTeX$ formulas in Pelican is easy.</p>
<p>Firstly import the pelican plugin in the proper python environment:</p>
<div class="highlight"><pre><span></span><code>pip install pelican-render-math
</code></pre></div>
<p>Then type formula in your blog post markdown documents:</p>
<div class="highlight"><pre><span></span><code><span class="sb">$$</span><span class="nb"></span>
<span class="nv">\frac</span><span class="nb">{</span><span class="m">1</span><span class="nb">}{</span><span class="m">2</span><span class="nb">}</span>
<span class="s">$$</span>
</code></pre></div>
<p>$$
\frac{1}{2}
$$</p>
<p>And that's it !</p>
<br>
<a class="btn" href="../rendering-latex-pelican.html#rendering-latex-pelican">Continue reading
</a>
</div>
<hr />
</article>
<article>
<header>
<h2><a href="../matrix-inverse-algorithm.html#matrix-inverse-algorithm">Compute the inverse of a matrix</a></h2>
<p>
Posted on Tue 14 June 2022 in <a href="../category/math.html">math</a>
&#8226; Tagged with
<a href="../tag/math.html">math</a>, <a href="../tag/python.html">python</a>
</p>
</header>
<div>
<p>I faced recently the issue of computing the inverse of a matrix, when I wrote the Algae library code. I finally found a solution, and here it is.</p>
<br>
<a class="btn" href="../matrix-inverse-algorithm.html#matrix-inverse-algorithm">Continue reading
</a>
</div>
<hr />
</article>
<article>
<header>
<h2><a href="../draw-a-plot-in-c-with-gnu-plotutils.html#draw-a-plot-in-c-with-gnu-plotutils">Draw a Plot in C with GNU plotutils</a></h2>
<p>
Posted on Sun 12 June 2022 in <a href="../category/math.html">math</a>
&#8226; Tagged with
<a href="../tag/c.html">c</a>
</p>
</header>
<div>
<h2>Install plotutils</h2>
<h3>Debian</h3>
<div class="highlight"><pre><span></span><code>$ sudo apt-get install plotutils-dev
</code></pre></div>
<h3>Fedora</h3>
<div class="highlight"><pre><span></span><code>$ sudo dnf install plotutils-devel
</code></pre></div>
<h2>Use PlotUtils to plot a graph</h2>
<p>Let us draw the $sin(x)$ function using math library.</p>
<div class="highlight"><pre><span></span><code><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span><span class="cp"></span>
<span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;math.h&gt;</span><span class="cp"></span>
<span class="cp">#define RANGE 100</span>
<span class="c1">// Export data to stdout</span>
<span class="kt">void</span><span class="w"> </span><span class="nf">plot</span><span class="p">(</span><span class="kt">double</span><span class="w"> </span><span class="o">*</span><span class="n">x</span><span class="p">,</span><span class="w"> </span><span class="kt">double</span><span class="w"> </span><span class="o">*</span><span class="n">y</span><span class="p">,</span><span class="w"> </span><span class="kt">size_t</span><span class="w"> </span><span class="n">len …</span></code></pre></div>
<br>
<a class="btn" href="../draw-a-plot-in-c-with-gnu-plotutils.html#draw-a-plot-in-c-with-gnu-plotutils">Continue reading
</a>
</div>
<hr />
</article>
<article>
<header>
<h2><a href="../analyse-sound-on-gnulinux-using-wine.html#analyse-sound-on-gnulinux-using-wine">Analyse Sound on GNU/Linux using Wine</a></h2>
<p>
Posted on Thu 25 March 2021 in <a href="../category/audio.html">audio</a>
&#8226; Tagged with
<a href="../tag/bat.html">bat</a>, <a href="../tag/bird.html">bird</a>, <a href="../tag/ultrasound.html">ultrasound</a>, <a href="../tag/syrinx.html">syrinx</a>, <a href="../tag/batsound.html">batsound</a>
</p>
</header>
<div>
<p>After recording bats, orthoptera or birds, it is often necesserary to see the spectrograms of the sounds, for instance while analysing <a href="http://www.vigienature.fr/fr/chauves-souris">Vigie-Chiro Program</a> bat records</p>
<p>The software needed to do so are often only for Windows, in the present article, we will learn how to install these softwares (i.e …</p>
<br>
<a class="btn" href="../analyse-sound-on-gnulinux-using-wine.html#analyse-sound-on-gnulinux-using-wine">Continue reading
</a>
</div>
</article>
<div class="pagination">
</div>
<footer>
<p>
&copy; Samuel ORTION 2022 - This work is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Attribution-ShareAlike 4.0 International License</a>
</p>
<p>Powered by <a href="http://getpelican.com" target="_blank">Pelican</a> - <a href="https://github.com/alexandrevicenzi/flex" target="_blank">Flex</a> theme by <a href="http://alexandrevicenzi.com" target="_blank">Alexandre Vicenzi</a>
</p><p>
<a rel="license"
href="http://creativecommons.org/licenses/by-sa/4.0/"
target="_blank">
<img alt="Creative Commons License"
title="Creative Commons License"
style="border-width:0"
src="https://i.creativecommons.org/l/by-sa/4.0/80x15.png"
width="80"
height="15"/>
</a>
</p> </footer>
</main>
<script type="application/ld+json">
{
"@context" : "http://schema.org",
"@type" : "Blog",
"name": " BioloGeek's blog ",
"url" : "..",
"image": "",
"description": "This is the informal Blog of Samuel ORTION, a juvenil Geekus biologicus enjoying computer science, machine learning, bird watching, taking photographs and more ;-)."
}
</script>
<a href="https://forge.chapril.org/UncleSamulus/blog" class="gitea-corner" aria-label="View source on Gitea">
<svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true" version="1.1" id="svg1474" sodipodi:docname="gitea.svg" inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
<metadata id="metadata1480">
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs id="defs1478" />
<sodipodi:namedview pagecolor="#ffffff" bordercolor="#666666" borderopacity="1" objecttolerance="10" gridtolerance="10" guidetolerance="10" inkscape:pageopacity="0" inkscape:pageshadow="2" inkscape:window-width="1920" inkscape:window-height="1011" id="namedview1476" showgrid="false" inkscape:zoom="5.31875" inkscape:cx="120.52189" inkscape:cy="1.8161983" inkscape:window-x="0" inkscape:window-y="32" inkscape:window-maximized="1" inkscape:current-layer="svg1474" />
<path d="M 0,0 C 85.37539,81.415499 171.40214,170.44093 250,250 V 0 Z" id="path1468" style="fill:#27a722;fill-opacity:1" sodipodi:nodetypes="cccc" />
<g id="g2265" transform="matrix(0.69313465,0.67537894,-0.67537894,0.69313465,155.71733,-10.938791)">
<g inkscape:label="Layer 1" id="layer1" transform="translate(0,-161.53334)" style="display:inline;fill:#ffffff">
<path style="fill:#ffffff;fill-opacity:1;stroke:#428f29;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" d="m 27.709937,195.15095 c -9.546573,-0.0272 -22.3392732,6.79805 -21.6317552,23.90397 1.105534,26.72889 25.4565952,29.20839 35.1916502,29.42301 1.068023,5.01357 12.521798,22.30563 21.001818,23.21667 h 37.15277 c 22.27763,-1.66785 38.9607,-75.75671 26.59321,-76.03825 -46.781583,2.47691 -49.995146,2.13838 -88.599758,0 -2.495053,-0.0266 -5.972321,-0.49474 -9.707935,-0.5054 z m 2.491319,9.45886 c 1.351378,13.69267 3.555849,21.70359 8.018216,33.94345 -11.382872,-1.50473 -21.069822,-5.22443 -22.851515,-19.10984 -0.950962,-7.4112 2.390428,-15.16769 14.833299,-14.83361 z" id="path3722" inkscape:connector-curvature="0" sodipodi:nodetypes="sscccccsccsc" />
</g>
<rect style="display:inline;fill:#27a722;fill-opacity:1;stroke:none;stroke-width:0.247573;stroke-opacity:1" id="rect4599" width="34.762054" height="34.762054" x="87.508659" y="18.291576" transform="rotate(25.914715)" ry="5.4825778" />
<path style="display:inline;fill:#27a722;fill-opacity:1;stroke:none;stroke-width:0.266448px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 79.804947,57.359056 3.241146,1.609954 V 35.255731 h -3.262698 z" id="path4525" inkscape:connector-curvature="0" sodipodi:nodetypes="ccccc" />
<g id="layer3" inkscape:label="Layer 3" style="display:inline">
<g style="display:inline" id="g4539">
<circle transform="rotate(-19.796137)" r="3.4745038" cy="90.077766" cx="49.064713" id="path4606" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" />
<circle transform="rotate(-19.796137)" r="3.4745038" cy="102.1049" cx="36.810425" id="path4606-3" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" />
<circle transform="rotate(-19.796137)" r="3.4745038" cy="111.43928" cx="46.484283" id="path4606-1" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.264583;stroke-opacity:1" />
<rect transform="rotate(26.024158)" y="18.061695" x="97.333458" height="27.261492" width="2.6726954" id="rect4629-8" style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.274447;stroke-opacity:1" />
<path sodipodi:nodetypes="cc" inkscape:connector-curvature="0" id="path4514" d="m 76.558096,68.116343 c 12.97589,6.395378 13.012989,4.101862 4.890858,20.907244" style="fill:none;stroke:#ffffff;stroke-width:2.68;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
</g>
</g>
</g>
<g id="steam">
<path style="fill:none;stroke:#ffffff;stroke-width:3.125px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 214.48028,23.6314 c 1.317,20.007164 -28.72477,12.742419 -28.08363,27.254313" id="path2287" sodipodi:nodetypes="cc" />
<path style="fill:none;stroke:#ffffff;stroke-width:3.54871px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" d="m 222.67793,32.58836 c -0.62421,20.715424 -24.70978,14.100738 -23.90648,27.110411" id="path2289" sodipodi:nodetypes="cc" />