Задать вопрос
  • Какие самые реальные и действенные проекты\работы\фриланс для 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 комментариев
  • Как можно реализовать подобный вывод новостей?

    CuamckuyKot
    @CuamckuyKot
    Веб-разработчик, предприниматель
    Банально свой шаблон сделать сеткой.

    Первая новость (по счётчику можно сверить) выводится большой плашкой на 2/3.
    Ответ написан
    3 комментария
  • Как подключиться к компьютеру по сети без установленного драйвера сетевой карты?

    RicoX
    @RicoX
    Ушел на http://ru.stackoverflow.com/
    Да эти чудеса имеют название IPMI или же IP-KVM, покупаются и настраиваются заранее, для первого еще и нужна поддержка на уровне материнки и процессора. Позволяют хоть биос удаленно конфигурировать, хоть систему ставить, в вашем случае только ехать и ручками делать.
    Ответ написан
    3 комментария
  • Какие самые реальные и действенные проекты\работы\фриланс для python-программиста?

    ali_aliev
    @ali_aliev
    Разработчик на Django/Python, JavaScript
    Python используется везде, где только можно. Web разработка, анализ данных, системное программирование/администрирование, математика, и т.д. Вам остается только решить, чем вы будете заниматься. По поводу опыта - чем его больше чем лучше. Я вам рекомендую забить в гугл "python engineer vacancy" и посмотреть какие требования для Python разработчика у работодателей.
    Ответ написан
    Комментировать
  • Стоит ли покупать x-box?

    @asd111
    Не стоит. Лучше купить книги.
    Ответ написан
    Комментировать
  • Какие самые реальные и действенные проекты\работы\фриланс для python-программиста?

    kivsiak
    @kivsiak
    software engineer
    Основной навык для любого программиста это самостоятельный поиск и анализ информации.
    odesk fl и т.п. не являются закрытым элитарным сообществом. Что вам мешает зайти и посмотреть какие задачи там ставят? Что требуют? Сколько платят? Какие сроки?
    Ответ написан
    Комментировать
  • Какая разница между CreateView и если я выведу данные в template через def?

    @sakuradaj
    Используя CreateView или любые другие generic views штуки можно использовать ООП во вьюхах, наследоваться от них и например определять один и тот же общий context_data для CreateView/DetailView/UpdateView/TodayArchiveView, использовать Mixin.

    Вообщем ООП преимущества которые помогут избежать дублирование кода если ваши вьюхи не банальны и имеют что-то общее, например обновление/создание/удаление/вывод списка с пагинацией для одной модели.
    Если нужна пагинация то я почти всегда использую generic views, потому что с ним это делается очень просто.
    Ответ написан
    1 комментарий
  • Какие технологии используются на этой странице?

    @ikeagold
    Сайт builtwith для определения всего на любом сайте, включая серверные технологии, cms и тд.
    Есть так же их плагин.
    Ответ написан
    Комментировать
  • Linux: виртуально или полноценная вторая система?

    yokotoka
    @yokotoka
    Python guru
    У меня Ubuntu-виртуалка внутри Win-хоста, несмотря на то, что Ubuntu - это система, которую я активно использую 90% своего рабочего времени. Почему так:
    1. Это удобно. Можно быстро перекинуть виртуалку и запустить систему на другом железе, без плясок. И ничего не отвалится, и не словите фатал еррор при загрузке на не родном железе. Например, если нужно быстро перенести рабочее окружение со сгоревшего компа на рабочий и продолжить работу, или со стационарника перенести работу на ноут и поехать с ним работать с греческого пляжа, а потом обратно. Снапшоты, бекап и т.п. превращаются в действительно удобные операции.
    2. Win лучше поддерживает железо, как ни крути. Все производители железа (от процов до переферии) в первую очередь акцентируют внимание на Win. Энергосбережение, управление питанием - всё это намного лучше сделано в Win. У коллеги стояла Ubuntu единственной системой на ноуте. Из-за какого-то годами нерешаемого бага, процессорный вентилятор всегда работал на полных оборотах, процессор всегда работал на полную мощность, даже в режиме простоя и очень быстро выжиралась батарейка. В итоге сдался и перешёл на ту же схему, что и у меня. Ещё, помню не заводился специфический 3g-модем, драйверы для которого были только для Win.
    3. Софт. Лично для меня в Linux нет софта, который я использую, и который при этом требует прямой доступ к ресурсам (аудио DAW, требующие доступ к ASIO-интерфейсу звуковухи и т.п.), а в винде есть.
    4. Нет раздражающего переключения контекста. Это когда во второй системе сильно не хватает чего-то из первой, и нет возможности по-быстрому это запустить, что-то сделать и закрыть. Скажем, дабы сделать что-то в Linux - не требуется закрывать всё, что в результате работы было открыто в винде, перезагружать комп, логиниться вновь на тех сайтах, что нужны, вспоминать пароли или синхронизировать keepass. Просто запускаешь виртуалку, делаешь то, что в ней надо, закрываешь. При этом не нужно обрывать на полуслове, скажем, интернет-радио, на полукадре dlna-сервер, не обрываются сетевые шары, которым кто-то может пользоваться. Ну и если из линукса потребуется, вдруг, какая-то важная удобная тулза, win-only, уже настроенная на win-системе, не нужно будет делать 2 перезагрузки компа или париться с wine и настраивать всё так же, как и в win-системе.


    Всё зависит от задач, которые вы для себя ставите. Если они похожи на те, что я обозначил - попробуйте. Может понравиться. Тем более, сейчас всё больше и больше виртуализации вокруг, мир потихоньку перетекает в облака. Этот опыт может пригодиться в будущем.
    Ответ написан
    3 комментария
  • Как ухватить заказ с фриланса?

    @QcfgAlexandr
    Первые свой заказ я получил благодаря оперативности, ночь не поспал, но заказ выполнил.
    На фрилансе сам работаю чуть более 4 месяцев, но уже получил кое какой опыт:
    1. Заполняйте портфолио с ориентацией не на количество а на качество.
    2. Создавайте как можно более ТУ (Типовых услуг), это значительно повысит ваш шанс найти заказчика.
    3. После оставления предложения в заказе, не уходите с сайта как минимум 1час, т.к. очень часто заказчик выбирает того кто быстрее ответит.
    Ответ написан
    Комментировать
  • Django Как проверить email на существование?

    Если у вас есть поле email в модели, то достаточно сказать

    email = fields.EmailField(unique=True)

    Уникальность будет гарантироваться на уровне СУБД. Форма здесь ни при чём.
    Ответ написан
    Комментировать
  • Какова философия python и django?

    sim3x
    @sim3x
    поискал статьи про написание чата

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

    Создать чат-приложение с 0 -- намного сложнее чем ты думаешь

    Тут я вообще запутался, а сам я почему чат не могу сделать.

    Можно создать чат на основе повторяющихся ajax запросов к серверу -- не очень елегантно, но для 20 пользователей приемлемо

    Также искал, создание блога на django, но и там применяют какие-то стандартные функции публикации django

    Изучи их

    дополнительное приложение(или модуль, плагин) - комментарии disquz

    Если у тебя мало опыта в разработке, стоит сделать упор на базовые функции фрейма, а потом переходить к плагинам

    Расскажите главные принципы django

    Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.

    - высокоуровневий веб-фрейм
    - быстрая разработка
    - чистота
    - ясная структура кода

    Веб-фрейм для перфекционистов с дедлайнами!

    Расскажите, состав django

    Object-relational mapper -- взаимодействие с БД
    Automatic admin interface -- базовый интерфейс администратора
    Elegant URL design -- управление улами
    Template system -- расширяемый язык темплейтов
    Cache system -- гибкое кеширование

    Расскажитекак и с чем его едят

    стоит начать отсюда
    https://docs.djangoproject.com/en/1.7/intro/tutorial01/
    Ответ написан
    Комментировать
  • Какова философия python и django?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Django - это эдакий комбайн, альтернатива Rails для Python. Соответственно из его философий - это простота и функциональность, дисциплина и модульность, удобство и производительность. Получается у него это весьма не плохо. Хотя есть свои моменты, не самые приятные, скажем так.
    Если по поводу Python, то здесь неплохо подходят такие слова, как простота, лаконичность, скорость. В некотором смысле удобство. Порой, хотя это и официально скорее возбраняется, есть такая неприятная особенность, как write only, то есть пишется код легко и просто, но через пару лет прочитать его будет весьма сложно.
    Ну и потом, Python - Generic Purpose Language, то есть он всё таки предназначен для всего, а не в основном для вэба. Порой это видно. Например, на его основе нет нормального сервера, нет нормальной поддержки https. И в то же время, он один из немногих (хотя сегодня это почти не так), неприемлит cgi-bin.
    К слову, хочу обратить внимание, на такой фреймворк, как Flask. Он пока не очень быстрый, зато лёгкий и очень модульный. К тому же на нём легко писать.
    Ответ написан
    6 комментариев
  • Кто работал в США?Как отличаются требования?

    @DAlex
    Работаю в Калифорнии. Устроился за 2 недели (питон). Проходил несколько собеседований: основное отличие от интервью в России, что спрашивают не про стек технологий, которые вы знаете, а про алгоритмы разные, которые конечно вы потом использовать будете крайне редко ввиду наличия фреймворков и прочего высокоуровнего слоя, который все будет делать за вас. Интервью нужно пройти штук 5 в среднем разных... По деньгами: тестировщики получают здесь 60-90 тысяч долларов в год, программисты от 100 в среднем... Денег хватает на все, если вы не собрались покупать в Калифорнии дом -это очень дорого здесь
    Ответ написан
    8 комментариев
  • Продолжить изучать Python или начать учить PHP?

    @zugo
    "Битрикс" (как и любой продукт с префиксом "1С") - это невероятное говно и прямой путь к профессиональной деградации (как уже было сказано выше). Если уж PHP, то нужно изучать Symfony2, Yii или Laravel. Тем более, что Вы в Москве - ни за что не поверю, что там мало вакансий, хоть на PHP-разработчиков, хоть на Python, хоть на Flash.
    Ответ написан
    Комментировать
  • Как ухватить заказ с фриланса?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Один мой знакомый начинал с "Сделаю бесплатно за отзыв!" Сейчас у него ставка 1000 в час и поток заказов достаточный для работы по 12 часов в день, 7 дней в неделю.
    Ответ написан
    Комментировать
  • Django, как расширить юзера?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Django
    Седой и строгий
    Зачем это всё? До 1.5 создаёшь профиль
    class UserProfile(models.Model):
        user = models.OneToOneField(User)

    и прописываешь в settings.py
    AUTH_PROFILE_MODULE = 'UserProfile'

    С 1.5 создавай полностью свой класс пользователя или наследуй от User и прописывай в settings.py
    AUTH_USER_MODEL = 'myapp.MyUser'
    Ответ написан
    4 комментария
  • Таблица отношений пользователей. Как правильно?

    socengel
    @socengel
    7 лет native php в продакшене, онлайн 20000+,
    Правильная таблица отношений:
    Отмечу на всякий случай никаких id(самих записей) не должно быть! все выборки по ключам приведенным ниже
    user_id|friend_id|relation_id|date(timestamp)
    222|444|1|ts
    444|222|2(не просто дружит а например встречается, женат, и т.п. для каждого случая свой уникальный id)|ts

    первичный ключ составной (user_id,relation_id)
    дополнительный ключ (friend_id, relation_id)

    если кидают заявку создается 1 запись user_id>friend_id>0

    проверка на поступившие заявки friend_id(current_user_id) | relation_id = 0

    подтверждение: (должна быть транзакция!) то есть если отвалится один из запросов нужно вернуть все как было.
    на MyISAM ручками(средствами PHP проверяем). На innodb делаем транзакцию средствами БД.
    вписываем строчку с подтверждением курент_юзер > фриенд_ид > relid - 1 и обновляем основную заявку до единицы. Повторюсь если одна из команд не пройдет надо все откатить.

    если отказ то удаляем основную заявку из базы.

    по поводу дополнительных отношений:
    кинуть заявку можно только пользователю у которого взаимно стоит 1 и проверка собственно на заявки
    friend_id(current_user_id) | relation_id >(больше) 1.
    Остальной алгоритм тот же. одновременно у 1 пользователя может быть только одна запись с отношением больше 1 (желательно, это как индикатор именно личного отношения, для группировки друзей лучше все же завести отдельное поле)
    Описание с реальной базы данных на 30 миллионов пользователей.
    Ответ написан
    Комментировать