Задать вопрос
  • Недоступность серверов Aeza?

    iDx
    @iDx
    Гендиректора петербургской "Аеза групп" Юрия Бозояна и 21-летнего учредителя компании арестовали за крышевание знаменитого наркошопа BlackSprut. Больше двух лет они предоставляли техническую базу для работы магазина.

    По информации Mash, мужчины подружились ещё шесть лет назад, когда 16-летний Арсений предложил 27-летнему Юрию вложиться в темку по аренде серверов — сошлись на 400к рублей. Так появилось ООО "Аеза групп".

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

    Наркобизнесменов накрыли в феврале 2025-го. После того, как закладчик продал 4,19 г мефедрона московским полицейским под прикрытием. Два дня назад в офисе "Аеза групп" провели обыски. На Юрия и Арсения возбудили уголовное дело по статьям 210 (ОПГ) и 228.1 (незаконный оборот наркотиков) — им грозит до 20 лет. Вместе с ними арестованы исполнители Пензев А. А., Гаст В. В., Лаврухин Г. А и двое бизнесменов: Зубов Т. В и Орлов М. А
    Ответ написан
    Комментировать
  • Получил заказ на первый сайт от знакомых, выбираю бэкенд систему - cms либо python, что в связи с этим посоветуете?

    Язык программирования, фреймворки, CMS и т.д. - это только лишь инструменты для выполнения главной задачи: решить бизнес-проблему заказчика.
    С этим пониманием сделаем вывод, что выбирать инструмент нужно наиболее подходящий к задаче, но так же надо учитывать и то, насколько хорошо вы владеете тем или иным инструментом. Но всё же научиться пользоваться молотком гораздо быстрее и проще, чем мучиться, забивая гвоздь микроскопом.
    А при слове "визитка" мой опыт громогласно кричит WordPress!
    Ответ написан
  • PHP - как показать изображения в браузере из папки?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Я хочу вынести ее из публичной папки.
    Зачем? Есть какая-то особенная необходимость? По логике все файлы сайта должны находиться в одной папке проекта, а файлы видимые из веба в публичной папке проекта. В некоторых случаях, например когда эти файлы не должны отдаваться без какого-то уровня доступа, их выносят выше публичной папки, таким образом закрывая от прямого доступа из веб. Далее доступ осуществляется через пхп, конкретная реализация сильно зависит от задач и имеющегося кода/фреймворка. Простейший вариант - имя файла читается как параметр из урл, далее делается readfile() из этой папки с файлами, предварительно отдаются заголовки, указывающие что это файл изображения. Хотя без понимания "зачем" реализация "как" это тыканье пальцем в небо. Может вам симлинк тупо подойдет...

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

    @Kolt_DA
    Здравствуйте! На моём проекте есть очень похожая проблема. Полностью решить её я не смог, но в моем случае, причиной стали иконки. Конкретно, .svg у которых есть stroke. Звучит странно, но реально из-за этого были похожие визуальные приколы. Собственно, их удаление или замена на .svg без stroke ,решает проблему.
    Ответ написан
    Комментировать
  • Как лучше поступить в данный момент?

    GavriKos
    @GavriKos
    пойти на очку и понять что если цель - это макбук 2020 года - то все плохо.
    Ну на заочку тоже можно - только неясно потянете или нет еще и работу.

    В общем то на данный вопрос невозможно дать ответ - все только от вас зависит, и я бы не доверил свою жизнь каким то дядькам из интернетов
    Ответ написан
    Комментировать
  • Как лучше поступить в данный момент?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Не надо ничего никому обьяснять. Готовьтесь к вступлению в жесткий и безжалостный мир взрослых :) Заочка и фриланс лучше чем просто фриланс :) Заочка и стабильная работа лучше чем заочка и фриланс.
    Родители Ваши обязаны Вас содержать ровно до момента восемнадцатилетия - а дальше как договоритесь, дальше их обязанности с точки зрения законодательства закончены, к этому моменту Вам было бы зело неплохо самому себя обеспечивать :)
    Вот Юлия Бедросова совершенно правильно сказала - когда сами сможете оплачивать аренду хаты, еду и все прочее нужное для того, чтобы жить одному (а если уже и не одному - это вообще плюс стопицот) - вот тогда Вас и родители зауважают.
    Ответ написан
    Комментировать
  • Как лучше поступить в данный момент?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Обьяснить довольно просто. Давите финансами.
    А насчет обучения думайте. Лучше конечно заочка и работа в оутсорс фирме. За 3-4 года поднимите свой уровень до мидла.
    В итоге через 3-4 года вы будете иметь

    * опыт работы и подтвержденные проекты
    * диплом
    * подушка по деньгам
    * какие то связи с однокашниками
    * возможно у вас в институте будут программы обмена студентами
    Ответ написан
    Комментировать
  • Как использовать ООП в контроллере Laeavel?

    @vism
    создаёте папку services и внутрь пихаете бизнес логику.

    61589552f391e310838520.png
    Ответ написан
    Комментировать
  • Почему Service Locator это зло и что использовать вместо?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Все эти страшные слова - они на самом деле всегда про одно и то же - про связность. Когда ты хардкодишь внутри класса вызов какого-то конкретного сервиса - ты намертво к нему привязываешься. И чтобы поменять сервис на другой, ты будешь вынужден поменять код класса. Окей, поменял. И тут же в другом месте, где этот же класс использовался, что-то сломалось! И что теперь? Делать два класса, которые различаются одной строчкой? Нет конечно. А как тогда использовать один и тот же класс для обработки разных входящих данных (или одних и тех же данных, но разными способами)? Сделать его поведение изменяемым. То есть сделать изменяемыми те инструменты, которыми он пользуется - т.е. его зависимости.

    Поэтому все зависимости обычно передаются через конструктор (и поэтому и называются инъекция зависимостей.)

    Таким образом мы можем менять поведение класса, не меняя его код

    Но тут надо понимать, что всё это работает только при правильном применении ООП. А точнее просто при применении ООП. Потому что 98% "ООП" кода, который пишется на РНР - это голимая процедурщина, даже если она обёрнута в классы и методы. Если у тебя метод класса представляет из себя стену кода, которую ты тупо перенёс из файла, инклюдившегося в любимое похапешное спагетти - то это не ООП. Это та же процедурщина, вид сбоку. И смысл использования dependency injection ты с ним не почуствуешь. Будешь конечно применять, но в качестве карго культа - потому что тебе это на тостере написали.
    А вот когда твой код начнет становиться действительно объектным - тогда стразу станет понятнее.


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

    Соотвтственно, ответ на вопрос "что использовать?" очень простой:
    - при ручном создании экземпляра объекта, все зависимости передавать в него через конструктор, а не получать "из воздуха" в коде.
    - при автоматическом создании экземпляра объекта, использовать dependency injection container

    В этим смысле очень полезно освоить Симфони - строгий фрейворк, в котором нет сервис локатора и в котором запрещено пользоваться контейнером напрямую.
    Ответ написан
    4 комментария
  • Правильно ли начинать путь во фронтенд с битрикса?

    DevMan
    @DevMan
    если вы хотите конкретно фронтенд, то битрикс вообще не упёрся: там упор на бэкенд.
    Ответ написан
    2 комментария
  • Почему искажается превью в php?

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

    Что касается PHP, gd поддерживает кучу разных алгоритмов интерполяции (вторым параметром к imagescale). Потестируйте, что лучше сработает именно в вашем случае.
    Ответ написан
    Комментировать
  • Зачем нужно тестирование?

    @programrails
    Я лично думаю, что тесты - это образчик типично западного лицемерия - как в сказке Андерсена "Голый король". Тесты - это чушь собачья (точнее, чушь свинячья). Полезность тестов - вымышленна. Тесты были изобретены на Западе - и они чужды по духу русскому человеку - ввиду своего чудовищного (типично Западного) лицемерия. Сторонники тестов пытаются что-то там такое невразумительное говорить (в защиту тестов) - но никто им не торопится верить - отсюда, собственно, и появился данный вопрос на данном форуме - если бы полезность тестов была реальна - люди бы не спрашивали, зачем они нужны - а просто пользовались бы ими. Все, кто выступает в защиту тестов - я думаю, лишь послушно повторяют цитаты из западных учебников - вместо изложения своих собственных мыслей. Конечно, ведь так хотят работодатели - так как же можно выступить против них?

    Где, скажите, убедительно-неопровержимые доказательства нужности тестов как таковых? Их нет. Взамен предлагается просто поверить на слово в "полезность" тестов. Кроме того, написание тестов отнимает уйму времени и само по себе является источником ошибок. Намного быстрее и эффективнее просто проверить руками тот или иной функционал - чем писать для этого тест - как правило, на чрезвычайно неудобном, корявом и глючном тестировочном языке.

    Писать же тесты ДО написания кода - это вообще ВЕРХ абсурда. Неужели непонятно, НАСКОЛЬКО противоестественно это занятие? Это просто дичь какая-то. Даже сами западные авторы учебников по тестированию об этом пишут - я прочёл несколько западных учебников по тестированию, пытаясь найти хоть какой-то смысл в тестах - они пишут, что BDD хорошо не более чем в 20% случаев.

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

    И вообще - даже если и идея автоматизирования тестирования и носит разумное зерно - почему нужно СПЕЦИАЛЬНО вручную писать тесты? В лучшем случае, это должно быть сделано так: ты тестируешь РУКАМИ какую-то фичу - а программа при этом АВТОМАТИЧЕСКИ запоминает всю последовательность ручных тестировочных действий (и потом воспроизводит при нужде). Только так это имеет право выглядеть. Я немного утрирую, конечно - но суть в том, что это безумный абсурд - писать тесты руками - тратя на это уйму времени и генерируя тем самым новые ошибки.

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

    Так что я действительно искренне не понимаю - зачем нужны тесты - и считаю, что они и не нужны на самом деле - а нужны исключительно для введения в заблуждение западных заказчиков - и больше ни для чего. Во всяком случае, в том (нелепом) виде, в котором они (тесты) существуют сейчас. Я же свой код тестирую руками - и это намного лучше и эффективней тестов. Да, я не говорю, что я не тестирую свой код - тестирую обязательно (а как же без этого) - но только руками. Может быть, и есть в отдельных случаях смысл написать именно тест - если руками тяжело и долго воспроизводить тестировочно-проверочную последовательность действий - но это как исключительный случай. Западное же требование покрытия кода тестами под 80-90% - вообще полная чушь - бездумная и шаблонно-тупая. Они ведь там тоже не семи пядей во лбу - а главное, что на Западе категорически запрещено думать своей головой - это только в России пока позволено (и то не каждому, как очевидно).

    Я против тестов (в нынешнем их виде). Тем более, я против TDD. Но я не против тестирования - но только ручного.

    Излагайте свои доводы - но только СВОИ, а не где-то вычитанные.
    Ответ написан
    Комментировать
  • Как сделать так, чтобы в webpack 5 работал hot reload?

    @mkedevel
    Данная проблема возникает после подключения пакета browserslist
    Нужно добавить в webpack.config.js

    {
       target: 'web'
    }
    Ответ написан
    3 комментария
  • Как сделать кастомный select?

    @timokins
    Если просто и лаконично, то
    selectize.github.io/selectize.js
    Ответ написан
    Комментировать
  • Как прикрутить чат телеграм в модальное окно или просто на сайт?

    @mr_good_cat Автор вопроса
    Оставлю тут ещё 2 метода. PHP и javascript. Может кому пригодятся.
    https://habr.com/ru/post/302056/
    https://www.intergram.xyz/
    Ответ написан
    Комментировать
  • Как прикрутить чат телеграм в модальное окно или просто на сайт?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Не надо встраивать телеграм в сайт, это бессмысленно. Надо просто сделать отдельный канал взаимодействия с веб-пользователями на вебсокетах. На другой стороне заводить хоть в веб-интерфейс, хоть в бота, хоть в десктопное приложение.
    Ответ написан
    Комментировать
  • Остатки Linux'a?

    Adamos
    @Adamos
    Я бы предложил просто переставить винду, снеся к чертовой матери этот на хрен никому не нужный (при двух-то разделах) логический том. Пляски с утилитами, которые растянут на него системный раздел, займут примерно столько же времени, да еще могут внезапно закончиться нерабочей системой. Смысл?
    Ответ написан
    1 комментарий
  • Как использовать JavaScript с Bitrix?

    @ZardoZAntony
    программист, сис. админ
    Прочитать бесплатный курс разработчика для bitrix, хотя бы что такое шаблоны и как их применять.
    Скорее всего это потянет за собой отсутствие знаний js и php.

    А так без проблем: копируете шаблон компонента меню в свою тему или в local/templates/.default/, . Изменяете его под себя как душе угодно. Добавляете классов в вашем случае.
    Ответ написан
    Комментировать
  • Как верстать с хорошими показателями Google Speed?

    SeaInside
    @SeaInside
    16 лет пилю все эти штуки
    Здесь нет волшебной таблетки. Это комплекс факторов...
    Из главного: ленивая/отложенная загрузка всего и вся (всевозможные метрики и второстепенные скрипты / графика / компоненты, если используете фреймворки), использование современных форматов графики (webp в частности), вёрстка mobile-first (существенно снижает время на расчёт лейаута и рендер на приоритетных устройствах), инжект CriticalCSS (это про time to first paint), уменьшение размера DOM-дерева.
    Это из фронта, на бэке - сжатие gzip/brotli, максимальное время жизни кэша, оптимизация времени до ответа.

    Они же все рекомендации прямо при проверке пишут, там очень подробно всё расписано.
    Волшебной кнопки не существует.

    За 100/100 гоняться на чём-то больше стандартного лендоса - как правило бред сумасшедшего (оно обычно можно, но того совершенно не стоит, так как из-за отложенной загрузки/рендера будет страдать UX, что важнее красивой пузомерки).
    90+ для почти любого проекта - вполне несложно, если умеючи.
    А умеючи - это с опытом, анализом рекомендаций, а не поиском новых сборок/инструментов.
    Ответ написан
    2 комментария