imagen

Buscar de forma rápida las palabras que quieras dentro de tus documentos

21.May.2023 — Julio

Tengo unos cuantos miles de ficheros de texto del tipo .txt .adoc .md .sh

Muchas veces me surge la duda de cómo resolví tal problema o dónde anoté aquella incidencia.

He pasado ya por muchas formas de tener almacenada la información, muchos tipos de wikis. Obsidian es ahora la que está de moda y parece la más avanzada hoy.

Pero sin duda para mi la mejor sigue siendo https://tiddlywiki.com/. Tener todo en un fichero local html sin necesidad de servidor es una ventaja. Y su búsqueda es muy buena.

Pero tiene otros inconvenientes. Total que decidí volver a tener toda la documentación en ficheros de texto, sean en formato markdown o asciidoc. Los ficheros de texto son atemporales "informáticamente" hablando, ligeros, cómodos de editar, reutilizables.

¿y cómo buscar dentro de todos esos ficheros?

Con bash y herramientas gnu. Este script lo podemos lanzar de forma

busca <palabra1> <palabra2> ... <palabra.n>

El motor es grep

```

grep --include=\*.{md,adoc,txt,sh} --exclude="encontrado.md" --exclude-dir={"DOIT","blog"} -Ril $1 ~/Documentos/ > zbusca

```

para luego hay que hacer búsquedas recursivas de cada palabra.

```

  for i in $palabras
  do
    cat $ant | xargs grep -li $i 2>/dev/null > zbusca$i
    ant=zbusca$i
  done

```

y nos devolverá un fichero html con todos los ficheros que contienen todas las palabras buscadas (AND no OR), y los registros son linkables de forma que al pinchar sobre ellos nos mostrará el contenido. Ese fichero de resultados lo genero en markdown y luego convierto con pandoc a html.

web

termina

En el script se define y ofrece:

  • qué tipo de extensiones tienen los ficheros a rebuscar
  • desde qué carpeta empezamos a buscar
  • se pueden excluir carpetas o ficheros para que no mire dentro de ellos
  • devuelve fichero con los resultados en markdown y html
  • contabiliza el total de ficheros que contienen las palabras buscadas.

Este script funciona en local en el equipo y con el navegador o sin él se pueden ver los resultados.

Pero también necesito hacer esta búsqueda desde fuera de casa, desde el móvil o cualquier ordenador, sin necesidad de VPN pero de forma privada.

Eso me costó más, porque hay muchas soluciones todas ellas con sus ventajas y grandes inconvenientes. Ya veremos si lo cuento.

```

  #!/usr/bin/env bash
  # Función: busca en todos mis documentos de tipo texto, .md .adoc .txt .sh los argumentos que se le pasen
  # Fecha creación: 13.05.2023
  # Autor: Julio Briso-Montiano
  # Versión: 1.0
  # Detalle:
  #  - meter en .bash_aliases la ruta de este script
  #  - crea encontrado.md y html en la carpeta de este script con los resultados linkables
  #  - se ve mejor en chrome que en kate para poder hacer click en los md
  #
  #set -euo pipefail

  filout="/home/julio/Documentos/06-Zaprogramas/bash/buscabash/encontrado.md"
  filhtml="/home/julio/Documentos/06-Zaprogramas/bash/buscabash/encontrado.html"
  if [ $# -lt 1 ]
  then
    echo "Formato:   ./busca.sh <algo1> <algo2> ...>"
  fi

  palabras="$@"

  #find ~/Documentos -type f \( -name "*.txt" -o -name "*.sh" -o -name "*.md" -o -name "*.adoc" \) -exec grep -l ${1} {} + > zenficheros
  # mejor
  grep --include=\*.{md,adoc,txt,sh} --exclude="encontrado.md" --exclude-dir={"DOIT","blog"} -Ril $1 ~/Documentos/ > zbusca
  ant=zbusca
  for i in $palabras
  do
    cat $ant | xargs grep -li $i 2>/dev/null > zbusca$i
    ant=zbusca$i
  done

  echo -e "Búsqueda de \"""$@""\" encontrados en estos ficheros:\n---\n---\n" > $filout

  while IFS= read -r line
  do
    echo -e "[""$line""](""$line"")" >> $filout
    echo -e "\n" >> $filout
  done < $ant
  echo -e "\n---\n" >> $filout
  numero=$(cat $ant | wc -l)
  echo -e $numero" encontrados\n" >> $filout
  echo $(date) >> $filout
  rm zbusca*

  pandoc -f markdown -t html5 -o $filhtml $filout
  more $filout

```

