Отладка PHP с помощью Xdebug

Xdebug — это мощный инструмент отладки и профилирования PHP, который помогает нам анализировать и оптимизировать приложения PHP. Он поддерживает такие функции, как пошаговая отладка, измерение производительности и трассировка стека, что значительно упрощает устранение неполадок и обеспечивает лучшее понимание кода. Ниже приведено небольшое руководство по настройке для использования в VSCode.

.­.­.

О жидкостях

Представьте себе две одинаковые чашки: одна наполнена кофе, другая - молоком, обе на одном уровне. Чайную ложку кофе зачерпывают из кофейной чашки в молочную и перемешивают. Чайную ложку смеси из молочной чашки выливают обратно в кофейную. В какой чашке больше посторонней жидкости?

.­.­.

Сообщения о фиксации в Git с помощью ChatGPT

Сообщениям фиксации в Git часто не уделяют должного внимания. Многие рассматривают их лишь как необходимое зло для сохранения изменений. Осмысленные сообщения фиксации - решающий фактор успеха проекта: они обеспечивают хорошую отслеживаемость изменений, эффективную совместную работу команды и более быстрое устранение неполадок. Нет причин для того, чтобы сообщения фиксации готовились автоматически с помощью искусственного интеллекта.

.­.­.

Прямоугольный февраль

Иногда февраль в календаре имеет необычайно привлекательную форму. Например, в феврале 2021 года вы можете испытать такой момент - "идеально прямоугольный февраль". Этот редкий эффект возникает, когда в феврале ровно \ (28\) дней и 1 февраля выпадает на понедельник. Но как часто такое случается на самом деле и как долго вам придется ждать следующего раза?

.­.­.

Вертикальное центрирование в CSS

CSS все еще запутан для большинства из нас: в нем сотни плохо названных свойств, каждое из которых может повлиять на результат неинтуитивным образом. Вертикальное позиционирование элементов в веб-разработке - сложная задача, и в прошлом оно часто становилось головной болью, но эти дни, к счастью, прошли.

.­.­.

Анимируйте height: 0 до height: auto с помощью CSS

Переходы CSS - хороший способ создать интерактивность., transition в начальное состояние элемента, и браузер анимирует переход между двумя состояниями. Переходы для внутренних переменных элемента, таких как auto были проблемой для веб-разработчиков на протяжении десятилетий, и единственным выходом было динамическое вычисление высоты с помощью JavaScript.

.­.­.

Не существует целого числа между 0 и 1

Не существует \ (n \в \mathbb{Z}^+\), чтобы \ (0 < n < 1\).

.­.­.

Парадокс лифта

В 1950 году физики Джордж Гамов и Марвин Стерн заметили интересное явление: Гамов, у которого был офис на первом этаже шестиэтажного здания, заметил, что в пяти случаях из шести следующий лифт ехал вниз, хотя поднимался вверх. Стерн, работавший на пятом этаже, наблюдал обратное.

.­.­.

Quine

Программа quine, или quine, - это программа, которая при выполнении печатает свой собственный исходный код. Программа quine не должна "выходить за пределы себя", например, печатать содержимое файла, в котором она находится, или использовать интроспективные возможности для печати своего собственного представления. Вместо этого она должна вычислять свой собственный исходный код.

.­.­.

Ротация файлов с помощью сценария bash

Мощные инструменты, такие как logrotate, значительно упрощают ротацию файлов журналов или резервных копий. Файлы ротируются через определенный период времени или по достижении определенного размера. Если у вас нет этого инструмента на удаленном сервере и вы можете выполнять команды SSH только удаленно, вы можете помочь себе небольшим сценарием bash, который удаляет старые файлы и отправляет только один запрос.

.­.­.

Закон Бенфорда

В мире чисел мы часто сталкиваемся с удивительными закономерностями, которые могут быть как интригующими, так и познавательными. Одна из таких закономерностей - закон Бенфорда, также известный как закон первой цифры. Этот математический феномен описывает распределение частоты первых цифр во многих наборах реальных данных и предлагает интересные идеи о природе чисел, которые встречаются в нашей среде.

.­.­.

Парадоксальное вычисление вероятности

У меня двое детей, сын родился в четверг. Какова вероятность того, что у меня родится дочь? Обозначим дни недели числами \ (1, 2, ... , 7\): \ (1\ =\) понедельник, \ (2 =\) вторник и т.д. Теперь мы можем определить событие "в день \ (n\) родился мальчик" как \ (B_n\), и аналогично для \ (G_n\).

.­.­.

Аргумент конца света

Предполагая, что число \ (Y\) всех людей, которые когда-либо родились и когда-нибудь родятся, ограничено, пусть \ (x\) - это ваше абсолютное положение от начала списка. Тогда \ (0 < \frac{x}{Y} \leq 1\). Теперь мы можем с вероятностью \ (95\%\) сказать, что вы находитесь среди последних \ (95\%\) всех людей, когда-либо родившихся, то есть \ (0.05 < \frac{x}{Y} \leq 1\) и, таким образом, \ (Y < \frac{x}{0.05} = \frac{100 \cdot x}{5} = 20 \cdot x\).

.­.­.

Парадокс пьяницы

Следующее предложение известно как «парадокс пьяницы»: «В пабе есть кто-то такой, что, если он или она пьет, все в пабе пьют». Не имеет значения, побуждает ли этот человек пить других или существует какой-то другой черный ход, как мы сейчас увидим. Это хороший пример из математической логики первого порядка.

.­.­.

Угадывание чисел

Мальчик загадывает число, которое равно \(1\) , \(2\) или \(3\) а девочке разрешается задать только один вопрос об этом числе. Мальчик может ответить только « Да », « Нет » или « Я не знаю» . С помощью умного вопроса девочке удается назвать правильное число, о котором думал мальчик после того, как мальчик ответил ей. Какой у Вас вопрос?

.­.­.

Объект без происхождения

Представьте, что однажды вы получаете загадочную посылку без отправителя. Заинтересовавшись, вы открываете пакет и находите кольцо, которое дарите своей дочери. Спустя десятилетия именно она может использовать червоточину, чтобы отправлять предметы в прошлое. Она делает это кольцом, которое вы когда-то ей подарили, завернутым в пакет, который она вам адресует. Вопрос: откуда кольцо?

.­.­.

CI с действиями GitHub

В качестве альтернативы высоко ценимому Travis CI в течение некоторого времени также был доступен GitHub Actions.Как инструмент непрерывной интеграции, он очень хорошо интегрирован в кодовую платформу GitHub и теперь очень стабилен. Действия GitHub основаны на файлах конфигурации YAML, помещенных в репозиторий, где должен выполняться рабочий процесс.

.­.­.

Парадокс Штейна

В 1961 году Джеймс и Штейн опубликовали статью « Оценка с квадратичными потерями ». Возьмите нормально распределенные данные с неизвестным средним значением \(\mu\) и дисперсией \(1\) . Если теперь вы выбираете случайное значение \(x\) из этих данных и должны оценить среднее значение \(\mu\) на основе этого, интуитивно \(x\) является разумной оценкой для \(\mu\) (поскольку присутствует нормальное распределение, случайно выбранное \(x\) , вероятно, близко к \(\mu\) ).

.­.­.

Доступ с PHP к Exchange/Office 365

Давно анонсированноетеперь реальность : Microsoft отключила аутентификацию по паролю для определенных протоколов в Exchange Online с сентября 2022 года в пользу oAuth2. Проблемы GitHub со многими библиотеками и сценариями резервного копирования ясно показывают, что переход застал многих администраторов врасплох. Ниже мы покажем, как вы можете продолжать получать доступ к содержимому вашего почтового ящика Exchange с помощью oAuth2 через PHP через IMAP.

.­.­.

UUID в базах данных

UUID (Объекты универсального уникального идентификатора) — это 128-битные значения, которые используются в базах данных, помимо прочего, для уникальной идентификации записей таблицы. Они представлены в виде шестнадцатеричной строки, разделенной на пять групп, разделенных дефисами (пример: 09fe49b3-4d2b-471c-ac04-36c9e706b85f). Есть многочисленные Обсуждения о преимуществах и недостатках UUID в базах данных — они незаменимы в распределенных системах.

.­.­.

Очистка истории Git, часть 2

Конфиденциальные данные или чрезмерное потребление памяти: есть веские причины изменить историю Git. В этом сообщении блога я объяснил, как удалить файлы из истории Git с помощью BFG . Слабое место BFG — отсутствие поддержки прямых путей , поэтому нельзя специально удалять из истории файлы или папки во вложенных папках. С этим пришло время посмотреть на альтернативные решения.

.­.­.

Ограничение памяти в WordPress

