Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Почему вернулся винил, и как с этим связаны стриминговые сервисы

Время на прочтение4 мин
Количество просмотров18K
Пластинки покупают все чаще. Аналитики из Американской ассоциации звукозаписывающих компаний (RIAA) отмечают, что к концу года доходы от продажи винила превысят показатели CD — такого не случалось более 30 лет. Рассказываем о причинах такого бума.

Читать дальше →
Всего голосов 27: ↑20 и ↓7+13
Комментарии65

Идеальный мавен. Часть 1

Время на прочтение8 мин
Количество просмотров38K

Знаю, он не идеальный, но по крайней мере я попытаюсь рассказать, как его к этому приблизить.


В одну заметку всё не войдёт, поэтому сначала план:


  1. Постановка задачи — описание той конфигурации проектов с которой мы будем работать, целей и проблем
  2. Как настроить мавен для разработки в рамках нашей задачи
  3. Как настроить CI/CD (билды, релизы, деплоймент)
  4. Нерешенные проблемы

Задача


Итак, начнем с постановки задачи. Предположим у нас есть группа людей (компания, фирма, кружок), которые разрабатывают проекты на Java. При этом у них есть как проекты с открытым кодом (OSS), так и проекты с закрытым кодом. Проекты, назовём их внутренние, разрабатываются независимо друг от друга, но между ними есть зависимости. Что хочется:


  • Централизованное управление зависимостями на внешние библиотеки
  • OSS проекты в центральном мавен репозитории
  • Закрытые проекты в своём мавен репозитории.
  • «Простой» релиз внутренних проектов с обновлением зависимости в зависимых проектах.
  • Максимальная автоматизация всех хотелок.
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии36

Docker: невредные советы

Время на прочтение6 мин
Количество просмотров35K

В комментариях к моей статье Docker: вредные советы было много просьб объяснить, чем так ужасен описанный в ней Dockerfile.


Краткое содержание предыдущей серии: два разработчика в жестком дедлайне составляют Dockerfile. В процессе к ним заходит Ops Игорь Иванович. Итоговый Dockerfile плох настолько, что ИИ оказывается на грани инфаркта.



Сейчас разберемся, что не так с этим Dockerfile.


Итак, прошла неделя.

Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии75

Руководство по Docker Compose для начинающих

Время на прочтение9 мин
Количество просмотров883K
Автор статьи, перевод которой мы сегодня публикуем, говорит, что она предназначена для тех разработчиков, которые хотят изучить Docker Compose и идут к тому, чтобы создать своё первое клиент-серверное приложение с использованием Docker. Предполагается, что читатель этого материала знаком с основами Docker. Если это не так — можете взглянуть на эту серию материалов, на эту публикацию, где основы Docker рассмотрены вместе с основами Kubernetes, и на эту статью для начинающих.

image
Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии14

Создаём датчик контроля качества воздуха на InfluxDB, Grafana, Docker и Raspberry Pi

Время на прочтение9 мин
Количество просмотров22K
Когда-нибудь думали о мониторинге качества воздуха в доме или за его пределами: там, где живёте и работаете? Этот проект, который мы окрестили balenaSense, представляет собой установку для снятия показаний температуры, влажности, барометрического давления и качества воздуха, а также панель мониторинга, к которой вы можете получить доступ из любого места, чтобы увидеть сводную статистику и отслеживать тенденции.


Читать дальше →
Всего голосов 20: ↑18 и ↓2+16
Комментарии43

Космический ЦОД. Подводим итоги эксперимента

Время на прочтение4 мин
Количество просмотров21K
Друзья, в День космонавтики наш маленький сервер успешно слетал в стратосферу! Во время полёта сервер на борту стратостата раздавал интернет, снимал и передавал видео и данные телеметрии на землю. И нам не терпится рассказать, как всё прошло и какие были неожиданности (ну а как без них?).


Всего голосов 85: ↑81 и ↓4+77
Комментарии30

composer и автодополнение командной строки

Время на прочтение2 мин
Количество просмотров4.4K

Так как я все больше и больше добавляю свои скрипты в файлы composer.json, было бы полезно иметь автозаполнение для команды composer в bash. Мой вопрос в Твиттере не дал немедленного решения, и, поскольку я уже делал нечто подобное для Phing, я закатал рукава и написал своё решение.

Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии2

Доступ к linux серверу с помощью Telegram-бота на Python

Время на прочтение4 мин
Количество просмотров33K
Довольно часто происходят ситуации, когда доступ к серверу нужен здесь и сейчас. Однако, не всегда подключение по SSH является наиболее удобным способом, потому что под рукой может не оказаться SSH клиента, адреса сервера или связки «пользователь/пароль». Конечно, есть Webmin, который упрощает администрирование, но он также не даёт моментальный доступ.
Читать дальше →
Всего голосов 27: ↑20 и ↓7+13
Комментарии20

VIM + screen. Организация удаленной среды web-разработки

