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

Все потоки

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

Android, Kotlin Flow во ViewModel — все сложно

Разработка мобильных приложений *Разработка под Android *
Перевод

Сравним Kotlin-Flow и ViewModel в Android приложении, посмотрим в чем отличия и узнаем сильные стороны каждого подхода.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Просмотры 606
Комментарии 0

Актуален ли еще Solid?

Программирование *Проектирование и рефакторинг *
Из песочницы
Перевод

Перевод статьи Роберта Мартина

Недавно я получил письмо:

В течение многих лет проверка понимания принципов SOLID было стандартной частью нашей процедуры приема на работу. Предполагалось, что кандидаты хорошо знакомы с этими принципами. Однако в последнее время один из наших менеджеров, который больше не занимается программированием, усомнился в том, что это разумно. Его аргументы заключались в том, что принцип открытости-закрытости (open–closed principle) больше не очень важен, потому что большая часть кода, который мы пишем, не содержится в больших монолитах, а внесение изменений в небольшие микросервисы безопасно и легко. Принцип подстановки Лисков (Liskov substitution principle) давно устарел, потому что мы не уделяем столько внимания наследованию, как 20 лет назад. Я думаю, нам следует рассмотреть позицию Дэна Норта по SOLID: «Просто напишите простой код».

В ответ я написал следующее письмо:

Принципы SOLID остаются актуальными и сегодня, как и в 90-е годы (и даже до этого). Это потому, что программное обеспечение не сильно изменилось за все эти годы. Оно не сильно изменилось даже с 1945 года, когда Тьюринг написал первые строчки кода для электронного компьютера. Программное обеспечение по-прежнему представляет собой операторы if, циклы while и операторы присваивания - последовательность, выбор и итерацию.

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

Читать далее
Всего голосов 8: ↑4 и ↓4 0
Просмотры 1.9K
Комментарии 8

Сценарий для апокалипсиса —  геомагнитная буря 1859 года

Блог компании Timeweb Научно-популярное Физика

В обыденном сознании последствия геомагнитных бурь ограничиваются головной болью и нарушением мобильной связи. Однако это справедливо лишь для слабых бурь. Вероятность же того, что мы станем свидетелями крупной чрезвычайно мала. Но на долю жителей 19 века и «местных путешественников во времени» всё же выпала такая участь. Речь идет о «Событии Каррингтона», геомагнитной бури 1859 года. В период слабой электрификации её последствия ограничились повреждениями телеграфной сети и, возможно, поломкой парочки «машин времени». По мнению некоторых экспертов, случись такая буря в наше время, она привела бы отключению электричества минимум на несколько месяцев. Рассмотрим подробнее природу события 1859 год.

Читать далее
Всего голосов 32: ↑31 и ↓1 +30
Просмотры 4.6K
Комментарии 14

Хороший инженер, плохой инженер

Блог компании OTUS Agile *Управление продуктом *Управление персоналом *

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

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

Читать далее
Всего голосов 14: ↑11 и ↓3 +8
Просмотры 868
Комментарии 3

Как дополнить данные в Amplitude информацией из CRM и других систем с помощью S2S событий

Блог компании Лига Ставок Big Data *Аналитика мобильных приложений *Управление продуктом *Data Engineering *
Recovery mode
Tutorial

Межсерверные (server-to-server или S2S) события позволяют отслеживать кастомные события и параметры через HTTP запросы. Они часто используются в мобильной атрибуции, например, в Appsflyer или в Adjust. При этом S2S события можно использовать и в Amplitude. Рассказываем как это настроить.

Читать далее
Рейтинг 0
Просмотры 121
Комментарии 0

Аминокислоты как ноты: как звучит белок?

Блог компании ua-hosting.company Читальный зал Научно-популярное Звук Биология


