aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--research/android.md24
-rw-r--r--research/archive.md105
-rw-r--r--research/bike.md14
-rw-r--r--research/data.md34
-rw-r--r--research/devops.md16
-rw-r--r--research/epistemologia.md36
-rw-r--r--research/git.md36
-rw-r--r--research/hardened.md44
-rw-r--r--research/library.md73
-rw-r--r--research/libreboot.md35
-rw-r--r--research/openwrt.md3
-rw-r--r--research/panc.md45
-rw-r--r--research/python.md226
-rw-r--r--research/radio.md10
-rw-r--r--research/raspberrypi.md161
-rw-r--r--research/readers.md15
-rw-r--r--research/security.md33
-rw-r--r--research/thinkpad.md52
-rw-r--r--research/token.md9
-rw-r--r--research/torrent.md15
20 files changed, 64 insertions, 922 deletions
diff --git a/research/android.md b/research/android.md
deleted file mode 100644
index 4257f7a..0000000
--- a/research/android.md
+++ /dev/null
@@ -1,24 +0,0 @@
-[[!meta title="Android"]]
-
-Some bits on android development.
-
-## Basic
-
-Download tools and put inside `~/Android/tools`.
-
- sudo apt install android-sdk # grab all dependencies
- cd ~/Android/tools
- bin/android
-
-## Issues
-
-* http://stackoverflow.com/questions/41173477/android-cant-find-sdkmanager-jar
-
-## References
-
-* [Anbox - Android in a Box](https://anbox.io/).
-* [Build Android apps with Debian: apt install android-sdk](https://bits.debian.org/2017/03/build-android-apps-with-debian.html).
-* Android emulator inside a virtual machine:
- * https://packages.debian.org/stretch/android-sdk
- * http://xmodulo.com/how-to-run-android-emulator-on-ubuntu-or-debian.html
- * https://developer.android.com/studio/install.html
diff --git a/research/archive.md b/research/archive.md
deleted file mode 100644
index 874b724..0000000
--- a/research/archive.md
+++ /dev/null
@@ -1,105 +0,0 @@
-[[!meta title="Archived Research"]]
-
-* Currently archived research.
-* Lista de projetos que já desenvolvi, que atualmente não estão no meu
- horizonte de atividades.
-* Podem ser desarquivados no futuro ou servir de inspiração.
-* Alguns podem ser inclusive passados para frente na linha do [Orfanato de Projetos](https://templates.fluxo.info/orfanato).
-
-## Lista
-
-### Social
-
-* Comunidade "Podíamos!":
- * Um banco de ideias coletivas.
- * Toda a vez que alguém te disser "podíamos fazer tal coisa", sugira para que
- a pessoa sistematize a ideia na comunidade (ou hashtag) "podíamos".
-* Festas:
- * [Silent disco](https://en.wikipedia.org/wiki/Silent_disco).
- * hacknick (hacknique).
- * colar nalgum parque com máquinas, livros e brinquedos e fazer um piquenique.
- * alguns parques tem mesas boas para trampar confortavelmente.
- * otima opção para dias ensolarados e sair das cavernas de concreto.
-* Depósitos urbanos comunitários: ecopontos com possibilidade de retirada de materiais.
-
-### Hardware
-
-* Algema e corrente Kensington.
-
-### Misc software
-
-* Wayland with tiling compositor:
- * [Way Cooler](http://way-cooler.org/).
- * [Sway](http://swaywm.org/).
-* [uMatrix](https://github.com/gorhill/uMatrix).
-* [antigen](https://github.com/zsh-users/antigen), [vundle](https://github.com/VundleVim/Vundle.vim), etc.
-* [Kaitai Struct: declarative binary format parsing language](http://kaitai.io/).
-* [Haiku Project](https://www.haiku-os.org/).
-* [asciinema - Record and share your terminal sessions, the right way](https://asciinema.org/) ([client](https://packages.debian.org/jessie/asciinema) and server).
-* [HTTP Prompt - An interactive command-line HTTP client](http://http-prompt.com/).
-* [mmv](https://packages.debian.org/jessie/mmv) ([manpage](https://ss64.com/bash/mmv.html)).
-* [Unikernel](https://en.wikipedia.org/wiki/Unikernel).
-* Distributed computing clients (distributed-net, boinc, folding@home with [origami](https://packages.debian.org/stable/origami), etc).
-
-### Distros
-
-* [GoboLinux - the alternative Linux distribution](http://gobolinux.org/).
-* [OpenBSD vmm](https://marc.info/?l=openbsd-tech&m=149191695821636&w=2).
-* [Minix3](http://www.minix3.org/).
-* [Sabotage - the hardcore let's be oldschool UNIX experience](http://sabotage.tech/).
-* [netboot.xyz](https://netboot.xyz/).
-* [iPXE - open source boot firmware](http://ipxe.org/).
-* [LEDE](https://lede-project.org/start).
-
-### Multimedia
-
-* mopidy/mpdris:
- * plugins like https://packages.debian.org/stretch/mopidy-podcast
- * https://packages.debian.org/jessie/mopidy
- * https://github.com/acrisci/playerctl
- * https://packages.debian.org/jessie/mpdris2
- * https://packages.debian.org/stretch/mpris-remote
-
-### DevOPS
-
-* onion smtp:
- * https://www.void.gr/kargig/blog/2014/05/10/smtp-over-hidden-services-with-postfix/
- * https://tech.immerda.ch/2016/12/ehlo-onion/
- * https://github.com/riseupnet/onionmx
-* tor: ooniprobe, lepidopter, onionpi (tor, hostapd and iptables).
-* php7-fpm:
- * https://serversforhackers.com/video/apache-and-php-fpm
- * http://www.binarytides.com/setup-apache-php-fpm-mod-proxy-fcgi-ubuntu/
-
- <FilesMatch \.php$>
- SetHandler "proxy:unix:/run/php/php7.1-fpm.sock|fcgi://localhost:9000";
- </FilesMatch>
-
-### Services
-
-* [Saravea](https://web.archive.org/web/*/saravea.net).
-* [Calendário de Movimentos Sociais](https://web.archive.org/web/*/calendario.cc).
-* [Resource Sharing Protocol / Metadata](https://rsp.fluxo.info).
-* [Bootless](https://bootless.fluxo.info).
-* [Clube da Muamba](https://templates.fluxo.info/muamba/).
-* Do [Escritório Sem Login](https://escritorio.fluxo.info):
- * [Lembrador de Eventos](https://lembrador.fluxo.info), cujo [código](https://git.fluxo.info/?p=drupal/reminder.git;a=summary) precisa ser retomado para que o serviço entre no ar.
- * [Encurtador Saravento](https://encurtador.fluxo.info).
- * [Agendador Saravento](https://agendador.fluxo.info).
-
-### Development
-
-* [Firma](https://firma.fluxo.info).
-* [Simplepkg](https://simplepkg.fluxo.info) e [Slack](https://slack.fluxo.info).
-* [Bootex](https://bootex.fluxo.info).
-* [Gnudenberg](https://gnuden.fluxo.info).
-* [Observatory by Mozilla](https://observatory.mozilla.org/) and [CAA checking becomes mandatory for SSL/TLS certificates](https://ma.ttias.be/caa-checking-becomes-mandatory-ssltls-certificates/).
-* [Mapzen](https://mapzen.com).
-* Ebook 'playlist':
- * with copy capabilities.
- * pdf and djvu conversion to epub.
-* Calendar compiler:
- * public, suckless, responsive, RSS.
- * remind, ical.
- * multiple sources and categories.
- * [ical2html](https://packages.debian.org/stable/ical2html).
diff --git a/research/bike.md b/research/bike.md
deleted file mode 100644
index e1fa26c..0000000
--- a/research/bike.md
+++ /dev/null
@@ -1,14 +0,0 @@
-[[!meta title="Bicicletas"]]
-
-## Estante energética
-
-Uma pesquisa sobre estantes de bicicletas (rolos de treino) geradoras de eletricidade!
-
-### Material necessário
-
-* Diversas [referências](https://links.fluxo.info/tags/bicicleta+eletricidade).
-* Rolo de treino.
-* Bateria automotiva.
-* Inversor.
-* Circuito carregador.
-* Motor elétrico.
diff --git a/research/data.md b/research/data.md
deleted file mode 100644
index 6d30f35..0000000
--- a/research/data.md
+++ /dev/null
@@ -1,34 +0,0 @@
-[[!meta title="Data science, lean databases and formats"]]
-
-## Basic
-
-* Ontologies and how to deal with lists.
-* Standards: schema.org, microdata, microformats, json, yaml, csv, dot, vcard.
-* Intelligence: how to easilly search, index and produce outputs with strutured data?
-* Samples: TODO and [ChangeLog](http://keepachangelog.com) (see [yankee: Changelogs meet YAML](https://github.com/studio-b12/yankee)).
-
-## Software
-
-* [mtail](https://packages.debian.org/stable/mtail).
-* [Scrapy | A Fast and Powerful Scraping and Web Crawling Framework](https://scrapy.org/).
-* [phantomjs in stretch](https://packages.debian.org/stable/phantomjs).
-* [wpull](https://wpull.readthedocs.io/en/master/usage.html).
-* [Darktable - virtual lighttable and darkroom for photographers](https://packages.debian.org/stable/darktable).
-* OsmAnd and GPX tracks.
-
-## API, bigdata, etc
-
-* https://stripe.com/blog/idempotency
-* https://botman.io
-* https://github.com/metabase/metabase
-* [Apache Drill](https://drill.apache.org/), [presto](https://github.com/prestodb/presto), hadoop, etc.
-* [Redash](https://redash.io/).
-* [TensorFlow](https://www.tensorflow.org/).
-* [Wikidata](https://www.wikidata.org).
-* [Swagger Specification](http://swagger.io/specification/).
-
-## Datasets
-
-* [API de respostas instantâneas do DuckDuckGo](https://duckduckgo.com/api) ([example](http://api.duckduckgo.com/?q=micropython&format=json&pretty=1)).
-* [Search APIs | ProgrammableWeb](https://www.programmableweb.com/category/search/apis?category=20055).
-* [Have I been pwned? API v2](https://haveibeenpwned.com/API/v2).
diff --git a/research/devops.md b/research/devops.md
deleted file mode 100644
index f5efa8b..0000000
--- a/research/devops.md
+++ /dev/null
@@ -1,16 +0,0 @@
-[[!meta title="DevOps"]]
-
-DevOps research:
-
-* [Simet](http://simet.nic.br).
-* spice-client-gtk: option to hide menubar: see `window_state_cb` at `spicy.c`.
-* auto start user screen sessions.
-* puppet:
- * deploy: multiple module paths: https://docs.puppet.com/puppet/3.6/dirs_modulepath.html
- * default modules as submodules from the bootstrap repository, custom modules closer to the config folder?
-* dynamic DNS with proper zone/domain access control:
- * http://www.cheshirekow.com/wordpress/?p=457
- * https://www.erianna.com/nsupdate-dynamic-dns-updates-with-bind9
- * https://blog.philippklaus.de/2013/01/updating-dns-entries-with-nsupdate-or-alternative-implementations-your-own-ddns/
- * http://linux.yyz.us/nsupdate/
- * https://debian-administration.org/article/591/Using_the_dynamic_DNS_editor_nsupdate
diff --git a/research/epistemologia.md b/research/epistemologia.md
deleted file mode 100644
index 2db7130..0000000
--- a/research/epistemologia.md
+++ /dev/null
@@ -1,36 +0,0 @@
-[[!meta title="Epistemologia"]]
-
-Epistemology: data, routines, systems.
-
-## Branching hypothesis
-
-* Diferenciação aplicada à história e à história da ciência.
-* É um processo de criaçãode ramos que lida com excessões.
-
-### Hipótese 1
-
-Qualquer conjunto de ideias e teorias pode ser organizado
-numa árvore lógica.
-
-A forquilha indica a cisão; o nível acima, ou metanível, representa uma
-categoria unificadora. Assim, mesmo a contradição se encaixa.
-
-### Hipótese 2
-
-Neste esquema, fatos são definidos como **trechos** de caminhos:
-um mesmo fato percorre regiões da árvore, podendo simultaneamente andar por
-diversos ramos.
-
-Fatos são observações do real mapeado em ideias que não necessariamente
-representam o real e que não necessariamente simulam o real com acurácia.
-
-Fatos são tão relativos quanto ideias.
-
-Um entendimento do real é a árvore junto com um caminho percorrido.
-De modo que se torna possível a seleção de concepções de mundo.
-
-### Hipótese 3
-
-Qualquer conjunto de ideias pode ser racionalizado, isto é,
-descrito/justificado por um sistema de regras, por mais estaparfúrdio
-que seja.
diff --git a/research/git.md b/research/git.md
index 9526ee0..f59f38c 100644
--- a/research/git.md
+++ b/research/git.md
@@ -98,38 +98,4 @@ groups for each project so you're not bound to the `git` group.
- [How to clone and share a Git repository over SSH](http://linuxaria.com/pills/how-to-clone-and-share-a-git-repository-over-ssh?lang=en)
- [Git - Getting Git on a Server](https://git-scm.com/book/en/v2/Git-on-the-Server-Getting-Git-on-a-Server).
- [Git - Setting Up the Server](https://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server).
-
-Push to deploy
---------------
-
-* https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps
-* https://github.com/blog/1994-git-2-4-atomic-pushes-push-to-deploy-and-more
-* http://krisjordan.com/essays/setting-up-push-to-deploy-with-git
-* https://petecoop.co.uk/blog/git-2-3-push-deploy
-* http://superuser.com/questions/230694/how-can-i-push-a-git-repository-to-a-folder-over-ssh
-* https://devcenter.heroku.com/articles/git
-* https://github.com/blog/1957-git-2-3-has-been-released (push-to-deploy)
-* https://github.com/git/git/blob/v2.3.0/Documentation/config.txt#L2155
-* http://stackoverflow.com/questions/1764380/push-to-a-non-bare-git-repository
-* http://bitflop.com/tutorials/git-bare-vs-non-bare-repositories.html
-
-Further development
--------------------
-
-* See [utils-git](https://git.fluxo.info/utils-git/about/) repository for useful scripts and plugins.
-* [gitly self-hosted](https://gitly.io).
-* [Git Large File Storage - Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise.](https://git-lfs.github.com/) / [#792075 - ITP: git-lfs -- Git Large File Support. An open source Git extension for versioning large files - Debian Bug report logs](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=792075).
-* signed commits:
- * check using gpgv?
- * [Validating other keys on your public keyring](https://www.gnupg.org/gph/en/manual/x334.html)
- * https://git-annex.branchable.com/tips/using_signed_git_commits/
- * http://stackoverflow.com/questions/17371955/verifying-signed-git-commits
- * https://git-scm.com/book/en/v2/Git-Tools-Signing-Your-Work
- * https://mikegerwitz.com/papers/git-horror-story.html
-* Push-to-deploy plugin:
- * http://superuser.com/questions/230694/how-can-i-push-a-git-repository-to-a-folder-over-ssh
- * https://devcenter.heroku.com/articles/git
- * https://github.com/blog/1957-git-2-3-has-been-released (push-to-deploy)
- * https://github.com/git/git/blob/v2.3.0/Documentation/config.txt#L2155
- * http://stackoverflow.com/questions/1764380/push-to-a-non-bare-git-repository
- * http://bitflop.com/tutorials/git-bare-vs-non-bare-repositories.html
+- The [utils-git](https://git.fluxo.info/utils-git/about/) repository for useful scripts and plugins.
diff --git a/research/hardened.md b/research/hardened.md
deleted file mode 100644
index f59a43e..0000000
--- a/research/hardened.md
+++ /dev/null
@@ -1,44 +0,0 @@
-[[!meta title="Hardened OS"]]
-[[!tag research hardened grsecurity security]]
-
-grsecurity
-----------
-
-Basic install:
-
- sudo apt-get -t jessie-backports install linux-image-4.9.0-2-grsec-amd64 linux-image-grsec-amd64
- sudo apt-get install paxtest
- sudo usermod -aG grsec-tpe `whoami`
-
-As root:
-
- echo "kernel.grsecurity.rwxmap_logging = 0" > /etc/sysctl.d/kernel.grsecurity.rwxmap_logging.conf
- echo "kernel.grsecurity.grsec_lock = 1" > /etc/sysctl.d/kernel.grsecurity.grsec_lock.conf
-
-As regular user, after reboot:
-
- paxctl -cm /usr/bin/git-annex
- paxctl -cm /usr/bin/qemu-img
- paxctl -cm /usr/bin/qemu-system-x86_64
-
-Further research
-----------------
-
-LXC unprivileged containers for GUI applications:
-
-* [LXC 1.0: GUI in containers [9/10] | Stéphane Graber's website](https://stgraber.org/2014/02/09/lxc-1-0-gui-in-containers/).
-* [Configuring Unprivileged LXC containers in Debian Jessie](https://myles.sh/configuring-lxc-unprivileged-containers-in-debian-jessie/).
-* [LXC - Debian Wiki](https://wiki.debian.org/LXC).
-
-References
-----------
-
-* https://micahflee.com/2016/01/debian-grsecurity/
-* https://nixaid.com/grsec-in-docker/
-* https://hardenedlinux.github.io/
-* https://packages.debian.org/stretch/bubblewrap
-* https://packages.debian.org/stretch/runc
-* https://github.com/projectatomic/bubblewrap
-* https://github.com/opencontainers/runc
-* https://github.com/thestinger/playpen
-* https://github.com/omegaup/minijail
diff --git a/research/library.md b/research/library.md
deleted file mode 100644
index 5d97158..0000000
--- a/research/library.md
+++ /dev/null
@@ -1,73 +0,0 @@
-[[!meta title="Libraries"]]
-
-Library Management
-------------------
-
-* [Open Publication Distribution System | Official Specification & Blog](http://opds-spec.org/).
-* [FBReader Calibre connector - F-Droid](https://f-droid.org/repository/browse/?fdfilter=calibre&fdid=org.geometerplus.fbreader.plugin.local_opds_scanner).
-* [Create Your Own Cloud of Ebooks with Calibre + Calibre OPDS + Dropbox](http://dearauthor.com/ebooks/create-your-own-cloud-of-ebooks-with-calibre-calibre-opds-dropbox/).
-* [Turn Raspberry Pi into an Ebook Server with Cal... » Linux Magazine](http://www.linux-magazine.com/Online/Blogs/Productivity-Sauce/Turn-Raspberry-Pi-into-an-Ebook-Server-with-Calibre).
-* [Here is COPS : Calibre OPDS (and HTML) PHP Server | Technology and Me](http://blog.slucas.fr/en/oss/calibre-opds-php-server).
-
-Bibliography Management
------------------------
-
-* [Comparison of reference management software - Wikipedia](https://en.wikipedia.org/wiki/Comparison_of_reference_management_software).
-* [Citeproc YAML for bibliographies](http://blog.martinfenner.org/2013/07/30/citeproc-yaml-for-bibliographies/).
-* [BibTeX](http://www.bibtex.org/) ([ikiwiki plugin](https://ikiwiki.info/plugins/contrib/bibtex/)).
-* [Citation Style Language - Wikipedia](https://en.wikipedia.org/wiki/Citation_Style_Language).
-* [JSON-LD - Wikipedia](https://en.wikipedia.org/wiki/JSON-LD).
-* [Exporting all yaml bibliographic in a pdf file using pandoc - Stack Overflow](http://stackoverflow.com/questions/20077939/exporting-all-yaml-bibliographic-in-a-pdf-file-using-pandoc).
-* [FileMeta/MicroYaml: A simple parser for the MicroYaml dialect of the YAML file format.](https://github.com/FileMeta/MicroYaml).
-* [jtprince/bivy: "bibliography in vim and yaml" is a lightweight bibliographic management system. Create bibliographies and citations with simple tools.](https://github.com/jtprince/bivy)
-* [jbaiter/zotero-cli: Command-line interface for Zotero](https://github.com/jbaiter/zotero-cli).
-* [vhotspur/cli-zotero: Command-line client for Zotero (BibTeX export now only)](https://github.com/vhotspur/cli-zotero).
-* [pandoc-citeproc in stretch](https://packages.debian.org/stretch/pandoc-citeproc).
-
-Standards
----------
-
-* Metadata organization:
- * Lowercase, underlines and dashes.
- * Easytag and picard.
- * UUID, IMDB ID, etc.
- * AcousticBrainz: http://lwn.net/Articles/622682/rss
- * Update changes in playlists.
-* Filenaming, fixing names with [convmv](https://packages.debian.org/stable/convmv).
-
-Subtitles
----------
-
-* http://subscene.com
-* http://www.subtitleseeker.com
-* http://www.opensubtitles.org
-
-Corrente dos Achados & Deixados
--------------------------------
-
-Recebi algo assim:
-
- Esqueça um livro e espalhe conhecimento.
-
- Vamos?
-
- Deixe no restaurante, no ponto de ônibus, dentro do metrô, sobre a bancada do
- banco , no táxi. A escolha é livre.
-
- Vale um bilhetinho, explicando o projeto e o presente !
-
- Modelo de Bilhetinho:
-
- Ei, você que achou este livro!
-
- Agora ele é SEU!
-
- A iniciativa faz parte de um projeto de incentivo à leitura e
- compartilhamento de conhecimento.
-
- Encoraje-se a fazer o mesmo! :)
-
-References
-----------
-
-* http://www.datalove.net
diff --git a/research/libreboot.md b/research/libreboot.md
index 73d8c39..fa0ec98 100644
--- a/research/libreboot.md
+++ b/research/libreboot.md
@@ -6,17 +6,17 @@ Also check the [additional references](https://links.fluxo.info/tags/libreboot).
From [Libreboot – Installation instructions](https://libreboot.org/docs/install/index.html):
- NOTE: if running flashrom -p internal for software based flashing, and you get
- an error related to /dev/mem access, you should reboot with iomem=relaxed
- kernel parameter before running flashrom, or use a kernel that has
- CONFIG_STRICT_DEVMEM not enabled.
+> NOTE: if running flashrom -p internal for software based flashing, and you get
+> an error related to /dev/mem access, you should reboot with iomem=relaxed
+> kernel parameter before running flashrom, or use a kernel that has
+> CONFIG_STRICT_DEVMEM not enabled.
Or you might get errors like this:
user@x60s:~/code/libreboot/libreboot_r20160907_util/flashrom/i686$ sudo ./flashrom_lenovobios_sst -p internal -r factory.bin
flashrom v0.9.9-unknown on Linux 4.9.0-2-686-pae (i686)
flashrom is free software, get the source code at https://flashrom.org
-
+
Calibrating delay loop... OK.
Found chipset "Intel ICH7M".
Enabling flash write... Error accessing ICH RCRB, 0x4000 bytes at 0xfed1c000
@@ -24,7 +24,7 @@ Or you might get errors like this:
FAILED!
FATAL ERROR!
Error: Programmer initialization failed.
- user@x60s:~/code/libreboot/libreboot_r20160907_util/flashrom/i686$ sudo ./flashrom_lenovobios_macronix -p internal -r factory.bin
+ user@x60s:~/code/libreboot/libreboot_r20160907_util/flashrom/i686$ sudo ./flashrom_lenovobios_macronix -p internal -r factory.bin
## Pre-compiled binaries
@@ -60,17 +60,18 @@ This is how I've done. The actual procedure might change without notice :P
* Backup the original firmware [like said](https://www.coreboot.org/Board:lenovo/x60/Installation#Back_up_the_original_proprietary_firmware).
* Then flash the new ROM as [said here](https://libreboot.org/docs/install/#flashrom_lenovobios).
-Note this [funny note](https://en.wikibooks.org/wiki/Libreboot/Install/ThinkPad_X60_and_T60) on customized and solitary proprietary software:
+Note this [funny note](https://en.wikibooks.org/wiki/Libreboot/Install/ThinkPad_X60_and_T60)
+on customized and solitary proprietary software:
- While backing up the proprietary BIOS image might be construed as "endorsing"
- proprietary software: This BIOS image is unique to every motherboard. It will
- be impossible to restore the original BIOS once it is lost. Back it up now or
- you will lose it forever. Do not take this decision lightly.
+> While backing up the proprietary BIOS image might be construed as "endorsing"
+> proprietary software: This BIOS image is unique to every motherboard. It will
+> be impossible to restore the original BIOS once it is lost. Back it up now or
+> you will lose it forever. Do not take this decision lightly.
### BIOS Backup
user@x60s:~/code/libreboot/libreboot_r20160907_util/flashrom/i686$ sudo ./flashrom_lenovobios_sst -p internal -r factory.bin
- user@x60s:~/code/libreboot/libreboot_r20160907_util/flashrom/i686$ sudo ./flashrom_lenovobios_macronix -p internal -r factory.bin
+ user@x60s:~/code/libreboot/libreboot_r20160907_util/flashrom/i686$ sudo ./flashrom_lenovobios_macronix -p internal -r factory.bin
### Flashing
@@ -82,7 +83,7 @@ Note this [funny note](https://en.wikibooks.org/wiki/Libreboot/Install/ThinkPad_
Updated BUC.TS=1 - 64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped
flashrom v0.9.9-unknown on Linux 4.9.0-2-686-pae (i686)
flashrom is free software, get the source code at https://flashrom.org
-
+
Calibrating delay loop... OK.
Found chipset "Intel ICH7M".
Enabling flash write... WARNING: SPI Configuration Lockdown activated.
@@ -112,14 +113,14 @@ Note this [funny note](https://en.wikibooks.org/wiki/Libreboot/Install/ThinkPad_
DO NOT REBOOT OR POWEROFF!
flashrom v0.9.9-unknown on Linux 4.9.0-2-686-pae (i686)
flashrom is free software, get the source code at https://flashrom.org
-
+
Calibrating delay loop... OK.
Found chipset "Intel ICH7M".
Enabling flash write... WARNING: SPI Configuration Lockdown activated.
OK.
No EEPROM/flash device found.
Note: flashrom can never write if the flash chip isn't found automatically.
- user@x60s:~/code/libreboot/libreboot_r20160907_util$
+ user@x60s:~/code/libreboot/libreboot_r20160907_util$
Then reboot the machine, passing "iomem=relaxed" into the kernel command line. Then run the
second flash:
@@ -128,7 +129,7 @@ second flash:
Mode selected: i945lenovo_secondflash
flashrom v0.9.9-unknown on Linux 4.9.0-2-686-pae (i686)
flashrom is free software, get the source code at https://flashrom.org
-
+
Calibrating delay loop... OK.
coreboot table found at 0x7be9f000.
Found chipset "Intel ICH7M".
@@ -141,7 +142,7 @@ second flash:
Using LPC bridge 8086:27b9 at 0000:1f.00
Current BUC.TS=1 - 64kb address ranges at 0xFFFE0000 and 0xFFFF0000 are swapped
Updated BUC.TS=0 - 128kb address range 0xFFFE0000-0xFFFFFFFF is untranslated
- user@x60s:~/code/libreboot/libreboot_r20160907_util$
+ user@x60s:~/code/libreboot/libreboot_r20160907_util$
## Issues
diff --git a/research/openwrt.md b/research/openwrt.md
index e2e9e03..7f68187 100644
--- a/research/openwrt.md
+++ b/research/openwrt.md
@@ -29,7 +29,8 @@ Candidatos
Escolhido
---------
-* [TP-Link TL-WDR4300](https://wiki.openwrt.org/toh/tp-link/tl-wdr4300): é um dos [recomendados](https://wiki.openwrt.org/toh/recommended_routers); [comparação de preços](http://www.buscape.com.br/tp-link-tl-wdr4300) (ar71xx).
+* [TP-Link TL-WDR4300](https://wiki.openwrt.org/toh/tp-link/tl-wdr4300):
+ é um dos [recomendados](https://wiki.openwrt.org/toh/recommended_routers); [comparação de preços](http://www.buscape.com.br/tp-link-tl-wdr4300) (ar71xx).
Configuração
------------
diff --git a/research/panc.md b/research/panc.md
deleted file mode 100644
index 04b584e..0000000
--- a/research/panc.md
+++ /dev/null
@@ -1,45 +0,0 @@
-[[!meta title="PANC - Plantas Alimentícias Não-Convencionais"]]
-
-* Plantas Ruderais, ruderis, entulho: se desenvolvem com freq. Em ambientes hab por humanos, colonizadoras de áreas degradadas. PANC x Ruderal (há intersecção)
-* Dormência de semente: revolver um vaso pode reativá-la.
-* 30 mil comestíveis de 300 mil espécie total, mas 90% do rango mundial vem de 20 espécies
-* Preferir nome científico
-* Status legal da coleta urbana? "Melhoria" da limpeza. Como defender?
-* PANCS amargas!
-* Roda PANC!
-
-## Espécies
-
-* Ora pro nobis: fonte de proteínas.
-* Grumixama, cereja do rio grande
-* Serralha, dente de leão, beldroega, major gomes
-* Caruru família quinoa amaranto
-* Taioba:
- * Fica esperto mermao: folha sai do meio do talo
- * Formato de Orelhinha, nervura ao redor da folha
-
-## Estaca, estaquia
-
-* Um palmo com um corte na transversal em cada extremidade: aumento contato raíz e escoamento do topo
-* Tirar folhas, deixando poucas pra reduzir a evapotranspiração e reduzir gasto energético.
-* Plantar na direção correta.
-* Enterrar ao menos duas gemas.
-
-## Referências
-
-* Fitoalimurgia, Otaviano Tozetti
-* PANC, Projeto PANC, Valdely Kinupp
-* História da agricultura no mundo, marcel mazoyer e lawrence roudart
-* Livro do knuppi e do lorenzi
-* Instituto plantarum
-* [Como diferenciar serralha e dente-de-leão](http://www.matosdecomer.com.br/2016/08/como-diferenciar-serralha-e-dente-de.html).
-* [Cartilha Guia Prático de PANC Plantas Alimenticias Nao Convencionais](http://institutokairos.net/wp content/uploads/2017/08/Cartilha Guia Pr%C3%A1tico de PANC Plantas Alimenticias Nao Convencionais.pdf).
-
-## Pesquisas futuras:
-
-* C2 ou C3?
-* Venenosas?
-* Doenças?
-* Contaminação?
-* Aplicativo botânico para identificação de plantas
-* Musgo?
diff --git a/research/python.md b/research/python.md
deleted file mode 100644
index 0051bc0..0000000
--- a/research/python.md
+++ /dev/null
@@ -1,226 +0,0 @@
-[[!meta title="Python"]]
-
-## Learning Python
-
-### Which version to start? 2.x or 3.x?
-
-Short answer: start learning 3.x and, if needed, check the differences with 2.x.
-
-From [Should I use Python 2 or Python 3 for my development activity?](Should I use Python 2 or Python 3 for my development activity?):
-
- Besides, several aspects of the core language (such as print and exec being
- statements, integers using floor division) have been adjusted to be easier for
- newcomers to learn and to be more consistent with the rest of the language, and
- old cruft has been removed (for example, all classes are now new-style,
- "range()" returns a memory efficient iterable, not a list as in 2.x).
-
- [...]
-
- In particular, instructors introducing Python to new programmers should
- consider teaching Python 3 first and then introducing the differences in Python
- 2 afterwards (if necessary), since Python 3 eliminates many quirks that can
- unnecessarily trip up beginning programmers trying to learn Python 2.
-
-Also:
-
-* [Python Future: Easy, clean, reliable Python 2/3 compatibility](http://python-future.org/).
-* [Should I learn Python 2 or 3?](https://www.dataquest.io/blog/python-2-or-3/).
-
-### General
-
-* Everything is an object. Really? What about symbols like + - and =?
-* The `dir()` and `help()` functions are really useful.
-* Great idea: iteration protocol.
-* There are sequences and sum operations common for all types and specific type operations.
-
-### Iteration and optimization
-
- In general, leading and trailing double underscores is the naming pattern
- Python uses for implementation details. The names without the underscores in
- this list are the callable methods on string objects.
-
-### Polymorphism
-
-Python encourages polymorphism:
-
- This is related to the idea of polymorphism mentioned earlier, and it stems
- from Python’s lack of type declarations. As you’ll learn, in Python, we code to
- object interfaces (operations supported), not to types. That is, we care what
- an object does, not what it is. Not caring about specific types means that code
- is automatically applicable to many of them—any object with a compatible
- interface will work, regardless of its specific type. Although type checking is
- supported—and even required in some rare cases—you’ll see that it’s not usually
- the “Pythonic” way of thinking. In fact, you’ll find that polymorphism is
- probably the key idea behind using Python well.
-
-### Numeric Display Formats
-
-* [14. Floating Point Arithmetic: Issues and Limitations — Python 2.7.13 documentation](https://docs.python.org/2/tutorial/floatingpoint.html)
-* [What Every Computer Scientist Should Know About Floating-Point Arithmetic](https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)
-* [Floating-point arithmetic - Wikipedia](https://en.wikipedia.org/wiki/Floating-point_arithmetic).
-
- This floating-point limitation is especially apparent for values that cannot be
- represented accurately given their limited number of bits in memory.
-
- [...]
-
- fractions and decimals both allow more intuitive and accurate results than
- floating points sometimes can, in different ways—by using rational
- representation and by limiting precision
-
-### Types
-
- More formally, there are three major type (and operation) categories in Python
- that have this generic nature:
-
- Numbers (integer, floating-point, decimal, fraction, others)
- Support addition, multiplication, etc.
-
- Sequences (strings, lists, tuples)
- Support indexing, slicing, concatenation, etc.
-
- Mappings (dictionaries)
- Support indexing by key, etc.
-
- [...]
-
- The major core types in Python break down as follows:
-
- Immutables (numbers, strings, tuples, frozensets)
- None of the object types in the immutable category support in-place changes,
- though we can always run expressions to make new objects and assign their
- results to variables as needed.
-
- Mutables (lists, dictionaries, sets, bytearray)
- Conversely, the mutable types can always be changed in place with operations
- that do not create new objects. Although such objects can be copied, in-place
- changes support direct modification.
-
-So remember that when [copying](https://stackoverflow.com/questions/2612802/how-to-clone-or-copy-a-list#2612815)
-or referencing a list.
-
-Also, [take care with handling mutables as arguments and as default arguments](http://www.thedigitalcatonline.com/blog/2015/02/11/default-arguments-in-python/),
-also explained [here](https://docs.python.org/3/tutorial/controlflow.html#default-argument-values) and [here](https://docs.python-guide.org/writing/gotchas/)
-(common gotchas).
-
-From [Scopes an Namespaces](https://docs.python.org/3/tutorial/classes.html#python-scopes-and-namespaces), telling that assignments bind names to objects:
-
- A special quirk of Python is that – if no global statement is in effect –
- assignments to names always go into the innermost scope. Assignments do not
- copy data — they just bind names to objects. The same is true for deletions:
- the statement del x removes the binding of x from the namespace referenced by
- the local scope. In fact, all operations that introduce new names use the local
- scope: in particular, import statements and function definitions bind the
- module or function name in the local scope.
-
- The global statement can be used to indicate that particular variables live in
- the global scope and should be rebound there; the nonlocal statement indicates
- that particular variables live in an enclosing scope and should be rebound
- there.
-
- [...]
-
- Actually, you may have guessed the answer: the special thing about methods is
- that the instance object is passed as the first argument of the function. In
- our example, the call x.f() is exactly equivalent to MyClass.f(x). In general,
- calling a method with a list of n arguments is equivalent to calling the
- corresponding function with an argument list that is created by inserting the
- method’s instance object before the first argument.
-
-Week references (from [here](https://docs.python.org/3/tutorial/stdlib2.html):
-
- Python does automatic memory management (reference counting for most objects
- and garbage collection to eliminate cycles). The memory is freed shortly after
- the last reference to it has been eliminated.
-
-Now explain this:
-
- Python 2.7.13 (default, Sep 26 2018, 18:42:22)
- [GCC 6.3.0 20170516] on linux2
- Type "help", "copyright", "credits" or "license" for more information.
- >>> hex(id([]))
- '0x7f6264bbf368'
- >>> hex(id([]))
- '0x7f6264bbf368'
- >>> x = []
- >>> hex(id(x))
- '0x7f6264bbf368' # both x and [] points to the same memory location
- >>> x.append('0')
- >>> hex(id(x))
- '0x7f6264bbf368' # x still points to the same memory location
- >>> hex(id([]))
- '0x7f6264baeab8' # now [] points somewhere else
- >>> hex(id('test'))
- '0x7f6264bc9480'
- >>> x = 'test'
- >>> hex(id(x))
- '0x7f6264bc9450'
- >>> hex(id('test'))
- '0x7f6264bc9450'
- >>> hex(id('another test'))
- '0x7f6264bcc1f0'
- >>> x = 'another test'
- >>> hex(id(x))
- '0x7f6264bcc228'
- >>> hex(id('another test'))
- '0x7f6264bcc260'
- >>>
-
-### Threads
-
-From [GlobalInterpreterLock](https://wiki.python.org/moin/GlobalInterpreterLock):
-
- In CPython, the global interpreter lock, or GIL, is a mutex that protects
- access to Python objects, preventing multiple threads from executing Python
- bytecodes at once. This lock is necessary mainly because CPython's memory
- management is not thread-safe. (However, since the GIL exists, other features
- have grown to depend on the guarantees that it enforces.)
-
- [...]
-
- The GIL is controversial because it prevents multithreaded CPython programs
- from taking full advantage of multiprocessor systems in certain situations.
- Note that potentially blocking or long-running operations, such as I/O, image
- processing, and NumPy number crunching, happen outside the GIL. Therefore it is
- only in multithreaded programs that spend a lot of time inside the GIL,
- interpreting CPython bytecode, that the GIL becomes a bottleneck.
-
-From: [Thread State and the Global Interpreter Lock](https://docs.python.org/3/c-api/init.html#thread-state-and-the-global-interpreter-lock):
-
- When threads are created using the dedicated Python APIs (such as the threading
- module), a thread state is automatically associated to them and the code showed
- above is therefore correct. However, when threads are created from C (for
- example by a third-party library with its own thread management), they don’t
- hold the GIL, nor is there a thread state structure for them.
-
-### Nice stuff
-
-* [Verbose Regular Expressions](http://www.diveintopython3.net/regular-expressions.html#verbosere).
-
-## Implementations
-
-* [MicroPython - Python for microcontrollers](http://micropython.org/) ([compiling](https://github.com/micropython/micropython/wiki/Getting-Started).
-
-## Libraries and applications
-
-* QGIS.
-* [SciPy.org — SciPy.org](https://www.scipy.org/) ([package](https://packages.debian.org/stable/python-scipy)).
-
-## Frameworks
-
-* [Welcome | Flask (A Python Microframework)](http://flask.pocoo.org/) ([package](https://packages.debian.org/stretch/python-flask)).
-* Async: [asyncio](https://docs.python.org/3/library/asyncio.html), Twisted and Tornado.
-* [Anaconda Data Science Platform](https://www.anaconda.com/).
-* [Streamlit](https://streamlit.io).
-
-## IDEs
-
-* [PyCharm](https://www.jetbrains.com/pycharm/).
-
-## Misc
-
-* [Indentation](https://www.python.org/dev/peps/pep-0008/#indentation): Use 4 spaces per indentation level.
-
-## Test projects
-
-* [Arduino Blog » How close are we to doomsday? A clock is calculating it in real time](https://blog.arduino.cc/2013/03/27/how-close-are-we-to-doomsday-clock/) ([python code](https://github.com/tomschofield/Neurotic-Armageddon-Indicator/blob/master/NAI_SERVER/nai_scraper.py) to parse [Timeline from the Bulletin of the Atomic Scientists](http://thebulletin.org/timeline)).
diff --git a/research/radio.md b/research/radio.md
deleted file mode 100644
index b1d3e08..0000000
--- a/research/radio.md
+++ /dev/null
@@ -1,10 +0,0 @@
-[[!meta title="A Era do Rádio Chegou"]]
-[[!tag radio rádio hardware comunicação]]
-
-* Build a trench radio (foxhole radio) and crystal radio.
-* [Transmitting FM, AM, SSB, SSTV and FSQ with just a Raspberry Pi](http://www.rtl-sdr.com/transmitting-fm-am-ssb-sstv-and-fsq-with-just-a-raspberry-pi/).
-* [Raspberry PiRate Radio FM Transmitter](http://www.rtl-sdr.com/raspberry-pirate-radio-fm-transmitter/).
-* [Transmitting Data with a Raspberry Pi and RTL-SDR](http://www.rtl-sdr.com/transmitting-data-raspberry-pi-rtl-sdr/).
-* [RTL-SDR Tutorial: Analyzing GSM with Airprobe/GR-GSM and Wireshark](https://www.rtl-sdr.com/rtl-sdr-tutorial-analyzing-gsm-with-airprobe-and-wireshark/).
-* [Open Security Research: Getting Started with GNU Radio and RTL-SDR (on Backtrack)](http://blog.opensecurityresearch.com/2012/06/getting-started-with-gnu-radio-and-rtl.html).
-* [osmo-fl2k allows to use USB 3.0 to VGA adapters based on the Fresco Logic FL2000 chip](https://osmocom.org/projects/osmo-fl2k/wiki/Wiki).
diff --git a/research/raspberrypi.md b/research/raspberrypi.md
deleted file mode 100644
index b4acd29..0000000
--- a/research/raspberrypi.md
+++ /dev/null
@@ -1,161 +0,0 @@
-[[!meta title="Raspberry Pi"]]
-
-* [General information](https://wiki.debian.org/RaspberryPi2).
-
-Issues
-======
-
-## SSH
-
-SSH not working by default on newer (2017) raspbian releases. That's because it's disabled
-by default. Solution is to create a file called 'ssh' in the boot partition.
-
-## Networking
-
-* You might try to make it allways up with wicd-curses.
-
-### Amplifier mode
-
-Some references on using an external soundcard as an amplifier:
-
-* packages: libncurses5-dev libjack-jackd2-dev jack-tools
-* http://wiki.linuxaudio.org/wiki/raspberrypi
-* http://www.jackaudio.org/applications/
-* http://linux-audio.4202.n7.nabble.com/Solution-for-jackd2-and-dbus-without-X-session-td35904.html
-* http://comments.gmane.org/gmane.linux.audio.users/82560
-* [sound - How do I output my audio input? - Ask Ubuntu](https://askubuntu.com/questions/2719/how-do-i-output-my-audio-input)
-* [Crackle-free audio on the Raspberry Pi with mpd and PulseAudio – dbader.org](https://dbader.org/blog/crackle-free-audio-on-the-raspberry-pi-with-mpd-and-pulseaudio)
-* [How to play realtime insted of using arecord and aplay?](https://www.linuxquestions.org/questions/linux-newbie-8/how-to-play-realtime-insted-of-using-arecord-and-aplay-858500/)
-* [Jackd Headless](https://capocasa.net/jackd-headless).
-
-Attempts:
-
- man jack_disconnect
- man jack_connect
- man jack_lsp
- sudo jack_lsp
- sudo apt-get install jack-tools
- jackd
- jackd --no-realtime
- jackd --no-realtime -d alsa
- export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket jackd --no-realtime -d alsa
- DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket jackd --no-realtime -d alsa
- sudo jackd --no-realtime -d alsa
- DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket sudo jackd --no-realtime -d alsa
- sudo apt-get install libncurses5-dev libjack-jackd2-dev -y
- DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket sudo jackd --no-realtime -d alsa
- DBUS_SESSION_BUS_ADDRESS=unix:path=/run/dbus/system_bus_socket sudo jackd -r -d alsa -d default:CARD=USB
-
-### Freezing
-
-At the serial console:
-
- [123916.394903] INFO: rcu_preempt detected stalls on CPUs/tasks:
- [123916.413406] 1: (1 GPs behind) idle=dcd/140000000000000/0 softirq=1003110/1003111 fqs=312910
- [123916.447541] (detected by 0, t=765007 jiffies, g=729122, c=729121, q=347657)
- [123916.467769] Task dump for CPU 1:
- [123916.484152] puppet R running 0 29362 1 0x00000002
- [123916.503500] rcu_preempt kthread starved for 448421 jiffies!
-
-References:
-
-* [Pi2 rcu_preempt detected stalls · Issue #1161 · raspberrypi/linux · GitHub](https://github.com/raspberrypi/linux/issues/1161).
-
-## Montagem automática de volume cifrado
-
-Assumindo:
-
- VOLNAME: nome do disco externo
- MEDIA: nome do dispositivo mapeado (device mapper)
-
-No TPC:
-
- dd if=/dev/urandom of=pirotron bs=1024 count=4
- keyringer $PROJECT encrypt disks/$MEDIA/luks/root-berry $VOLNAME
- scp $VOLNAME berry:~/
- wipe $VOLNAME
-
-No raspberry:
-
- sudo mv /home/$USER/$VOLNAME /root/
- sudo chmod 0400 /root/$VOLNAME
- sudo cryptsetup luksAddKey /dev/sda1 /root/$VOLNAME
-
-No `/etc/crypttab`:
-
- $VOLNAME /dev/sda1 /root/$VOLNAME luks
-
-No `/etc/fstab`:
-
- /dev/mapper/$VOLNAME /media/$VOLNAME ext4 defaults 0 2
-
-Referências:
-
-* https://www.howtoforge.com/automatically-unlock-luks-encrypted-drives-with-a-keyfile
-* https://askubuntu.com/questions/450895/mount-luks-encrypted-hard-drive-at-boot
-
-## Rede
-
-Arquivo `/etc/network/interfaces`:
-
- auto lo
- iface lo inet loopback
-
- #auto eth0
- #allow-hotplug eth0
-
- #iface eth0 inet manual
- #iface eth0 inet static
- # address 192.168.0.100
- # netmask 255.255.255.0
-
- auto wlan0
- allow-hotplug wlan0
-
- iface wlan0 inet static
- address 192.168.0.100
- netmask 255.255.255.0
- wpa-ssid ACCESS_POINT_NAME
- wpa-psk PSK
- #wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
- post-up /usr/sbin/service shorewall restart
-
- #iface wlan0 inet manual
- # wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
- #
- #iface ape inet static
- # address 192.168.0.100
- # netmask 255.255.255.0
-
- #iface wlan0 inet manual
- #wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
-
- #auto wlan1
- #allow-hotplug wlan1
- #iface wlan1 inet manual
- #wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
-
-Arquivo `/etc/wpa_supplicante/wpa_supplicant.conf` (por enquanto não utilizado):
-
- ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
- update_config=1
-
- network={
- ssid="ACCESS_POINT_NAME"
- psk="PSK"
- }
-
-O esquema `wpa-roam` não funciona com interfaces `static`, então foi necessário usar [https://git.fluxo.info/?p=puppet-nodo.git;a=commit;h=d09f347afc0a99481673f227f83864d06206add6 um script].
-
-Backups
--------
-
-Fazendo o backup do cartão microSD a partir do TPC:
-
- dcfldd if=/dev/sdb | bzip2 > raspberry.img.bz2
-
-## References
-
-* http://linuxonflash.blogspot.com.br
-* http://elinux.org/RPi_Serial_Connection
-* https://www.raspbian.org/RaspbianMirrors
diff --git a/research/readers.md b/research/readers.md
index 7e07537..391eb20 100644
--- a/research/readers.md
+++ b/research/readers.md
@@ -1,4 +1,4 @@
-[[!meta title="Leitores - eReaders"]]
+[[!meta title="Leitores - eReaders - e-Ink"]]
[[!tag leitura hardware pesquisa gadget]]
Essencial
@@ -24,7 +24,8 @@ Kobo
## Customizing
-* [KOReader Community · GitHub](https://github.com/koreader): [Installation on Kobo devices · koreader/koreader Wiki · GitHub](https://github.com/koreader/koreader/wiki/Installation-on-Kobo-devices).
+* [KOReader Community · GitHub](https://github.com/koreader):
+ [Installation on Kobo devices · koreader/koreader Wiki · GitHub](https://github.com/koreader/koreader/wiki/Installation-on-Kobo-devices).
### Hacking
@@ -49,8 +50,11 @@ A partir de uma cópia completa do acervo:
Notar que usamos:
-* `--size-only` para fazer uma comparação simples de tamanho dos arquivos (é seguro porque assumimos que são obras autoradas/fechadas) e copiar mais rápido, além de evitar a cópia completa por conta de `-L`.
-* `--ignore-errors` por conta de possíveis ligações simbólicas mortas de arquivos do git-annex que não estejam na cópia de trabalho.
+* `--size-only` para fazer uma comparação simples de tamanho dos arquivos (é
+ seguro porque assumimos que são obras autoradas/fechadas) e copiar mais
+ rápido, além de evitar a cópia completa por conta de `-L`.
+* `--ignore-errors` por conta de possíveis ligações simbólicas mortas de
+ arquivos do git-annex que não estejam na cópia de trabalho.
#### Usando lftp
@@ -93,7 +97,8 @@ Vide [export-kobo](https://github.com/pettarin/export-kobo).
#### Wallabag
-Wallabag config lives at /mnt/.adds/koreader/settings/wallabag.lua; sample config that can be edited via ssh:
+Wallabag config lives at `/mnt/.adds/koreader/settings/wallabag.lua`; sample
+config that can be edited via ssh:
-- we can read Lua syntax here!
return {
diff --git a/research/security.md b/research/security.md
deleted file mode 100644
index 38e32ce..0000000
--- a/research/security.md
+++ /dev/null
@@ -1,33 +0,0 @@
-[[!meta title="Security"]]
-
-Research and development in security:
-
-* [Creepy - Geolocation OSINT Tool](http://www.geocreepy.com/) ([package](https://packages.debian.org/wheezy/creepy)).
-* [Qubes OS](https://www.qubes-os.org/):
- * [Qubes - Debian Wiki](https://wiki.debian.org/Qubes).
- * [i3 | Qubes OS](https://www.qubes-os.org/doc/i3/).
- * [Qubes OS 3.2 [LWN.net]](https://lwn.net/Articles/705827/).
-* bitmask and LEAP.
-* port knocking.
-* hardened systems: apparmor, gradm2, firejail, seccomp, etc.
-* sshd:
- * https://stribika.github.io/2015/01/04/secure-secure-shell.html
- * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=774711#60
- * http://security.stackexchange.com/questions/64562/how-should-i-defend-against-zero-day-attack-on-ssh
- * https://charlieharvey.org.uk/page/ssh_port_pros_and_cons
-* fuzzy testing: fusil, etc.
-* router: serial console to other boxes with dhe luks! :)
-* [Mailcap, HTML and AppArmor](http://www.justgohome.co.uk/blog/2014/02/mailcap-html-apparmor.html).
-* Increased security on smtp/imaps password storage:
- * https://github.com/sup-heliotrope/sup/wiki/Securely-Store-Password
- * http://serverfault.com/questions/149452/how-can-i-use-fetchmail-or-another-email-grabber-with-osx-keychain-for-authent
- * http://mah.everybody.org/docs/mail/fetchmail_check
-* Enhanced shell:
- * Add a counter-measure to prevent SSH timing attacks:
- http://users.ece.cmu.edu/~dawnsong/papers/ssh-timing.pdf
- http://www.slideshare.net/idsecconf/countermeasure-against-timing-attack-on-ssh-using-random-delay
- http://www.scribd.com/doc/59628153/Timing-Analysis-of-Keystrokes-and-Timing-Attacks-on-SSH-Revisited
-* https://shodan.io
-* https://censys.io
-* https://keybase.io
-* https://github.com/shadowsocks/shadowsocks-go
diff --git a/research/thinkpad.md b/research/thinkpad.md
index d8afb94..2799470 100644
--- a/research/thinkpad.md
+++ b/research/thinkpad.md
@@ -15,26 +15,26 @@ propriedade.
[De onde vem o slogan THINK](/books/history/ibm-holocaust):
- NCR salesmen wore dark suits, the corporation innovated a One Hun-
- dred Point Club for agents who met their quota, and The Cash stressed "clean
- living" as a virtue for commercial success. One day during a pep rally to the
- troops, Watson scrawled the word THINK on a piece of paper. Patterson saw
- the note and ordered THINK signs distributed throughout the company.
- Watson embraced many of Patterson's regimenting techniques as indispens-
- able doctrine for good sales. What he learned at NCR would stay with him
- forever.
-
- -- do livro IBM and The Holocaust, pág. 42
-
- Large pictures of Watson in the weekly company publication, Business
- Machines, regularly sported headlines proclaiming even his ordinary accom-
- plishments, such as "Thomas J. Watson Opens New Orleans Office." The ever-
- present equating of his name with the word THINK was more than an
- Orwellian exercise, it was a true-life indoctrination. The Watson mystique
- was never confined to the four walls of IBM. His aura was only magnified by
- his autocratic style
-
- -- do livro IBM and The Holocaust, pág. 47
+> NCR salesmen wore dark suits, the corporation innovated a One Hun-
+> dred Point Club for agents who met their quota, and The Cash stressed "clean
+> living" as a virtue for commercial success. One day during a pep rally to the
+> troops, Watson scrawled the word THINK on a piece of paper. Patterson saw
+> the note and ordered THINK signs distributed throughout the company.
+> Watson embraced many of Patterson's regimenting techniques as indispens-
+> able doctrine for good sales. What he learned at NCR would stay with him
+> forever.
+>
+> -- do livro IBM and The Holocaust, pág. 42
+>
+> Large pictures of Watson in the weekly company publication, Business
+> Machines, regularly sported headlines proclaiming even his ordinary accom-
+> plishments, such as "Thomas J. Watson Opens New Orleans Office." The ever-
+> present equating of his name with the word THINK was more than an
+> Orwellian exercise, it was a true-life indoctrination. The Watson mystique
+> was never confined to the four walls of IBM. His aura was only magnified by
+> his autocratic style
+>
+> -- do livro IBM and The Holocaust, pág. 47
Esse aí é o DNA da IBM. Não é de se estranhar que tenha sido tão fácil para a
Apple capitalizar em cima dos hobbystas da computação pessoal e se colocar como
@@ -62,12 +62,12 @@ público letrado que produz código.
### A nova ideologia
- O lance é...
- Na nova ideologia, o slogan mudou
- Nao eh mais **THINK**
- Mas sim **INTERACT**
- Daí que as recentes linhagens técnicas tem outro design
- Pra facilitar uma interação instantânea, não para pensar
+> O lance é...
+> Na nova ideologia, o slogan mudou
+> Nao eh mais **THINK**
+> Mas sim **INTERACT**
+> Daí que as recentes linhagens técnicas tem outro design
+> Pra facilitar uma interação instantânea, não para pensar
Não que o slogan anterior tenha sido abolido, mas ele é minoritário numa indústria
da computação onde a maior parte dos consumidores não está sendo tratada como
diff --git a/research/token.md b/research/token.md
index da4d0ed..36610ac 100644
--- a/research/token.md
+++ b/research/token.md
@@ -33,12 +33,17 @@ querer usar os drivers proprietários a não ser que seja forçado, certo?
Curioso que no fim das contas a OAB conseguiu seu lugar ao sol no mercado
da certificação digital apesar da implantação do modelo governamental escolhido
-para o certificado raíz brasileiro, história contada no livro [Leviatã Eletrônico](http://www.scielo.br/scielo.php?script=sci_arttext&pid=S1517-45222010000300013).
+para o certificado raíz brasileiro, história contada no livro
+[Leviatã Eletrônico](http://www.scielo.br/scielo.php?script=sci_arttext&pid=S1517-45222010000300013).
Enfim, pra usar o eToken E5110 pra assinar documentos no navegador você
precisará de drivers específicos e proprietários.
-Aparentemente a [Gemalto comprou a SafeNet](http://www.gemalto.com/press/Pages/Gemalto-to-acquire-SafeNet,the-worldwide-leader-in-data-and-software-protection.aspx) e depois ficou muito mais difícil para baixar o driver do eToken E5110, que além de ser proprietário ainda ficou privativo! Maluco fez [até script](https://gist.github.com/dex4er/1354710) pra automatizar essa zica. [Aqui](https://site.solutinet.com.br/2015/manuais/instaladores/) há versões recentes das bibliotecas e do cliente de autenticação proprietário (dica [daqui](https://diadialinux.wordpress.com/2017/03/02/instalar-etoken-alladin-usar-sites-do-governo-com-certificado-digital-e-assinar-documentos-pdf/)).
+Aparentemente a [Gemalto comprou a SafeNet](http://www.gemalto.com/press/Pages/Gemalto-to-acquire-SafeNet,the-worldwide-leader-in-data-and-software-protection.aspx)
+e depois ficou muito mais difícil para baixar o driver do eToken E5110, que além de ser proprietário ainda ficou privativo!
+Maluco fez [até script](https://gist.github.com/dex4er/1354710) pra automatizar essa zica.
+[Aqui](https://site.solutinet.com.br/2015/manuais/instaladores/) há versões recentes das bibliotecas e do cliente de autenticação
+proprietário (dica [daqui](https://diadialinux.wordpress.com/2017/03/02/instalar-etoken-alladin-usar-sites-do-governo-com-certificado-digital-e-assinar-documentos-pdf/)).
Referêcias:
diff --git a/research/torrent.md b/research/torrent.md
deleted file mode 100644
index 501c351..0000000
--- a/research/torrent.md
+++ /dev/null
@@ -1,15 +0,0 @@
-[[!meta title="BitTorrent"]]
-
-Torrent workflow: torrent-maker, magnet2torrent and torrent-reseed plan:
-
-* http://wiki.rtorrent.org/MagnetUri
-* http://dan.folkes.me/2012/04/19/converting-a-magnet-link-into-a-torrent/
-* https://github.com/danfolkes/Magnet2Torrent
-* http://code.google.com/p/pyroscope/wiki/CommandLineTools
-* https://trac.transmissionbt.com/ticket/4176
-* http://wiki.rtorrent.org/MagnetUri
-* https://github.com/rakshasa/rtorrent/issues/212
-* saving/restoring `.meta` and `~/rtorrent/.session` files.
-* multiple instances: https://kernelwho.wordpress.com/2011/11/15/running-multiple-instances-of-rtorrent/
-
- rtorrent -n -o import=/home/user/.rtorrent1.rc