martes, 17 de agosto de 2021

Busquedas en Google

 Buscar entre comilllas:  "palabras exactas"
>Para buscar exatitid palabras, frases, otros. 

Buscar palabras conjuntas: "palabras 1" + "palabras 2" + "palabras 3"
>Operacion de conjucion que cumplean ambos argumentos.

Buscar palabras conjuntas: "palabras 1" + "palabras 2" + "palabras 3" - "palabra a quitar"
>Quitar un termino de busqueda.

Buscar palabras disyuncion: "palabras 1" | "palabras 2" | "palabras 3" OR "palabra 4"
>Buscar para cualquiera de esas palabras.

Formular preguntas : Cualitativo y cuantitativo.
> Agregar cualidades y contexto a las variables
> preguntas de conocimieto: cuantos juegan en una cancha?...

--------

Buscar por sinonimos:  comida ~ sana

Busqueda por sitios web: nombresitio.com algo lo que tengamos que buscar

Busqueda por tiene cualquier cosa con *:  pelicula de *

>Buscar por palabras faltantes: escribe la primera palabra AROUND(3 ) escribe la ultima palabra 
AROUND(N de palabras faltantes aproximado)

>Buscar con rango de fecha: descubrimiento cientifico 1900...2000
busqueda de rando N...N

> Busqueda por titulo o url:  Intitle:ganó el campeonato --- Inurl:deporte

> Buscar por sitios similares: related:https://stackoverflow.com/ 

> Saber definicones: definir:"hipoteca"

> Buscar por tipo archivo:  clean code filetype:pdf








viernes, 13 de agosto de 2021

Submódulos de Git

 

Submódulos de Git

VOLVER A LA LISTA

Los submódulos de Git te permiten mantener un repositorio de git como subdirectorio de otro repositorio de git. Los submódulos de Git son simplemente una referencia a otro repositorio en una instantánea particular en el tiempo. Los submódulos de Git permiten que un repositorio de Git incorpore y realice un seguimiento del historial de versiones de código externo.

¿Qué es un submódulo de git?

 A menudo, un repositorio de código dependerá de un código externo. Este código externo se puede incorporar de diferentes formas. El código externo se puede copiar y pegar directamente en el repositorio principal. Este método tiene la desventaja de perder cualquier cambio anterior al repositorio externo. Otro método para incorporar código externo es mediante el uso de un sistema de gestión de paquetes de un lenguaje como Ruby Gems o NPM. Este método tiene la desventaja de requerir instalación y administración de versiones en todos los lugares donde se implementa el código de origen. Ambos métodos de incorporación sugeridos no permiten realizar un seguimiento de las ediciones y los cambios en el repositorio externo.

Un submódulo de git es un registro dentro de un repositorio de git del host que apunta a una confirmación específica en otro repositorio externo. Los submódulos son muy estáticos y solo rastrean confirmaciones específicas. Los submódulos no rastrean las referencias o ramas de git y no se actualizan automáticamente cuando se actualiza el repositorio del host. Al agregar un submódulo a un repositorio, se creará un nuevo archivo .gitmodules. El archivo .gitmodules contiene metadatos sobre la asignación entre la URL del proyecto del submódulo y el directorio local. Si el repositorio del host tiene varios submódulos, el archivo .gitmodules tendrá una entrada para cada submódulo.

¿Cuándo debería usar un submódulo de git?

Si necesita mantener una administración de versiones estricta sobre sus dependencias externas, puede tener sentido usar submódulos git. Los siguientes son algunos de los mejores casos de uso para los submódulos de git.

  •  Cuando un componente externo o subproyecto cambia demasiado rápido o los próximos cambios romperán la API, puede bloquear el código en una confirmación específica por su propia seguridad.
  •  Cuando tiene un componente que no se actualiza con mucha frecuencia y desea rastrearlo como una dependencia del proveedor.
  •  Cuando delega una parte del proyecto a un tercero y desea integrar su trabajo en un momento o lanzamiento específico. Nuevamente, esto funciona cuando las actualizaciones no son demasiado frecuentes.

Comandos comunes para submódulos de git

Agregar submódulo de git

Se git submodule addutiliza para agregar un nuevo submódulo a un repositorio existente. El siguiente es un ejemplo que crea un repositorio vacío y explora los submódulos de git.

mkdir git-submodule-demo
$ cd git-submodule-demo/
$ git init
Initialized empty Git repository in /Users/atlassian/git-submodule-demo/.git/

Esta secuencia de comandos creará un nuevo directorio git-submodule-demo, ingresará a ese directorio y lo inicializará como un nuevo repositorio. A continuación, agregaremos un submódulo a este nuevo repositorio.

$ git submodule add https://bitbucket.org/jaredw/awesomelibrary
Cloning into '/Users/atlassian/git-submodule-demo/awesomelibrary'...
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 8 (delta 1), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.

El git submodule addcomando toma un parámetro de URL que apunta a un repositorio de git. Aquí hemos agregado el awesomelibrarycomo submódulo. Git clonará inmediatamente el submódulo. Ahora podemos revisar el estado actual del repositorio usando git status...

