El argumento del Juicio Final

Suponiendo que el número \ (Y\) de todas las personas que han nacido alguna vez y que nacerán en algún momento es limitado, sea \ (x\) su posición absoluta desde el principio de la lista. Entonces \ (0 < \frac{x}{Y} \leq 1\). Ahora podemos decir con una probabilidad \ (95\%\) que usted está entre los últimos \ (95\%\) de todas las personas que han nacido alguna vez, es decir \ (0,05 < \frac{x}{Y} \leq 1\) y por lo tanto \ (Y < \frac{x}{0,05} = \frac{100 \cdot x}{5} = 20 \cdot x\).

.­.­.

Paradoja del bebedor

La siguiente oración se conoce como la "paradoja del bebedor": "Hay alguien en el pub, así que si él o ella está bebiendo, todos en el pub están bebiendo". No importa si esa persona anima a otros a beber o existe alguna otra puerta trasera, como veremos en un momento. Es un buen ejemplo de lógica matemática de primer orden.

.­.­.

Adivinanzas

Un niño piensa en un número que es \(1\) , \(2\) o \(3\) y luego a una niña solo se le permite hacer una pregunta sobre ese número. El niño solo puede responder " ", " No ", o " No sé" . A través de un interrogatorio inteligente, la niña logra nombrar el número correcto en el que estaba pensando el niño después de que el niño le respondió. ¿Cuál es tu pregunta?

.­.­.

Objeto sin origen

Imagina que un día recibes un misterioso paquete sin remitente. Curioso, abres el paquete y encuentras un anillo que le regalas a tu hija. Décadas más tarde, ella es quien puede usar un agujero de gusano para enviar objetos al pasado. Lo hace con el anillo que una vez le diste, envuelto en un paquete que te dirige. La pregunta es: ¿de dónde viene el anillo?

.­.­.

CI con acciones de GitHub

Como alternativa al muy valorado Travis CI , GitHub Actions también ha estado disponible durante algún tiempo.Como herramienta de integración continua, está muy bien integrado en la plataforma de código GitHub y ahora es muy estable. Las acciones de GitHub se basan en archivos de configuración YAML ubicados en el repositorio donde se debe ejecutar el flujo de trabajo.

.­.­.

La paradoja de stein

En 1961, James y Stein publicaron el artículo Estimación con pérdida cuadrática . Tome datos distribuidos normalmente con una media desconocida \(\mu\) y varianza \(1\) . Si ahora elige un valor aleatorio \(x\) de estos datos y tiene que estimar la media \(\mu\) sobre la base de esto, intuitivamente \(x\) es una estimación razonable para \(\mu\) (Dado que está presente una distribución normal, el \(x\) elegido al azar probablemente esté cerca de \(\mu\) ).

.­.­.

Acceso con PHP a Exchange/Office 365

Anunciado durante mucho tiempo , ahora realidad : Microsoft ha desactivado la autenticación por contraseña para ciertos protocolos en Exchange Online desde septiembre de 2022 a favor de oAuth2. Los problemas de GitHub de muchas bibliotecas y scripts de respaldo dejan en claro que el cambio tomó por sorpresa a muchos administradores. A continuación, mostramos una forma de cómo puede continuar accediendo al contenido de su buzón de Exchange con la ayuda de oAuth2 a través de PHP a través de IMAP.

.­.­.

UUID en bases de datos

UUID (Entificadores de ID únicos universales) son valores de 128 bits que se utilizan en las bases de datos, entre otras cosas, para identificar de forma única las entradas de la tabla. Se representan como una cadena hexadecimal dividida en cinco grupos separados por guiones (Ejemplo: 09fe49b3-4d2b-471c-ac04-36c9e706b85f). Hay numeroso Discusiones sobre las ventajas y desventajas de los UUID en las bases de datos: son indispensables en los sistemas distribuidos.

.­.­.

Limpiar el historial de Git parte 2

Datos confidenciales o demasiado consumo de memoria: hay buenas razones para querer cambiar el historial de Git. En esta publicación de blog , expliqué cómo purgar archivos del historial de Git usando BFG . Un punto débil de BFG es la falta de soporte para rutas directas , por lo que no puede eliminar archivos o carpetas específicamente en subcarpetas del historial. Con eso, es hora de buscar soluciones alternativas.

.­.­.

Límite de memoria en WordPress

tl;dr: valor establecido manualmente o los valores predeterminados de WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT no tiene efecto si WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT menor o igual al límite de memoria de PHP (en adelante memory_limit llamado) es. Se utilizan para establecer valores demasiado bajos de memory_limit dinámicamente a un mínimo recomendado.

.­.­.

Sugerencia rápida: modificar iframe

Si incrusta un iframe de terceros (como un widget), no puede acceder a su contenido ni con CSS ni con JavaScript (debido a la llamada política del mismo origen ). Sin embargo, existe un procedimiento muy sencillo para modificar cualquier código (también en otros archivos que se recargan dentro del iframe). Para hacer esto, enruta la URL a través de su propio proxy PHP y modifica el contenido como desee.

.­.­.

Monedas en la aplicación ANTON

ANTON es una de las aplicaciones de aprendizaje más populares para estudiantes en los grados 1-10. Clase. A primera vista, el aspecto de gamificación de adquirir monedas ("monedas") puede parecer extraño para los adultos, pero multiplica notablemente la motivación, no solo de mis hijos. Incluso guarda un pequeño "cojín" de monedas que no se tocan.

.­.­.

Sobre la robustez del IBAN

Como es bien sabido, el IBAN alemán consta del código de país (DE), un dígito de control de dos dígitos (según ISO 7064 ), el código bancario (8 dígitos) y el número de cuenta (incluido el número de subcuenta, 10 dígitos, los dígitos que faltan se rellenan con ceros a la izquierda) y, por lo tanto, son 22 dígitos. Para calcular el dígito de control, se forman el llamado BBAN (código bancario y número de cuenta), así como el código numérico de país \(1314\) para Alemania y el dígito de control \(00\) ).

.­.­.

Matemáticas en el juego Dobble

En la última velada familiar, los niños trajeron a la mesa con entusiasmo el juego Dobble (en la edición de Harry Potter). Después de la 5ª ronda perdida (sin ningún golpe visible de mi carta con el naipe) me dijeron, para mi asombro, que cada jugador siempre puede encontrar un acierto en cada ronda. Pero mi incredulidad solo fue reconocida con más vueltas perdidas: los niños simplemente fueron más rápidos.

.­.­.

Tiempo de bloqueo de Bitcoin

Ya sabes: el tiempo esperado entre dos bloques de Bitcoin es en promedio \(10\) minutos. Ahora está haciendo una transacción importante de Bitcoin y esperando ansiosamente ver si aparece en el siguiente bloque y cuándo.:

e50bfacc95975a4e7545d83d8954645f

.­.­.

Corona matemática

En el informe semanal de RKI del 11.11.2021 se indica en la página 22 que \(36\%\) los pacientes con corona \(36\%\) más de 60 años en la unidad de cuidados intensivos ya estaban completamente vacunados. En este grupo de edad, \(87\%\) completamente vacunados en este momento (ver p. 18).

.­.­.

Cálculo del índice de visibilidad SISTRIX

Junto con Xovi, la herramienta SISTRIX es el programa de análisis más utilizado en Alemania en el área de SEO. El índice de visibilidad se ha establecido como un cuasi estándar para la visibilidad de una página en la búsqueda de Google. Los parámetros que se incluyen en su cálculo se explican, por ejemplo , aquí y aquí y aquí y aquí y aquí , pero no se publica oficialmente una fórmula de cálculo exacta. Los siguientes son los resultados de mi investigación personal de seis meses, que no pretenden ser completos ni correctos.

.­.­.

Fracciones decimales

Los números decimales finitos se llaman fracciones decimales, porque son una representación diferente para fracciones con potencias de diez en el denominador. Asi es:

$$\frac{z}{n} = \frac{q_1}{1} + \frac{q_2}{10} + \dots + \frac{q_k}{10^k}$$

con \(k \in \mathbb{N}\) y \(q_k\) el \(k-1\) -ésimo lugar a la derecha después de la coma.

.­.­.

Consejo rápido: cambie automáticamente la versión del nodo

Se recomienda el uso de nvm para una instalación rápida y el cambio de versiones de nodos. Si desea especificar explícitamente la versión de nodo requerida en un proyecto, coloque un archivo llamado .nvmrc con el número de versión exacto (por ejemplo, "12.10.0") en la misma carpeta en la que se encuentra el package.json . Si ahora cambia a la carpeta, la siguiente extensión del archivo ~ / .bash_profile para bash ejecuta el comando nvm use , que establece automáticamente esta versión:

fe497e1c7f9f1547263eb3bffe15f9f6

.­.­.