tl;dr: Значение, установленное вручную, или значения по умолчанию WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT не иметь никакого эффекта, если WP_MEMORY_LIMIT/WP_MAX_MEMORY_LIMIT меньше или равно лимиту памяти PHP (далее memory_limit называется) есть. Они используются для установки слишком низких значений memory_limit динамически до рекомендуемого минимума.

.­.­.

Быстрый совет: измените iframe

Если вы внедрили сторонний iframe (например, виджет), вы не сможете получить доступ к его содержимому ни с помощью CSS, ни с помощью JavaScript (из-за так называемой политики того же происхождения ). Однако существует очень простая процедура изменения любого кода (в том числе и в других файлах, которые перезагружаются внутри iframe). Для этого вы направляете URL-адрес через свой собственный прокси-сервер PHP и изменяете содержимое по своему усмотрению.

.­.­.

Монеты в приложении ANTON

ANTON — одно из самых популярных обучающих приложений для учащихся 1–10 классов. Класс. На первый взгляд геймифицированный аспект приобретения монет ("монет") может показаться взрослым странным - но он заметно приумножает мотивацию не только моих детей. Он даже сохраняет небольшую «подушку» из монет, к которым вы не прикасаетесь.

.­.­.

О надежности IBAN

Как известно, немецкий IBAN состоит из кода страны (DE), двухзначной контрольной цифры (согласно ISO 7064 ), кода банка (8-значного) и номера счета (включая номер субсчета, 10). -цифра, пропущенные цифры заполняются ведущими нулями) и, следовательно, является 22-значной. Для вычисления контрольной цифры формируются так называемые BBAN (код банка и номер счета), а также числовой код страны \(1314\) для Германии и контрольная цифра \(00\) ).

.­.­.

Математика в игре Доббль

На последнем семейном вечере дети с энтузиазмом принесли к столу игру Доббл (в версии Гарри Поттера). После 5-го проигрышного раунда (без видимого попадания моей карты в игральную карту) мне, к моему удивлению, сказали, что каждый игрок всегда может найти попадание в каждом раунде. Но мое недоверие подтвердилось лишь дальнейшими пропущенными кругами — дети просто были быстрее.

.­.­.

Время блока биткойнов

Вы знаете: ожидаемое время между двумя блоками биткойнов составляет в среднем \(10\) минут. Теперь вы совершаете важную биткойн-транзакцию и с нетерпением ждете, чтобы увидеть, появится ли она в следующем блоке и когда.:

e50bfacc95975a4e7545d83d8954645f

.­.­.

Корона математика

В еженедельном отчете RKI от 11.11.2021 на стр. 22 указано, что \(36\%\) пациентов с коронавирусом старше 60 лет в отделении интенсивной терапии уже были полностью вакцинированы. В этой возрастной группе \(87\%\) полностью вакцинированы на данный момент (см. Стр. 18).

.­.­.

Расчет индекса видимости SISTRIX

Наряду с Xovi, инструмент SISTRIX является наиболее широко используемой программой анализа в Германии в области SEO. Индекс видимости зарекомендовал себя как квазистандарт для видимости страницы в поиске Google. Параметры, которые включены в его расчет , объясняются, например , здесь, здесь, здесь, здесь и здесь , но точная формула расчета официально не публикуется. Ниже приведены результаты моего личного исследования в течение шести месяцев, которые не претендуют на полноту или правильность.

.­.­.

Десятичные дроби

Конечные десятичные числа называются десятичными дробями, потому что они представляют собой другое представление дробей со степенью десяти в знаменателе. Так это:

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

с \(k \in \mathbb{N}\) и \(q_k\) \(k-1\) -м местом справа после запятой.

.­.­.

Совет: автоматическое изменение версии узла

Для быстрой установки и смены версий узлов рекомендуется использовать nvm . Если вы хотите явно указать требуемую версию узла в проекте, вы помещаете файл с именем .nvmrc с точным номером версии (например, «12.10.0») в ту же папку, в которой находится package.json . Если вы теперь перейдете в папку, следующее расширение файла ~ / .bash_profile для bash выполнит команду nvm use , которая автоматически устанавливает эту версию:

fe497e1c7f9f1547263eb3bffe15f9f6

.­.­.

Используйте контейнерные запросы сегодня

С тех пор, как появился адаптивный веб-дизайн, разработчики задавались вопросом о возможности проектирования элементов DOM на основе их фактического размера, а не размера области просмотра в браузере (с помощью медиа-запросов ). Фактически, контейнерные запросы (первоначально запросы элементов), вероятно, являются наиболее востребованной функцией CSS, которой до сих пор нет в браузерах.

.­.­.

Очистить историю Git

Конфиденциальные данные, такие как пароли, должны находиться в файлах .env и, по возможности, не попадать в репозитории Git. Но это, вероятно, случалось с каждым из нас по крайней мере однажды по ошибке: быстро опубликовал хороший скрипт Google Maps JS API в GitHub Gists (как «общедоступный»), случайно не замаскировав наш собственный закрытый ключ Maps API.

.­.­.

Вырезайте SVG из изображений с помощью clip-path

Если вы хотите вырезать изображение с помощью SVG, рекомендуется использовать свойство CSS clip-path . Следующий скрипт запускает неровные препятствия: SVG можно сохранить с помощью Illustrator, вы можете указать (относительный или абсолютный) URL-адрес SVG (Chrome до сих пор поддерживает только встроенный SVG), а вырез также полностью адаптивен.

.­.­.

Совет: WP_Query и многострочные поля

С помощью атрибута meta_query в мощном классе WordPress WP_Query можно фильтровать сообщения, которые имеют определенные значения в своих мета-полях. Если вы создали многострочное мета-поле (например, с помощью расширенных настраиваемых полей ) и хотите найти только сообщения, содержащие определенное значение в этом поле, разделенное разрывами строки, рекомендуется использовать мир MySQL REGEX .

.­.­.

Встроенная интеграция анимации Adobe Animate

В предыдущей статье я описал, как можно легко интегрировать анимацию из Adobe Animate в веб-сайт с помощью экспорта APNG. Существует также собственный способ экспорта холста HTML5 , но любой, кто уже работал с ним, обнаружит, что он застревает на каждом углу (недостаточная адаптивная поддержка, громоздкая интеграция в существующий веб-сайт, отсутствие разной частоты кадров для каждой анимации, и т. д.).). Библиотека adobe-animate-embed предлагает здесь исправление.

.­.­.

Карты Google без ключа API

Обычно при интеграции Google Maps вы работаете с Maps JavaScript API , который требует ключа API и может привести к затратам, которые не следует недооценивать при более высоких числах доступа. Существуют отличные альтернативы, такие как mapbox или OpenStreetMap , но они еще не обладают разнообразием функций, предлагаемых Google. Сам Google также предлагает способ без ключа API через функцию общего доступа, которую мы можем использовать для наших целей.

.­.­.

Adobe Animate Экспорт APNG

Поддержка браузером анимированных файлов PNG теперь настолько хороша, что анимацию, созданную с помощью Animate CC, можно легко экспортировать в APNG, а затем включить в веб-сайт с помощью простого тега <img>. Это простая и качественная альтернатива методу публикации в Animate CC, который генерирует JavaScript. Действия, которые необходимо предпринять, описаны ниже.

.­.­.

Расширьте поиск WordPress

Если вы хотите расширить собственный поиск WordPress, например, с помощью мета-полей, рекомендуется взглянуть на активированные фильтры . Перехватчик posts_search рекомендуется, чтобы нумерация страниц продолжала работать и будущие улучшения поиска не отменялись . С помощью функций REGEXP и ExtractValue следующий код расширяет этот поиск, чтобы включить в него сообщения, содержащие одно из поисковых слов, введенных во все мета-поля.

.­.­.

Шедевр Годеля

Когда Курт Гёдель опубликовал свои знаменитые теоремы о неполноте в 1931 году, это потрясло основы математической логики: он опроверг тот факт, что все аксиомы, которые могут быть приняты за основу, неизбежно неполны, чтобы доказать все утверждения о числах, - и разрушил это. Мечта Гильберта доказать непротиворечивость математической теории.

.­.­.

Используйте WhatsApp через API

Несмотря на все проблемы с защитой данных, WhatsApp по- прежнему остается любимым приложением для обмена сообщениями в Германии. Помимо специального приложения WhatsApp Business , Facebook также создал официальный интерфейс WhatsApp Business API, чтобы сделать его более интересным для компаний. Если вы хотите программно отправлять сообщения WhatsApp из веб-приложения, есть и другие способы.

.­.­.

Размытие страницы за наложением с помощью CSS

