Search
Write a publication
Pull to refresh
0
0
Send message

Где ещё можно найти материалы про GridGain и Apache Ignite

Reading time1 min
Views1.2K

Быстрее всего статьи, написанные сотрудниками GridGain, появляются в глобальном корпоративном блоге. Короткие видео и выступления на английском языке можно найти на корпоративном канале Youtube. Apache Ignite и GridGain тьюториалы выложены здесь, а для демо отведен отдельный репозиторий.

В 2014 году компания GridGain Systems передала в Apache Software Foundation разработанный ее сотрудниками код — платформу для вычислений в оперативной памяти. Так появился Apache Ignite Сотрудники компании GridGain продолжают участвовать в развитии проекта. Если у вас есть вопрос про Apache Ignite, на user list или на Stack Overflow вам весьма вероятно ответит контрибьютор, работающий в GridGain. У русскоязычного сообщества также есть свой Телеграм-чат и Youtube-канал с записями докладов.

Читать далее

Математические аспекты хорошего кода

Reading time7 min
Views6.9K

Программисты постоянно стараются сделать код лучше, используя для этого различные практики. Однако само понятие хорошего кода крайне расплывчато, о чём свидетельствует одно только количество книг, посвящённых этой теме, а также их объём. Например, книга "Чистый код'' Р. Мартина содержит почти 500 страниц. Неужели нет возможности выразить хотя бы основные критерии хорошего кода короче?

Чтобы обнаружить такие критерии, нужно обратить внимание на тот факт, что программирование есть отражение мышления. Целесообразно поискать критерии хорошего кода в модели, которая описывает ключевые моменты этого явления.

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

Кроме того, для мышления необходимы память и время. Любая модель мышления (модель вычислений) обязана включать эти два понятия. Действительно, в машине Тьюринга роль памяти играет лента, а роль времени – головка. Аналогично, в современном компьютере эти две роли выполняют RAM и CPU, соответственно.

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

Читать далее

Обзор ретро-футуристичного КПК DevTerm с Linux

Reading time6 min
Views16K

Команда ClockworkPI выпустила интересный карманный девайс с ОС Linux, который легко собирается без паяльника, имеет экран с разрешением 1280х480, предлагает богатые возможности для кастомизации и даже оснащён неожиданным диковинным модулем — термальным принтером.
Читать дальше →

Scala: Авторизация. Защита API с помошью Bearer токена

Reading time3 min
Views4.4K

В это пример я буду рассматривать только парсинг и валидацию токенов что уже пришли в мое API в Authorization хедере. Для генерации токенов, регистрации пользователей и прочего SSO есть много готовых решений которые легко установить или даже устанавливать не надо. Например, Auth0, Keyckloak, IdentityServer4. В пример е буду работать с Tapir который может использовать в качестве бекенда http4s, Akk HTTP, Netty, Finatra, Play, ZIO Http, Armeria. Я буду использовать Tapir + Http4s.

Читать далее

Как улучшить межсерверное взаимодействие и сэкономить время разработчика

Reading time11 min
Views8.2K

Привет! Я Алексей, Java-разработчик. В статье поделился опытом внедрения подхода Contract-First в backend. 

Под катом подробности:

— что такое Code-First и зачем переходить на Contract-First,

— как перестать писать API-объекты руками и сэкономить 12 человеко-недель в спринт,

— как поддерживать однотипный код и API, если у вас 100+ микросервисов и 60 бэкендеров.

Читать о внедрении Contract-First

Как устроена архитектура финтех-сервисов с uptime 99,9%

Reading time1 min
Views9K

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

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

Во втором докладе руководитель департамента эксплуатации объясняет, как у нас всё работает: какое железо стоит в дата-центрах и какие технические решения мы используем для uptime 99,9%.

Заглядывайте под кат, приятного вам просмотра!

Смотреть доклады про архитектуру

План самостоятельного обучения DDD, CQRS, EventSourcing

Reading time7 min
Views55K

Если вы собрались плотно погрузиться в тему Doman Driven Design (DDD), о том как его применять, как использовать, для чего он нужен, и как с ним связаны Command and Query Responsibility Segregation (CQRS), Event Sourcing и другие термины из мира DDD то можно воспользоваться планом обучения, который последовательно погрузит вас в эти темы и поможет сориентироваться. Часть информации на русском, часть на английском языке, так как русскоязычных аналогов я не смог найти.

Погрузиться в DDD

И маленькому стартапу, и большому энтерпрайзу — Кафка, которую нужно знать

Reading time5 min
Views10K

Можно ли использовать Apache Kafka в качестве базы данных и какое у Кафки будущее? Провели небольшое интервью с нашим экспертом Георгом Гаалом. Он ответил на эти вопросы, а ещё рассказал о сильных и слабых сторонах платформы, возможностях её масштабирования и о том, кому надо изучать Кафку, а кому не стоит.

Читать далее

Как айтишнику выжить в Африке: пошаговая инструкция

Reading time11 min
Views11K

Привет, я Никита, инженер в отделе интеграции в STM Labs.


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


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


Читать дальше →

Как учиться быстрее: пять научно доказанных способов ускорить запоминание информации и формирование навыков

Reading time4 min
Views30K

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

Читать далее

Кеширование данных между микросервисами в бессерверной архитектуре

Reading time6 min
Views6K

