Обновить
0
0

Пользователь

Отправить сообщение

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

Время на прочтение6 мин
Охват и читатели7K

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

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

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

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

Время на прочтение8 мин
Охват и читатели4.1K

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

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

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

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

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели198K


Peace, Хабр!


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


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


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

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

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

Время на прочтение10 мин
Охват и читатели15K

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

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

Читать далее

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

Время на прочтение13 мин
Охват и читатели4K

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

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

Читать далее

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

Время на прочтение8 мин
Охват и читатели18K

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

Читать далее

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

Время на прочтение6 мин
Охват и читатели56K

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

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

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

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

Читать далее

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

Время на прочтение14 мин
Охват и читатели12K

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

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

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

Читать далее

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

Время на прочтение12 мин
Охват и читатели3.4K

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

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

Гидропоника. Персидская принцесса Сорая, или как из семян вырастить премиальную клубнику

Время на прочтение7 мин
Охват и читатели43K

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

Почему из семян? Проще не заморачиваться, а купить рассаду! - скажут некоторые. Но увы, с покупной рассадой не всё так просто, как может показаться с первого взгляда. Главная проблема покупной рассады - грибковые болезни и наличие яиц или личинок вредителей. Даже приобретая рассаду с известных европейских питомников Вы рискуете получить заражённые растения, и занести к себе на садовый участок нежеланных гостей в виде трипсов, паутинного клеща, цикадок, белокрылки и иже с ними.

Читать далее

Кадрим девчонок с помощью метрики Эллиса-Бронникова

Время на прочтение11 мин
Охват и читатели30K

Ничто так не вызывает интерес у противоположного пола, как страстные разъяснения физики кротовых нор.

Читать далее

Хотели как в FAANG, а вышло как всегда или Опыт собеседования в Тинькофф в 3 актах

Время на прочтение9 мин
Охват и читатели144K

Предисловие Около года назад я задался целью получить оффер от FAANG. Как следствие, постоянной частью моей жизни стали тематические форумы, площадки и вся сопутствующая атрибутика. Спустя какое-то время я попробовал себя на собеседованиях в околоFAANGoвые компании: Lyft, Spotify, Booking и т. д, где-то успешно, где-то не очень. В это же время мне порекомендовали попробовать пройти собеседование в Тинькофф банк, который внедрил схожий процесс. После стандартного общения с HR менеджером была получена ссылка на описание процесса собеседования. “Хм, почти что FAANG + тех. интервью по Primary Skill”, - подумал я и сказал, что готов приступать. В тот же час было назначено 2 интервью: техническое и coding, а вот 3 этап, system design, нужно было заслужить успешным прохождением первых двух. Почему именно эти 2 части являлись основополагающими, осталось неясным.

Акт первый, технический

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

Читать далее

ICFP Contest 2020 от идеи до воплощения. Как организовать контест и выжить

Время на прочтение17 мин
Охват и читатели6.1K


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

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

Какую СУБД выбрать и почему? (Статья 1)

Время на прочтение6 мин
Охват и читатели93K

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

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

Читать далее

Простое объяснение теоремы Байеса

