Search
Write a publication
Pull to refresh
170
4

java / open source

Send message

SQL HowTo: считаем «уников» на интервале

Reading time4 min
Views9.9K

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

Искать в большом количестве фактов «уники» — всегда сложно и долго, если их достаточно много. Если интервалы фиксированы (календарные месяц/квартал/год), можно материализовывать такие агрегаты заранее. А если интервал — произвольный, как тогда эффективно найти ответ?

Читать далее

Почему десктопные приложения работают на веб-платформе?

Level of difficultyMedium
Reading time8 min
Views36K

Где мы свернули не туда? Как получилось, что современный десктопный GUI по умолчанию использует платформу HTML/CSS/JavaScript, которая изначально не предназначена для нативной работы на десктопе? Она создана конкретно для браузера и веба. Зачем из нативного софта делать веб-страницы в браузерной оболочке?

Джефф Этвуд (автор Stack Overflow) предсказал этот феномен ещё в 2007 году. Он тогда сформулировал так называемый закон Этвуда:

Любое приложение, которое можно написать на JavaScript, будет в итоге написано на JavaScript.

Так и вышло.
Читать дальше →

Уволился и уехал на «раннюю пенсию» в Португалию два года назад. Что было дальше?

Level of difficultyEasy
Reading time16 min
Views57K

"Reduce the complexity of life by eliminating the needless wants of life, and the labors of life reduce themselves." - Edwin Way Teale

Примерно два года назад в декабре 2020 года я ушел с работы и решил попробовать пожить на доход с капитала следуя "правилу 4%". Как-то незаметно прошло два года и у меня появилось желание подвести какие-то промежуточные итоги. Далее я в не очень структурированном виде изложу некоторые промежуточные итоги после первых двух лет "жизни на доход с капитала" или "ранней пенсии".

Читать далее

Не царская у тебя физиономия! Функции потерь для задачи распознавания лиц

Reading time10 min
Views20K

Кадр из фильма "Иван Васильевич меняет профессию"


Помните этот момент из легендарного произведения Гайдая? Удивительно, насколько по-разному может восприниматься один и тот же человек с одним и тем же лицом. А когда речь идет о миллионах разных людей и нужно найти одного единственного — даже человек уже бессилен, а сверточные нейросети продолжают справляться. Такое большое количество лиц вынуждает искать новые подходы к разграничению. Один из таких подходов — модификации функций потерь, которые помогают нам не потонуть в огромных датасетах при распознавании лиц, довольно точно определяя, кто есть кто.


Под катом мы рассмотрим различные модификации кросс-энтропии для задачи распознавания лиц.

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

Слушаем ZX Spectrum музыку с MIDI-плеера

Level of difficultyMedium
Reading time9 min
Views6.6K

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

Все более-менее полезные и выглядящие целыми детали были сняты, в том числе и музыкальный сопроцессор YM2149F. И как раз в нужный момент попалась статья @Z80A о сборке плеера на базе Arduino, который я незамедлительно начал собирать.

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

Однако, недавно мне попалась интересная штуковина — Casio FD-1. Это MIDI-плеер, играющий файлы с дискет в обычный MIDI-порт со штекером типа DIN-5.

Попробуем её приспособить для прослушивания музыки со спектрума!

LD DE, _ARTICLE : LD HL, _BRAIN : LDIR

Приходите на PGConf.Russia 2023

Reading time3 min
Views2.8K

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

Читать далее

Что не так с умными колонками и голосовыми ассистентами?

Reading time8 min
Views40K

Если вы когда-нибудь слышали фразу "дьявол в деталях", вы понимаете, что условная Лада Гранта от условного Мерседеса отличается не более, чем на несколько процентов. Фактически обе машины ездят и возят своих пассажиров - это и есть главная их функция. Но внимание к мелочам и продуманный пользовательский опыт (UX) это и есть те самые несколько процентов, которые так разительно влияют на наше восприятие продукта.

Попробуем применить этот угол зрения к умным колонкам и голосовым ассистентам. И попытаемся понять, почему же все они пока ещё Гранты. И чего именно им не хватает до Мерседесов.

Что же с ним не так и как это исправить?

Made at Intel. Молитвы, энтузиасты и разбитые лбы

Reading time9 min
Views20K

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