Существует высказывание: «о политике и вкусах не спорят». К сожалению, споров на эти темы все же хватает. Главный же посыл этой фразы в том, что у каждого человека могут быть свои предпочтения в кино, литературе, музыке. Кто-то случает Шуберта и призирает AC/DC, кого-то вдохновляют песни Жанны Агузаровой, а кто-то предпочитает слушать саундтреки к любимым фильмам. Вкусовое разнообразие обусловлено невероятно широким диапазоном звуков, которые мы способны создавать с помощью самых разных музыкальных инструментов (и своего голоса, конечно), от духовых и струнных до ударных и клавишных. Но какой будет мелодия, если исполнителем будет белок? Данный эксперимент увенчался успехом, но результат был, мягко говоря, специфическим. И вот ученые из Национального университета Сингапура решили усовершенствовать методику преобразования белков в музыку, сделав ее более приятной человеческому слуху. Как именно белок становится музыкальным инструментом, какие мелодии он способен играть, и что удалось сочинить ученым в результате? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 581
Комментарии 0

Правила «идеального программиста»

Карьера в IT-индустрии
Из песочницы

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

Читать далее
Всего голосов 1: ↑0 и ↓1 -1
Просмотры 1.8K
Комментарии 2

Материалы митапа для аналитиков: ценообразование, дашборд для SCRUM-команд, построение процессов

Блог компании Авито Визуализация данных Конференции

По традиции делимся материалами своего последнего митапа для аналитиков. В этот раз записи могут пригодиться тем, кто нанимает людей в команду и начинает выстраивать аналитические процессы, сотрудникам маркетплейсов и площадок для объявлений, а также SCRUM-мастерам. 

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 161
Комментарии 0

Популярные расширения для PostgreSQL: как установить и для чего использовать

Блог компании Selectel PostgreSQL *SQL *IT-инфраструктура *Администрирование баз данных *

Облачные базы данных Selectel поддерживают 40 расширений для PostgreSQL. Некоторые добавляют небольшие радости оптимизации баз данных, другие — заменяют отдельные модули разработки на стороне приложения. На данный момент расширениями пользуются 26% пользователей DBaaS. Мы узнали, какие экстеншены наиболее популярны у клиентов и где они их применяют.

Если вы опытный DBA, вы точно нужны в комментариях — расскажите, какие расширения используете и как они решают ваши задачи.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Просмотры 1.6K
Комментарии 3

Нужно ли DevOps’ам уметь в кодинг?

Блог компании ISPsystem Программирование *DevOps *

IT — сфера большая и многогранная. В ней обитают программисты и сетевики, сисадмины и инженеры. Иногда попадаются копирайтеры, дизайнеры и маркетологи. Но это не точно.

Кто-то ушел в «компьютерную» профессию осознанно: сначала радиокружок, потом — технический факультет ВУЗа. Кто-то стал айтишником и вовсе по воле случая.

С точки зрения обывателя каждый «технарь» обязан как минимум чинить компьютеры любого вида и возраста. И уж точно понимать в программировании. Как раз о последнем мы и хотели бы поговорить: насколько важны кодерские навыки ИТ-спецам, не занятым непосредственно разработкой?

Мы поделимся с вами двумя историями двоих наших коллег из отдела DevOps. Оба они в какой-то момент интересовались языками программирования, однако пошли по другому пути. Это тенденция, заговор или несчастный случай? Как и почему это случилось? Ответы под катом!

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 2K
Комментарии 0

Будущее ствольной артиллерии

Научно-популярное Транспорт Будущее здесь

Сейчас мы живём в интересное время. С одной стороны, войска всех стран завалены техникой поздней Первой Холодной войны (те же М109, Акации, Грады, да даже PzH 2000 – всё детища той эпохи), которая активно модернизируется, с другой – всё больше и больше становится роботов, космос стал полноценным доменом (по классификации США), где ведутся БД, потоки информации тоже становятся оружием. После боёв в Карабахе очередной раз похоронили артиллерию, всё будущее стали считать за ударными БПЛА и дронами-камикадзе. Но, между тем, в Бристоле летом проходит конференция Future Indirect Fires 2021 (Будущее навесного огня 2021), где обсуждаются проблемы развития западной артиллерии; в США, России, Израиле, Китае, Южной Корее и других странах идут активные работы по вооружению, которое может сейчас многим показаться фантастикой. Так давайте заглянем, что таится во мраке тёмного будущего.

Читать далее
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 4.4K
Комментарии 23

Обеспечиваем безопасность стеков Docker Compose с помощью CrowdSec

