• Как сделать, чтобы изображение в блоке всегда помещалось без полей?

    @Flying
    Собственно ответ "никак" и он обусловлен не особенностями или ограничениями CSS, а вашей формулировкой задачи. Фактически вы хотите чтобы картинка (имеющая определённые пропорции) помещалась полностью и без полей в блок с неопредлёнными пропорциями. Это, очевидно, возможно только в случае если пропорции картинки и блока совпадают что противоречит условиям вашей задачи.
    Ответ написан
  • Как перехватывать события клика на сайте расширением chrome?

    @Flying
    Это делается через content scripts. Если вкратце - вам надо запросить permission на вставку content script (через манифест расширения) и внедрить скрипт в страницу. В content script'е вы, стандартным образом пишите обработчик события клика. Вот в этом разделе показано как вставлять скрипт на сайт с определённым доменом.
    Ответ написан
    Комментировать
  • Где найти WordPress right way?

    @Flying
    Я смог пересилить отвращение к коду Wordpress и начать с ним работать после того как узнал про Timber, всё-таки Twig - это совсем не то что фаршировать куски html :)

    Для формирования интерфейсов (и структур данных) в админке я себя не представляю без ACF. Использую Pro версию т.к. оно того явно стоит, но есть и бесплатная. Более того, в 5-й версии они добавили такую замечательную штуку как Local JSON что делает ACF весьма дружелюбным по отношению к системам контроля версий.

    Для мультиязычности недавно появился developer friendly плагин WP Multilang заточенный в первую очередь под разработчиков. В компании с Loco Translate позволяет весьма удобно работать с мультиязычностью.

    Также обязательно нужно помнить про WP cli, без него разработчику привыкшему к консоли тяжело :)

    Для работы с Composer есть Wordpress Packagist, так что плагины / темы можно ставить прямо через Composer. Я пытался запилить плагин для Composer'а который всем этим делом управляет, но пока качество imho недостаточное для отдачи его в public.

    Также очень рекомендую присмотреться к ребятам из Delicious Brains, у них в блоге немало интересного.

    Поддержка Wordpress есть в PHPStorm, весьма помогает.

    В целом Wordpress, конечно, весьма мутная штука внутри, но обложившись тонким слоем абстракций можно жить относительно комфортно :)
    Ответ написан
    2 комментария
  • Где найти все параметры css, которые по-разному задаются в разных браузерах?

    @Flying
    В целом сейчас есть два основных источника данных по этой теме:
    • MDN CSS Reference - поддерживается сообществом Mozilla, но благодаря прошлогоднему соглашению сейчас существенный вклад вносят также Google, Microsoft, Samsung и W3C. Исходные данные по поддержке берутся из этого репозитория на GitHub, там в разделе css/properties можно найти всю интересующую вас информацию в JSON.
    • caniuse.com - поддерживается коммьюнити, опирается на данные из этого репозитория на GitHub. Акцентируется не столько на конкретных на CSS свойствах сколько на технологиях.
    autoprefixer в своей работе использует базу caniuse.com и с практической точки зрения, конечно, сейчас лучше использовать его.
    Ответ написан
    Комментировать
  • Рационально ли внедрять зависимости в класс через DI-контейнер, обходя при этом стороной конструктор и сеттеры?

    @Flying
    В целом это считается плохой практикой. Приведу ссылку на соответствующий кусок из документации DI контейнера в Symfony: https://symfony.com/doc/current/components/depende...

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


    Уверен что есть и другие факторы, это то что пришло на ум в первую очередь.
    Ответ написан
    Комментировать
  • Как лучше всего уложить поле для морского боя в массив байт?

    @Flying
    По-моему ответ на вопрос будет зависеть от цели такой упаковки.

    Для runtime'а вполне можно использовать и "раскрытый" массив, он ведь небольшой. А если цель в достижении минимального размера и не предполагается runtime доступ и изменения без распаковки - я бы смотрел на вариант упаковки с сохранением не поля, а кораблей - максимально получается по 10 бит на корабль:
    • 7 бит позиции
    • 2 бита на тип корабля
    • 1 бит ориентации (для "однопалубных" можно пропустить)

    Думаю что можно ещё больше оптимизировать если хранить не абсолютный отступ, а относительный от предыдущего, тогда скорее всего можно будет "влезть" в байт на корабль и 10 байт в сумме.
    Ответ написан
    7 комментариев
  • Почему скрипт выгрузки из Instagram долго выполняется?

    @Flying
    Время выполнения самого запроса к Instagram API вполне можно проконтролировать непосредственно, например через cURL:
    curl -v -o "https://api.instagram.com/v1/users/self/media/rece..."

    То что сам скрипт ничего не выводит, возможно говорит о том что происходит разрыв соединения по timeout'у (либо timeout самого PHP либо timeout веб-сервера). Для первого нужно смотреть значение параметра max_execution_time в php.ini (по-умолчанию 30 секунд) второй зависит от типа веб-сервера.

    Также "пустая" страница вполне возможна в случае если произошла фатальная ошибка, а вывод сообщений об ошибках выключен. Нужно посмотреть в лог ошибок PHP (который предварительно, возможно, надо включить) либо временно включить отображение ошибок через ini_set('display_errors', true);
    Ответ написан
    4 комментария
  • Можно ли использовать только методы jQuery?

    @Flying
    $(selector) возвращает объект jQuery, а document.querySelector() - DOM node. У последнего, очевидно, нет методов jQuery поэтому приведённый код document.querySelector("a").методJQ() работать не будет.
    Ответ написан
    Комментировать
  • Как заставить крайние правые пункты меню трансформироваться в выпадающий блок при ресайзе окна?

    @Flying
    Делал как раз такое когда верстал для LDZ, так что можно подглядеть реализацию у них на сайте (самое верхнее меню). В целом думаю что можно обойтись и без JavaScript, просто такой задачи в том проекте не стояло. Сама идея тривиальная:

    Есть две копии меню: одна для горизонтального меню другая - для вертикального. Для горизонтального меню используется flexbox с flex-wrap и ограничение высоты в 1 строку с overflow: hidden. Для вертикального - обычный список. Основная задача - при клике на триггер показа вертикального меню взять все пункты меню из горизонтального варианта и либо скопировать их в вертикальное либо перенастроить видимость пунктов вертикального меню в зависимости того "завёрнуты" ли соответствующие пункты горизонтального меню в дополнительные строки.
    Ответ написан
    Комментировать
  • Вопрос тем, кто работает как ИП за валюту - в каком банке у Вас счёт?

    @Flying
    Уралсиб. В целом всё нравится, хотя онлайн банк-клиент для юр.лиц довольно устаревший. Но хотя бы с бумагами не нужно возиться, только сканы.
    Ответ написан
    Комментировать
  • Какое событие происходит при замолкании HTML5 audio плеера при плохом интернете????

    @Flying
    Я у себя сделал вот так: на событие timeupdate повесил обработчик который при наступлении события (и в случае если плеер играет) перезапускает отложенный вызов функции (через clearTimeout / setTimeout) в которой я запускаю отображение индикатора загрузки данных.

    На мой взгляд работает как и должно.
    Ответ написан
    Комментировать
  • Я немножечко не понял Lenovo ThinkPad умер на серии 540?

    @Flying
    То же самое ощущение, с надеждой жду каждой новой линейки и каждый раз мысли "ну может одумаются?" сменяются на "ну блин, думал хуже уж никак, а оказывается можно :("

    Началось с T510 когда начали "улучшать" прекрасную классическую клавиатуру из-за которой я, собственно, и взял свой T500. Ну а дальше всё хуже и хуже...

    Для себя решил по-максимуму оставаться на T500 (с x64 виндой, 4Gb памяти и SSD он вполне себе современный ноут), но когда этот период закончится - я даже пока не представляю в каком направлении смотреть дальше.
    Ответ написан
  • Какие вы знаете 15 дюймовые ноутбуки без оптического привода (ультрабуки)?

    @Flying
    Как вариант — взять ThinkPad T5x0 или W5x0 и заменить блок с CD-ROM (он съемный) на такой же, но со вторым винтом или дополнительной батареей.
    Ответ написан
    Комментировать
  • 14"/15.6" ноутбук для кодинга и пр. Какое лучше разрешение 1600 или 1366?

    @Flying
    Работаю на T500 с 1280x800, постоянно ношу с собой. В рюкзаке — почти не ощущается. При покупке задумывался о варианте с бОльшим разрешением, но решил что глаза дороже, и так в очках хожу. В итоге не жалею нисколько. Единственное что поменял бы в ноуте — это винчестер на SSD, но в T520 с этим уже проблем нет. Так что желаю получить массу удовольствия от работы с этим ноутбуком, отличный выбор :)
    Ответ написан
    Комментировать
  • Интерактивная синхронизация папки с сервером?

    @Flying Автор вопроса
    Да, я не знал об этой функции в WinSCP, спасибо!

    Но к сожалению в WinSCP отсутствует возможность редактирования действий над файлами в окне preview, а баг по этому поводу открыт уже 4 года и вроде как не собирается закрываться, печально.
    Ответ написан
  • Tab stops в редакторе Eclipse?

    @Flying Автор вопроса
    Спасибо за подсказку, я решил проблему. Решение:
    В workspace открыть файл:
    .metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.php.core.prefs

    удалить в нем строку:
    org.eclipse.php.core.phpForamtterUseTabs=false
    Ответ написан
    Комментировать
  • Помогите выбрать ноутбук

    @Flying
    Голосую за Lenovo ThinkPad T или W серии :) У самого T500, доволен им целиком и полностью. Хотя конечно надо было бы озвучить требования к ноутбуку, себе брал для программирования.
    Ответ написан
    Комментировать