Если вы используете такие элементы, как оверлеи (что является правилом во времена акционизма GDPR) и хотите, например, смягчить область за наложением, вы часто сталкиваетесь с проблемой контекста наложения . Например, если у вас есть элементы, расположенные абсолютно или в фиксированном положении, они внезапно отображаются иначе, чем без примененного фильтра. Но есть лекарство.

.­.­.

Совет: сплит-тестирование с Apache

Вам не нужно использовать мощный инструмент, такой как Google Optimize, для простых тестов разделения URL-адресов, вы также можете решить Apache через .htaccess. Следующий фрагмент кода равномерно распределяет посетителей по обеим версиям для двух страниц https://vielhuber.de/test1.php (вариант 1) и https://vielhuber.de/test2.php (вариант 2). Рандомизация основана на текущем серверном времени.

.­.­.

Об обозначениях разветвленных функций

Фигурные скобки используются в обозначениях определений функций с учетом регистра. Мы преследуем простой вопрос, можно ли также исключить это представление и свести функцию к обозначению, которое обходится без него. Например, функция

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

с помощью четырех основных арифметических операций с использованием однострочного члена?

.­.­.

Серии дат в Google Таблицах

При визуализации данных в Google Таблицах возникает проблема, заключающаяся в том, что \(x\) не может автоматически заполнить недостающие пробелы в текстовых значениях (например, в календарных неделях). Чтобы решить эту проблему, вы генерируете непрерывный ряд дат, сами подсчитываете возникающие ячейки, а затем визуализируете совокупные суммы.

.­.­.

Совет: PHP clearstatcache

Найдите ошибку:

72aaa2dbd201d49fc2ee429ebf68f15b

.­.­.

Взлом Google Translate API

Google предлагает API перевода Google со структурой затрат на основе использования как часть своего Google Cloud. Существует также недокументированный API, который можно использовать без ключа , но который отказывается работать после нескольких запросов. При использовании функции перевода веб-сайтов в Google Chrome заметно, что страницы можно переводить в очень хорошем качестве без каких-либо заметных ограничений.

.­.­.

Совет: автоматическая пометка Git

Если вы связываете Github с Composer , обязательно назначать номер версии через тег git . Следующая команда командной строки определяет текущий день и увеличивает его (согласно SemVer ) на номер версии. Например, версия 1.1.0 следует за 1.0.9. Если тег не назначен, версия автоматически помечается тегом 1.0.0. Такие инструменты, как хлипкие крючки или крючки, сокращают эту пустыню символов.

8cd852c96ec1e60e8a5ac1f3614b2397

.­.­.

Изменить триггер MySQL

К сожалению, MySQL не предлагает функции ALTER TRIGGER. Чтобы отредактировать существующий триггер, вы должны сначала удалить его, а затем заново создать. Оператор CREATE TRIGGER может быть прочитан косвенно через information_schema . Это позволяет нам менять триггеры обходным путем. Для этого вы вносите изменения в результат следующей команды SELECT (заранее измените базу данных и имя триггера) и выполняете запрос.

.­.­.

События изменения триггера в VanillaJS

VanillaJS был на одном уровне с ветераном jQuery почти во всех областях, начиная с ES6, и теперь намного превосходит его. Так что постепенный перенос устаревшего кода с jQuery окупается. Однако вы должны быть осторожны при запуске событий ручного изменения. Например, document.addEventListener не запускается для jQuery.change () . В следующем обзоре перечислены особенности.

.­.­.

Управление файлами cookie с помощью PHP и JS

Настройкой файлов cookie вашими собственными или сторонними скриптами можно точно управлять с помощью PHP и JavaScript. Хотя это не является достаточным решением для внедрения файлов cookie после решения суда против Planet49 (здесь важно, чтобы инструменты отслеживания, такие как Google Analytics, даже не отслеживали и, следовательно, не устанавливали файлы cookie), это может иметь смысл как правило, вносить файлы cookie в белый / черный список.

.­.­.

Деактивировать устройства через скрипт в Windows

Чтобы сэкономить электроэнергию или уменьшить вашу собственную паранойю слежения, рекомендуется полностью отключать устройства, которые не используются на вашем компьютере. Такие устройства, как звуковые блоки или веб-камеры, можно активировать / деактивировать классическим способом с помощью диспетчера устройств. Все это также работает через скрипт. Стандартным способом сделать это раньше был devcon . Windows 10 теперь предлагает более удобный способ сделать это через PowerShell .

.­.­.

Размытие фона в Skype

В Skype есть приятная, несколько скрытая функция: в случае передачи видео фон можно автоматически размыть, нажав на кнопку видео и используя функцию « Размыть фон ». С помощью искусственного интеллекта это работает с любой камерой даже без информации о глубине. Тогда все выглядит более профессионально и затмевает личные или неважные вещи на заднем плане.

.­.­.

Экспорт SVG из Illustrator

SVG играет центральную роль в современной сети. Они не только заменили шрифты значков, но также предлагают возможность манипулирования через CSS или JavaScript. Если вы хотите сохранить векторную графику для Интернета из Adobe Illustrator в формате SVG, вам необходимо выполнить некоторые настройки, чтобы избежать ошибок и сократить время загрузки, которые я представлю в следующей статье.

.­.­.

Проект Эйлер: Решетчатые пути

Project Euler - это серия увлекательных задач программирования, часто с математической подготовкой. Проблемы часто ставятся таким образом, что приходится разрабатывать сложные алгоритмы для достижения цели за разумное время выполнения. Сегодня мы решаем задачу 15: Решетчатые пути , решение которой можно найти простыми комбинаторными средствами.

.­.­.

Автоматические обновления WordPress

WordPress имеет встроенные фоновые обновления, начиная с версии 3.7, и автоматически активирует их для второстепенных выпусков. С помощью фильтров вы можете более точно контролировать поведение, что именно обновляется автоматически. Постоянная, полностью автоматическая установка всех второстепенных, основных обновлений плагинов, тем и переводов не предназначена, но может быть легко выполнена в противном случае.

.­.­.

Оптимизация загрузки OPcache PHP

Например, для веб-сайтов, основанных на WordPress , Joomla или Laravel и не имеющих пользовательского контента, рекомендуется хранить все страницы в статическом HTML-кеше и регенерировать кеш вручную (или автоматически) только при внесении изменений в бэкэнд. Однако, если страница содержит динамический контент, который зависит от сеансов и файлов cookie или также от языка и местоположения, OPcache подходит .

.­.­.

Google Таблицы: Расширяющиеся формулы

Чтобы раскрыть формулы до целых столбцов в Google Таблицах, мы рекомендуем использовать полезную функцию ARRAYFORMULA . К сожалению, это не работает в сочетании с некоторыми другими важными функциями, такими как QUERY или INDIRECT , поэтому вам нужно полностью индивидуальное программирование логики с помощью Google Apps Script или, в качестве альтернативы, ручное копирование формулы до последней строки.

.­.­.

Парадокс Симпсона

Парадокс Симпсона - одно из легко понятных и в то же время удивительных явлений в статистике. Это происходит, когда группы данных показывают определенную тенденцию, но эта тенденция меняется на противоположную при объединении групп. С помощью простого примера можно сразу понять парадокс.

.­.­.

Совет: Диспетчер тегов Google

Диспетчер тегов Google зарекомендовал себя как стандарт де-факто для интеграции скриптов отслеживания. Таким образом, с одной стороны, обязанности (онлайн-маркетинг и программирование) четко разделены, а с другой стороны, вы можете быстро настроить и изменить отслеживание через дополнительный канал развертывания. Вот два небольших совета по настройке триггеров.

.­.­.

Совет: точка доступа FRITZ! Box WLAN

Начиная с FRITZ! OS 07.10 и далее, в случае сбоя интернета FRITZ! Box может временно использовать беспроводную точку доступа сотового телефона в качестве запасного варианта. Функция скрыта в разделе Интернет> Данные доступа> Интернет-провайдер> Существующий доступ через WLAN . После этого FRITZ! Box сам работает как маршрутизатор и предоставляет сети собственный диапазон адресов. Когда Интернет снова станет доступен, вы просто сбросите настройки. Мне также пришлось проверить параметры WLAN> Радиосеть> активен диапазон частот 2,4 ГГц и Интернет> Данные доступа > IPv6> Поддержка IPv6 активна .

.­.­.

Цветок Жизни

Цветок Жизни - это знакомый, похожий на цветок, геометрический узор, который на протяжении тысячелетий находят в храмах, рукописях и в поп-культуре. Шаблон также играет роль в эзотерике. Мы игнорируем все это здесь и концентрируемся на простом построении геометрической формы, которая состоит из нескольких равномерно расположенных перекрывающихся кругов.

.­.­.

Задержка электронной почты в Outlook

