Задать вопрос
  • Как готовиться к олимпиадному программированию?

    @mamkaololosha
    Судя по вашему списку вы не знаете: сложность, комбинаторика, оптимизация перебора, динамическое программирование, графы, вычислительная геометрия.
    www.ozon.ru/context/detail/id/6290126
    www.ozon.ru/context/detail/id/2363462
    www.ozon.ru/context/detail/id/4721432
    codeforces.ru/problemset?order=BY_SOLVED_ASC
    Проблема может возникнуть в том, что вы не сможете вытягивать задачи выше среднего уровня из-за проблем с математикой. Не в смысле, что вы не вспомните какую-нибудь теорему, а просто физически не сможете из ничего придумать решение или изобрести неизвестный вам алгоритм.
    Ответ написан
    2 комментария
  • Как готовиться к олимпиадному программированию?

    globuzer
    @globuzer
    gezgrouvingus progreszive ombusgrander greyderzux
    В большинстве олимпиадных задач лежит основа математики, алгоритмов, анализа.
    И как в последствии - программирование, техника, инструменты.
    А значит нужно во первых подготовиться по базису - математика и алгоритмы.
    Притом математика в самом широком смысле: алгебра, комбинаторика, вычислительные методы, алгоритмы, дискретная математика, графы и тд. И каждую тему нужно подробно изучить.
    И только на основе всего этого базиса можно качественно решать все задачи.
    Естественно никто не отменял логику и образ мышления, это тоже нужно тренировать.
    Это все тренируется с практикой, основываясь на теории.
    После этого всего, уже закреплять знания в области техники, компьютеризации, алгоритмов, языков программирования, операционных систем, эвристического анализа, криптографии и т.п.
    Материал, книги, задачи можно найти по всем вышеизложенным темам просто задав их в качестве параметров поиска в поисковых системах интернета.
    Учите, запоминайте, практикуйтесь, и будет вам счастье!
    Ответ написан
    5 комментариев
  • PyQt5 или PySide 2?

    ri_gilfanov
    @ri_gilfanov
    Web- and desktop-developer
    Основное отличие -- это лицензии под которыми распространяются эти две обёртки над Qt.

    PyQt5 распространяется под GPL и коммерческой лицензией.

    PySide2 распространяется как Qt под GPL, LGPL и коммерческой лицензией.

    Пишите открытое/свободное ПО -- можно использовать как PyQt5, так и PySide 2.o

    Пишите закрытое/коммерческое ПО -- бесплатно можно использовать только PySide 2, а для использования PyQt5 потребуется покупать коммерческую лицензию.

    И если Вы живёте, работаете на компанию или имеете клиентов в США и Евросоюзе -- различие существенное, судебные иски там бывают.

    На постсоветском пространстве, я не припоминаю, чтобы кто-то подавал в суд из-за использования библиотек под лицензией GPL в коммерческих продуктах.

    Если Вам непринципиально на каком современном GUI-тулките писать десктом-приложение. С Python, помимо обёрток над GUI-тулкитом Qt5 (PyQt5, PySide 2), можно использовать обёртку для GUI-тулкита Gtk3 -- см. документацию тут Python GTK+ 3 и тут PyGObject -- код GTK и необходимых для Python библиотек лицензирован под LGPL, что позволяет использовать их в коммерческих продуктах.

    ДОПОЛНЕНО исходя из комментария автора вопроса

    Но меня интерисовала скорее производительность.


    Старайтесь формулировать вопрос так, чтобы он отражал то, что Вас интересует.

    В июне был открыт и в июле уже закрыт багрепорт по производительности одного из классов PySide2 в сравнении с тем же классом в PyQt5:
    https://bugreports.qt.io/browse/PYSIDE-727

    Если говорить о производительности в целом, то вопрос не имеет особого смысла.

    Производительность обеих обёрток упирается в производительность компонентов Qt5.

    Сравнивать производительность обеих обёрток надо по одинаковым кейсам.

    Большая разница в производительности PySide2 и PyQt5 на одном и том же кейсе будет причиной для багрепорта и исправления в PySide2 или в PyQt5, соответственно.

    Вы можете перестраховаться и 6-12 месяцев не трогать PySide2 со дня первого стабильного релиза (16.07.2018). Вдруг ещё остались недоработки, так пусть другие разработчики и компании используют PySide2 в продакшене на свой страх и риск сейчас, попишут разработчикам PySide2 багрепорты, а Вы получите от сообщества более стабильный и проверенный, не на Вас и не на ваших пользователях, продукт.

    Так как один проект официальный, а второй нет.


    Не совсем понятно, что такое официальный проект.

    На сайте Qt есть раздел Qt для Python, сейчас там написано про PySide2:
    doc.qt.io/qtforpython/index.html

    Это при том, что PyQt5 вышла давно, а PySide2 после многих лет разработки стабилизировали недавно.

    Возможно, лицензионная политика PySide2 больше устраивает разработчиков Qt5 и поэтому они решили продвигать PySide2.

    В таком случае, PySide2 можно считать "официальным" проектом, а PyQt5 стало быть "кустарщиной".
    Ответ написан
    4 комментария
  • Что нужно сделать эникею с опытом чтобы за 4 месяца стать безопасником или админом?

    Zoominger
    @Zoominger
    System Integrator
    Знаю Linux на уровне RHCSA+ (готовился к курсам RHCSA+RHCE, но не сдавал).

    Не знаете.

    Читаю давно каналы про новости в ИБ, чутка кусал в метасплоите виртуалки,

    Это не ИБ, это даже близко не ИБ. Это как "я посмотрел на скальпель, теперь я хирург".

    Через 4 месяца нужно найти работу безопасником (не верится)

    Правильно не верится. Безопасника без образования не возьмёт никто.

    Подскажите, реалистично ли за 4 месяца стать junior-безопасником в какой-то сфере с моими данными?

    Нет.

    или сетевым/системным админом.

    Это возможно.

    И имеет ли место быть мнение, что в регионах почти не найти нормальной работы и надо сразу пытаться ехать в Москву/Питер?

    Ну да, в принципе.

    TL;DR Недоинженер без вышки не хочет ни в техподд, ни в шарагу, ни в петлю. Помогите, что делать?

    В первую очередь - забыть этот идиотский сленг уровня подростков с Лурочки.
    Во вторую - развиваться в сторону сисадминства, забыв влажные мечты о безопасности, куда без в/о никак, безопасник - это не только "я поставел Кали и типерь я хаккир". Если опыта эникея хотя бы полтора-два года, то есть шансы найти работу сисадмином в маленькой конторе или продвинутого эникея в большой.
    А там уже - заочка на ИБ, если прямо хочется.
    Ответ написан
    Комментировать
  • Ограничения Яндекс почты для домена

    @SirBataneg
    веб-разработчик
    Ограничения системы безопасности на отправку писем ссылка
    Ответ написан
    3 комментария
  • ФИАС SQL, от куда взять?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Не знаю кто такие эти ваши basicdata.ru, есть официальный сайт:
    fias.nalog.ru/Public/DownloadPage.aspx
    1. Скачайте полную версию в dbf.
    2. Любым конвертером например https://github.com/xtranophilist/dbf2sql сконвертируйте в sql.
    3. ????
    4. PROFIT
    Ответ написан
    Комментировать
  • Есть смысл делать сайт каталог на vue?

    @kttotto
    пофиг на чем писать
    Я думаю Вы сами поймете, когда стоит перейти на реактивные фреймворки. Когда Ваш проект вырастет в размерах и поддержка jq кода станет дорогой, контролировать все растущую простыню кода станет сложно, потому что всунуть новую фичу проблематично и все будет на каких то подпорках и невидимых дублей кода.

    Вот тогда Вы зададитесь вопросом, а какие есть практики и технологии для ускорения разработки и упрощения внедрения новых фич? И вдруг окажется, что все эти vue, react и angular не просто так существуют и не от хорошей жизни появились. И каждый из них по своему пытается решать эти проблемы.

    Мы как раз с таким и столкнулись и сейчас проект потихоньку переводим на vue. Я не могу сказать, что он идеален. Действительно сложные вещи он делает простыми, например, где нужна реактивность, где на jq пришлось бы писать простыни кода, потеряться и потратить кучу времени на дебаг. Но простые вещи, где на jq можно обойтись тремя строками кода, он делает каким то лабиринтом из пропертей, которые надо передавать из компонента в компонент и еще прокидывать emit.

    В общем мое мнение, если Вам не нужна реактивность, пользуйтесь jq. Даже если нужно переиспользование компонентов, это можно почти адекватно сделать виджетами на jq. Но если проект будет расти и он собирается жить долго, то лучше сразу делать модульно, компонентами и с использованием какого то фронт фреймворка.
    Ответ написан
    Комментировать
  • Какие best practices по защите API?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Обычные практики описаны тут https://www.owasp.org/index.php/REST_Security_Chea...

    Подлинность запроса проверить возможно лишь при передаче данных через сервер.
    В противном случае можно полагаться на стандартные механизмы защиты от кросс-сайт скриптинга или банальные проверки referrer. Однако такие мелочи подделываются на раз.
    Ответ написан
    1 комментарий
  • Какие best practices по защите API?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Есть 3 вида API:
    1. Публичные - доступные публично с известными параметрами при запросе.
    2. Приватные (авторизованное обращение) - доступные публично с известными параметрами при запросе, но с ключом(токеном по паролю) или сертификатом.
    3. Закрытые - проприетарные клиенты со своим закрытым протоколом обмена с серверным API.

    JS в браузере - это только 1.
    Если не 2 и не 3 - значит остаётся 1.

    Если МЕГА-тупо (для п.1): можно проверить длительность сессии в момент POST-запроса на сервер и, если длительность меньше времени самого быстрого заполнения формы человеком в ручном режиме, считать данные недостоверными.
    Ответ написан
    6 комментариев
  • Что можно считать глубокими знаниями в js?

    fakey0u
    @fakey0u
    (javascript) => ['Node.js', 'React']
    Я бы конечно определился, что такое более глубокое понимание. Для себя я бы обозначил глубокое понимание, как умение решать "бизнес-задачи" на языке JavaScript, наиболее эффективным образом.

    Глубокое понимание, уже перестает относиться только к JavaScript, а начинает очень тесно взаимодействовать с общими паттернами которые есть в программировании.

    Знать и уметь применять паттерны проектирования:

    - Singleton
    - publish/subscribe
    - factory
    - proxy
    - facade
    - strategy

    Понимать структуры данных и понимать для чего эти структуры предназначены, сложности алгорит:

    - Список, связанный список
    - Деревья, бинарные деревья
    - Очередь/Стек
    - Графы

    Уметь писать в ООП парадигме и в функциональном стиле, просто чистый код:

    - SOLID
    - fp (pipe, compose, curry, functor, monads, etc)
    - SOA, понимание Service-oriented architecture

    Понимание работы компилятора и интерпретатора, MaxKorz хорошо уточнил.
    Ответ написан
    Комментировать