Событийный автомат на страже жизненного цикла

Автор: admin от 29-11-2018, 21:10, посмотрело: 42

Дисклеймер: Эта статья описывает неочевидное решение неочевидной проблемы. Прежде чем бросаться яйцами применять его на практике, рекомендую дочитать статью до конца и дважды подумать.

Событийный автомат на страже жизненного цикла



Всем привет! При работе с кодом, нам часто приходится иметь дело с состоянием. Один из таких случаев — жизненный цикл объектов. Управление объектом с несколькими возможными состояниями может быть весьма нетривиальной задачей. Добавьте сюда асинхронное исполнение и задача усложняется на порядок. Есть эффективное и естественное решение. В этой статье я расскажу о событийном автомате и как его реализовать в Go.

Категория: Программирование

 

Справочная: космическая обсерватория «Кеплер» — железо, связь с Землей, ПО и результаты работы

Автор: admin от 29-11-2018, 19:50, посмотрело: 43

Справочная: космическая обсерватория «Кеплер» — железо, связь с Землей, ПО и результаты работы


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

Категория: Железо

 

Ceph. Анатомия катастрофы

Автор: admin от 29-11-2018, 18:05, посмотрело: 48

Ceph — это object storage, призванный помочь построить отказоустойчивый кластер. И все-таки отказы случаются. Все, кто работает с Ceph, знают легенду о CloudMouse или Росреестре. К сожалению, делиться отрицательным опытом у нас не принято, причины провалов чаще всего замалчивают, и не дают будущим поколениям научиться на чужих ошибках.



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

Ceph. Анатомия катастрофы


Далее вы найдете видео и текстовую версию одного из лучших докладов DevOpsConf Russia 2018.



Категория: Информационная безопасность

 
 

Доступ к сетям сигнализации SS7 через радиоподсистему – теперь это возможно

Автор: admin от 29-11-2018, 18:05, посмотрело: 43

Доступ к сетям сигнализации SS7 через радиоподсистему – теперь это возможно



Изображение: Pexels




О безопасности сигнальных сетей SS7 мы (и не только мы) говорим достаточно давно, однако до сих пор есть много скептицизма: «никто не может получить доступ к SS7», «если даже кто-то получит доступ к SS7 и начнет вести нелегитимную активность, его сразу заблокируют в операторе-источнике» и даже «GSMA за всеми следит и, если что, даст по башке тому, кто этим занимается».



Однако на практике в проектах по мониторингу безопасности мы видим, что злоумышленники могут иметь подключение к сети SS7 в недрах одного оператора годами. Более того, злоумышленники не дожидаются, когда их подключение обнаружат и заблокируют в одном операторе-источнике, они параллельно ищут (и находят) подключения в других операторах, и могут работать параллельно по одним целям сразу из нескольких мест.

Категория: Информационная безопасность

 

Как выруливать с legacy code, когда проект нужно было на вчера

Автор: admin от 29-11-2018, 17:00, посмотрело: 34

Привет. Меня зовут Иван Мельничук, я Head of Development Department в украинской IT-компании. В публикации хочу поделиться личными профессиональными подходами относительно решения вопроса legacy code в условиях стремительного развития проекта и рассказать о приемах, к которым прибегает наша команда в случаях “когда фичи нужно сдавать “на вчера”.



Разбираемся с проектом



Для того, чтобы передать насколько аккуратной, продуманной и кропотливой, должна быть работа с легаси, приведу аналогию с карточным домиком.



Как выруливать с legacy code, когда проект нужно было на вчера


Именно так выглядит устаревший код. Если мы решим убрать или заменить хотя бы одну карту из этой постройки, мы рискуем завалить весь дом и сровнять его остатки с землей.



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

Категория: Программирование

 

Литье под давлением c пленками (IMD): как это работает

Автор: admin от 29-11-2018, 16:45, посмотрело: 44

Литье под давлением c пленками (IMD): как это работает


Продолжаем делиться опытом в сфере серийного производства корпусов для электроники. В прошлой статье мы на пальцах объясняли, как работает машина для литья под давлением, и показывали типичные ошибки в дизайне корпуса для отливки в пресс-форме. На этот раз сфокусируемся на технологии IMD (In-Mold Decoration) — так называется литье пластиковых изделий с использованием специальной пленки для создания различных визуальных эффектов и укрепления конструкции.



Под катом — краткий обзор технологии и десяток фотографий прямо из производственного цеха на китайской фабрике.

Категория: Веб-разработка

 

Счетчик Фейсбук-лайков из старого электросчетчика

Автор: admin от 29-11-2018, 16:40, посмотрело: 35

Мы сделали физический счетчик лайков страницы в Facebook. Из старого электросчетчика. В основе программируемая плата Iskra Neo от Амперки (аналог Ардуино) и сервомотор постоянного вращения.

Категория: Сделай Сам

 

Эффективное управление транзакциями в Spring

Автор: admin от 29-11-2018, 16:20, посмотрело: 73

Всем добрый день!



Что ж, конец месяца у нас всегда интенсивные, вот и тут остался всего день до старта второго потока курса «Разработчик на Spring Framework» — замечательного и интересного курса, который ведёт не менее прекрасный и злой Юрий (как его называют некоторые студент за уровень требований в ДЗ), так что давайте рассмотрим ещё один материал, который мы подготовили для вас.



Поехали.



Введение



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



Важный аспект в управлении транзакциями — определение правильных границы транзакции, когда транзакция должна начинаться и когда заканчиваться, когда данные должны быть добавлены в БД и когда они должны быть откачены обратно (в случае возникновения исключения).



Эффективное управление транзакциями в Spring

Категория: Программирование

 

External — GUI для Golang

Автор: admin от 29-11-2018, 16:20, посмотрело: 63

Приветствую вас, коллеги!



Около месяца назад я опубликовал здесь статью GUI-фреймворки — на поток, где предлагалась технология создания GUI-фреймворков для разных языков программирования, основанная на подключении (tcp/ip или каком другом) к внешнему процессу, играющему роль своеобразного GUI-сервера. Здесь я хочу представить конкретную реализацию этой идеи — новый GUI-фреймворк для GolangExternal.



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

Категория: Программирование

 
Назад Вперед