productividad
- DOCX → PDF: Simple, fast, perfect formatting
- DOCX → PDF/A-1b: Same fidelity, plus archival compliance
- Un proyecto con revisión semanal.
- Lo reviso un martes.
- OmniFocus lo vuelve a programar para el martes siguiente.
- ▶️ En ejecución → revisión diaria
- ⏩️ En cola → revisión semanal
- ⏸️ En espera → revisión cada dos semanas
- ⏹️ Archivo → revisión cada dos meses
- semanal → próximo domingo
- quincenal → segundo domingo
- bimestral → octavo domingo
- Marca el proyecto como revisado.
- Calcula manualmente la próxima fecha de revisión.
- La fija siempre en domingo, según el tag de estado del proyecto.
- Si un proyecto no tiene tag de estado, el plugin se detiene y avisa (prefiero errores explícitos a comportamientos silenciosos).
- asignar el atajo de teclado exacto que quiero,
- mantener todos mis atajos centralizados,
- y convertir la revisión en un flujo completamente de teclado.
-
Análisis y Síntesis mediante IA: No siempre es eficiente leer un hilo interminable de correos para entender qué hay que hacer. El script utiliza la API de OpenAI (GPT-4o) para analizar el contenido y generar, de forma automática, un resumen ejecutivo y un título de tarea claro. Esto me permite, de un solo vistazo en OmniFocus, comprender la naturaleza del encargo.
-
Acuse de Recibo y Atención al Cliente: La inmediatez es un valor al alza. He configurado el script para que, al detectar un mensaje marcado con un flag, envíe automáticamente un acuse de recibo profesional vía SMTP. Esto asegura al remitente que su mensaje ha sido recibido y que ya está integrado en mi sistema de seguimiento, sin que yo tenga que interrumpir mi estudio para redactar una respuesta de cortesía.
-
Gestión Inteligente de Expedientes: Los archivos adjuntos son la columna vertebral de nuestro trabajo. El script identifica los documentos relevantes, descartando elementos superfluos como logos o firmas, y los organiza en carpetas específicas dentro de mi estructura de iCloud Drive.
-
Conectividad Total con Hookmark: El mayor avance en mi flujo de trabajo es la vinculación bidireccional. Mediante AppleScript, el sistema conecta la tarea de OmniFocus con el archivo físico en el Finder. Esto me permite saltar de la tarea al documento, o del documento al correo original, eliminando el tiempo perdido en búsquedas manuales.
- Columna A:
tt@tags(. Motivos: si empiezo la celda con@Excel cree que es una fórmula errónea. Si añadottlo admite, y lo sustituiré en los pasos siguientes - Columna B:
BUJOcategoría superior en mi árbol de etiquetas. - Columna C:
DayTagssubcategoría dentro deBUJO, junto con las etiquetas de mes y semana. - Columna D: Finalmente, la secuencia de fechas.
- Columna E: Signo
)de cierre de paréntesis, para la convención TaskPaper. - Sustituir
tt@por1 @ - Sustituir
(tabuladorpor el signo de apertura de paréntesis( - Sustituir
tabulador)por el signo de cierre de paréntesis) - Y sustituir los tabuladores centrales por la convención de OmniFocus de
espacio dos puntos espacio - El token de Github tiene un plazo de expiración de 90 días, así que supongo que tendré que volver a generar un token dentro de tres meses.
- Upgit no tiene actualizador automático, así que tendré que estar al tanto en Github para actualizarlo manualmente.
- Dejar el editor de texto y abrir el navegador.
- Buscar
Brett Terpstraen Google. - Pinchar en el resultado correspondiente para ir a la página.
- Copiar la URL en la barra de navegación.
- Volver al editor y escribir el texto en Markdown, es decir, usando corchetes y paréntesis, así:
[Brett Terpstra](https://brettterpstra.com/), lo que da como resultado Brett Terpstra. - Tocar con la punta del dedo (tap) para hacer clic, en lugar de tener que pulsar.
- Tocar con dos dedos para hacer el clic secundario.
- Posar y arrastrar con tres dedos para mover los objetos de un lado para el otro.
- Claridad.
- Atención.
- No hay una tercera cosa.
- Escribe un guión. Si crees que puedes evitar este paso, no estás pensando con claridad.
- Evita el barroquismo.
- Haz todo lo posible por evitar palabras innecesarias.
- Corta, quema, repite. El primer borrador siempre es dos veces más largo de lo que debería.
- Di una cosa importante. Si tienes dos cosas importantes que decir, contrólate.
- Usa metáforas y ejemplos.
- Facilita un mapa y señales que guíen el relato (avances, guiones, resúmenes o repeticiones).
- Acepta críticas. Si los lectores te dicen que tu escritura no es clara o interesante, están en lo cierto por definición.
- No intentes escribir con estilo. El único estilo que merece la pena es tu voz natural.
- [Añado, porque no todo va a ser Daniel Gilbert: Salvo que tu voz natural sea un graznido. En tal caso, afina un poco, que la elegancia también ayuda a la claridad].
Perfect DOCX-to-PDF/A on macOS
So there I was, automating my life like a proper nerd, when I hit a wall that made me want to throw my MacBook into the sea.
The setup: I’m a lawyer (yes, we can be geeks too), and I deal with a lot of legal documents. Spanish court filings, specifically. My documents have very particular formatting—numbered paragraphs with hanging indents, nested lists, the whole bureaucratic aesthetic. I built a beautiful Keyboard Maestro macro that converted my Word docs to PDF/A-1b using LibreOffice headless mode. One hotkey, boom, done.
Except… it wasn’t done. It was broken.
The Problem
I noticed the PDFs looked off. The hanging indents—those lovely paragraph numbers sitting in the margin with text neatly aligned beside them—were completely mangled. LibreOffice was adding extra indentation to continuation lines, making my professional legal documents look like amateurish.
I compared the LibreOffice output with a “proper” PDF (exported directly from Word) and there it was: LibreOffice simply doesn’t interpret Word’s hanging indent styles correctly. It reads the left indent but loses the negative first-line indent that creates the hanging effect.
This is a known issue, by the way. The internet is full of sad developers asking why their DOCX-to-PDF conversions look wrong. Welcome to the club, friends.
The Solution
Plot twist: use Microsoft Word itself.
Enter docx2pdf, a delightful Python package that uses Word’s actual API (via AppleScript/JXA on macOS) to do the conversion. No interpretation, no guessing—just Word doing what Word does best.
pip3 install docx2pdf
For PDF/A-1b compliance (required for legal archiving), I added a second step: Ghostscript converts the pristine Word-generated PDF into the archival format.
brew install ghostscript
Two-step process, perfect output, sanity preserved.
The Scripts
I ended up with two Keyboard Maestro macros:
FILE_PATH="$KMVAR_CurrentFile"
DIR_PATH=$(dirname "$FILE_PATH")
FILE_NAME_EXT=$(basename "$FILE_PATH")
FILE_NAME_BASE="${FILE_NAME_EXT%.*}"
RESULT_PATH="${DIR_PATH}/${FILE_NAME_BASE}.pdf"
/Library/Frameworks/Python.framework/Versions/3.9/bin/docx2pdf "$FILE_PATH" "$RESULT_PATH"
osascript -e "tell application \"Finder\" to reveal POSIX file \"$RESULT_PATH\""
osascript -e "tell application \"Finder\" to activate"
open -b com.adobe.Acrobat.Pro "$RESULT_PATH"
FILE_PATH="$KMVAR_CurrentFile"
DIR_PATH=$(dirname "$FILE_PATH")
FILE_NAME_EXT=$(basename "$FILE_PATH")
FILE_NAME_BASE="${FILE_NAME_EXT%.*}"
TEMP_PDF="${DIR_PATH}/${FILE_NAME_BASE}_temp.pdf"
RESULT_PATH="${DIR_PATH}/${FILE_NAME_BASE}.pdf"
/Library/Frameworks/Python.framework/Versions/3.9/bin/docx2pdf "$FILE_PATH" "$TEMP_PDF"
/opt/homebrew/bin/gs \
-dPDFA=1 \
-dBATCH \
-dNOPAUSE \
-dNOOUTERSAVE \
-sColorConversionStrategy=UseDeviceIndependentColor \
-sDEVICE=pdfwrite \
-dPDFACompatibilityPolicy=1 \
-sOutputFile="$RESULT_PATH" \
"$TEMP_PDF"
rm "$TEMP_PDF"
osascript -e "tell application \"Finder\" to reveal POSIX file \"$RESULT_PATH\""
osascript -e "tell application \"Finder\" to activate"
open -b com.adobe.Acrobat.Pro "$RESULT_PATH"
Both use docx2pdf for the heavy lifting, ensuring my hanging indents hang exactly where they should.
The Moral
Sometimes the “lightweight” solution (LibreOffice headless) isn’t actually solving your problem. Sometimes you need the “heavy” tool (actual Microsoft Word) to get things right. And sometimes a two-hour debugging session with Claude saves you thousands of malformed legal documents.
Now if you’ll excuse me, I have court filings to convert. Correctly.
P.S.: Time to tell the truth. I started this project with Gemini 3.0. It hit the LibreOffice wall and suggested switching to AppleScript—no way, that never works reliably. So I turned to Claude (Opus 4.5), and there it was: the solution arrived quickly. Claude even installed docx2pdf and Ghostscript for me (with proper permission at every step, of course). So thanks, Claude.
IA, urgencia y el mismo cuello de botella de siempre
Llevo veinticinco años de ejercicio profesional (este 5 de febrero) dedicando tiempo, a diario, a mejorar mis herramientas de trabajo. Como siempre han sido herramientas digitales, eso ha implicado conocer bien el ordenador, el sistema operativo y las aplicaciones con las que trabajo todos los días.
Mi principal motivación ha sido siempre la misma: evitar repetir tareas farragosas, innecesariamente complejas o, sencillamente, desagradables. Por eso, durante estos veinticinco años he ido incorporando todo tipo de automatizaciones: atajos de teclado, lanzadores de aplicaciones, expansores de texto, plantillas documentales, scripts, pequeñas aplicaciones, programas de automatización de procesos, flujos de trabajo, herramientas de resumen y generación de documentación, OCR con resúmenes automáticos, aplicaciones de planificación y gestión de tareas, sistemas de programación de proyectos…
En definitiva, un ecosistema de herramientas que me ha permitido trabajar de forma ordenada, ágil y razonablemente eficiente.
Pero nada de eso ha cambiado de verdad la forma de trabajar ni la manera de responder a la avalancha constante de peticiones de servicios jurídicos. Hacer las cosas más rápido, manteniendo la calidad, siempre ha tenido el mismo efecto: poder asumir más trabajo. No disponer de más tiempo.
Con la llegada de las herramientas de inteligencia artificial, además, tengo la sensación de haber perdido incluso la ventaja competitiva que me podía dar haber cuidado tanto mis herramientas. Lo que cambia ahora, sobre todo, es la expectativa del cliente: da por hecho que el trabajo debe estar bien hecho y, además, entregado muy rápido. Al fin y al cabo, percibe que todo el esfuerzo previo de estudio, análisis, redacción de borradores y preparación de documentos “ya lo hace” una IA.
Y es cierto que, con estas herramientas, hacemos todo eso y más. En mi caso, incluso me permiten generar código útil para mi propio trabajo. Y haremos todavía más dentro de muy poco, porque el avance es rápido y las herramientas son cada vez más sofisticadas.
Como explicaba Enrique Dans con la metáfora del tobogán, todo esto está reduciendo el coste marginal de ese trabajo previo y, en consecuencia, está alterando el paradigma y los costes de los servicios jurídicos y de consultoría. Pero lo que más me inquieta no es eso, sino el cambio en las expectativas de los clientes: siempre han querido respuestas rápidas, pero ahora esa exigencia empieza a desbordarse.
Siguiendo la metáfora, tengo la sensación de que vamos cuesta abajo por un tobogán sin fin, en el que la aceleración no deja de aumentar. No recuerdo ya cómo se explicaba esto en física —¿había o no una aceleración máxima?, ¿también en un tobogán engrasado?, siempre fui de letras—, pero sí tengo claro que la tendencia, en general, no es buena.
Si ahora, pese a todas esas herramientas, ya tengo más de un cliente al que no puedo servir con la velocidad que me exige, lo razonable es pensar que esto irá a peor. No porque yo trabaje más despacio —más bien al contrario—, sino porque las expectativas de agilidad son cada vez mayores y el flujo de encargos urgentes se ha vuelto inabarcable.
Todo es para ayer, todo es prioritario y todo parece sencillo desde fuera. Se da por hecho que el resultado ha de ser inmediato y que el tiempo que se libera con herramientas como la IA no debe emplearse en pensar mejor, en profundizar en el problema o en contrastar alternativas. Al contrario: se asume que ese tiempo simplemente desaparece. Que no existe. Que el análisis previo, la reflexión jurídica o el matiz fino son un lujo prescindible cuando lo que se busca es una respuesta rápida que permita pasar a la siguiente decisión.
Y ahí es donde el asunto se vuelve más incómodo. Porque, en no pocos casos, lo que realmente se espera no es tanto un buen asesoramiento como un aval rápido. Una respuesta que permita decidir deprisa o, peor aún, descargar también deprisa la responsabilidad de esa decisión. Que el criterio sea sólido o discutible importa menos que el hecho de poder decir que “esto lo ha visto un abogado”. La certeza pasa a segundo plano frente a la velocidad, y la calidad del consejo se mide más por su inmediatez que por su rigor. Y eso, más que un avance tecnológico, es un cambio cultural que convendría tomarse muy en serio.
A partir de ahí, la urgencia deja de ser una circunstancia puntual y se convierte en un marco permanente. Cuando una parte del trabajo se acelera de forma artificial, el resto del proceso queda inevitablemente arrastrado por esa misma inercia, aunque no sea automatizable. El análisis jurídico, la ponderación de riesgos o, simplemente, el pensar con un mínimo de calma no admiten atajos sin coste. Pero ese coste ya no solo se asume: directamente se invisibiliza.
La fricción, entonces, es inevitable. Aumenta entre lo que el cliente espera y lo que razonablemente puede entregarse. Aumenta entre la calidad que uno quiere mantener y los plazos que se dan por supuestos. Y aumenta también la presión interna, porque resulta cada vez más difícil explicar que, precisamente cuando las herramientas son mejores que nunca, el cuello de botella sigue estando en el mismo sitio: en el tiempo, la atención y el juicio profesional disponibles.
En ese contexto, la tentación es dejarse llevar y seguir deslizándose por el tobogán, asumir que no hay alternativa y adaptarse como se pueda. Seguir persiguiendo la siguiente herramienta, la siguiente automatización, la siguiente promesa de eficiencia. Pero no tengo claro que esa huida hacia adelante sea sostenible. Ni profesionalmente, ni en términos de salud, criterio y sentido común. Porque la aceleración constante no es una estrategia: es, como mucho, una forma de aparentar movimiento antes de darse de bruces con el final.
Un plugin para revisar proyectos en OmniFocus… a mi manera
Una de las cosas que más me incomodan del sistema de revisiones de OmniFocus es que, aunque permite definir intervalos (diario, semanal, mensual…), la próxima fecha de revisión depende siempre del día exacto en que marcas un proyecto como revisado.
Esto es lógico desde el punto de vista del software, pero no encaja bien con cómo reviso yo mis proyectos:
las revisiones “de verdad” las hago los domingos, de forma concentrada y sistemática. El resto de la semana puedo revisar algo puntualmente, pero no quiero que eso desordene mi calendario de revisiones.
El problema
Ejemplo típico:
Resultado: el proyecto deja de aparecer en domingo y rompe el ritmo de la revisión semanal.
Mi modelo mental
Yo trabajo con proyectos etiquetados por estado, de forma excluyente:
La clave es que, independientemente del día en que revise un proyecto, la próxima revisión debe caer siempre en domingo:
La solución: un plugin personalizado
Con ayuda de ChatGPT he desarrollado un plugin de OmniFocus que sustituye el botón estándar Marcar como revisado por una acción propia:
El plugin no toca los intervalos de revisión (eso lo gestiona otro script), solo controla la fecha concreta de la próxima revisión.
Cómo lo uso
No ejecuto el plugin directamente desde OmniFocus, sino a través de Keyboard Maestro, que lanza la acción desde el menú de Automatización. Esto me permite:
Desde la perspectiva Revisión, reviso proyecto a proyecto y uso siempre este atajo, nunca el botón nativo.
Conclusión
OmniFocus es muy flexible, pero a veces hay que doblar ligeramente su comportamiento interno para que encaje con tu forma real de trabajar. En este caso, el plugin convierte la revisión en algo más parecido a un calendario editorial que a un sistema reactivo.
Y, como suele pasar últimamente, ChatGPT ha sido una ayuda enorme, no solo para escribir código, sino para razonar el diseño, detectar errores de la API y llegar a una solución limpia y documentada.
Si en el futuro olvido por qué mis revisiones “funcionan así”, al menos ya sé dónde mirarlo.
La guerra contra el correo electrónico: un sistema personal para la gestión de la información
El ejercicio de la abogacía nos sitúa en un escenario de sobrecarga informativa constante. Habitualmente, el flujo de correos, documentos y expedientes que recibimos supera nuestra capacidad de procesamiento manual si pretendemos mantener el rigor que nuestra profesión exige. Por ello, he dedicado un poco de tiempo a lo que considero una inversión necesaria: la creación de un sistema de automatización que gestione el tráfico de datos para que yo pueda centrarme en el análisis jurídico.
En esta ocasión, todo ha sido con la ayuda de Google Gemini.
Se trata de un script desarrollado en Python que integra mis herramientas de trabajo habituales —MailMate, OmniFocus y Hookmark— para reducir el margen de error y eliminar la fricción en la gestión diaria.
Un flujo de trabajo sin fisuras
La meta es clara: que la información no se disperse. El sistema que he implementado realiza un recorrido automatizado que garantiza la trazabilidad total de cada asunto:
Menos gestión, más Derecho
A menudo nos perdemos en tareas de “gestión de la información” que, aunque necesarias, no aportan valor jurídico al cliente. La implementación de este script responde a la necesidad de ser más exigente con mi propio tiempo.
Automatizar el acuse de recibo, el archivado y la creación de tareas no es solo una cuestión de comodidad; es una estrategia para reducir el margen de error. Al delegar en un sistema estructurado la descarga de archivos y la organización de la bandeja de entrada, aseguro que nada quede en el tintero.
En definitiva, se trata de que la tecnología asuma la carga de los procesos rutinarios. Intento así vencer la guerra al correo electrónico (desde aquí escucho sus risas) y asegurar que dispongo de algo más de tiempo de calidad para dedicar a cada asunto, a cada cliente.
Emilio Aparicio y su Newsletter son una joya
Les voy a contar una cosa. Que muchos ya conocerán, pero que espero que sirva de ayuda a otros. Hace tiempo que el SEO no me rula bien así que es probable que esto lo lean cuatro y el del tambor.
En cualquier caso, se la cuento porque quiero mostrar mi agradecimiento a Emilio Aparicio, abogado administrativista de Bilbao, por su web y por la Newsletter en la que recopila Autos de Admisión de recursos de casación y Sentencias de la Sala III del Tribunal Supremo.
Cojan ustedes este método de Google: introduzcan en el buscador site:emilioaparicio.eu y las palabras de lo que necesiten buscar. Por ejemplo:
site:emilioaparicio.eu revisión de oficio
site:emilioaparicio.eu caducidad
site:emilioaparicio.eu interinos
Y se van a encontrar con una recopilación de artículos de Emilio de plena vigencia y actualidad, y con una relación de Newsletters en las que se recogen autos y sentencias relativas a esos términos que son una mina de información.
Emilio, gracias.
Cómo obtener el número de semana actual y el de la semana que viene
Para mi sistema de Bullet Journal de OmniFocus, quiero una forma sencilla de escribir el número de semana actual, o el de la que viene, sin tener que mirar en el calendario para ver si estamos en la semana 45, 46…
Las etiquetas que uso son en formato W45, W46, etc.
He creado una macro en Keyboard Maestro, y el truco está en este código horario: %ICUDateTime%ww%
%ICUDateTime% busca la fecha actual, mientras que ww% ofrece el número de semana en un calendario con 52 semanas. Con este código, el resultado es que la semana actual es 45. Añadiendo una W al comienzo: W%ICUDateTime%ww%, el resultado que ofrece es W45, que es la etiqueta que a mí me interesa.
La macro completa es así. Si tecleo la abreviatura w0, sin pensar más, me da el número de semana actual W45.
Para calcular el número de la semana que viene, el código ha de ser así: %ICUDateTimePlus%1%week%ww%. De forma que se suma una semana a la fecha actual y se da como resultado la semana 46. En mi caso, la macro queda así, con la abreviatura w1, que en mi cabeza es fácil recordar:
Para profundizar más, los distintos códigos de fecha (mes, semana, día, hora) y cálculo (sumar, restar fechas), se pueden encontrar en la siguiente wiki de Keyboard Maestro.
Creación masiva de etiquetas de fecha en OmniFocus
Para probar si puedo montar un sistema de Bullet Journal en OmniFocus, quería crear una serie de etiquetas (tags contextuales) para cada mes, cada semana y cada día del año. Las etiquetas diarias son 365 (366 para 2024, que es bisiesto), así que he buscado alguna manera más fácil de hacerlo. La creación individual de tareas en OmniFocus no es difícil, pero la repetición del proceso 366 veces podría llevarme horas de aburrimiento.
He seguido la convención de texto de TaskPaper, que permite importar tareas, con su proyecto, fecha de comienzo o vencimiento, etiqueta y otros metadatos en texto plano y con un simple Copiar-Pegar. Si la etiqueta no existe, la crea directamente en OmniFocus.
La convención para este caso es tarea @tags(etiqueta). Si la etiqueta está anidada en una categoría superior, OmniFocus la separa con un signo de dos puntos : así que el texto necesario quedaría así:
tarea @tags(categoría : subcategoría : etiqueta)
Para mi caso, quedaría así:
tarea @tags(BUJO : DayTags : 01-ene)
tarea @tags(BUJO : DayTags : 02-ene)
tarea @tags(BUJO : DayTags : 03-ene) y sucesivamente.
Seguro que hay formas más sencillas y elegantes de hacerlo, pero yo lo he hecho así:
Primero he creado una hoja de cálculo en Excel:
En esta captura se ve el resultado. La secuencia sigue hasta el 31 de diciembre.
He exportado el archivo a un formato de Texto delimitado por tabulaciones (.txt)y lo he abierto en Microsoft Word. Lo que se ve en Word es esto:
La operación es sencilla: se trata de ir sustituyendo lo que sobra con la función Buscar y reemplazar:
Para localizar el tabulador en la función de Buscar y reemplazar, hay que pinchar en el triángulo del campo de búsqueda y seleccionar Marca de tabulación:
Finalmente, el texto queda así (la secuencia, recordémoslo, sigue hasta 31 de diciembre):
Ya se puede seleccionar (⌘A) y copiar (⌘C) la secuencia completa en Word, para pegarla íntegra (⌘V) en el Buzon de OmniFocus.
Voilà. Aparecerán un montón de tareas con el número 1 inicial, cada una con una etiqueta de fecha distinta. Podemos borrar estas 366 tareas sin problema, porque las etiquetas ya estarán creadas y no se eliminarán. Vista en la pestaña de etiquetas:
A partir de aquí, las etiquetas ya estarán disponibles en el sistema para asignarles una fecha concreta en el sistema de Bullet Journal de OmniFocus. Esto permite buscar la etiqueta de una fecha en la perspectiva correspondiente, liberando además los campos de fecha de inicio y de vencimiento para otros usos.
Cómo enlazar a una sección concreta de un post
Para marcar una sección en un post de un blog y generar un enlace que lleve a esa sección en HTML, se debe usar el elemento de anclaje <a> y el atributo id.
Por ejemplo, si tengo un título de sección llamado “Contacto”, puedo marcarlo de la siguiente manera:
<h2 id="contacto">Contacto</h2>
Aquí, id="contacto" es un identificador único para esa sección.
A continuación, puedo crear un enlace que lleve a “Contacto” de la siguiente manera:
</a><a href="#contacto">Ir a Contacto</a>
Aquí, href="#contacto" es la referencia al identificador único que se ha definido anteriormente. Cuando hago clic en este enlace, me lleva a la sección del post del blog marcada con id="contacto".
Cómo incluir un atributo HTML para que los enlaces muestren un texto explicativo al pasar el ratón
MacGPT me ha vuelto a enseñar cómo incluir un atributo HTML para que los enlaces muestren un texto explicativo al pasar el ratón por encima.
> Para que un enlace muestre un texto cuando pasas el ratón por encima, puedes utilizar el atributo “title” en la etiqueta HTML “a”. Aquí tienes un ejemplo de cómo hacerlo:
>
> <a href="https://www.ejemplo.com" title="Este es el texto que se mostrará">Haz clic aquí</a>
>
> En este caso, cuando pasas el ratón por encima del enlace “Haz clic aquí”, se mostrará el texto “Este es el texto que se mostrará”.
En este post he incluido un ejemplo de uso de este atributo, explicado en el apartado final de Bonus Track (actualización).
Cómo hacer que un enlace en HTML se abra en una nueva ventana o pestaña
He preguntado a MacGPT de Jordi Bruin cómo hacer que un enlace del blog se abra en una nueva ventana o pestaña, y como siempre ha acertado de pleno.
Otros servicios que he probado como Squarespace y Wordpress tienen una interfaz visual que permite seleccionar la opción, pero Micro.blog me está estimulando el aprendizaje y MacGPT está siendo un escudero estupendo.
Aquí la respuesta de MacGPT:
> Para que un enlace en HTML se abra en una nueva ventana o pestaña del navegador, debes usar el atributo target con el valor _blank en la etiqueta <a>. Aquí te dejo un ejemplo:
>
> </a><a href="https://www.ejemplo.com" target="_blank">Visita Ejemplo.com</a>
>
> En este caso, cuando hagas clic en “Visita Ejemplo.com”, el enlace se abrirá en una nueva ventana o pestaña del navegador, dependiendo de la configuración de este.
De paso, le he preguntado también como hacerlo en Markdown, lenguaje en el que escribo todos mis posts, y su respuesta ha sido igualmente acertada:
> En Markdown, la sintaxis para crear enlaces no incluye una opción nativa para abrir enlaces en una nueva ventana. Sin embargo, puedes usar HTML directamente en tu texto de Markdown. Aquí tienes un ejemplo:
>
> [Abrir en nueva ventana](https://www.ejemplo.com){:target="_blank"}
>
> Por favor, ten en cuenta que el fragmento {:target="_blank"} puede no funcionar en todas las implementaciones de Markdown, ya que no es una característica estándar de Markdown, sino una extensión que algunos procesadores de Markdown soportan.
>
> Si estás seguro de que tu procesador de Markdown no soporta esta extensión, puedes usar HTML directamente:
>
> <a href="https://www.ejemplo.com" target="_blank">Abrir en nueva ventana</a>
>
> Esta última opción debería funcionar en cualquier lugar donde se pueda utilizar Markdown.
Había perdido la función para responder a una llamada con un SMS de cortesía
Hasta hace poco, tenía una función muy útil en el iPhone: al recibir una llamada que no podía atender, podía responder con un SMS predefinido para disculparme y llamar cuando estuviera libre. Una cortesía que me parece muy apropiada. Y que utilizo solo cuando procede, claro.
Sin embargo, este botón me habia desaparecido de un tiempo a esta parte, no puedo precisar cuándo exactamente.
He podido localizar cómo solucionarlo, así que lo documento aquí: hay que activar la opción dentro de Ajustes -> Face ID y código, tal y como se muestra en esta captura:
Y, de esta forma, vuelve el botón de Responder con SMS a la pantalla de la llamada que se está recibiendo.
Cómo cambiar la fecha de creación y modificación de un archivo en MacOS
Usando Terminal. En Aplicaciones -> Utilidades -> Terminal.
El código es:
touch -t YYYYMMDDhhmm rutadelarchivo
Es decir: en la línea de comandos, escribir touch -t y un espacio. A continuación se arrastra el archivo desde Finder a la línea de comando de la Terminal para que se copie la ruta. Al copiar, Terminal deja un espacio después de la ruta, yo he mantenido el espacio sin borrarlo.
Ejemplo para cambiar un archivo de septiembre de 2023 al 25 de junio de 2023, 12:00 del mediodía:
La primera vez que se usa el comando touch -t cambia la fecha de creación del archivo.
Si a continuación se usa el mismo comando por segunda vez, con una fecha distinta, cambia la fecha de modificación.
Información original del archivo: Creado y modificado el 24 de septiembre de 2023 a las 10:44:
La primera vez, el comando cambia las dos fechas de creación y modificación al 25 de junio de 2023, 12:00:
touch -t 202306251200 /Users/umerez/archivodeprueba.md
La segunda vez, el comando cambia solo la fecha de modificación al 25 de julio de 2023, 14:00, y mantiene la de creación.
touch -t 202307251400 /Users/umerez/archivodeprueba.md
Fuente: Muhammad Yassin: How to Change the Created Date or Modify the Date on Mac.
Microsoft Word para Mac: cómo evitar la opción de «No agregar espacio entre párrafos del mismo estilo»
Esto es una molestia que me ha irritado durante un montón de años y para la que hasta ahora no había encontrado solución.
En los documentos de trabajo que redacto en Microsoft Word, utilizo siempre párrafos numerados. Entre cada párrafo, utilizo una determinada separación. Pero cada vez que copio y pego un texto de varios párrafos, sea de otro documento de texto, de un PDF o directamente de la web, Word elimina la separación y me obliga a ir al menú de «Opciones de interlineado» o a las preferencias de formato del Párrafo para quitar esta irritante opción y devolver al texto la separación entre párrafos:
Hasta ahora, durante años, he adoptado el hábito de no copiar varios párrafos, sino de hacerlo de uno en uno, lo que es un incordio, aunque utilice una aplicación con historial de portapapeles. Pero, en las muchas ocasiones en las que lo olvido y copio varios párrafos, de todas todas, Word vuelve a recordarme que ha sido diseñado para molestar. Alguna vez he intentado incluso crear una macro en Keyboard Maestro para automatizar el proceso de devolver la separación entre párrafos al texto recientemente pegado, pero nunca me ha funcionado bien.
Tenía que haber algún ajuste por defecto y he encontrado la respuesta, por fin, aquí:
> By default, Word applies the List Paragraph paragraph style to bulleted and numbered lists (unless you explicitly apply a different style of course). Clear the “Don’t add space…” setting for the List Paragraph style as follows: In the Apply Styles pane, type in List Paragraph. Click Modify. Click Format, Paragraph and clear the option. Click OK. Before leaving the Modify Style dialog, select “New documents based on this template.”
> Por defecto, Word aplica el estilo de párrafo Párrafo de Lista a las listas con viñetas y numeradas (a menos que aplique explícitamente un estilo diferente, por supuesto). Para limpiar la configuración “No agregar espacio…” para el estilo Párrafo de Lista, siga estos pasos: En el Panel de Estilos, busque Párrafo de Lista. Haga clic en Modificar. Haga clic en Formato, Párrafo y desmarque la opción. Haga clic en Aceptar. Antes de salir del cuadro de diálogo Modificar estilo, seleccione “Documentos nuevos basados en esta plantilla”.
Adjunto unas capturas de pantalla para ilustrar lo que he hecho.
PRO TIP (maybe): Para evitar tener que hacer lo mismo en cada plantilla, creo que la solución está en incluir este cambio en la plantilla Normal.dotx. Para esto, he abierto un documento nuevo en blanco, con la plantilla general de Word, y he seguido los mismos pasos de antes, añadiendo lo siguiente: marcar la opción «Agregar a la plantilla» en las opciones de modificación del estilo. Todas las plantillas que he probado funcionan correctamente ahora, así que creo que la opción por defecto ha quedado incorporada a la plantilla principal de Word y a todas las plantillas creadas a partir de esta.
Cómo insertar imágenes en Typora
Typora es una aplicación estupenda para escribir archivos y tomar notas en lenguaje Markdown.
Como los archivos son en texto plano y no almacenan imágenes, para insertarlas en los textos es necesario guardarlas en algún lugar aparte.
Lo más adecuado es almacenarlas en algún servicio web con el que Typora puede conectar para insertar posteriormente las imágenes en los textos.
Para esto, he utilizado Github como almacén de imágenes y la aplicación Upgit para subirlas.
Al arrastrar una imagen a un texto de Typora, Upgit la sube automáticamente al repositorio de Github y obtiene una URL que inserta en el texto para que esté permanentemente disponible y visible.
He seguido las instrucciones de esta página de Typora.
Para crear el archivo config.toml he usado BBEdit. Dentro, he personalizado el código con el nombre de usuario de Github, el nombre del repositorio y un token creado al efecto en https://github.com/settings/tokens.
Finalmente, he incluido la ruta a Upgit en las preferencias de Typora:
Dos posibles inconvenientes a tener en cuenta:
ACTUALIZACIÓN 2023-05-27:
Efectivamente, el 2023-05-25 he recibido un aviso de que el token de github estaba a punto de caducar. Siguiendo el mismo enlace de Github he regenerado un nuevo token fácilmente, dándole otros 90 días de vigencia. He pegado el token en el archivo config.toml, sustituyendo al anterior. El archivo está dentro de la carpeta de upgit que he guardado en la carpeta Documentos.
Friday Notes #95 — It’s Good Enough
Friday Notes #95 — It’s Good Enough
> The question of something like a service being good enough has haunted me since I was a teenager. As an architect, my father struggled quite a lot with many potential clients who constantly asked, “why would I hire an architect to design my house if a technician in the same field can do the same?” The reason for asking this type of question is that an architect doesn’t come cheap, but a technician, yes. It’s about saving money. Along the way, it’s about saying, “it’s good enough.” The work of an architect, when creating a new house for his client, involves asking questions like how they live. Do they have hobbies? Do they plan to have children? Are they planning to have their parents with them in the future? Etc. Then, the thinking begins, and the design phase starts. These phases require experience, know-how, and time. They come at a price. The clients need to understand this and value the process and the likely results. If they don’t care, they won’t use an architect and settle for the “good enough” alternative. Are we in for the same reasoning when it comes to AI?
It’s the same reasoning for a lawyer’s work. AI is going to be a phenomenal tool, it will assist our work and perform many tasks good enough. But a creative, thoughtful, studious, wise human brain will still be necessary. And it will come at a price.
SearchLink de Brett Terpstra (macOS)
Utilizo este fenomenal servicio creado por Brett Terpstra como asistente para escribir artículos en el blog. Automatiza la búsqueda de enlaces de internet, a la vez que ofrece el resultado en formato Markdown, ahorrando unos cuantos pasos que, cuando han de repetirse a menudo, se hacen pesados.
Por ejemplo, para incluir el primer enlace del párrafo anterior, el proceso hubiese sido:
Y así también con el segundo enlace del primer párrafo y sucesivos.
Pues bien, una vez instalado el servicio, que se puede descargar gratuitamente en SearchLink by Brett Terpstra, basta seleccionar cualquier texto, clickar con el botón secundario y buscar SearchLink en el menú de Servicios.
O, mejor, si se asigna un atajo de teclado (yo uso ⌃+S) basta con seleccionar el texto y pulsar la combinación de teclas. El programita, en dos segundos, busca el texto en internet, copia la URL correspondiente y la pega en el editor de texto en el formato completo de enlace de Markdown.
SearchLink tiene otro montón de truquitos, por ejemplo, para buscar enlaces de Amazon, o de la App Store y otras muchas posibilidades. También puede ofrecer solamente la URL sin formato Markdown o guardarla en el portapapeles para ulteriores usos.
En la web de Brett hay un montón de instrucciones bastante claras, y un vídeo breve que explica su instalación y uso, además de cómo asignarle un atajo de teclado.
Sueño con adaptar este servicio para poder incluir un ECLI y que ofrezca automáticamente la URL de la sentencia en la base de datos de CENDOJ o CURIA Tribunal de Justicia de la Unión Europea, pero para esto tendré que hablar con Brett o con Jaime García Obregón.
Atajo (Shortcut) en el Mac para anotar una llamada en la agenda
Animado por @jcarlosmelian, voy a compartir un pequeño truco que utilizo todos los días para apuntar una llamada en la agenda, usando la aplicación de Atajos que ya está en el sistema operativo macOS.
A través de este atajo, primero se abre la libreta de contactos para elegir la persona a la que quiero llamar, luego selecciono la fecha y la hora en la que quiero/debo hacer la llamada, y automáticamente se crea un apunte en mi agenda, el día y hora señalados, con el número de teléfono a mano.
Funciona así:
Podéis descargar el atajo pinchando en este enlace. Os pedirá permiso para instalarlo y lo tendréis enseguida en vuestra biblioteca de Atajos.
Tendréis que hacer un par de ajustes, dentro de la aplicación, haciendo doble click en el atajo para editar su funcionamiento. Primero, seleccionad el calendario en el que queréis que se anote el evento (el calendario «Tareas» es uno de los que tengo en mi ordenador, pero vosotros tendréis otros). Segundo, de manera opcional, podéis poner una alerta para que salte una notificación a modo de recordatorio. Espero que esta secuencia lo explique bien.
También es importante que dejéis seleccionada esta opción de «Fijar en la barra de menús». De esa forma, tendréis un icono de Atajos en la parte superior de la pantalla (barra de menús) desde la que acceder con facilidad a este atajo.
Se puede lanzar usando aplicaciones como Launchbar o Alfred, asignando atajos de teclado, con un Stream Deck y de mil formas, pero esto lo dejamos para otro día.
Lo dicho, descargad el atajo en este enlace y haced la prueba a ver qué os parece.
Cómo configurar el trackpad del MacBook
Sistema: macOS Monterey 12.1
Para mí, la mejor forma de utilizar el trackpad para interactuar con el MacBook es configurando estos tres gestos:
Para configurar el trackpad, hay que ir a las Preferencias del Sistema:
Y dentro de esa ventana a las opciones del Trackpad:
Tocar con la punta del dedo (tap) para hacer clic
En la pestaña «Señalar y hacer click», marcar el check de «Tocar para hacer click».
Tocar con dos dedos para hacer clic secundario
En la misma pestaña, abrir el menú desplegable de «Click secundario» y seleccionar «Hacer click o tocar con 2 dedos».
De paso, no está de más darse una vuelta por el resto de las pestañas para hacerse una idea de los distintos tipos de pulsación y las cosas que podemos hacer con el Trackpad.
Arrastrar con tres dedos
Esta función está un poco más escondida, dentro de las opciones de Accesibilidad del ordenador.
Hay que volver a las Preferencias del Sistema y seleccionar «Accesibilidad».
En la columna de la izquierda, buscar «Control del puntero» y seleccionar las «Opciones del trackpad».
Y, finalmente, marcar el check de «Activar arrastre» y, en el menú desplegable, elegir la opción «arrastrar con 3 dedos».
A partir de aquí, al menos a mí, se me hace muy cómodo moverme con el trackpad solo con unos ligeros taps: un dedo para hacer click, dos para el botón secundario, tres para mover ventanas y archivos.
Reglas para escribir bien vía @Uhandrea
Esta mañana he encontrado este tuit que guardé de Juan I. Pérez Iglesias, que a su vez cita a Daniel Gilbert, y he querido traerlo al blog, traduciéndolo de aquella manera.
Reglas para escribir bien
1. Persigue tres cosas:
2. Piensa con claridad:
3. Escribe con claridad:
4. Escribe con estilo:
Scrivener para abogados
Hoy no tenía previsto escribir ningún artículo, pero me he encontrado con esta oferta: Scrivener para Mac con un 50% de descuento, y me he dicho que no puedo dejar pasar la ocasión sin recomendar este maravilloso programa.
Scrivener es un programa informático inicialmente previsto para escritores, pero que me parece ideal también para abogados. Yo lo uso todos los días y es una de mis herramientas de trabajo fundamentales. Está disponible para Windows y para Mac.
Está pensado para escritos largos, de gran formato, y su principal característica es que permite estructurar los escritos por capítulos, apartados o epígrafes.
De esta forma, se puede desarrollar un apartado concreto (un Hecho, un Fundamento Jurídico) en una hoja continua, mientras a la izquierda el programa presenta un esquema con toda la estructura del escrito.
En lugar del sistema habitual de los procesadores de texto, que obligan a ir adelante y atrás en un único escrito, buscando este párrafo o aquel otro epígrafe, saltar de uno a otro para consultarlo, copiarlo o incluso modificarlo rápidamente por una nueva idea que surge, es algo sencillo y muy conveniente.
Como, además, es fácil crear plantillas a partir de cualquier documento, se puede hacer una buena colección de formularios para facilitar la creación de nuevos escritos.
Ésta, por ejemplo, es la estructura de mi plantilla para los escritos de formalización de demanda de un recurso contencioso-administrativo ordinario.
<div class="
image-block-outer-wrapper
layout-caption-below
design-layout-inline
">
<figure class="
sqs-block-image-figure
intrinsic
" style="max-width:227px;">
<span class="v6-visually-hidden">View fullsize</span>
<div class="image-block-wrapper">
<div class="sqs-image-shape-container-element
" style="position:relative;padding-bottom:253.74447631836%;overflow:hidden;">
<img src="https://umerez.files.wordpress.com/2015/06/413e3-image-asset.png" alt="" /><img class="thumb-image" src="https://umerez.files.wordpress.com/2015/06/413e3-image-asset.png" alt="" />
</div>
</div>
</figure>
</div>
Cada uno de esos apartados ya tiene su contenido, que adapto luego al caso concreto.
<div class="
image-block-outer-wrapper
layout-caption-hidden
design-layout-inline
">
<figure class="
sqs-block-image-figure
intrinsic
" style="max-width:1275px;">
<span class="v6-visually-hidden">View fullsize</span>
<div class="image-block-wrapper">
<div class="sqs-image-shape-container-element
" style="position:relative;padding-bottom:65.490196228027%;overflow:hidden;">
<img src="https://umerez.files.wordpress.com/2015/06/c88be-image-asset.png" alt="" /><img class="thumb-image" src="https://umerez.files.wordpress.com/2015/06/c88be-image-asset.png" alt="" />
</div>
</div>
</figure>
</div>
Una vez terminado el escrito, Scrivener utiliza un sistema de “compilación” o transformación en un documento de formato distinto. Se puede pasar directamente a PDF, o algo muy habitual, exportarlo a un formato de procesador de textos, para corregirlo y darle los últimos retoques antes de imprimir.
No quiero extenderme demasiado ni convertir este artículo en una revisión exhaustiva del programa. Sus opciones y posibilidades son innumerables para los escritores de novela o ensayo, pero lo bueno que tiene es que basta con sus funciones básicas, que se aprenden a manejar de forma sencilla, para convertirse en una herramienta utilísima para abogados.
Y ahora que está a mitad de precio (incluso más, porque es un software que suele rondar los 50€ y ahora está a unos 20€), no se puede dejar pasar la oportunidad.