• Есть ли у кого опыт работы в Южной Корее?

    @CobaltTheTerrible
    Копипастю код на Python
    Kaa-python поработал в Самсунге пару лет. О впечатлениях он писал в ЖЖ: kaa-python.livejournal.com/tag/%D0%A1%D0%B0%D0%BC%...

    Ну и ради интереса ознакомьтесь с ЖЖ Шафира - shafir.livejournal.com У него там какая-то дикая история с тюрьмой и пр.
    Ответ написан
    Комментировать
  • Что не так с кодом?

    @CobaltTheTerrible
    Копипастю код на Python
    Ниже замечания, вопросы возникшие после того, как я пробежал за пять минут глазами выложенное по ссылке.

    Не про код:
    1. Не пользуетесь .gitignore. У вас в репозитарии есть README.md~
    2. В самом README.md стоит пользоваться разметкой markdown
    3. Что за коммит с мессаджем all?

    Про код:
    4. Как уже отмечали: большая простыня без разбиения на функции, которую зачем-то запихнули в функцию main.
    5. Код не следует PEP8 (поставьте себе какой-нибудь чекер и проверяйте код). В частности очень много длинных строк, которые читать очень тяжело, лучше бы код не в main засовывали, добавляя лишние 4 пробела на каждую строку, а обошлись вообще без функций.
    6. Комментариев про логику обработки файлов нет. Возможно, конечно, логика простая, но мне вникать, разбирая код, стало лениво.
    7. Код ниже может выкинуть эксепшен, если кто-то неправильно сконфигурирует скрипт. Почему не обрабатываете этот экспшен, хотя исключения paramiko ловите?
    list_with_path_to_file = DICT_WITH_SERVER[ip]
    Проверяйте что наконфигурировали в вашем скрипте. Гарантированно же при таком количестве настроек будут опечатки, забытые запятые и кавычки.
    8. Почему в одном случае вызов getcwd обёрнут в str, а вдругом нет? Это стоит пояснить комментарием, если str действительно нужен (в чём я сомневаюсь :))
    path_local = str(os.getcwd()) + '/logs/' + name_logfiles
    path_to_logs_parser = os.getcwd() + '/logs/' + name_parser_logfiles

    9. Раз уж импортировали модуль os, то почему бы не пользоваться os.posixpath.basename вместо
    name_logfiles = file_path.split('/')
    name_logfiles = str(name_logfiles[-1:])...

    10. Аналогичное замечание про os.posixpath.join
    11. Используйте string.format. Вместо
    print ('\nAll done! I will sleep next '+ str(TIME_FOR_SLEEP) +'  seconds' + '\n')

    print ('\nAll done! I will sleep next {} seconds\n'.format(TIME_FOR_SLEEP))

    12. Если так хочется if-ы запихнуть в одну-две строки, то пользуйтесь conditional expressions.
    if i - context < 0: j = 0
    else: j = i - context

    пребразуется в
    j = i - context if i - context >= 0 else j = 0
    # а то и вовсе пишите
    j = max(i-context, 0)

    13. Зачем вы сравниваете с False постоянно ваши переменные found_error и first_iter? Что мешает написать сразу if no(first_iter)? Зачем вы пишете if found_error == False: print '1' else: print '2' вместо более простого if found_error: print '2' else: print '1' ?
    14. Пользуйтесь контекстными менеджерами, list comprehensions. В куске кода ниже комментарий не нужен. Вы просто дублируете код.
    logfile = open(path_local, 'r')  # open file for read
    for line in logfile:
        logfile_list_old.append(line)
     logfile.close()

    Сравните с
    with open(path_local, 'r') as f:
        logfile_list_old.extend(f)


    Дальше уже стало лень писать. Если вкратце, то код очень плохой. Он отвратительно структурирован и никак не документирован. В довершение ко всему, он еще и не совсем pythonic.
    Ответ написан
    1 комментарий
  • Что бы вы посоветовали будущему фрилансеру?

    @CobaltTheTerrible
    Копипастю код на Python
    Настолько ли сильно нужны деньги?

    Если не очень, то не тратьте драгоценное время на фриланс. В таком возрасте лучше приложить усилия для получения фундаментальных знаний, потом это сделать будет тяжелее и просто дороже. Учёба сейчас вместо зарабатывания на фрилансе окупится сторицей уже через 3-4 года.
    Ответ написан
    1 комментарий
  • ООП. Почему выводится none?

    @CobaltTheTerrible
    Копипастю код на Python
    print(obj1.ChangePartHead(obj1.head, obj))

    Выводит на печать то, что вернул метод ChangePartHead объект obj1. Указанный метод не возрвщает ничего, потому и выводится None.
    Ответ написан
    Комментировать
  • Важна ли корочка при устройстве на работу?

    @CobaltTheTerrible
    Копипастю код на Python
    В России она обычно не нужна.

    Тем не менее есть ряд позиций куда для трудоустройства нужно формальное наличие высшего образования. Речь здесь идёт о работе на государство и в окологосударственных организациях (всевозможные госкорпорации): к работнику предъявляется ряд квалификационных требований, в том числе наличие высшего образования.
    Ответ написан
    4 комментария
  • Есть ли на Python3 OCR библиотеки (распознование текста)?

    @CobaltTheTerrible
    Копипастю код на Python
    Ищите другие врапперы для Tesseract.

    Например, находится свежий pytesseract с заявленной поддержкой Python 3
    Ответ написан
  • Где тусуются Javascript-разработчики(это не hh)?

    @CobaltTheTerrible
    Копипастю код на Python
    https://gitter.im/dev-ua/frontend-ua снова повторю ссылку, которую уже давал на тостере неделю назад
    Ответ написан
  • Freelancer.com это fl.ru, но глобальная?

    @CobaltTheTerrible
    Копипастю код на Python
    Если сравнивать их с одеском/апворком, то апворк лучше.

    В целом нельзя сказать, что они жулики и вымогатели. Если внимательно прочитать их ToS и FAQ, то становится ясно, что они просто рубят бабло: всевозможные fee, которые взымаются налево и направо, всевозможные ограничения для тех, кто не оплачивает подписку и так далее. Сам ресурс при всех спорных ситуация сильно склоняется в сторону заказчиков, что, впрочем, характерно, наверное, для всех фриланс-бирж.

    То, что свой fee они берут (вычитают) в самом начале - известная штука, упомянутая в FAQ и в куче постов на форумах, реддите, в блогах. Аналогично и про вычет денег у фрилансера если клиент делает chargeback - неприличный ход (биржа должна верифицировать заказчиков и предоставлять некоторую защиту), но это не скрывается.

    Почитайте отзывы недовольных тут - www.sitejabber.com/reviews/www.freelancer.com
    Ответ написан
    Комментировать
  • Парсер на Python, как реализовать?

    @CobaltTheTerrible
    Копипастю код на Python
    Можно посмотреть еще на Scrapy.

    По своему опыту сразу скажу, что имеет смысл сохранять в какой-нибудь key-value storage все загружаемые страницы. Очень помогает потом в отладке
    Ответ написан
    Комментировать
  • Мешает ли учет в ПНД трудоустройству в IT-сфере?

    @CobaltTheTerrible
    Копипастю код на Python
    В теории у нас даже факт обращения за помощью в медицинское учреждение составляет врачебную тайну и не может разглашаться. Потому если вы сами не скажете работодателю о своём диагнозе, то получить эту информацию ему будет несколько затруднительно (конечно, в некоторых случаях работники обязаны проходить медицинское обследование, чтобы установить возможность исполнения трудовой функции; например, от машинистов требуется хорошее зрение, реакция и пр, но об обследованиях для айтишников я не слышал.).

    Ну и следует понимать, что крупные конторы, преимущественно из финансового сектора (банки) имеют в своём составе СБ в которой обычно сидят бывшие силовики. Они по неофициальным каналам могут "пробить" пребывание на учёте в ПНД, но заморачиваться этим будут при приёме на работу.

    Если вкратце: не распространяйтесь среди коллег о своих проблемах медицинского характера и всё будет хорошо.
    Ответ написан
    Комментировать
  • Вы не знаете адресок чатрума для верстальщиков?

    @CobaltTheTerrible
    Копипастю код на Python
    Ответ написан
    Комментировать