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

Все потоки

Сначала показывать
Порог рейтинга

От Isolation к Consistency — дорога длиной в 30 лет

SQL *Анализ и проектирование систем *Высокая производительность *

Участвую в стартапе, в котором разрабатывается СУБД нового типа (работает поверх некоторых kv-движков, кардинально расширяя их возможности, про это немного можно прочитать здесь). Для того, чтобы сравнить то, что понемногу получается, с тем, что имеется в индустрии, пришлось на глубоком уровне проработать первоисточники по темам Isolation и Consistency (уточню, что имеется ввиду не та Consistency, что в ACID). Обнаружил интересные нюансы, которые и излагаю в этой статье.


Тезисно:


  • Термин Phantom Read является продуктом испорченного телефона
  • Смысл понятий Lost Update, Write Skew и Read Skew для разделения уровней изоляций неочевиден и относителен
  • Движок, который обеспечивает уровень изоляции Serializable, в распределённом мире может вести себя весьма причудливо, например, всегда возвращать пустой результат для read-only транзакций — и ему за это по стандарту "ничего не будет"
  • Strong consistency в Cosmos DB — предел мечтаний? (спойлер: нет)

Ну, и ещё кое-что по мелочи. В конце рассмотрим вот такой венец творения человеческого разума:


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

Новости

КриптоПро в Linux контейнере для использования КЭП от ФНС

Информационная безопасность *Криптография **nix *Виртуализация *

С Нового Года в России от Индивидуальных Предпринимателей (ИП) и директоров Обществ с Ограниченной Ответственностью (ООО) требуют использовать Квалифицированную Электронную Подпись (КЭП) выданную Федеральной Налоговой Службой (ФНС).

В этой статье речь пойдёт о том, как работать с КЭП от ФНС под Linux без головной боли.

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

«Настоящий» Low-Code: деградация программирования, или назад в будущее?

Программирование *Анализ и проектирование систем *IT-стандарты *Визуальное программирование *

Невозможно ошибиться, если на вопрос о самых сложных программах - упомянуть прошивки FADEC и автопилот Бурана. Что между ними общего? Это ultra-reliable код, исполняемый в RTOS-условиях - то есть буквально апогей программирования с выверенным каждым тактом и несколькими уровнями отказоустойчивости программ. Тем удивительнее, что все программы такого уровня разрабатываются только по Low-Code методикам - и началось это задолго до текущего хайпа.

Ну-ка, ну-ка!
Всего голосов 6: ↑3 и ↓3 0
Просмотры 499
Комментарии 0

Инструмент создания психологически безопасной среды

Agile *
Из песочницы

Всем привет! 

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

Наша работа связана со стрессами по разным причинам. Создавая прозрачность и гибкость, мы сами становимся незащищенными от потока завышеных ожиданий, претензий и недовольства. Тем не менее, оставаться здоровым в нашей профессии - это залог возможности остаться в самой профессии. В этой связи у меня появилась идея организации безопасного, прежде всего, в психологическом смысле, пространства, где коллеги могли бы сбрасывать пар и даже находить решения для самых сложных ситуаций. Ведь именно о таких ситуациях не всегда удобно говорить напрямую, даже несмотря на то, что смелость - это неотъемлемая ценность и сила каждого скрам-мастера. Большая часть нашей команды скрам-мастеров работают удалённо, и это ещё одна причина, из-за которой нужно было организовать эти встречи. 

Формат встречи - митинг, который ведет фасилитатор (в данном контексте мне больше нравится слово ведущий). Остальные участники могут оставлять запросы на помощь или давать эту помощь. Процесс организован с помощью виртуальной доски (мы использовали Lucid), где участники имеют доступ к стикерам. Ведущий строго следит за временем проведения этапов и озвучивает написанное на стикерах. Правила написаны таким образом, чтобы оставаясь инкогнито, можно было получать ответы на сложные вопросы, которые, например, в обычной ситуации, трудно озвучить.

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

Что делать если команда не хочет проводить Ретро? (Часть 1)

Управление разработкой *Управление проектами *Agile *Управление продуктом *

❓Что делать если команда не хочет проводить Ретро?

