Задать вопрос
  • Как декомпозировать задачи, с которыми ты впервые сталкиваешься?

    ThunderCat
    @ThunderCat
    {PHP, MySql, HTML, JS, CSS} developer
    Я сейчас скажу нечто, чего раньше не думал что смогу озвучить: Засуньте свою задачу в чатгпт, напишите что полный нуб и наблюдайте за магией...

    Как пекарю познать коленвал?

    Как пекарю познать коленвал? Я пекарь по профессии, но к сожалению в моем селе нет автомастерской, а мне нужно заменить коленвал на Тойоте Тундра. Сам коленвал мне прислали, нужен примерный план действий по замене.

    Заменить коленвал в двигателе автомобиля — задача непростая, особенно 
    для человека без опыта в механике. Однако с вниманием, терпением и пошаговым подходом это возможно. 
    Вот примерный план действий:
    
    ---
    
    ### **Подготовка**
    1. **Инструменты и материалы:**
       - Набор ключей и трещоток.
       - Динамометрический ключ.
       - Домкрат и стойки для подъема машины.
       - Съемник для шкивов.
       - Герметик для двигателя.
       - Масло для двигателя и охлаждающая жидкость.
       - Тряпки, емкости для слива жидкости.
       - Руководство по ремонту для вашего двигателя (очень важно для точности).
    
    2. **Создайте рабочее пространство:**
       - Работайте на ровной поверхности с достаточным освещением.
       - Обеспечьте стабильность автомобиля, установив его на стойки.
    
    3. **Слейте жидкости:**
       - Слейте масло и охлаждающую жидкость в заранее подготовленные емкости.
    
    ---
    
    ### **Снятие двигателя**
    1. **Демонтаж вспомогательных элементов:**
       - Снимите аккумулятор.
       - Отсоедините радиатор и трубки охлаждения.
       - Снимите все ремни привода и шкивы.
    
    2. **Демонтаж двигателя:**
       - Отсоедините все крепления двигателя (подушки двигателя, болты к трансмиссии и т.д.).
       - Используйте подъемник двигателя (или лебедку), чтобы извлечь его из автомобиля.
    
    ---
    
    ### **Разборка двигателя**
    1. **Снимите крышку картера:**
       - Выкрутите болты и аккуратно снимите картер, соблюдая осторожность, чтобы не повредить прокладку.
    
    2. **Снимите шатунно-поршневую группу:**
       - Отметьте каждую деталь, чтобы установить их на место позже.
       - Выкрутите болты шатунов, освободите поршни и выдавите их вверх через цилиндры.
    
    3. **Снимите старый коленвал:**
       - Открутите крышки коренных подшипников.
       - Осторожно извлеките коленвал, записывая порядок установки крышек.
    
    ---
    
    ### **Установка нового коленвала**
    1. **Очистите все поверхности:**
       - Убедитесь, что поверхности чисты и обезжирены.
    
    2. **Проверьте зазоры:**
       - Сравните размеры нового коленвала и вкладышей с заводскими рекомендациями.
    
    3. **Установите новый коленвал:**
       - Уложите коленвал на место и закрепите крышки коренных подшипников в правильном порядке.
       - Затяните болты с использованием динамометрического ключа по рекомендациям.
    
    4. **Установите шатунно-поршневую группу:**
       - Убедитесь, что поршни установлены правильно.
    
    5. **Закройте картер:**
       - Используйте новую прокладку и герметик.
    
    ---
    
    ### **Сборка и установка двигателя**
    1. **Установите двигатель обратно:**
       - Подключите все крепления, трубки и провода.
    
    2. **Заполните жидкости:**
       - Залейте свежее масло и охлаждающую жидкость.
    
    3. **Проверьте:**
       - Убедитесь, что все подключено и закреплено.
    
    4. **Первый запуск:**
       - Прокрутите двигатель без зажигания для циркуляции масла.
       - Запустите двигатель и проверьте на утечки.
    
    ---
    
    ### **Рекомендации**
    - Если у вас нет опыта работы с автомобилями, найдите онлайн-ресурсы 
    с пошаговыми видео (например, на YouTube).
    - Всегда соблюдайте рекомендации по моменту затяжки болтов.
    - Если что-то пойдет не так, обратитесь за помощью к опытному механику, 
    даже если это потребуется поездка в соседний город.
    
    Если будут вопросы по конкретным шагам — пишите, я помогу!
    Ответ написан
    Комментировать
  • Почему некоректно обновляется ширина в кастомном хуке?

    Aetae
    @Aetae
    Тлен
    Классика: ты этот width наверняка присваиваешь какому-то элементу. Соответственно, ширина этого элемента становится ровна width. Когда ты меняешь ориентацию - ты не убираешь width перед этим, а значит innerWidth окна не минимальное значение, а то, какое получилось с учётом элемента с width, который это окно распирает.
    Т.е. после каждого увеличения width, window.innerWidth не может быть меньше чем width.

    Такие задачи принято решать вёрсткой.
    Ответ написан
    2 комментария
  • Какая минимальная конфигурация ноутбука для программирования?

    @Paveldpv
    Доброго времени суток
    занимаюсь примерно тем же самым (node js mongo .dotnet и прочее ) vscode + vs
    16" Ноутбук HUAWEI MateBook D16 RLEF-X (i7 16гб ) - имею вот такой ноут
    все работает хорошо - уже год - полет нормальный
    удобное соотношение сторон экрана+ клавиатура с наппадом
    так же на нем же работаю в solidwork - расчеты нагрузок и прочее
    заряд держит часов 5 в режиме работы
    Ответ написан
    1 комментарий
  • Вычитаю одно округленное число из другого, в ответе выдается число с кучей знаков после запятой, как это исправить?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Добро пожаловать в реальный мир вычислений чисел с плавающей запятой с погрешностью! Если вам нужны точные вычисления - используйте тип decimal или аналогичный для вашего ЯП.
    https://habr.com/ru/articles/266023/
    https://learn.microsoft.com/ru-ru/office/troublesh...
    https://0.30000000000000004.com/
    Ответ написан
    2 комментария
  • Какая минимальная конфигурация ноутбука для программирования?

    @t_s_o
    Лично я в путешествиях/в дороге пользуюсь Chuwi Minibook X - сравнительно дешёвый китаец на Intel N100 с 12 гб DDR5. Его вполне хватает для .NET/Unity, плюс спокойно тянет ФШ и Solidworks 2022+ (2014 притормаживает, видимо вопрос оптимизации). Естественно это всё лучше не запускать одновременно, да и будет заметно греться при работе. При этом всякие браузеры-ютубы и тд вообще без проблем работают.
    Короче если говорить о современных бюджетниках - я бы смотрел в сторону Intel N100 с Full HD экраном (QHD ему уже тяжеловато, говорят), SSD 256-512 и DDR5 памятью сколько дадут (но лучше больше 8, конечно). Лично меня в рамках своего бюджета (~25к на тот момент) этот ноут сильно удивил. Но вообще сейчас на рынке хватает ноутов разных производителей на N100 (в том числе дешевле), главное чтобы DDR5 было
    Ответ написан
    Комментировать
  • Какая минимальная конфигурация ноутбука для программирования?

    @CrashLogger
    Сейчас не стоит рассматривать ноутбуки с менее чем 8 Гб памяти. Лучше, чтобы был свободный слот, куда в будущем можно добавить еще.
    SSD нужен от 512Гб. 256 будет постоянно не хватать, особенно для ноды с ее безразмерной папкой node_modules.
    А вот насчет процессора можно не заморачиваться. Любого i3 в принципе хватит. Просто немного дольше придется ждать компиляции.
    Если предполагается работа с Blender и 3D моделирование - то желательна дискретная видеокарта.
    Ответ написан
    Комментировать
  • Какая минимальная конфигурация ноутбука для программирования?

    @BoBaHPyt
    Программист
    В целом я бы поступил вот так: https://hi-tech.mail.ru/review/109982-luchshiye-no...
    В этом году ноуты сильно подешевели (по личным ощущениям) и скорее всего такая невиданная щедрость продлится не долго, я бы взял сейчас с небольшим запасом, но надолго.
    1. Почему не стоит брать игровые - лучше купить ПК, потому что лично для меня - игровой ноут не ноут, мобильности нет, даже в пределах квартиры.
    2. Почему не стоит брать слишком дешёвые - у них как раз вся мобильность оканчивается на квартире, ибо батарея меньше не куда - экономят на всём короче в них.
    3. Почему не стоит брать на Авито - как я сказал ноуты сейчас подешевели, а продавцы на Авито отталкиваются от цены покупки. Не буду же я продавать ноут купленный в прошлом году на 40% дешевле? А из дешёвых там есть только откровенно устаревшие.
    4. Почему бы я обязательно перед покупкой заглянул в dns? Клавиатура - извечно больная тема всех ноутов, для меня. По картинке не определить насколько она удобная, а если оказалась слишком не удобной - поменять как в ПК уже не прокатит. Было такое, что пришлось менять ноут из за этого.
    Ответ написан
    Комментировать
  • При запуске компьютера кулер начинает крутится останавливается и снова начинает крутится и в итоге компьютер запускается?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Для начала проверить материнскую плату и блок питания на взудвшиеся конденсаторы. Если конденсаторы вздулись на материнской плате - заменить на новые и она заработает как раньше. Если в БП - то БП заменить на новый с запасом реальной мощности в 20-25% (БП обычно не ремонтируется из-за высокого риска убить все остальное железо неисправным БП). При наличии мультиметра - проверить выдаваемые напряжения с блока питания. Если мультиметра нет - то проверить хотя бы в биосе, что показывает по напряжениям. Проверить работу каждой планки в первом слоте (смотрите в мануале материнской платы установку одной планки памяти - часто в этом режиме надо использовать только один какой-то определённый слот). Далее прогнать полный мемтест для работающей планки или для обеих, если вторая все же заработает.
    Вздувшиеся конденсаторы
    66bd1fe765ddc493005423.jpeg
    Таблица допустимых напряжений блока питания стандарта ATX
    Линия напряжения
    	+12В 	        +5В 	        +3.3В 	        +5VSB 	        -12В
    Диапазон отклонений
        ± 5% (± 0.6В) 	± 5%(± 0.25В) 	± 5%(± 0.165В) 	± 5%(± 0.25В) 	± 10%(± 1.2В)
    Минимальное напряжение
    	11.4В 	        4.75В 	        3.135В 	        4.75В 	        10.8В
    Максимальное напряжение
    	12.6В 	        5.25В 	        3.665В 	        5.25В 	        13.2В

    Что делать дальше - зависит от результатов. Неисправное железо - заменить. Исправное - диагностировать дальше.
    Ответ написан
    Комментировать
  • Какая минимальная конфигурация ноутбука для программирования?

    NikFaraday
    @NikFaraday
    Student full-stack Developer
    У меня учёбно-рабочий ноутбук Lenovo Idea Pad L3 на i3-10110u, RAM 8 Gb.

    Единственное, что могу сказать, что хочу доставить ОЗУ, т.к. не всегда хватает при запуске рабочих проектов

    Рабочий ПК стоит на i5-9400, для работы хватает с головой и больше)

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

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

    @d-stream
    Готовые решения - не подаю, но...
    Очень расплывчатые требования. И слишком рискованная "стратегия" брать технику под сиюминутные потребности.

    Впрочем можно конечно попробовать подойти формально и выбрать max из minimal system requiments для перечисленного в хотении. Правда стоит глянуть сразу в перспективные планы этого набора продуктов, а то вдруг в сентябре планируется выпуск следующей версии, в которой минималка на 10% выше...

    А так:
    - технически ноутбуки как правило либо не апгрейдятся либо это делается сложно и дорого - вполне мотив брать на вырост (в отличии от стационарного не прокатит доставить пару планок памяти, махнуть проц, видюху и всадить второй(третий-пятый) диски)
    - минимально требуемые характеристики - штука скорее формальная - запустится конечно, но не факт что во всех режимах будет работать и работа будет комфортной (продавались брендовые STB на celeron 2gb/32 - на них даже работала 10... но вот тупо для обновления диска уже не хватало)
    - много памяти/проца/диска не бывает:
    - "лишняя" память - это меньшие затраты на свопы, сборку мусора, кэширование - более плавная и отзывчивая работа
    - "лишняя" производительность/ядерность проца - аналогично
    - ssd диск забитый не под завязку - проживёт дольше

    притом удорожание вот такого "на вырост" зачастую может оказаться меньше, чем разброс цен между брендами... а уж если речь идёт о покупке б/у - может быть вообще что угодно

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

    p.s. у большинства асусов на мой вкус наиболее комфортное расположение курсорных клавиш
    Ответ написан
    4 комментария
  • Какая минимальная конфигурация ноутбука для программирования?

    @Drno
    современный i3, минимум 8гб оперативки(лучше 16гб)
    есть куча недорогих леново под такое, только эран у многих так себе..
    можно еще посмотреть хуавеи
    Ответ написан
  • Возможно ли настроить локализации для оптимизации видимости сайта в разных странах?

    a_ntokhin
    @a_ntokhin
    SEO-специалист и автор Hello Digital World
    Используйте атрибут hreflang. Этот атрибут указывает поисковым системам, какие языковые версии страниц существуют и для каких регионов они предназначены. Например, для французской версии страницы используйте
    <link rel="alternate" hreflang="fr" href="https://example.com/fr/">

    , а для немецкой версии —
    <link rel="alternate" hreflang="de" href="https://example.com/de/">

    . Что это такое тема для целой статьи, которых уже написано множество. Думаю, что разберетесь.

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

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

    Нюансов много, это только основные важные. Успехов
    Ответ написан
    2 комментария
  • Возможно ли настроить локализации для оптимизации видимости сайта в разных странах?

    opium
    @opium
    Просто люблю качественно работать
    Ну выбор то не большой либо субдомен eu.domen либо увеличить урл в конце domen/eu
    Другого не дано
    Ответ написан
    Комментировать
  • Возможно ли настроить локализации для оптимизации видимости сайта в разных странах?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    развернуть на субдоменах

    Подпапки. Для геозависимые запросов рекомендую комбинировать https://habr.com/ru/articles/809681/
    Ответ написан
    2 комментария
  • Как синхронизировать макбук и ПК на виндовс?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Если еще никто не советовал, то вот https://syncthing.net/
    Ответ написан
    4 комментария
  • Как верно покрыть тестами хук реактовский?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега React
    - expect(result.current).toBe(5);
    + expect(result.current.current).toBe(5);

    Функция renderHook возвращает объект, в котором в свойстве result содержится объект, в котором в свойстве current хранится результат вызова хука. Результат вызова вашего хука - ref, который тоже является объектом со свойством current, содержащим id интервала.

    Вроде, сообщение об ошибке максимально понятное ¯\_(ツ)_/¯
    Ответ написан
    Комментировать
  • Как поместить в grid полоску?

    delphinpro
    @delphinpro
    frontend developer
    нарисовать градиентом на фоне грид-контейнера

    Ответ написан
    9 комментариев
  • С чего начать изучать алгоритмы и структуры данных?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Можешь почитать "Алгоритмы. Руководство по разработке". Сам читал, база нормальная.
    Но то, о чем ты сказал (разбивать задачи на подзадачи и т.д.) - это называется "научиться мыслить аналитически". Этому нельзя научиться читая книжки - только через опыт получаешь насмотренность и набиваешь шишки. Поэтому одновременно с книгой/курсом решай задачи на условном литкоде.

    P.S. я считаю что математика нужна, т.к. она и позволяет получить вот это аналитическое мышление через призму функций, мат. абстракций, которые после переносятся на базовые конструкции ЯП (функции, переменные)
    Ответ написан
    1 комментарий
  • Как правильно документировать разрастающуюся БД?

    dmitriylanets
    @dmitriylanets
    веб-разработчик
    1. Основная проблема документации ее поддержка. Когда документация отстает, то она больше мешает чем, помогает.
    2. Автоматизация создания доки, помню, использовал Interprice Architect для автосоздания диаграмм бд, в принципе помогало, но боюсь что использовалось только мной
    3. В обще кто то сказал что лучшая документация это код, поэтому соглашусь что если есть некий workflow по созданию бд, и есть миграции с описанием что делает та или иная таблица. Я использую Propel2 ORM там есть некий конфиг (chema.xml) которая описывает таблицы + разделения таблицы на пакеты/группы/контекст. Маленьким контекстом проще управлять.
    Ответ написан
    1 комментарий
  • Почему не получается отфильтровать массив строк?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Предлагаю сделать следующее:

    • Прочитать сообщение об ошибке и попытаться осознать, что в нём сказано
    • Посмотреть, какие значения принимает key при переборе p
    • Открыть документацию и разобраться, что делает цикл for...in
    • Погуглить, какие ещё бывают способы перебора

    UPD. Ну что, никак?

    В сообщении об ошибке сказано, что невозможно прочитать свойство у undefined (ну, так язык устроен). Т.е., массива строк у вас нет. Массив строк - это когда всё его содержимое является строками. Откуда в массиве взялись undefined (да, у вас их там несколько)? Цикл for...in обрабатывает не только собственные свойства объектов, но и те, что доступны через цепочку прототипов. Значения которых уже не являются элементами и, соответственно, не имеют запрашиваемого вами свойства textContent. Раз свойства нет, получаете undefined.

    Как собирать массив текстов (const getText = el => el.textContent;), чтобы туда не попадал всякий мусор - лучше бы вообще отказаться от применения for...in, варианты разные есть:

    const list = Array.from(p, getText);
    
    // или
    
    const list = Array.prototype.map.call(p, getText);
    
    // или
    
    const list = [];
    for (const n of p) {
      list.push(getText(n));
    }
    
    // или
    
    const list = [];
    for (let i = 0; i < p.length; i++) {
      list[i] = getText(p[i]);
    }
    
    // или
    
    const list = [];
    p.forEach((n, i) => list.splice(i, 0, getText(n)));

    Если же хотите и дальше использовать for...in, то прежде чем что-то делать с конкретным свойством, убедитесь, что оно является собственным, методы Object.hasOwn и Object.prototype.hasOwnProperty вам в этом помогут.
    Ответ написан
    Комментировать