L'argument de l'apocalypse

En supposant que le nombre \ (Y\) de toutes les personnes qui sont nées et qui naîtront un jour est limité, soit \ (x\) ta position absolue depuis le début de la liste. Alors \ (0 < \frac{x}{Y} \leq 1\). Nous pouvons maintenant dire avec une probabilité de \ (95\%\ ) que tu es parmi les derniers \ (95\%\) de toutes les personnes qui sont nées, donc \ (0,05 < \frac{x}{Y} \leq 1\) et donc \ (Y < \frac{x}{0,05} = \frac{100 \cdot x}{5} = 20 \cdot x\).

.­.­.

Paradoxe du buveur

La phrase suivante est connue sous le nom de "paradoxe du buveur": "Il y a quelqu'un dans le pub, donc s'il boit, tout le monde dans le pub boit." Peu importe si cette personne encourage les autres à boire ou s'il existe une autre porte dérobée, comme nous le verrons dans un instant. C'est un bel exemple de la logique mathématique du premier ordre.

.­.­.

Deviner un nombre

Un garçon pense à un nombre qui est \(1\) , \(2\) ou \(3\) et une fille n'est alors autorisée à poser qu'une seule question sur ce nombre. Le garçon ne peut que répondre " Oui ", " Non ", ou " Je ne sais pas" . Grâce à un questionnement intelligent, la fille parvient à nommer le bon numéro auquel le garçon pensait après que le garçon lui ait répondu. Quelle est ta question?

.­.­.

Objet sans origine

Imaginez qu'un jour vous receviez un colis mystérieux sans expéditeur. Curieux, vous ouvrez le paquet et trouvez une bague que vous offrez à votre fille. Des décennies plus tard, c'est elle qui peut utiliser un trou de ver pour renvoyer des objets dans le temps. Elle le fait avec la bague que vous lui avez donnée une fois, enveloppée dans un paquet qu'elle vous adresse. La question est : d'où vient la bague ?

.­.­.

CI avec actions GitHub

Comme alternative au très apprécié Travis CI , GitHub Actions est également disponible depuis un certain temps.En tant qu'outil d'intégration continue, il est très bien intégré sur la plate-forme de code GitHub et est maintenant très stable. Les actions GitHub sont basées sur des fichiers de configuration YAML placés dans le référentiel où le workflow doit s'exécuter.

.­.­.

Le paradoxe de Stein

En 1961, James et Stein ont publié l'article Estimation with Quadratic Loss . Prenez des données distribuées normalement avec une moyenne inconnue \(\mu\) et une variance \(1\) . Si vous choisissez maintenant une valeur aléatoire \(x\) à partir de ces données et devez estimer la moyenne \(\mu\) sur cette base, intuitivement \(x\) est une estimation raisonnable pour \(\mu\) (puisqu'une distribution normale est présente, le \(x\) choisi au hasard est probablement proche de \(\mu\) ).

.­.­.

Accès avec PHP à Exchange/Office 365

Longtemps annoncé - maintenant réalité : Microsoft a désactivé l'authentification par mot de passe pour certains protocoles dans Exchange Online à partir de septembre 2022 au profit de oAuth2. Les problèmes GitHub de nombreuses bibliothèques et scripts de sauvegarde montrent clairement que le changement a pris de nombreux administrateurs par surprise. Ci-dessous, nous montrons comment vous pouvez continuer à accéder au contenu de votre boîte aux lettres Exchange à l'aide de oAuth2 via PHP via IMAP.

.­.­.

UUID dans les bases de données

UUID (Identifiants universellement uniques) ​​sont des valeurs de 128 bits qui sont utilisées dans les bases de données, entre autres, pour identifier de manière unique les entrées de table. Ils sont représentés sous la forme d'une chaîne hexadécimale divisée en cinq groupes séparés par des traits d'union (Exemple: 09fe49b3-4d2b-471c-ac04-36c9e706b85f). Il y a nombreux Discussion sur les avantages et les inconvénients des UUID dans les bases de données - ils sont indispensables dans les systèmes distribués.

.­.­.

Nettoyer l'historique de Git partie 2

Données sensibles ou consommation mémoire trop importante : Il y a de bonnes raisons de vouloir changer l'historique Git. Dans cet article de blog , j'ai expliqué comment purger les fichiers de l'historique Git à l'aide de BFG . Un point faible de BFG est le manque de prise en charge des chemins directs , vous ne pouvez donc pas supprimer spécifiquement des fichiers ou des dossiers dans des sous-dossiers de l'historique. Sur ce, il est temps de chercher des solutions alternatives.

.­.­.

Limite de mémoire dans WordPress

tl;dr : définir manuellement la valeur ou les valeurs par défaut de WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT n'aura aucun effet si WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT inférieur ou égal à la limite de mémoire de PHP (ci-après memory_limit appelé) est. Ils sont utilisés pour définir des valeurs trop faibles de memory_limit dynamiquement à un minimum recommandé.

.­.­.

Conseil rapide : modifier l'Iframe

Si vous intégrez un iframe tiers (comme un widget), vous ne pouvez pas accéder à son contenu avec CSS ou JavaScript (en raison de la politique dite de même origine ). Cependant, il existe une procédure très simple pour modifier n'importe quel code (également dans d'autres fichiers qui sont rechargés dans l'iframe). Pour ce faire, vous routez l'URL via votre propre proxy PHP et modifiez le contenu à votre guise.

.­.­.

Pièces dans l'application ANTON

ANTON est l'une des applications d'apprentissage les plus populaires pour les élèves de la 1re à la 10e année. Classe. À première vue, l'aspect gamification de l'acquisition de pièces ("pièces") peut sembler étrange aux adultes - mais il multiplie sensiblement la motivation, pas seulement de mes enfants. Il enregistre même un petit "coussin" de pièces que vous ne touchez pas.

.­.­.

A propos de la robustesse de l'IBAN

Comme on le sait, l'IBAN allemand se compose du code du pays (DE), d'un chiffre de contrôle à deux chiffres (selon ISO 7064 ), du code bancaire (à 8 chiffres) et du numéro de compte (y compris le numéro de sous-compte, 10 -chiffre, les chiffres manquants sont remplis de zéros non significatifs) et est donc de 22 chiffres. Pour calculer le chiffre de contrôle, le soi-disant BBAN (code bancaire et numéro de compte) ainsi que le code de pays numérique \(1314\) pour l'Allemagne et le chiffre de contrôle \(00\) ) sont formés.

.­.­.

Mathématiques dans le jeu Dobble

Lors de la dernière soirée familiale, le jeu Dobble (dans l'édition Harry Potter) a été apporté avec enthousiasme à la table par les enfants. Après le 5ème tour perdu (sans coup visible de ma carte avec la carte à jouer) on m'a dit, à mon grand étonnement, que chaque joueur peut toujours trouver un coup à chaque tour. Mais mon incrédulité n'a été reconnue qu'avec d'autres tours perdus - les enfants étaient tout simplement plus rapides.

.­.­.

Temps de blocage Bitcoin

Vous savez : Le temps attendu entre deux blocs Bitcoin est en moyenne de \(10\) minutes. Maintenant, vous effectuez une transaction Bitcoin importante et attendez avec impatience de voir si et quand elle apparaîtra dans le prochain bloc:

e50bfacc95975a4e7545d83d8954645f

.­.­.

Mathématiques corona

Dans le rapport hebdomadaire RKI du 11.11.2021, il est indiqué à la page 22 que \(36\%\) patients corona âgés \(36\%\) plus de 60 ans dans l'unité de soins intensifs étaient déjà complètement vaccinés. Dans cette tranche d'âge, \(87\%\) complètement vaccinés à ce moment-là (voir p. 18).

.­.­.

Calcul de l'indice de visibilité SISTRIX

Avec Xovi, l'outil SISTRIX est le programme d'analyse le plus utilisé en Allemagne dans le domaine du référencement. L'indice de visibilité s'est imposé comme un quasi-standard pour la visibilité d'une page dans la recherche Google. Les paramètres qui sont inclus dans son calcul sont, par exemple , expliqués ici et ici et ici et ici et ici , mais une formule de calcul exacte n'est pas officiellement publiée. Ce qui suit sont les résultats de mes recherches personnelles de six mois, qui ne prétendent pas être complètes ou correctes.

.­.­.

Fractions décimales

Les nombres décimaux finis sont appelés fractions décimales, car ils sont une représentation différente des fractions dont le dénominateur est une puissance de dix. Ainsi est:

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

avec \(k \in \mathbb{N}\) et \(q_k\) la \(k-1\) -ième place à droite après la virgule.

.­.­.

Conseil rapide : modifiez automatiquement la version du nœud

L'utilisation de nvm est recommandée pour une installation et un changement rapides des versions de nœuds. Si vous souhaitez spécifier explicitement la version de nœud requise dans un projet, vous placez un fichier appelé .nvmrc avec le numéro de version exact (par exemple "12.10.0") dans le même dossier dans lequel se trouve le package.json . Si vous passez maintenant au dossier, l'extension suivante du fichier ~ / .bash_profile pour bash exécute la commande nvm use , qui définit automatiquement cette version:

fe497e1c7f9f1547263eb3bffe15f9f6

.­.­.

Utiliser les requêtes de conteneur aujourd'hui

Depuis qu'il y a le responsive web design, les développeurs s'interrogent sur la possibilité de concevoir des éléments DOM en fonction de leur taille réelle et non de la taille de la fenêtre d'affichage du navigateur (à l'aide de media queries ). En fait, les requêtes de conteneur (initialement les requêtes d'éléments) sont probablement la fonction CSS la plus demandée que les navigateurs n'ont toujours pas .

.­.­.

Nettoyer l'historique de Git

Les données sensibles telles que les mots de passe doivent se trouver dans des fichiers .env et, si possible, ne pas se retrouver dans les référentiels Git. Mais cela nous est probablement arrivé au moins une fois par erreur : nous avons publié rapidement un joli script API Google Maps JS sur GitHub Gists (en tant que "public") sans déguiser accidentellement notre propre clé API Maps privée.

.­.­.

Découpez des SVG à partir d'images avec clip-path

Si vous souhaitez découper une image à l'aide d'un SVG, l'utilisation de la propriété CSS clip-path est recommandée. Le script suivant déclenche des barrières cahoteuses : Le SVG peut être enregistré à l'aide d'Illustrator, vous pouvez spécifier l'URL (relative ou absolue) d'un SVG (Chrome ne supporte jusqu'à présent nativement que le SVG en ligne) et le décolleté est également complètement réactif.

