Задать вопрос
  • Какие характеристики ноутбука/ПК нужны для front-end-разработки?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Если ноутбук и нет ограничений "только винда", то любой мак с минимум 16 гигами ОЗУ. Приоритет следующий: максимум ОЗУ, процессор, диск.
    Если ПК, то в целом вот тут на 3DNews есть отличная подборка: https://3dnews.ru/1123785 - имеет смысл брать оптимальную и выше сборку. Приоритет тут чуть другой: процессор, память, диск, видеокарта.

    Оптимальный вариант что-то типа такого (набросал на вскидку):
    • Проц - AMD Ryzen 7 7700 +
    • Мать - MSI PRO B860-P
    • Диск - Samsung 9100 PRO 1+ ТБ
    • Память - например G.Skill Ripjaws S5 [F5-6000J3636F16GX2-RS5K] 32 ГБ или G.Skill Trident Z5 [F5-6000J3238G32GX2-TZ5K] 64 ГБ, 6000 МГц
    • Видеокарта - если не игровую, то 4060-70 вполне достаточно, что-то типа MSI/Gigabyte, если игровую - то аналогично что-то типа 5070-80-90 по вашему бюджету, только с воздушным охлаждением
    • БП - Seasonic/FSP 850Вт+
    • Кулеры - водянку не брать, только воздух, двухбашенный, топ - Noctua NH-D15 G2 или аналог от Bequiet/DeepCool; для корпуса - 200/230 мм, ноктуа/bequiet/bitfenix/DeepCool
    • Корпус - любой на ваш вкус и бюджет, "всё в сетку" не брать, обязательно с воздушными фильтрами (CoolerMaster, LianLi, Deepcool и тп.)
    • Остальное - по потребностям и бюджету (звуковая карта, картридеры и прочее).

    Сборку доверить лучше знакомому, кто умеет или, если заказ будет всё в одном магазине - можно там, но обязательно с контролем.

    Монитор - 4к, 120 герц, IPS/OLED, 32"+, например что-то типа LG UltraGear 32GR93U-B (но тут лучше смотреть обзоры и тесты сначала, посмотреть своими глазами в шоу-руме типа https://4k-monitor.ru/).
    Ответ написан
    Комментировать
  • Возможен ли hakintosh на 5060 ti и ryzen 5 7600x3d?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Я бы задал себе вопрос - нахрена козе баян?
    Если Вы разработчик под Мак, то хатинтошь точно не нужен, нужен нормальный Мак.
    Если Вы уже работаете на Маке, то нахрена хокинтош?!

    Если же Вы только желаете попробовать Мак, боюсь, Вас ждет сильное разочарование, ибо Интельную платформу уже и не поддерживают. Так что все хорошие, модные, новые и крутые вещи от хакинтоша не получить!

    И вот, у меня не осталось ни одного варианта, зачем Вам хакинтош.

    Примерно такое же количество секса и удобства получите от любого линукса, например от убунты.

    PS. И да, я, как разработчик, отказался от маков года 4 назад, сижу под линуксом, и не ощущаю никакого дискомфорта от перехода. Только выиграл в деньгах на ПО и железе.

    Дома лежат, и еще работают:
    - imac - установил туда линукс, ибо систмема OSX перестала обновляться
    - macmini - угадайте с трех раз - да, теперь там тоже убунту
    - macbook air жены - (см. предыдущие пункты)
    - macbook pro - (аналогично!)
    Где-то по дому валяются штук 5 айфонов и парочка айпадов, просто не влючаем.

    PS. этот текст написан с lenovo thinkbook с убунтой на борту.
    Ответ написан
    Комментировать
  • Почему падает скорость интернета?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    У меня в квартиру заведено две линии в квартиру по 100мбит по одному проводу. Провод четырех жыльный.

    Че? Тут либо все не так, либо не так написано. Что значит "две линии по одному проводу"? Два договора?
    Т. е. 2 жилы на каждую линию.

    Чушь и бред. Даже 10BASE-T использует 4 провода.
    Ответ написан
    Комментировать
  • Как сделать динамический роутинг в магазине на laravel?

    delphinpro
    @delphinpro Куратор тега Laravel
    frontend developer
    public function product($slug)
        {
            $product = Product::where('slug', $slug)->firstOrFail();


    Здесь должно быть два параметра - категория и продукт.
    Первым идет категория.
    Вы ищете продукт, но в условие попадает слаг категории, запись не находится, и выбивает 404

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

    Route::get('/{category:slug}/{product:slug}',[\App\Http\Controllers\ProductController::class,'product'])
        ->name('product');
    
    public function product(Category $category, Product $product)
        {
            return view('product.index', [
                'product' => $product,
                'cat_slug' => $category->slug,
            ]);
        }
    Ответ написан
    1 комментарий
  • Как написать скрипт на питоне который будет присылать сообщение в телеграм бот об включении, выключении компьютера, неудачной попытки входа в учетку?

    @rPman
    У тебя следующие задачи, которые решать придется по разному:
    * детектирование включения машины
    решается простой фиктивной службой systemd startup
    * детектирование выключения машины
    можно конечно тоже службой shutdown, но будут события только корректных выключений, а принудительные перезагрузки резетом или например ctrl+alt+shift+pause .. r (которая работает даже если модули ядра повиснут), не отловит.
    Тут можно поставить скрипт, анализирующий работу машины на соседнюю в сети, вариантов тьма.
    * попытки входа в систему
    В общем случае это в /var/log/auth.log там будет все, и использование sudo/su, и запуск процессов cron и служб (с указанием пользователя) и ssh подключения и тьма тьмущая всего что так или иначе затрагивает авторизацию, что и является 'вход в систему', там же можно посмотреть что пишет lightdm на попытки входа в gui

    Мониторить попытки входа придется скриптом, периодически читающим файл (осторожно tail -f /var/log/auth.log | my_script не отследит ротацию логов, поэтому лучше самому следить за датой последнего изменения файла и читать его с позиции, на которой остановился в прошлый раз ну или с нуля)
    upd. век живи век учись, ключ tail -F корректно будет работать с ротацией логов

    Если делать 'по феншую', то лучше работать с подсистемой сбора событий, в python с помощью python-systemd - journal например фильтруя по _SYSTEMD_UNIT=sshd.service и _COMM=sshd (сам я не делал, посмотрел что можно и в памяти отложил, сейчас ИИ спросил, да где то так и надо)

    * отправка сообщений в telegram
    можно конечно использовать какую-нибудь библиотеку, многословно, красиво... а можно отправить один http запрос по api telegram, кода минимум, наверное все так в своих скриптах делают
    https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>&text=Hello%20World
    Ответ написан
    5 комментариев
  • Почему не получается обратиться к наследуемому свойству (php) через асинхронный запрос?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вопрос "как обратиться через аякс к свойству класса пхпе" является заведомо бессмысленным. JS не работает со свойствами классов в РНР.
    Поэтому в решении таких проблем очень помогает логика.
    Если отставить в сторону "свойства", то мы получим довольно простую формулировку вопроса: "почему синхронный и асинхронный запрос к одному и тому же скрипту возвращают разные данные?". И здесь уже, рассуждая логически, можно прийти к очевидному ответу: эти запросы обращаются к разным бэкендам. То есть, чтобы решить проблему, надо либо обновить код на том сервере, к которому обращается fetch, либо делать запрос на тот сервер, который возвращает правильные данные.

    Это если исходить из предоставленных данных. Вполне вероятно, что автор запутался где-то ещё. Но тут уже ему придётся разбираться самостоятельно. Но опять же, рассуждая логически, а не "Почему не получается обратиться к свойству php через асинхронный запрос?".
    Ответ написан
    9 комментариев
  • Какие у битрикса требования к серверу?

    Дисковое место: сам Битрикс в редакции Бизнес жрёт меньше 1.5 Гб . Остальное зависит от того, сколько у вас картинок и какого они размера.
    Памяти как-то мало. Полгига надо отдать под мемкеш или редис, потому что файловый кэш проблемный. Битрикс хочет 384 Мб оперативки на процесс PHP - считайте сами, сколько получится запустить параллельно.
    Ещё MySQL отожрёт гига два.
    По ядрам:
    одно - под MySQL,
    одно - под nginx ( ладно, системные процессы сюда же),
    и ... ничего не осталось..

    10к уников - для простоты можно считать, что они ходят только в рабочее время, то есть 10 часов. То есть 1к уников в час, 1 уник в 3.5 секунды. У Битрикса "эталон" задан как генерация страницы за 0.3 сек - в реальности, конечно больше ( если кто-то станет Вам говорить про автокеширование - плюньте ему в лицо), но вроде вписываетесь.
    Сейчас ещё надо учитывать паразитный трафик от нейросетей и всяких парсеров, он может быть очень значительным, но можно его зафильтровать.

    Если заказчик просто хочет быстро запуститься - Битрикс пойдёт, пока пилите магазин на чём-то другом (тот же опенкарт, если у Вас достаточно опыта на нём). Преимущества, которые у платформы были, за минувшие годы превратились в пыль.
    Ответ написан
    6 комментариев
  • Как вернуть коммиты после rebase?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Почему «пропали» коммиты?

    Главная ошибка — использование --amend во время rebase.
    Команда git commit --amend не создает новый коммит, а перезаписывает предыдущий.

    Когда вы время интерактивного rebase на каждом шаге делаете --amend, вы по сути всё время заменяете один и тот же коммит. Остальные коммиты, которые Git должен был «применить» в процессе ребейза, просто исчезают, потому что их заменили.

    Как делать правильно?

    Во время rebase -i вместо amend нужно:

    git add <файлы> #  главное проиндексировать правки файлов
    git rebase --continue # тут гит уже сам сделает git commit --no-edit
    Вручную делать git commit перед continue имеет смысл только если вы хотите поменять ещё и сообщение коммита.

    Как восстановить утерянные коммиты

    Git не удаляет коммиты сразу. Они остаются в репозитории и доступны в reflog — журнале ссылок.

    Их можно найти так: git reflog

    Затем восстановить ветку: git reset --hard <хеш_из_reflog>

    Вывод

    Это не баг Git, а ожидаемое поведение. Просто rebase + amend — взрывоопасная смесь, особенно если не до конца понимать, что происходит.
    Ответ написан
    Комментировать
  • Бесплатный способ отправить уведомление на телефон админа через web API?

    @alexalexes
    В телефоне можно какой-то апп под андроид, который получает уведомление и орёт.

    Изучите стек push notification. Там не нужно приложение, нужна простая страница подписки и бек скрипт, чтобы сделать рукопожатие с сервером гугла при подписке, и для отправки уведомления гуглу, гугл уже отправит подписавшемуся все что вы хотите - это уведомление высветится в интерфейсе андроида.
    Ответ написан
    Комментировать
  • На Q&A пробираются рекламные боты?

    TosterModerator
    @TosterModerator Куратор тега Хабр Q&A
    Модератор Хабр Q&A
    Возможно криминал, по коням!

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это же основы.
    . - текущий каталог.
    .. - родительский каталог.
    Трёх точек в файловой системе не используют. Для доступа выше по дереву берут родительский каталог родительского каталога.
    ../..
    Ответ написан
    4 комментария
  • Какую платформу выбрать для создания MVP?

    Adamos
    @Adamos
    Битрикс - это не платформа, а решение. Делать на нем что-то свое - это больше борьба с тем, что накостыляли кодеры Битрикса. А когда он надоест, все наработки можно будет спустить в унитаз, потому что больше они ни к чему не подойдут.
    Озвученная Ларавель - хороший фреймворк, но готовые писать на голом фреймворке не задают таких вопросов. Вам, полагаю, стоит посмотреть CMS на базе Ларавели.
    Самому мне нравится OctoberCMS, точнее, сейчас - ее бесплатный форк WinterCMS. Каталог готовых плагинов, среди которых немало бесплатных, тут: https://octobercms.com/plugins
    Ответ написан
    4 комментария
  • Какой дистрибутив линукс лучше подойдет для Битрикс в 2025 году?

    @konsealex
    Debian 12, под него и рекомендации битрикса есть https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    Ответ написан
    Комментировать
  • Определение значений передаваемой в функцию переменной типа массив?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Это один из тех вопросов новичков, на который нельзя давать прямой ответ. Он превратится в пустое умствование и говнокод. Соглашусь с комментарием Дмитрий: тут просто не нужен массив. И тем более не нужно городить огород из абстракций. Тут явно нужен банальный VO/DTO, а автору надо перестать пытаться заворачивать привычные массивы в солидно выглядящие объекты, и начать использовать сами объекты.

    Если нам нужна конкретная структура, то и описываем её в конкретном классе, безо всяких интерфейсов:

    final readonly class Parameters
    {
        public function __construct(
            public string $key1,
            public int $key2,
            public DateTimeImmutable $key3,
        ) {}
    }
    public function execute(Parameters $parameters):


    В итоге у "стороннего разработчика" есть готовая документация - простое и понятное определение класса, экземпляр которого он должен передать в ваш метод. И уже на этапе создания этого объекта РНР надаёт разработчику по рукам, если хоть какое-то свойство не будет задано, или будет не того типа. При желании можно в конструктор добавить дополнительную валидацию, если просто типа недостаточно.

    При этом если внутри execute() вдруг зачем-то понадобится обратиться к свойствам именно как к массиву, то использовать волшебную функцию get_object_vars().

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

    Для этого есть либо стандартные валидаторы, когда на вход подаётся массив и набор правил, вот например как в ларавле, симфони или в десятке отдельно стоящих библиотек, а на выходе - или гарантированно валидная структура данных, или ошибка.

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

    В этом случае документацией для обоих вариантов является сваггер, а фидбеком - ошибки валидатора.
    Ответ написан
    Комментировать
  • Как настроить локальный Bitrix и почтовый сервер на одном IP с помощью Nginx (на Windows)?

    @Drno
    Первая ошибка - ставить софт предназначенный для сети или веб сервера на винду…

    Поднимите виртуалку на убунте, настройте там nginx. Дальше пусть он разруливает что и куда
    Ответ написан
    Комментировать
  • Не будет ли конфликтов между виндой и линуксом, если линукс поставить второй системой?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Если вам для учебных целей или просто пощупать - то ставьте VirtualBox, в него устанавливайте линукс и будет у вас прекрасная игровая площадка, которую не жалко сломать и от которой не зависит ваша основная система. А вот ставить линукс второй системой имеет смысл только если вам в линуксе нужен 3D и графика. А ещё лучше ставить только в случае, если вы знаете или хотите изучить механизмы работы загрузки нескольких разных ОС и их взаимодействие на собственном опыте. Или есть хороший знакомый, который это всё знает и умеет чинить. Проблема двух ОС в том, что у разных разработчиков разных ОС и разных дистрибутивов свои понятия о том, как должны взаимодействовать несколько ОС, плюс разные конфигурации оборудования - всё вместе это даёт такой дикий коктейль возможностей, что никогда не угадаешь, что может пойти не так. При установке ОС установщик может: проигнорировать существующий загрузчик и добавить его запись в свой загрузчик, добавить запись о новой ОС в существующий загрузчик, заменить его своим и добавить запись о старой ОС в свой список (или не добавить), не ставить вообще никакой загрузчик для целевой ОС, может просто удалить его, может полностью удалить существующую ОС и т.п. Плюс существует еще куча всяких конфигураций железа и ПО: BIOS, UEFI, MBR, GPT, SATA, NVME, разные виды разделов, установка ОС на один диск или на несколько, может быть больше двух разных ОС и т.п. и т.д. А ещё современные ОС периодически при обновлении лезут в загрузчики свои и как результат, при любом обновлении любой ОС всё может поломаться (увы, реальный факт из практики - что винда, что линукс уже не раз так делали).

    В целом рекомендация будет следующая:
    1. Отключить в винде быструю загрузку (FastBoot)
    2. Физически отключить диск с виндой от ПК
    3. Выбрать в БИОС загрузку с диска, куда будете ставить линукс
    4. Установить линукс
    5. Подключить диск с виндой обратно
    6. В загрузчик линукс добавить запись загрузчика винды
    7. Загрузиться в винду
    8. Добавить в загрузчик винды запись линукса
    9. В BIOS выбрать загрузочный диск основной ОС

    Т.о. у каждой ОС будет свой независимый загрузчик на своём диске и когда одна из ОС или диск сломается - у вас будет вторая независимая ОС, которая всё ещё будет работать.

    Альтернативный вариант - использовать как основной загрузчик что-то типа Clover. Но там тоже есть свои нюансы.
    Ответ написан
    4 комментария
  • Есть ли реальные проблемы с безопасностью windows 7 для домашнего использования?

    Проблемы, естественно, есть, поскольку есть уязвимости.
    Столкнётесь ли лично вы с ними никто не знает.
    Ответ написан
    Комментировать
  • Не могу перевести число в десятичную систему без чисел после запятой используя Math.round()?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    А чего ради где-то на странице должно округляться? Метод changeToUAH ничего не возвращает даже, но зачем-то вызывается. Вы понимаете вообще что вы там накодили и что происходит?
    Ответ написан
    7 комментариев
  • Как лучше обновлять счётчик записей?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Лучше всего вообще ничего не обновлять.
    При наличии очевидного индекса на article_id, хоть какие-то проблемы подсчёт на лету начнёт создавать на объёмах уровня фейсбука.
    Так что я бы сначала не со счётными палочками колупался, а проверил наличие индекса.
    Ответ написан
    Комментировать
  • Ошибка в запросе, в чём причина?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Такое ощущение, что код пропустили через какой-то markdown-редактор, который посчитал, что запись вида u.id это адрес сайта и автоматически заменил на соответствующий markdown-синтаксис ссылок. Такое может быть, например, при пересылке кода как обычного текста в мессенджерах.
    67bc7a1565357335276039.png
    Ну а малограмотный кодер вставил этот markdown-код не задумываясь.
    Так что причина - копипаста без знания синтаксиса конкретного диалекта SQL.
    Ответ написан
    1 комментарий