Задать вопрос
  • Какие самые реальные и действенные проекты\работы\фриланс для python-программиста?

    voidnugget
    @voidnugget
    Программист-прагматик
    Пишу на питоне ещё с 15 лет (2.4+)... ненавижу его runtime и архитектуру. Язык хороший - реализация никакущая. Ну да его синтаксис достаточно упрощён, но и за синтаксический сахар приходится платить сложностями отладки и поддержки.

    Сейчас же почти все известные мне конторы не используют питон в продакшенах с более-менее высокой нагрузкой. Яндекс тому пример. Чаще питон используется для решения прикладных задач администрирования, так как это делается, к примеру, в SaltStack. Все дружно слезают с питона, РНР и рельсов на Golang, Java/Scala, и иногда даже Groovy - производительность выше в десятки раз, и managed runtime на много стабильнее. Правда в случае с JVM очень сильно раздувается куча в виду избыточности объектной модели (оператву жрёт как дурное, а я байтики считать привык). Сейчас это должно лечится с помощью Project Graal и Truffle, правда пока до этого дошёл только jRuby, который тоже в пару десятков раз быстрее Ruby. По идее и Groovy тоже должен переползти как-то ... Вот про jyton ничего не знаю.

    Много моих знакомых слезло на Golang с Ruby и Питона.
    Стоит попробовать - он достаточно простой и идиоматичный, вот рефлексию стоит обходить стороной - она очень медленная, впрочем как и везде. Работу может и не найдёте сразу, но после реализации пары простых проектов будет проще предлагать в качестве целевой платформы.

    Фрилансить с питоном начать можно, но очень желательно опробовать ещё хотя бы пару окружений и фреймворков типа Groovy Grails, или Typesafe Stack. Сейчас требования рынка возросли в пару раз за последние два года - нужны ассинхронности/многопоточности, push-нотификации в мобильные приложения и по вэбсокетам/комету. И это всё с богатыми js-фронтендами на всяких там Angular'ах и React'ах. Естественно можно крутить костыли типа Celery / Gearmand / Beanstalk / RabidMQ, но накладные расходы на коммуникацию слишком большие :( Компилируемые языки со своими Managed Runtime'ами позволяют строить монолитные приложения в которых подобные решения избыточны в рамках одной и той же машины, а если это куча нод в кластере то нужно мерить/думать.

    Django сейчас сложно поддерживать так как он достаточно сильно развился за последние 3 года, и я очень сомневаюсь что сохранится совместимость новых версий со старыми.

    А вот с pyramid (pylons) и SQLAlchemy можно строить достаточно хорошие приложения. У них есть enterprise поддержка и соответствующие гарантии.

    Типовые задачи на питоне:
    - написать какой-то мелкий скрипт с Gui на PyQT / Pyside для какой-то аналитики и отрисовки графиков, иногда попадаются задачки с gstreamer'ом
    - написать какое-то простое RESTful CRUD приложение, в стиле "одна табличка БД - один контролеер", это конечно же тонна копипасты и мне больше нравятся DataMapper'ы по типу TastyPie. Иногда люди хотят чистого Tornado или Flask'a, так как им не нравится overhead в джанге и pylons.
    - написать скрипты для деплоя чего-то, обычно люди не знают про SaltStack.

    В плане архитектуры питонистам чужды различные SOA с CQRS-ES'ом, потому что сам компилятор не располагает. Хотя её достаточно просто поддерживать.

    Проблема всех проектов на Node.js / Python / Ruby это отсутствие долгосрочной поддержки библиотек и фреймворков - часто ломается обратная совместимость, и нужно постоянно следить за состоянием всех зависимостей. Опять же нужен TDD/BDD для того что это всё хорошо контролировать. Тестируешь руками - себя не уважаешь.

    Ну и вроде всё ...
    p.s. я опубликую на хабре статью сегодня-завтра "Freelance - you're doing it wrong" там поделюсь опытом работы и основными организационными проблемами в рамках удалённой работы и фриланса, покажу разницу между ними.
    Ответ написан
    6 комментариев
  • Как уменьшить количество запросов к базе данных?

    benbor
    @benbor
    Помог ответ - не забудь лайкнуть
    Сами ответили на свой вопрос. Используйте Кеш. Гуглите, ибо информации море, как и подходов. Если у Вас не Plain Python ( а судя по вопросу нет) то вы сможете что-то найти для вашего фреймворка готовое.
    Ответ написан
    Комментировать
  • Использование языка программирования Go для веб проекта?

    @FireGM
    Язык для веба хорош. Но, к сожалению, очень молод, по-этому батареек к нему мало. Все версии начинающиеся с 1 будут обратно совместимыми. Т.е. можно спокойно начать использовать и не бояться обновлений. А вот на 2 версию грядут большие изменения, но это будет нескоро. Работа с шаблонами из коробки.
    Есть разные фрэймворки:
    revel - крупная бандура, много лишнего, похож на django , но django лучше.Пока лучше.
    martini - шикарная вещь, где есть минимум библиотек, но при этом облегчает разработку наравне с revel. Но легкий.
    Ответ написан
    Комментировать
  • В чем преимущество phantomjs перед selenium?

    @uelkfr
    PhantomJS - полностью headless-браузер, не требует X11 Server или DXGI, таким образом потребляет меньше ресурсов и работает на порядок быстрее (но медленнее ZombieJS разумеется). Недостатками при этом являются отсутствие поддержки Flash, старая версия JavaScript-движка V8, старая версия Webkit - из последних двух причин следует, что отсутствует поддержка новых технологий HTML5 - из чего следует не все сайты работают корректно. В ZombieJS дела еще хуже, он вообще со многими сайтами не работает, т.е. для парсинга не подойдет, для тестирования может подойти, но готовтесь к тому что придется отлаживать сам ZombieJS.

    Selenium может работать как с полностью headless-браузерами PhantomJS, SlimerJS, TrifleJS, ZombieJS, так и с обычными браузерами Chrome, Firefox, Opera, Internet Explorer (последние потребляют очень много ресурсов и обычно поднимают Selenium-ферму). При этом используется единый протокол общения с браузерами JsonWireProtocol (Webdriver Protocol) через extension или через их управляющие модули (xul-runner). Таким образом, пишется один код не привязанный к конкретному браузеру, а тестируется в нескольких браузерах. Но конечно у каждого браузера есть свои особенности и Selenium их не покрывает, и поэтому все равно приходится под каждый браузер дописывать слой кода совместимости. Если же тесты простые: заполнить поля, отметить галочку, добавить файл, нажать на кнопку или ссылку тут, то Selenium подойдет.

    Грубо говоря на PhantomJS 99% сайтов будет работать как в Chrome, но 1% сайтов будут работать с ошибками. Но насколько я понимаю это лишь важно если вы пытаетесь scrape-ить один из сайтов попадающих в этот 1% :)

    Если ваша компания маленькая, то рекомендую легковесные технологии ZombieJS, PhantomJS, Mocha, если ваша компания крупная, есть большой штат сисадминов, тимлидов, архитектов, то рекомендую тяжеловесные масштабируемые технологии Docker, Vagrant, Selenium, Jenkis CI.
    Ответ написан
    Комментировать
  • За сколько секунд стартует ваше приложение node.js в production-е?

    MarcusAurelius
    @MarcusAurelius Куратор тега Node.js
    автор Impress Application Server для Node.js
    Начинает отчечать по http через ~2сек после старта
    Ответ написан
    Комментировать
  • Как запускать NodeJS приложение на продакшен сервере?

    isqua
    @isqua
    Научу HTML, CSS, JS, BEM и Git
    Ответ написан
    Комментировать
  • Как запускать NodeJS приложение на продакшен сервере?

    Boniface
    @Boniface
    Вот одна из стратегий развертывания:
    1) Выкладываете свой проект на github или bitbucket.
    2) Подключаетесь к продуктовому серверу и устанавливаете git (например sudo apt-get git)
    3) Загружаете проект из репозитория git pull -u origin master (пример)
    4) Устанавливаете npm и node.js
    5) Устанавливаете forever и запускаете через него свое app (если express www)

    Это сугубо пример, на коленке
    Ответ написан
    Комментировать
  • Как преодолеть NAT (webrtc)?

    Если кратко, то существуют 4 вида NAT-а, которые нужно как-то преодолевать, 3 из них лекго преодолеваются при помощи STUN-серверов (они используются только в момент соединения пиров друг с другом - то-есть весь трафик через них не идет, есть куча бесплатных stun-серверов), четвертый - самый проблемный, под него подпадают примерно 15% всех peer-to-peer соеднинений в Интернете - это так называемый двойной NAT (когда оба пира скрыты за NAT-ом). Для преодоления этого четвертого вида NAT-а нужен TURN-сервер. Его особенность в том, что он работает как прокси - то-есть пропускает весь трафик через себя - отсюда вы должны понять, что бесплатных TURN-серверов вы не найдете. Те аккаунты, что вы привели сверху скорее всего уже давно отключены.

    Отличный список STUN-серверов можно взять здесь - https://github.com/DamonOehlman/freeice он там постоянно проверяется и обновляется.

    Проблемя с двойным NAT-ом решается одним из трех способов:
    1. где-то находите временно халявный аккаунт на TURN-сервер (но аккаунт внезапно могут отключить)
    2. покупаете платный аккаунт на уже существующем сервере и платите за трафик, например здесь - https://my.xirsys.com/signup/plans/standard/monthly
    3. Разворачиваете свой turn-сервер. Мы, например, так и сделали. Взяли убунту за $5 в месяц на digitalocean и поставили там за пол дня опенсурсный, бесплатный turn-server - turnserver.open-sys.org/downloads
    Ответ написан
    3 комментария
  • Какие данные необходимо указывать при генерации csr?

    opium
    @opium
    Просто люблю качественно работать
    Реальные данные
    указать страну
    область
    город
    имя организации
    отдел
    будут использоваться в сертификате
    если берете очень надежный сертификат то проверяют все от корки до корки
    нельзя
    Ответ написан
    1 комментарий
  • Почему я не могу получить сертификат в StartSSL?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Это проблема конкретно со StartSSL. У них свои достаточно суровые правила выдачи сертификатов, которые они допридумывают на ходу.
    Ответ написан
    4 комментария
  • Стоит ли переходить с Python на Go?

    @alehano
    Звучит так, как будто это дилемма: что выбрать Python или Go. Go стоит изучить как дополнительный язык, точно не помешает. Это не так сложно. В каждом случае сами решите что использовать. А вот вещи на Go можно делать в разы эффективнее при той же скорости разработки. В целом, язык очень нравится. Да, пока относительно мало всего на нем, но это вопрос времени.
    Ответ написан
    Комментировать
  • Звуковой сигнал из ниоткуда ни о чем в Mac OS X?

    @Rome
    Знакома проблема. Это гребанный скайп, когда кто-то входит и выходит из скайпа. Пытался отрубить, но скайп умудряется обойти все настройки. Продолжает булькать. В результате скайп включенным держу на iPod, а на маке включаю его по мере необходимости.
    Ответ написан
    Комментировать
  • Звуковой сигнал из ниоткуда ни о чем в Mac OS X?

    iStyx
    @iStyx
    Это Сообщения булькают, когда меняется статус в сети
    Ответ написан
    9 комментариев