Читать далее

Новая ностальгия: приложения, о которых мы очень быстро забыли

Level of difficultyEasy
Reading time8 min
Views14K

В июле 2016 года мы с коллегами ездили на VK Fest в Санкт-Петербурге. На площадке у Финского залива было много крутого и интересного в сфере VR/AR, 3D-моделирования, проектирования, социальных сетей и сообществ, Мегафон выкатил прикольный музей мемов, на локальных полянках проходили лекции уникальных спикеров. Казалось бы, достаточно впечатлений, но их все затмил Pokémon Go: забыв обо всём, окружающий мир ловил покемонов на площадях, в парках, в переходах метро, на вокзалах, — толкался, падал, врезался в живые и неживые препятствия... «Мир не будет прежним», — проносилось в голове. Конечно, мир быстро стал прежним. Ну, как минимум до марта 2020 года. Что не отменило сияющих сверхновых от мира технологий.

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

Читать далее

Универсальный загрузчик XML на java. Или как загрузить файлы ГАР на 250 гб и остаться при памяти

Level of difficultyMedium
Reading time5 min
Views6K

С проблемой загрузки больших XML столкнулся при переходе с КЛАДР и ФИАС на справочники ГАР - Государственный адресный реестр (Федеральная информационная адресная система).

Справочник ГАР содержит более подробную информацию чем предыдущие классификаторы. В том числе информацию по муниципальным делениям. В связи с чем справочник после распаковки занимет около 250 ГБ, что примерно в 3 раза больше чем тот же ФИАС.

Предыдущая загрузка работала на DOM-модели, т.е. весь XML-файл считывался в память. Соответственно при попытке загрузить ГАР таким же способом стали стабильно получать OutOfMemory. А значит настало время менять подход к загрузке)

Немного теории:

DOM (Document Object Model) - это стандартный интерфейс для работы с документами в формате XML (Extensible Markup Language). DOM-модель представляет XML-документ в виде дерева объектов, где каждый элемент и атрибут документа является узлом дерева.

SAX (Simple API for XML) является событийно-ориентированным API для чтения XML-документа. Он предоставляет возможность читать XML-документ последовательно и обрабатывать события, такие как начало и конец элемента, содержимое элемента и т.д.

StAX (Streaming API for XML) также является API для последовательного чтения и записи XML-документов. Он предоставляет потоковый доступ к XML-документу, позволяя читать его и записывать по частям. StAX предоставляет возможность читать и записывать XML-документы в виде потока событий, аналогично SAX, но также предоставляет возможность читать и записывать XML-документы в виде итерируемых наборов событий. StAX позволяет эффективно обрабатывать большие XML-документы и не требует реализации обработчиков событий.

Читать далее

Введение в балансировку роторов

Level of difficultyEasy
Reading time16 min
Views22K

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

*Цапфа (нем. Zapfen "цапфа, шейка, шип, втулка, стержень") — часть вала или оси, на которой находится опора (подшипник). Цапфа, находящаяся на краю вала, называется шип, в средней части вала — шейка. Концевая цапфа, воспринимающая осевые нагрузки, — пята.

Читать далее

Трассировка сервисов, OpenTracing и Jaeger

Reading time7 min
Views145K
image

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

Для минимизации ручного труда мы решили воспользоваться одним из инструментов трассировки. О том, как и для чего можно использовать трассировку и как это делали мы, и пойдет речь в этой статье.
Читать дальше →

Распределенная трассировка: подключить всех и не умереть

Reading time14 min
Views7K

Всем привет! Меня зовут Филипп Бочаров, я руководитель центра мониторинга и наблюдаемости в МТС Digital. Мы с командой делаем платформу Наблюдаемости – это набор сервисов, который позволяет сделать работу других продуктов МТС прозрачной и понятной. Сегодня я расскажу про распределенную трассировку экосистемы МТС. 

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

Читать далее

“Чтоб не зазнавались”, или Ошибки руководителя при работе с хорошими сотрудниками

Level of difficultyEasy
Reading time5 min
Views8K
image

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


1. Руководитель недостаточно времени уделяет хорошим сотрудникам