.­.­.

Conseil rapide : WP_Query et champs multilignes

Avec l'aide de l'attribut meta_query dans la puissante classe WordPress WP_Query , les messages peuvent être filtrés qui ont certaines valeurs dans leurs champs méta. Si vous avez créé un méta-champ multiligne (par exemple à l'aide de Advanced Custom Fields ) et que vous souhaitez uniquement trouver des articles contenant une certaine valeur dans ce champ séparés par des sauts de ligne, le monde REGEX de MySQL est recommandé.

.­.­.

Intégrer nativement les animations Adobe Animate

Dans un article précédent, j'ai décrit comment on peut facilement intégrer des animations d' Adobe Animate dans un site Web via le détour d'un export APNG. Il existe également la méthode native via l' export HTML5 canvas , mais quiconque a déjà travaillé avec elle trouvera qu'elle est bloquée dans tous les coins et recoins (support réactif insuffisant, intégration lourde dans un site Web existant, pas de fréquences d'images différentes par animation, etc.) .). La bibliothèque adobe-animate-embed fournit ici un remède.

.­.­.

Google Maps sans clé API

Normalement, lors de l'intégration de Google Maps, vous travaillez avec l' API Maps JavaScript , qui nécessite une clé API et peut entraîner des coûts qui ne doivent pas être sous-estimés avec des numéros d'accès plus élevés. Il existe d'excellentes alternatives telles que mapbox ou OpenStreetMap , mais elles n'atteignent pas encore la variété des fonctionnalités offertes par Google. Google lui-même propose également un moyen sans clé API via la fonction de partage, que nous pouvons utiliser à nos fins.

.­.­.

Exportation Adobe Animate APNG

La prise en charge par le navigateur des fichiers PNG animés est désormais si bonne que les animations créées avec Animate CC peuvent être facilement exportées vers APNG, puis incorporées dans un site Web dans une simple balise <img>. Il s'agit d'une alternative simple et de bonne qualité à la méthode de publication d'Animate CC, qui génère du JavaScript. Les étapes à suivre sont décrites ci-dessous.

.­.­.

Élargir la recherche WordPress

Si vous souhaitez étendre la recherche native de WordPress avec, par exemple, des méta-champs, il est conseillé de jeter un œil aux filtres déclenchés. Le hook posts_search est recommandé pour que la pagination continue de fonctionner et que les améliorations futures de la recherche ne soient pas annulées . À l' aide des fonctions REGEXP et ExtractValue , le code suivant étend cette recherche pour inclure les publications contenant l'un des mots de recherche saisis dans tous les champs méta.

.­.­.

Le chef-d'œuvre de Godel

Lorsque Kurt Gödel a publié ses fameux théorèmes d'incomplétude en 1931, cela a ébranlé les fondements de la logique mathématique: il a réfuté que tous les axiomes qui peuvent être établis comme base possible sont inévitablement incomplets afin de prouver toutes les déclarations sur les nombres - et détruit cela Le rêve de Hilbert de prouver la cohérence de la théorie mathématique.

.­.­.

Utilisez WhatsApp via l'API

Malgré tous les problèmes de protection des données, WhatsApp est toujours l'application de messagerie préférée des Allemands. En plus de l'application spéciale WhatsApp Business , Facebook a également créé une interface officielle, l'API WhatsApp Business, pour la rendre plus intéressante pour les entreprises. Si vous souhaitez envoyer des messages WhatsApp par programmation à partir de votre application Web, il existe également d'autres moyens.

.­.­.

Flouter la page derrière la superposition en utilisant CSS

Si vous utilisez des éléments tels que des superpositions (qui est la règle à l'époque de l'actionnisme du RGPD) et que vous souhaitez adoucir la zone derrière la superposition, par exemple, vous rencontrez souvent le problème du contexte d'empilement . Par exemple, si vous avez des éléments positionnés de manière absolue ou dans une position fixe, ils sont soudainement affichés différemment que sans filtre appliqué. Mais il existe un remède.

.­.­.

Astuce: Split Testing avec Apache

Vous n'avez pas besoin d'utiliser un outil puissant comme Google Optimize pour de simples tests de fractionnement d'URL, vous pouvez également résoudre Apache via .htaccess. L'extrait de code suivant répartit ses visiteurs uniformément sur les deux versions pour les deux pages https://vielhuber.de/test1.php (variante 1) et https://vielhuber.de/test2.php (variante 2). La randomisation est basée sur l'heure actuelle du serveur.

.­.­.

Via la notation des fonctions ramifiées

Les accolades sont utilisées dans la notation des définitions de fonctions avec distinction de casse. Nous poursuivons la simple question de savoir si cette représentation peut également être éliminée et si la fonction peut être réduite à une notation qui peut s'en passer. Par exemple, la fonction

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

à l'aide des quatre opérations arithmétiques de base utilisant un terme d'une ligne?

.­.­.

Série de dates dans Google Sheets

Lors de la visualisation des données dans Google Sheets, on rencontre le problème que l'axe \(x\) pour les valeurs de texte (telles que les semaines calendaires) ne peut pas remplir automatiquement les espaces manquants. Pour résoudre le problème, vous générez une série continue de dates, comptez les cellules qui se produisent vous-même puis visualisez les sommes accumulées.

.­.­.

Astuce rapide: PHP clearstatcache

Trouve l'erreur:

72aaa2dbd201d49fc2ee429ebf68f15b

.­.­.

Piratage de l'API Google Translation

Google propose l' API Google Translation avec une structure de coûts basée sur l'utilisation dans le cadre de son Google Cloud. Il existe également une API non documentée qui peut être utilisée sans clé , mais qui refuse de fonctionner après seulement quelques requêtes. Lorsque vous utilisez la fonction de traduction de site Web de Google Chrome, il est à noter que les pages peuvent être traduites en très bonne qualité sans aucune limitation notable.

.­.­.

Astuce rapide: marquage automatique Git

Si vous liez Github à Composer , un numéro de version doit être attribué via la balise git . La commande de ligne de commande suivante détermine le jour en cours et l'augmente (selon SemVer ) d'un numéro de version. Par exemple, la version 1.1.0 suit après 1.0.9. Si aucune balise n'est attribuée, la version est automatiquement balisée avec 1.0.0. Des outils comme des crochets fragiles ou git raccourcissent ce désert de symboles.

8cd852c96ec1e60e8a5ac1f3614b2397

.­.­.

Modifier le déclencheur MySQL

Malheureusement, MySQL n'offre pas la fonction ALTER TRIGGER. Pour modifier un déclencheur existant, vous devez d'abord le supprimer, puis le régénérer. L'instruction CREATE TRIGGER peut être lue indirectement via information_schema . Cela nous permet de modifier les déclencheurs via un détour. Pour ce faire, vous apportez vos modifications au résultat de la commande SELECT suivante (changez au préalable la base de données et le nom du déclencheur) et exécutez la requête.

.­.­.

Déclencher des événements de changement dans VanillaJS

VanillaJS a été à égalité avec le vétéran jQuery dans presque tous les domaines depuis ES6 et est maintenant bien supérieur. Il est donc avantageux de migrer progressivement le code hérité de jQuery. Cependant, vous devez être prudent lorsque vous déclenchez des événements de modification manuelle. Par exemple, document.addEventListener ne se déclenche pas sur jQuery.change () . L'aperçu suivant résume les fonctionnalités spéciales.

.­.­.

Contrôler les cookies avec PHP et JS

Le paramétrage des cookies par vos propres scripts ou par des scripts tiers peut être finement contrôlé à l'aide de PHP et JavaScript. Bien que ce ne soit pas une solution suffisante pour la mise en œuvre de solutions de cookies après la décision de justice contre Planet49 (ici, il est crucial que les outils de suivi tels que Google Analytics ne les suivent pas du tout et par conséquent ne placent aucun cookie), cela peut avoir du sens être généralement des cookies sur liste blanche / liste noire.

