Приступили к семейному просмотру. Болеем за Хоппера, Стива и Динамо!
1🔥6❤3
Обсуждал тут улучшения своих сайтиков с чатом жопотэ, дипсиком, перплексити и другими сказителями. Идей роботы озвучили очень много, и внезапно я понял, что нужно возвращаться к истокам: взять и переписать свой бложек и лендинг студии обратно на Turbo Pascal Друпал.
Эксперимент с October CMS был по-своему прекрасен, узнал и сделал много нового, и CMS неплохая. Но ряд вещей, которые я хочу сделать, на Друпале сделать тупо в 2–3 раза быстрее.
Перенести в принципе недолго, сделать всё на вьюзах, а шаблоны фронта в October уже сделаны на twig. Можно даже управиться к Новому году. Надо только понять, к какому.
Эксперимент с October CMS был по-своему прекрасен, узнал и сделал много нового, и CMS неплохая. Но ряд вещей, которые я хочу сделать, на Друпале сделать тупо в 2–3 раза быстрее.
Перенести в принципе недолго, сделать всё на вьюзах, а шаблоны фронта в October уже сделаны на twig. Можно даже управиться к Новому году. Надо только понять, к какому.
1👍6🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Ради этого стоило изобретать генеративные нейросети!
🔥4🥰3😁2
А вот и дайджест материалов за ноябрь.
Рабочее🧐
— написал статью о выборе между CMS и фреймворками, вместо VC отправил копию на Workspace, попробую там публиковать что-то релевантное
— про службу доставки и синдром самозванца
Техническое👨💻
— рецепт регистрации/логина через телеграм ботов
— пост о том, почему не надо писать тесты на визуал
— рецепт сортировки по json-полю в таблицах Laravel Orchid
Про жизнь✍️
— если можно делиться рецептами кода, почему бы не поделиться рецептом коктейля
— и шуткой на английском
— про сериалы: The Chair Company, с Джеймсом Пьюрфоем и конечно про Pluribus
— про книжку The Subtle Art of Not Giving a F*ck
Октябрьский дайджест
Рабочее
— написал статью о выборе между CMS и фреймворками, вместо VC отправил копию на Workspace, попробую там публиковать что-то релевантное
— про службу доставки и синдром самозванца
Техническое
— рецепт регистрации/логина через телеграм ботов
— пост о том, почему не надо писать тесты на визуал
— рецепт сортировки по json-полю в таблицах Laravel Orchid
Про жизнь
— если можно делиться рецептами кода, почему бы не поделиться рецептом коктейля
— и шуткой на английском
— про сериалы: The Chair Company, с Джеймсом Пьюрфоем и конечно про Pluribus
— про книжку The Subtle Art of Not Giving a F*ck
Октябрьский дайджест
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Forwarded from Mellow || Зарубежные фриланс-заказы каждый день
Сколько стоит работа фрилансера?
Отвечает эксперт из комьюнити Mellow👆
Подписывайтесь на наш канал о зарубежном фрилансе и заходите в чат: там можно задать вопрос фрилансерам с опытом, найти новых знакомых из своей сферы и даже (иногда) получить заказ.
Отвечает эксперт из комьюнити Mellow
Подписывайтесь на наш канал о зарубежном фрилансе и заходите в чат: там можно задать вопрос фрилансерам с опытом, найти новых знакомых из своей сферы и даже (иногда) получить заказ.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍7
Практическая задачка про командную разработку
Допустим, есть тимлид и он поставил разработчику задачу. Достаточно сложную. Описал концепцию, предложил известный метод А для решения.
Разработчик изучает концепцию и молча избирает для решения метод Б (тоже известный). Выкатывает результат. Тимлид читает, удивляется смене концепции, но видит, что метод Б может сработать как минимум не хуже А. Поэтому пропускает результат в тестирование, тем более что проверить уже реализованный метод Б быстрее, чем сразу требовать вернуться к A.
В ходе тестирования метод Б не срабатывает из-за конфликта с внешней системой S, с которой у разработчика было мало опыта (разработчик, обычно решающий задачи интеграции с S, недоступен). При этом сам метод Б корректен, но интеграция с системой S является необходимым условием задачи. Способов предсказать совместимость Б и S до реализации — нет.
Разработчик переключается на изначально предложенный метод А. Метод А срабатывает как ожидалось, задачу удается решить, но с превышением оценки на ~80% из-за потраченного на Б времени.
Система S — внешняя, узконишевая, почти безальтернативная и довольно инновационная. Найти разработчиков с опытом в ней непросто. Документация к S есть, но неполная. Как водится, её неполнота усугубляется с каждым обновлением. По сути разработчики работают с S раз в жизни — если придётся. У тимлида есть прямая линия с CEO системы S, но она не предполагает ежедневных бесед по любому поводу.
Проджект менеджер недоволен превышением оценок и необходимостью это объяснять клиенту. Видимо, произошла чудовищная ошибка. Но какая?
Ниже опрос.
Допустим, есть тимлид и он поставил разработчику задачу. Достаточно сложную. Описал концепцию, предложил известный метод А для решения.
Разработчик изучает концепцию и молча избирает для решения метод Б (тоже известный). Выкатывает результат. Тимлид читает, удивляется смене концепции, но видит, что метод Б может сработать как минимум не хуже А. Поэтому пропускает результат в тестирование, тем более что проверить уже реализованный метод Б быстрее, чем сразу требовать вернуться к A.
В ходе тестирования метод Б не срабатывает из-за конфликта с внешней системой S, с которой у разработчика было мало опыта (разработчик, обычно решающий задачи интеграции с S, недоступен). При этом сам метод Б корректен, но интеграция с системой S является необходимым условием задачи. Способов предсказать совместимость Б и S до реализации — нет.
Разработчик переключается на изначально предложенный метод А. Метод А срабатывает как ожидалось, задачу удается решить, но с превышением оценки на ~80% из-за потраченного на Б времени.
Система S — внешняя, узконишевая, почти безальтернативная и довольно инновационная. Найти разработчиков с опытом в ней непросто. Документация к S есть, но неполная. Как водится, её неполнота усугубляется с каждым обновлением. По сути разработчики работают с S раз в жизни — если придётся. У тимлида есть прямая линия с CEO системы S, но она не предполагает ежедневных бесед по любому поводу.
Проджект менеджер недоволен превышением оценок и необходимостью это объяснять клиенту. Видимо, произошла чудовищная ошибка. Но какая?
Ниже опрос.
🔥2
Обсуждение бесполезности тимлидов на одной из платформ, куда я запостил «чудовищную ошибку» выше, напомнило старый анекдот.
Надо написать что-нибудь ещё жизнеутверждающее про пользу тимлидства.
Токарь вдумчиво протирает гаечный ключик тряпочкой. К нему подходит начальник цеха:
— Петров, [censored]! Ты какого лешего домой так рано собираешься? Время всего 17:30!
— Понимаешь, я пока ключик тряпочкой протру, пока станок железной щеточкой почищу, пока ручки мыльцем отмою, пока переоденусь… Вот как раз и конец рабочего дня наступит.
— Нет, Петров! Считаю, что это неправильно! Вот я, например, собираюсь с работы ровно в 18:00.
— А тебе-то что собираться? Рот закрыл и пошёл…
Надо написать что-нибудь ещё жизнеутверждающее про пользу тимлидства.
👍4🔥3
В ходе нетворкинга общаюсь с разными людьми, тоже связанными с веб-разработкой. И конечно часто упоминаю Drupal, раз уж последние 20 лет чаще всего работаю с ним.
И довольно часто слышу в ответ что-то вроде: «Друпал? А он что, еще жив?»
Понять можно. Если человек сталкивался с ним когда-то давно, в начале 10х годов например, и тогда показалось что он не очень актуален, то сегодня-то тем более. Тогда Друпал критиковали за всякое — и за «отсутствие ООП», и излишнюю функциональность, и за принцип not invented here, и за сложность перехода от одной мажорной версии к другой. Хотя лично мне и D6, и D7 хорошо заходили.
Вот и Друпал уже не такой. Правда, за эти годы он нажил не седину, геморрой и алименты. А наоборот — стал гораздо краше! В конце 2015-го с ним произошло лучшее, что могло произойти: вышла версия 8, в которой сделали:
— Конфиги на yaml. То есть всё, что ты накликал в админке, лёгким движением руки выгружалось в файлики и автоматически разворачивалось в продакшне. Это упростило в разы не только разработку, но и поддержку: теперь можно легко увидеть, чего там клиент в настройках нажал и всё сломалось. Увидеть и отменить.
— Установку и обновление всего через composer. Апгрейд мажорных версий тоже упростили. Для перехода с 8 на 9, 10 и 11 переписывать сайт целиком уже необязательно.
— Темизацию на Twig, медиа-библиотеку а ля Wordpress, поддержку REST для вывода контента в JSON/XML и получения headless CMS, и много чего ещё.
— Отринули критикуемый многими принцип not invented here, по которому не любо было тащить в ядро сторонние решения. Отринули и тут же затащили под капот Symfony.
Это сразу зарешало большинство претензий к несовременному коду и отсутствию ООП. Классов, объектов и паттернов теперь сколько угодно. И контроллеры есть, и роутинг, и внедрение зависимостей, и декораторы, и подписка на события.
Ляпота, короче. «Свинья в помаде» (для тех кто не помнит) превратилась впрекрасную бабочку серьезный современный продукт. С высоким по-прежнему порогом вхождения и с чувством полного удовлетворения от своей работы, если этот порог преодолеть.
— Так что, да, Друпал жив! — глаголю я вам в ответ, дорогие друзья. И уж точно поживее многих.
Да, в нашей стране ситуация с ним не очень удачная: всё вокруг поглотил 1С Битрикс. Хотя обидно не это, так бывает. Мне как разработчику обидно, что на то нет никаких технических причин. Писал про это в статье CMS vs Framework.
При этом во всем остальном мире с Друпалом полный порядок. Серьёзные контентные сайты, крупные, со связанными поддоменами, университеты, e-com, государственные порталы — везде ему находится применение. Поработал с парой десятков проектов в Европе и США, за последние 7 лет 1 каталог перешел набитрикс WordPress, 1 магазин на Shopify — в связи со сменой маркетинговых команд, которым на входе конечно надо всё переделать. Остальным всё круто, работают годами. Хотелось бы конечно и на нашем рынке с ним чаще работать.
Но в этом году, кстати, стал замечать тут и там отдельные звоночки, когда ребята, которые раньше на Drupal даже не смотрели, внезапно стали интересоваться и даже чего-то хотеть. Жизнь-то налаживается!
А ещё недавно Canvas 1.0 вышел, визуальный конструктор лендосиков на Drupal. На днях мы с ним поиграем, посмотрим чего он может, а чего нет. Результаты будут тут, не переключайтесь.
И довольно часто слышу в ответ что-то вроде: «Друпал? А он что, еще жив?»
Понять можно. Если человек сталкивался с ним когда-то давно, в начале 10х годов например, и тогда показалось что он не очень актуален, то сегодня-то тем более. Тогда Друпал критиковали за всякое — и за «отсутствие ООП», и излишнюю функциональность, и за принцип not invented here, и за сложность перехода от одной мажорной версии к другой. Хотя лично мне и D6, и D7 хорошо заходили.
Это как встретить старого приятеля, которого не видел 20 лет. Сознание не очень-то интерполирует его «возможный жизненный путь» и не натягивает его на эти 20 лет. Поэтому может показаться, что он все такой же, как «тогда». А он уже не такой.
Вот и Друпал уже не такой. Правда, за эти годы он нажил не седину, геморрой и алименты. А наоборот — стал гораздо краше! В конце 2015-го с ним произошло лучшее, что могло произойти: вышла версия 8, в которой сделали:
— Конфиги на yaml. То есть всё, что ты накликал в админке, лёгким движением руки выгружалось в файлики и автоматически разворачивалось в продакшне. Это упростило в разы не только разработку, но и поддержку: теперь можно легко увидеть, чего там клиент в настройках нажал и всё сломалось. Увидеть и отменить.
— Установку и обновление всего через composer. Апгрейд мажорных версий тоже упростили. Для перехода с 8 на 9, 10 и 11 переписывать сайт целиком уже необязательно.
— Темизацию на Twig, медиа-библиотеку а ля Wordpress, поддержку REST для вывода контента в JSON/XML и получения headless CMS, и много чего ещё.
— Отринули критикуемый многими принцип not invented here, по которому не любо было тащить в ядро сторонние решения. Отринули и тут же затащили под капот Symfony.
Это такой крутой фреймворк на PHP, на котором можно писать в три раза больше кода, чем в Laravel, зато он будет чистый и правильный.
Это сразу зарешало большинство претензий к несовременному коду и отсутствию ООП. Классов, объектов и паттернов теперь сколько угодно. И контроллеры есть, и роутинг, и внедрение зависимостей, и декораторы, и подписка на события.
Ляпота, короче. «Свинья в помаде» (для тех кто не помнит) превратилась в
— Так что, да, Друпал жив! — глаголю я вам в ответ, дорогие друзья. И уж точно поживее многих.
Да, в нашей стране ситуация с ним не очень удачная: всё вокруг поглотил 1С Битрикс. Хотя обидно не это, так бывает. Мне как разработчику обидно, что на то нет никаких технических причин. Писал про это в статье CMS vs Framework.
При этом во всем остальном мире с Друпалом полный порядок. Серьёзные контентные сайты, крупные, со связанными поддоменами, университеты, e-com, государственные порталы — везде ему находится применение. Поработал с парой десятков проектов в Европе и США, за последние 7 лет 1 каталог перешел на
Но в этом году, кстати, стал замечать тут и там отдельные звоночки, когда ребята, которые раньше на Drupal даже не смотрели, внезапно стали интересоваться и даже чего-то хотеть. Жизнь-то налаживается!
А ещё недавно Canvas 1.0 вышел, визуальный конструктор лендосиков на Drupal. На днях мы с ним поиграем, посмотрим чего он может, а чего нет. Результаты будут тут, не переключайтесь.
5🔥6👍3❤2
The Revenge Club / Клуб мести
В пятницу вышел новый британский минисериальчик, я вчера посмотрел, рассказываю.
Шестеро незнакомцев встретились в группе поддержки для переживающих развод. Это как анонимные алкоголики, только не анонимные и бухать пока можно. И вот они сидят в кружке на стульчиках, рассказывают как их бросили, обманули, изменили и кинули. А потом идут собстна в бар и там слово за слово решают, что надо с этим что-то делать. А именно — страшно мстить. Ну или не очень страшно, но как-то немножко мстить нужно обязательно. Потому что сколько можно это терпеть, доколе и вообще nevermore.
Вот к мести они вшестером и приступают. И, судя по тому, что в самом начале их допрашивает полиция, всё пойдет не совсем так, как задумано.
В жанрах у сериала указаны комедия, драма и триллер. В плане комедии — поржать не удастся. Шутки какие-то есть и ирония чувствуется, но не более того. Триллера маловато. Но как ироничная драма с элементами детектива смотрится неплохо. В главных ролях Эйми-Ффион Эдвардс из Slow Horses и Мартин Компстон из Line of Duty. И это безусловно плюс.
Также стоит отметить, что все шесть героев пострадали во вполне традиционных отношениях. В чём одни могут с радостью обнаружить отсутствие повесточки, а другие — её коварный подтекст.
На imdb рейтинг сейчас 7.6. Сериал всего из 6 серий, неплохой, чтобы скрасить пару вечеров. Тем более, как сообщает сериальный ботопотам, смотреть сейчас всё равно больше нечего. 17-го только выйдет новый сезон Fallout, а 25-го — еще три серии «Странных дел», и больше ни-че-го.
#сериалы
В пятницу вышел новый британский минисериальчик, я вчера посмотрел, рассказываю.
Шестеро незнакомцев встретились в группе поддержки для переживающих развод. Это как анонимные алкоголики, только не анонимные и бухать пока можно. И вот они сидят в кружке на стульчиках, рассказывают как их бросили, обманули, изменили и кинули. А потом идут собстна в бар и там слово за слово решают, что надо с этим что-то делать. А именно — страшно мстить. Ну или не очень страшно, но как-то немножко мстить нужно обязательно. Потому что сколько можно это терпеть, доколе и вообще nevermore.
Вот к мести они вшестером и приступают. И, судя по тому, что в самом начале их допрашивает полиция, всё пойдет не совсем так, как задумано.
В жанрах у сериала указаны комедия, драма и триллер. В плане комедии — поржать не удастся. Шутки какие-то есть и ирония чувствуется, но не более того. Триллера маловато. Но как ироничная драма с элементами детектива смотрится неплохо. В главных ролях Эйми-Ффион Эдвардс из Slow Horses и Мартин Компстон из Line of Duty. И это безусловно плюс.
Также стоит отметить, что все шесть героев пострадали во вполне традиционных отношениях. В чём одни могут с радостью обнаружить отсутствие повесточки, а другие — её коварный подтекст.
На imdb рейтинг сейчас 7.6. Сериал всего из 6 серий, неплохой, чтобы скрасить пару вечеров. Тем более, как сообщает сериальный ботопотам, смотреть сейчас всё равно больше нечего. 17-го только выйдет новый сезон Fallout, а 25-го — еще три серии «Странных дел», и больше ни-че-го.
#сериалы
1👍4
Вчера перед сном решил — а ну-ка сейчас за 20 минут добью большую фичу. Долго делал, чуть-чуть осталось. Сел, открыл, и правда — через 20 минут фича была готова. Но чёрт меня дернул запустить после этого все тесты. Пока фичу делал — смысла не было запускать весь пакет. А тут, в ночи, решил запустить.
И конечно как посыпались ошибки! Пару простых исправил, и оказалось, что все остальные — потому что сломался поиск. У меня в проекте используется Laravel Scout для быстрого поиска-автодополнения по нескольким типам моделей одновременно, чтобы было удобно искать что угодно. И вот он сломался сразу весь. Абсолютно все поиски возвращались пустыми.
Посмотрел на проде — всё еще работает. Стал разбираться, чего такого я мог сломать. Отключил несколько установленных библиотек — вдруг конфликт у трейта Searchable с чем-нибудь. Включил обратно ту, которую наоборот — стёр за ненадобностью. Не работает.
Откатил контроль версий на точку до начала разработки фичи. Не работает! Подозрительно как-то. Накатил обратно. Обновил зависимости. Не работает.
Поотлаживал классы Скаута — увидел, что почему-то драйвер поиска определяется как null (то есть никакой)! Полез смотреть, оказывается у меня внезапно в
В общем, непонятно, кто такое сделал-то — то ли один из устанавливаемых пакетов в ходе
В общем, пока нашёл ошибку и вернул нормальный драйвер, прошло уже конечно в разы больше 20 минут. Зато в конце увидел все тесты зелёными. На чем и ушел спать, вот только
И конечно как посыпались ошибки! Пару простых исправил, и оказалось, что все остальные — потому что сломался поиск. У меня в проекте используется Laravel Scout для быстрого поиска-автодополнения по нескольким типам моделей одновременно, чтобы было удобно искать что угодно. И вот он сломался сразу весь. Абсолютно все поиски возвращались пустыми.
Посмотрел на проде — всё еще работает. Стал разбираться, чего такого я мог сломать. Отключил несколько установленных библиотек — вдруг конфликт у трейта Searchable с чем-нибудь. Включил обратно ту, которую наоборот — стёр за ненадобностью. Не работает.
Откатил контроль версий на точку до начала разработки фичи. Не работает! Подозрительно как-то. Накатил обратно. Обновил зависимости. Не работает.
Поотлаживал классы Скаута — увидел, что почему-то драйвер поиска определяется как null (то есть никакой)! Полез смотреть, оказывается у меня внезапно в
.env прописано SCOUT_DRIVER=null! Хотя я просто полагался на дефолтное значение из конфига scout.php (который не менялся), и в .env вообще драйвер не прописывал.В общем, непонятно, кто такое сделал-то — то ли один из устанавливаемых пакетов в ходе
vendor:publish проявил инициативу. То ли я зачем-то выставил, хотя никакой пользы от этого не припоминаю. То ли нейросеть, которую тем более об этом не просили. В общем, пока нашёл ошибку и вернул нормальный драйвер, прошло уже конечно в разы больше 20 минут. Зато в конце увидел все тесты зелёными. На чем и ушел спать, вот только
🔥5👍4❤2