Tags: bash, setup

Comments? Tweet  

Teclado Logitech MX Keys Mini

03.Feb.2022 — Julio

Siempre me han gustado los teclados de los ordenadores. Yo creo que con el Commodore64 fue cuando me empezaron a llamarme la atención.

Desde el C64, he tecleado en muchos de ellos, desde los que se utilizaban en mainframes como el VAX, HP9000, IBM R/ , los pcs "clónicos" (esto ya es viejuno y algunos no sabrán a qué me refiero), los modelos tipo IBM con ps2, etc ...

Si lees por internet todo el mundo habla de lo maravilloso que son los teclados mecánicos. En tiempos que he comentado casi todos eran así, y es cierto que algunos eran casi indestructibles y además que quien se habituaba a ellos ya no podía cambiarlos. He conocido gente que aunque ya fallaba algún "intro" lo preferían antes de cambiar a uno de "los modernos".

Yo volví a buscar sobre los mecánicos. Probé varios pero al final, no. El último lo devolví al día siguiente, y eso que era con switch brown, que se supone que es de los más silenciosos. No puedo con ellos. Se me hacen muy altos, y el ruido, y la fiabilidad al escribir no es tal. Me equivoco igual o más que con otros.

Seguí buscando, pero además con un condicionante añadido. Como me habitué a gestores de ventana tipo i3, tiling manager, que significa que se hace todo lo que se pueda con el teclado en lugar de utilizar el ratón, cada vez me daba más rabía separar los dedos del teclado para coger el ratón. Salvo para navegar por internet, claro está (pero aun así siempre tengo el plugin de vimium para moverme por las páginas).

Total que mejor buscar un teclado sin pad numérico para que la distancia a coger el ratón desde el teclado sea menor. Sí, mi familia se reía de mi. Que cómo puedo notar eso. Pues se nota y mucho y se agradece bastante el no tener que salvar la distancia de parte del teclado que habitualmente no se utiliza. Y eso que en mi trabajo estoy mucho tiempo metiendo códigos numéricos, pero para eso está el copiar y pegar.

Lo prefería con cable, para evitar el rollo de quedarte sin pilas justo en el momento menos apropiado. El resultado de la búsqueda era:

  • tenkeyless
  • sin altura
  • con cable
  • en español
  • barato
  • con distribución de las teclas aceptable, (Inicio, Fin, pgup, pgdown, cursores)
  • no mecánico

Con cable olvídate. No hay o son malos. Marca Perixx, ya probé, teclas muy duras y no me hago a escribir.

Encontré el teclado: https://www.logitech.com/es-es/products/keyboards/mx-keys-mini.html

  • se escribe bastante bien (ya veréis alguna errata aquí mismo, pero es que casi nunca reviso lo que escribo en el blog, pereza).
  • es plano. Las muñecas te lo agradecerán.
  • es retroiluminado y me gusta la forma en que se activa el solo al detectar las manos.
  • no es con cable pero se carga con usb y dura bastante.
  • las teclas de función (que yo necesito más que las dedicadas a brillo, volumen y demás) están bien accesibles.
  • se puede configurar para varios ordenadores y con un par de teclas cambias para usar el teclado de un ordenador al otro; esto está fenomenal ahora con el teletrabajo pues tengo en la mesa 1 único teclado y 2 ordenadores.

En fin, que estoy encantado con él. De los ratones verticales ya hablaremos otro día.

Una cutre foto para alegrar un poco este post

teclado

Tags: setup

Comments? Tweet  

Cómo genero documentación y busco sobre ella; Excel, web, ficheros texto, Mediawiki, TiddlyWiki

