User
NoSQL – коротко о главном

Сергей Туленцев (TextMaster)
Меня зовут Сергей Туленцев, я уже несколько лет интересуюсь NoSQL базами данных и сегодня попытаюсь поделиться с вами знаниями и опытом.
Кому будет полезен этот доклад? Это обзорный доклад с претензией на структурированность. Если вы что-то где-то когда-то слышали про NoSQL, то через 40 минут вы будете знать гораздо больше, вы будете легче ориентироваться в терминах и более уверенно выбирать базы данных для своего проекта.
Поговорим также про типичные примеры применения и как не надо применять NoSQL базы данных.
Ревью кода в распределенной команде

Здесь описаны мои исследования, как сделать ревизию кода в команде более приятным занятием, которое может дать новый опыт всем участникам. У нас полностью географически распределённая команда, все коммуникации выполняются через интернет, и зачастую асинхронно. Мы используем Trello для описания возможностей продуктов, поодиночке создаём код, отправляем в GitHub пулл-реквесты, а также пользуемся встроенной в GitHub функцией их ревью. Это отличается от просмотра кода лицом к лицу в офисе и даже по видеочату.
Если не подходить к делу всерьёз, то асинхронная и письменная ревизия кода может стать причиной катастрофы в команде, приведя к ухудшению взаимодействия и сотрудничества. Но если все участники будут стараться делать всё хорошо, то такой подход может работать очень эффективно.
«Меня разрывает, когда я не могу писать код» — интервью с Максимом Шафировым, CEO JetBrains

В новогоднем выпуске «Без слайдов» — Максим shafirov Шафиров, CEO компании JetBrains.
Вот о чем мы поговорили с Максимом:
- Важен ли для JetBrains российский рынок?
- Почему Максим не прекращает писать код?
- Насколько помогает догфудинг и в чём его ограничения?
- Почему компания редко закрывает продукты?
- Как появился Kotlin, и какими компания видит его перспективы?
- Почему компания не была продана, несмотря на щедрые предложения?
- Как в JetBrains появилась должность PMM?
- Как JetBrains одновременно конкурируют и сотрудничают с Microsoft?
Как обычно, под катом — полная текстовая расшифровка беседы.
Инструкция: Как создавать ботов в Telegram
HighLoad++2016: как это было

Привет, Хабр! Спешим сообщить тебе, что трансляции с Хайлоада уже выложены на Youtube-канале Хабра. Напоминаем — что это плод специального проекта Хабра и Хайлоад. 7 ноября, текстовая трансляция, несколько сотен постов (доступна здесь). 8 ноября, текстовая трансляция – тут. Наверняка не у всех была возможность наблюдать за этим онлайн, поэтому спешим сообщить, что теперь доступна запись конференции, которую вы можете посмотреть в любое удобное для вас время на YouTube канале Хабра. Страницу специального проекта просмотрели больше 25 000 раз, текстовую трансляцию прочитали больше 9 000 человек, а видео на ютубе посмотрели на данный момент 10 000 человек. Ну что ж, надеемся, что это помогло читателям Хабра немного погрузиться в новое или горячо любимое, расширить свой кругозор и найти для себя что-то полезное в самой гуще высококонцентрированных докладов о высоких нагрузках.
Генетический алгоритм своими руками
Генетический алгоритм — способ оптимизации, какой-либо функции. Но, в нашем случае, мне просто был интересен принцип его работы, своеобразное моделирование эволюции. Ну и чтобы проэволюционировать самому.
Мы имеем абстрактное поле, в котором есть организмы (синие и бирюзовые клетки), еда (зеленые) и яд (красные).
У созданий всего 64 гена, но можно ввести всего лишь 10 первых.
О языке С и производительности

Если программист хорошо знаком только с высокоуровневыми языками, например PHP, то ему не так просто освоить некоторые идеи, свойственные низкоуровневым языкам и критичные для понимания возможностей информационно-вычислительных процессов. По большей части причина в том, что в низко- и высокоуровневых языках мы решаем разные проблемы.
Но как можно считать себя профессионалом в каком-либо (высокоуровневом) языке, если даже не знаешь, как именно работает процессор, как он выполняет вычисления, эффективным ли способом? Сегодня автоматическое управление памятью становится главной проблемой в большинстве высокоуровневых языков, и многие программисты подходят к её решению без достаточной теоретической базы. Я уверен, что знание низкоуровневых процессов сильно помогает в разработке эффективных высокоуровневых программ.
Особенности Jupyter Notebook, о которых вы (может быть) не слышали