Электронная почта с асинхронной коммуникацией, несмотря на все предсказания гибели Slack и Discord, является доминирующим средством коммуникации в бизнес-секторе во всем мире. Помимо Inbox Zero от Merlin Mann, существует множество других стратегий для борьбы с ежедневным потоком электронной почты, включая так называемую задержку электронной почты, то есть отложенную доставку электронной почты.

.­.­.

Спираль чисел

Последние несколько дней я изучал следующий вопрос на StackExchange о спирали целых чисел. Ищем замкнутую формулу для координат \(n\) -го элемента в следующей целочисленной спирали, которая простирается от начала координат наружу и все дальше и дальше в бесконечность:

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

Права на чтение в Google Таблицах

При работе с Google Таблицами в электронной таблице могут быть определены точные пользовательские правила редактирования листов, столбцов и строк. К сожалению, нет возможности ограничить права чтения. Однако это было бы очень полезно во многих сценариях. Таким образом, вы показываете своим клиентам только те заявки, которые их касаются, а сотрудникам - только те проекты, над которыми они работают.

.­.­.

Пряжа plug'n'play

npm - это менеджер пакетов по умолчанию для Node.js. Facebook уже давно разрабатывает альтернативное решение для управления пакетами под названием Yarn . Yarn, похоже, постепенно исчезает из ридмов Github как стандартное решение, а статистика на официальном сайте показывает, что только часть пакетов выполняется Yarn. Тем не менее, стоит подумать нестандартно.

.­.­.

Конвертировать PDF в LaTeX


Система набора \(\TeX\) была разработана в 1977 году легендарным Дональдом Э. Кнутом . Программный пакет \(\LaTeX\) по-прежнему является частью стандартного репертуара при создании научных статей. С помощью следующих двух инструментов уже созданные PDF-файлы и рукописные заметки можно полностью автоматически преобразовать в TeX. Результаты очень многообещающие.

.­.­.

Аргумент моделирования

Аргумент Ника Бострома о моделировании впечатляюще прост и ясен. Он не пытается доказать, что мы живем в симуляции, а вместо этого элегантно формулирует три возможности, одна из которых должна быть верной. Илон Маск также выступает за аналогичный тезис, который сделал эту идею известной широкой публике. Официальной газете более 14 лет, и столько же страниц короткие. Центральное утверждение легко понять и компактно.

.­.­.

Критическая ошибка при использовании WPML + ACF

Мощные плагины WPML для многоязычия и расширенные настраиваемые поля для ваших собственных полей являются стандартным оборудованием во многих установках. Досадно, когда сбои в работе и потеря данных происходят одновременно. Отчеты об ошибках по этому вопросу существуют несколько лет назад и остаются без ответа ( здесь, здесь, здесь, здесь и здесь ). Я только что присмотрелся к проблеме.

.­.­.

Загрузка файла в Facebook в браузере приложений

На некоторых телефонах Android браузеры внутри приложений Facebook и Instagram (на сегодняшний день) ведут себя неправильно, если в поле загрузки на рекламируемой или связанной целевой странице указан атрибут accept. Таким образом, кнопка не функционировала. Если вы откроете страницу во внешнем обычном браузере вне приложения Facebook, все в порядке. Это раздражает (особенно , так как это было сообщено в течение длительного времени ), но может быть решена с помощью обходного пути.

.­.­.

Chrome Devtools: перемещение элементов DOM

Инструменты разработчика Google Chrome - одни из самых мощных на рынке браузеров. Каждый месяц появляются новые функции, которые Google представляет в сжатом виде на YouTube . Но часто радуют мелочи жизни. Если вы хотите удалить элементы DOM в Google Chrome, вы можете сделать это с помощью клавиши удаления. Но только сегодня я заметил, что элементы DOM также можно легко перемещать с помощью перетаскивания.:

.­.­.

Совет: git status --r

Золотое правило вселенной git: «Делайте коммиты рано и часто». Если ночь была немного длиннее или вам просто нужен обзор текущей ситуации на вашем компьютере, команда приведет вас

d8a38f92d0baa14f9d4568826c13ad46

"git status" для всех репозиториев, которые находятся в текущей папке или в любой подпапке, и объединяет значения в хороший обзор:

.­.­.

Стек LAMP в подсистеме Windows для Linux

При поиске оптимальной среды разработки Windows 10 предлагает комплексные решения, такие как XAMPP , WAMP и MAMP , собственную установку вручную и решения виртуализации, такие как Vagrant ( Scotch Box ) и Docker ( Devilbox , Laradock ). Но из-за моих требований, таких как свободная настройка, настоящие SSL-сертификаты с подстановочными знаками, доступ со всех конечных устройств в локальной сети, а также высокая стабильность и производительность, все решения потерпели неудачу, кроме одного.

.­.­.

Уловки для красноречивых отношений в Laravel

Одна из сильных сторон Laravel - элегантный синтаксис. Если у вас много моделей и отношений в Laravel (из-за большого количества таблиц в базе данных), обход часто может закончиться менее элегантным кодом. Со временем у меня зарекомендовали себя три небольших расширения, о которых я хотел бы кратко рассказать ниже. Мы просто используем наследование, магические методы и пользовательские коллекции.

.­.­.

Запретить публичный доступ к .git

Управление версиями Git теперь является стандартом почти для каждого веб-проекта и в любой среде (включая производственную). Git всегда создает подпапку .git, и если она находится на уровне общедоступной папки веб-сайта, вы можете публично получить доступ к конфиденциальным файлам (например, вызов /.git/logs/HEAD показывает последние коммиты) . В нем подробно объясняется, как можно клонировать сторонний (!) Репозиторий Git без списка каталогов.

.­.­.

Node.js / npm / Composer без рута

В более старом сообщении блога я описал, как бесплатно разместить Node.js с помощью Heroku . Теперь я покажу вам, как вы можете установить Node.js , npm и Composer на любой другой общий хост без прав root с помощью нескольких строк кода. С его помощью вы можете устанавливать пакеты, развертывать приложения Vue.js или просто запускать сервер Express.js. Мы всегда работаем в каталоге пользователя и используем nvm - диспетчер пакетов узлов.

.­.­.

Ошибка ассоциативных массивов в PHP <7.2

В PHP <7.2 вы можете создавать массивы, к которым больше нельзя получить доступ должным образом.:

91367d1c4636fd753b381406024e303c

С ним можно кое-что делать.

.­.­.

Выполнять команды сразу после SSH-соединения

Следующая команда устанавливает соединение с сервером через SSH, выполняет некоторые команды (например, изменяет подкаталог и отправляет статус git ) и оставляет оболочку открытой. Загружается файл .bashrc, который позволяет использовать цветные подоболочки. Уловка состоит в том, чтобы сохранить временный файл / tmp / initfile с нужными командами, чтобы запустить подоболочку (в нашем случае bash) с помощью команды --init-file. В этом файле инициализации тот же файл немедленно удаляется снова, чтобы не оставлять следов.

.­.­.

Сетевой диск от имени администратора

Если вы интегрируете сетевой диск в проводник Windows, это не распространяется на всю систему, а только на текущую учетную запись пользователя. Это означает, что вы не можете получить доступ к этому сетевому диску в приложении, которое работает с правами администратора. Это можно легко изменить: создайте новый DWORD (32-разрядный) с именем EnableLinkedConnections со значением 1 в реестре в разделе HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System и перезапустите. В этом случае интегрированные сетевые диски видны повсюду.

.­.­.

Совет: включите папку как диск

Если вы хотите быстро получить доступ к локальной папке под Windows, которую вы используете снова и снова, вы можете просто назначить ей собственную букву диска. Есть только обход через «Подключить сетевой диск», так как вы не можете указать путь, например, C: \ Users \ David \ Downloads. Решением является так называемая административная общая папка диска, которая существует по умолчанию для каждой папки: в приведенном выше примере это будет \\ localhost \ c $ \ Users \ David \ Downloads .

.­.­.

Ловить лягушек

Лягушка прыгает по числовой прямой, и вы пытаетесь ее поймать. Прыжки и ловля всегда чередуются. Лягушка начинается в позиции \(s \in \mathbb{Z}\) и с каждым ходом прыгает на расстояние \(z \in \mathbb{Z}\) (если \(z>0\) , она прыгает вправо, иначе - влево). \(z\) одинаково для каждого прыжка. Привязка заключается в указании целочисленной позиции. Никто не знает ни \(z\) ни \(s\) . Мы показываем, что всегда есть способ поймать лягушку.

.­.­.

Длинные имена файлов в Windows 10

Не только при использовании npm под Windows вы сталкиваетесь с ограничением, которому уже почти 30 лет, который ограничивает пути к папкам и файлам максимум 255 символами. Это не вина NTFS, а LFN . Это приводит к досадным ошибкам и несовместимости между операционными системами. Во времена WSL это прискорбное состояние, которое, к счастью, вы можете исправить самостоятельно в реестре на некоторое время.