.­.­.

Désactiver les appareils via un script sous Windows

Afin d'économiser de l'électricité ou de réduire votre propre paranoïa de surveillance, il est conseillé de déconnecter complètement les appareils qui ne sont pas utilisés sur votre propre ordinateur. Les appareils tels que les boîtes de son ou les webcams peuvent être activés / désactivés de manière classique à l'aide du gestionnaire d'appareils. Le tout fonctionne également via un script. La manière standard de faire cela était devcon . Windows 10 offre désormais un moyen plus pratique de le faire via PowerShell .

.­.­.

Flou d'arrière-plan Skype

Skype a une fonction sympa, quelque peu cachée: dans le cas des transmissions vidéo, l'arrière-plan peut être flouté automatiquement en cliquant sur le bouton vidéo et la fonction " Flouter mon arrière-plan ". Avec l'aide de l'intelligence artificielle, cela fonctionne avec n'importe quelle caméra, même sans informations de profondeur. Le tout semble alors plus professionnel et fait disparaître les choses privées ou sans importance en arrière-plan.

.­.­.

Exportation SVG depuis Illustrator

Les SVG jouent un rôle central dans le Web d'aujourd'hui. Ils ont non seulement déplacé les polices d'icônes, mais offrent également la possibilité de manipulation via CSS ou JavaScript. Si vous souhaitez enregistrer un graphique vectoriel pour le Web à partir d' Adobe Illustrator au format SVG, vous devez effectuer certains réglages pour éviter les pièges et réduire les temps de chargement, que je présenterai dans l'article suivant.

.­.­.

Projet Euler: chemins de treillis

Project Euler est une série de problèmes de programmation passionnants, souvent avec une formation mathématique. Les problèmes sont souvent posés de telle manière que des algorithmes sophistiqués doivent être développés pour atteindre l'objectif dans un délai raisonnable. Aujourd'hui, nous résolvons le problème 15: les chemins de treillis , où vous pouvez trouver la solution avec des moyens combinatoires simples.

.­.­.

Mises à jour automatiques de WordPress

WordPress a implémenté nativement des mises à jour d'arrière-plan depuis la version 3.7 et les a automatiquement activées pour les versions mineures. Avec l'aide de filtres, vous pouvez contrôler le comportement plus précisément, ce qui est exactement mis à jour automatiquement. Une installation permanente et entièrement automatique de toutes les mises à jour mineures, majeures, de plug-ins, de thèmes et de traductions n'est pas prévue, mais peut facilement être effectuée autrement.

.­.­.

Optimisation du démarrage PHP OPcache

Pour les sites Web basés sur WordPress , Joomla ou Laravel et n'ayant pas de contenu spécifique à l'utilisateur, il est conseillé de conserver toutes les pages dans un cache HTML statique et de ne régénérer le cache que manuellement (ou automatiquement) lorsque des modifications sont apportées dans le backend. Cependant, si la page contient un contenu dynamique qui dépend des sessions et des cookies ou également de la langue et de l'emplacement, OPcache convient .

.­.­.

Google Sheets: développer les formules

Afin d'étendre les formules à des colonnes entières dans Google Sheets, nous vous recommandons d'utiliser la fonction ARRAYFORMULA utile. Malheureusement, cela ne fonctionne pas en combinaison avec d'autres fonctions importantes telles que QUERY ou INDIRECT , c'est pourquoi il existe une programmation individuelle complète de la logique à l'aide de Google Apps Script ou, à défaut, une copie manuelle de la formule jusqu'à la dernière ligne.

.­.­.

Le paradoxe des Simpson

Le paradoxe de Simpson est l'un des phénomènes à la fois facilement compréhensibles et étonnants de la statistique. Cela se produit chaque fois que des groupes de données montrent une tendance particulière, mais cette tendance s'inverse lorsque les groupes sont combinés. À l'aide d'un exemple simple, le paradoxe peut être compris immédiatement.

.­.­.

Conseil rapide: Google Tag Manager

Le Google Tag Manager s'est imposé comme la norme de facto pour l'intégration de scripts de suivi. De cette manière, d'une part, les responsabilités (marketing en ligne vs programmation) sont parfaitement séparées et, d'autre part, vous pouvez rapidement configurer et modifier le suivi via un canal de déploiement supplémentaire. Voici deux petits conseils pour configurer les déclencheurs.

.­.­.

Petit conseil: point d'accès WLAN de FRITZ! Box

À partir de FRITZ! OS 07.10, en cas de panne d'Internet, FRITZ! Box peut temporairement utiliser le point d'accès sans fil d'un téléphone portable comme solution de secours. La fonction est masquée sous Internet> Données d'accès> Fournisseur Internet> Accès existant via WLAN . La FRITZ! Box fonctionne alors elle-même comme un routeur et fournit un réseau avec sa propre plage d'adresses. Lorsque Internet est à nouveau disponible, il vous suffit de réinitialiser le paramètre. J'ai également dû cocher les options WLAN> Réseau radio> Bande de fréquence 2,4 GHz active et Internet> Données d' accès > IPv6> Prise en charge IPv6 active .

.­.­.

Fleur de vie

La fleur de vie est un motif géométrique familier, semblable à une fleur, qui a été trouvé dans les temples, les manuscrits et pendant un certain temps dans la culture pop pendant des milliers d'années. Le modèle joue également un rôle dans l'ésotérisme. Nous ignorons tout cela à ce stade et nous nous concentrons sur la construction simple de la forme géométrique, qui est composée de plusieurs cercles se chevauchant régulièrement espacés.

.­.­.

Retard des e-mails dans Outlook

Le courrier électronique, moyen de communication asynchrone, est - malgré toutes les prophéties de malheur autour de Slack et Discord - le moyen de communication dominant dans le secteur des affaires dans le monde entier. En plus de Inbox Zero de Merlin Mann, il existe de nombreuses autres stratégies pour faire face au flot quotidien d'e-mails, y compris ce que l'on appelle le retard des e-mails, c'est-à-dire le retard de livraison des e-mails.

.­.­.

Une spirale de nombres

Depuis quelques jours, j'étudie la question suivante sur StackExchange sur une spirale d'entiers. Nous recherchons une formule fermée pour les coordonnées du \(n\) -ème élément dans la spirale entière suivante, qui s'étend de l'origine vers l'extérieur et de plus en plus loin dans l'infini:

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

Droits de lecture dans Google Sheets

Lorsque vous travaillez avec Google Sheets , des règles précises basées sur l'utilisateur pour modifier les feuilles de calcul, les colonnes et les lignes peuvent être définies dans une feuille de calcul. Malheureusement, il n'existe aucun moyen de restreindre les droits de lecture. Cependant, cela serait très utile dans de nombreux scénarios. Vous ne montrez donc à vos clients que les tickets qui les concernent ou aux collaborateurs uniquement les projets sur lesquels ils travaillent.

.­.­.

Plug'n'play de fil

npm est le gestionnaire de packages par défaut pour Node.js. Facebook développe depuis longtemps une solution alternative de gestion de paquets appelée Yarn . Yarn semble disparaître lentement des readmes de Github en tant que solution standard et les statistiques sur le site officiel montrent que seule une fraction des packages est réalisée par Yarn. Néanmoins, cela vaut la peine de sortir des sentiers battus.

.­.­.

Convertir un PDF en LaTeX


Le système de composition \(\TeX\) été développé en 1977 par le légendaire Donald E. Knuth . Le progiciel \(\LaTeX\) fait toujours partie du répertoire standard lors de la création d'articles scientifiques. Avec les deux outils suivants, les PDF déjà générés et les notes manuscrites peuvent être convertis entièrement automatiquement en TeX. Les résultats sont très prometteurs.

.­.­.

L'argument de la simulation

L'argument de simulation de Nick Bostrom est incroyablement simple et clair. Il n'essaie pas de prouver que nous vivons dans une simulation, mais au contraire formule élégamment trois possibilités, dont l'une doit être vraie. Elon Musk préconise également une thèse similaire, qui a fait connaître l'idée à un large public. Le journal officiel a plus de 14 ans et autant de pages sont courtes. La déclaration centrale est facile à comprendre et compacte.

.­.­.

Bogue critique lors de l'utilisation de WPML + ACF

Les puissants plugins WPML pour le multilinguisme et les champs personnalisés avancés pour vos propres champs sont des équipements standard dans de nombreuses installations. Il est ennuyeux de combiner des dysfonctionnements et des pertes de données. Les rapports de bogues sur le sujet datent de quelques années et restent sans réponse ( ici et ici et ici et ici et ici ). Je viens de regarder de plus près le problème.

.­.­.

Téléchargement de fichiers dans le navigateur Facebook In App