Время на прочтение6 мин
Количество просмотров21K
Миллион статей написано об организации рабочего процесса, редакторах кода, удобстве и стабильности работы. Я, не претендуя на «самый расчудесный способ», хочу рассказать, как организована среда web-разработки у нескольких человек из нашей команды. Сразу оговорюсь, если вы используете только локальные GUI-шные редакторы кода, Notepad++, Eclipse и т.п., то эта статья не для вас. Мы очень много работаем в консоли, и поэтому, в результате многолетнего естественного отбора, многие пришли к VIM, а консоль является практически отдельным табом в среде разработки, т.к. в процессе работы надо смотреть логи, писать запросы к базе, перезапускать сервисы и т.п. Поэтому, я хочу поделиться конкретным практическим рецептом организации среды web-разработки для программиста или админа, который много времени работает в стандартной удаленной консоли.
Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии31

Шпаргалка с командами Docker

Время на прочтение5 мин
Количество просмотров721K
Прим. перев.: Неделю назад Aymen El Amri, руководящий компанией eralabs и создавший обучающий курс «Безболезненный Docker», опубликовал свой Docker Cheat Sheet — шпаргалку по основным командам Docker. Git-репозиторий этого документа на GitHub уже набрал 1000+ stars и несколько сторонних контрибьюторов, что подтвердило его актуальность и пользу.



Представленные здесь команды описаны минимально (с акцентом на читаемость как есть) и включают в себя установку Docker, работу с реестрами и репозиториями, контейнерами, образами, сетью, Docker Swarm. Ниже представлен перевод шпаргалки в её состоянии на 2 сентября с дополнениями из комментариев ниже.
Читать дальше →
Всего голосов 46: ↑42 и ↓4+38
Комментарии15

Поднимаем сложный проект на Django с использованием Docker

Время на прочтение10 мин
Количество просмотров74K
Добрый день, коллеги.

Сегодня я расскажу о не совсем простой концепции быстрого (до часа после нескольких тренировок) развёртывания проекта для работы команды, состоящей как минимум из отдельных фронтенд и бэкенд разработчиков.

Исходные данные у нас такие: начинается разработка проекта, в которой планируется «тонкий бэкенд». Т.е. бэк у нас состоит из закешированных страниц (рендерятся любым шаблонизатором), объёмных моделей с сопутствующей логикой (ORM) и REST API, выполняющего роль контроллера. Фактически, View в такой системе редуцировано и вынесено в JS, благо есть разные реакты, ангуляры и прочие вещи, которые позволяют фронтендщикам считать себя «белыми людьми».
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии49

Как подступиться к fullstack-разработке сегодня, если ты проспал десять лет

Время на прочтение26 мин
Количество просмотров149K


Привет, Хабр! Несколько месяцев назад у меня остро встал вопрос смены профиля деятельности и я обнаружил, что для претендента на вакансию web-разработчика сейчас недостаточно навыков десятилетней давности (какая неожиданность!). Пришлось срочно актуализировать свои знания. Заодно я решил составить шпаргалку с описанием большинства современных технологий, чтобы в случае чего кидать жаждущим новых знаний линк на эту статью, да и самому не забывать.
Читать дальше →
Всего голосов 162: ↑135 и ↓27+108
Комментарии381

Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm

Время на прочтение11 мин
Количество просмотров138K
Cloud hosting

Привет Хабр! Последние 1.5 года я работал над своим проектом, которому был необходим надежный облачный хостинг. До этого момента я больше 10 лет занимался веб-программированием и когда я решил построить свой хостинг у меня были относительно поверхностные знания в этой области, я и сейчас не являюсь системным администратором. Все что я буду рассказывать может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.
Читать дальше →
Всего голосов 64: ↑63 и ↓1+62
Комментарии42

Жизнь на частицах

Время на прочтение4 мин
Количество просмотров67K
Всем привет! Сегодня я расскажу о своих экспериментах с системами частиц. Основной целью было нахождение простых правил, которые бы порождали интересное поведение.

Классический пример системы с простыми правилами и сложным поведением — клеточные автоматы, именно на них я и ориентировался, пытаясь подобрать правила. Конечно же, для клеточных автоматов правила будут в большинстве случаев проще. Но частицы могут быть красивее!

Под катом много мегабайт гифок.

Читать дальше →
Всего голосов 269: ↑267 и ↓2+265
Комментарии67

VIM, Django… Django, VIM

Время на прочтение2 мин
Количество просмотров11K
Вот казалось бы сейчас, как никогда должна быть масса крутых IDE для разработки на Django. И они есть — взять хотя бы PyCharm или PyDev. Но мне они никогда не нравились. Я всю свою карьеру Python-разработчика пользовался SciTE + Scintilllua (вот мой конфиг, если кому нужен) и был вполне доволен. Но черт меня дернул попробовать VIM с Emacs и я уже не смог вернуться на SciTE. Нет, это отличный редактор, но большую часть работы я пишу код и уже не могу представить, как можно было работать в текстовом редакторе с мышкой или каждый раз тянуть руку к стрелкам, чтобы перейти на новую строку, а потом к End, чтобы перейти в конец строки. Оставалось мне только по-минимуму настроить свой VIM для удобной разработки на Django.
Читать дальше →
Всего голосов 48: ↑41 и ↓7+34
Комментарии50

