Выбор языка программирования для новичков

Последние дни часто слышу вопросы “с чего начинать обучение будущему программисту”. Какие книги читать. На какие языки программирования смотреть. Про книги написано много, повторяться не хочется. А хочется сделать обзор языков программирования, которые, по моему мнению, актуальны в 2017-м году чтоб обратить на них внимание. Новичкам можно учить любой. Даже C++, который по праву считается одним из самых сложных. По всем языкам написаны книги, которые расчитаны на аудиторию, начинающую знакомиться с программированием.

Microsoft представила Visual Studio Code. Бесплатный, кросс-платформенный редактор кода для OS X, Linux и Windows

На конференции Build 2015 компания Microsoft анонсировала запуск Visual Studio Code. Легковесный, кросс-платформенный редактор кода для создания современных web и облачных приложений. Редактор работает под OS X, Linux и Windows. Официально приложение находится в статусе preview и доступно для скачивания здесь.

Это первый раз, когда Microsoft представила кросс-платформенную среду разработки. Полная версия Visual Studio доступна только на Windows. Но анонс Visual Studio Code показал, что компания готова вкладываться в поддержку других платформ.

Visual Studio Code

Как писать код быстрее с меньшим количеством ошибок

Попалась небольшая статья на просторах интернета о том как стать хорошим программистом. Далее вольный перевод оригинала

Практикуйтесь. Просто продолжайте делать то, что делаете. Создавайте больше софта, используйте больше инструментов, делайте больше ошибок, анализируйте их, разбирайтесь с ними и учитесь на них. Всегда практикуйте свои умения. Никогда не оценивайте их. Если вы будете сожалеть, что долго писали или дебажили что-то. Или как много ошибок допустили. Вы лишь испытаете ненужный стресс и усложните обучение.

Использование GNU gettext в Java

Немного основ. Как работает GNU gettext и чем он лучше традиционных способов локализации в Java таких как .properties файлы.

  • Во-первых нормальная поддержка plural form. В неанглийском языке нереально перевести какие-то сложные предложения с числительными. Единственный способ изобретать свои велосипеды при помощи ChoiceFormat. Выглядят такие переводы нереально дико.
  • Во-вторых в исходном коде будут нормальные тексты, а не загадочные сокращения вроде template.loginForm.okButtonLabel.

Защищаем JMS соединения с помощью SSL

Допустим, есть у нас задача раскинуть выполнение некой произвольной очереди заданий на несколько компьютеров. Основные условия этой задачи примерно такие:

  • Менеджер заданий и сам исполнитель (воркер) должны быть упакованы в одно приложение. Это дает возможность не напрягаться с установкой каких-то сложных систем. Запустили приложение — оно что-то вычисляет само для себя. Хотим ускорить процесс — запускаем на соседнем компьютере его-же в качестве клиента к первому, и все делается в два раза быстрее.
  • Задачи раздаются через JMS.
  • К JMS брокеру нельзя присоединиться кому попало. Т.е. нужна аутентификация.
  • Не должно быть возможности прослушать трафик между менеджером и воркером.

Странное поведение psql в OS X Lion

Заметил, что при переходе на OS X 10.7 Lion испортилась работа разных горячих клавиш в консольной psql. Например не работал поиск по истории команд CTRL-R и некоторые другие комбинации клавиш.

Обновление операционной системы совпало с окончательным переходом с Macports на Homebrew. Поэтому первым делом я начал грешить на библиотеку readline из homebrew. Тем более в OS X есть свой аналог этой GNUшной библиотеки libedit. И brew устанавливает readline в режиме keg-only. Т.е. в отдельной директории, не проставляя никаких внешних ссылкок на нее.

Форматируем DecimalField в Django Forms

В статье рассмотрены две задачи Как выводить forms.DecimalField в нужном вам формате (например, обрезать незначащие нули) Как переопределять поля по умолчанию для ModelForm не переписывая каждое поле в отдельности Рассмотрим задачу создания и редактирования модели, служащей для снятия антропометрии человеческого тела. Эта модель была использована при создании веб-приложения для спортивного клуба, где клиенты могут снимать с себя замеры и наблюдать за динамикой изменения своего тела. Возьмем упрощенный вариант, где нужно замерять объем груди, талии и вес.

Самая быстро прочитанная книга за последний год — «И ботаники делают бизнес»

Как-то последний год не очень удачно у меня прошел в плане достижений. Хватался за разные проекты, мечась в поисках «нужного» направления приложения усилий. В итоге чтение книг отходило на второй план и занимало порой месяцы (привет тебе, трехтомник Atlas Shrugged). Настроение для чтения появлялось только по ночам — десяток-другой страничек перед сном, чтоб легче усыпалось. На этом фоне последняя книжка «И ботаники делают бизнес» меня поразила не столько содержанием, сколько скоростью с которой я ее прочел.

Читать свежую документацию вредно

Еще когда до выхода Django 1.3 оставалось месяцев пять, я начал пытаться использовать ее для разработки коммерческих проектов. В принципе понятно, что это плохо. Но когда не хочется, либо нет времени просто заниматься ерундой, а новые “фичи” попробовать ох как хочется, приходится чем-то жертвовать. Вот и я жертвовал отчасти своим временем, отчасти временем клиентов, которое растрачивалось на переписывания готовых кусков проектов по мере изменений, вносимых в альфу.

Про radio buttons и ModelForm в Django

Допустим есть задача в форме давать возможность человеку указать свой пол. Конкретно для пола нам хватит поля django.forms.BooleanField или django.forms.NullBooleanField, если указывать пол не обязательно. Но поскольку данный пример взят в образовательных целях, а в реальной жизнии скорее всего будет больше, чем 2 варианта выбора, будем использовать django.forms.IntegerField.

Например у нас есть такая модель

GENDER_MALE = 0
GENDER_FEMALE = 1
CHOICES_GENDER = ((GENDER_MALE, _("Male")), 
                  (GENDER_FEMALE, _("Female")))

class Men:
    gender = forms.IntegerField(_("Gender"),
                                choices=CHOICES_GENDER)