Sur certains téléphones Android, les navigateurs intégrés Facebook et Instagram (à partir d'aujourd'hui) ne se comportent pas correctement si un champ de téléchargement dans une page de destination annoncée ou liée spécifie l'attribut d'acceptation. Le bouton était donc sans fonction. Si vous ouvrez la page dans le navigateur normal externe en dehors de l'application Facebook, tout va bien. Ceci est gênant (surtout depuis qu'il a été signalé depuis longtemps le temps ), mais peut être résolu avec une solution de contournement.

.­.­.

Chrome Devtools: déplacer des éléments DOM

Les outils de développement de Google Chrome sont parmi les plus puissants du marché des navigateurs. De nouvelles fonctionnalités affluent chaque mois, que Google présente sous forme compressée sur YouTube . Mais souvent, ce sont les petites choses de la vie qui ravissent. Si vous souhaitez supprimer des éléments DOM dans Google Chrome, vous pouvez le faire avec la touche de suppression. Mais ce n'est qu'aujourd'hui que j'ai remarqué que les éléments DOM peuvent également être déplacés facilement par glisser-déposer:

.­.­.

Astuce rapide: git status --r

Une règle d' or dans l'univers git est: "Engagez-vous tôt et souvent". Si la nuit a été un peu plus longue, ou si vous voulez juste un aperçu de la situation actuelle sur votre propre ordinateur, la commande vous emmène

d8a38f92d0baa14f9d4568826c13ad46

un "git status" pour tous les référentiels qui sont dans le dossier actuel ou dans n'importe quel sous-dossier et agrège les valeurs dans un bel aperçu:

.­.­.

Pile LAMP dans le sous-système Windows pour Linux

Lorsque vous recherchez l'environnement de développement optimal, Windows 10 propose des solutions complètes telles que XAMPP , WAMP et MAMP , une installation native à la main et des solutions de virtualisation telles que Vagrant ( Scotch Box ) et Docker ( Devilbox , Laradock ). Mais en raison de mes exigences telles que la configurabilité gratuite, les vrais certificats SSL génériques, l'accès à partir de tous les appareils finaux du réseau local ainsi que la stabilité et les performances élevées, toutes les solutions ont échoué - sauf une.

.­.­.

Astuces pour les relations éloquentes avec Laravel

L'une des forces de Laravel est sa syntaxe élégante. Si vous avez beaucoup de modèles et de relations dans Laravel (en raison du grand nombre de tables dans la base de données), la traversée peut souvent se terminer par un code moins élégant. Au fil du temps, trois petites extensions ont fait leurs preuves pour moi, que je voudrais présenter brièvement ci-dessous. Nous utilisons juste un héritage, des méthodes magiques et des collections personnalisées.

.­.­.

Empêcher l'accès public à .git

Gestion des versions Git est désormais standard dans presque tous les projets Web et dans tous les environnements (y compris la production). Git crée toujours le sous-dossier .git et s'il se trouve au niveau du dossier public du site Web, vous pouvez accéder publiquement aux fichiers sensibles (par exemple, appeler /.git/logs/HEAD montre les derniers commits) . Il explique en détail comment vous pouvez cloner un référentiel Git tiers (!) Sans liste de répertoires.

.­.­.

Node.js / npm / Composer sans racine

Dans un article de blog plus ancien, j'ai décrit comment héberger Node.js gratuitement en utilisant Heroku . Maintenant, je vais vous montrer comment installer Node.js , npm et Composer sur n'importe quel autre hôte partagé sans droits root avec quelques lignes de code. Avec lui, vous pouvez installer des packages, déployer des applications Vue.js ou simplement démarrer un serveur Express.js. Nous travaillons toujours dans le répertoire utilisateur et utilisons nvm - le gestionnaire de packages de nœuds.

.­.­.

Bug dans les tableaux associatifs en PHP <7.2

En PHP <7.2, vous pouvez créer des tableaux qui ne sont plus accessibles correctement:

91367d1c4636fd753b381406024e303c

Vous pouvez faire certaines choses avec.

.­.­.

Exécuter les commandes directement après la connexion SSH

La commande suivante établit une connexion à un serveur via SSH, exécute certaines commandes (par exemple, modifie un sous-répertoire et envoie un état git ) et laisse le shell ouvert. Le fichier .bashrc est chargé, ce qui active les sous-shell colorés. L'astuce consiste à enregistrer un fichier temporaire / tmp / initfile avec les commandes souhaitées, à démarrer un sous-shell (dans notre cas bash) avec la commande --init-file. Dans ce fichier init, le même fichier est à nouveau supprimé immédiatement pour éviter de laisser des traces.

.­.­.

Lecteur réseau en tant qu'administrateur

Si vous intégrez un lecteur réseau dans l'Explorateur Windows, cela ne s'applique pas à l'ensemble du système, mais uniquement au compte d'utilisateur actuel. Cela signifie que vous ne pouvez pas accéder à ce lecteur réseau dans une application qui s'exécute avec des droits d'administrateur. Cela peut être changé facilement: Créez un nouveau DWORD (32 bits) nommé EnableLinkedConnections avec la valeur 1 dans le registre sous HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System et redémarrez. Les lecteurs réseau intégrés sont alors visibles partout.

.­.­.

Astuce rapide: inclure le dossier comme lecteur

Si vous souhaitez accéder rapidement à un dossier local sous Windows que vous utilisez encore et encore, vous pouvez simplement lui attribuer votre propre lettre de lecteur. Il n'y a qu'un détour via "Connecter le lecteur réseau", car vous ne pouvez pas spécifier le chemin C: \ Users \ David \ Downloads, par exemple. La solution est le partage dit administratif du lecteur, qui existe par défaut pour chaque dossier: dans l'exemple ci-dessus, ce serait \\ localhost \ c $ \ Users \ David \ Downloads .

.­.­.

Attraper des grenouilles

Une grenouille saute sur la droite numérique et vous essayez de l'attraper. Sauter et attraper alternent toujours. La grenouille commence à la position \(s \in \mathbb{Z}\) et à chaque mouvement, elle saute d'une distance de \(z \in \mathbb{Z}\) (si \(z>0\) , elle saute à droite, sinon à gauche). \(z\) est le même pour chaque saut. L'accrochage consiste à spécifier une position entière. On ne connaît ni \(z\) ni \(s\) . Nous montrons qu'il existe un moyen d'attraper toujours la grenouille.

.­.­.

Noms de fichiers longs sur Windows 10

Non seulement lorsque vous utilisez npm sous Windows, vous rencontrez une limite qui a maintenant presque 30 ans, qui limite les chemins d'accès aux dossiers et aux fichiers à un maximum de 255 caractères. Ce n'est pas la faute de NTFS, mais de LFN . Cela conduit à des bogues gênants et à une incompatibilité entre les systèmes d'exploitation. À l'époque du WSL, il s'agit d' une condition regrettable, que vous pouvez heureusement résoudre vous-même dans le registre pendant un certain temps.

.­.­.

Laravel files d'attente sur localhost

Dans le framework PHP Laravel au sein d'environnements productifs, les travailleurs et les superviseurs s'assurent que les travaux stockés dans Redis, par exemple, sont traités. Si vous voulez être complètement indépendant de cela sur localhost, vous utilisez le pilote de synchronisation pour toujours exécuter les travaux immédiatement. Cela présente l'inconvénient que le processus PHP actuel est bloqué et que la demande se bloque jusqu'à ce que le travail soit traité.

.­.­.

Conseil rapide: regroupez les objectifs dans Google Analytics

À l'aide de la bibliothèque JavaScript analytics.js de Google Analytics, tous les événements sur les sites Web peuvent être suivis. Ces événements sont, par exemple, une mesure exacte de la durée du séjour, de la profondeur de défilement maximale des visiteurs ou d'autres actions individuelles telles que la soumission de formulaires. Si vous souhaitez évaluer des campagnes publicitaires ou effectuer des tests A / B ultérieurement, par exemple, vous créez des projets dits cibles.

.­.­.

Invalidation pragmatique du cache

Le rendu côté serveur fait désormais partie du répertoire standard des sites Web et des applications. Les navigateurs tels que Google Chrome ont également tendance à mettre en cache autant que possible afin de minimiser les temps de chargement des appels ultérieurs. Le cache de infirmation fichiers CSS / JS / image peut être résolu avec l'aide de mod_pagespeed , Expires / contrôle du cache - tête, un manifeste de cache ou très pragmatiquement et directement par le biais des paramètres individuels après le nom du fichier.

.­.­.

Clés Bitbucket et SSH

Le fournisseur Bitbucket n'offre pas (même dans les tarifs Standard et Premium payants ) la possibilité de stocker des clés SSH avec droits d'écriture au niveau du référentiel. Le stockage de votre clé SSH personnelle sur le serveur de production n'est pas une option, sinon vous pouvez accéder à tous les autres projets sur lesquels vous travaillez actuellement à partir de là. Il existe des soi-disant clés d'accès , mais celles-ci n'autorisent que des droits de lecture.

.­.­.

Windows Sysinternals via un lecteur réseau

Les outils de Sysinternals de Mark Russinovich ne devraient manquer sur aucun ordinateur Windows. Si vous souhaitez toujours disposer de la dernière version, vous pouvez l'intégrer en tant que lecteur réseau. La commande net use s: \\ live.sysinternals.com \ DavWWWRoot sur la ligne de commande est suffisante (en tant qu'utilisateur normal). De jolis outils tels que PsList, PsKill ou Process Explorer sont alors disponibles sur le lecteur S.

