Pull to refresh
107
0
Роман Парпалак@parpalak

мастер на все руки

Send message

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

Метод escapeIdentifier в общем случае, видимо, нужен, запишу в бэклог. В моем случае с названиями таблиц и полей проблем не было.

Метод deleteEntity делает три запроса, чтобы понять, произошло ли реально удаление строки из БД. Мне захотелось сделать фичу с выводом сообщения об успешном удалении или об ошибке в процессе. Теоретически можно было бы использовать PDOStatement::rowCount(), но в документации явно сказано, что rowCount не работает в SQLite и не всегда работает в PostgreSQL. Вы можете предложить хотя бы один сценарий удаления сущностей из админки, когда три запроса вместо одного хоть как-то чему-то мешают?

На прошлой работе я начинал новый проект с нуля еще на PHP 7.1. Он дорос до более чем 100 000 строк кода в папке src/ и спокойно переживал обновления версии PHP раз в год-два. Это проходило существенно легче, чем, скажем, обновление мажорной версии Symfony. Кстати, коллега подключал и использовал инструмент Rector для автоматического исправления несовместимостей в коде, может кому-нибудь пригодится: https://github.com/rectorphp/rector

Бизнесу нужно объяснять необходимость обновления соображениями безопасности, производительности и привлекательности проекта для новых разработчиков.

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

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

Видно, что показания с одного датчика шли. Или с двух похожих, измеряющих неизвестно что. Вернули примерно 3/4 стоимости. Вернули не всё, так как не все заявленные функции отсутствуют. А что присутствует? Термометр? Кому он нужен?

Зато теперь в этом корпусе собрал свою самоделку :)

Подключите оповещения о запросах вашей кредитной истории

Посоветуйте, как это сделать?

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

А где вы увидели установку кук?


Приложение сохраняет конфигурацию на каждом уровне в LocalStorage по понятным причинам. Я даже об этом упоминать не стал: сегодня это само собой разумеется. Сравните, например, с оригинальной браузерной версией 2048, там сделано так же.

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

Спасибо, исправил. Конечно, речь о вращательной симметрии C3, а не о центральной симметрии.

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


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


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


С учетом этой связи я запрограммировал более простой случай.

Спасибо.


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

У нас были похожие ощущения, когда мы студентами листали эту книжку. И когда наткнулись на задачу с понятным условием, решили попробовать свои силы :)

Для выравнивания задается vertical-align. Переменные тут не нужны. Svg-картинки знают о положении базовой линии. Раньше я использовал встраивание картинок через object и передачу информации о базовой линии через postMessage. Потом переделал на fetch, потому что вставка через object стала тормозить в Хроме. Fetch не поддерживается в IE11, но старая реализация работает в IE11, для кроссбраузерности можно использовать ее: https://github.com/parpalak/i.upmath.me/commit/ec56935f904caffdcba11509c3353fc24881a2a6


Или пойти по истории вглубь, старые версии скрипта работают и на IE8.


Выше уже приводили, кстати, ссылку на описание того, как это всё работает: https://written.ru/articles/technologies/site_building/latex_for_web

Да, обращается напрямую к TeX Live.


Про css-переменные, вы имеете в виду последний коммит? Он относится только к js-скрипту, который подменяет разметку формул в html-коде страниц через двойные доллары на сами картинки. Фича нужна только для небольшого масштабирования формул, чтобы размер шрифта на картинке соответствовал размеру шрифта на странице.


Серверная часть, которая генерирует svg- и png-картинки, такие как эта, работает без каких-либо css-переменных.

А как сейчас дела с автозапуском линуксовых демонов? Раньше ее не было. Я до сих пор после перезагрузки делаю sudo service nginx start и т. д. Еще не решили проблему?


У меня в WSL крутится nginx и php-fpm. Проект средней величины не очень быстро работает, у коллеги на Ubuntu субъективно быстрее.

После прочтения статьи понял, что последние несколько лет с нуля учусь играть на фортепиано тем же методом, как когда-то учился программировать.

Иногда MyISAM бывает полезен. Была в проекте на прошлой работе одна InnoDB-табличка на несколько сотен записей. Она пополнялась в триггере при изменении записей в другой таблице. Но иногда вставки по непонятным причинам не происходило. Я долго не мог докопаться до настоящей причины, пока не сделал добавление записей из кода. Оказалось, что вставка иногда не срабатывает из-за ошибки типа unique constraint violation на автоинкрементном первичном ключе. Админы подтвердили, что это известная проблема в MySQL 5.6, но быстро перевести production на 5.7 они не могли. Пришлось переключить тип таблицы с InnoDB на MyISAM. Проблема исчезла.

Какие аргументы перевесили в пользу MathJax в постах по сравнению с SVG?

О чем нужны подробности? Я в рыбном тексте, который открывается в редакторе при первом открытии, написал, что такое латех и маркдаун. И ссылки там есть.

Information

Rating
Does not participate
Date of birth
Registered
Activity