Блог компании CrowdSec Информационная безопасность *Open source *Системное администрирование *
Tutorial

В этой статье рассказывается, как объединить CrowdSec и Docker Compose для защиты приложений, заключенных в контейнеры. Это позволит нам:

автоматически закрывать скомпрометированным IP-адресам доступ к нашим контейнерным сервисам;

вручную добавлять/удалять и проверять решения о запрете;

отслеживать поведение CrowdSec (с помощью cli и дашбордов).

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 420
Комментарии 0

Как настроить автоматическую сборку образов ВМ для VMware Cloud Director — компактное руководство

Блог компании SberCloud Open source *Виртуализация *Облачные вычисления *DevOps *

Привет, Хабр! Меня зовут Роман Петров, занимаюсь разработкой продуктов для управления учетными данными в SberCloud. В рамках одного проекта мне потребовалось автоматизировать сборку виртуальных машин под VMware Cloud Director.

Можно было решить эту задачу с помощью инструментов VMware: Fusion, Workstation или Player, но они требуют покупки лицензий, а последний еще и установки не обновляемого пакета VMware VIX API в случае GNU\Linux. Я выбрал альтернативный путь и построил необходимый пайплайн на базе опенсорсного VirtualBox.

Под катом — кратко о том, как я это сделал.

Читать далее
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 440
Комментарии 4

Самописец Михалыча с L1. Или один день из жизни инженера технической поддержки Schneider Electric

Блог компании Schneider Electric Service Desk *
Recovery mode

07:00

Слышу звуки будильника. Вот и добрейшее утро повисло расходящимися тучами.

08:50

Прохожу турникеты в офис, машу рукой девочкам с Reception, здороваюсь с ангелами из охраны.

Захожу в наш открытый open space...

Читать далее
Всего голосов 8: ↑2 и ↓6 -4
Просмотры 2K
Комментарии 3

Как грумить задачу: чек-лист с примерами

Блог компании Mindbox Программирование *Управление разработкой *
Наша разработка постоянно растет, поэтому приходится онбордить по несколько человек в месяц и каждому рассказывать, как правильно грумить задачи. Обучать груму «вручную» больно, потому что это отнимает много времени, какие-то знания теряются по дороге и выскакивают ошибки, которых можно было избежать. Чтобы облегчить жизнь лидам и новичкам, мы собрали чек-лист с описанием этапов грума и примерами. Он будет полезен разработчикам продуктовых компаний, которые онбордят или которых недавно приняли в штат. Чек-лист поможет разбивать задачи на этапы, чтобы ничего не терялось и результат соответствовал ожиданиям.

Все примеры ниже — специфичные и подойдут не каждому, они построены в основном на продуктах Mindbox «Рассылки» и «Программа лояльности». Продукты помогают нашим клиентам запускать автоматические рассылки по триггерам (действиям или событиям), чтобы не спамить пользователей, выдавать промокоды и выстраивать бонусные системы. Если поймете, что чек-лист полезен, можете заменить примеры на свои и использовать.

Ниже подробнее о том, как сделать качественный грум:

  • цель грума,
  • необходимый минимум,
  • уточнение требований и контекста,
  • типичные этапы,
  • особенности при доработке механик.
Читать дальше →
Всего голосов 2: ↑1 и ↓1 0
Просмотры 672
Комментарии 10

Личное планирование: от стикеров на мониторе до целей на 20 лет. Часть первая

Блог компании Quadcode Управление проектами *

Привет, я Дарья Двоеглазова, менеджер продукта в Quadcode. 3,5 года назад я пришла работать в IT и сразу окунулась в мир управления проектами. В статье я расскажу о том, как прошла путь от стикеров на мониторе до планов на 20 лет.

Максимум планирования, с которым я встречалась до начала работы, — школьный дневник и блокнот на телефоне для списка покупок. Все изменилось, когда я вышла на работу: мой монитор стал обрастать стикерами с напоминаниями. Это действительно помогало на первом этапе, пока экран не оказался заклеенным стикерами по всему периметру. 