Когда что-то работает хорошо, людям свойственно не обращать на это никакого внимания. Это относится ко всему: техника, системы, бизнес, люди…. Вот так и руководитель: сотрудникам, которые работают хорошо он уделяет времени в разы меньше нежели плохим.
Почему так происходит? Как правило, руководитель даже не задумывается над этим. Ведь странно было-бы предположить, что руководитель осознанно решил больше уделять времени именно плохим сотрудникам…. Просто эти сотрудники постоянно на виду: с ними вечно проблемы, их работа вечно не доделана до конца, им постоянно нужно что-то напоминать и плотно контролировать. Вот руководитель и работает с ними: обучает, заставляет, убеждает, мотивирует, критикует и иногда хвалит…. Как следствие, у него не остается времени на хороших сотрудников.
Читать дальше →

Джон Кармак взялся за сильный ИИ — и у него особый подход. Список фундаментальной литературы для начала

Level of difficultyMedium
Reading time7 min
Views39K

В рубрике «Выдающиеся программисты 21 века» уже была статья про гения программирования Джона Кармака, создателя движков для Doom, Quake и других культовых игр. Потом он занялся разработкой ракет (они в Armadillo Aerospace реализовали вертикальную посадку раньше SpaceX), а затем — систем VR, софта для Oculus Rift и других устройств. Сейчас началась четвёртая фаза в его карьере.

В интервью изданию Dallas Innovates 52-летний Кармак рассказал о новом проекте — системе сильного ИИ (AGI), над которым он работает самостоятельно, без участия больших корпораций, как отшельник в своём особняке в Далласе.

Сильный ИИ общего назначения не будет уступать среднему человеку в понимании происходящего и решении проблем. По оценке Кармака, с вероятностью 60% такая система (альфа-версия) будет создана до 2030 года, с вероятностью 95% — до 2050 года. Это самая важная и интересная задача, которая сейчас стоит перед человечеством.
Читать дальше →

Откуда есть пошла аналитика и что отличает DS, DA, BA и SA

Level of difficultyEasy
Reading time18 min
Views44K

Каждому из нас приходится принимать решения и иметь дело с их последствиями. Если речь идёт о бизнесе, то верный выбор может принести кругленькую сумму денег, а неверный — стоить целого состояния. Неудивительно, что сейчас в моде data-driven-подход, при котором каждое бизнес-решение принимается на основе объективных данных. Преобразованием данных в решения занимаются аналитики: финансовые, инвестиционные, продуктовые, аналитики рисков — им нет числа, как и строкам в их таблицах.

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

Читать далее

Центры компетенций. Что может пойти не так?

Reading time10 min
Views6.7K

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

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

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

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

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

На практике эта идея часто не взлетает и все идет совсем не так, как хотелось бы. Как именно и почему? Обсудим в статье.

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

Читать далее

Другая сторона медали или про недостатки юнит-тестирования

Reading time8 min
Views7.4K

И здесь, и в других местах в Сети есть масса статей, пропагандирующих автоматическое тестирование вообще и unit-тесты в частности. В статьях расписываются преимущества тестирования, использование его для устранения хрупкого кода, увеличения качества, миграции со старых систем на новые, рефакторинга. И, одновременно, нигде почти не упоминается об их недостатках, а ведь в инженерии нет "серебряных пуль"!

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

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

Почему функциональное программирование? Так тестируем же мы почти исключительно функции.

Раскрыть тему

Карта на WebGL: особенности тестирования

Reading time6 min
Views4.6K

Наша команда работает над «лицом» 2gis.ru — WebGL-библиотекой для визуализации картографических данных. В статье кратенько расскажем про WebGL (это важно для понимания особенностей его тестирования), про общий подход к тестированию и непосредственно про особенности тестирования приложения на WebGL [с которыми нам пришлось столкнуться].

Читать далее

Как я выгорел в FAANG, но дело оказалось совсем не в работе

Level of difficultyEasy
Reading time5 min
Views29K


Жил-был мальчик, который любил клепать формочки и рассказывать про это на конференциях. Потом он переехал из Воронежа в Лондон и стал работать на вожделенный FAANG. Через полтора года ему резко поплохело и захотелось уйти пасти козочек в горах. А еще через 3 месяца он во всем-всем-всем разобрался, и снова стал счастливым.

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

Information

Rating
482-nd
Location
Россия
Registered
Activity