При реализации микросервисов организациям приходится перестраивать архитектуру традиционных монолитных приложений. Это помогает повысить гибкость и масштабируемость сервисов и быстрее выводить на рынок новые возможности.

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

Читать перевод далее

Пишем простой счетчик для сайта или приложения с помощью Google Cloud Functions и AWS Lambda/Snowflake

Reading time8 min
Views3.7K

Как работают популярные счетчики веб или мобильной аналитики, например, Google Analytics или AppsFlyer? На сайт устанавливаются их коды или в приложение интегрируется мобильное SDK. Потом при каждом действии клиента отправляется http запрос на сервер аналитики.

У использования стандартных счетчиков/пикселей есть минусы:

некоторые посетители используют анонимайзеры, которые блокируют такие запросы;

их сложно кастомизировать под себя.

В этой статье мы напишем собственный простой счетчик, который будет решать эти проблемы. Встроим его в PowerBI отчеты. Но принцип одинаков, его можно будет использовать и на веб-сайте, и в приложении, и в других  устройствах с доступом к интернету. Попробуем две точки сбора событий, чтобы изучить больше технологий: Google Cloud Function, которая будет писать события в Google BigQuery, и Amazon Lambda Functions с записью событий в Snowflake.

Читать далее

Россия 2022: как не потерять все (или хотя бы попытаться)

Reading time6 min
Views196K


Peace, Хабр!


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


Сегодня пошел 8-ой день, как от этой уверенности почти ничего не осталось.


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

Читать дальше →

RabbitMQ Streams для сбора и обработки телеметрии умного дома

Reading time10 min
Views12K

Традиционно для сценариев поточной обработки с использованием Map-Reduce рассматриваются такие решения как Hadoop/Spark, либо используются конвейерные системы (например Kafka), для которых есть возможность реализовать концепцию потоков (streams) с помощью дополнительных инструментов (в случае с Kafka это Kafka Connect (для подключения к источникам и получателям потока) и Kafka Streams для реализации Map-Reduce на потоке сообщений.

Начиная с версии 3.9 RabbitMQ анонсировал поддержку нового типа очереди, оптимизированного для поточной обработки. В этой статье мы посмотрим на основные отличия очередей RabbitMQ от классического режима очереди сообщений, а также возможные сценарии использования (с примерами кода на Go).

Читать далее

DeepETA: как Uber прогнозирует ETA с использованием глубокого обучения

Reading time13 min
Views3.7K

Прим. Wunder Fund: В сегодняшней статье рассказываем, как Уберу удается точно предсказывать время прибытия такси или курьера. Мы нашли её очень увлекательной, как и несколько других статьей из технического блога Убера.

Волшебный клиентский опыт пользователей Uber зависит от точного прогнозирования ожидаемого времени прибытия (Estimated Time of Arrival, ETA) автомобиля. Мы используем ETA для расчёта тарифов, для оценки времени подачи автомобилей, для стыковки пассажиров и водителей, для планирования доставок и для многого другого. Традиционные системы маршрутизации вычисляют ETA путём разделения дорожной сети на маленькие сегменты, представленные взвешенными рёбрами графа. Эти системы используют алгоритмы поиска кратчайшего пути для нахождения наилучшего пути на графе и складывают веса для получения ETA. Но, как всем известно, карта — это не то же самое, что поверхность Земли: граф дорог — это всего лишь модель, она не способна идеально соответствовать реальности. Более того — мы можем не знать о том, какой именно маршрут к пункту назначения выберет конкретный пассажир или водитель. Обучая ML-модели (Machine Learning, машинное обучение) на базе прогнозов, построенных с применением графов дорог, применяя исторические данные в комбинации с данными, получаемыми в режиме реального времени, мы можем уточнить расчёт ETA, приблизить расчётные показатели к реальным.

Читать далее

Рисуем генеративные грибы на javascript

Reading time8 min
Views18K

Продолжаю делиться своим опытом погружения в мир генарта и nft, на этот раз при помощи генеративных грибов. Для тех кто не совсем в теме хотя бы одного из этих слов, предлагаю сначала посмотреть мою предыдущую публикацию, а в этой статье я постараюсь больше сосредоточиться не на философии того, что вообще происходит, а на технической реализации процедурной 3д графики в three js.

Читать далее

Как получил оффер от Microsoft

Reading time6 min
Views54K

О чем эта статья

Это продолжение моих похождений по ФААНГ. Предыдущая статья была о моем опыте собеседования в Амазоне.

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

К слову, все собеседования тоже сейчас проходят онлайн, и никаких онсайт интервью нет.

Читать далее

Уроки абстракции: чему FP может научить ООП

Reading time14 min
Views12K

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

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

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

Читать далее

Холодные запуски AWS Lambda — решение проблемы

Reading time12 min
Views3.1K

Холодные запуски могут оказаться губительными для производительности AWS Lambda, особенно если вы создаёте клиентоориентированное приложение, которое должно работать в режиме реального времени. Представьте себе, что пользователь отправил приложению запрос, а ваша функция AWS Lambda ещё не запущена. В таком случае система AWS должна будет сначала развернуть ваш код и запустить новый контейнер — и только после этого выполнит запрос. Соответственно, выполнение запроса может занять гораздо больше времени: Lambda-функция начнёт работать только тогда, когда для неё будет готов контейнер.

Читать перевод далее

Information

Rating
Does not participate
Registered
Activity