.­.­.

Очереди Laravel на localhost

В PHP-фреймворке Laravel в производственных средах работники и супервизоры обеспечивают , например, обработку заданий, хранящихся в Redis . Если вы хотите быть полностью независимым от этого на localhost, вы можете использовать драйвер синхронизации, чтобы всегда выполнять задания немедленно. Недостатком этого является то, что текущий процесс PHP блокируется, и запрос зависает до тех пор, пока задание не будет обработано.

.­.­.

Совет: объединяйте цели в Google Analytics

С помощью библиотеки JavaScript analytics.js от Google Analytics можно отслеживать любые события на веб-сайтах. Эти события представляют собой, например, точное измерение продолжительности пребывания, максимальной глубины прокрутки посетителей или других отдельных действий, таких как отправка форм. Например, если вы хотите оценить рекламные кампании или провести A / B-тестирование, вы создаете так называемые целевые проекты.

.­.­.

Прагматическая инвалидация кеша

Рендеринг на стороне сервера теперь входит в стандартный набор веб-сайтов и приложений. Браузеры, такие как Google Chrome, также стремятся кэшировать как можно больше, чтобы минимизировать время загрузки дальнейших вызовов. Аннулирование кеширования файлов CSS / JS / изображений может быть решено с помощью mod_pagespeed , заголовка Expires / Cache control , манифеста кеша или очень прагматично и напрямую через отдельные параметры после имени файла.

.­.­.

Bitbucket и SSH-ключи

Провайдер Bitbucket не предлагает (даже в платных тарифах Standard и Premium) возможность хранения ключей SSH с правами записи на уровне репозитория. Хранить ваш личный SSH-ключ на рабочем сервере невозможно, иначе вы сможете получить доступ ко всем другим проектам, над которыми в настоящее время работаете, оттуда. Есть так называемые ключи доступа , но они позволяют только читать права.

.­.­.

Windows Sysinternals через сетевой диск

Инструменты от Sysinternals от Марка Руссиновича не должны отсутствовать на любом компьютере с Windows. Если вы всегда хотите иметь под рукой последнюю версию, вы можете интегрировать ее как сетевой диск. Команды net use s: \\ live.sysinternals.com \ DavWWWRoot в командной строке достаточно (как обычный пользователь). Тогда хорошие инструменты, такие как PsList, PsKill или Process Explorer, переносятся на диск S.

.­.­.

Совет: Google Таблицы и Недели Календаря

При выводе календарных недель для определенной даты нужно быть осторожным в Google Таблицах (как и в Microsoft Excel). Функция = КАЛЕНДАРНАЯ НЕДЕЛЯ (СЕГОДНЯ ()) вычисляет с использованием американского стандарта, для которого первый день года всегда присваивается календарной неделе 1. В Германии это определяется по- другому: здесь первая календарная неделя - это неделя, с которой по крайней мере 4 дня приходятся на новый год. В Google Таблицах вы можете решить эту проблему (среди других интересных альтернатив, таких как = КОРОТКИЙ ((СЕГОДНЯ () - ДАТА (ГОД (СЕГОДНЯ () - ОТДЫХ (СЕГОДНЯ () - 2; 7) +3); 1; ОТДЫХ (СЕГОДНЯ ( ) -2; 7) -9)) / 7) и измененный = КАЛЕНДАРНАЯ НЕДЕЛЯ (TODAY (); 21) ) легко с помощью специально разработанной функции = ISOWEEKNUM (TODAY ()) .

.­.­.

Самоподписанные SSL-сертификаты в Chrome 58

Начиная с Let's Encrypt , зашифрованные веб-сайты стали стандартом. Даже при локальной разработке сертификаты SSL стали незаменимыми (например, navigator.geolocation требует локального шифрования SSL). Начиная с версии 58 Chrome, поддержка CN (Common Name) была прекращена, а SAN (Subject Alternative Name) стал обязательным. В результате Chrome внезапно перестает принимать все стандартные SSL-сертификаты.

.­.­.

В два раза старше двух человек