Utilice las consultas de contenedores hoy

Desde que existió el diseño web receptivo, los desarrolladores han estado preguntando sobre la posibilidad de diseñar elementos DOM basados ​​en su tamaño real y no en el tamaño de la ventana gráfica en el navegador (con la ayuda de consultas de medios ). De hecho, las consultas de contenedor (inicialmente consultas de elementos) son probablemente la función CSS más solicitada que los navegadores aún no tienen .

.­.­.

Limpiar el historial de Git

Los datos confidenciales, como las contraseñas, deben estar en archivos .env y, si es posible, no terminar en repositorios de Git. Pero probablemente nos ha pasado a cada uno de nosotros al menos una vez por error: publicó rápidamente un buen script de la API de Google Maps JS en GitHub Gists (como "público") sin disfrazar accidentalmente nuestra propia clave privada de la API de Google Maps.

.­.­.

Recorta archivos SVG de imágenes con clip-path

Si desea recortar una imagen con la ayuda de un SVG, se recomienda el uso de la ruta del clip de la propiedad CSS. El siguiente script activa barreras llenas de baches: el SVG se puede guardar con la ayuda de Illustrator, puede especificar la URL (relativa o absoluta) de un SVG (Chrome admite hasta ahora de forma nativa solo SVG en línea) y el escote también responde completamente.

.­.­.

Consejo rápido: WP_Query y campos multilínea

Con la ayuda del atributo meta_query en la poderosa clase WP_Query de WordPress, se pueden filtrar las publicaciones que tienen ciertos valores en sus metacampos. Si ha creado un metacampo de varias líneas (por ejemplo, con la ayuda de Campos personalizados avanzados ) y solo desea encontrar publicaciones que contengan un cierto valor en este campo separados por saltos de línea, se recomienda el mundo REGEX de MySQL.

.­.­.

Integre animaciones de Adobe Animate de forma nativa

En un artículo anterior describí cómo se pueden integrar fácilmente animaciones de Adobe Animate en un sitio web mediante el desvío de una exportación APNG. También existe la forma nativa a través de la exportación de lienzo HTML5 , pero cualquiera que ya haya trabajado con él encontrará que está atascado en cada rincón y grieta (soporte de respuesta insuficiente, integración engorrosa en un sitio web existente, sin diferentes velocidades de fotogramas por animación, etc.).). La biblioteca adobe-animate-embed proporciona un remedio aquí.

.­.­.

Google Maps sin clave API

Normalmente, al integrar Google Maps, se trabaja con la API de JavaScript de Maps , que requiere una clave de API y puede generar costos que no deben subestimarse con números de acceso más altos. Existen grandes alternativas como mapbox u OpenStreetMap , pero aún no alcanzan la variedad de funcionalidades que ofrece Google. El propio Google también ofrece una forma sin una clave API a través de la función de compartir, que podemos usar para nuestros propósitos.

.­.­.

Exportación de Adobe Animate APNG

La compatibilidad del navegador con archivos PNG animados es ahora tan buena que las animaciones creadas con Animate CC pueden exportarse fácilmente a APNG y luego incorporarse a un sitio web en una simple etiqueta <img>. Esta es una alternativa simple y de buena calidad al método de publicación en Animate CC, que genera JavaScript.Los pasos a seguir se describen a continuación.

.­.­.

Expandir la búsqueda de WordPress

Si desea expandir la búsqueda nativa de WordPress con, por ejemplo, metacampos, es recomendable echar un vistazo a los filtros activados . Se recomienda el gancho posts_search para que la paginación continúe funcionando y no se cancelen futuras mejoras en la búsqueda. Con la ayuda de las funciones REGEXP y ExtractValue , el siguiente código amplía esta búsqueda para incluir publicaciones que contienen una de las palabras de búsqueda ingresadas en todos los metacampos.

.­.­.

Obra maestra de Godel

Cuando Kurt Gödel publicó sus famosos Teoremas de incompletitud en 1931, sacudió los fundamentos de la lógica matemática: refutó que todos los axiomas que pueden establecerse como una base posible son inevitablemente incompletos para probar todos los enunciados sobre números, y destruyó eso. El sueño de Hilbert de demostrar la coherencia de la teoría matemática.

.­.­.

Usa WhatsApp a través de API

A pesar de todas las preocupaciones sobre la protección de datos, WhatsApp sigue siendo la aplicación de mensajería favorita de Alemania. Además de la aplicación especial WhatsApp Business , Facebook también ha creado una interfaz oficial, la API de WhatsApp Business, para hacerla más interesante para las empresas. Si desea enviar mensajes de WhatsApp mediante programación desde su aplicación web, también hay otras formas.

.­.­.

Desenfoca la página detrás de la superposición usando CSS

Si utiliza elementos como superposiciones (que es la regla en tiempos de acción de GDPR) y desea suavizar el área detrás de la superposición, por ejemplo, a menudo se encuentra con el problema del contexto de apilamiento . Por ejemplo, si tiene elementos colocados de forma absoluta o en una posición fija, de repente se muestran de forma diferente que sin un filtro aplicado. Pero hay un remedio.

.­.­.

Consejo rápido: prueba dividida con Apache

No tiene que usar una herramienta poderosa como Google Optimize para pruebas simples de división de URL, también puede resolver Apache a través de .htaccess. El siguiente fragmento de código distribuye a sus visitantes por igual en ambas versiones para las dos páginas https://vielhuber.de/test1.php (variante 1) y https://vielhuber.de/test2.php (variante 2). La aleatorización se basa en la hora actual del servidor.

.­.­.

Acerca de la notación de funciones ramificadas

Los corchetes se utilizan en la notación de definiciones de funciones con distinción de mayúsculas y minúsculas. Seguimos la simple cuestión de si esta representación también puede eliminarse y la función puede reducirse a una notación que pueda prescindir de ella. Por ejemplo, la función

