• Как не ждать окончания вызова функции в Python?

    @bromzh
    Drugs-driven development
    https://docs.python.org/3/library/threading.html
    Только учти, что у питона есть глобальная блокировка, и такое распараллеливание будет весьма условным.
    А вообще, всё зависит от задачи. Если ты пишешь что-то сетевое, то лучше взять tornado/asyncio или celery
    Ответ написан
    Комментировать
  • Как передовать аргументы классу родителю?

    @deliro
    Если третья версия, короче будет так:
    super().__init__(parent, **kwargs)
    Но вообще, второй, конечно.
    Ответ написан
    Комментировать
  • Как отсортировать xml список по дате на python?

    valerium
    @valerium
    Изобретая велосипед
    Во-первых, у Вас получился одна лишняя вложенность в цикле. Достаточно написать вот так:
    for child in root:
        sortchildrenby(child.iter('СвПокупка'), 'ДатаСчФ')

    Функция sorted сама проитерирует последовательность, которую получит на входе.

    Во-вторых, просто присваивать в объект ElementTree нельзя, нужно сначала удалить из документа все элементы СвПокупка, потом добавить их заново, в отсортированном виде. Проще всего будет, если переписать Вашу функцию сортировки вот таким макаром:

    def sortchildrenby(parent, tag, attr):
        '''функция сортировки элементов XML документа по атрибуту
        :param parent: родительский элемент сортируемых элементов
        :param tag: тэг элементов, которые нужно отсортировать
        :param attr: атрибут, по значению которого будет сортировка
        '''
        sorted_list = sorted(parent.iter(tag), key=lambda child: child.get(attr))
    
        # Удалеям неотсортированные элементы
        for i in parent.findall(tag):
            parent.remove(i)
    
        # Добавляем элементы обратно в том порядке, который дала сортировка
        for i in sorted_list:
            parent.append(i)


    Соответственно, вызов этой функции из кода будет выглядеть вот так:
    for child in root:
        sortchildrenby(child, 'СвПокупка', 'ДатаСчФ')
    Ответ написан
    Комментировать
  • Где найти описание метода поиска экстремума функции методом квадратичной интерполяции-экстраполяции?

    @idap
    интересуюсь python, latex, linux, ML, AI
    argmin f(x) = argmax (-f(x)), то есть там где у функции f(x) минимум, там у функции -f(x) будет максимум. Так что умножьте вашу функцию на -1, и ищите там минимум тем же способом – в результате найдёте её максимум.
    Ответ написан
    Комментировать
  • Язык программирования после Python?

    sim3x
    @sim3x
    приходит понимание того, что Python+R слабы для реального production применения, в силу своей медленности
    пока не пришло понимание, что все ЯП адски медленные - рано переходить на другие ЯП

    Большая часть датасаенся под питон просто обертка над сишными либами - проблема в том, как писать код, так чтоб не замедлять С
    Ответ написан
    Комментировать
  • Какие преимущества фриланс имеет над работой в офисе?

    @serega_kaktus
    Программист-самоучка, фрилансер
    Демпинг во фрилансе создают новички или разработчики из бедных регионов, где 5$ в час хорошая зп. Если фрилансер с опытом/знаниями, он не занизит ставку ради проекта.
    Плюс фриланса в том, что каждый проект - это новая технология/предметная область/еще что-то. А на постоянной работе у вас одна платформа, которая, возможно, давно устарела, одни и те же технологии. Мне, например, надоедает работа над одним проектом больше нескольких месяцев. Хочется чего-то нового, а заказчик просит поменять тайтлы, добавить тени к блокам или очередную форму через ajax
    Ответ написан
    3 комментария
  • Переменная в пути. Как?

    @idap
    интересуюсь python, latex, linux, ML, AI
    Ещё кросс-платформенный вариант

    import shutil
    import os
    
    path_1 = os.path.join("/home/hardwellzero/files", var_1)
    path_2 = os.path.join("/home/hardwellzero", var_2, var_3)
    
    shutil.move(path1, path2)
    Ответ написан
    Комментировать
  • Как прeодолеть зону комфорта, стать фрилансером не обанкротившись?

    kumaxim
    @kumaxim
    Web-программист
    Для начал ответь сам себе на вопрос "А чем тебе неудобна текущая золотая клетка"? Можешь не писать здесь, но определись для себя.

    Далее нужно осознать, что фриланс - это подвид бизнеса. Есть книжка Р.Киосаки "Квадрант денежного потока". Там всех людей, работающих в экономике разделяют на 4 части:
    1. Р - наемные работники
    2. П - предприниматели
    3. Б - бизнес
    4. И - инвесторы

    Фриланс - это сегмент П. Ты работаешь один, возможно зарабатываешь больше чем работая по найму, но вот ты заболел, продуло тебя где-то, температура 38.5.... Сомневаюсь что ты из стали сделан и сможешь в таком состоянии писать код.
    Сегмент П очень хорошо охарактеризовал г-н Залогин из Локус Медиа. Он сказал примерно так: "Вы человек-велосипед - пока крутите педали - едите, как только перестали - упали"

    Переходя к твоему вопросу о выходе из зоны комфорта.
    Первое что рекомендую перед началом своего бизнеса - оплати все долги. Закрой ипотеку, погаси автокредит, все потребительские заемы и т.д. В случае если ты провалишься(первый блин, обычно, комом) по крайней мере ты со своей семьей не под мостом окажешься.
    Второе - содержание семьи. Никакие твои заработки не должны влиять на твою жену/ребенка. Твои родные, как минимум, должны иметь крышу над головой + еду на столе. Посчитай сколько ты платишь за комуналку + еду. Далее умножаешь эту сумму на 24 месяца. Это финансовая подушка твоей семьи.
    Третье - планирование. Бизнес без бизнес-плана - это не более чем хобби. С 16 лет стремился зарабатывать в сети. Продавал ссылки на sape.ru в 2008-2009, работал с трафиком в 2010-2012, продавал китайские безделушки с 2013-2014... Сейчас ушел в разработку одного SaaS-решения. Первые пару месяцев оптимизм из ушей хлещет, думаешь "Да все будет, да это фигня, преодалею...." Но вот начинаются черные полосы: ТИЦ сайта в планируемый апдейт не вырос до нужного значения, твой сайт на 9 месте в выдаче, вместо требуемой тебе 3-4 позиции, товар из Китая на таможне завис.... Да я могу до бесконечности перечислять проблемы, которые возникали у меня... А время - деньги: тебе нужно платить аренду, зарплату, рекламу, кредиты и т.д. Не платишь - начинается ругань, из Максима Александровича я сразу превращаюсь в мошенника, кидалу, сволочь... эх, во общем суть ты понял. Думай на 2 шага вперед, вот что я хочу сказать
    Четверное - не делай бизнес с полного нуля. Перт Осипов(проект Бизнес Молодость) в каком-то из видео говорил, что мы не ценим самое ценное что у нас есть, мы воспринимаем это как должное, когда для других людей это может быть сравни бриллианту среди кучи стекляшек. Вы не первый день работайте в ИТ по какой-то специализации, так ведите эту специализацию и дальше. Занимайтесь своим любимым делом.
    Пятое - не пытайтесь все делать сами. Когда я запустил свой самый первый интернет-магазин по Китайским безделушкам я все делал сам: рисовал дизайн, верстал его, настраивал рекламу, обзванивал клиентов, носил товар на почту.... В общем занимался вообще всем! Причем за всей этой рутиной я не видел, что мой сайт работает не эффективно, я упускаю из виду 20% горячих клиентов, 10% моих бандеролей исчезают в глубинах Почты России... Вы как первое лицо компании должны знать все процессы своего предприятия, иначе Вы не сможете им управлять, но Вам не нужно все процессы делать самому. Отдайте часть на аутсорс или делегируйте наемному сотруднику.
    Шестое - я на этом очень сильно обжегся около 3-х лет назад.... Ставьте своим сотрудникам четко достижимые KPI(ключевые показатели эффективности). Например, есть у меня форма заказ обратного звонка на сайте. Человек пишет туда своего Имя и номер телефона, после чего эти данные попадают в CRM. Для менеджеров, которые у меня обрабатывают вызовы клиентов один из KPI звучит так: перезвонить клиенту в течении 15 минут после поступления от него заявки, если она поступила в рабочее время. Причем все KPI Вы должны сформулировать максимально точно и подробно. Я сам с KPI работаю так: есть у человека базовый оклад и базовый набор KPI, которые ему необходимо выполнять. Если он их выполняет - получает оклад, выполняет лучше - получает оклад + премию. Причем оклад у меня сам небольшой, около 6 т.р., но нижняя з/п у меня примерно в 2,5 раза выше.

    Первые 4 пункта - это как мягко выйти, вторые два - как не свалиться.

    В целом о бизнесе в РФ могу сказать что его делать относительно легко. Достаточно просто делать что-то хорошо и по человечески относится к своим клиентам. Примерно за 1 год Вы нарабатываете определенную базу контактов(поставщики/партнеры/клиенты), которые Вас знают и доверяют Вам. А далее главное все это не растерять.

    Вам могут все Ваши родные/коллеги/друзья говорить "Да ты что, сейчас санкции, налоги, коррупция..." Поверьте, все это херня! Под прессом можно работать и зарабатывать, причем когда его снимут - Вы получите взрывной рост. А все эти отговорки про санкции, коррупцию, высокие налоги... Да просто у кого-то очко играет!
    Ответ написан
    14 комментариев
  • С чего начать обучение для фриланса?

    kumaxim
    @kumaxim
    Web-программист
    И так, с чего начать обучение:
    1.Самый низкий порог вхождения у языка PHP. Начинайте именно с него
    2.Изучите популярные CMS: WP, DLE, Joomla и т.д. Очень много заказов есть типа "Создать сайт", причем экзотики в 2 из 3 проектах не нужно. Здесь минус в том, что школоты тут полно и цену они сбивают весьма сильно...
    3.Далее категория заказов "А можно ли сделать вот так". Сводится все это к разработке/переработке модулей на все тех же CMS. Нужно учить PHP + API этих самых CMS. Возьмите один движок и копайте по нему в эту область, не рвитесь сразу за всеми. Порог вхождения тут тоже не велик, но здесь больше голодные студенты обитают
    4.Когда перерастете уровень дополнений/модулей, переходите к фреймворкам. Сейчас самый популярный Yii. Фреймворк позволяет Вам делать какие-то уникальные приложения, которые достаточно тяжело реализовать на готовых системах. Здесь ценник по существеннее, чем в первых двух, т.к. школота в силу своих умственных способностей сюда влезть не может.

    Теперь расскажу как вообще этому обучаться на своем примере. Я делаю так:
    1.Открываю тоненькую книжечку по языку(листов 100, не более), смотрю на основы
    2.Делаю примеры из этой книжке в IDE/блокноте. Это дает мне определенную базу
    3.Далее у меня есть список из примерно 20 задач(любую методичку по программированию откройте), которые я всегда делаю на новом языке. Это позволяет мне "привыкнуть" к новому коду и начать изучать стандартную библиотеку языка
    4.Затем я начинаю брать низкобюджетные заказы на фрилансе по этому языку
    5.После этого начинаю учить самый популярный фреймворк языка, опять же на низкобюджетных проектах.
    6.Сделать с 12-15 проектов я могу уже браться за что-то более менее серьезное с почасовой оплатой на фултайме.

    Вот это мой путь. По срокам - базу я себе нарабатываю за 1,5-2 месяца, на это время у Вас должна быть какая-то "подушка".

    P.S. надеюсь помог. ))
    Ответ написан
    7 комментариев
  • Запуск скрипта python в фоновом режиме?

    @SpinenkoIA
    Обычно делают так в консоли:
    ssh user@host_ip 'you command &'
    И все & уберет команду в фон, ssh возвращает управление
    Ответ написан
    Комментировать
  • Как организовать шаблонизатор на Python?

    leahch
    @leahch
    3D специалист. Dолго, Dорого, Dерьмово.
    Ага, похоже вам нужен свой DSL (Domain Specific Language). Это можно сделать например на pyparsing. Красивый пример и ссылки в ответе на этот вопрос - stackoverflow.com/questions/14433785/dsl-in-python...
    Ну и гугл в помощь по python+dsl
    Ответ написан
    Комментировать
  • Можно ли Junior Python Developer'ом устроиться на постоянную удаленную работу с почасовой ставкой на Elance\Odesk?

    dmnBrest
    @dmnBrest
    Salesforce for money. Python, Go, Ruby for soul.
    Конечно реально. Индусы же, которые вообще не умеют программировать, как-то работают.
    А вообще что вы можете предложить заказчику на odeck? Вы решите его проблему. Junoir устраиваются на работу чтобы учиться. На odesk никто вас учить не будет. Поэтому для Junior единственный путь - за еду искать себе место возле опытного программиста, который всему научит. А то что вы "только приступил к первым урокам Python" это даже Junior нельзя назвать. Junior это человек который знает основные аспекты разработки и может реализовать большинство решений - пусть это будет и говнокод, но главное чтобы в голове был подход к решению. До Junior еще пахать и пахать!
    Ответ написан
    6 комментариев
  • Что можно использовать для научных вычислений и визуализации?

    Python + SymPy + NumPy + Matplotlib
    Ответ написан
    Комментировать
  • Как правильно написать консольную утилиту на Python?

    dizballanze
    @dizballanze
    Software developer at Yandex
    В стандартной библиотеке есть модуль argparse, использовал его для небольшой утилиты - вполне удобно.
    Ответ написан
    Комментировать
  • Как в Python перебирать элементы словаря в определенном порядке?

    tsarevfs
    @tsarevfs
    C++ developer
    Возможно вам подойдет collections.OrderedDict, он сохраняет порядок в котором ему дают элементы.
    Либо вы можете найти реализацию красно-черного дерева (FastRBTree например), которое хранит элементы в отсортированном виде.
    Ответ написан
    Комментировать
  • Как правильно задать список возможных значений для атрибута объекта?

    crazyzubr
    @crazyzubr
    Python backend-developer
    class Task(object):
        
        @property
        def priority(self):
            return self._priority
    
        @priority.setter
        def priority(self, value):
            if value not in ('low', 'high', 'medium'):
                raise ValueError('Incorrect priority value')
            self._priority = value
    Ответ написан
    Комментировать