Это один из самых частых вопросов Скрам-Мастеров.
Понятно, что команда не хочет это делать не со зла. По большому счёту есть две основных причины:

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

Система увлажнения воздуха для дома или квартиры

Умный дом DIY или Сделай сам
Tutorial

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

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

Акелла промахнулся, потому что так надо

Управление персоналом *Карьера в IT-индустрии Читальный зал

Никто никогда не понимал, почему он часто называет себя Акеллой. Списывали на чрезмерное увлечение советской мультипликацией, которую он часто любит цитировать. Но к его капризам уже привыкли, поэтому никто давно не задумывается о смысле его метафор.

Поэтому, когда он на очередном собрании вдруг спросил: «как думаете, почему Акелла?», никто не стал тратить время на размышления. Однако он не унимался, и перефразировал вопрос: «как думаете, что самое сложное в моей работе?».

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

Да, ответ-то… Самое сложное – промахиваться, когда нужно.

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

Нестандартный полиморфизм. Паттерн Type Erasure

C++ *
Из песочницы

Нестандартный полиморфизм. Паттерн Type Erasure.

Посмотрим на проблему, решим ее обычным полиморфизмом и пройдем небольшими шагами к более элегантному решению с помощью современного паттерна.

Читать далее
Всего голосов 4: ↑3 и ↓1 +2
Просмотры 1.1K
Комментарии 17

Telegram WebApps. Как встроить веб-приложения в чат-бота?

Разработка веб-сайтов *Python *JavaScript *Интерфейсы *API *
Из песочницы

Относительно недавно команда Telegram выпустила обновление, с которым появилась возможность встраивать в мессенджер веб-приложения. Эта статья — обзор основных моментов внедрения веб-приложениий в телеграм-ботов.

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

Аббревиатуры и термины в современном проектировании и разработке ПО

Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *
Recovery mode

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

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

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

Разберем некоторые термины и определения.
Они, в свое время были даны в литературе часто цитируемыми, известными и уважаемыми авторами публикаций, инженерами, разработчиками.

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

Дайджест недели от Apple Pro Weekly News (12.12 – 18.12.22)

Гаджеты Компьютерное железо Смартфоны IT-компании

Apple придётся разрешить не только сторонние магазины приложений, новые бета-версии для разработчиков, музыкальный сервис Apple запущен для электромобилей Tesla, а также путешествия Тима Кука по Японии. Эта неделя вышла не самой богатой на события, но нам есть что рассказать, погнали!

Перейти к новостям
Всего голосов 4: ↑4 и ↓0 +4
Просмотры 216
Комментарии 0

Недельный геймдев: #100 — 18 декабря, 2022

Разработка игр *

Из новостей: Voodoo начнёт издавать казуальные и гибридные игры, Cascadeur в полноценный релиз вышел после 10 лет разработки, Microsoft выложили референсную реализацию DirectStorage GDeflate.

Из интересностей: Ziva для анимации, автоматическое текстурирование целых сцен в Blender с помощью StableDiffusion2.

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

Как создать cloud-init шаблон ОС Astra Linux в Proxmox

Настройка Linux **nix *Виртуализация *DevOps *Kubernetes *
Tutorial

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

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

Мишель Сифр. Замурованный

Читальный зал Научно-популярное Мозг Здоровье Биология

Никто не знает, что такое время. Это понятие возникло, когда первый человек обратил внимание: мир здесь и сейчас отличается от мира тогда и там.

Википедия гласит, что время — это форма протекания физических и психических процессов. Философы скажут: время — необратимый поток, направленный из прошлого в будущее. Классическая физика заканчивает спор, объявив: время — фундаментальное свойство мироздания, которое выражается ничем.

Читать далее
Всего голосов 25: ↑21 и ↓4 +17
Просмотры 1.1K
Комментарии 8

Истории

Инверсия зависимостей (dependency inversion principle)

C++ *
Recovery mode

Одним из принципов SOLID является инверсия зависимостей (dip). В литературе по программированию и в интернете масса источников с детальным описанием этого принципа. И большинство кандидатов на собеседовании успешно отвечают заученными фразами на вопрос: "Что такое инверсия зависимости?". Но при практической реализации мгновенно возникает вопрос, а в чем же собственно заключается инверсия и как она программируется? Далее будет рассмотрен данный принцип более подробно.

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

