Рубрика «Программирование» - 419

* Michael G. Noll — активный контрибьютор в Open Source проекты, в том числе в Apache Kafka и Apache Storm.

Статья будет полезна в первую очередь тем, кто только знакомится с Apache Kafka и/или потоковой обработкой [Stream Processing].

В этой статье, возможно, в первой из мини-серии, я хочу объяснить концепции Стримов [Streams] и Таблиц [Tables] в потоковой обработке и, в частности, в Apache Kafka. Надеюсь, у вас появится лучшее теоретическое представление и идеи, которые помогут вам решать ваши текущие и будущие задачи лучше и/или быстрее.

Содержание:

* Мотивация
* Стримы и Таблицы простым языком
* Иллюстрированные примеры
* Стримы и Таблицы в Kafka простым языком
* Пристальный взгляд на Kafka Streams, KSQL и аналоги в Scala
* Таблицы стоят на плечах гигантов (на стримах)
* Turning the Database Inside-Out
* Заключение
Читать полностью »

image

История создания

Змейка (Питон, Удав), как ее называют в народе, одна из первых игр цифровой (компьютерной) эпохи середины 70-ых годов. В то время игры выпускались на отдельном игровом автомате с одной игрой, а сам автомат был под нее стилизован. Примерами таких игр, кроме Snake, являются Space Invaders, Pac-Man, Arkanoid и другие.

Игра Змейка имеет незамысловатый геймплей. Игрок управляет длинной линией с изгибами в 90 градусов с целью «поедания» все большего числа кроликов, представленых в виде точек на экране, от чего увеличивается длина Змейки. Сложность заключается в том, что Змейка не может пересекать саму себя.
Читать полностью »

image

На момент появления в Apache Software Foundation проекта Ignite он позиционировался как чистое in-memory-решение: распределенный кэш, поднимающий в память данные из традиционной СУБД, чтобы выиграть во времени доступа. Но уже в релизе 2.1 появился модуль встроенной персистентности (Native Persistence), который позволяет классифицировать Ignite как полноценную распределенную базу данных. С тех пор Ignite перестал зависеть от внешних систем обеспечения персистентного хранения данных, и вязанка граблей конфигурации и администрирования, на которые не раз наступали пользователи, исчезла.

Однако persistent-режим порождает свои сценарии и новые вопросы. Как предотвратить неразрешимые конфликты данных в ситуации split-brain? Можем ли мы отказаться от перебалансировки партиций, если выход узла теперь не означает, что данные на нем потеряны? Как автоматизировать дополнительные действия вроде активации кластера? BaselineTopology нам в помощь.

Читать полностью »

У каждого опытного разработчика есть набор инструментов, к которым он привык и с которыми ему удобно работать. Это может быть простейшая настройка окружения, утилиты для промежуточных операций (к примеру, помощник по тестированию API Postman), проверенные временем и лично разработчиком библиотеки и сниппеты.
Также у многих разработчиков может быть свой подход к реализации выбранной архитектуры. Поэтому очень полезно иметь в своем арсенале заготовку приложения – общий скелет, к которому останется только добавлять новые модули, экраны и фичи. В этом материале я расскажу, как создать собственный шаблон приложения в Xcode.

Читать полностью »

image

Это вторая часть статьи, в которой я показываю, как использование RxJava2 помогает строить логику поверх асинхронного API. В качестве такого интерфейса я выбрал Android Camera2 API (и не пожалел!). Этот API не только асинхронен, но и таит в себе неочевидные особенности реализации, которые нигде толком не описаны. Так что статья нанесет читателю двойную пользу.

Для кого этот пост? Я рассчитываю, что читатель — умудрённый опытом, но всё ещё любознательный Android-разработчик. Очень желательны базовые знания о реактивном программировании (хорошее введение — здесь) и понимание Marble Diagrams. Пост будет полезен тем, кто хочет проникнуться реактивным подходом, а также тем, кто планирует использовать Camera2 API в своих проектах.  

Исходники проекта можно найти на GitHub.

Чтение первой части обязательно!

Читать полностью »

Доброго дня!

Намедни наш замечательный Виталий Чибриков в рамках его курса «Разработчик Java» провёл открытый урок, где разобрал в чём же польза паттернов в проектировании и вне, на примере нескольких из них в формате: постановка проблемы, решение и пример для каждого.

Если есть какие-то вопросы, то можете задать их тут или завтра на Дне открытых дверей.

Читать полностью »

Книга «Безопасность в PHP» (часть 3). Межсайтовый скриптинг (XSS) - 1

Книга «Безопасность в PHP» (часть 1)
Книга «Безопасность в PHP» (часть 2)

Межсайтовый скриптинг (XSS) — пожалуй, самый типичный вид уязвимостей, широко распространённых в веб-приложениях. По статистике, около 65 % сайтов в той или иной форме уязвимы для XSS-атак. Эти данные должны пугать вас так же, как пугают меня.

Читать полностью »

«ЭТО_». Как устроен офис кузбасских IT-компаний - 1

Ответьте на вопрос, какие первые ассоциации возникают у вас при упоминании Кузбасса? Скорее всего вы вспомните о угольных шахтах и чумазых лицах шахтеров. Но Кемеровская область давно уже стала центром IT-технологий Сибири благодаря местному интернет-провайдеру Good Line. Всего за несколько лет компания построила в центральном районе Кемерово современный офис ничуть не уступающий знаменитым офисам крупных IT-компаний. Мы съездили в Кемерово и своими глазами увидели “ЭТО_”. Под катом рассказ о том, как и где трудится кемеровский айтишник. Будет много красочных фото.
Читать полностью »

Как программирование влияет на мозг и мышление - 1

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

Как занятия искусствами могут по-разному менять ваше мышление, так и программирование влияет на ваш образ мыслей — возможно, не так, как вы ожидали.
Читать полностью »

Здравствуйте, меня зовут Дмитрий Карловский и это продолжение традиционной рубрики "Почему мы так не любим писать тесты?". Короткий ответ: потому, что получаемые от них бонусы не перевешивают затрачиваемых усилий. Если это так, значит мы делаем что-то не правильно. Давайте разберёмся что же могло пойти не так..

Картинка для привлечения внимания

Данная заметка выросла из главы "Заблуждения" лонгрида "Концепции автоматического тестирования", посредством дополнения новыми заблужениями и аргументами.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js