19.Dec.2021 — Julio

Simpre me ha gustado registrar los nuevos conocimientos que voy adquiriendo en el trabajo y cómo he resuelto las incidencias que me han ido surgiendo.

Aparte de al escribirlas se afianzan más en mi memoria, me sirve para encontrar de forma rápida como resolver las mismas cuando al cabo de meses me vuelve a surgir y la memoria no me ayuda.

Insisto que lo más importante es poder buscar la información de forma rápida, pues no sirve de nada escribir la resolución de problemas si luego no puede localizar la solución. Por ello descarto escribir diarios o en agendas en papel.

Escribir en papel está muuy bien y mucho mejor para afianzar en memoria pero digamos que la "batería" de la memoria dura más que escribir en un documento electrónico, pero solo dura más; no es eterna. Y además ¿cómo buscas cómo se resolvió tal incidencias en una Moleskine? ¿te vuelves a releer todas las agendas de todos los años hasta encontrar el día que ocurrió?

Tengo lagunas varias de cómo registraba hace muchos años pero conservo todos los datos, otra cosa es que se puedan ejecutar los programas que hice en su dia en los ordenadores de hoy.

-- 199x

Supongo que lo primero fue el papel. Esas agendas que o bien comprabas o nos daban en los trabajos de los bancos, compañías de seguro etc.. Todo el mundo llevaba una agenda/diario encima.

1994 -

Como comentario tengo registrados todos mis entrenamientos deportivos desde 1994. Los empecé a registrar en un programa que mi hice en C. Es por eso que ...

1998 - 2000

Hice un programa en TurboC. Como en el trabajo me encargaron de toda la gestión de nóminas y seguridad social de la empresa en C, pues en aquel entonces estaba algo puesto. Ni que decir tiene que toda la gestión de ficheros era un poco .. peligrosa.

Aquí unas capturas de pantalla del programa y los datos que guardaba.

diario en C

diario2 en C

2000 - 2002

Creo que la misma filosofía del programa en C pero lo pasé a Delphi, por el sufrimiento que era el trabajar en C y encontrar que con Pascal / Delphi era la maravilla de aquellos tiempos.

2002 - 2012

Del 2002 al 2012 utilizaba un excel con unas cuantas macros. Era rápido, no muy bonito pero efectivo.

No voy a contar todo lo que se podía hacer porque me da pereza, pero se añadían registros de forma rápida y con opciones, se lanzaban otros programas, se enviaban emails desde el propio excel, se podían añadir adjuntos a las incidencias, 10 año estuve con este método y me fue muy bien.

diario en excel

2012 - 2019

Luego en 2012, cambié de idea. Quería algo que fuera más ubicuo y poder buscar información desde cualquier sitio con una conexión en internet. Página web.

https://www.julb.es/mi-todo-list-y-sobre-todo-mi-done-list..tml

diario en web

Primero montado en un equipo en casa "guruplug" en Debian, cuando no existían las raspberrys. Con Flask, python, nginx Dyndns, Go y scripts en bash para las copias de seguridad.

Podía dar de alta incidencias, poniendo el texto que quisiera, tema, marcar fecha inicio y resolución, .... y luego se podía buscar por varias palabras y sólo mostraba aquellos registros que las contuvieran pero mostrando todo el registro, no solo la línea en la que estuviera cierta palabra.

En fín. Todo basado en ficheros de texto sin bases de datos que se pudieran corromper y permitiendo así que con cualquier otro programa se pueda abrir la información al cabo de los años, sin obsolescencia técnica.

  • Los ficheros de texto, mi base de datos..:

diario en web

  • contenido de los registros:

diario en web

Estuve con guruplug varios meses, llegaron las rapberrys, lo pasé a estas y por último a un VPS con FreeBSD en DigitalOcean. Todo para evitar problemas de disponibilidad de la web o fallos en las tarjetas SD ....

Alguna vez escribiré que incluso puedo buscar MI información con Telegram.

Pero llega un momento es que te cansas de todo .. y no quieres ya tener que mantener un VPS ...