.­.­.

Astuce rapide: Google Sheets et les semaines de l'agenda

Lors de la sortie des semaines calendaires à une certaine date, vous devez être prudent dans Google Sheets (tout comme dans Microsoft Excel). La fonction = CALENDRIER SEMAINE (AUJOURD'HUI ()) calcule en utilisant la norme américaine, pour laquelle le premier jour de l'année est toujours affecté à la semaine calendaire 1. En Allemagne, cela est défini différemment: ici, la première semaine civile est la semaine à partir de laquelle au moins 4 jours entrent dans la nouvelle année. Dans Google Sheets, vous pouvez résoudre le problème (ainsi que d'autres alternatives intéressantes telles que = SHORTEN ((TODAY () - DATE (YEAR (TODAY () - REST (TODAY () - 2; 7) +3); 1; REST (TODAY ( ) -2; 7) -9)) / 7) et la modification = SEMAINE DU CALENDRIER (AUJOURD'HUI (); 21) ) facilement avec la fonction spécialement conçue = ISOWEEKNUM (TODAY ()) .

.­.­.

Certificats SSL auto-signés dans Chrome 58

Depuis Let's Encrypt , les sites Web cryptés sont désormais standard. Même avec le développement local, les certificats SSL sont indispensables (par exemple, navigator.geolocation nécessite un cryptage SSL localement). Depuis la version 58 de Chrome, la prise en charge de CN (Common Name) a été interrompue et SAN (Subject Alternative Name) est devenu obligatoire. En conséquence, Chrome n'accepte plus tous les certificats SSL créés de manière conventionnelle .

.­.­.

Deux fois l'âge de deux personnes