Ниже мы расскажем о некоторых фишках, которые делают Jupyter очень крутым. О них можно прочитать и в других местах, но если специально не задаваться этим вопросом, то никогда и не прочитаешь.
Обучаемся самостоятельно: подборка видеокурсов по Computer Science

Содержание
- Введение в Computer Science
- Структуры данных и Алгоритмы
- Системное программирование
- Распределенные системы
- Базы данных
- Объектно-ориентированный дизайн и разработка софта
- Искусственный интеллект
- Машинное обучение
- Веб-разработка и интернет-технологии
- Concurrency
- Компьютерные сети
- Разработка мобильных приложений
- Математика для программистов
- Теория информатики и языки программирования
- Архитектура компьютера
- Безопасность
- Компьютерная графика
- Работа с изображениями и компьютерное зрение
- Интерфейс Человек-Компьютер
- Вычислительная биология
- Прочее
Юникод: необходимый практический минимум для каждого разработчика
Чтобы по-настоящему разобраться с Юникодом нужно хотя бы поверхностно представлять себе особенности всех письменностей, с которыми позволяет работать стандарт. Но так ли это нужно каждому разработчику? Мы скажем, что нет. Для использования Юникода в большинстве повседневных задач, достаточно владеть разумным минимумом сведений, а дальше углубляться в стандарт по мере необходимости.
В статье мы расскажем об основных принципах Юникода и осветим те важные практические вопросы, с которыми разработчики непременно столкнутся в своей повседневной работе.
Микросервисы: пожалуйста, не нужно
Иллюстрация @alvaro_sanchez
Некоторое время все сходили с ума по микросервисам. Невозможно было открыть любимый новостной агрегатор и не увидеть, чтобы какая-то неизвестная вам доселе компания рассказывает о спасении своего инженерного отдела с помощью микросервисов. Возможно, вы даже сами работали в компании, которую захватил ажиотаж крохотных, магических маленьких сервисов, которые решат все проблемы большой, запущенной, полной легаси кодовой базы.
Естественно, в реальности все оказалось совсем наоборот. Когда смотришь назад, на произошедшее, то зрение оказывается ближе к 100%, чем когда смотришь с надеждой в будущее.
Я хочу рассказать о некоторых важных заблуждениях и подводных камнях движения за микросервисы с точки зрения человека, который работал в компании, убежденной в идее целительных свойств микросервисов. Я не хочу, чтобы выводом этой статьи для вас стало "микросервисы == плохо", но в идеале я хотел бы, чтобы вы задумались о проблемах когда будете решать, подходит ли вам микросервисная архитектура.
HowTo: continuous integration проекта на Django с помощью TeamCity
Введение
В процессе разработки, создавая новый функционал, всё чаще широкими мазками стал задевать старый код чем разрушал логику его работы. Это заставило всё-таки написать юнит и интеграционные тесты для старого кода и автоматизировать их запуск, т.к. гонять руками все тесты как-то грустно. Как раз вспомнилось недавнее руководство по CI Django в Jenkins и довольно старое по Webtest в Django. В итоге была совершена попытка поднять Дженкинса, но он как-то на моей убунте не взлетел и я грешным делом вспомнил про TeamCity. «Раз уж пишу в PyCharm и нашёл к нему подход, то, наверно, и TeamCity осилю, ведь конторка-то одна!» — подумалось мне… В общем-то я оказался прав, и, пока мне позволяет карма, решил подарить вам ультраполезный (и мегаподробный), в отличие от моего предыдущего, мануал :)
Итого: кому требуется руководство по поднятию интеграционного сервера TeamCity, и тестирование в нём Django проектов c тестами nose и webtest в виртуальном окружении python с автоматическим его (окружения) обновлением — добро пожаловать под кат.
Осторожно! Для работы TeamCity требуется (согласно документации) sun/oracle версия JVM…
Подборка подкастов по программированию на русском и английском языках
Подкасты представляют собой звуковые файлы, которые можно слушать в любое время на вашем компьютере или другом устройстве (IPod, IPad, смартфон и т.д.). Это самый портативный способ потреблять контент и узнавать что-то новое. Популярность подкастов росла на протяжении многих лет и теперь они охватывают очень широкий круг вопросов.
И да, есть много интересных и популярных подкастов для разработчиков и программистов. Подкасты невероятно полезны, они будут держать вас в курсе всего что происходит в интересующей вас сфере, а также помогут вам развить более широкий взгляд на постоянно развивающуюся область информационных технологий.
О Legacy-коде без максимализма: что делать