Практичный Go: советы по написанию поддерживаемых программ в реальном мире

Время на прочтение48 мин
Количество просмотров57K
Статья посвящена лучшим практикам написания кода Go. Она составлен в стиле презентации, но без обычных слайдов. Постараемся кратко и чётко пройтись по каждому пункту.

Для начала следует договориться, что значит лучшие практики для языка программирования. Здесь можно вспомнить слова Расса Кокса, технического руководителя Go:

Программная инженерия — то, что происходит с программированием, если добавить фактор времени и других программистов.

Таким образом, Расс различает понятия программирования и программной инженерии. В первом случае вы пишете программу для себя, во втором создаёте продукт, над которым со временем будут работать и другие программисты. Инженеры приходят и уходят. Команды растут или сокращаются. Добавляются новые функции и исправляются ошибки. Такова природа разработки программного обеспечения.
Читать дальше →
Всего голосов 59: ↑57 и ↓2+55
Комментарии14

Введение в аннотации типов Python. Продолжение

Время на прочтение4 мин
Количество просмотров71K


Автор иллюстрации — Magdalena Tomczyk


В первой части статьи я описал основы использования аннотаций типов. Однако несколько важных моментов остались не рассмотрены. Во-первых, дженерики — важный механизм, во-вторых иногда может оказаться полезным узнать информацию об ожидаемых типах в рантайме. Но начать хотелось с более простых вещей

Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии33

Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

Время на прочтение26 мин
Количество просмотров344K
Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже множество? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера опыт (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

Что мы будем рассматривать в данной статье?

В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
В Части 6 — послесловие
Читать дальше →
Всего голосов 108: ↑107 и ↓1+106
Комментарии36

ООП мертво, да здравствует ООП

Время на прочтение18 мин
Количество просмотров59K
image

Источники вдохновения


Этот пост возник благодаря недавней публикации Араса Пранцкевичуса о докладе, предназначенном для программистов-джуниоров. В нём рассказывается о том, как адаптироваться к новым ECS-архитектурам. Арас следует привычной схеме (объяснения ниже): показывает примеры ужасного ООП-кода, а затем демонстрирует, что отличным альтернативным решением является реляционная модель (но называет её «ECS», а не реляционной). Я ни в коем случае не критикую Араса — я большой фанат его работ и хвалю его за отличную презентацию! Я выбрал именно его презентацию вместо сотен других постов про ECS из Интернета потому, что он приложил дополнительные усилия и опубликовал git-репозиторий для изучения параллельно с презентацией. В нём содержится небольшая простая «игра», используемая в качестве примера выбора разных архитектурных решений. Этот небольшой проект позволил мне на конкретном материале продемонстрировать свои замечания, так что спасибо, Арас!

Слайды Араса выложены здесь: http://aras-p.info/texts/files/2018Academy — ECS-DoD.pdf, а код находится на github: https://github.com/aras-p/dod-playground.

Я не буду (пока?) анализировать получившуюся ECS-архитектуру из этого доклада, но сосредоточусь на коде «плохого ООП» (похожего на уловку «чучело») из его начала. Я покажу, как бы он выглядел на самом деле, если бы правильно исправили все нарушения принципов OOD (object-oriented design, объектно-ориентированного проектирования).

Спойлер: устранение всех нарушений OOD приводит к улучшениям производительности, аналогичным преобразованиям Араса в ECS, к тому же использует меньше ОЗУ и требует меньше строк кода, чем ECS-версия!

TL;DR: Прежде чем прийти к выводу, что ООП отстой, а ECS рулит, сделайте паузу и изучите OOD (чтобы знать, как правильно использовать ООП), а также разберитесь в реляционной модели (чтобы знать, как правильно применять ECS).
Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии48

Обширный обзор собеседований по Python. Советы и подсказки

Время на прочтение10 мин
Количество просмотров185K

Всем привет!


Кратко о себе. По образованию я математик, а вот по профессии — программист. В сфере разработки с 2006 года. Хотя, поскольку программирование начали изучать ещё в школе, свои первые программки и игры я начал писать ещё в школе (примерно, с 2003). Так сложилось, что пришлось выучить и поработать на нескольких языках. Если не брать во внимание ВУЗ-овские лекции по С, С++, Бэйсику, Паскалю и Фортрану, то реально я работал с Delphi (более 6 лет), PHP (более 5 лет), Embedded (Atmel + PIC около 2.5 лет) и последним временем Python + чуть-чуть Scala. Конечно же без баз данных тоже никак не обойтись.


Для кого эта статья? Для всех, кто, как и я, хотел (или хочет) найти для себя достойную хорошо оплачиваемую работу с интересным проектом, классным коллективом и всякими плюшками. А также для тех, кто желает поднять свой уровень знаний и мастерства.

Читать дальше →
Всего голосов 71: ↑70 и ↓1+69
Комментарии57

Информация

В рейтинге
Не участвует
Откуда
Беларусь
Дата рождения
Зарегистрирован
Активность