Considérons deux personnes \(A\) et \(B\) qui ne sont pas nées le même jour et \(A\) plus jeune que \(B\) . Afficher: Il existe exactement deux constellations d'âge \(a,b \in \mathbb{N}\) , pour lesquelles s'applique: \(2\cdot a = b\) . Nous définissons d'abord \(d \in \mathbb{R}^+\) comme différence d'âge entre \(A\) et \(B\) à la naissance de \(A\) avec \( d = d_0 + d_1 \) , \( d_0 \in \mathbb{N}_0, d_1 \in \mathbb{R}, d_1 \in [0;1[\) . Nous considérons maintenant un point arbitraire dans le temps \(x \in \mathbb{R}^+\) après la naissance de \(A\) avec \(x = x_0 + x_1\) , \(x_0 \in \mathbb{N}_0, x_1 \in \mathbb{R}, x_1 \in [0;1[\) .

.­.­.

Git et dossiers vides

Puisque Git ne connaît pas de dossiers, seulement des fichiers, les structures de dossiers vides ne se retrouvent pas dans le référentiel. Cependant, comme de nombreux cadres et projets en ont absolument besoin, ils devraient aboutir là-bas. Une pratique courante consiste à créer ce que l'on appelle des fichiers d'espace réservé (souvent appelés .gitkeep), qui spécifient implicitement la structure des dossiers. Ces fichiers peuvent être créés facilement et, si vous le souhaitez, vous assurer également que les autres fichiers des dossiers sont ignorés.

.­.­.

Hébergement Node.js gratuit avec Heroku

L'hébergement pour Node.js n'est pas encore très répandu, en particulier dans les pays germanophones. La société américaine de cloud Heroku propose une solution ici - et même gratuitement . Vous remarquez toujours le paradigme "Construire des applications ... pas une infrastructure" et vous n'avez encore pratiquement aucune restriction. À titre d'exemple, nous implémentons un petit travail cron basé sur PhantomJS , qui supprime un site Web tous les jours et envoie le titre de la page par e-mail.

.­.­.

Fonction d'appairage de Cantor

En plus des arguments diagonaux , Georg Cantor a également développé la fonction d'appariement de Cantor \(\mathbb{N}^2 \to \mathbb{W}, \quad c(x,y) = \binom{x+y+1}{2}+x = z\) , qui encode deux nombres quelconques \(x,y \in \mathbb{N}\) dans un nouveau nombre \(z \in \mathbb{N}\) . Par exemple, \(c(3,4)=\binom{3+4+1}{2}+3 = \binom{8}{2}+3=\frac{8!}{6!\cdot 2!} +3 = 31 = z\) un codage unique des nombres \(3\) et \(4\) dans le nombre \(31\) . Afficher: L'ensemble de valeurs \(\mathbb{W} = \mathbb{N}\) , c'est-à-dire \(z\) suppose tous les nombres naturels.

.­.­.

La terre et le pois

\(r_1 = 6370km\) la terre (comme une balle avec \(r_1 = 6370km\) ) et un pois (comme une balle avec \(r_2 = 2mm\) ) et \(r_2 = 2mm\) une corde au-dessus de l'équateur pour qu'elle repose fermement sur la surface. Maintenant, vous allongez les deux cordes d'un mètre chacune. Les deux cordes devraient maintenant être à nouveau complètement déployées au-dessus de l'équateur - elles ne reposent plus complètement sur la surface, mais flottent au-dessus de l'équateur. À quelle hauteur au-dessus de la surface la corde flotte-t-elle au-dessus de la terre, à quelle hauteur au-dessus du pois?

.­.­.

Probabilités sur l'horloge analogique

Dans quel% du temps d'une journée les trois aiguilles d'une montre analogique se trouvent-elles dans la moitié droite du cadran? Tout d'abord, regardez l'aiguille des heures, qui se trouve sur le côté droit toutes les 12 heures sur 24 (50%). A partir de ce moment, l'aiguille des minutes sera sur le côté droit (25%) dans 6 heures sur 12. Sur ces 6 heures, la trotteuse passe 3 heures sur le côté droit (12,5%).

.­.­.

Laravel: travailler avec des relations éloquentes

Laravel facilite grandement la communication avec la base de données avec Eloquent. Lorsque vous travaillez avec des relations éloquentes, vous devez être conscient lorsque vous appelez des variables dynamiques (à l'aide des méthodes magiques de PHP) que les instances des modèles ne reflètent pas les nouvelles modifications, mais sont stockées en permanence lors de leur premier appel.

.­.­.

Bitbucket: supprimer le dossier de l'historique Git

Lors de l'hébergement de Git sur Bitbucket, il existe une limite stricte de 2 Go - si elle est dépassée, vous n'avez qu'un accès en lecture seule au référentiel. Pour éviter cela, par exemple, vous pouvez supprimer rétrospectivement de gros dossiers ou fichiers de vos commits. Mais aussi dans d'autres cas (si les données d'accès sont entrées dans l'historique ou que node_modules est retourné au master), vous devez manipuler rétrospectivement l'historique de Git, contrairement à sa nature.

.­.­.

Intégrer le certificat SSL de DomainFactory sur IIS

À l'ère de Let's Encrypt , les sites Web cryptés sont désormais standard. Cependant, des certificats génériques ou étendus avec une validation de propriétaire particulièrement fiable sont également souvent nécessaires. Le fournisseur DomainFactory propose des certificats SSL bon marché qui peuvent également être utilisés en externe. La configuration sur un IIS actuel réussit sans CSR avec l'aide d' OpenSSL . Dans ce qui suit, je montrerai brièvement quelles étapes sont nécessaires pour cela.

.­.­.

Stratégie gagnante paradoxale pour deviner les nombres

Thomas M. Cover a posé la question étonnante suivante en 1987 dans "Open Problems in Communication and Computation": Player \(X\) écrit deux nombres naturels différents et choisis au hasard \(A\) et \(B\) à deux différents Glissez du papier et posez-le face cachée sur une table. Le joueur \(Y\) sélectionne maintenant au hasard l'un de ces morceaux de papier, voit le nombre et doit maintenant décider si ce nombre est plus petit ou plus grand que l'autre nombre qui est toujours caché sur la table.

.­.­.

Football et algèbre linéaire

Lorsqu'un match de football commence, le ballon repose au centre du terrain et est ensuite déplacé sur le terrain pendant 45 minutes en se déplaçant et en tournant. Au début de la seconde mi-temps, le ballon est à nouveau au centre du terrain. Nous montrons avec des moyens simples d'algèbre linéaire que soit un nombre infini de points sur la surface sont toujours exactement dans la même position que dans l'état d'origine, soit exactement 2.

.­.­.

Laravel: débogage du modèle de lame

Lors du débogage de modèles de lames dans Laravel 5. *, vous obtenez souvent des messages d'erreur sans signification faisant référence aux vues mises en cache. Dans le passé, tout le monde était meilleur: la vue de débogage de la version 4 contenait des fonctions plus utiles et était également plus agréable visuellement. Avec quelques lignes de code, vous pouvez récupérer cette fonctionnalité à l'aide de whoops ("erreurs PHP pour les enfants sympas").

.­.­.

Affichage harmonieux des logos avec JavaScript

Qu'il s'agisse de références, de partenaires ou de clients - il existe de nombreux cas dans lesquels vous souhaitez afficher harmonieusement plusieurs logos les uns à côté des autres. Les proportions des logos sont pour la plupart incohérentes. Souvent, vous suivez votre instinct pour la représentation de la taille dans la conception, mais il existe également une méthode de calcul exacte pour une représentation visuellement attrayante en assimilant les zones des logos. Dans l'exemple suivant, vous pouvez le faire avec seulement quelques lignes de JavaScript.

.­.­.

Vérifier l'existence des variables PHP / JS

Lorsque vous travaillez quotidiennement avec des variables en PHP et JavaScript, on rencontre souvent la question de savoir si une variable est vide. Il est utile de connaître les fonctions natives et leurs différences à des fins de vérification. Malheureusement, il n'y a pas de moyen facile de vérifier intuitivement si une variable est présente ou non. La matrice ci-dessous clarifie ce que cela signifie. Cependant, ce que vous voulez peut être modernisé à l'aide de petites fonctions d'assistance.

.­.­.

Appels téléphoniques massifs avec sipgate.io

Avec sipgate.io, Sipgate a créé une API cloud passionnante avec laquelle on dispose d'une multitude d'options pour la téléphonie Internet. Un compte est gratuit, et il est également possible de définir gratuitement n'importe quel numéro d'expéditeur gratuit dans le Feature Store. La documentation de sipgate.io est toujours extensible, mais avec un peu de lecture dans l' API officielle de Sipgate, on peut rapidement réaliser des choses passionnantes.

.­.­.

Récursivité en SQL

Les systèmes de gestion de bases de données relationnelles basés sur SQL ne conviennent que sous condition pour les requêtes hiérarchiques ou récursives. D'autres systèmes tels que ArangoDB sont meilleurs ici (il y en a eu beaucoup à ce sujet à GOTO 2016 ). Mais vous pouvez également générer des requêtes récursives en SQL à l'aide d' expressions de table communes et ainsi interroger les tables parent / enfant classiques pour tous les ancêtres et descendants.

.­.­.

WordPress: désactiver les pages d'archives

Selon w3techs.com , environ 27,4% de tous les sites Web dans le monde sont actuellement exploités avec l'aide de WordPress. Dans de très nombreux cas, ce ne sont pas des blogs. WordPress génère automatiquement de nombreuses URL souvent inutilisées et produit tellement de liens indexés par Google que l'exploitant du site Web n'avait même pas à l'écran. Tout cela peut être désactivé avec une simple commande.

.­.­.

Renommer les champs de formulaire PDF en bloc

Si, comme moi, vous avez la difficulté à renommer des milliers de noms de champs de formulaire, la console JavaScript incluse dans Acrobat est idéale. En cela, vous pouvez non seulement exécuter n'importe quel code JavaScript, mais également accéder à tout le contenu du PDF (y compris les champs de formulaire). Puisqu'il n'y a pas de fonction native pour renommer dans l'API JS, les champs de formulaire avec toutes leurs propriétés sont copiés et créés avec un nouveau nom.

.­.­.

Shopware: réparer les modifications de variantes

Dans Shopware 5, un problème connu n'a toujours pas été résolu: si vous créez un article avec des variantes interdépendantes avec des options de configuration mutuellement exclusives, il peut arriver que certaines combinaisons ne puissent pas être sélectionnées dans le front-end et ne puissent donc pas être commandées. Avec l'aide d'un plugin, le problème peut être facilement résolu pour le moment.

.­.­.

Une ligne pour l'infini des nombres premiers

Il existe de nombreuses preuves de l'infinité des nombres premiers - le théorème d'Euclide bien connu du Livre des éléments ne manque dans aucun cours de théorie des nombres de base. Dans l' American Mathematical Monthly (numéro 122) en 2015, Sam Northshield a publié une preuve de contradiction non moins élégante sous la forme d'un one-liner, que je ne veux pas vous cacher (avec de brefs commentaires).

.­.­.

Égayez la ligne de commande Windows

L'invite de commande Windows terne peut être mise à niveau visuellement en quelques étapes simples. Ainsi, vous pouvez non seulement ajuster la couleur et la taille de la ligne de commande, mais aussi l'étendre fonctionnellement (en augmentant le tampon, en installant un grand ensemble d'outils UNIX). Bien que l'invite de commande ne se rapproche pas de PowerShell 6.0 ou du nouveau Windows 10 Bash Shell , elle n'a pas besoin de se cacher pour les tâches quotidiennes.

.­.­.

URL dynamiques dans Joomla

Dans les systèmes de gestion de contenu, les URL ne sont souvent pas toujours fixées à l'avance et ne sont donc pas créées statiquement à l'avance (en tant que contribution ou élément de menu), mais adressent des objets de la base de données. Similaire à WordPress ( comme décrit ici ), il est également possible dans Joomla de créer des structures d'URL dynamiques (indépendantes du système d'alias interne). Soit JRouter peut être utilisé ici - soit vous pouvez utiliser un one-liner dans .htaccess.

.­.­.

Coller JavaScript

Les navigateurs modernes peuvent utiliser JavaScript pour lire et écrire dans le presse-papiers de l'utilisateur, ce qui signifie qu'ils peuvent également le manipuler. La technologie sous-jacente est déjà ancienne, mais ce n'est que récemment que de plus en plus d'attaques (sous le nom de "PasteJacking") circulent sur Internet, qui profitent de cette possibilité pour l'utilisateur inexpérimenté. Une implémentation en JavaScript est banale.

.­.­.

Permuter les colonnes dans PostgreSQL

L'échange de colonnes de table SQL fait partie du répertoire standard avec MySQL - ce n'est pas (encore) pris en charge avec PostgreSQL. Bien que le wiki officiel consacre son propre article au problème, il ne présente aucune solution pratique prenant également en charge les vues, les index et les déclencheurs. La classe suivante effectue ce travail (pour MySQL et PostgreSQL) soit sur la ligne de commande - soit directement dans Laravel 5.

.­.­.

Astuce rapide pour l'Explorateur Windows

Si vous souhaitez ouvrir rapidement l'invite de commande dans un dossier de l'Explorateur Windows, cliquez sur (un niveau supérieur) avec le bouton droit de la souris et maintenez la touche Maj enfoncée sur le dossier, puis sélectionnez «Ouvrir l'invite de commande ici» dans le menu contextuel. Je viens de découvrir une autre méthode plus rapide lorsque vous êtes à l'intérieur du dossier: Ici, vous cliquez sur le chemin du dossier actuel, tapez "cmd" et confirmez avec Entrée.

.­.­.

Catégories WordPress: arborescence / héritage

Si vous travaillez avec des catégories hiérarchiques (taxonomies) dans WordPress, vous remarquerez que, d'une part, l'affichage des catégories cochées dans le backend est déroutant et, d'autre part, les articles ne se retrouvent pas automatiquement dans la catégorie parente s'ils sont placés dans la catégorie enfant. Les deux peuvent être redressés avec seulement quelques lignes de code en utilisant le puissant système de hook (sous la forme d'une action et d'un filtre).

.­.­.

PHP 7 et l'opérateur de vaisseau spatial

En plus de nouvelles fonctionnalités telles que l' indication de type pour les types de données scalaires ou des performances optimisées , PHP 7 apporte également de nombreuses nouvelles extensions de langage utiles. Le "Spaceship Operator" a finalement fait son entrée dans le monde de PHP (les programmeurs Ruby et Perl le connaissent depuis longtemps). \($a <=> $b\) renvoie \(0\) si et seulement si les deux opérandes sont égaux, \(1\) si celui de gauche est plus grand et \(-1\) sinon.

.­.­.

Délai d'expiration de FastCGI pour IIS 7.5 PHP

Si vous intégrez PHP via FastCGI sur IIS 7.5, chaque script est abandonné après 600 secondes (soit 10 minutes) par défaut. Un changement de la variable connue "max_execution_time" dans le php.ini n'a aucune influence sur cela, vous devez (également) ajuster les paramètres FastCGI. Pour cela, IIS offre une interface confortable pour gérer les variables pertinentes.

.­.­.

Paradoxe de la stochastique

La théorie conditionnelle des probabilités apporte de belles tâches avec des solutions contre-intuitives. En plus du problème bien connu des frères et sœurs , je vais maintenant aborder brièvement un autre exemple: "J'ai maintenant deux enfants. L'un d'eux est un garçon et est né un jeudi. Quelle est la probabilité que l'autre enfant soit aussi un garçon?"

.­.­.

Git, Shopware et dossiers vides

Le système de contrôle de version de fichier Git est léger, rapide et portable. Git gère toujours les objets, à savoir les fichiers. Les dossiers ne sont créés que s'ils contiennent des fichiers, sinon Git ne les enregistrera même pas. Cela a des effets secondaires désagréables dans certains projets. Par exemple, le système de boutique Shopware repose sur le strict respect de la structure des dossiers pour fonctionner.

.­.­.

Shopware: frais d'expédition individuels

Shopware dispose d'un puissant module de frais de port que vous pouvez spécifiquement intervenir dans le calcul. Dans notre cas, nous souhaitons mettre en œuvre le scénario suivant: Les frais de port par article sont initialement déterminés en fonction du poids de l'article (les limites de poids sont précisées). Uniquement pour des exceptions spéciales, il devrait être possible de fixer des frais d'expédition fixes pour chaque article.

.­.­.

Permaliens dynamiques dans WordPress

Le système de permalien WordPress peut très bien être adapté à vos propres besoins à l'aide de balises de structure . Le paramètre% postname% est probablement la solution la plus courante et la plus pratique. Cependant, si vous souhaitez implémenter de vrais liens dynamiques, vous devez d'abord étendre le système avec votre propre code.

.­.­.

Liens hypertexte corrompus dans Word et Excel

On pourrait penser que lors de l'ouverture de liens hypertexte à partir d'un document Word / Excel, le navigateur standard est lancé avec l'URL souhaitée. Curieusement, ce n'est pas le cas - ce qui conduit à des effets secondaires désagréables et rend impossible les liens vers des pages protégées par connexion / session / cookies dans lesdits programmes Office.

.­.­.

Un paradoxe pour la fête des pères

Pour la fête des pères d'aujourd'hui, une fille offre à son père un tableau qu'elle a peint elle-même, ce que son père avait désiré. La fille dit: "Je vais vous donner la photo que vous avez souhaitée et mon cadeau sera une surprise". Le père est surpris et s'interroge sur la vérité de cette déclaration.

.­.­.

Intégrez des scripts dynamiques avec et sans HTTPS

Si vous incluez des scripts non chiffrés dans la zone <head> et que vous appelez une page avec un certificat SSL existant chiffré, ces scripts sont bloqués et ne sont donc pas exécutés. Si vous omettez simplement le protocole, tous les scripts sont automatiquement appelés sous forme cryptée si le site Web est accessible via https: // - sinon non crypté.

.­.­.

Convivialité dans les menus déroulants

Lorsque vous travaillez avec des menus déroulants multidimensionnels, on rencontre souvent le problème que de mauvais sous-menus sont accidentellement ouverts ou que le sous-menu souhaité est accidentellement fermé. Cet effet se produit lorsque le pointeur de la souris quitte le menu correspondant au niveau supérieur tout en naviguant vers un sous-menu déjà développé.

.­.­.

Shopware: désactiver automatiquement les variantes

Dans Shopware , l'article entier est désactivé en cas de commande réelle si toutes les variantes ont un niveau de stock inférieur ou égal à 0. Afin de l'implémenter sur une base de variante, j'ai programmé un petit plugin, le Bootstrap.php que je fournirai ci-dessous.

.­.­.

Requête double mot de passe avec SSL

La constellation suivante a toujours un effet secondaire désagréable: Si vous protégez votre site avec htaccess / htpasswd et que vous forcez en même temps une connexion SSL, vous devez toujours entrer le même mot de passe deux fois (une fois pour http et une fois encore après une entrée réussie pour https). Avec l'aide des sections de configuration introduites dans Apache 2.4, le problème peut être facilement résolu.

.­.­.

Chaînes multilignes en JavaScript

Lors de la programmation avec JavaScript, on tombe souvent sur l'incapacité d'implémenter des chaînes multilignes en les saisissant sur plusieurs lignes dans le code. Bien que la tâche dans d'autres langages tels que PHP ou Ruby ne pose pas de problème, avec JavaScript, vous ne pouvez initialement vous contenter que de solutions de contournement, dont l'utilisation est décidée par les goûts personnels ou le support du navigateur.

.­.­.

mail () en PHP avec UTF-8 et trémas

L'envoi d' e-mails avec PHP est mieux implémenté avec des classes puissantes telles que PHPMailer . Des fonctions d'encapsulation pratiques permettent d'utiliser le contenu UTF-8, d'intégrer des images et d'envoyer des pièces jointes cryptées avec seulement quelques lignes de code. Si vous voulez vous épargner la surcharge et utiliser la fonction PHP mail () contrairement à la recommandation, vous rencontrerez des problèmes lors de l'utilisation des trémas et UTF-8 au plus tard.

.­.­.

Google PageSpeed ​​Insights vs. Google Analytics

Les outils de validation tels que le service de validation de balisage du W3C ou Google PageSpeed ​​Insights sont utiles pour évaluer objectivement le code et les performances d'un site Web. Google, en particulier, influence tout un secteur avec des concepts tels que " au-dessus du pli" - et fournit également des directives strictes mais utiles pour la compression d'image et la mise en cache. Cependant, il peut arriver que Google marche de son propre chef.

.­.­.

Bienvenue JavaScript 2.0

JavaScript domine le Web et ECMAScript, le cœur du langage grandit. La nouvelle spécification (ES6 ou JS2), attendue au milieu de cette année, apporte de nombreuses innovations qui peuvent déjà être essayées aujourd'hui. Firefox a actuellement le meilleur support , mais des polyfills via des transpilers tels que Google Traceur sont également possibles. Voici un bref aperçu des nouvelles fonctionnalités d'ES6.

.­.­.

0,99999... = 1?

Que ce soit à l'école ou à l'université: Une question intéressante qui \( 0,99999... = 1 \) temps inclut la question de savoir si l'équation suivante est vraie: \( 0,99999... = 1 \) . Bien que l'infini \(0,99999... = A\) dans la partie gauche de l'équation, nous lui donnons un nom: \(0,99999... = A\) . Après multiplication par le facteur \(10\) et de simples transformations algébriques, nous obtenons un premier aperçu étonnant.

.­.­.

SQL: performances médiocres malgré l'index

Je viens d'être confronté au problème de performance suivant d'une base de données SQL: Dans une table SQL appelée "users" avec ~ 1 000 000 entrées, il a fallu 28 secondes inacceptables pour déterminer le nombre d'enregistrements aujourd'hui. Les heures des inscriptions ont été sauvegardées au format «Ymd H: i: s» dans la colonne «créé».

.­.­.

Petit problème d'échecs

En plus du problème bien connu des chevaliers et des reines, il existe de nombreuses autres questions passionnantes dans le monde des échecs. J'ai abordé deux petites curiosités dans une précédente entrée de blog . Si vous traitez mathématiquement des problèmes d'échecs, vous découvrirez rapidement que les mathématiques fournissent des réponses très simples et éclairantes à de nombreuses questions.

.­.­.

Fichiers disponibles en ligne avec OneDrive

Si OneDrive, Dropbox, Google Drive, OwnCloud, Box.net: Indépendamment de la boîte dans laquelle vous stockez vos fichiers, les services sont presque les mêmes. Les clients disponibles pour tous les systèmes de bureau et mobiles, les fichiers non chiffrés standard et les options de partage ne diffèrent que marginalement. Mais le OneDrive, qui a été intégré en permanence dans le système depuis Windows 8.1, a une particularité: seuls les fichiers disponibles en ligne.

.­.­.

PHP: accès aux fichiers avec des trémas sous Windows

Les fichiers sur les serveurs Web doivent toujours être sans espaces (pas "ceci est une image.jpg"), sans trémas ni caractères spéciaux (pas "football.jpg"), sans barres obliques inverses (pas "Arbeit \ Auto.jpg") et en minuscules (pas " test.JPG "). Récemment, cependant, j'ai dû accéder et traiter un grand nombre de fichiers prédéfinis avec n'importe quel nom de fichier pour un projet client.

.­.­.

Requête SQL pour déterminer une liste de classement

Aujourd'hui, je suis tombé sur la tâche suivante en travaillant sur un projet client: prendre une table SQL "utilisateur" avec les colonnes "id" et "score" et déterminer un classement de tous les utilisateurs en fonction du "score" dans lequel les utilisateurs avec le obtenir le même classement avec le même score. Cette tâche peut être résolue intuitivement et facilement en utilisant des variables définies par l' utilisateur .

.­.­.

SDK Facebook: vérifiez les jetons côté serveur

Lorsque vous travaillez avec le SDK Facebook (plus précisément lors de la mise en œuvre d'une fonction de connexion Facebook dans une interface REST), le jeton transmis que le client a reçu de Facebook doit d'abord être vérifié par le serveur pour vérifier sa validité avant que d'autres opérations ne soient effectuées. .

.­.­.

Chrome DevTools: adressage des éléments DOM

Que ce soit Chrome, Firefox, Opera, Safari ou même Internet Explorer: alors que les outils de développement bien conçus étaient un argument de vente unique de Firefox et du populaire plug-in Firebug jusqu'à il y a quelques années, de puissants outils de développement font désormais partie de la portée standard de chaque navigateur, dans lequel il y a beaucoup à découvrir. donne.

.­.­.

Accès au système de fichiers via SQL

Je viens de tomber sur une option intéressante dans MySQL pour accéder au système de fichiers et obtenir des informations précieuses, par exemple sur l'existence de fichiers et de dossiers ou de leur contenu. Cela peut être très utile comme alternative à la fonction php file_exists , car les informations sur l'existence du ou des fichiers peuvent toujours être utilisées dans la requête pour d'autres fonctions de tri et d'agrégation.

.­.­.

Arrière-plans animés avec toile

Les arrière-plans vectoriels animés peuvent ajouter de la variété à un paysage Web caractérisé par des photos et des vidéos en plein écran. Ce serait bien si cela allait de pair avec des temps de chargement et un large support matériel et logiciel. Une solution est: la toile. L'élément HTML contrôlé par JavaScript est pris en charge par tous les navigateurs actuels et reproduit avec des performances élevées sur les appareils mobiles.

.­.­.

Rapport hauteur / largeur fixe pour les éléments HTML

En tant que développeur Web, on est souvent gêné de travailler avec des éléments HTML qui par eux-mêmes - contrairement à l'élément img, par exemple - n'ont ni une taille fixe ni un rapport hauteur / largeur fixe. Vous voulez souvent que ces objets se comportent de manière réactive, mais la proportion entre la largeur et la hauteur est conservée. CSS n'offre pas ici de solution intuitive par défaut. Mais avec l'aide de la propriété de rembourrage vertical, vous pouvez atteindre votre objectif.

.­.­.

Décision du tribunal sur l'utilisation de photos d'archives

Après que le tribunal régional de Cologne est revenu dans le scandale RedTube la semaine dernière et n'a jamais été autorisé à approuver la remise des adresses IP controversées, il rend un autre jugement très controversé et discutable avec la décision 14 O 427/13: L'auteur de Stock- Les photos d'une certaine agence photo doivent également être nommées via l'accès direct de ses photos via leur URL.

.­.­.

Au revoir Block & Inline - Bienvenue HTML5

Les innovations de la spécification HTML5 sont nombreuses et beaucoup d'entre elles sont déjà prises en charge par la majorité du paysage des navigateurs - ci-dessous, je tiens à souligner un changement intéressant des règles d'imbrication des éléments. HTML a toujours fait la distinction entre les éléments en bloc et en ligne. La définition du type de document HTML4, par exemple, nomme h1, p et div comme éléments de bloc et a, span, img comme éléments en ligne.

.­.­.

Journalisation HTTP sur IIS et Apache

Apache sous Unix et IIS sur les systèmes Windows enregistrent les requêtes HTTP prêtes à l'emploi sous forme de fichier. Les demandes adressées à votre propre site Web ne doivent pas seulement être régulièrement évaluées et analysées manuellement et automatiquement (par exemple par des analyseurs de fichiers journaux tels que AWStats ) pour se protéger contre les attaques de piratage. Les chemins des fichiers journaux pertinents dans les configurations largement utilisées sont, par exemple, les suivants:

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

Joomla, IIS et les droits d'annuaire

Lors de l'intégration de Joomla 3.2 sur un Windows Server 2008 R2 avec IIS 7.5, des problèmes de droits de répertoire surviennent souvent, qui sont souvent mal résolus avec des paramètres trop généreux. La solution suivante est sûre et entièrement fonctionnelle:

  • Le groupe IIS_IUSRS a besoin des droits pour C: \ inetpub \ wwwroot \: lire et exécuter, afficher le contenu du dossier, lire, écrire
  • Le groupe IIS_IUSRS a besoin des droits pour C: \ Windows \ Temp \: Read & Execute, Show folder contents, Read, Write
  • L'utilisateur IUSR doit être dans le groupe IIS_IUSRS (Gestion de l'ordinateur> Utilisateurs et groupes locaux> Groupes)

Si vous avez besoin de droits de répertoire spéciaux supplémentaires pour tous les fichiers téléchargés via PHP (par exemple pour SSH ou FTP), vous pouvez également les définir pour le dossier C: \ Windows \ Temp \. Si vous téléchargez un fichier via PHP, PHP copie d'abord ce fichier dans le chemin temporaire, puis dans le chemin final. Si le fichier a atterri dans le répertoire temporaire, il hérite de ses droits et les conserve après avoir été déplacé vers le répertoire final.

.­.­.

Anonyme en ligne: impossible?

À l'heure du scandale de la NSA, ce ne sont pas seulement les utilisateurs avertis des réseaux qui se demandent si et comment on peut naviguer sur Internet de manière anonyme afin d'échapper à la frénésie de collecte de données des autorités et des services secrets. Cependant, cela conduit souvent à des erreurs et à des hypothèses incorrectes. Une idée fausse centrale est la réduction de l'anonymat à l'obfuscation de l'adresse IP.

.­.­.

McFIT - nouveau logo, nouvelle image

La chaîne de remise en forme McFIT a fait peau neuve. Alors qu'une mascotte jaune vif en forme de banane ornait le lettrage bleu, un noeud jaune sur fond anthracite est désormais habilement bouclé les uns dans les autres et forme ainsi une structure abstraite. Les couleurs FDP bleu et jaune cèdent la place non seulement au logo, mais également à tous les autres imprimés de la marque McFIT.

.­.­.

Photoshop: voyagez dans le temps

Lorsque les frères Thomas et John Knoll ont commencé à développer Adobe Photoshop en 1987, je n'étais pas encore né. Aujourd'hui, en 2013, le logiciel est l'un des programmes les plus populaires en général et le leader incontesté du marché de l'édition d'images. Grâce à Adobe et au Computer History Museum, le logiciel sera désormais conservé pour la postérité sous une forme très particulière.

.­.­.

Curiosités dans le jeu des rois

Les échecs fascinent les gens depuis des siècles - ses règles sont faciles à apprendre et son incroyable profondeur n'est accessible qu'aux joueurs expérimentés (malheureusement, je n'en fais pas partie). Dans ce qui suit, je traiterai de deux brèves questions: est-il possible, grâce à une séquence correcte de mouvements, d'arriver à une position dans laquelle le roi noir est attaqué par deux reines blanches en même temps? Est-ce également possible avec deux tours blanches?

.­.­.

Docu-soap au lieu de blockbuster: 48 ips

Les films sont généralement enregistrés et lus à 24 images par seconde - mais le format standard "24p", vieux de presque 100 ans, semble vaciller. Afin d'éviter les effets secondaires désagréables (par exemple les fortes secousses lors des panoramiques de caméra moyennement rapides) de la projection à 24 ips, des travaux ont été effectués depuis longtemps pour doubler la fréquence d'images à 48 images par seconde et plus.

.­.­.

Vérifier l'orthographe sur les sites Web

Les vérifications automatisées de l'orthographe et de la grammaire font désormais partie de l'équipement standard des programmes de traitement de texte - mais la vérification automatique de l'orthographe d'un site Web a été relativement fastidieuse jusqu'à présent. Google Chrome fait un premier pas dans cette direction avec une vérification intégrée dans les champs de saisie multilignes (textarea). Il existe maintenant un service qui rend cela possible pour des sites Web entiers.

.­.­.

Numéros de téléphone dans les liens - un risque pour la sécurité?

Il y a quelques semaines , j'ai expliqué comment vous pouvez permettre à vos visiteurs d'ouvrir l'application de téléphone sur des appareils mobiles en appuyant sur un numéro de téléphone. Une possibilité est maintenant apparue de verrouiller irrévocablement la carte SIM ou de réinitialiser l'appareil aux paramètres d'usine sans que l'utilisateur n'ait à faire quoi que ce soit.

.­.­.

Curiosités de courrier électronique intéressantes

Les noms de domaine et les adresses e-mail doivent-ils toujours être en minuscules pour être sûr d'arriver là où vous voulez aller? Ou est-ce complètement hors de propos? Les serveurs de messagerie de Google, par exemple, ont des paramètres étranges avec des effets intéressants, que je présenterai brièvement dans l'article suivant.

.­.­.

Conception des cours boursiers dans les thèmes quotidiens

Je suis de près la conception de divers programmes à la télévision allemande. Presque aucune émission ne conserve sa conception d'entreprise de manière permanente. Le rituel de tous les soirs de la réunion devant l'écran de télévision à 22h15 sur les sujets du jour m'a fait mal au ventre ces derniers temps: un jeu de couleurs complètement déroutant a été choisi depuis plusieurs mois lorsque les cours boursiers actuels sont présentés.

.­.­.

Associez correctement les numéros de téléphone

Si vous optimisez votre propre site Web pour les appareils mobiles, vous devez non seulement prêter attention aux différentes tailles d'écran, aux temps de chargement optimisés et aux fonctionnalités spéciales en cours de fonctionnement (telles que les effets de survol), mais également aux capacités spéciales des appareils. Cela comprend également (certaines personnes peuvent avoir oublié) faire des appels téléphoniques.

.­.­.

Dupliquer du contenu sur les blogs

Le même contenu sur différents sites Web est sanctionné par Google dans de nombreux cas - néanmoins, l'algorithme de Google est intelligent et reconnaît si les éléments de l'en-tête et du pied de page restent les mêmes ou si des passages de test entiers peuvent être atteints deux fois sous différentes URL. La question passionnante est de savoir comment Google traite les pages de présentation des articles de blog.

.­.­.

Augmentez la sécurité de WordPress

La sécurité du système de gestion de contenu WordPress le plus populaire actuellement peut être considérablement augmentée en tournant deux petites vis. Cela ne prend que 5 minutes et deux lignes de code. Bien que le problème puisse également être résolu avec une variété de plugins, je me limite délibérément à des solutions sans plugin.

.­.­.