Представьте, что вам дали задачу поправить часть кода. В голове возникнет много мыслей. Кто его написал? Когда? А может он — legacy? Где документация? Давайте попробуем разобраться с «наследием» основательно и со всех сторон. Поможет нам в этом вопросе Андрей Солнцев @asolntsev (http://asolntsev.github.io/), разработчик из таллинской компании Codeborne. Начнём.

Абсолютно согласен! Скажу больше: юнит-тесты — необходимое, но недостаточное условие. И с юнит-тестами можно навалить так, что сам Геракл не разгребёт.
Что для настоящего джедая мастхав, так это:
- TDD — то есть тесты ДО кода.
- Чистый код (и чистые тесты).
Я очень люблю книгу Robert C. Martin «Clean Code» («Чистый код»). Это для меня настольная библия. Категорически всем советую. Кстати, его блог тоже великолепен.
Дорабатываем HTTP-кэширование в Django

В этой заметке речь пойдет о HTTP-кэшировании (перевод) и его использовании совместно с фреймворком Django. Мало кто будет спорить с утверждением о том, что применение HTTP-кэширования — очень правильная и разумная практика разработки веб-приложений. Однако именно в этом функционале Django содержит ряд ошибок и неточностей, которые очень сильно ограничивают практическую пользу от такого подхода. Например, до сих пор актуален баг #15855, заведенный в апреле 2011 года, который может приводить к очень неприятным ошибкам в работе веб-приложения.
Middleware vs. explicit decorator
В Django есть два стандартных способа включения HTTP-кэширования: через активацию UpdateCacheMiddleware/FetchFromCacheMiddleware, либо через декорирование функции представления при помощи декоратора cache_page. У первого способа имеется один существенный недостаток — он включает HTTP-кэширование для всех без исключения представлений (view) проекта, зато второй содержит тот самый баг #15855. Если бы не этот баг, то вариант с использованием cache_page являлся бы более предпочтительным. Плюс, такой вариант хорошо согласуется с важнейшим из постулатов The Zen of Python, что «явное лучше неявного».
Видео докладов с Docker митапа

18-го июня мы провели Docker митап, а сегодня публикуем видео докладов.
Познавательного вам просмотра!
CTO «Медузы» — Самат Галимов кратко о том, каково быть главным по разработке в медиа

У Самата samat Галимова интересный опыт: от практики в «Яндексе», через Bookmate, до технического директора издания «Медуза». Мы задали Самату несколько вопросов, для того чтобы быстро прояснить, каково это — разрабатывать современный медиа-продукт для многомиллионной аудитории.
Текущее место работы
— Meduza.io
Должностные обязанности
— Отвечаю за всё техническое, что есть в Медузе.
Вице-президент по новым продуктам Mail.ru Group Юрий Гурский — о собственных проектах: Maps.me, MSQRD и Prisma

Юрий Гурский — человек, о котором сегодня много пишут. Представитель немногочисленных белорусских предпринимателей, ныне вице-президент Mail.ru Group и человек, частично ответственный за успех MSQRD.
В одном из прошлых интервью Юрий сказал, что считает себя, в первую очередь, специалистом в области B2C-мобильных решений, а предыдущие 15 лет он был вынужден мириться с неэффективность траты собственного времени.
Юрий нашёл время для того, чтобы пообщаться с нами и ответить если не на все, то хотя бы на часть вопросов.
Information
- Rating
- 3,680-th
- Location
- Екатеринбург, Свердловская обл., Россия
- Registered
- Activity