2020 unos pocos meses

Todo lo que tenía montado estaba muy bien para recoger incidencias, anotar cambios en programas y procesos..

Aparte de esto, yo me hacía mi documentación en ficheros de texto, primero en markdown y luego en asciidoctor que prefiero.

Cambié de trabajo en este año y de funciones. Tenía que aprender muchas cosas. Anotaba mucha información en ficheros de texto como siempre pero ahora necesitaba encontrar datos en ella de forma rápida.

Estuve una temporada con un script que me buscaba palabras en la documentación, osea en todos los ficheros que me iba creando. Era del tipo:

bash b () { if [[ $# -gt 0 ]]; then grep --color=auto -i "$1" /mnt/c/mydocs/documentacion/SAP/*.txt; else history; fi }

Sí, sabía de la existencia de Evernote, OneNote y demás (de hecho los utilicé para otro tipo de información) pero tengo la manía de utilizar mis herramientas y sobre todo en ficheros de texto fácilmente portables a cualquier aplicación de moda.

Esto para el tema de documentación. Seguía con la página web para el tema de incicencias.

2020 - 2021

Una de mis funciones en el trabajo era crear documentación en la Mediawiki de la empresa. Así que para aprender me monté mi propia mediawiki en mi servidor VPS.

Aproveché para pasarme toda la documentación previa al nuevo sistema. Me gustaba menos pues se requería Php, Mysql y demás, pero lo hicé y estuve utilizándola varios meses. Tengo que reconocer que la búsqueda de resultados y su muestra era mucho mejor.

Me monté una para documentación del trabajo y otra para mí personal.

documentación laboral

documentación personal

¡importante todo el tema de backup de datos en el servidor VPS y fuera de él!

2021

Pero ¿qué pasaba si el VPS se iba al carajo, me cansaba de pagarlo, de mantenerlo, o quisiera portarlo a otro sitio?

Montar otra mediawiki en FreeBSD o Ubuntu o local en casa en un rollo.

Descubrí TiddlWiki

documentación personal

Reconozco que lo descubrí gracias a Joe Armstrong

Cosas buenas:

  • se utiliza un navegador, cualquiera
  • no hace falta tener un servidor
  • se puede utilizar en un único fichero .html que te puedes llevar cuando quieras al sitio que quieras
  • la búsqueda es muy rápida
  • el sistema de meter notas es mejor utilizando sistema https://es.wikipedia.org/wiki/Zettelkasten que se basa en todo notas breves pero relacionadas.
  • fácil de montar un To_Do list
  • configurable aunque no de forma tan fácil.
  • fácil exportar a texto o csv o json
  • permite encriptación del html entero o solo de las notas que se considere.
  • te puedes crear tantas wikis como quieras, cada uno un fichero ..

Cosas malas:

  • las imágenes es mejor "enlazarlas" que embeberlas pues se puede convertir en un html gigante.
  • la configuración de personalizaciones es algo compleja.
  • la información está todo dentro de un html que no es tan visual si se abre con otra aplicación que no sea un navegador.
  • si quieres disponer de tu información de la wiki por internet no es tan fácil. Se necesitan complementos pero lo más sencillo es ponerla en Google Drive o Dropbox. (se puede encriptar de forma que esté más segura tu información privada)

documentación personal

2022 - ...

Ahora tengo una wiki local en el portátil del trabajo y otra personal accesible con seguridad por internet.

documentación personal

documentación personal

¡quién sabe lo que decideré utilizar en el futuro?

Tags: setup, todo, wiki, telegram

Comments? Tweet  

Asciidoc lo descubro ahora

29.Mar.2019 — Julio

Siendo más viejo que markdown, voy ahora y lo encuentro más lógico, flexible, más potente y encima se escribe menos.

Ale. A pasar toda la documentación que tenía hecha en markdown a asciidoc. Ya tengo tarea para el fin de semana.

Tags: setup

Comments? Tweet  

Trying Debian and finally Ubuntu for desktop

09.Dec.2016 — Julio

After trying these OS's for desktop trying BSD in 2015

I work with a Intel NUC D54250WYK in my job. It had Linux Mint 17, and I was tired of having to update applications I need like Libreoffice, mutt, thunderbird, and so on. Also I prefer now a distribution more update not LTS.

I dismissed the Linux Mint 18 option because I want a main distribution. I have servers working with Debian and Ubuntu so I tried these two.

My premises are:

  • I have to get all configured in less than 3 hours. It's the work desktop !!
  • I have to get all applications that I need to work.
  • my /home is on a separate partition, so no extra work for restoring backups.
  • beautiful fonts please.
  • I work with i3wm. Yes, I'm used to work with keyboard more than mouse.

Ver más ...

Comments? Tweet  

Trying OpenBSD, FreeBSD and TrueOS for desktop

24.Nov.2016 — Julio

This is my third try and failure
trying BSD in 2012
trying BSD in 2013

I have an old laptop Thinkpad SL400 for testing

LENOVO THINKPAD SL400 core 2 duo T5670 1,8mhz 2 GB 160 GB

I must get a desktop to work with i3wm and with Xfce (only for the software it contains).

Ver más ...

Comments? Tweet  

Utilización RaspBerryPi en puestos de trabajo simples

23.Aug.2015 — Julio

Actualización septiembre 2017:

¡ NO UTILIZAR RASPBERRYS !

Si no quieres estar cada pocos meses con sustos porque dejan de funcionar debido a que se corrompen muy asiduamente el sistema de ficheros.

Con solo uso de telnet hacia el ERP, he tenido que reinstalar RASPBIAN en las microSD en muchas pi's.

Con tarjetas microSD casi todas de 16GB y de buena calidad, de varias marcas, Samsung, TDK, y otras.

Los modelos de raspberry da también lo mismo. Model B, 1 ,2 o 3.

En cambio en puestos con pcs antiguos con Linux Mint, o Ubuntu, sin problemas.

Mejor invertir en algo que no utilice microSD.

Ver más ...

Comments? Tweet  

My Setup

15.Jul.2016 — Julio

2016 2017 2018

In short

laptop

laptop

home server1

server1

home firewall

firewall

blah, blah, blah

foto

J.B-M
IT manager

This is an act of vanity taken from The Setup Interviews.

update 27.03.2018: plenty of changes

Ver más ...

Comments? Tweet  

Thanks to whatsapp I don't have to check my email on holydays

13.Jul.2014 — Julio

Before whatsapp I used to check my email to fix some important events in my business.

Of course before and now, any outage in the system needs a telephone call, but for some problems that not require quickly resolution, whatsapp is a good way.

Check all my email every day on holidays, seems to me is not resting time.

I hope people respect the rule along time: whatsapp only for medium level urgency and easy to resolve with some indications

Tags: setup

Comments? Tweet  

Mi todo list y sobre todo mi done list

17.Dec.2012 — Julio

Como todos los que trabajamos con poco tiempo y en la informática, mundo en que tienes que arreglar multitud de cosas sin tener que ser experto en ninguna de ellas, el disponer de un historial de lo que has hecho o cómo arreglaste aquello es casi fundamental.

https://vimeo.com/106271615[video resumen]

  1. que sea ubicuo, no me vale app de móvil o aplicación para el ordenador. Mejor página web.
  2. lista de cosas que hacer, con fecha de inicio y finalizado me vale.
  3. repositorio de incidencias resueltas , cómo lo hice y demás.
  4. poder buscar entre todo lo anterior de forma rápida.

Update: con Telegram tengo servicios para añadir tareas a realizar y también para buscar lo que sea en las resueltas.

Ver más ...

Comments? Tweet  

Essentials applications to work

29.Nov.2012 — Julio
  • vpnc
  • chrome
  • putty
  • rdp + vnc + teamviewer
  • libreoffice but i much prefer Msoffice2010
  • thunderbird
  • Pyscripter
  • caché client (intersystems) to use Studio

but with chrome i get ssh extension (by putty), gmail (bye thunderbird), drive ....(bye libreoffice? not entirely)

Tags: setup

Comments? Tweet