• Изучение программирования путем Скалы?

    uvelichitel
    @uvelichitel
    habrahabr.ru/users/uvelichitel
    По моему Scala совсем не подходит для первого языка. Scala сложный, перегруженный, мультипарадигменный язык с замысловатым синтаксисом(причем на мой взгляд парадигмы сотканы не ортогонально). Scala требует изучения как язык сам по себе после того как полистали Вирта и прилично кодите. Иначе вы просто запутаетесь и утоните в концепциях языка вместо того чтобы учиться программировать. Что бы использовать возможности scala нужно уже знать для чего они нужны.
    Ответ написан
    4 комментария
  • Как сохранить заданные пропорции изображения?

    sim3x
    @sim3x
    stackoverflow.com/questions/6177532/why-does-pil-t...

    Не сохраняет пропорции картинки www.pythonware.com/library/pil/handbook/image.htm#...

    Сохраняет пропорции картинки www.pythonware.com/library/pil/handbook/image.htm#...

    Если хочешь сделать правильно in django way используй https://pypi.python.org/pypi/easy-thumbnails

    ПС: Если не сохранять пропорции картинки, то картинка будет перекошена
    Ответ написан
    Комментировать
  • Как записать 200 тыс строк за секунду?

    kaiten
    @kaiten
    Архитектор ИС
    Посмотрите в сторону Apache Kafka
    Сверх производительная очередь
    Ответ написан
    Комментировать
  • Какой у меня уровень django разработчика?

    @kazmiruk
    Я бы сказал, что нет. Из того, что бросилось при беглом просмотре кода - абсолютные пути в settings, несоблюдение pep8 (завершаюший отступ, длина строк. Я сам не считаю, что 80 символов это нормальное значение, но строка в 146 символов это слишком много, хотя бы 120). Нет ни одного теста, импорты выполнены в перемешку, каждый метод модели с декоратором property (не очень вникал в код, может и имеет смысл, но в таком количестве вряд ли), не используете CBV, хотя кое где это уместней, не понятно смысл создания целого аппа ради хранения одной функции в 1 строчку кода, есть явное непонимание того что и где содержится (Profile.objects.create(user=User.objects.get(id=request.user.id)), User.objects.get(id=request.user.id)), не понимание что какие запросы делают (sum([x.total for x in request.user.outlays.filter(type=2)])). Также не увидел нигде индексов, возможно они действительно и не нужны (по коду в основном везде выборки по PK и FK вроде). Нет try\catch для get блока хотя кое-где может плюнуть DoesNotExists (kwargs['inviter'] = User.objects.get(id=data['inviter']))
    В общем много косяков.
    А вообще, по такому коду трудно судить какого Вы уровня, так как в принципе ничего специфичного там нет, даже не знающий джангу напишет такое погуглив пару дней\часов.
    Советую Вам ознакомиться с pep8 подробней + установить себе pep8 и\или pylint, прочитать хотя бы two scoops of django, попрактиковать написание тестов, изучить selenium. Без обид, но пока я бы Вас не взяли на миддла, так как много бы пришлось объяснять и менять за Вами.
    Ответ написан
    1 комментарий
  • Поиск решения задачи, не похожей на предыдущие. Есть ли идеальный алгоритм?

    Denormalization
    @Denormalization
    Часто сталкиваюсь с такими людьми. Это "программисты поневоле", как я их называю.
    Этим людям не интересно программирование как таковое, им интересна их зарплата.

    Обычно такие "программисты" заучивают базу + небольшой объем типичных решений, и с этими знаниями набиваются в работники. Они просто не хотят ничему учиться, так как им неинтересна эта область.
    С ними сложно что-то сделать. Сколько им не вдалбливай, они не станут от этого умнее, и будут так же продолжать тупить на нестандартных задачах.

    Если вы хотите заставить их нежные мозги шевелиться - ни в коем случае не давайте им решения.
    Пусть думаю сами, пусть ищут решение. Можно лишь давать наводки в какую сторону копать, но ни в коем случае нельзя делать так:
    В итоге описание задач сводится к полному написанию алгоритма решения, включая названия методов и переменных, а иногда и простая диктовка кода.

    Когда вы рассказываете им решение задачи - они ничему не учатся. Они тупо заучивают очередное решение, возможно даже не вникая в его суть.

    Заставляйте таких людей ДУМАТЬ. Задавайте наводящие вопросы.
    Пусть лучше они сделают кривое решение, которые вы потом заставите их переделывать, но у них в голове останутся хоть какие-то знания.
    Ответ написан
    15 комментариев
  • Нужно сайт, не могу вспомнить название. Поможете?

    @throughtheether
    human after all
    Пришлось перерыть около 300 закладок, но, думаю, это он (переехал с pythonfasterway.uni.me).
    Ответ написан
    2 комментария
  • Как понять Python?

    Disen
    @Disen
    Ответ написан
    Комментировать
  • Язык программирования после Python?

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

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

    aavezel
    @aavezel
    Веб девелопер
    Как я понимаю питон изучается для веба? Тогда напишите простейшую форму учета (например, кошек в ветклинике) используя весь стек технологий.
    Если питон изучается для себя то решите первые 100 задач из проекта Эйлера.
    Ответ написан
    1 комментарий
  • Существует ли удаленный дебаггер питоновского скрипта на линукс сервере?

    @lega
    На питоне не приходится часто дебажить, но на сервере не плох pudb, так же pycharm умеет удаленную отладку.
    Ответ написан
    7 комментариев
  • С каким языком программирования может найти работу и новичок?

    @agnislav
    JavaScript разработчик
    Если оплата труда не важна - идите стажёром куда угодно. Технологии вы всегда сможете изучить сами, а организация труда, подходы, навыки - вы получите только в коллективе и только в компании, которая зарабатывает деньги. За 3 месяца стажировки в нормальной компании и под руководством хорошего лида можно без проблем выйти на уровень нормально оплачиваемого джуниора.
    Ответ написан
    Комментировать
  • Какими модулями вы пользуетесь для SEO Django?

    Я эволюционно шел:
    1. Сначала просто вбивал переменные в методе формирования контекста.
    2. Добавил стандартные мета-теги в модель с настройками (на случай, если нечего вбивать).
    3. Добавил мета-теги в модель, допустим, с категорией и понял, что стоит создать абстрактный класс, от которого позже наследовал и базовые настройки и эту модель.
    4. Понял, что вьюхи сильно дублируют код: постоянно присваиваю переменным одно и то же.
    5. В базовой вьюхе определил переменную, которая определяет, какие мета-теги используются, для каждой из них сделал метод ее получения, теперь во вьюхах пишу просто список мета-тегов, оно пытается выгрузить их из модели, либо найти метод, который их вернет (такой метод нужен на случай, если мета-теги не заполнены и нужно вместо seo_title подставить просто name).
    6. Понял, что, по-хорошему, тут нужно создать приложение, которое сможет расширять любую вьюху. То есть отвязать его от моей базовой вьюхи и подарить сообществу.
    7. Наконец-то решил погуглить: нашел django-meta, которое делает все то же самое, только чуть более изящно, автор явно прошел дальше по эволюционной ветке.
    8. Приуныл, собираюсь использовать вот буквально завтра.

    Оно выглядит хорошо: предоставляет базовый класс с мета-тегами, миксин для вьюхи (который экземпляр класса добавит в context). Можно забить мета-тег либо статично во вьюху, либо сделать метод для его динамического получения. Вкупе с абстрактной моделью это получается удобно, в данный момент я не могу придумать лучше.

    Да, что касается админки. Если там нужны какие-то стандартные действия с полями SEO, типа как добавление их в fieldsets, лучше тоже создать миксин, который переопределил get_fieldsets, например (или что там у вас).

    p.s. Я не думаю, что все это имеет смысл на сайте-визитке, например. Я бы делал такое начиная с масштаба интернет-магазина и более.
    Ответ написан
    Комментировать
  • Как обновить дату в поле модели django при смене текущего года?

    Обновлять по крону - это красивое решение. У вас дата очень напрашивается быть в БД и работать с миром как обычное поле. Как я понимаю, хранится она долго, создается при сохранении объекта модели, обновляется раз в год. Здесь не нужен метод, который проверяет ее актуальность, потому что вам эта проверка не нужна подавляющее большинство времени. Должен быть просто метод, заполняющий дату и ничего больше не делающий. Тем более, если после 1 января у вас будет пик посещений, вы получите дополнительную нагрузку на БД, плюс еще и неактуальные в ней данные останутся. Привязывать обновление данных к запросу нехорошо. Гораздо лучше крон, который сделает ее актуальной незаметно в 4:03 утра 1 января для всех сразу.

    Если бы это была быстро меняющаяся информация, то тогда подобный метод + кэш были бы кстати.
    Ответ написан
    Комментировать
  • Привильно ли сказать что psycopg2 это ORM?

    dizballanze
    @dizballanze
    Software developer at Yandex
    Нет psycopg2 это адаптер для PostgreSQL, который просто реализует протокол для обмена с СУБД.
    ORM - это когда из таблиц БД создаются объекты. Пример ORM - sqlalchemy, django orm.
    Ответ написан
    Комментировать
  • Есть ли сейчас смысл в Python/Django в связи с бурным развитием PHP?

    Есть ли сейчас смысл в PHP в связи с бурным развитием Python/Django?
    Ответ написан
    2 комментария
  • На повестку дня: Ruby On Rails или Node.js или php или Python?

    webus
    @webus
    Golang | Python | NodeJS | Java
    Python / Django.

    Мода на Ruby / Rails прошла. Владельцу проекта нужна предсказуемость и прозрачность работы фреймворка, на котором построен его проект. Этого достаточно сложно добиться с "магией" Ruby, которую понять то сложно, если пришел с других языков. Это первое.

    Второе, как ни крути но Ruby медленный. Да я пробовал последний Ruby 2.1 с последними Рельсами, и говорю он медленный. Да я знаю, что можно запускать Рельсу на всяких passanger, thin и unicorn. Знаю что есть JRuby и прочие реализации. Знаю что можно закешировать все что можно. Я это пробовал. И все равно, Руби - медленный. К слову реализаций Python тоже много, есть и Jython, PyPy, Stackless Python. Django на фоне Rails выглядит просто молнией, быстрый старт и прозрачность работы. Нет никакой магии, все понятно как работает от начала и до конца.

    Третье, Django достаточно консервативный фреймворк. В него никогда не добавят какую-нибудь сомнительную фичу, как это бывает в Rails (например никому не нужный turbolinks). Скоро выходит версия 1.7. Где достаточно много плюшек действительно нужных.

    Вам будут говорить про разветвление Python на версию 2 и 3. Что все плохо. Не верьте. Это все ерунда. В настоящее время большинство популярных библиотек уже давно на Python 3. Django, Flask уже давно. Мы все новые проекты начинаем на Python 3 и проблем никаких нет.

    На счет NodeJS. Использовать можно, но... Неудобно. Переносимость кода client side < - > server side по факту равна менее 10%. Сейчас большинство используют NodeJS как платформу для запуска нужных тулз для сборки фронтэнда, например Grunt / Gulp, Bower и прочее. Конечно пакетный менеджер npm.

    Надеюсь ответил на ваш вопрос.
    Ответ написан
    4 комментария