$$f: \mathbb{R} \to \mathbb{R}, f(x) = \left\{\begin{matrix} 42, & \text{falls } x = 0 \\ x, & \text{sonst} \end{matrix}\right.$$

con la ayuda de las cuatro operaciones aritméticas básicas usando un término de una línea?

.­.­.

Serie de fechas en Hojas de cálculo de Google

Al visualizar datos en Google Sheets, uno se encuentra con el problema de que el eje \(x\) no puede llenar automáticamente los espacios que faltan en los valores de texto (como en las semanas del calendario). Para resolver el problema, se genera una serie continua de fechas, se cuentan las celdas que ocurren y luego se visualizan las sumas acumuladas.

.­.­.

Consejo rápido: PHP clearstatcache

Encuentra el error:

72aaa2dbd201d49fc2ee429ebf68f15b

.­.­.

Hackeo de API de traducción de Google

Como parte de su Google Cloud, Google ofrece la API de traducción de Google con una estructura de costos basada en el uso. También hay una API no documentada que se puede usar sin una clave , pero que se niega a funcionar después de unas pocas solicitudes. Cuando se utiliza la función de traducción de sitios web de Google Chrome, se nota que las páginas se pueden traducir con muy buena calidad sin limitaciones apreciables.

.­.­.

Consejo rápido: etiquetado automático de Git

Si vincula Github con Composer , es obligatorio asignar un número de versión a través de la etiqueta git . El siguiente comando de línea de comando determina el día actual y lo aumenta (según SemVer ) por un número de versión. Por ejemplo, la versión 1.1.0 sigue a la 1.0.9. Si no se asigna ninguna etiqueta, la versión se etiqueta automáticamente con 1.0.0. Herramientas como endebles o git hooks acortan este desierto de símbolos.

8cd852c96ec1e60e8a5ac1f3614b2397

.­.­.

Editar el disparador de MySQL

Desafortunadamente, MySQL no ofrece la función ALTER TRIGGER. Para editar un disparador existente, primero debe eliminarlo y luego volver a generarlo. La instrucción CREATE TRIGGER se puede leer indirectamente a través de information_schema . Esto nos permite cambiar los desencadenantes mediante un desvío. Para hacer esto, realice sus cambios en el resultado del siguiente comando SELECT (cambiar la base de datos y el nombre del disparador de antemano) y ejecutar la consulta.

.­.­.

Desencadenar eventos de cambio en VanillaJS

VanillaJS ha estado a la par con el veterano jQuery en casi todas las áreas desde ES6 y ahora es muy superior. Por lo tanto, vale la pena migrar gradualmente el código heredado de jQuery. Sin embargo, debe tener cuidado al activar eventos de cambio manual. Por ejemplo, document.addEventListener no se activa en jQuery.change () . La siguiente descripción general resume las características especiales.

.­.­.

Controle las cookies con PHP y JS

La configuración de cookies por scripts propios o de terceros se puede controlar con precisión con la ayuda de PHP y JavaScript. Aunque esta no es una solución suficiente para la implementación de soluciones de cookies después del fallo judicial contra Planet49 (aquí es crucial que las herramientas de seguimiento como Google Analytics ni siquiera rastreen y, por lo tanto, no establezcan cookies), puede tener sentido. en general, incluir cookies en listas blancas / negras.

.­.­.

Desactivar dispositivos a través de un script en Windows

Para ahorrar electricidad o reducir su propia paranoia de monitoreo, es recomendable desconectar completamente los dispositivos no utilizados en su propia computadora de la electricidad. Dispositivos como cajas de sonido o cámaras web se pueden desactivar / activar de la forma clásica a través del administrador de dispositivos. Todo también funciona a través de un script. La forma estándar de hacer esto solía ser devcon . Windows 10 ahora ofrece una forma más conveniente de hacer esto a través de PowerShell .

.­.­.

Desenfoque de fondo de Skype

Skype tiene una función agradable, algo oculta: en el caso de las transmisiones de video, el fondo se puede difuminar automáticamente haciendo clic en el botón de video y usando la función " Desenfocar mi fondo ". Con la ayuda de la inteligencia artificial, esto funciona con cualquier cámara incluso sin información de profundidad. Entonces, todo se ve más profesional y se desvanecen cosas privadas o sin importancia en el fondo.

.­.­.

Exportación SVG desde Illustrator

Los SVG juegan un papel central en la web actual. No solo han reemplazado las fuentes de iconos, sino que también ofrecen la posibilidad de manipulación mediante CSS o JavaScript. Si desea guardar un gráfico vectorial para la web desde Adobe Illustrator como SVG, debe realizar algunos ajustes para evitar errores y reducir los tiempos de carga, que presentaré en el siguiente artículo.

.­.­.

Proyecto Euler: caminos de celosía

El Proyecto Euler es una serie de interesantes problemas de programación, a menudo con antecedentes matemáticos. Los problemas a menudo se plantean de tal manera que es necesario desarrollar algoritmos sofisticados para lograr el objetivo en un tiempo razonable. Hoy resolvemos el problema 15: Caminos de celosía , para el cual puedes encontrar la solución con medios combinatorios simples.

.­.­.

Actualizaciones automáticas de WordPress

WordPress ha implementado de forma nativa actualizaciones en segundo plano desde la versión 3.7 y las ha activado automáticamente para versiones menores. Con la ayuda de filtros, puede controlar el comportamiento con mayor precisión, qué exactamente se actualiza automáticamente. No se pretende una instalación permanente y completamente automática de todas las actualizaciones menores, principales, de complementos, de temas y de traducción, pero se puede hacer fácilmente de otra manera.

.­.­.

Optimización de arranque de PHP OPcache

Para los sitios web que están basados ​​en WordPress , Joomla o Laravel , por ejemplo, y no tienen contenido específico del usuario, es recomendable mantener todas las páginas en un caché HTML estático y solo regenerar el caché manualmente (o automáticamente) cuando se realizan cambios en el backend. Sin embargo, si la página contiene contenido dinámico que depende de sesiones y cookies o también del idioma y la ubicación, OPcache es adecuado .

.­.­.

Hojas de cálculo de Google: fórmulas desplegables

Para expandir fórmulas a columnas enteras dentro de Google Sheets, recomendamos utilizar la útil función ARRAYFORMULA . Desafortunadamente, esto no funciona en combinación con algunas otras funciones importantes como QUERY o INDIRECT , por lo que hay una programación individual completa de la lógica con la ayuda de Google Apps Script o, alternativamente, la copia manual de la fórmula hasta la última línea.

.­.­.

La paradoja de Simpson

La paradoja de Simpson es uno de los fenómenos estadísticos fácilmente comprensibles y al mismo tiempo asombrosos. Ocurre siempre que grupos de datos muestran una tendencia particular, pero esa tendencia se invierte cuando se combinan los grupos. Con la ayuda de un ejemplo simple, la paradoja se puede entender de inmediato.

.­.­.

Consejo rápido: Google Tag Manager

Google Tag Manager se ha establecido como el estándar de facto para la integración de scripts de seguimiento. De esta manera, por un lado, las responsabilidades (marketing online vs. programación) están claramente separadas y, por otro lado, puede configurar y modificar rápidamente el seguimiento a través de un canal de implementación adicional. Aquí hay dos pequeños consejos para configurar disparadores.

.­.­.

Consejo rápido: punto de acceso WLAN de FRITZ! Box

A partir de FRITZ! OS 07.10, si falla la conexión a Internet, FRITZ! Box puede utilizar temporalmente el punto de acceso inalámbrico de un teléfono móvil como alternativa. La función está oculta en Internet> Datos de acceso> Proveedor de Internet> Acceso existente a través de WLAN . El FRITZ! Box funciona entonces como un enrutador y proporciona una red con su propio rango de direcciones. Cuando Internet vuelva a estar disponible, simplemente restablezca la configuración. También tuve que marcar las opciones WLAN> Red de radio> Banda de frecuencia de 2,4 GHz activa e Internet> Datos de acceso > IPv6> Soporte de IPv6 activo .

.­.­.

La flor de la vida

La Flor de la Vida es un patrón geométrico familiar similar a una flor que se ha encontrado en templos, manuscritos y durante bastante tiempo en la cultura pop durante miles de años. El patrón también juega un papel en el esoterismo. En este punto ignoramos todo esto y nos concentramos en la construcción simple de la forma geométrica, que se compone de varios círculos superpuestos espaciados uniformemente.

.­.­.

Retraso de correo electrónico en Outlook

A pesar de todas las profecías de fatalidad en torno a Slack y Discord, el medio de comunicación asincrónico correo electrónico es el medio de comunicación dominante en el sector empresarial en todo el mundo. Además de Inbox Zero de Merlin Mann, existen muchas otras estrategias para lidiar con la avalancha diaria de correos electrónicos, incluida la llamada demora del correo electrónico, es decir, la entrega demorada de correos electrónicos.

.­.­.

Una espiral de números

Durante los últimos días, he estado investigando la siguiente pregunta en StackExchange sobre una espiral de números enteros. Estamos buscando una fórmula cerrada para las coordenadas del \(n\) -ésimo elemento en la siguiente espiral entera, que se expande desde el origen hacia afuera y más y más hasta el infinito.:

..  9 10 11 12
23  8  1  2 13
22  7  0  3 14
21  6  5  4 15
20 19 18 17 16
.­.­.

Leer derechos en Hojas de cálculo de Google

Al trabajar con Hojas de cálculo de Google , se pueden definir reglas precisas basadas en el usuario para editar hojas de trabajo, columnas y filas dentro de una hoja de cálculo. Desafortunadamente, no hay forma de restringir los derechos de lectura. Sin embargo, esto sería muy útil en muchos escenarios. Por lo tanto, solo muestra a sus clientes los tickets que les conciernen oa los empleados solo los proyectos en los que están trabajando.

.­.­.

Plug'n'play de hilo

npm es el administrador de paquetes predeterminado para Node.js. Facebook lleva mucho tiempo desarrollando una solución alternativa de gestión de paquetes llamada Yarn . Yarn parece estar desapareciendo lentamente de los archivos Léame de Github como solución estándar y las estadísticas en el sitio oficial muestran que Yarn lleva a cabo solo una fracción de los paquetes. Sin embargo, vale la pena pensar fuera de la caja.

.­.­.

Convertir PDF a LaTeX


El sistema de composición \(\TeX\) fue desarrollado en 1977 por el legendario Donald E. Knuth . El paquete de software \(\LaTeX\) sigue siendo parte del repertorio estándar al crear artículos científicos. Con las siguientes dos herramientas, los PDF ya generados y las notas escritas a mano se pueden convertir de forma totalmente automática a TeX. Los resultados son muy prometedores.

.­.­.

El argumento de la simulación

El argumento de la simulación de Nick Bostrom es impresionantemente simple y claro. No intenta probar que vivimos en una simulación, sino que formula elegantemente tres posibilidades, una de las cuales debe ser cierta. Elon Musk también defiende una tesis similar, que dio a conocer la idea a un público amplio. El documento oficial tiene más de 14 años y la misma cantidad de páginas son cortas. La declaración central es fácil de entender y compacta.

.­.­.

Error crítico al usar WPML + ACF

Los potentes complementos de WPML para multilingüismo y los campos personalizados avanzados para sus propios campos son equipos estándar en muchas instalaciones. Es molesto cuando se combinan mal funcionamiento y pérdida de datos. Los informes de errores sobre el tema tienen algunos años y no tienen respuesta ( aquí y aquí y aquí y aquí y aquí ). Acabo de echar un vistazo más de cerca al problema.

.­.­.

Carga de archivos en el navegador de aplicaciones de Facebook

En algunos teléfonos Android, tanto los navegadores de la aplicación de Facebook como los de Instagram (a partir de hoy) se comportan incorrectamente si un campo de carga dentro de una página de destino anunciada o vinculada especificaba el atributo de aceptación. Por tanto, el botón no funcionaba. Si abre la página en el navegador normal externo fuera de la aplicación de Facebook, todo está bien. Esto es molesto (especialmente porque se ha informado durante mucho tiempo ), pero se puede solucionar con una solución.

.­.­.

Herramientas de desarrollo de Chrome: mover elementos DOM

Las herramientas para desarrolladores de Google Chrome se encuentran entre las más poderosas del mercado de navegadores. Cada mes llegan nuevas funciones, que Google presenta en forma comprimida en YouTube . Pero a menudo son las pequeñas cosas de la vida las que deleitan. Si desea eliminar elementos DOM en Google Chrome, puede hacerlo con la tecla Eliminar. Pero solo hoy noté que los elementos DOM también se pueden mover fácilmente usando arrastrar y soltar:

.­.­.

Consejo rápido: estado de git --r

Una regla de oro en el universo de git es: "Comprométete temprano y con frecuencia". Si la noche fue un poco más larga o si solo desea una descripción general de la situación actual en su propia computadora, el comando lo lleva

d8a38f92d0baa14f9d4568826c13ad46

un "estado de git" para todos los repositorios que están en la carpeta actual o en cualquier subcarpeta y agrega los valores en una descripción general agradable:

.­.­.

Pila LAMP en el subsistema de Windows para Linux

Al buscar el entorno de desarrollo óptimo, Windows 10 ofrece soluciones completas como XAMPP , WAMP y MAMP , instalación nativa a mano y soluciones de virtualización como Vagrant ( Scotch Box ) y Docker ( Devilbox , Laradock ). Pero debido a mis requisitos, como la capacidad de configuración gratuita, los certificados SSL comodín reales, el acceso desde todos los dispositivos finales en la red local, así como una alta estabilidad y rendimiento, todas las soluciones fallaron, excepto una.

.­.­.

Trucos para las relaciones elocuentes de Laravel

Uno de los puntos fuertes de Laravel es su elegante sintaxis. Si tiene muchos modelos y relaciones en Laravel (debido a muchas tablas en la base de datos), atravesar a menudo puede terminar en un código menos elegante. Con el paso del tiempo, tres pequeñas extensiones han demostrado su utilidad para mí, que quiero presentar brevemente a continuación. Solo usamos herencia, métodos mágicos y colecciones personalizadas.

.­.­.

Impedir el acceso público a .git

Gestión de versiones Git ahora es estándar en casi todos los proyectos web y en todos los entornos (incluida la producción). Git siempre crea la subcarpeta .git y si está en el nivel de la carpeta pública del sitio web, puede acceder públicamente a archivos confidenciales (por ejemplo, llamar a /.git/logs/HEAD muestra las últimas confirmaciones) . Se explica con detalle cómo se puede clonar a un tercero (!) Repositorio Git sin un listado de directorios.

.­.­.

Node.js / npm / Composer sin root

En una publicación de blog anterior, describí cómo alojar Node.js de forma gratuita con Heroku . Ahora le mostraré una forma de instalar Node.js , npm y Composer en cualquier otro host compartido sin derechos de root con unas pocas líneas de código. Con él puede instalar paquetes, implementar aplicaciones Vue.js o simplemente iniciar un servidor Express.js. Siempre trabajamos en el directorio de usuarios y usamos nvm - el Node Package Manager.

.­.­.

Error en matrices asociativas en PHP <7.2

En PHP <7.2 puede crear matrices a las que ya no se puede acceder correctamente:

91367d1c4636fd753b381406024e303c

Puedes hacer algunas cosas con él.

.­.­.

Ejecute comandos directamente después de la conexión SSH

El siguiente comando establece una conexión a un servidor a través de SSH, ejecuta algunos comandos (por ejemplo, cambia a un subdirectorio y envía un estado de git ) y deja el shell abierto. Se carga el archivo .bashrc, que habilita subcapas de colores. El truco consiste en guardar un archivo temporal / tmp / initfile con los comandos deseados, para iniciar un subshell (en nuestro caso bash) con el comando --init-file. Dentro de este archivo de inicio, el mismo archivo se elimina de nuevo inmediatamente para no dejar ningún rastro.

.­.­.

Unidad de red como administrador

Si integra una unidad de red en el Explorador de Windows, esto no se aplica a todo el sistema, sino solo a la cuenta de usuario actual. Esto significa que no puede acceder a esta unidad de red en una aplicación que se ejecuta con derechos de administrador. Esto se puede cambiar fácilmente: Cree un nuevo DWORD (32 bits) llamado EnableLinkedConnections con el valor 1 en el registro en HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System y reinicie. Las unidades de red integradas son visibles en todas partes.

.­.­.

Consejo rápido: incluya la carpeta como unidad

Si desea acceder rápidamente a una carpeta local en Windows que usa una y otra vez, simplemente puede asignarle su propia letra de unidad. Solo hay un desvío a través de "Conectar unidad de red" porque no puede especificar la ruta C: \ Usuarios \ David \ Descargas, por ejemplo. Como solución, ingrese el llamado recurso compartido administrativo de la unidad, que existe de manera predeterminada para cada carpeta: en el ejemplo anterior, esto sería \\ localhost \ c $ \ Users \ David \ Downloads .

.­.­.

Atrapa ranas

Una rana salta sobre la recta numérica y tú intentas atraparla. Saltar y atrapar siempre se alternan. La rana comienza en la posición \(s \in \mathbb{Z}\) y con cada movimiento salta una distancia de \(z \in \mathbb{Z}\) (si \(z>0\) , salta hacia la derecha, de lo contrario si hacia la izquierda). \(z\) es el mismo para cada salto. El ajuste consiste en especificar una posición entera. Uno no conoce ni \(z\) ni \(s\) . Demostramos que hay una forma de atrapar siempre la rana.

.­.­.

Nombres de archivo largos en Windows 10

No es solo al usar npm en Windows que se encuentra con un límite que ahora tiene casi 30 años, lo que restringe las rutas a carpetas y archivos a un máximo de 255 caracteres. Esto no es culpa de NTFS, sino de LFN . Esto conduce a errores molestos e incompatibilidad entre sistemas operativos. En tiempos de WSL, esta es una condición lamentable, que afortunadamente puede arreglar usted mismo en el registro durante algún tiempo.

.­.­.

Colas de Laravel en localhost

En el framework PHP Laravel dentro de entornos productivos, los trabajadores y supervisores se aseguran de que los trabajos almacenados en Redis, por ejemplo, sean procesados. Si desea ser completamente independiente de esto en localhost, use el controlador de sincronización para ejecutar siempre los trabajos de inmediato. Esto tiene la desventaja de que el proceso PHP actual está bloqueado y la solicitud se cuelga hasta que se procesa el trabajo.

.­.­.

Consejo rápido: agrupe los objetivos en Google Analytics

Con la ayuda de la biblioteca de JavaScript analytics.js de Google Analytics, se puede rastrear cualquier evento en los sitios web. Estos eventos son, por ejemplo, una medida exacta de la duración de la estadía, la profundidad máxima de desplazamiento de los visitantes u otras acciones individuales como el envío de formularios. Si desea evaluar campañas publicitarias o realizar pruebas A / B más adelante, por ejemplo, crea los denominados proyectos objetivo.

.­.­.

Invalidación pragmática de caché

La renderización del lado del servidor es ahora parte del repertorio estándar de sitios web y aplicaciones. Los navegadores como Google Chrome también tienden a almacenar en caché tanto como sea posible para minimizar los tiempos de carga de llamadas posteriores. La invalidación de caché de archivos de imagen CSS / JS / puede ser resuelto con la ayuda de mod_pagespeed , Expira / control de caché de cabecera, un manifiesto de caché o muy pragmática y directamente a través de los parámetros individuales después del nombre de archivo.

.­.­.

Bitbucket y claves SSH

El proveedor Bitbucket no ofrece (ni siquiera en las tarifas Standard y Premium de pago) la posibilidad de almacenar claves SSH con derechos de escritura a nivel de repositorio. Almacenar su clave SSH personal en el servidor de producción no es una opción; de lo contrario, puede acceder a todos los demás proyectos en los que está trabajando actualmente desde allí. Existen las llamadas claves de acceso , pero estas solo permiten derechos de lectura.

.­.­.

Windows Sysinternals a través de una unidad de red

Las herramientas de Sysinternals de Mark Russinovich no deberían faltar en ninguna computadora con Windows. Si siempre desea tener la última versión a mano, puede integrarla como una unidad de red. El comando net use s: \\ live.sysinternals.com \ DavWWWRoot en la línea de comando es suficiente (como un usuario normal). Buenas herramientas como PsList, PsKill o Process Explorer están disponibles en la unidad S.

.­.­.

Consejo rápido: Google Sheets y Calendar Weeks

Al generar semanas de calendario en una fecha específica, debe tener cuidado en Google Sheets (al igual que en Microsoft Excel). La función = SEMANA CALENDARIO (HOY ()) calcula utilizando el estándar americano, para el cual el primer día del año siempre se asigna a la semana 1 del calendario. En Alemania, esto se define de manera diferente: aquí, la primera semana del calendario es la semana a partir de la cual al menos 4 días caen en el nuevo año. En Google Sheets puedes resolver el problema (junto con otras alternativas interesantes como = ACORTAR ((HOY () - FECHA (AÑO (HOY () - DESCANSAR (HOY () - 2; 7) +3); 1; DESCANSAR (HOY ( ) -2; 7) -9)) / 7) y el = CALENDAR WEEK modificado (TODAY (); 21) ) fácilmente con la función especialmente diseñada = ISOWEEKNUM (TODAY ()) .

.­.­.

Certificados SSL autofirmados en Chrome 58

Desde Let's Encrypt , los sitios web cifrados ahora son estándar. Incluso con el desarrollo local, los certificados SSL se han vuelto indispensables (por ejemplo, navigator.geolocation requiere cifrado SSL localmente). Desde la versión 58 de Chrome, se ha abandonado el soporte para CN (Nombre común) y SAN (Nombre alternativo del sujeto) se ha hecho obligatorio. Como resultado, Chrome de repente ya no acepta todos los certificados SSL creados de forma convencional .

.­.­.

Dos veces la edad de dos personas

Considere dos personas \(A\) y \(B\) que no nacieron el mismo día y \(A\) más joven que \(B\) . Mostrar: Hay exactamente dos constelaciones de edad \(a,b \in \mathbb{N}\) , para las cuales se aplica: \(2\cdot a = b\) . Primero establecemos \(d \in \mathbb{R}^+\) como la diferencia de edad entre \(A\) y \(B\) al nacimiento de \(A\) con \( d = d_0 + d_1 \) , \( d_0 \in \mathbb{N}_0, d_1 \in \mathbb{R}, d_1 \in [0;1[\) . Ahora consideramos un punto arbitrario en el tiempo \(x \in \mathbb{R}^+\) después del nacimiento de \(A\) con \(x = x_0 + x_1\) , \(x_0 \in \mathbb{N}_0, x_1 \in \mathbb{R}, x_1 \in [0;1[\) .

.­.­.

Git y carpetas vacías

Dado que Git no conoce carpetas, solo archivos, las estructuras de carpetas vacías no terminan en el repositorio. Sin embargo, dado que muchos marcos y proyectos necesitan absolutamente esto, deberían terminar allí. Una práctica común es crear los llamados archivos de marcador de posición (a menudo llamados .gitkeep), que especifican implícitamente la estructura de la carpeta. Estos archivos se pueden crear fácilmente y, si lo desea, también asegurarse de que se ignoren otros archivos de las carpetas.

.­.­.

Alojamiento gratuito de Node.js con Heroku

El alojamiento para Node.js todavía no está muy extendido, especialmente en los países de habla alemana. La empresa estadounidense de nube Heroku ofrece una solución aquí, e incluso de forma gratuita . Siempre notas el paradigma "Construye aplicaciones ... no infraestructura" y todavía tienes pocas restricciones. Como ejemplo, estamos implementando un pequeño trabajo cron basado en PhantomJS , que borra un sitio web todos los días y envía el título de la página por correo electrónico.

.­.­.

Función de emparejamiento de Cantor

Además de los argumentos diagonales , Georg Cantor también desarrolló la función de emparejamiento de Cantor \(\mathbb{N}^2 \to \mathbb{W}, \quad c(x,y) = \binom{x+y+1}{2}+x = z\) , que codifica dos números cualesquiera \(x,y \in \mathbb{N}\) en un nuevo número \(z \in \mathbb{N}\) . Por ejemplo, \(c(3,4)=\binom{3+4+1}{2}+3 = \binom{8}{2}+3=\frac{8!}{6!\cdot 2!} +3 = 31 = z\) una codificación única de los números \(3\) y \(4\) en el número \(31\) . Mostrar: El conjunto de valores \(\mathbb{W} = \mathbb{N}\) , es decir, \(z\) asume todos los números naturales.

.­.­.

La tierra y el guisante

\(r_1 = 6370km\) la tierra (como una esfera con \(r_1 = 6370km\) ) y un guisante (como una esfera con \(r_2 = 2mm\) ) y \(r_2 = 2mm\) una cuerda sobre el ecuador de modo que quede firme en la superficie. Ahora alarga ambas cuerdas un metro cada una. Ambas cuerdas ahora deberían estar completamente extendidas sobre el ecuador nuevamente; ya no están completamente en la superficie, sino que flotan sobre el ecuador. ¿A qué altura sobre la superficie flota la cuerda sobre la tierra, qué altura sobre el guisante?

.­.­.

Probabilidades en el reloj analógico

¿En qué porcentaje del tiempo del día están las tres manecillas de un reloj analógico en la mitad derecha de la esfera? Primero, considere la manecilla de las horas, que está en el lado derecho cada 12 de las 24 horas (50%). A partir de este momento, el minutero estará a la derecha en 6 de 12 horas (25%). De estas 6 horas, el segundero pasa 3 horas en el lado derecho (12,5%).

.­.­.

Laravel: Trabajar con relaciones elocuentes

Laravel facilita mucho la comunicación con la base de datos con Eloquent. Cuando trabaje con Eloquent Relationships , debe tener en cuenta al llamar a variables dinámicas (con la ayuda de los métodos mágicos de PHP) que las instancias de los modelos no reflejan nuevos cambios, sino que se almacenan permanentemente cuando se llaman por primera vez.

.­.­.

Bitbucket: eliminar carpeta del historial de Git

Al alojar Git en Bitbucket, hay un límite estricto de 2 GB; si se excede, solo tiene acceso de solo lectura al repositorio. Para evitar esto, puede, por ejemplo, eliminar de forma retroactiva carpetas o archivos grandes de sus confirmaciones. Pero también en otros casos (si los datos de acceso ingresaron al historial o node_modules se han deslizado hacia el maestro), debe manipular retrospectivamente el historial de Git, al contrario de su naturaleza.

.­.­.

Integre el certificado SSL de DomainFactory en IIS

En la era de Let's Encrypt , los sitios web encriptados ahora son estándar. Sin embargo, a menudo también se requieren certificados comodín o extendidos con una validación de propietario particularmente confiable. El proveedor DomainFactory ofrece certificados SSL económicos que también se pueden utilizar externamente. La configuración en un IIS actual se realiza sin CSR con la ayuda de OpenSSL . A continuación, mostraré brevemente qué pasos se requieren para esto.

.­.­.

Estrategia ganadora paradójica al adivinar números

Thomas M. Cover hizo la siguiente pregunta asombrosa en 1987 en "Problemas abiertos en comunicación y computación": El jugador \(X\) escribe dos números naturales \(A\) y \(B\) diferentes y elegidos al azar en dos números diferentes Trozo de papel y ponerlo boca abajo sobre una mesa. El jugador \(Y\) ahora selecciona al azar uno de estos trozos de papel, ve el número y ahora tiene que decidir si este número es menor o mayor que el otro número que todavía está en la mesa.

.­.­.

Fútbol y álgebra lineal

Cuando comienza un partido de fútbol, ​​la pelota descansa en el centro del campo y luego se mueve alrededor del campo durante 45 minutos moviéndose y girando. Al comienzo del segundo tiempo, el balón vuelve a estar en el centro del campo. Demostramos con medios simples de álgebra lineal que o un número infinito de puntos en la superficie están siempre exactamente en la misma posición que en el estado original o exactamente 2.

.­.­.

Laravel: depuración de plantillas Blade

Al depurar plantillas blade en Laravel 5. *, a menudo aparecen mensajes de error sin sentido que se refieren a las vistas almacenadas en caché. En el pasado, todos eran mejores: la vista de depuración en la versión 4 contenía funciones más útiles y también era visualmente más agradable. Con unas pocas líneas de código puede recuperar esta funcionalidad con la ayuda de whoops ("Errores de PHP para niños geniales").

.­.­.

Visualización armoniosa de logotipos con JavaScript

Ya sean referencias, socios o clientes, hay muchos casos en los que desea mostrar varios logotipos uno al lado del otro de manera armoniosa. Las proporciones de los logotipos son en su mayoría inconsistentes. A menudo, sigue su instinto para la representación del tamaño en el diseño, pero también existe un método de cálculo exacto para una representación visualmente atractiva equiparando las áreas de los logotipos. En el siguiente ejemplo, puede hacer esto con solo unas pocas líneas de JavaScript.

.­.­.

Verifique las variables en PHP / JS para la existencia

Cuando se trabaja con variables en PHP y JavaScript, a menudo uno se encuentra con la consulta de si una variable está vacía. Vale la pena conocer las funciones nativas y sus diferencias para fines de verificación. Es molesto que no haya una manera fácil de comprobar intuitivamente si una variable está presente o no. La siguiente matriz ilustra lo que se quiere decir con esto. Sin embargo, lo que desee se puede adaptar mediante pequeñas funciones auxiliares.

.­.­.

Llamadas telefónicas masivas con sipgate.io

Sipgate ha creado una emocionante API en la nube con sipgate.io , con la que se tiene una multitud de posibilidades en torno a la telefonía por Internet. Una cuenta es gratuita y también existe la opción de configurar cualquier número de remitente gratuito en la Tienda de funciones de forma gratuita. La documentación de sipgate.io aún se puede expandir, pero con un poco de lectura en la API oficial de Sipgate , puede darse cuenta rápidamente de cosas interesantes.

.­.­.

Recursión en SQL

Los sistemas de gestión de bases de datos relacionales basados ​​en SQL solo son adecuados condicionalmente para consultas jerárquicas o recursivas. Otros sistemas como ArangoDB son mejores aquí (hubo una gran charla sobre esto en GOTO 2016 ). Pero también puede generar consultas recursivas en SQL con la ayuda de expresiones de tabla comunes y, por lo tanto, consultar tablas clásicas padre / hijo para todos los antepasados ​​y descendientes.

.­.­.

WordPress: desactivar páginas de archivo

Según w3techs.com , alrededor del 27,4% de todos los sitios web en todo el mundo se operan actualmente con la ayuda de WordPress. En muchos casos, estos no son blogs. WordPress genera automáticamente numerosas URL, a menudo no utilizadas, y produce tantos enlaces indexados por Google que el operador del sitio web ni siquiera tenía en la pantalla. Todo esto se puede desactivar con un simple comando.

.­.­.

Cambiar el nombre de los campos de formulario PDF de forma masiva

Si, como yo, se mete en el problema de cambiar el nombre de miles de nombres de campos de formulario, la consola JavaScript incluida en Acrobat es ideal. En esto, no solo puede ejecutar cualquier código JavaScript, sino también acceder a todo el contenido dentro del PDF (incluidos los campos de formulario). Dado que no hay una función nativa para cambiar el nombre en la API de JS, los campos del formulario con todas sus propiedades se copian y se les da un nuevo nombre.

.­.­.

Shopware: reparación de cambios de variante

En Shopware 5, todavía no se ha resuelto un problema conocido: si crea un artículo con variantes mutuamente dependientes con opciones de configuración mutuamente excluyentes, puede suceder que algunas combinaciones no se puedan seleccionar en la interfaz y, por lo tanto, no se puedan pedir. Con la ayuda de un complemento, el problema se puede solucionar fácilmente en este momento.

.­.­.

Una línea para el infinito de números primos

Existen numerosas pruebas de la infinidad de números primos: el conocido teorema de Euclides del Libro de los Elementos no falta en ningún curso básico de teoría de números. En el American Mathematical Monthly (número 122) de 2015, Sam Northshield publicó una prueba de contradicción no menos elegante en forma de una línea, que no quiero ocultarles (con breves comentarios).

.­.­.

Ilumina la línea de comandos de Windows

El aburrido símbolo del sistema de Windows se puede actualizar visualmente en unos simples pasos. Por lo tanto, no solo puede ajustar el color y el tamaño de la línea de comando, sino también expandirla funcionalmente (aumentando el búfer, instalando un gran conjunto de herramientas UNIX). El símbolo del sistema no se acerca a PowerShell 6.0 o al nuevo Windows 10 Bash Shell , pero no es necesario que se oculte para las tareas diarias.

.­.­.

URL dinámicas en Joomla

En los sistemas de gestión de contenido, las URL a menudo no siempre se fijan de antemano y, por lo tanto, no se crean estáticamente de antemano (como una contribución o elemento de menú), sino que se dirigen a objetos de la base de datos. De manera similar a WordPress ( como se describe aquí ), también es posible en Joomla construir estructuras URL dinámicas (independientemente del sistema de alias interno). O JRouter es ideal para esto, o puede usar una línea en el .htaccess.

.­.­.

JavaScript PasteJacking

Con la ayuda de JavaScript, los navegadores modernos pueden leer y escribir en el portapapeles del usuario, es decir, también pueden manipularlo. La tecnología subyacente ya es obsoleta, pero solo recientemente han estado circulando por Internet más y más ataques (bajo el nombre de "PasteJacking"), que aprovechan esta posibilidad para el usuario sin experiencia. Una implementación en JavaScript es banal.

.­.­.

Intercambiar columnas en PostgreSQL

El intercambio de columnas de la tabla SQL es parte del repertorio estándar con MySQL; esto (todavía) no es compatible con PostgreSQL. Aunque la wiki oficial dedica su propio artículo al problema, no muestra ninguna solución práctica que también admita vistas, índices y disparadores. La siguiente clase hace este trabajo (tanto para MySQL como para PostgreSQL) ya sea en la línea de comando, o alternativamente directamente en Laravel 5.

.­.­.

Sugerencia rápida para el Explorador de Windows

Si desea abrir rápidamente el símbolo del sistema en una carpeta en el Explorador de Windows, haga clic (un nivel más alto) con el botón derecho del mouse y mantenga presionada la tecla Mayús en la carpeta y luego seleccione "Abrir símbolo del sistema aquí" en el menú contextual. Acabo de descubrir otro método más rápido cuando estás dentro de la carpeta: aquí haces clic en la ruta de la carpeta actual, escribes "cmd" y confirmas con Enter.

.­.­.

Categorías de WordPress: Vista de árbol / Herencia

Si trabaja con categorías jerárquicas (taxonomías) en WordPress, notará que, por un lado, la visualización de las categorías marcadas en el backend es confusa y, por otro lado, las publicaciones no terminan automáticamente en la categoría principal si se colocan en la categoría secundaria. Ambos se pueden enderezar con unas pocas líneas de código utilizando el potente sistema de enganches (en forma de acción y filtro).

.­.­.

PHP 7 y el operador de nave espacial

Además de las nuevas funciones, como la sugerencia de tipo para tipos de datos escalares o el rendimiento optimizado , PHP 7 también trae muchas extensiones de lenguaje nuevas y útiles. El "Spaceship Operator" finalmente ha entrado en el mundo de PHP (los programadores de Ruby y Perl lo conocen desde hace mucho tiempo). \($a <=> $b\) devuelve \(0\) si y solo si ambos operandos son iguales, \(1\) si el de la izquierda es mayor y \(-1\) caso contrario.

.­.­.

IIS 7.5 PHP FastCGI tiempo de espera

Si integra PHP a través de FastCGI en IIS 7.5, cada script se cancela después de 600 segundos (10 minutos) de forma predeterminada. Un cambio de la variable conocida "max_execution_time" en php.ini no tiene ninguna influencia en esto, usted (también) tiene que ajustar la configuración de FastCGI. Para ello, el IIS ofrece una cómoda interfaz para gestionar las variables relevantes.

.­.­.

Paradoja de la estocástica

La teoría de la probabilidad condicional implica tareas hermosas con soluciones contradictorias. Además del conocido problema de los hermanos , ahora me ocuparé brevemente de otro ejemplo: "Ahora tengo dos hijos. Uno de ellos es un niño y nació un jueves. ¿Cuál es la probabilidad de que el otro niño también sea un niño?"

.­.­.

Git, Shopware y carpetas vacías

El sistema de control de versiones de archivos Git es sencillo, rápido y portátil. Git siempre maneja objetos, es decir, archivos. Las carpetas solo se crean si hay archivos en ellas, de lo contrario, Git ni siquiera las grabará. Esto tiene efectos secundarios desagradables en algunos proyectos. Por ejemplo, el sistema de la tienda Shopware se basa en un estricto cumplimiento de la estructura de carpetas para funcionar.

.­.­.

Shopware: Gastos de envío individuales

Shopware tiene un poderoso módulo de costos de envío en el que puede intervenir específicamente en el cálculo. En nuestro caso, queremos implementar el siguiente escenario: Los gastos de envío por artículo se determinan inicialmente en función del peso del artículo (se especifican los límites de peso). Solo para excepciones especiales debería ser posible establecer costos de envío fijos para cada artículo.

.­.­.

Enlaces permanentes dinámicos en WordPress

El sistema de enlaces permanentes de WordPress se puede adaptar muy bien a sus propias necesidades con la ayuda de etiquetas de estructura . La configuración% postname% es probablemente la solución más común y práctica. Sin embargo, si desea implementar enlaces dinámicos reales, primero debe expandir el sistema con su propio código.

.­.­.

Hipervínculos corruptos en Word y Excel

Uno pensaría que al abrir hipervínculos desde un documento de Word / Excel, el navegador estándar se inicia con la URL deseada. Por extraño que parezca, este no es el caso, lo que provoca efectos secundarios desagradables y hace que los enlaces para páginas protegidas por sesión / basadas en cookies en dichos programas de oficina sean imposibles.

.­.­.

Una paradoja para el día del padre

Para el Día del Padre de hoy, una hija le está regalando a su padre un cuadro que ella misma pintó y que su padre había anhelado. La hija dice: "Te daré la foto que has deseado y mi regalo será una sorpresa". El padre hace una pausa y reflexiona sobre la verdad de esta declaración.

.­.­.

Integre scripts dinámicos con y sin HTTPS

Si incluye scripts no cifrados en el área <head> y abre una página con un certificado SSL existente cifrado, estos scripts se bloquean y, por lo tanto, no se ejecutan. Si simplemente omite el protocolo, todos los scripts se invocan automáticamente en forma encriptada si se accede al sitio web a través de https: //; de lo contrario, no se encripta.

.­.­.

Usabilidad en menús desplegables

Cuando se trabaja con menús desplegables multidimensionales, a menudo uno se encuentra con el problema de que se abren accidentalmente submenús incorrectos o se cierra accidentalmente el submenú deseado. Este efecto ocurre cuando el puntero del mouse sale del menú correspondiente en el nivel superior mientras se navega a un submenú ya expandido.

.­.­.

Shopware: Desactivar variantes automáticamente

En Shopware , todo el artículo se desactiva en el caso de un pedido real si todas las variantes tienen un nivel de stock menor o igual a 0. Para implementar esto de manera variada, programé un pequeño complemento, cuyo Bootstrap.php proporciono a continuación.

.­.­.

Consulta de doble contraseña con SSL

La siguiente constelación siempre tiene un efecto secundario desagradable: si protege su sitio con htaccess / htpasswd y al mismo tiempo fuerza una conexión SSL, siempre necesita que se ingrese la misma contraseña dos veces (una vez para http y otra después de una entrada exitosa para https). Con la ayuda de las secciones de configuración introducidas en Apache 2.4, el problema puede resolverse fácilmente.

.­.­.

Cadenas de varias líneas en JavaScript

Al programar con JavaScript, a menudo uno se tropieza con la incapacidad de implementar cadenas de varias líneas al ingresarlas en varias líneas en el código. Si bien la tarea en otros lenguajes como PHP o Ruby no es un problema, con JavaScript inicialmente solo puede solucionarse con soluciones, cuyo uso lo decide el gusto personal o el soporte del navegador.

.­.­.

mail () en PHP con UTF-8 y diéresis

El envío de correos electrónicos con PHP se implementa mejor con clases poderosas como PHPMailer . Las prácticas funciones de envoltura hacen posible utilizar contenido UTF-8, incrustar imágenes y enviar archivos adjuntos cifrados con solo unas pocas líneas de código. Si desea ahorrarse la sobrecarga y, contrariamente a la recomendación, usa la función PHP mail () , tendrá problemas al usar diéresis y UTF-8 a más tardar.

.­.­.

Google PageSpeed ​​Insights vs. Google analitico

Las herramientas de validación, como el servicio de validación de marcado W3C o Google PageSpeed ​​Insights, son útiles para evaluar objetivamente el código y el rendimiento de un sitio web. Google, en particular, influye en toda una industria con conceptos como la mitad superior de la página y también proporciona pautas estrictas pero útiles para la compresión y el almacenamiento en caché de imágenes. Pero puede suceder que Google pise por sí solo.

.­.­.

Bienvenido JavaScript 2.0

JavaScript domina la web y ECMAScript, el núcleo del lenguaje está creciendo. La nueva especificación (ES6 o JS2), que se espera para mediados de este año, trae consigo numerosas innovaciones que ya se pueden probar hoy. Actualmente, Firefox tiene el mejor soporte , pero también son posibles los polyfills a través de los llamados transpilers como Google Traceur . A continuación, se ofrece una breve descripción general de las nuevas funciones de ES6.

.­.­.

0,99999... = 1?

Ya sea en la escuela o en la universidad: una pregunta interesante que \( 0,99999... = 1 \) cuando incluye la pregunta de si la siguiente ecuación es cierta: \( 0,99999... = 1 \) . Aunque el infinito \(0,99999... = A\) en la parte izquierda de la ecuación, le damos un nombre: \(0,99999... = A\) . Después de la multiplicación por el factor \(10\) y las transformaciones algebraicas simples, obtenemos una primera idea asombrosa.

.­.­.

SQL: bajo rendimiento a pesar del índice

Acabo de enfrentarme al siguiente problema de rendimiento de una base de datos SQL: En una tabla SQL llamada "usuarios" con ~ 1,000,000 de entradas, tomó 28 segundos inaceptables para determinar el número de registros hoy. Los tiempos de los registros se guardaron en el formato “Ymd H: i: s” en la columna “creado”.

.­.­.

Pequeño problema de ajedrez

Además del conocido problema del caballo y el problema de la reina, hay muchas otras preguntas interesantes en el mundo del ajedrez. Toqué dos pequeñas curiosidades en una entrada de blog anterior. Si se ocupa matemáticamente de problemas de ajedrez, descubrirá rápidamente que las matemáticas dan respuestas muy sencillas y esclarecedoras para muchas preguntas.

.­.­.

Archivos disponibles en línea con OneDrive

Si OneDrive, Dropbox, Google Drive, OwnCloud, Box.net: Independientemente de la caja en la que guarde sus archivos, los servicios son casi los mismos. Los clientes disponibles para todos los sistemas de escritorio y móviles, los archivos no cifrados estándar y las opciones para compartir difieren solo marginalmente. Pero OneDrive, que se ha integrado permanentemente en el sistema desde Windows 8.1, tiene una característica especial: solo archivos disponibles en línea.

.­.­.

PHP: acceso a archivos con diéresis en Windows

Los archivos en los servidores web siempre deben estar sin espacios (no "esto es una imagen.jpg"), sin diéresis ni caracteres especiales (no "fútbol.jpg"), sin barras invertidas (no "Arbeit \ Auto.jpg") y en minúsculas (no "" test.JPG "). Recientemente, sin embargo, tuve que acceder y procesar una gran cantidad de archivos con cualquier nombre de archivo para un proyecto de cliente.

.­.­.

Consulta SQL para determinar una lista de clasificación

Hoy me encontré con la siguiente tarea mientras trabajaba en el proyecto de un cliente: tome un "usuario" de la tabla SQL con las columnas "id" y "puntuación" y determine una clasificación de todos los usuarios según la "puntuación" en la que los usuarios con el obtener el mismo ranking con la misma puntuación. Esta tarea se puede resolver de forma intuitiva y sencilla mediante el uso de variables definidas por el usuario .

.­.­.

SDK de Facebook: verifique los tokens en el lado del servidor

Cuando se trabaja con el SDK de Facebook (más precisamente cuando se implementa una función de inicio de sesión de Facebook dentro de una interfaz REST), el token transmitido, que el cliente recibió de Facebook, debe ser verificado primero por el servidor para verificar su validez antes de que se lleven a cabo más operaciones. .

.­.­.

Chrome DevTools: abordar elementos DOM

Ya sea Chrome, Firefox, Opera, Safari o incluso Internet Explorer: si bien las herramientas de desarrollo bien diseñadas fueron un punto de venta único de Firefox y el popular complemento de Firebug hasta hace unos años, las potentes herramientas de desarrollo ahora forman parte del alcance estándar de todos los navegadores en los que hay mucho por descubrir. da.

.­.­.

Acceso al sistema de archivos mediante SQL

Acabo de encontrar una buena opción en MySQL para acceder al sistema de archivos y obtener información valiosa, por ejemplo, sobre la existencia de archivos y carpetas o su contenido. Esto puede ser muy útil como alternativa a la función php file_exists , ya que la información sobre la existencia de los archivos aún se puede usar en la consulta para funciones adicionales de clasificación y agregación.

.­.­.

Fondos animados con lienzo

Los fondos vectoriales animados pueden agregar variedad a un paisaje web caracterizado por fotos y videos en pantalla completa. Sería bueno si esto fuera de la mano de tiempos de carga y un amplio soporte de hardware y software. Una solución es: lienzo. El elemento HTML controlado por JavaScript es compatible con todos los navegadores actuales y se reproduce con alto rendimiento en dispositivos móviles.

.­.­.

Relación de aspecto fija para elementos HTML

Como desarrollador web, a menudo uno se avergüenza de trabajar con elementos HTML que por sí mismos, en contraste con el elemento img, por ejemplo, no tienen un tamaño fijo ni una relación de aspecto fija. A menudo desea lograr que estos objetos se comporten de manera receptiva, pero se mantiene la proporción entre ancho y alto. CSS no ofrece una solución intuitiva aquí de forma predeterminada. Pero con la ayuda de la propiedad de relleno vertical puede lograr su objetivo.

.­.­.

Fallo judicial sobre el uso de fotografías de archivo

Después de que el Tribunal Regional de Colonia retrocediera en el escándalo de RedTube la semana pasada y nunca se le permitió aprobar la publicación de las controvertidas direcciones IP, emite otro juicio altamente controvertido y cuestionable con la decisión 14 O 427/13: El autor de Stock- Las fotos de una determinada agencia de fotografía también deben ser nombradas a través del acceso directo a sus imágenes a través de su URL.

.­.­.

Adiós Block & Inline - Bienvenido HTML5

Las innovaciones de la especificación HTML5 son numerosas y muchas de ellas ya son compatibles con la mayor parte del panorama del navegador; a continuación, quiero resaltar un cambio interesante en las reglas para anidar elementos. HTML siempre ha distinguido entre elementos de bloque y en línea. La definición de tipo de documento de HTML4, por ejemplo, nombra h1, p y div como elementos de bloque y a, span, img como elementos en línea.

.­.­.

Registro HTTP en IIS y Apache

Tanto Apache en Unix como IIS en los sistemas Windows registran solicitudes HTTP listas para usar en forma de archivo. Las solicitudes a su propio sitio web no solo deben evaluarse y analizarse periódicamente de forma manual y automática (por ejemplo, mediante analizadores de archivos de registro como AWStats ) para protegerse contra ataques de piratería. Las rutas de los archivos de registro relevantes en configuraciones ampliamente utilizadas son, por ejemplo, las siguientes:

  • /var/log/apache2/access.log (Ejemplo: Ubuntu 12.04, Apache 2.2)
  • C:\inetpub\logs\LogFiles\W3SVC1\u_ex<YYMMDD>.log (Ejemplo: Windows Server 2012 R2, IIS 8.5)
.­.­.

Joomla, IIS y los derechos de directorio

Cuando se integra Joomla 3.2 en un Windows Server 2008 R2 con IIS 7.5, a menudo surgen problemas con los derechos de directorio, que a menudo se resuelven de manera inadecuada con configuraciones que se eligen con demasiada generosidad. La siguiente solución es segura y completamente funcional:

  • El grupo IIS_IUSRS necesita los derechos para C: \ inetpub \ wwwroot \: leer y ejecutar, mostrar el contenido de la carpeta, leer, escribir
  • El grupo IIS_IUSRS necesita los derechos para C: \ Windows \ Temp \: Leer y ejecutar, Mostrar el contenido de la carpeta, Leer, Escribir
  • El usuario IUSR debe estar en el grupo IIS_IUSRS (Administración de equipos> Usuarios y grupos locales> Grupos)

Si necesita más derechos de directorio especiales para todos los archivos cargados a través de PHP (por ejemplo, para SSH o FTP), también puede configurarlos para la carpeta C: \ Windows \ Temp \. Si carga un archivo a través de PHP, PHP primero copia este archivo en la ruta temporal y luego en la ruta final. Si el archivo ha aterrizado en el directorio temporal, hereda sus derechos y los retiene después de pasar al directorio final.

.­.­.

Anónimo en línea: ¿Imposible?

En tiempos del escándalo de la NSA, no son solo los usuarios expertos en redes los que se preguntan si se puede navegar por Internet de forma anónima y cómo se puede escapar del frenesí de recopilación de datos de las autoridades y los servicios secretos. Sin embargo, esto a menudo conduce a errores y suposiciones incorrectas. Un error fundamental es la reducción del anonimato a la ofuscación de la dirección IP.

.­.­.

McFIT - nuevo logo, nueva imagen

La cadena de fitness con descuento McFIT se ha renovado. Mientras que una mascota de color amarillo brillante en forma de plátano adornaba las letras azules, un lazo amarillo sobre un fondo de color antracita ahora se enlaza hábilmente entre sí y forma así una estructura abstracta. Los colores FDP azul y amarillo dan paso no solo al logotipo, sino también a todos los demás elementos impresos de la marca McFIT.

.­.­.

Photoshop: viaje en el tiempo

Cuando los hermanos Thomas y John Knoll comenzaron a desarrollar Adobe Photoshop en 1987, yo aún no había nacido. Hoy, en 2013, el software es uno de los programas más populares en general y el líder indiscutible del mercado de procesamiento de imágenes. Gracias a Adobe y al Computer History Museum, el software ahora se conservará para la posteridad de una forma muy especial.

.­.­.

Curiosidades en el juego de reyes

El ajedrez ha fascinado a la gente durante siglos: sus reglas son fáciles de aprender y su increíble profundidad solo es accesible para jugadores experimentados (desafortunadamente ninguno de ellos). A continuación, abordaré dos breves preguntas: ¿Es posible, mediante una secuencia correcta de movimientos, llegar a una posición en la que el rey negro sea atacado por dos reinas blancas al mismo tiempo? ¿Es esto también posible con dos torres blancas?

.­.­.

Docu-soap en lugar de blockbuster: 48 fps

Las películas generalmente se graban y reproducen a 24 cuadros por segundo, pero el formato estándar de casi 100 años “24p” parece tambalearse. Para evitar los efectos secundarios antiestéticos (por ejemplo, las fuertes sacudidas cuando se mueve la cámara a velocidad media) de la proyección de 24 fps, la gente ha estado trabajando para duplicar la velocidad de fotogramas a 48 fotogramas por segundo y más durante mucho tiempo.

.­.­.

Revisar la ortografía en sitios web

La revisión automática de ortografía y gramática es ahora un equipo estándar en los programas de procesamiento de texto, pero revisar la ortografía de un sitio web de forma automática ha sido relativamente engorroso hasta ahora. Google Chrome está dando un primer paso en esta dirección con una verificación integrada en los campos de entrada de varias líneas (área de texto). Ahora hay un servicio que lo hace posible para sitios web completos.

.­.­.

Números de teléfono en los enlaces: ¿un riesgo para la seguridad?

Hace unas semanas informé sobre cómo puede permitir que sus visitantes abran la aplicación de teléfono en dispositivos móviles tocando un número de teléfono. Ahora ha surgido la posibilidad de bloquear irrevocablemente la tarjeta SIM o restablecer el dispositivo a la configuración de fábrica sin ninguna acción por parte del usuario.

.­.­.

Curiosidades interesantes por correo electrónico

¿Los nombres de dominio y las direcciones de correo electrónico siempre deben estar en minúsculas para asegurarse de llegar a donde quiere ir? ¿O es esto completamente irrelevante? Los servidores de correo de Google, por ejemplo, tienen configuraciones extrañas con efectos interesantes, que presentaré brevemente en el siguiente artículo.

.­.­.

Diseño de los precios bursátiles en los temas diarios.

Sigo de cerca el diseño de varios programas de la televisión alemana. Casi ningún programa conserva su diseño corporativo de forma permanente. El ritual vespertino del encuentro frente a la pantalla del televisor a las 22.15 horas sobre los temas de la jornada me ha estado provocando dolor de estómago últimamente: desde hace algunos meses se ha optado por un esquema de color completamente confuso para la presentación de los precios bursátiles actuales.

.­.­.

Vincular números de teléfono correctamente

Si optimiza su propio sitio web para dispositivos móviles, no solo debe prestar atención a los diferentes tamaños de pantalla, los tiempos de carga optimizados y las características especiales en funcionamiento (como los efectos de desplazamiento), sino que también debe considerar las capacidades especiales de los dispositivos. Esto también incluye (algunas personas pueden haber olvidado) hacer llamadas telefónicas.

.­.­.

Contenido duplicado en blogs

Google castiga el mismo contenido en diferentes sitios web en muchos casos; sin embargo, el algoritmo de Google es inteligente y reconoce si los elementos en el encabezado y el pie de página siguen siendo los mismos o si se puede acceder a pasajes de prueba completos dos veces bajo diferentes URL. La pregunta interesante es cómo maneja Google las páginas de descripción general de artículos de blogs.

.­.­.

Aumente la seguridad de WordPress

La seguridad del sistema de administración de contenido más popular en la actualidad, WordPress, se puede aumentar significativamente girando dos tornillos pequeños. Solo toma 5 minutos y dos líneas de código. Aunque el problema también se puede resolver con una variedad de complementos, me estoy limitando deliberadamente a soluciones sin complementos.

.­.­.