$ git status
On branch main

No commits yet

Changes to be committed:
  (use "git rm --cached <file>..." to unstage)

new file:   .gitmodules
new file:   awesomelibrary

Ahora hay dos archivos nuevos en el repositorio .gitmodulesy el awesomelibrarydirectorio. Mirando el contenido de .gitmodulesmuestra el nuevo mapeo de submódulos

[submodule "awesomelibrary"]
path = awesomelibrary
url = https://bitbucket.org/jaredw/awesomelibrary
$ git add .gitmodules awesomelibrary/
$ git commit -m "added submodule"
[main (root-commit) d5002d0] added submodule
 2 files changed4 insertions(+)
 create mode 100644 .gitmodules
 create mode 160000 awesomelibrary

Clonación de submódulos de git

git clone /url/to/repo/with/submodules
git submodule init
git submodule update

Inicialización del submódulo de Git

El comportamiento predeterminado de git submodule inites copiar la asignación del .gitmodulesarchivo al ./.git/configarchivo local Esto puede parecer redundante y llevar a cuestionar la git submodule initutilidad. git submodule inittiene un comportamiento extendido en el que acepta una lista de nombres de módulo explícitos. Esto permite un flujo de trabajo para activar solo submódulos específicos que se necesitan para trabajar en el repositorio. Esto puede ser útil si hay muchos submódulos en un repositorio, pero no es necesario buscarlos todos para el trabajo que está realizando.

Flujos de trabajo de submódulos

Una vez que los submódulos se inicializan y actualizan correctamente dentro de un repositorio principal, se pueden utilizar exactamente como repositorios independientes. Esto significa que los submódulos tienen sus propias ramas e historial. Al realizar cambios en un submódulo, es importante publicar los cambios del submódulo y luego actualizar la referencia de los repositorios principales al submódulo. Continuemos con el awesomelibraryejemplo y hagamos algunos cambios:

$ cd awesomelibrary/
$ git checkout -b new_awesome
Switched to a new branch 'new_awesome'
$ echo "new awesome file" > new_awesome.txt
$ git status
On branch new_awesome
Untracked files:
  (use "git add <file>..." to include in what will be committed)

new_awesome.txt

nothing added to commit but untracked files present (use "git add" to track)
$ git add new_awesome.txt
$ git commit -m "added new awesome textfile"
[new_awesome 0567ce8] added new awesome textfile
 1 file changed, 1 insertion(+)
 create mode 100644 new_awesome.txt
$ git branch
  main
new_awesome

Aquí hemos cambiado de directorio al submódulo awesomelibrary. Hemos creado un nuevo archivo de texto new_awesome.txtcon algo de contenido y hemos agregado y comprometido este nuevo archivo al submódulo. Ahora cambiemos de directorio al repositorio principal y revisemos el estado actual del repositorio principal.

$ cd ..
$ git status
On branch main
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

modified:   awesomelibrary (new commits)

no changes added to commit (use "git add" and/or "git commit -a")

La ejecución git statusnos muestra que el repositorio principal está al tanto de las nuevas confirmaciones del awesomelibrarysubmódulo. No entra en detalles sobre las actualizaciones específicas porque esa es la responsabilidad de los repositorios de submódulos. El repositorio principal solo se ocupa de anclar el submódulo a una confirmación. Ahora podemos actualizar el repositorio padre de nuevo haciendo una git addgit commiten el submódulo. Esto pondrá todo en buen estado con el contenido local. Si está trabajando en un entorno de equipo, es fundamental que se git pushactualice el submódulo y el repositorio principal.

Cuando se trabaja con submódulos, un patrón común de confusión y error es olvidar enviar actualizaciones para usuarios remotos. Si volvemos a visitar elawesomelibrarytrabajo que acabamos de hacer, enviamos solo las actualizaciones al repositorio principal. Otro desarrollador iría a extraer el último repositorio principal y señalaría una confirmación awesomelibraryque no pudieron extraer porque nos habíamos olvidado de enviar el submódulo. Esto rompería el repositorio local de desarrolladores remotos. Para evitar este escenario de falla, asegúrese de confirmar y enviar siempre el submódulo y el repositorio principal.

Conclusión

Los submódulos de Git son una forma poderosa de aprovechar git como una herramienta de gestión de dependencias externas. Sopese los pros y los contras de los submódulos de git antes de usarlos, ya que son una característica avanzada y pueden requerir una curva de aprendizaje para que los miembros del equipo los adopten.

miércoles, 4 de agosto de 2021

Neovim - Linux


Podemos instalar este editor de muchas maneras. La más sencilla es realizar la instalación desde la opción de software de Ubuntu. Para tener la última versión hay que agregar el PPA de Neovim. Ejecuta el siguiente comando en la terminal (Ctrl+Alt+T):

1
sudo apt-add-repository ppa:neovim-ppa/stable

Después hay que actualizar los paquetes e instalar Neovim escribiendo en la misma terminal:

1
2
3
sudo apt-get update
 
sudo apt-get install neovim