AXLHBJMZJEJQB2WO622GRVS3EXI3X2WCQGUMTKJJI52H2D36XB6QC
UVELI34SXWHTRPAVQO4BETOYSSPHQZFFMIXF5UZOKRRIZO4Q677QC
QE3J7MZEYWC3H2SWCWBHXZSPPPX3XJZHYR7MEX45UOSQAFP33YUQC
FXA3ZBV64FML7W47IPHTAJFJHN3J3XHVHFVNYED47XFSBIGMBKRQC
5DVBX4QNVU6AIME4MZ62C5DJL2ZZ76FUFJUBNCC46XS2722WDOSAC
H6SY4TCOYCGKYC77SWG4EUEW225SPJT4JGG4YEM2Z4JI2WHWVPYAC
TUIGPRCLOWRHD2UQD3ZSWHWKKIJTRXB7LP3DDMTGEL4OFORXY24AC
RHWQQAAHNHFO3FLCGVB3SIDKNOUFJGZTDNN57IQVBMXXCWX74MKAC
BE2K3MCTTASVRK2KXWMKUA6JNI27EMX6EM3TU35FF777Z2KJCSSQC
NBJFXQNG6YLIEL6HK7VZDEQZTXK2QJZ43AKNLXIIBX5K3MOX6WCQC
JGMCSDW663DQSK7XSWDBPVYQE57ZBP7ZVZLSEXUJOQVE7KY6BB4QC
GVZHJUHQDTV5P2U5YHHQRDGP3Y7FE6337OIKLGXN2PJETJP5NKQQC
QRTQEEM2XMNJBWBAWFAQQGASDU4WXGVJDJXZN2KTOLYKUXLHBDOAC
ACCYRHVSXL6HQPJEPV7ORGYKEQTCG5B2M3DPJ5DBTWMW4CS3ZTWAC
J3MQ32QO5ECHTE6US7KZF37CC3PVKIGFYV6WAFP5RCCNOBEG6E6AC
24RENZQ6YNPOXASNGYHPDC4QF5OQ3KLRZM373CCWRG6AASWWTL6QC
OIFCCABYKOC7Z4RU4BPZ7VCEWUYGNCW3KVNPAQPXQ27HMEL6YFYAC
J3CFALT6SR7GY5QWRZEZI2YL5X42YULB2RYVWPBXHRI3K7A5KTSAC
FOVEJMW4FQB2D2PZVROHCZJINCCWJHPWBVDUIEIFUCASYDPJLMCQC
H32Z2LPYG775IRARE4RH2TFUR3QZG2YFDZKQOMZ3WFOA42CB56JAC
RL53X2A6RY6HTLVVTUQVLQGS5HD7HNNOMZDG3NRHUTMRVAVYRWUAC
TFQGTGQI3CLACKY4TGGEO4N3KX2PBN3IGX43Y5RDSBBHLKTGC4HAC
ZJOCAXXFC5X5PWLVEXXU3MX74AQ6SO4NQRP6W3PYAWBM635J3MHQC
OOOQLNOD45WPP3R6XB3SVSK3HSRDVURRXC7WUNDWRJFPVZ6AWGZQC
ZV5YCHTZKVBL5ZW7NIQZLI5W6KEXSQ3T4XQNAPUQPJV2OJ6CKNLQC
N6WY6C3RAYTXRJKB27TZ6BKFKY4DIRFD5GJBPMFK52A6J3HVDG6QC
bisonex" == "found" | where "Confirmed in sanger" == "true" | length
50
❯ open sangerized.csv | where "Found by bisonex" == "found" | where "Confirmed in sanger" == "" | length
71
❯ open sangerized.csv | where "Found by bisonex" == "missed" | where "Confirmed in sanger" == "" | length
5
❯ open sangerized.csv | where "Found by bisonex" == "missed" | where "Confirmed in sanger" == "true" | length
0
[[id:cd79a77c-a0b6-4bb1-9e08-fe08dc89e3aa][Résultats finaux]]
*** DONE Regarder 5 variants manqués: 3 explicables, 2 non
CLOSED: [2023-11-09 Thu 00:22] SCHEDULED: <2023-11-05 Sun>
open searched.csv | where "Found by bisonex" == "missed"
62982193 7884996 : haplotypecaller ok... -> filtré car AD=5 <= 10
63012582 102230760 : non présent haplotypcellar mais une délétion en 755 (en 754 CG -> C). Vérifié mobidetails
63019340 50721335 : non présent haplotypecaller (vérifié igv). vérifié mobidetails
63060439 26869324 : filtré car 15 reads
63109239 14358800 : présent haplotypecaller : filtré car DP=29 <= 30
Non présent haplotypecaller avec bcftools mais zgrep ok
zgrep 7884996 call_variant/haplotypecaller/*62982193*/*
zgrep 102230760 call_variant/haplotypecaller/*63012582*/*
zgrep 50721335 call_variant/haplotypecaller/*63019340*/*
zgrep 26869324 call_variant/haplotypecaller/*63060439*/*
zgrep 14358800 call_variant/haplotypecaller/*63109239*/*
*** DONE Flowchart
CLOSED: [2023-11-09 Thu 00:22]
*** DONE Refaire extraction
CLOSED: [2023-11-04 Sat 19:02] SCHEDULED: <2023-11-04 Sat>
*** DONE Refaire annotation avec mobidetails
CLOSED: [2023-11-04 Sat 19:02] SCHEDULED: <2023-11-04 Sat>
*** DONE Refaire annotation avec transcrit non reconnus
CLOSED: [2023-11-04 Sat 20:42] SCHEDULED: <2023-11-04 Sat>
5 transcrits, donnés égalemen tpar
#+begin_src nu
open annotated.csv | where coding != "negatif" | where chrom == ""
#+end_src
| 62676048 | NM_001080420.1 | SHANK3 | référénce non valide |
| 62690893 | NM_001080420.1 | KDM6B | idem |
| 62690893 | NM_001080420.1 | KDM6B | même variant |
| 62795429 | NM_016381.3 | TREX1 | NM_033629.5 |
| 63019340 | NM_001080420.1 | SHANK3 | NM_001372044.2 |
SCHEDULED: <2023-11-01 Wed>
*** DONE Rajouter variant pour 63009152
CLOSED: [2023-11-04 Sat 20:47] SCHEDULED: <2023-11-01 Wed>
*** DONE Regénérer annotation avec NC_
CLOSED: [2023-11-04 Sat 18:59] SCHEDULED: <2023-10-31 Tue>
*** DONE Comparer variants manqué avec sanger: 0 confirmés
CLOSED: [2023-11-06 Mon 23:48] SCHEDULED: <2023-11-04 Sat>
*** DONE Annoter variants avec sanger
CLOSED: [2023-11-08 Wed 23:17] SCHEDULED: <2023-11-07 Tue>
*** DONE Mail paul avec résultats
CLOSED: [2023-11-09 Thu 00:22] SCHEDULED: <2023-11-05 Sun>
*** DONE Vérifier coordonnées des 2 variants manquants
CLOSED: [2023-11-12 Sun 16:53] SCHEDULED: <2023-11-11 Sat>
Les 2 sont des homopolymer
- 1er = même variant mais représenté différement
- SHANK3 ?
**** PITX3: filtrée car AD=8
NB: représentation synonyme
Même séquence
>hg38_dna range=chr10:102230742-102230777 5'pad=2 3'pad=2 strand=+ repeatMasking=none
GGAGCCAGCCCGGGGGGGCCCCCGCCCAGGCCCTG
>hg19_dna range=chr10:103990500-103990534 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GGAGCCAGCCCGGGGGGGCCCCCGCCCAGGCCCTG
Selon IGV:
GGAGCCAGCCC(G)GGGGGGCCCCCGCCCAGGCCCTG
Selon cento
GGAGCCAGCCCGGGGGG(G)CCCCCGCCCAGGCCCTG
#+begin_src sh :dir ~/annex/data/bisonex/
bcftools filter -i 'POS=102230760' call_variant/haplotypecaller/*63012582*/*.vcf.gz
#+end_src
DP ok mais AD trop faible
GT:AD:DP:GQ:PL 0/1:26,8:34:99:146,0,671
**** SHANK3: transcrit supprimé depuis: ok
Retrouvé par ERic: 50721504dup
On vérifie
#+begin_src sh :dir ~/annex/data/bisonex/
bcftools filter -i 'POS=50721504' call_variant/haplotypecaller/*63019340*/*.vcf.gz
#+end_src
#+begin_src sh :dir ~/annex/data/bisonex/
zgrep '50721504' annotate/full/*63019340*.tsv
#+end_src
*** TODO Sanger pour 4 VOUS manqués
SCHEDULED: <2023-12-13 Wed>
/Entered on/ [2023-11-13 Mon 22:40]
* Résultats
** TODO Speed-up BWA-mem
SCHEDULED: <2023-11-19 Sun>
** TODO Speed-up Hapotypecaller
SCHEDULED: <2023-11-19 Sun>
* Communication
** DONE Mail NGS-diag
CLOSED: [2023-10-06 Fri 08:04] SCHEDULED: <2023-10-06 Fri>
/Entered on/ [2023-10-04 Wed 19:33]
bisonex" == "found" | where "Confirmed in sanger" == "true" | length
50
❯ open sangerized.csv | where "Found by bisonex" == "found" | where "Confirmed in sanger" == "" | length
71
❯ open sangerized.csv | where "Found by bisonex" == "missed" | where "Confirmed in sanger" == "" | length
5
❯ open sangerized.csv | where "Found by bisonex" == "missed" | where "Confirmed in sanger" == "true" | length
0
[[id:cd79a77c-a0b6-4bb1-9e08-fe08dc89e3aa][Résultats finaux]]
*** DONE Regarder 5 variants manqués: 3 explicables, 2 non
CLOSED: [2023-11-09 Thu 00:22] SCHEDULED: <2023-11-05 Sun>
open searched.csv | where "Found by bisonex" == "missed"
62982193 7884996 : haplotypecaller ok... -> filtré car AD=5 <= 10
63012582 102230760 : non présent haplotypcellar mais une délétion en 755 (en 754 CG -> C). Vérifié mobidetails
63019340 50721335 : non présent haplotypecaller (vérifié igv). vérifié mobidetails
63060439 26869324 : filtré car 15 reads
63109239 14358800 : présent haplotypecaller : filtré car DP=29 <= 30
Non présent haplotypecaller avec bcftools mais zgrep ok
zgrep 7884996 call_variant/haplotypecaller/*62982193*/*
zgrep 102230760 call_variant/haplotypecaller/*63012582*/*
zgrep 50721335 call_variant/haplotypecaller/*63019340*/*
zgrep 26869324 call_variant/haplotypecaller/*63060439*/*
zgrep 14358800 call_variant/haplotypecaller/*63109239*/*
*** DONE Flowchart
CLOSED: [2023-11-09 Thu 00:22]
*** DONE Refaire extraction
CLOSED: [2023-11-04 Sat 19:02] SCHEDULED: <2023-11-04 Sat>
*** DONE Refaire annotation avec mobidetails
CLOSED: [2023-11-04 Sat 19:02] SCHEDULED: <2023-11-04 Sat>
*** DONE Refaire annotation avec transcrit non reconnus
CLOSED: [2023-11-04 Sat 20:42] SCHEDULED: <2023-11-04 Sat>
5 transcrits, donnés égalemen tpar
#+begin_src nu
open annotated.csv | where coding != "negatif" | where chrom == ""
#+end_src
| 62676048 | NM_001080420.1 | SHANK3 | référénce non valide |
| 62690893 | NM_001080420.1 | KDM6B | idem |
| 62690893 | NM_001080420.1 | KDM6B | même variant |
| 62795429 | NM_016381.3 | TREX1 | NM_033629.5 |
| 63019340 | NM_001080420.1 | SHANK3 | NM_001372044.2 |
SCHEDULED: <2023-11-01 Wed>
*** DONE Rajouter variant pour 63009152
CLOSED: [2023-11-04 Sat 20:47] SCHEDULED: <2023-11-01 Wed>
*** DONE Regénérer annotation avec NC_
CLOSED: [2023-11-04 Sat 18:59] SCHEDULED: <2023-10-31 Tue>
*** DONE Comparer variants manqué avec sanger: 0 confirmés
CLOSED: [2023-11-06 Mon 23:48] SCHEDULED: <2023-11-04 Sat>
*** DONE Annoter variants avec sanger
CLOSED: [2023-11-08 Wed 23:17] SCHEDULED: <2023-11-07 Tue>
*** DONE Mail paul avec résultats
CLOSED: [2023-11-09 Thu 00:22] SCHEDULED: <2023-11-05 Sun>
*** DONE Vérifier coordonnées des 2 variants manquants
CLOSED: [2023-11-12 Sun 16:53] SCHEDULED: <2023-11-11 Sat>
Les 2 sont des homopolymer
- 1er = même variant mais représenté différement
- SHANK3 ?
**** PITX3: filtrée car AD=8
NB: représentation synonyme
Même séquence
>hg38_dna range=chr10:102230742-102230777 5'pad=2 3'pad=2 strand=+ repeatMasking=none
GGAGCCAGCCCGGGGGGGCCCCCGCCCAGGCCCTG
>hg19_dna range=chr10:103990500-103990534 5'pad=0 3'pad=0 strand=+ repeatMasking=none
GGAGCCAGCCCGGGGGGGCCCCCGCCCAGGCCCTG
Selon IGV:
GGAGCCAGCCC(G)GGGGGGCCCCCGCCCAGGCCCTG
Selon cento
GGAGCCAGCCCGGGGGG(G)CCCCCGCCCAGGCCCTG
#+begin_src sh :dir ~/annex/data/bisonex/
bcftools filter -i 'POS=102230760' call_variant/haplotypecaller/*63012582*/*.vcf.gz
#+end_src
DP ok mais AD trop faible
GT:AD:DP:GQ:PL 0/1:26,8:34:99:146,0,671
**** SHANK3: transcrit supprimé depuis: ok
Retrouvé par ERic: 50721504dup
On vérifie
#+begin_src sh :dir ~/annex/data/bisonex/
bcftools filter -i 'POS=50721504' call_variant/haplotypecaller/*63019340*/*.vcf.gz
#+end_src
#+begin_src sh :dir ~/annex/data/bisonex/
zgrep '50721504' annotate/full/*63019340*.tsv
#+end_src
*** TODO Sanger pour 4 VOUS manqués
SCHEDULED: <2023-12-13 Wed>
/Entered on/ [2023-11-13 Mon 22:40]
* Résultats
** TODO Speed-up BWA-mem
SCHEDULED: <2023-11-19 Sun>
** TODO Speed-up Hapotypecaller
SCHEDULED: <2023-11-19 Sun>
** TODO Refaire statistics avec happy+ vcfeval
SCHEDULED: <2023-11-25 Sat>
/Entered on/ [2023-11-18 Sat 20:13]
* Communication
** DONE Mail NGS-diag
CLOSED: [2023-10-06 Fri 08:04] SCHEDULED: <2023-10-06 Fri>
/Entered on/ [2023-10-04 Wed 19:33]
Here is a small summary from my journey from vim to using Emacs for
(almost) everything ! After using ViM for a few years, I wanted to try
Emacs. I can summarize months of trial and errors into this single
sentence :
#+BEGIN_QUOTE
ViM users, use doom-emacs and profit
#+END_QUOTE
Now that I got that of the way, here are the following paths I've tried.
I've summarize as much as possible to avoid a long read :
1. /Using pure emacs/: I've started a clean =.emacs.el= and discovered
emacs mappings and some plugins.
2. /Discovering evil/ felt so good to be back to vim mapping after emacs
3. [[https://github.com/purcell/emacs.d][Using Purcell starter kit]] is
quite nice but ...
4. *Switching to doom emacs* This made my day/month/year. Start here !!
** Best plugins
:PROPERTIES:
:CUSTOM_ID: best-plugins
:END:
I've put here plugins I deem essential for everyday use. I will not try
to convince you but install, play with it and you should be pleased :)
Also, the plugins in
[[https://github.com/hlissner/doom-emacs][doom-emacs]] are marked as
/(doom)/.
Start here :
- [[https://github.com/emacs-evil/evil][evil]] (doom) : ViM emulation in
Emacs. No life without it. See also
[[https://github.com/emacs-evil/evil-collection][evil-collection]]
(doom) for having vim mapping "everywhere"
- [[https://orgmode.org/worg/org-tutorials/org4beginners.html][Org-mode]]
(doom) : I use it to plan my shopping, tasks, studying, movies list...
Numerous tutorials are availables online but here the official
documentation (quick version)
Build on it :
- [[https://github.com/emacs-evil/evil-surround][evil surround]] : port
of Tim Pope's surround. Edit parenthesis, quotes, tags ... Super
useful when you need it.
- [[https://github.com/abo-abo/avy][avy]] and
[[https://github.com/PythonNut/evil-easymotion][easymotion]] (doom)
allow you to jump easy everywhere (yes everwhere) on your screen.
Replace /f/ and /// in most cases. My favorite command is to jump
multiple lines at once. Doom-emacs combine the two for a middle ground
- [[https://github.com/abo-abo/swiper][ivy]] (doom) is your everyday
completion helper to change buffer, run commands...
- [[https://magit.vc/][magit]] (doom) is a git helper. It was difficult
for me to adopt it for other than just commit and push but your hard
work will be rewarded
- [[https://company-mode.github.io/][company]] (doom) do your completion
in emacs. Can also complete filenames (C-x C-f in doom emacs)
- [[https://github.com/jkitchin/org-ref][org-ref]] manage your bitex
library with org-mode. Useful but not super intuitive. You can import
books by ISBN ( which
[[https://github.com/cpitclaudel/biblio.el][biblio.el]] does not do
well)
Under test
- [[https://github.com/Fuco1/smartparens][smartparens]] looks very
powerful to manage nested brackets, parenthesis ...
** Living in emacs
Here are a list of packages where tutorials can be found on the internet
(or in later posts)
- Mail : =notmuch= is awesome (see [[file:posts/mail.org][this post]])
- Navigation: =dired= (I've tried ranger but the default dired works
better for me)
- Facebook messenger : =irc= + =bitlbee=
** What I still do outside emacs
- PDF: =pdf-tools= is nice but I prefer =zathura=, which is faster and
more configurable
- Music (+ video) : using =mpd= and =ncmpcpp=
- Shell : =eshell= is nice but =fish shell= is easier to deal with.
** Community list
Finally, [[https://github.com/emacs-tw/awesome-emacs][awesome-emacs]] is a curated list of plugins by the community
#+title: Life in Emacs
Here is a condensed view of programs I use to make life easier on the
command-line ordered by priority:
3. /Find files easily/ with *=fd=* as a remplacement for =find=. Here is
git mv {} {.}.org
4. /A better sudo/: use *=doas=* (from OpenBSD). The configuration is
super easy, just write =/usr/local/etc/doas.conf= (on FreeBSD) : #
Permit members of the wheel group to perform actions as root. permit
nopass :wheel
5. /Manage your ssh-keys/ with
[[https://www.funtoo.org/Keychain][keychain]]. For fish shell, here's
my configuration: # Keychain for gpg and ssh. We have to set ssh and
if test -f ~/.keychain/(hostname)-gpg-fish
source ~/.keychain/(hostname)-gpg-fish
end
if test -f ~/.keychain/(hostname)-fish
source ~/.keychain/(hostname)-fish
end
6. /capture videos/ with *=Ffmpeg=* like this
- removes the mouse cursor from the capture: =-i :0.0+nomouse=
- enables multi-threading (if possible): =-threads 0=
- captures the screen: =-f x11grab=
- defines the size of the capture windows (here it is my entire
screen): =-s 1280x800=
- sets the number of frames per seconds: =-r 25=
- sets the resolution: =-s hd720=
- no audio will be captured: =-an=
- using the H.264 encoding: =-vcodec libx264=
- these are settings for a fast encoding: =-vpre lossless_ultrafast=
#+begin_src sh
ffmpeg -f x11grab -s 1280x800 -r 25 -i :0.0+nomouse -s hd720 -vcodec \
libx264 -vpre lossless_ultrafast -an -threads 0 yourvideo.mkv
#+end_src
#+END_SRC
#+BEGIN_SRC sh
if status is-login keychain --quiet --agents
ssh,gpg id_rsa 65DCD80B3BFE5B80
end
gpg. And GPG ID...
#+end_src
how I converted all the markdown files to org-mode :
#+begin_src sh
fd md -x pandoc
2. /Move around quickly/ with [[https://github.com/ajeetdsouza/zoxide][zoxide]]. It allows you to jump quickly to a
directory with =z boo= (instead of cd /home/user/misc/books).
1. /Change your shell/ to [[https://fishshell.com/docs/current/tutorial.html][fish]]. Enough said :)
#+title: Command-line tips
---
title: Life in Emacs
...
Here is a small summary from my journey from vim to using Emacs for
(almost) everything ! After using ViM for a few years, I wanted to try
Emacs. I can summarize months of trial and errors into this single
sentence :
> ViM users, use doom-emacs and profit
Now that I got that of the way, here are the following paths I\'ve
tried. I\'ve summarize as much as possible to avoid a long read :
1. *Using pure emacs*: I\'ve started a clean `.emacs.el`{.verbatim} and
discovered emacs mappings and some plugins.
2. *Discovering evil* felt so good to be back to vim mapping after
emacs
3. [Using Purcell starter kit](https://github.com/purcell/emacs.d) is
quite nice but ...
4. **Switching to doom emacs** This made my day/month/year. Start here
!!
## Best plugins
I\'ve put here plugins I deem essential for everyday use. I will not try
to convince you but install, play with it and you should be pleased :)
Also, the plugins in
[doom-emacs](https://github.com/hlissner/doom-emacs) are marked as
*(doom)*.
Start here :
- [evil](https://github.com/emacs-evil/evil) (doom) : ViM emulation in
Emacs. No life without it. See also
[evil-collection](https://github.com/emacs-evil/evil-collection)
(doom) for having vim mapping \"everywhere\"
- [Org-mode](https://orgmode.org/worg/org-tutorials/org4beginners.html)
(doom) : I use it to plan my shopping, tasks, studying, movies
list... Numerous tutorials are availables online but here the
official documentation (quick version)
Build on it :
- [evil surround](https://github.com/emacs-evil/evil-surround) : port
of Tim Pope\'s surround. Edit parenthesis, quotes, tags ... Super
useful when you need it.
- [avy](https://github.com/abo-abo/avy) and
[easymotion](https://github.com/PythonNut/evil-easymotion) (doom)
allow you to jump easy everywhere (yes everwhere) on your screen.
Replace *f* and */* in most cases. My favorite command is to jump
multiple lines at once. Doom-emacs combine the two for a middle
ground
- [ivy](https://github.com/abo-abo/swiper) (doom) is your everyday
completion helper to change buffer, run commands...
- [magit](https://magit.vc/) (doom) is a git helper. It was difficult
for me to adopt it for other than just commit and push but your hard
work will be rewarded
- [company](https://company-mode.github.io/) (doom) do your completion
in emacs. Can also complete filenames (C-x C-f in doom emacs)
- [org-ref](https://github.com/jkitchin/org-ref) manage your bitex
library with org-mode. Useful but not super intuitive. You can
import books by ISBN ( which
[biblio.el](https://github.com/cpitclaudel/biblio.el) does not do
well)
Under test
- [smartparens](https://github.com/Fuco1/smartparens) looks very
powerful to manage nested brackets, parenthesis ...
## Living in emacs
Here are a list of packages where tutorials can be found on the internet
(or in later posts)
- Mail : `notmuch`{.verbatim} is awesome (see [this
post](posts/mail.org))
- Navigation: `dired`{.verbatim} (I\'ve tried ranger but the default
dired works better for me)
- Facebook messenger : `irc`{.verbatim} + `bitlbee`{.verbatim}
## What I still do outside emacs
- PDF: `pdf-tools`{.verbatim} is nice but I prefer
`zathura`{.verbatim}, which is faster and more configurable
- Music (+ video) : using `mpd`{.verbatim} and `ncmpcpp`{.verbatim}
- Shell : `eshell`{.verbatim} is nice but `fish shell`{.verbatim} is
easier to deal with.
## Community list
Finally, [awesome-emacs](https://github.com/emacs-tw/awesome-emacs) is a
curated list of plugins by the community
#+begin_src sh
/media -alldirs -maproot=root -network=192.168.1.0/24
#+end_src
``` {.bash org-language="sh"}
/media -alldirs -maproot=root -network=192.168.1.0/24
```
#+begin_src sh
# NFS for Kodi
# Order is important : rpcbind first, then nfs and mountd
rpcbind_enable="YES"
nfs_server_enable="YES"
weak_mountd_authentication="yes"
mountd_enable="YES"
nfs_client_enable="YES"
#+end_src
``` {.bash org-language="sh"}
# NFS for Kodi
# Order is important : rpcbind first, then nfs and mountd
rpcbind_enable="YES"
nfs_server_enable="YES"
weak_mountd_authentication="yes"
mountd_enable="YES"
nfs_client_enable="YES"
```
#+begin_src sh
$ service rpcbind start
$ service nfsd start
#+end_src
``` {.bash org-language="sh"}
$ service rpcbind start
$ service nfsd start
```
#+begin_src sh
$ showmount -e
Exports list on localhost:
/media 192.168.1.0
#+end_src
``` {.bash org-language="sh"}
$ showmount -e
Exports list on localhost:
/media 192.168.1.0
```
---
title: Command-line tips
...
Here is a condensed view of programs I use to make life easier on the
command-line ordered by priority:
1. *Change your shell* to
[fish](https://fishshell.com/docs/current/tutorial.html). Enough
said :)
2. *Move around quickly* with
[zoxide](https://github.com/ajeetdsouza/zoxide). It allows you to
jump quickly to a directory with `z boo`{.verbatim} (instead of cd
/home/user/misc/books).
3. *Find files easily* with **`fd`{.verbatim}** as a remplacement for
`find`{.verbatim}. Here is how I converted all the markdown files to
org-mode :
``` {.bash org-language="sh"}
fd md -x pandoc
git mv {} {.}.org
```
4. *A better sudo*: use **`doas`{.verbatim}** (from OpenBSD). The
configuration is super easy, just write
`/usr/local/etc/doas.conf`{.verbatim} (on FreeBSD) : \# Permit
members of the wheel group to perform actions as root. permit nopass
:wheel
5. *Manage your ssh-keys* with
[keychain](https://www.funtoo.org/Keychain). For fish shell, here\'s
my configuration: \# Keychain for gpg and ssh. We have to set ssh
and gpg. And GPG ID...
``` {.bash org-language="sh"}
if status is-login keychain --quiet --agents
ssh,gpg id_rsa 65DCD80B3BFE5B80
end
if test -f ~/.keychain/(hostname)-gpg-fish
source ~/.keychain/(hostname)-gpg-fish
end
if test -f ~/.keychain/(hostname)-fish
source ~/.keychain/(hostname)-fish
end
```
6. *capture videos* with **`Ffmpeg`{.verbatim}** like this
``` {.bash org-language="sh"}
ffmpeg -f x11grab -s 1280x800 -r 25 -i :0.0+nomouse -s hd720 -vcodec \
libx264 -vpre lossless_ultrafast -an -threads 0 yourvideo.mkv
```
- removes the mouse cursor from the capture:
`-i :0.0+nomouse`{.verbatim}
- enables multi-threading (if possible): `-threads 0`{.verbatim}
- captures the screen: `-f x11grab`{.verbatim}
- defines the size of the capture windows (here it is my entire
screen): `-s 1280x800`{.verbatim}
- sets the number of frames per seconds: `-r 25`{.verbatim}
- sets the resolution: `-s hd720`{.verbatim}
- no audio will be captured: `-an`{.verbatim}
- using the H.264 encoding: `-vcodec libx264`{.verbatim}
- these are settings for a fast encoding:
`-vpre lossless_ultrafast`{.verbatim}
- one to synchronize our local mails with the server : =mbsync=,
- a mail client for viewing them : emacs with =notmuch=
- an agent for sending mails : =msmtp= a good choice (or sendmail, which
should be installed by default on most Linux and BSD distribution )
- one to synchronize our local mails with the server :
`mbsync`{.verbatim},
- a mail client for viewing them : emacs with `notmuch`{.verbatim}
- an agent for sending mails : `msmtp`{.verbatim} a good choice (or
sendmail, which should be installed by default on most Linux and BSD
distribution )
Here we will configure a gmail account using =~/.msmtprc=. Let's break
down the configuration file. First, for increased security, generate an
app password using [[https://myaccount.google.com/apppasswords]] and
encrypt it with gpg:
Here we will configure a gmail account using `~/.msmtprc`{.verbatim}.
Let\'s break down the configuration file. First, for increased security,
generate an app password using
<https://myaccount.google.com/apppasswords> and encrypt it with gpg:
#+BEGIN_EXAMPLE
#---------------------------------
# Gmail
#---------------------------------
IMAPAccount gmail
# Address to connect to
Host imap.gmail.com
User alexis.praga@gmail.com
PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/.gmailpass.gpg"
# Use SSL
SSLType IMAPS
CertificateFile /usr/local/share/certs/ca-root-nss.crt
``` example
#---------------------------------
# Gmail
#---------------------------------
IMAPAccount gmail
# Address to connect to
Host imap.gmail.com
User alexis.praga@gmail.com
PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/.gmailpass.gpg"
# Use SSL
SSLType IMAPS
CertificateFile /usr/local/share/certs/ca-root-nss.crt
Then define the folders for your mail. =~mail/gmail= contains an Inbox
and an Archive folder. It must be of the =maildir= format. Using the
fish shell syntax:
Then define the folders for your mail. `~mail/gmail`{.verbatim} contains
an Inbox and an Archive folder. It must be of the `maildir`{.verbatim}
format. Using the fish shell syntax:
#+BEGIN_EXAMPLE
for i in cur new tmp
mkdir -p ~/mail/gmail/inbox/$i
mkdir -p ~/mail/gmail/archive/$i
end
#+END_EXAMPLE
``` example
for i in cur new tmp
mkdir -p ~/mail/gmail/inbox/$i
mkdir -p ~/mail/gmail/archive/$i
end
```
#+BEGIN_EXAMPLE
MaildirStore gmail-local
# Important: we need to be able to move files. The "native" setting results in duplicates and errors...
AltMap yes
Subfolders Verbatim
# The trailing "/" is important
Path ~/mail/gmail/
Inbox ~/mail/gmail/inbox
#+END_EXAMPLE
``` example
MaildirStore gmail-local
# Important: we need to be able to move files. The "native" setting results in duplicates and errors...
AltMap yes
Subfolders Verbatim
# The trailing "/" is important
Path ~/mail/gmail/
Inbox ~/mail/gmail/inbox
```
Then the hard part: how to synchronize folders with gmail ? I've chosen
to put incoming mail in =inbox= and everything else in =archive=
Then the hard part: how to synchronize folders with gmail ? I\'ve chosen
to put incoming mail in `inbox`{.verbatim} and everything else in
`archive`{.verbatim}
#+BEGIN_EXAMPLE
# Exclude everything under the internal [Gmail] folder, except the interesting folders
# ALl (and I mean all) mail is in All mail.
# With this setup, we have duplicates in inbox and in all mail (that's ok, should not be much)
# There is no need for sent folder as it is also in all mail...
# We also need deleted messages because the iPhone do not delete mail but create
# this label instead... So we have to get it here, delete et sync with the
# server
Channel gmail-default
Far :gmail-remote:
Near :gmail-local:
# Select some mailboxes to sync
Patterns "INBOX"
Create Near
# Save the synchronization state files in the relevant directory
SyncState *
``` example
# Exclude everything under the internal [Gmail] folder, except the interesting folders
# ALl (and I mean all) mail is in All mail.
# With this setup, we have duplicates in inbox and in all mail (that's ok, should not be much)
# There is no need for sent folder as it is also in all mail...
# We also need deleted messages because the iPhone do not delete mail but create
# this label instead... So we have to get it here, delete et sync with the
# server
Channel gmail-default
Far :gmail-remote:
Near :gmail-local:
# Select some mailboxes to sync
Patterns "INBOX"
Create Near
# Save the synchronization state files in the relevant directory
SyncState *
# Name translation
Channel gmail-archive
Far :gmail-remote:"[Gmail]/All Mail"
Near :gmail-local:archive
Create Near
SyncState *
# Name translation
Channel gmail-archive
Far :gmail-remote:"[Gmail]/All Mail"
Near :gmail-local:archive
Create Near
SyncState *
Channel gmail-trash
Far :gmail-remote:"Deleted Messages"
Near :gmail-local:trash
Create Near
SyncState *
Channel gmail-trash
Far :gmail-remote:"Deleted Messages"
Near :gmail-local:trash
Create Near
SyncState *
# Get all the channels together into a group.
Group googlemail
Channel gmail-default
Channel gmail-archive
Channel gmail-trash
#+END_EXAMPLE
# Get all the channels together into a group.
Group googlemail
Channel gmail-default
Channel gmail-archive
Channel gmail-trash
```
#+BEGIN_EXAMPLE
#---------------------------------
# Free
#---------------------------------
IMAPAccount free
# Address to connect to
Host imap.free.fr
User alexis.praga@free.fr
# The file is encrypted with "gpg -e"
PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/.freepass.gpg"
# Use SSL
SSLType IMAPS
CertificateFile /usr/local/share/certs/ca-root-nss.crt
``` example
#---------------------------------
# Free
#---------------------------------
IMAPAccount free
# Address to connect to
Host imap.free.fr
User alexis.praga@free.fr
# The file is encrypted with "gpg -e"
PassCmd "gpg2 -q --for-your-eyes-only --no-tty -d ~/.freepass.gpg"
# Use SSL
SSLType IMAPS
CertificateFile /usr/local/share/certs/ca-root-nss.crt
MaildirStore free-local
# Important: we need to be able to move files. The "native" setting results in duplicates and errors...
AltMap yes
Subfolders Verbatim
# The trailing "/" is important
Path ~/mail/free/
Inbox ~/mail/free/inbox
MaildirStore free-local
# Important: we need to be able to move files. The "native" setting results in duplicates and errors...
AltMap yes
Subfolders Verbatim
# The trailing "/" is important
Path ~/mail/free/
Inbox ~/mail/free/inbox
Channel free-default
Far :free-remote:
Near :free-local:
Patterns "INBOX"
Create Near
SyncState *
Channel free-default
Far :free-remote:
Near :free-local:
Patterns "INBOX"
Create Near
SyncState *
# Name translation
Channel free-archive
Far :free-remote:"Archive"
Near :free-local:archive
Create Near
SyncState *
# Name translation
Channel free-archive
Far :free-remote:"Archive"
Near :free-local:archive
Create Near
SyncState *
# Name translation
Channel free-sent
Far :free-remote:"Sent"
Near :free-local:sent
Create Near
SyncState *
# Name translation
Channel free-sent
Far :free-remote:"Sent"
Near :free-local:sent
Create Near
SyncState *
#+BEGIN_EXAMPLE
# Set default values for all following accounts.
defaults
auth on
tls on
tls_trust_file /usr/local/share/certs/ca-root-nss.crt
logfile ~/.msmtp.log
``` example
# Set default values for all following accounts.
defaults
auth on
tls on
tls_trust_file /usr/local/share/certs/ca-root-nss.crt
logfile ~/.msmtp.log
tagged as =inbox= and if you delete it, it will be replaced by the
=deleted= tag. It allows for fast indexing and quick search of your
mail. The only drawback is that it does *not* move your mail. So
deleting for real must be done manually.
tagged as `inbox`{.verbatim} and if you delete it, it will be replaced
by the `deleted`{.verbatim} tag. It allows for fast indexing and quick
search of your mail. The only drawback is that it does **not** move your
mail. So deleting for real must be done manually.
# Combine mbsync and notmuch because mbsync may fail and we still want notmuch to run (as we keep getting quota errors)
# So we must have the two command here
# Combine mbsync and notmuch because mbsync may fail and we still want notmuch to run (as we keep getting quota errors)
# So we must have the two command here
# Tagsent mails (by default, there are not tagged)
set filter "(folder:gmail/inbox or folder:free/inbox or tag:inbox) and from:\"Alexis Praga\""
notmuch tag +sent +archived -inbox -- $filter
# Tagsent mails (by default, there are not tagged)
set filter "(folder:gmail/inbox or folder:free/inbox or tag:inbox) and from:\"Alexis Praga\""
notmuch tag +sent +archived -inbox -- $filter
# Move archived mail from inbox to archive folder
set filter tag:archived folder:gmail/inbox
notmuch search $args $filter | xargs -0 -J {} mv {} ~/mail/gmail/archive/cur
# Move archived mail from inbox to archive folder
set filter tag:archived folder:gmail/inbox
notmuch search $args $filter | xargs -0 -J {} mv {} ~/mail/gmail/archive/cur
# Really delete "deleted messages" from gmail
set filter "folder:gmail/trash"
notmuch tag +deleted -- $filter
# Really delete "deleted messages" from gmail
set filter "folder:gmail/trash"
notmuch tag +deleted -- $filter
# delete mails as notmuch cannot do it
set filter "(folder:free/inbox or folder:gmail/inbox or folder:gmail/trash) and tag:deleted"
notmuch search $args $filter | xargs -0 -J {} mv {} ~/mail/trash/cur
# delete mails as notmuch cannot do it
set filter "(folder:free/inbox or folder:gmail/inbox or folder:gmail/trash) and tag:deleted"
notmuch search $args $filter | xargs -0 -J {} mv {} ~/mail/trash/cur
❯ crontab -l
MAILTO=""
*/5 * * * * $HOME/scripts/mbsync_notmuch.sh
#+END_EXAMPLE
❯ crontab -l
MAILTO=""
*/5 * * * * $HOME/scripts/mbsync_notmuch.sh
```
- la Staphylococcal Cassette Chromosome mec (SCCmec) [= zone génomique comprenant /mecA/ qui code pour la protéine PLP2a ( [[*Résistante][Résistance]]).
- la Staphylococcal Cassette Chromosome mec (SCCmec) [= zone génomique comprenant /mecA/ qui code pour la protéine PLP2a
住んでいる (す) = habiter
人口は5万人 ( じんこう ) (ごまんにん
へきち( 僻地 )= arrière-pays
びょういん hopital
つきくずしました (突き崩す) = razer
AとBの間にを建てました (あいだ) (た)
かす( 貸す) = prêter
家賃が安い (やちん やすい)
シェアアパー = coloc
karimasu = to rent
après être allé : kitte kara
- 住んでいる (す) = habiter
- 人口は 5 万人 ( じんこう ) (ごまんにん) : une population de 50 000
- へきち( 僻地 )= arrière-pays
- びょういん hopital
- 突き崩す (つきくずしました) = razer
- A と B の間にを建てました (あいだ) (た) : construire entre A et B
- 貸す(かす) = prêter
- 家賃が安い (やちん やすい): le loyer n'est pas cher
- シェアアパー = coloc
- 借りる(か ) = louer
寮(りょう) : internat ("dormitory")
洪水(こうすい) inondation
泥(どろ) : boue
どろどろ boueux
体操 たいそう gymnastique
体全体 (からだ ぜんたい) : tout le corps
健康 けんこう santé
普通 ふつう normal, ordinaire
内科 ないか : médecine interne
外科 げか chirurgie
NB: ne pas confondre 料 (matériale, ex: cuisine りょうり 料理 avec 科 (département)
いい人 une bonne personne
悪夢 あくむ un cauchemar
いい所 (ところ) : un point positif. Exemple
- 寮(りょう) : internat ("dormitory")
- 洪水(こうすい) inondation
- 泥(どろ) : boue
- どろどろ boueux
- 体操 たいそう gymnastique
- 体全体 (からだ ぜんたい) : tout le corps
- 健康 けんこう santé
- 普通 ふつう normal, ordinaire
- 内科 ないか : médecine interne
- 外科 げか chirurgie. Ne pas confondre 料 (matériale, ex: cuisine りょうり 料理 avec 科 (département)
- いい人 une bonne personne
- 悪夢 あくむ un cauchemar
- いい所 (ところ) : un point positif. Exemple
après X: -てから. Exemple : après être allé : きってから
* DONE Scraper Lonely Planet
CLOSED: [2023-11-19 Sun 00:01] SCHEDULED: <2023-11-18 Sat>
:LOGBOOK:
CLOCK: [2023-11-18 Sat 21:58]
:END:
/Entered on/ [2023-11-18 Sat 21:57]