• Может ли NATS сохранять сообщения в памяти, если в данный момент ни один потребитель не включен(producer-consumers патерн)?

    @ArtiomK Автор вопроса
    На данный момент официальный коннектор Python не поддерживает NATS/Jetstream issue-209
    Ответ написан
    Комментировать
  • Как с помощью pymysql работать в многопотоке?

    @ArtiomK
    Соединения с базой данных можно создавать только в потоке, один поток - одно активное соединение . В Python GIL не позволит сделать вычисления быстрее за счёт многопоточности, если нужны именно вычисления используйте multiprocessing. Если не нужны вычисления рассмотрите asyncio как альтернативу multithreading.
    Ответ написан
  • Можно ли пропускать непонятные темы по книге по python Марка Лутца?

    @ArtiomK
    Из описания на Amazon:

    Complete with quizzes, exercises, and helpful illustrations, this easy-to-follow, self-paced tutorial gets you started with both Python 2.7 and 3.3— the latest releases in the 3.X and 2.X lines—plus all other releases in common use today

    Python 2.7 - не поддерживается с 1 января 2020
    Новейшая версия Python 3 - 3.9.

    Python 3.3 — 29 сентября 2012 года.

    Я бы не рекомендовал эту книгу как лет 5 уже брать для изучения.
    Ответ написан
  • Как оптимизировать и ускаорить данный запрос к базе данных MySQL Zabbix?

    @ArtiomK Автор вопроса
    Для того чтобы получить список текущих проблем и недавно завершеных проблем существует отдельная таблица problem
    Ответ написан
    Комментировать
  • Какие советы вы можете дать начинающему программисту?

    @ArtiomK
    Когда читаю англоязычные форумы, появляется сильная боль чуть ниже спины и желание пойти получить высшее образование еще и по программированию, но когда читаю Тостер это желание сразу пропадает...

    Начну с того, чем можно увеличить шансы на получение работы:

    Первое. Основное - учите не ЯП, а учитесь программировать, у меня например не было проблем, проработав год на Python, начать решать задачи на Javascript. А маленькие фишки, вроде в Python if [] - False, а в JS if [] - True, вы все равно забудете если на языке не будете долго писать. Главное, что кол-во элементов 0 в обоих случаях ))

    Второе. Проработайте самую простую книгу по алгоритмам, там где их спрашивают, вы будете выглядеть лучше 99% процентов пришедших, даже с 1-2 годами опыта. Сложные структуру вроде графов и деревьев можно для первой работы можно и не трогать, все равно и половину в РФ мало, кто осилил.

    Например такая книга, она на Python, но смысл от этого не меняется, посмотрите на этом сайте, вроде есть и на С++ похожая. Сложные книги от MIT пока смысла трогать нет.

    https://runestone.academy/runestone/books/publishe...

    Третье Работайте над своими профилями в Github и если сразу потянете в Stackoverflow. Пишите программы, пишите как их разворачивать, будьте готовы ответить на вопросы по коду на собеседование. Тоже превзойдете 95% кандидатов со сказкой "оно работает, но я забыл, как его запускать".

    Лирика:

    Ваше главное отличие от большинства кандидатов без опыта или с минимальным опытом 1-2 года - это то, что вы говорите, что ничего не умеете делать хорошо. Обычно такой кандидат говорит, что умеет ВСЕ и знает 5-6 ЯП, если задать вопрос, что вы писали на языке Х, он ответит "ничего не писал, я его ПРОСТО ВЫУЧИЛ". Я считаю, что никогда не нужно врать о своих навыках, но никогда не говорите, что все умеете делать плохо, лучше говорить, я сделал это, это, это, пусть наниматель сам решает плохой ли это опыт при данном соотношение цена-качество.

    Сидеть аникейщиком-грузчиком за хорошую запись в трудовой на мой взгляд идея так себе. Отсидите 1-2 года, покажете уровень "закончил 2-недельные курсы" и далее будете мычать, что не мне не дано программировать, а что просто в трудовой так написано, а на самом деле я два года Оффис устанавливал и компы перезагружал. Сам через такое проходил, был логистом, но администрировал сайт. Вариантов два: первый - лучший вариант, не увольняетесь и ищете работу, в открытую говоря, что программировать не дают, а я хочу! второй - уволиться и, поскольку у вас мало опыта, просто выкинуть трудовую на помойку, лучше пустая трудовая, чем с навыками не соответствующими записи.

    По поводу работать с первого курса, я считаю, что образование, когда приходишь сдаешь денежку раз в полгода - не образование. Образование у нас конечно мягко говоря не очень, но потом на собеседованиях будете "сбивать короны" псевдо ML инженерам вопросом, что такое детерминант матрицы и зачем он нужен.
    Ответ написан
    Комментировать
  • Redis в Docker container (открытый для доступа из Интернета) неожиданно начинает писать в var/spool/cron как решить эту проблему?

    @ArtiomK Автор вопроса
    Как правильно ответил человек, являющийся автором коннектера на C++ для Redis, у Redis есть еще один пользователь, существование которого никак не отображается в файле конфигурации - default пользователь.
    У этого пользователя по умолчанию нет вообще никакого пароля, под этим пользователем и заходили при взломе.

    Существование этого пользователя и объясняет почему я получал ошибку при попытке сделать защищенный мод включенным.

    В итоге я выключил пользователя default, альтернативный вариант сделать ему пароль и включил защищенный мод.

    Итого:

    Dockerfile:

    FROM redis:6.0-alpine
    
    WORKDIR /usr/src/app
    
    RUN apk add --no-cache tzdata
    
    ENV TZ=Europe/Moscow
    
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    
    COPY redis.conf /usr/local/etc/redis/redis.conf
    
    CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]


    В файле конфигурации Redis:

    protected-mode yes
    
    user default off
    
    user someusername allcommands allkeys on >somelongpassword # можно также отключить часть команд
    Ответ написан
    Комментировать
  • Можно ли сейчас без веба?

    @ArtiomK
    Написание backend кода по факту ничем не отличается от написания кода для десктопного приложения. Интерес задачи определяется заложенной логикой. Веб это не только сайты на WordPress под копирку, но и сложнейшие системы банков. Веб приложения имеют ряд преимуществ над десктопом (и конечно недостатков), поэтому они популярны и распространены. И собственно ответ на вопрос, да можно писать не веб приложения и получать за это деньги.
    Ответ написан
    Комментировать
  • Какие курсы лучше пройти по Java?

    @ArtiomK
    У меня курсы от ФизтехКолледжа от МФТИ отбили желание поступать на ИТ, было ощущение, что мой уровень развития не позволяет программировать, при этом по итогам открытых олимпиад по физике мог не сдавать экзамен по этому предмету в ряд институтов, что вселяет в меню лёгкую надежду, что я не самый глупый в этой стране. Теперь понимаю, что если преподаватель курсов не может объяснить, что такое void в начале объявления процедуры в Си, говоря что ну так надо писать - это видимо проблема с преподавателем. К сожалению на тот момент быстрых интернетов у меня не было, страничка гугла грузилась пару минут, знакомых программистов у меня не было, а информатика в школе была из серии перепечатайте код из книги... В итоге в 30 лет все-таки сменил сферу и вот ровно год работаю программистом, пишу на Python и наконец-то доволен собой.
    Ответ написан
    Комментировать
  • Dataframe или БД для торгового приложения?

    @ArtiomK
    Согласно описанию вам в любом случае нужна база данных, в одной таблице будет список названий оборудования, во второй таблице список опций + цена, связана с первой таблицей по foreign key (это будет id оборудования, либо в качестве ключа можно использовать его имя). Это нужно, чтобы откуда-то взять данные для вашего пользовательского интерфейса. Далее расчет стоимости можно делать без участия сервера с помощью JavaScript, если не хотите, то можно и на стороне сервера с помощью отправки FORM методом POST.

    Фреймворк можете выбрать Flask, есть мнение что он легче для новичков, также есть противоположное мнение, что Flask сложнее, но на нем можно сделать "more customizable" приложение.
    Ответ написан
    Комментировать
  • Как соединить приложение на python и базу данных?

    @ArtiomK
    Если пишите для тренировки необязательно делать удаленную базу данных, логин-пароли можно хранить в json файлах - что удобно для последующего извлечения, или просто в текстовых файлах - что менее неудобно, если хотите SQL, можно использовать SQLITE3 - ничего скачивать не надо, она часть стандартной библиотеки, база данных хранится отдельным файлом на компьютере. Если есть желание можно еще и закодировать данные перед записью в файл, базу SQLITE3. Я на работе использую базу MYSQL - живет на сервере, но никто не мешает поставить mysql локально на свою рабочую машину. В общем выбор способа хранения данных зависит от размера проекта и вашего желания. Вот как я написал модуль запросов в дб SQLITE3 dв своем pet проекте:

    https://github.com/ArtyomKozyrev1989/ICMP_Ping_Mon...
    Ответ написан
    Комментировать
  • Какой минимум нужно знать и уметь чтобы взяли на работу Python разработчиком?

    @ArtiomK
    В зависимости от требований работодателя и зарплаты на которую претендуете эти требования могут отличаться, за 15к (в мск на эти деньги сложно найти уборщицу) могут взять с минимальными знаниями, но по факту там может оказаться, что программист - это человек, который ползает с кабелями под столами и устанавливает тетям винду.

    Зарплаты Джуна в мск разнятся от 15к - 90к до выплаты налогов.

    В большинстве случаев нужен человек оркестр с опытом работы от года, а лучше трех лет, который умеет и питон с дата саенсом, Джангой, Фласком, а еще html, css, джаваскриптом и т.д., другой вариант требований программировать на 5-6 языках помимо самого питона.

    Я искал работу Джуном 7 месяцев, при этом имея проекты под 1000 строк, которые использовал на своей работе в операторе связи. Нашел в другом операторе за 75к, по выходу на работу оказался единственным местным программистом, остальные все в Перми и со мной никак не пересекаются. Считаю, что зп для Москвы невысокая, если учитывать, что человеку, как Джуну, не дают старшего, который его тренирует, есть люди в техподдержках, которые получают 90 до налогов.

    Также учтите, что отсутствие высшего образования отпугнет от вас 90% работодателей. У меня физмат и разговорный английский - несколько лет использования на работе.
    Ответ написан
    6 комментариев
  • Как сделать так, чтобы брало елементов со списка в цикле?

    @ArtiomK
    Делаем лист mylist = list (x for x in range(1,26))

    Метод:
    def sum_of_three_shift(mylist):
        result=[]
        value=0
        k=0
        t=0
        while(t< len(mylist)-3):
            for i in range(t,len(mylist)):
                value+=mylist[i]
                k+=1
                if k==3:
                    result.append(value/3)
                    value=0
                    k=0
                    t=t+1
                    break
            
        return result

    запуск:
    sum_of_three_shift(mylist)
    результат
    [2.0,
    3.0,
    4.0,
    5.0,
    6.0,
    7.0,
    8.0,
    9.0,
    10.0,
    11.0,
    12.0,
    13.0,
    14.0,
    15.0,
    16.0,
    17.0,
    18.0,
    19.0,
    20.0,
    21.0,
    22.0,
    23.0]

    Проверяй
    Ответ написан
    3 комментария
  • Проблема с добавлением элементов в словарь с помощью цикла for. Что можно сделать?

    @ArtiomK
    как вариант можно потом преобразовать из листа в строку и переприсвоить значение ключу словаря. Чем являются my_hand.cards и comp_hand.cards, это случайно не строки? Плюс еще декоратор, что делает его код?
    Ответ написан