Время на прочтение6 мин
Охват и читатели116K
Подробно теорема Байеса излагается в отдельной статье. Это замечательная работа, но в ней 15 000 слов. В этом же переводе статьи от Kalid Azad кратко объясняется самая суть теоремы.

  • Результаты исследований и испытаний – это не события. Существует метод диагностики рака, а есть само событие — наличие заболевания. Алгоритм проверяет, содержит ли письмо спам, но событие (на почту действительно пришел спам) нужно рассматривать отдельно от результата его работы.
  • В результатах испытаний бывают ошибки. Часто наши методы исследований выявляют то, чего нет (ложноположительный результат), и не выявляют то, что есть (ложноотрицательный результат).
  • С помощью испытаний мы получаем вероятности определенного исхода. Мы слишком часто рассматриваем результаты испытания сами по себе и не учитываем ошибки метода.
  • Ложноположительные результаты искажают картину. Предположим, что вы пытаетесь выявить какой-то очень редкий феномен (1 случай на 1000000). Даже если ваш метод точен, вероятнее всего, его положительный результат будет на самом деле ложноположительным.
  • Работать удобнее с натуральными числами. Лучше сказать: 100 из 10000, а не 1%. При таком подходе будет меньше ошибок, особенно при умножении. Допустим, нам нужно дальше работать с этим 1%. Рассуждения в процентах неуклюжи: «в 80% случаев из 1% получили положительный исход». Гораздо легче информация воспринимается так: «в 80 случаях из 100 наблюдали положительный исход».
  • Даже в науке любой факт — это всего лишь результат применения какого-либо метода. С философской точки зрения научный эксперимент – это всего лишь испытание с вероятной ошибкой. Есть метод, выявляющий химическое вещество или какой-нибудь феномен, и есть само событие — присутствие этого феномена. Наши методы испытаний могут дать ложный результат, а любое оборудование обладает присущей ему ошибкой.
Читать дальше →

[Личный опыт] Биотех, велосипеды, датский национализм: как живётся разработчику в Копенгагене

Время на прочтение19 мин
Охват и читатели12K

Задача: найти работу за границей, с амбициозными челленджами и высокой зарплатой, ближе к европейской части России и простыми условиями релокейта. Какие есть варианты?


Наш герой искал возможность начать международную карьеру. И оказался… в Дании! Плюсы: размеренность жизни, мягкий климат и высокий доход. Минусы: всё те же мягкий климат и скандинавское спокойствие, а ещё произношение: датчане говорят, будто набив горячей картошкой рот. Оправдались ли ожидания от страны? Как переехать в Копенгаген и стоит ли? Передаём слово Диме.




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

[Личный опыт] Свой среди чужих: как встроиться в шведское общество

Время на прочтение15 мин
Охват и читатели27K

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


Швеция считается самой закрытой страной среди европейских. Спросили инженера, который 2 года назад уехал работать в Spotify, удалось ли ему вписаться в местную культуру, и как это сделать тем, кто только собирается переехать к суровым северянам. Рассказывает Константин Голиков.




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

Подготовка к собеседованиям в IT-гиганты: как я преодолела проклятье алгоритмического собеседования

Время на прочтение12 мин
Охват и читатели211K

Дисклеймер:


Я не программирую с трёх лет, не знаю наизусть Кнута, не являюсь призёром олимпиад по информатике и чемпионатов по спортивному программированию, не училась в MIT. У меня за плечами образование по информатике и 6 лет опыта в коммерческой разработке. И до недавнего времени я не могла пройти дальше первого технического скрининга в IT-гиганты из FAANG (Facebook, Amazon, Apple, Netflix, Google и подобные), хотя предпринимала несколько попыток. 

Но теперь всё изменилось, я получила несколько офферов и хочу поделиться опытом, как можно к этому прийти. Речь пойдёт о позиции Software Engineer в европейских офисах перечисленных компаний.
Читать дальше →

Как успешно пройти собеседование на английском в ИТ?

Время на прочтение5 мин
Охват и читатели29K

У нас в компании много иностранных проектов. Пройти интервью не всегда легко, даже если много и регулярно общаешься на английском. Поэтому наша команда преподавателей создала курс Project Interviews in English, который мы решили сделать доступным для всех желающих. Меня зовут Инна, я координировала создание курса и сегодня поделюсь  полезными советами из него.

Читать далее

Мой MikroTik – моя цифровая крепость (часть 1)

Время на прочтение10 мин
Охват и читатели164K
В статье рассмотрены различные подходы к организации практической безопасности сетей, построенных на оборудовании MikroTik, в том числе при помощи дополнительного открытого программного обеспечения, расширяющего имеющиеся штатные возможности, что в комплексе позволяет качественно администрировать сетевые средства, а также своевременно реагировать на различные угрозы информационной безопасности.
Читать дальше →

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность