Задать вопрос
  • Как сверстать блоки с помощью flex?

    Kurokq
    @Kurokq
    Наполни смыслом каждое мгновенье
    Ответ написан
    Комментировать
  • Как сгенерировать корректный номер налоговой записи налогоплательщика (ИНН)?

    atomheart
    @atomheart
    Пишу на Python за карму и за деньги
    Внесу свою лепту на Python + функция проверки на валидность ИНН:

    def inn_ctrl_summ(nums, type):
        """
        Подсчет контрольной суммы
        """
        inn_ctrl_type = {
            'n2_12': [7, 2, 4, 10, 3, 5, 9, 4, 6, 8],
            'n1_12': [3, 7, 2, 4, 10, 3, 5, 9, 4, 6, 8],
            'n1_10': [2, 4, 10, 3, 5, 9, 4, 6, 8],
        }
        n = 0
        l = inn_ctrl_type[type]
        for i in range(0, len(l)):
            n += nums[i] * l[i]
        return n % 11 % 10
    
    
    def inn_gen(l=None):
        """
        Генерация ИНН (10 или 12 значный)
        На входе указывается длина номера - 10 или 12.
        Если ничего не указано, будет выбрана случайная длина.
        """
        if not l:
            l = list((10, 12))[rnd(0, 1)]
        if l not in (10, 12):
            return None
        nums = [
            rnd(1, 9) if x == 0
            else rnd(0, 9)
            for x in range(0, 9 if l == 10 else 10)
        ]
        if l == 12:
            n2 = inn_ctrl_summ(nums, 'n2_12')
            nums.append(n2)
            n1 = inn_ctrl_summ(nums, 'n1_12')
            nums.append(n1)
        elif l == 10:
            n1 = inn_ctrl_summ(nums, 'n1_10')
            nums.append(n1)
        return ''.join([str(x) for x in nums])
    
    
    def inn_check(inn):
        """
        Проверка ИНН на корректность
        В соответствии с алгоритмом, описанным по ссылке:
            https://ru.wikipedia.org/wiki/Контрольное_число
        """
        sinn = str(inn)
        nums = [int(x) for x in sinn]
        if len(sinn) == 10:
            n1 = inn_ctrl_summ(nums, 'n1_10')
            return n1 == nums[-1]
        elif len(sinn) == 12:
            n2 = inn_ctrl_summ(nums, 'n2_12')
            n1 = inn_ctrl_summ(nums, 'n1_12')
            return n2 == nums[-2] and n1 == nums[-1]
        else:
            return False
    Ответ написан
    Комментировать
  • Как вы находите идеи домашних проектов?

    @Levhav
    Возьмусь за разработку проектов любой сложности.
    Писать код ради ссылки на гитхаб идея не перспективная. Вы напишите, забросите через месяц другой а через 5 лет этот код будет уже стыдно показать.

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

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

    Или если тематика позволит то ещё проще сделать опенсорс под AGPL и продавать его же не под AGPL а под другой лицензией. На пример для встраиваемых библиотек это очень актуально так как немногие захотят использовать библиотеку под AGPL в коммерческом проекте но зато смогут её пощупать и будут готовы приобрести лицензию совместимую с проперитарным софтом.
    Ответ написан
    Комментировать
  • Как избежать слежки от Яндекса?

    Sanes
    @Sanes
    Ответ написан
    Комментировать
  • Как избежать слежки от Яндекса?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Добавлю ещё Firefox Multi-Account Containers, в котором можно делать профили с изолированными куками.
    Ответ написан
    3 комментария
  • ФИАС как отфильтровать неактуальные записи?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Жемчу́жникова — деревня Меньшеколодезского сельского поселения Долгоруковского района Липецкой области.
    Жемчу́жникова — деревня Большебоевского сельского поселения Долгоруковского района Липецкой области.
    Ответ написан
    5 комментариев
  • Как принимать bitcoin платежи на сайте?

    @rPman
    итак, 2 главных правила:
    1. приватные ключи адресов, выдаваемых пользователям НЕ ДОЛЖНЫ храниться на веб-сервере, мало того, так как вы не выдаете монеты, храните их лично на своем (владельца сервиса) аппаратном кошельке
    2. bitcoind с ключом -prune 512 после прогрузки блокчейна будет занимать на диске примерно 6 гигабайт и через api будет полноценно работать с wallet.dat и адресами в нем в режиме просмотра и проверки прихода депозитов, запускать так же на сервере рядом с веб, на текущий момент этот демон может работать даже на малинке (файловую систему лучше использовать по сети на быстром файловом сервере, ибо у малинки только ОЧЕНЬ медленный usb), правда первичную загрузку лучше проводить на быстрой машине.

    Вам достаточно генерировать на своей локальной машине и импортировать на веб сервер большими пакетами адреса для приема платежей (по уму это не так обязательно делать постоянно, но настоятельно рекомендуется один платеж - новый адрес) и все, больше ваш кошелек не потребуется. Чтобы защититься от ddos опустошения адресов приема, подсовывайте клиентам старые адреса без входящих переводов.

    Существуют иные библиотеки, занимающие меньше ресурсов (подключаются напрямую к сети и не проводят никаких проверок кроме наличия подтверждения от майнеров, этого более чем достаточно), но формально они 'не официальные' (хотя это философский вопрос что есть официальное в децентрализованной криптовалюте, но если что то реализует, ломающее совместимость, то в первую очередь в bitcoind).

    Это самый правильный и простой способ организации приема платежей.

    p.s. ждите релиза lightning network, скоро это станет стандартом де факто для приема платежей

    p.p.s. Если у вас есть задача переводов от вас, то реализуйте ее на отдельном сервере, коммуникация между веб-сервером и этим платежным сервером должна проводиться через специальный модуль безопасности (и разработанный для этого api), перепроверяющий все что только можно, в идеале разработанный разработчиками, отличными от тех кто делал веб-сервер.
    Ответ написан
    3 комментария
  • В чем основная разница между Swarm и Bittorent протоколами?

    @pfg21
    ex-турист
    да, одинаковое в торрент и swarm методы файлохранения и предоставления содержимого.
    самое главное отличие в мотивации.
    ты заинтересован в содержимом торрент раздачи (скачал фильмец посмотреть и пока он у тебя лежит на диске ты его раздаешь).
    а за хранение содержимого swarm тебе будут капать эфиры.
    Ответ написан
    Комментировать
  • Какие книги по хакингу python 3 посоветуете?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Комментировать
  • Какие игровые движки существуют для Python?

    @WorldEn
    На данный момент для Python есть следующие движки на выбор:

    2D:
    - Cocos 2D (сам лично им не пользовался и ничего сказать не могу, но знаю, что русскоязычное сообщество использует этот движок для с++, вместо python)

    - Kivy (это потомок Pygame, о котором напишу ниже. В основном он предназначен для создания приложений под андроид, но 2D игры тоже на нём делают)

    - Собственно PyGame (Это библиотека Python для создания 2D игр. Очень проста в освоении и есть много уроков и книг на английском и русском. Можно создать практически любую 2D игру. Русское сообщество тоже есть. Хорошая книга на русском здесь)

    - Так же есть 2D + 3D движок с внутренним языком программирования, который очень похож на Python. Т.е если знаешь Python, то этот ЯП освоишь максимум за неделю или даже меньше. Godot Engine

    3D:
    - Из 3D движков единственные это Blender Game Engine. Движок прост в освоении и, в принципе, даже не надо знать языка программирования для создания хорошей игры. Однако если знаешь Python, то это большой плюс, так как скрипты для этого движка пишутся именно на этом языке. Хорошая книжка по движку здесь, а здесь перевод. Примеры игр: раз, два.

    - И , конечно же, Panda 3D. Это не конструктор игр, как Blender Game Engine, где ты создаешь игру, не написав строчки кода. Это конкретный игровой движок, где ты с нуля пишешь код на Python используя API этого движка и создаешь 3D игру. Я сейчас сам его осваиваю и у движка есть живое русскоязычное сообщество, где могут подсказать если что. Так же по движку много видео уроков и книг на английском. Вот одна из этих книг- она на английском, но написано всё понятно, что даже я, не зная инглиш, понимаю))))) Примеры игр: раз, два, три.
    Ответ написан
    9 комментариев
  • Как сортировать по icontains?

    @deliro
    У постгреса есть поиск по триграммам, у триграмм есть similarity (по которой можно сортировать и фильтровать). В джанге (кажется, начиная с 1.10) есть привязки для этого всего — https://docs.djangoproject.com/en/2.0/ref/contrib/...

    Нужно в БД установить pg_trgm; (которое тоже есть в джанге, но для этого юзер БД джанги должен быть суперюзером)
    Можно сделать GiN индекс по триграмме, что ускорит выполнение __icontains.

    Пример поиска можно посмотреть здесь: https://ukar.su/
    Делал ребятам поиск как раз на триграммах. Но там он чуть умнее — умеет понимать ошибочную раскладку. Можешь поискать, например, "Thermaflex". Вводишь Thermaflix, thermoflex, еукьщадулы, термафлекс, термосфрекс, nthvjaktrc, флекстермо — всё равно находит
    Ответ написан
    7 комментариев
  • Как преодолеть кризис начинающего специалиста?

    @deliro
    Как преодолеть такой кризис?

    1. Уволиться, пойти поработать кассиром/грузчиком/официантом/таксистом (но надо иметь свой бизнес);
    2. Понять, что даже писать CRUD не так утомительно и скучно;
    3. Радоваться тому, что есть.

    Как на самом деле работают программисты?

    90% времени думают, 10% времени пишут.

    А ещё, говорят, ИТ не сводится к одному ДС. Можно попробовать что-то другое.
    Ответ написан
    Комментировать
  • Фрилансеры, а вы применяете онлайн кассы?

    @boss_lexa
    Варианты платить меньше за кассы есть
    UPD еще ОФД 999 в год ,1999 = 3 года https://e-ofd.ru/

    UPD2 еще для сайтов есть вариант купить ФН и кассу и размещать их в датацентре за 800 руб (оплата ОФД включена)
    https://umka365.ru/
    https://online.kit-invest.ru/
    Узнал насчет ФН на 36 месяцев - сказали тоже могут поставить, но подороже, также можно прислать свой ФН
    Ответ написан
    6 комментариев
  • В какой ИТ-сфере реально продолжить карьеру после 55 лет?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Где нет конкуренции, там не будет ни денег, ни перспектив.
    Ответ написан
    51 комментарий
  • Какие существуют ускорители для Python3?

    @deliro
    Может, моё мнение предвзято, но я очень скептично отношусь к PyPy, IronPython, Jython и подобным проектам. Поддерживаются старые версии языка, слишком непопулярны, непонятная совместимость с библиотеками и прочее отталкивает.
    Тебе питон либо нужен, либо нет. Наверное, в 99% случаях если тебе нужна скорость от питона и это не работа с numpy/skilearn — ты выбрал не тот язык. А в остальных 1% случаях ты можешь либо поменять язык, либо вынести ЦП-затратную логику в Си-экстеншн. А его писать либо на Си, либо на Cython.
    Собственно, если ты уверен, что язык ты выбрал тот — попробуй Cython.
    Ответ написан
    Комментировать
  • Свои проекты vs Основная работа и как между ними не разорваться?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    блин чувак, тебе прийдется самому решить, что для тебя в жизне важнее -> мы за тебя не решим и не подскажем. У тебя есть возможность следовать за своими мечтами -> ну значит следуй, даже если они пустые и бесперспективные. Займись реализаций того что ты задумал, ты должен или добиться там успеха, или переболеть тему со своими проекатами, и делать что дядя сказал (когда переболеешь будешь по другому относится к работе).
    Ответ написан
    Комментировать
  • Как постепенно перекочевать из Web в Machine Learning максимально безболезненно?

    @asd111
    Из языков строго python. Он похож чем то на Golang и на javascript так что сложностей в использовании не возникнет. С++ и R сразу нет. Потому что на С++ пишут в основном только сами библиотеки для ML либо что то очень быстрое наподобие анализа видеопотока в автопилотах и даже тогда прототип пишут на python, а R практически не развивается по сравнению с python и имеет более узкую сферу применения чем python.
    В плане обучения можно сделать так:
    1. Прочесть хорошую книгу по теме, потому что нужно знать термины и основные алгоритмы. Ну или хотя бы посмотреть курсы Andrew Ng Machine Learning. Для применения чужих библиотек на простых задачах этого в принципе достаточно.
    2. Глянуть scipy, numpy и jupyter notebook. У scikit есть scikit learn, в котором реализованы некоторые популярные алгоритмы. Например SVM, decision trees и т.д. и есть доки под это дело для начинающих scikit-learn.org/stable
    3. Зарегистрироваться на kaggle.com и найти задачу про титаник. Вот она https://www.kaggle.com/c/titanic Делаете решение как умеете. Можно взять простой gradient boost. Yandex как раз недавно выложил либу под это дело называется cat boost https://tech.yandex.ru/catboost/ Банальное использование этой библиотеки может дать около 80% точности. Вот туториал https://github.com/catboost/catboost/blob/master/c...
    4. Прочитать про keras. Взять готовую модель для смешивания стилей изображений и сделать сайт наподобие ostagram.ru для смешивания изображений. https://github.com/fchollet/keras/blob/master/exam...

    5. Дальше всё зависит от вас, поскольку заработать в области ML непросто :) Когда прочтете хотя бы одну книгу по ML, регистрируйтесь здесь ods.ai - это сообщество русскоговорящих специалистов в данной области.
    Ответ написан
    Комментировать
  • Книга о том как правильно должен работать программист?

    voronkovich
    @voronkovich
    Роберт Мартин "Идеальный программист".
    Ответ написан
    Комментировать
  • Что такое bulk-запрос?

    @Mercury13
    Программист на «си с крестами» и не только
    Это понятие никак не формализовано. Но в целом это…
    Запрос, позволяющий массово выполнить несколько сходных действий. Например, получить информацию сразу по нескольким контрагентам, со всем, что им подчинено. Залить в БД кучу информации.
    Ответ написан
    Комментировать
  • Open source проекты или как получить опыт опыт разработки на python?

    sim3x
    @sim3x
    Нигде

    Стажер не нужен опенсорсу
    Опенсорсу нужны коммиты с тестами и фиксы багов

    Пилите свои проекты
    Ответ написан
    1 комментарий