• Зачем переназначать переменные в задаче 70. Climbing Stairs?

    Alex_Geer
    @Alex_Geer
    System Engineer
    В этой части кода происходит обновление значений переменных prev1 и prev2, чтобы они соответствовали текущей итерации цикла.

    Переменная current вычисляется путем сложения значений prev1 и prev2. Затем, чтобы подготовиться к следующей итерации цикла, значение prev1 обновляется, чтобы оно равнялось предыдущему значению prev2, а значение prev2 обновляется, чтобы оно равнялось текущему значению current.

    Это делается потому, что для вычисления количества способов подняться по лестнице из n ступенек нам нужно знать только количество способов для n-1 ступеньки и n-2 ступеньки. Поэтому мы можем обновлять значения prev1 и prev2 на каждой итерации цикла, чтобы сохранить только два последних значения и использовать их для вычисления следующего значения.
    Ответ написан
    1 комментарий
  • Как реализовать отображение чертежей в winForms?

    @rPman
    Вне зависимости от использования библиотек или фреймворка общая идея ускорения вывода большого количества примитивов или просто сложные объекты, есть разные подходы:
    * кешировать результат, в твоем случае можно в памяти создать битмап и отрисовывать в него, тогда при перемещении окна просмотра в него перерисовывать объекты не понадобится
    недостаток - при большом размере холста (в пикселах) будут повышенные требования к оперативной памяти
    * частично кешировать результат, чем то таким занимаются разработчики/движки игр, когда далекие сцены, внешний вид которых не меняется при локальных перемещениях игрока, заменяются на заранее отрендеренный битмап (текстуру) и рисуют простой спрайт
    В общем это перераспределение нагрузки между процессором и оперативной памятью, либо ты постоянно перерисовываешь все объекты на сцене либо ты это делаешь реже но хранишь все в памяти
    * воспользоваться видеоускорителем, красивого решения именно для c# у тебя не будет, это вообще не подходящий инструмент. Смысл в том что современные видеоускорители, даже если это оффисный, встроенный в процессор, способны отрисовывать миллионы примитивов, но разработка приложения будет похожа на разработку игры, и готовые фрейамворки либо ограничат тебя в возможностях либо из-за того что используешь неподходящий инструмент, ты будешь тратить время на переходы от managed разработки до нативной
    погугли .net using gpu acceleration
    если ты готов к вендорлоку nvidia посмотри на их движок
    Ответ написан
    Комментировать
  • Почему нет(?) популярного REST API для IMAP?

    neuotq
    @neuotq
    Прокрастинация
    Как верно выше сказали вы путаете протокол и сервисы/серверы.
    IMAP - это протокол(прикладного уровня, почитайте про модель OSI), те некое соглашение чтобы всё по сети работало одинаково везде и всегда.
    REST API - это совсем другое, работает внутри другого протокола HTTP.
    Поэтому вам нужно искать не API к IMAP, а сервер IMAP в котором есть нужные API. Такие есть, гуглить нечто вроде
    "imap server with rest api"
    И там уже сами разработчики серверов реализовывают разные штуки, от управление аккаунтами, до манипуляция с самыми почтовыми ящиками и почтой.
    Ответ написан
    2 комментария
  • Не работает интернет после установки Linux. Что делать?

    TrueBers
    @TrueBers
    Гуглю за еду
    Первая же ссылка в гугле по запросу "RTL8821AU Linux" говорит о том, что Realtek забил болт на всех, и исходники драйвера для этого чипа никогда не публиковались, соответственно, их не может быть в ядре изначально.

    Единственный вариант -- это собрать среверсенный драйвер через dkms или установить с пользовательского репозитория уже собранный модуль.

    Для Федоры: https://copr.fedorainfracloud.org/coprs/sunwire/dk...
    Для Арча: https://aur.archlinux.org/packages/rtl8821au-dkms-git
    Для Убунты не припомню собранного актуального модуля.

    Для самостоятельной сборки: https://github.com/morrownr/8821au-20210708

    UPD: От себя добавлю, что драйвер очень глючит, что под Линуксами, что под Виндой. Если используется не для кулхацкинга и режима монитора, то лучше купить что-то понадёжнее.
    Ответ написан
    Комментировать
  • Почему недоступны 144 ггц на Macbook pro 14 m1?

    @402d
    начинал с бейсика на УКНЦ в 1988
    Читаем спецификацию
    Частота обновления
    Технология ProMotion с адаптивной частотой обновления до 120 Гц
    Постоянная частота обновления: 47,95 Гц, 48,00 Гц, 50,00 Гц, 59,94 Гц, 60,00 Гц
    Но главное для внешних дисплеев

    https://www.apple.com/ru/macbook-pro-14-and-16/specs/
    Одновременная поддержка полного штатного разрешения на встроенном дисплее с миллиардом цветов. Дополнительно можно подключить:

    До двух мониторов с разрешением до 6K, высоким качеством цветопередачи (более миллиарда цветов) и частотой 60 Гц (для моделей с чипом M1 Pro) или
    До трёх мониторов с разрешением до 6K и один монитор с разрешением до 4K, с высоким качеством цветопередачи (более миллиарда цветов) и частотой 60 Гц (для моделей с чипом M1 Max)
    Ответ написан
  • Как сделать, что клиенту прилетал актуальный PDF-файл?

    Adamos
    @Adamos
    Выставить настройки кэша в заголовках ответа, отдающего файл.
    Для особо упертых браузеров, которые могут класть на эти заголовки (вроде Хрома) - отдавать файл каждый раз по другой ссылке (добавив ?ver=mtime, например).
    Ответ написан
    1 комментарий
  • Как сделать, что клиенту прилетал актуальный PDF-файл?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Называть новый файл по новому? Таймстэмп или текущие дата+время вполне подойдут... Ну, или можно давать при скачивании get параметр с таймстэмпом, типа mydomen.tld/download/vasea.pdf?t=123456
    Ответ написан
    Комментировать
  • Не могу отловить процесс нагружающий Linux процессор?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Идете в google, вбиваете performance monitor linux, выбираете подходящую утилиту, например Collectl, настраиваете и ждете всплеска. Потом анализируете полученные данные.
    Ответ написан
    Комментировать
  • Можно ли сделать из зарядника резистор нагрузки для powerbank'а?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    по идее, там должен появиться переменный ток
    А пацаны то не знают, всё какие-то сложные схемы инверторов делают. А тут просто возьми любой зарядник и подай на выход постоянку, он сам наоборот заработает.
    Ничего на заряднике не появится и как нагрузка он работать не будет. На выходе стоит диод или диодный мост, которые просто не пропустят обратный ток.
    Ответ написан
    1 комментарий
  • Почему $PATH постоянно сбрасывается?

    у вашего юзера небось логин шел по умолчанию был не баш
    как узанть
    grep $(whoami) /etc/passwd | cut -d : -f 7
    
    /bin/bash

    как поемнять
    usermod --help

    там написано как шел заменить

    -s, --shell SHELL             new login shell for the user account
    Ответ написан
    Комментировать
  • Что делать если не запускается программа на 32битной винде?

    MvcBox
    @MvcBox
    Software Developer [C/C++/JS(for Node.js)/etc]
    Как только я решил закинуть этот проект на комп, экзешник просто исчез(на том компе стоит касперский, но вряд ли это его рук дело).

    Это как раз его рук дело. Просто он без лишних вопросов удаляет подозрительный файл.
    Ответ написан
    3 комментария
  • Программирования учат или применяют?

    Newto
    @Newto
    Добрый день. Я перечитал все ответы выше, а так же комментарии к ним. Решил прокомментировать, с точки зрения своего опыта(я занимаюсь разработкой уже более 15-ти лет). Для удобства чтения я буду писать по пунктам.

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

    2) Методика "объяснение и практика". Вы пишете, что "при таком способе мне приходится одно и тоже глазами несколько раз пробегать чтобы запомнить". Это, с моей точки зрения, в корне не верно. Ибо то, что вам объясняют, не нужно "пробегать глазами" несколько раз, что бы запомнить. Это вообще не нужно запоминать если это не те самые "стандарты"; это нужно осмыслить и понять. После того, как к вам придёт понимание как это работает, зачем и почему это надо -- вы сможете это использовать, осмысленно, в собственном коде.

    3) Платные курсы. Курсы ныне очень разные. Кто-то просто, простите, гребёт бабло на этом всём. А кто-то преподаёт с душой, хорошо и понятно рассказывая. Поэтому платный курс -- это хорошо, но только тогда, простите за тавтологию, когда это хороший курс. Читайте отзывы о курсе, советуйтесь с теми кто его уже прошёл(в идеале) и тогда уже решайте, тот ли этот курс, что даст вам необходимые знания.

    4) ВУЗ. Более 10-ти лет назад, у меня в подчинении, в вебстудии, работал PHP джун. Он доучивался в МГТУ имени Баумана. И он не знал ничего. Совсем. Мне приходилось объяснять ему простейшие вещи, типа что значит иструкция "$a += $b;". Сам же я учился в ВУЗе малоизвестном, на факультете "прикладная информатика в экономике" и наш преподаватель информатики, на первом курсе, на вопрос что значит в коде программы на языке C++ инструкция "с++" ответил, что это "так язык называется". Однако, вскоре ко мне начали ходить сокурсники, с просьбами "а напиши программку". И происходило это потому что я сам загорелся программированием, купил книжки, установил всё что нужно было установить на компьютер и начал "творить волшебство", как это мне тогда виделось, с горящими глазами. Короче говоря не нас учат ВУЗы, а мы учимся в ВУЗах или учимся без них. Тут уж как пойдёт.

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

    Подыдожу -- ключи к быстрейшему развитию в деле разработки это ваш интерес к этому делу, желание им заниматься и примеры хорошего, качественного кода перед глазами. А так же кто-то, кто сможет технически оценить вашу работу и, без агра, с конструктивом, показать и рассказать что вы сделали не так.
    Ответ написан
    25 комментариев
  • Нельзя скачать PyCharm в 32-bit?

    Stalker_RED
    @Stalker_RED
    Последняя версия под 32 бита - 2018.3.7, и ее можно скачать с оффсайта.
    https://www.jetbrains.com/pycharm/download/other.html
    Ответ написан
    Комментировать
  • WeMos XI (красный клон Ардуино) работает медленнее Arduino? Что делать?

    @kalapanga
    Сам я платы на контроллерах Logic Green не использовал, но, судя по симптомам, неправильно выбрана плата в аддоне для Arduino IDE. А возможно стоит другой аддон попробовать. Про платы эти много написано. И на форуме arduino.ru они подробно разбирались и на хабре статьи были.
    p.s. Приведённые функции содержат сразу несколько ошибок (но к Вашей проблеме они вряд ли имеют отношение).
    1) Функция micros() возвращает значение типа unsigned long, а не long.
    2) При сложении NOW + BIT_TIME Вы можете получить переполнение и задержка сработает неправильно. Либо используйте micros() и millis() как в примере BlinkWithoutDelay, либо просто используйте delayMicroseconds()/delay()
    Ответ написан
    Комментировать
  • Docker в Windows, Linux переводы строк, как правильно?

    vabka
    @vabka
    Токсичный шарпист
    Вариант раз: писать логи в stdout и пусть сам Docker или какой-нибудь vector их перенаправит куда следует в нужном формате.

    Вариант два: Забить и настроить инструмент, который читает файлы на винде так, чтобы он LF считал за нормальный перенос строки.
    Ответ написан
    Комментировать
  • Форматирование статей на Хабре с кодом, как?

    pragmatik
    @pragmatik Куратор тега Хабр
    Смотрю материал, присланный вами на проверку. Часть кода вы воткнули как блоки обычного текста: 642d3e43d2c0a027632132.png
    Другую часть вы оформили опцией предназначенной для СТРОЧНОГО выделения кода:642d3fdb86455180370149.png

    В то время как для вставки блоков кода предназначен другой инструмент:642d405fa0e0e594499770.png642d4069d162a686144707.png
    Ответ написан
    3 комментария
  • Как отменить запрос пароля в Ubuntu?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Все что пишут выше по поводу безопасности - правда. Есть best practices и им надо следовать.

    Когда мне надо сделать какие-то действия от суперпользователя и многократно - я запукаю bash
    $ sudo bash
    и работаю сколько надо. Потом только главное не забыть закрыть эту консоль. И промпт еще стоит
    поменять так чтоб различать несколько терминалок.
    export PS1="root> "
    Ответ написан
    3 комментария
  • Как отменить запрос пароля в Ubuntu?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Рекмендую вернуть все взад, юзера этого удалить и никогда больше так не делать.

    До тех пор, пока ты не сможешь без гугла восстановить работу линуха, чтобы там не поломалось - не надо работать юзером с id 0! Рут - только для действий настройки!
    Открой отдельную консоль рута и делай в ней необходимые действия, никогда не работай от рута!

    Если конечно тебя не прикалывает постоянная перестановка системы :)
    Ответ написан
    3 комментария
  • Нету драйвера на видеокарте, на линукс что делать?

    @pfg21
    ex-турист
    даже просто поиск по "archlinux nvidia" дает сразу же кучу ответов
    в первой строчке ссылка на правоверную рач.вики
    https://wiki.archlinux.org/title/NVIDIA_(Русский)
    Ответ написан
    2 комментария
  • Как настроить tor browser в ubuntu?

    @AlexVWill
    для чего нужен файл start-tor-browser.desktop

    Это шорткат (ярлычок) для запуска браузера ТОР c десктопа, надо его поместить в папку /home/user/Desktop
    Ответ написан
    4 комментария