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 показал, что компания готова вкладываться в поддержку других платформ.
Как писать код быстрее с меньшим количеством ошибок
Попалась небольшая статья на просторах интернета о том как стать хорошим программистом. Далее вольный перевод оригинала
Практикуйтесь. Просто продолжайте делать то, что делаете. Создавайте больше софта, используйте больше инструментов, делайте больше ошибок, анализируйте их, разбирайтесь с ними и учитесь на них. Всегда практикуйте свои умения. Никогда не оценивайте их. Если вы будете сожалеть, что долго писали или дебажили что-то. Или как много ошибок допустили. Вы лишь испытаете ненужный стресс и усложните обучение.
Использование 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
Самая быстро прочитанная книга за последний год — «И ботаники делают бизнес»
Читать свежую документацию вредно
Еще когда до выхода 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)