Изучаем PostgreSQL. Часть 1. Знакомимся с архитектурой

Блог компании OTUS PostgreSQL *SQL *
Tutorial

 На сегодняшний день существует большое количество различных систем управления базами данных - СУБД, от коммерческих до открытых, от реляционных до новомодных NoSQL и аналогичных.

Одним из лидеров направления СУБД является PostgreSQL и ее различные ответвления, о некоторых из которых мы рассмотрим подробнее.

В этой статье мы начнем говорить о СУБД PostgreSQL, рассмотрим отличия редакций и некоторые особенности архитектуры, а также процесс установки. Но начнем мы с небольшого ликбеза для того, чтобы читатели плохо знакомые с терминологией баз данных могли быстро войти в курс дела.

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

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

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

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

Ямадзаки Сюмпэй: история самого плодовитого японского изобретателя новейшего времени

Блог компании Онлайн Патент Читальный зал Патентование *Научно-популярное

Сюмпэй (иногда встречается написание Шунпей) Ямадзаки — японский изобретатель, родившийся в 1942 году. Он до сих пор управляет своим бизнесом и изобретает до сих пор. Сейчас изобретателю-рекордсмену около 80 лет, но он продолжает развивать свою компанию, следить за современными трендами в сфере электроники и дарить миру всё новые и новые идеи. Рассмотрим подробнее его историю, личность и наследие. 

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

От «Бурана» до мейнфрейма: история отказоустойчивости в космосе и на земле

Блог компании CloudMTS IT-инфраструктура *Резервное копирование *История IT Научно-популярное
image

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

Впервые об отказоустойчивости начали говорить в XIX веке — еще до появления первых ЭВМ. В 1837 году английский математик и изобретатель Чарльз Бэббидж опубликовал научную работу, где упомянул отказоустойчивость — fault tolerance — математических вычислений.

Мы решили поговорить об этом подробнее — рассказать об отказоустойчивых системах, разработанных во времена, когда не было привычных суперкомпьютеров, дата-центров и всего интернета.

Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 1.2K
Комментарии 2

Как оптимизировать работу Stable Diffusion при помощи текстовой инверсии

Блог компании RUVDS.com Обработка изображений *Машинное обучение *Искусственный интеллект
Перевод
Изображение, сгенерированное AI по промпту «photograph of a robot drawing in the wild, nature, jungle» («фотография робота, рисующего в природе, джунглях»)

22 августа 2022 года Stability.AI объявила о публичном релизе Stable Diffusion — мощной диффузионной модели text-to-image. Модель способна генерировать различные варианты изображений на основании текстового или графического ввода.

Стоит заметить, что «модель выпущена под лицензией Creative ML OpenRAIL-M. Лицензия допускает коммерческое и некоммерческое использование. Ответственность за этическое использование модели лежит на разработчиках. Это относится и к производным от неё моделям».

В этой статье я расскажу, как точно настраивать эмбеддинги для создания персонализированных изображений на основании произвольных стилей или объектов. Вместо переучивания модели мы можем представить собственный стиль в виде новых слов в пространстве эмбеддингов модели. В результате этого новое слово будет руководить созданием новых изображений интуитивно понятным образом.
Читать дальше →
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 643
Комментарии 0

Тестирование мобильных приложений на Flutter с использованием Python + Appium

Блог компании OTUS Python *Dart *Тестирование мобильных приложений *Flutter *

Тестирование нативных мобильных приложений для Android и iOS обычно обеспечивается библиотеками UiAutomator2 и XCUITest, но сейчас, в связи с появлением мобильных приложений, разработанных с использованием Flutter Framework, использовать их для тестирования становится затруднительно, поскольку семантическая информация, публикуемая Flutter, в большинстве случаев недостаточна для однозначной идентификации виджетов и взаимодействия с ними. В этой статье мы рассмотрим возможности драйвера appium-flutter-driver для тестирования flutter-приложений, разберемся с использованием виджетов описания семантики и разработаем несложные тесты на Python с использованием Appium.

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