Рассмотрим двух людей \(A\) и \(B\) , которые родились не в один день, а \(A\) младше \(B\) . Покажите, что существует ровно два возрастных созвездия \(a,b \in \mathbb{N}\) , для которых применяется: \(2\cdot a = b\) . Сначала мы устанавливаем \(d \in \mathbb{R}^+\) как разницу в возрасте между \(A\) и \(B\) при рождении \(A\) с \( d = d_0 + d_1 \) , \( d_0 \in \mathbb{N}_0, d_1 \in \mathbb{R}, d_1 \in [0;1[\) . Теперь рассмотрим произвольный момент времени \(x \in \mathbb{R}^+\) после рождения \(A\) с \(x = x_0 + x_1\) , \(x_0 \in \mathbb{N}_0, x_1 \in \mathbb{R}, x_1 \in [0;1[\) .

.­.­.

Git и пустые папки

Поскольку Git не знает папок, только файлы, пустые структуры папок не попадают в репозиторий. Однако, поскольку многим фреймворкам и проектам это абсолютно необходимо, они должны там оказаться. Распространенной практикой является создание так называемых файлов-заполнителей (часто называемых .gitkeep), которые неявно определяют структуру папок. Эти файлы можно легко создать и, при желании, также обеспечить игнорирование других файлов в папках.

.­.­.

Бесплатный хостинг Node.js на Heroku

Хостинг для Node.js все еще не очень распространен, особенно в немецкоязычных странах. Американская облачная компания Heroku предлагает здесь решение - и даже бесплатно . Вы всегда замечаете парадигму «Создавайте приложения ... а не инфраструктуру» и почти не имеете никаких ограничений. В качестве примера мы реализуем небольшое задание cron на основе PhantomJS , которое каждый день отбрасывает веб-сайт и отправляет заголовок страницы по электронной почте.

.­.­.

Функция спаривания Кантора

В дополнение к диагональным аргументам Георг Кантор также разработал функцию спаривания Кантора \(\mathbb{N}^2 \to \mathbb{W}, \quad c(x,y) = \binom{x+y+1}{2}+x = z\) , который кодирует любые два числа \(x,y \in \mathbb{N}\) в новое число \(z \in \mathbb{N}\) . Например, \(c(3,4)=\binom{3+4+1}{2}+3 = \binom{8}{2}+3=\frac{8!}{6!\cdot 2!} +3 = 31 = z\) уникальное кодирование чисел \(3\) и \(4\) в числе \(31\) . Показать: набор значений \(\mathbb{W} = \mathbb{N}\) , т.е. \(z\) принимает все натуральные числа.

.­.­.

Земля и горох

\(r_1 = 6370km\) на землю (как шар с \(r_1 = 6370km\) ) и горошину (как шар с \(r_2 = 2mm\) ) и \(r_2 = 2mm\) веревку над экватором так, чтобы она плотно прилегала к поверхности. Теперь вы удлиняете обе веревки на один метр каждая. Обе веревки теперь должны снова быть полностью вытянутыми над экватором - они больше не полностью лежат на поверхности, а парит над экватором. Насколько высоко над поверхностью веревка плавает над землей, насколько высоко над горошиной?

.­.­.

Вероятности на аналоговых часах

В каком% времени суток все три стрелки аналоговых часов находятся в правой половине циферблата? Во-первых, посмотрите на часовую стрелку, которая находится справа каждые 12 из 24 часов (50%). С этого момента минутная стрелка будет находиться справа через 6 часов из 12 (25%). Из этих 6 часов секундная стрелка проводит 3 часа на правой стороне (12,5%).

.­.­.

Laravel: работа с красноречивыми отношениями

Laravel значительно упрощает взаимодействие с базой данных с помощью Eloquent. При работе с красноречивыми отношениями при вызове динамических переменных (с помощью магических методов PHP) вы должны знать, что экземпляры моделей не отражают новые изменения, а постоянно сохраняются при первом вызове.

.­.­.

Bitbucket: удалить папку из истории Git

При размещении Git на Bitbucket существует жесткое ограничение в 2 ГБ - если оно превышено, у вас будет доступ только для чтения к репозиторию. Чтобы предотвратить это, например, вы можете ретроспективно удалить большие папки или файлы из своих коммитов. Но также и в других случаях (если данные доступа вошли в историю или node_modules вернулись к мастеру) вам придется ретроспективно манипулировать историей Git, вопреки его природе.

.­.­.

Интегрировать SSL-сертификат от DomainFactory в IIS

В эпоху Let's Encrypt зашифрованные веб-сайты стали стандартом. Однако также часто требуются подстановочные или расширенные сертификаты с особо надежной проверкой владельца. Провайдер DomainFactory предлагает недорогие SSL-сертификаты, которые также можно использовать извне. Настройка на текущем IIS выполняется без CSR с помощью OpenSSL . Далее я кратко покажу, какие шаги необходимы для этого.

.­.­.

Парадоксальная выигрышная стратегия при угадывании чисел

Томас М. Ковер задал следующий удивительный вопрос в 1987 году в «Открытых проблемах коммуникации и вычислений»: Игрок \(X\) записывает два разных и случайно выбранных натуральных числа \(A\) и \(B\) в два разных. Кусок бумаги и положите лицевой стороной вниз на стол. Игрок \(Y\) теперь случайным образом выбирает один из этих клочков бумаги, видит число и должен решить, больше или меньше это число, чем другое число, которое все еще лежит лицом вниз на столе.

.­.­.

Футбол и линейная алгебра

Когда начинается футбольный матч, мяч находится в центре поля, а затем перемещается по полю в течение 45 минут, перемещаясь и поворачиваясь. В начале второго тайма мяч снова оказывается в центре поля. С помощью простых средств линейной алгебры мы покажем, что либо бесконечное количество точек на поверхности всегда точно в том же положении, что и в исходном состоянии, либо ровно 2.

.­.­.

Laravel: отладка шаблона Blade

При отладке шаблонов лезвий в Laravel 5. * вы часто получаете бессмысленные сообщения об ошибках, относящиеся к кэшированным представлениям. Раньше все были лучше: представление отладки в версии 4 содержало больше полезных функций, а также было лучше визуально. С помощью нескольких строк кода вы можете вернуть эту функциональность с помощью возгласов («Ошибки PHP для крутых ребят»).

.­.­.

Гармоничное отображение логотипов с помощью JavaScript

Будь то ссылки, партнеры или клиенты - во многих случаях вы хотите гармонично разместить несколько логотипов рядом друг с другом. Пропорции логотипов в большинстве своем непостоянны. Вы часто следуете своему чутью в представлении размера в дизайне, но есть также точный метод расчета для визуально привлекательного представления путем уравнивания областей логотипов. В следующем примере вы можете сделать это с помощью всего нескольких строк JavaScript.

.­.­.

Проверить наличие переменных в PHP / JS

При ежедневной работе с переменными в PHP и JavaScript часто возникает вопрос, является ли переменная пустой. Для проверки полезно знать собственные функции и их различия. К сожалению, нет простого способа интуитивно проверить, присутствует ли переменная или нет. Приведенная ниже матрица иллюстрирует, что под этим подразумевается. Однако то, что вы хотите, можно дополнить небольшими вспомогательными функциями.

.­.­.

Массовые звонки с sipgate.io

С помощью sipgate.io компания Sipgate создала захватывающий облачный API, с помощью которого можно получить множество опций для интернет-телефонии. Учетная запись является бесплатной, и есть также возможность бесплатно установить любой бесплатный номер отправителя в магазине функций. Документация sipgate.io по-прежнему может быть расширена, но, немного прочитав официальный Sipgate API, можно быстро реализовать интересные вещи.

.­.­.

Рекурсия в SQL

Системы управления реляционными базами данных на основе SQL лишь условно подходят для иерархических или рекурсивных запросов. Другие системы, такие как ArangoDB, здесь лучше (об этом много говорили на GOTO 2016 ). Вы также можете генерировать рекурсивные запросы в SQL с помощью общих табличных выражений и, таким образом, запрашивать классические родительские / дочерние таблицы для всех предков и потомков.

.­.­.

WordPress: отключить архивные страницы

По данным w3techs.com , около 27,4% всех веб-сайтов во всем мире в настоящее время работают с помощью WordPress. В очень многих случаях это не блоги. WordPress автоматически генерирует множество, часто неиспользуемых URL-адресов и создает столько ссылок, проиндексированных Google, что оператор веб-сайта даже не отображал их на экране. Все это можно отключить простой командой.

.­.­.

Массовое переименование полей формы PDF

Если вы, как и я, столкнетесь с проблемой переименования тысяч имен полей формы, идеально подойдет консоль JavaScript, включенная в Acrobat. При этом вы можете не только выполнить любой код JavaScript, но и получить доступ ко всему содержимому PDF-файла (включая поля формы). Поскольку в JS API нет собственной функции для переименования, поля формы копируются со всеми их свойствами и получают новое имя.

.­.­.

Торговое ПО: изменение варианта ремонта

В Shopware 5 известная проблема до сих пор не решена: если вы создаете товар с взаимозависимыми вариантами с взаимоисключающими параметрами конфигурации, может случиться так, что некоторые комбинации не могут быть выбраны во внешнем интерфейсе и, следовательно, не могут быть заказаны. С помощью плагина проблему можно легко исправить на данный момент.

.­.­.

Одна строка для бесконечности простых чисел

Существует множество доказательств бесконечности простых чисел - известная теорема Евклида из Книги Элементов не пропущена ни в одном базовом курсе теории чисел. В American Mathematical Monthly (выпуск 122) в 2015 году Сэм Нортшилд опубликовал не менее элегантное доказательство противоречия в виде однострочного текста, о котором я не хочу от вас утаивать (с краткими комментариями).

.­.­.

Сделайте командную строку Windows ярче

Скучную командную строку Windows можно визуально обновить, выполнив несколько простых шагов. Таким образом, вы можете не только настроить цвет и размер командной строки, но и расширить ее функционально (увеличить буфер, установить большой набор инструментов UNIX). Хотя командная строка не похожа на PowerShell 6.0 или новую оболочку Windows 10 Bash Shell , ее не нужно прятать для повседневных задач.

.­.­.

Динамические URL-адреса в Joomla

В системах управления контентом URL-адреса часто не всегда фиксируются заранее и поэтому не создаются заранее статически (как вклад или пункт меню), а адресуют объекты из базы данных. Подобно WordPress ( как описано здесь ), в Joomla также возможно создавать динамические структуры URL (независимо от внутренней системы псевдонимов). Здесь можно использовать либо JRouter, либо однострочник в .htaccess.

.­.­.

JavaScript PasteJacking

Современные браузеры могут использовать JavaScript для чтения и записи в буфер обмена пользователя, что означает, что они также могут управлять им. Базовая технология уже давно устарела, но только в последнее время в сети циркулирует все больше и больше атак (под названием «PasteJacking»), которые используют эту возможность для неопытных пользователей. Реализация на JavaScript банальна.

.­.­.

Поменять местами столбцы в PostgreSQL

Обмен столбцами таблицы SQL является частью стандартного репертуара MySQL - это (пока) не поддерживается в PostgreSQL. Хотя официальная вики посвящает проблеме отдельную статью , в ней не показано практического решения, которое также поддерживает представления, индексы и триггеры. Следующий класс выполняет эту работу (как для MySQL, так и для PostgreSQL) либо в командной строке, либо непосредственно в Laravel 5.

.­.­.

Совет для проводника Windows

Если вы хотите быстро открыть командную строку в папке в проводнике Windows, щелкните (на один уровень выше) правой кнопкой мыши и удерживайте нажатой клавишу Shift в папке, а затем выберите «Открыть командную строку здесь» из контекстного меню. Я только что обнаружил другой, более быстрый способ, когда вы находитесь внутри папки: здесь вы нажимаете на текущий путь к папке, набираете «cmd» и подтверждаете нажатием Enter.

.­.­.

Категории WordPress: просмотр в виде дерева / наследование

Если вы работаете с иерархическими категориями (таксономиями) в WordPress, вы заметите, что, с одной стороны, отображение отмеченных категорий в бэкэнде сбивает с толку, а с другой стороны, сообщения не попадают автоматически в родительскую категорию, если они помещаются в дочернюю категорию. И то, и другое можно исправить всего несколькими строками кода, используя мощную систему ловушек (в форме действия и фильтра).

.­.­.

PHP 7 и оператор космического корабля

В дополнение к новым функциям, таким как подсказка типов для скалярных типов данных или оптимизированная производительность , PHP 7 также содержит множество новых полезных расширений языка. «Оператор космического корабля» наконец-то попал в мир PHP (программисты на Ruby и Perl знали его давно). \($a <=> $b\) возвращает \(0\) тогда и только тогда, когда оба операнда равны, \(1\) если левый больше, и \(-1\) противном случае.

.­.­.

IIS 7.5 PHP FastCGI timeout

Если вы интегрируете PHP через FastCGI в IIS 7.5, каждый сценарий по умолчанию прерывается через 600 секунд (т.е. 10 минут). Изменение известной переменной «max_execution_time» в php.ini не влияет на это, вы (также) должны изменить настройки FastCGI. Для этого IIS предлагает удобный интерфейс для управления соответствующими переменными.

.­.­.

Парадокс стохастики

Теория условной вероятности влечет за собой красивые задачи с нелогичным решением. Помимо хорошо известной проблемы братьев и сестер , я сейчас кратко рассмотрю еще один пример: «Теперь у меня двое детей. Один из них - мальчик, родился в четверг. Какова вероятность того, что другой ребенок тоже мальчик?»

.­.­.

Git, Shopware и пустые папки

Система контроля версий файлов Git проста, быстра и портативна. Git всегда обрабатывает объекты, а именно файлы. Папки создаются только в том случае, если в них есть файлы, иначе Git даже не запишет их. В некоторых проектах это имеет неприятные побочные эффекты. Например, для функционирования система Shopware shop полагается на строгое соблюдение структуры папок.

.­.­.

Посуда: индивидуальные расходы на доставку

Shopware имеет мощный модуль стоимости доставки, который вы можете специально вмешать в расчет. В нашем случае мы хотим реализовать следующий сценарий: стоимость доставки товара изначально определяется в зависимости от веса товара (указаны ограничения веса). Только для особых исключений должна быть возможность установить фиксированную стоимость доставки для каждого товара.

.­.­.

Динамические постоянные ссылки в WordPress

Систему постоянных ссылок WordPress можно очень хорошо адаптировать к вашим потребностям с помощью структурных тегов . Параметр% postname%, вероятно, является наиболее распространенным и практичным решением. Однако, если вы хотите реализовать настоящие динамические ссылки, вам сначала нужно расширить систему своим собственным кодом.

.­.­.

Поврежденные гиперссылки в Word и Excel

Казалось бы, при открытии гиперссылок из документа Word / Excel стандартный браузер запускается с нужным URL. Как ни странно, это не так - что приводит к неприятным побочным эффектам и делает невозможными ссылки на страницы, защищенные входом в систему на основе сеансов / файлов cookie, в указанных программах Office.

.­.­.

Парадокс ко Дню отца

Сегодня ко Дню отца дочь дарит отцу картину, которую она нарисовала сама и которую так долго ждал от нее. Дочь говорит: «Я подарю вам картину, которую вы желали, и мой подарок будет сюрпризом». Отец делает паузу и обдумывает истинность этого утверждения.

.­.­.

Интегрируйте динамические скрипты с HTTPS и без него

Если вы включаете незашифрованные сценарии в область <head> и вызываете страницу с существующим зашифрованным сертификатом SSL, эти сценарии блокируются и, следовательно, не выполняются. Если вы просто опустите протокол, все скрипты автоматически вызываются в зашифрованном виде, если доступ к веб-сайту осуществляется через https: // - в противном случае - без шифрования.

.­.­.

Удобство использования в раскрывающихся меню

При работе с многомерными выпадающими меню часто возникает проблема, заключающаяся в том, что случайно открываются неправильные подменю или желаемое подменю случайно закрывается. Этот эффект возникает, когда указатель мыши покидает соответствующее меню на верхнем уровне при переходе к уже развернутому подменю.

.­.­.

Shopware: автоматическое отключение вариантов

В Shopware весь товар деактивируется в случае реального заказа на продажу, если у всех вариантов уровень запасов меньше или равен 0. Чтобы реализовать это в качестве варианта, я запрограммировал небольшой плагин, Bootstrap.php которого я предоставлю ниже.

.­.­.

Двойной запрос пароля с SSL

Следующее созвездие всегда имеет неприятный побочный эффект: если вы защищаете свой сайт с помощью htaccess / htpasswd и в то же время принудительно устанавливаете SSL-соединение, вам всегда нужно вводить один и тот же пароль дважды (один раз для http и еще раз после успешного входа для https). С помощью разделов конфигурации, представленных в Apache 2.4, проблема может быть легко решена.

.­.­.

Многострочные строки в JavaScript

При программировании с помощью JavaScript часто сталкиваешься с невозможностью реализовать многострочные строки, также вводя их в несколько строк кода. Хотя задача на других языках, таких как PHP или Ruby, не является проблемой, с JavaScript вы можете сначала обойтись только обходными путями, использование которых определяется личным вкусом или поддержкой браузера.

.­.­.

mail () в PHP с UTF-8 и умляутами

Отправку электронной почты с помощью PHP лучше всего реализовать с помощью мощных классов, таких как PHPMailer . Удобные функции оболочки позволяют использовать содержимое UTF-8, вставлять изображения и отправлять зашифрованные вложения с помощью всего нескольких строк кода. Если вы хотите сэкономить накладные расходы и использовать PHP-функцию mail () вопреки рекомендациям, у вас могут возникнуть проблемы при использовании umlauts и UTF-8 в последнем случае.

.­.­.

Google PageSpeed ​​Insights vs. Гугл Аналитика

Инструменты проверки, такие как W3C Markup Validation Service или Google PageSpeed ​​Insights , полезны для объективной оценки кода и производительности веб-сайта. Google, в частности, влияет на целую отрасль с помощью таких понятий, как верхняя часть страницы, а также предоставляет строгие, но полезные рекомендации по сжатию и кешированию изображений. Однако может случиться так, что Google встанет на ноги.

.­.­.

Добро пожаловать в JavaScript 2.0

JavaScript доминирует в сети и ECMAScript, ядро ​​языка растет. Новая спецификация (ES6 или JS2), появление которой ожидается в середине этого года, принесет с собой многочисленные инновации, которые можно опробовать уже сегодня. Firefox в настоящее время имеет лучшую поддержку , но также возможны полифиллы через так называемые транспилеры, такие как Google Traceur. Ниже приводится краткий обзор новых возможностей ES6.

.­.­.

0,99999... = 1?

Будь то в школе или в университете: время от времени \( 0,99999... = 1 \) интересный вопрос, включающий вопрос о том, верно ли следующее уравнение: \( 0,99999... = 1 \) . Хотя бесконечность \(0,99999... = A\) в левой части уравнения, мы даем ей имя: \(0,99999... = A\) . После умножения на множитель \(10\) и простых алгебраических преобразований мы получаем первое поразительное понимание.

.­.­.

SQL: низкая производительность, несмотря на индекс

Я только что столкнулся со следующей проблемой производительности базы данных SQL: в таблице SQL под названием «пользователи» с ~ 1 000 000 записей потребовалось недопустимо 28 секунд, чтобы определить количество сегодняшних регистраций. Время регистраций было сохранено в формате «Ymd H: i: s» в столбце «создано».

.­.­.

Маленькая шахматная задача

Помимо хорошо известной проблемы с конем и проблемой ферзя, в мире шахмат есть много других интересных вопросов. В предыдущей записи блога я затронул два небольших любопытства. Если вы решите шахматные задачи математически, вы быстро обнаружите, что математика дает очень простые и ясные ответы на многие вопросы.

.­.­.

Файлы, доступные в Интернете с помощью OneDrive

Если Один диск, Dropbox, Гугл драйв, OwnCloud, Box.net: Вне зависимости от того, в каком ящике вы храните файлы - сервисы практически одинаковые. Клиенты, доступные для всех настольных и мобильных систем, стандартные незашифрованные файлы и параметры совместного использования отличаются незначительно. Но OneDrive, который был постоянно интегрирован в систему с Windows 8.1, имеет особую особенность: только файлы доступны в Интернете.

.­.­.

PHP: доступ к файлам с умляутами под Windows

Файлы на веб-серверах всегда должны быть без пробелов (не "this is a picture.jpg"), без умляутов или специальных символов (не "football.jpg"), без обратной косой черты (не "Arbeit \ Auto.jpg") и в нижнем регистре (не " test.JPG "). Однако недавно мне пришлось получить доступ и обработать большое количество файлов предустановок с любым именем файла для проекта клиента.

.­.­.

SQL-запрос для определения списка ранжирования

Сегодня, работая над клиентским проектом, я столкнулся со следующей задачей: возьмите таблицу SQL «пользователь» со столбцами «id» и «score» и определите список ранжирования всех пользователей, отсортированных по «score», в котором пользователи с получить тот же рейтинг с одинаковым счетом. Эту задачу можно легко и интуитивно решить с помощью пользовательских переменных .

.­.­.

Facebook SDK: проверка токенов на стороне сервера

При работе с Facebook SDK (точнее, при реализации функции входа в Facebook в интерфейсе REST) ​​токен, полученный клиентом от Facebook, должен быть сначала проверен на достоверность сервером перед выполнением дальнейших операций. .

.­.­.

Chrome DevTools: адресация элементов DOM

Будь то Chrome, Firefox, Opera, Safari или даже Internet Explorer: хотя хорошо спроектированные инструменты разработчика были уникальным преимуществом Firefox и популярного плагина Firebug еще несколько лет назад, мощные инструменты разработчика теперь являются частью стандартной области применения каждого браузера, в котором есть что открыть. дает.

.­.­.

Доступ к файловой системе с помощью SQL

Я только что наткнулся на приятную возможность в MySQL подключиться к файловой системе и получить ценную информацию, например о существовании файлов и папок или их содержимом. Это может быть очень полезно в качестве альтернативы функции php file_exists , поскольку информация о существовании файла (ов) все еще может быть использована в запросе для дальнейшей сортировки и функций агрегирования.

.­.­.

Анимированные фоны с холстом

Анимированные векторные фоны могут разнообразить веб-ландшафт, характеризующийся полноэкранными фотографиями и видео. Было бы хорошо, если бы это сопровождалось временем загрузки и широкой аппаратной и программной поддержкой. Одно из решений: холст. Элемент HTML, управляемый JavaScript, поддерживается всеми текущими браузерами и воспроизводится с высокой производительностью на мобильных устройствах.

.­.­.

Фиксированное соотношение сторон для элементов HTML

Как веб-разработчик, часто бывает неловко работать с элементами HTML, которые сами по себе - в отличие, например, от элемента img - не имеют ни фиксированного размера, ни фиксированного соотношения сторон. Часто требуется добиться, чтобы эти объекты вели себя отзывчиво, но при этом сохраняется пропорция между шириной и высотой. CSS по умолчанию не предлагает здесь интуитивно понятного решения. Но с помощью свойства vertical padding вы можете достичь своей цели.

.­.­.

Решение суда об использовании стоковых фотографий

После того , как окружной суд Кельна греб назад в скандале RedTube на прошлой неделе , и никогда не было разрешено утверждать сдачу спорных IP - адреса, она обеспечивает еще один весьма спорный и сомнительный суд с решением 14 O 427/13: Автор Штоко- Фотографии из определенного агентства изображений также должны быть названы через прямой доступ к изображениям через их URL.

.­.­.

Goodbye Block & Inline - Добро пожаловать в HTML5

Инновации в спецификации HTML5 многочисленны, и многие из них уже поддерживаются большинством браузеров - ниже я хочу выделить интересное изменение правил для вложенных элементов. В HTML всегда проводилось различие между блочными и встроенными элементами. Например, определение типа документа HTML4 называет h1, p и div как блочные элементы, а a, span, img как встроенные элементы.

.­.­.

Ведение журнала HTTP в IIS и Apache

И Apache в Unix, и IIS в системах Windows записывают HTTP-запросы в готовом виде в виде файла. Запросы к вашему собственному веб-сайту следует не только регулярно оценивать и анализировать вручную и автоматически (например, анализаторами файлов журналов, такими как AWStats ), чтобы защитить себя от хакерских атак. Пути к соответствующим файлам журнала в широко используемых конфигурациях, например, следующие::

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

Joomla, IIS и права на каталог

При интеграции Joomla 3.2 на Windows Server 2008 R2 с IIS 7.5 часто возникают проблемы с правами доступа к каталогам, которые часто неадекватно решаются с помощью слишком щедрых настроек. Следующее решение безопасно и полностью функционально:

  • Группе IIS_IUSRS требуются права для C: \ inetpub \ wwwroot \: чтение и выполнение, отображение содержимого папки, чтение, запись
  • Группе IIS_IUSRS требуются права для C: \ Windows \ Temp \: чтение и выполнение, отображение содержимого папки, чтение, запись
  • Пользователь IUSR должен быть в группе IIS_IUSRS (Управление компьютером> Локальные пользователи и группы> Группы)

Если вам нужны дополнительные специальные права на каталог для всех файлов, загружаемых через PHP (например, для SSH или FTP), вы также можете установить их для папки C: \ Windows \ Temp \. Если вы загружаете файл через PHP, PHP сначала копирует этот файл во временный, а затем в конечный путь. Если файл попал во временный каталог, он наследует свои права и сохраняет их после перехода в последний каталог.

.­.­.

Анонимный онлайн: невозможно?

Во время скандала с АНБ не только пользователи, разбирающиеся в сетях, задаются вопросом, можно ли и как можно анонимно перемещаться в Интернете, чтобы избежать мании сбора данных властями и секретными службами. Однако это часто приводит к ошибкам и неверным предположениям. Основное заблуждение - это сокращение анонимности до обфускации IP-адреса.

.­.­.

McFIT - новый логотип, новый имидж

Сеть дисконтных фитнес-центров McFIT преобразила себя. В то время как ярко-желтый талисман в виде банана украшал синие буквы, желтый бант на антрацитовом фоне теперь искусно вплетен друг в друга, образуя абстрактную структуру. Синий и желтый цвета FDP уступают место не только логотипу, но и всем остальным принтам бренда McFIT.

.­.­.

Photoshop: путешествие в прошлое

Когда братья Томас и Джон Нолл начали разработку Adobe Photoshop в 1987 году, я еще не родился. Сегодня, в 2013 году, программа является одной из самых популярных программ в целом и безусловным лидером рынка обработки изображений. Благодаря Adobe и Музею истории компьютеров программное обеспечение теперь будет сохранено для потомков в совершенно особом виде.

.­.­.

Курьезы в игре королей

Шахматы веками очаровывали людей - их правила легко усвоить, а их невероятная глубина доступна только опытным игрокам (к сожалению, я не один из них). Далее я отвечу на два коротких вопроса: возможно ли с помощью правильной последовательности ходов добраться до позиции, в которой черный король подвергается атаке двумя белыми ферзями одновременно? Возможно ли это и с двумя белыми башнями?

.­.­.

Доку-мыло вместо блокбастера: 48 кадров в секунду

Фильмы обычно записываются и воспроизводятся со скоростью 24 кадра в секунду, но почти 100-летний стандартный формат «24p», кажется, колеблется. Чтобы предотвратить неприглядные побочные эффекты (например, сильное подергивание при панорамировании камеры на средней скорости) проекции 24 кадра в секунду, люди долгое время работали над удвоением частоты кадров до 48 кадров в секунду и более.

.­.­.

Проверка орфографии на сайтах

Автоматическая проверка орфографии и грамматики теперь является стандартным оборудованием в программах обработки текста, но до сих пор автоматическая проверка орфографии на веб-сайте была относительно обременительной. Google Chrome делает первый шаг в этом направлении со встроенной проверкой в ​​многострочных полях ввода (textarea). Теперь есть услуга, которая делает это возможным для целых веб-сайтов.

.­.­.

Телефонные номера в ссылках - угроза безопасности?

Несколько недель назад я сообщал, как вы можете разрешить своим посетителям открывать приложение для телефона на мобильных устройствах, нажав на номер телефона. Теперь появилась возможность безвозвратно заблокировать SIM-карту или сбросить устройство до заводских настроек без каких-либо действий со стороны пользователя.

.­.­.

Интересные электронные письма

Должны ли имена доменов и адреса электронной почты всегда быть строчными, чтобы быть уверенным, что вы попадете туда, куда хотите? Или это совершенно неважно? Например, почтовые серверы Google имеют любопытные настройки с интересными эффектами, о которых я кратко расскажу в следующей статье.

.­.­.

Дизайн биржевых цен в ежедневных темах

Я внимательно слежу за оформлением различных программ на немецком телевидении. Вряд ли какая-либо программа сохраняет надолго свой фирменный стиль. Вечерний ритуал встречи перед телеэкраном в 22:15 по злободневным темам в последнее время вызывает у меня боль в животе: вот уже несколько месяцев для представления текущих биржевых цен выбрана совершенно запутанная цветовая схема.

.­.­.

Свяжите номера телефонов правильно

Если вы оптимизируете свой собственный веб-сайт для мобильных устройств, вы должны не только обращать внимание на разные размеры экрана, оптимизированное время загрузки и специальные функции в работе (например, эффекты наведения), но также учитывать особые возможности устройств. Это также включает (некоторые люди, возможно, забыли) телефонные звонки.

.­.­.

Повторяющийся контент в блогах

Один и тот же контент на разных веб-сайтах во многих случаях наказывается Google - тем не менее, алгоритм Google умен и распознает, остаются ли элементы в верхнем и нижнем колонтитуле одинаковыми или можно получить доступ ко всем тестовым фрагментам дважды по разным URL-адресам. Возникает интересный вопрос, как Google работает со страницами обзора статей в блогах.

.­.­.

Повышение безопасности WordPress

Безопасность самой популярной в настоящее время системы управления контентом WordPress можно значительно повысить, повернув два винта. Это займет всего 5 минут и две строки кода. Хотя проблему можно решить с помощью различных плагинов, я сознательно ограничиваюсь решениями без плагинов.

.­.­.