За это время я попробовала несколько инструментов и множество разных методов управления временем. Сейчас моя система позволяет мне планировать долгосрочные цели на 10-20 лет. Конечно, планы не всегда сбываются, но я предпочитаю идти (или хотя бы лежать) к своим целям. Кстати, недавно я достигла цели, к которой шла больше 5 лет. 

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.8K
Комментарии 2

Что должен, но не знает про конкуренцию в PostgreSQL каждый разработчик?

Разработка веб-сайтов *PostgreSQL *SQL *
Из песочницы

Опыт показывает, что разработчики редко задумываются о проблемах, которые могут возникать при многопользовательском доступе к данным. При этом практически любое web-приложение является многопользовательским и так или иначе использует блокировки при доступе к данным в БД. При неправильном использовании эти блокировки могут больно бить по пользователям, а иногда и по системе в целом. Поэтому рано или поздно каждый разработчик многопользовательских систем должен задуматься о том, как ему начать работать с БД так, чтобы пользователи не мешали другу другу. Многие считают, что это сложно, давайте вместе убедимся, что это не так.

Читать далее
Всего голосов 13: ↑12 и ↓1 +11
Просмотры 2.1K
Комментарии 2

Прокачиваем силу — Rust и Windows API

Блог компании RUVDS.com API *Разработка под Windows *Rust *Системное программирование *


Недавно я написал статтью Трясём стариной — или как вспомнить Ассемблер, если ты его учил 20 лет назад. В статье рассказывается о том, как изучать ассемблер на примере игрушки 2048. Возможно для целей самой статьи игрушка была подходящая, но конечный результат меня немного удручил. Бинарник размером в 10 килобайт, который потребляет 2 мегабайта памяти, из-за неправильно слинкованной библиотеки резал глаза.

Посему я задался вопросом, а как это можно было бы сделать правильнее? Наверняка есть намного более удачное решение. (И организовал ещё один конкурс с призами в конце статьи)

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

Причём это не значит, что вы будете использовать какую-то нестандартную библиотеку. Встречайте — windows-rs, проект поддерживаемый Microsoft. Ваш билет в мир Windows, если вы пишете на Rust.
Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Просмотры 1.4K
Комментарии 12

Почему онлайн-обучение вытесняет традиционное и как эффективно учиться онлайн?

Блог компании Skypro Учебный процесс в IT Карьера в IT-индустрии Мозг

Еще лет 2030 назад обучение в России редко выходило за рамки школы, техникума, университета и периодических курсов повышения квалификации. Но сегодня все чаще упоминается концепция lifelong learning, или обучение на протяжении всей жизни.

Разбираемся почему онлайн-обучение вытесняет традиционное и как эффективно учиться онлайн?

Читать далее
Всего голосов 5: ↑2 и ↓3 -1
Просмотры 1.4K
Комментарии 3

Во все порты: одна карта и три картридера

Компьютерное железо Накопители
Из песочницы

Казалось бы, выбор картридера очевидным образом влияет на скорость карт памяти: модели с интерфейсом USB 3.x всегда быстрее их предков с USB 2.0, но все ли картридеры USB 3.x одинаково шустрые? Есть ли для них смысл в USB 3.2 Gen 2 (10 Гбит/с), или же это заведомый overkill и маркетинговый шум?

Мне захотелось проверить это на примере работы microSDXC Transcend 340S на 256 ГБ (TS256GUSD340S) с тремя разными картридерами. Для чистоты эксперимента выбрал ридеры той же фирмы (благо, их часто закупают). Ниже привожу результаты тестов, но для начала опишу основные условия их проведения.

Материнка: Asus Maximus VIII Hero (старая, но всё ещё добрая);
Камень: Core i7-7700K на частоте 4500 МГц (45x100x4+HT);
Оперативка: 2 планки по 8 Гб Kingston HyperX DDR4-3466 в двухканальном режиме;
Два твердотельника по полтерабайта: WD Black SN750 (под систему) + TS512GSSD452K (хранилка);
Б/п: SSR-750TR (он же Seasonic Prime TX-750).
Картридеры: Transcend HUB5C, RDF9K2 и RDF5
Операционка: 64-разрядная Win 7 с последними обновками (ESU).

скорее читать дальше!
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 2.3K
Комментарии 2