Pull to refresh
4
0
Send message

Устройство поисковых систем: базовый поиск и инвертированный индекс

Reading time24 min
Views29K

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

В статье описано устройство поиска, инвертированного индекса и его оптимизаций с отсылками к теории. В качестве подопытного кролика взят Tantivy — реализация архитектуры Lucene на Rust. Статья получилась концентрированной, математикосодержащей и несовместимой с расслабленным чтением хабра за чашкой кофе, осторожно!
Читать дальше →

Почему тип поля enum на уровне базы — зло

Level of difficultyEasy
Reading time4 min
Views38K

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

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

Но это в теории. А что на практике? Рассмотрим под катом.

Читать далее

Долгоиграющие приложения на PHP

Level of difficultyMedium
Reading time15 min
Views21K

Мы часто сталкиваемся с задачами, которые требуют работы нашего кода дольше, чем длится простой HTTP-запрос. Это могут быть как выгрузки данных для интеграции с партнёрами, так и просто приложения, которые должны реагировать на события в системе в момент их появления. Конечно, можно использовать другие языки программирования, но это увеличит стек и усложнит систему.

Меня зовут Александр Пряхин, я TechUnit Lead в Авито. В IT работаю уже 14 лет. Из них 8 лет руковожу командами. Параллельно с этим преподаю и менторю. Сегодня разберём, как готовить демонов на PHP — от А до Я, и почему это актуально.

Читать далее

Как в панельном доме заменить старый конвектор на новый радиатор, чтобы не пожалеть о полученном результате?

Reading time28 min
Views65K

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

В этом видосике сошлись в смертельной схватке два «блогера‑сантехника», каждый из которых считал, что только он прав.

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

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

Особый интерес к этой теме у меня возник потому, что я сам лично как‑то собрался поменять такую старую облезлую «гармошку» (см.рис.1) на новый белый и красивы биметаллический радиатор (см.рис.2).

Читать далее

Путь поступления и учебы в университете в Калифорнии глазами родителей

Reading time8 min
Views10K
image

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

Речь пойдет не о картине Дали “Живой натюрморт”, а об общей концепции как сложить жизненный пазл поступить и учиться в калифорнийском ВУЗе. Как оказалось задача сама по себе не столь тривиальная и требует детального разбора на каждом этапе процесса подготовки к поступлению в ВУЗ и самой учебе.
Читать дальше →

Trunk Based Development — кто такой и зачем нужен

Reading time5 min
Views55K

Привет! Меня зовут Павел Лакосников, я тимлид команды бэкенд-инженеров в Авито. Сегодня расскажу про свой любимый подход к разработке Trunk Base Development, сравню его с другими моделями ветвления и подсвечу его достоинства и нюансы.

Краткий обзор трёх моделей ветвления: Central Workflow, Git Flow, Trunk Based Flow, с акцентом на моего фаворита — Trunk Based Flow.

Читать далее

В IT в 30. Как я стал solo Kaggle Grandmaster, устроился на работу, но так и не стал программистом

Reading time10 min
Views74K

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

Читать далее

Забудьте САР теорему как более не актуальную

Reading time12 min
Views68K
или «Прекратите характеризовать хранилища данных как CP или AP»

capДжеф Ходжес в своем прекрасном посте «Заметки о распределенных системах для новичков» рекомендует использовать САР теорему для критики найденных решений. Многие, похоже, восприняли этот совет слишком близко к сердцу, описывая свои системы как «СР» (согласованность данных, но без постоянной доступности при сетевой распределенности), «АР» (доступность без согласованного состояния при сетевой распределенности), или иногда «СА» (означает «Я всё ещё не читал статью Коды (Coda Hale) почти 5-летней давности»).

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

(Да, я понимаю всю иронию написания целой статьи по теме того, о чём призываю не писать других вообще. Но, как минимум, у меня будет ссылка, которую я смогу давать интересующимся, когда меня будут спрашивать, почему я не одобряю обсуждение САР теоремы. Также, я хочу извиниться, если статья вам покажется слишком напыщенной, но эта напыщенность опирается на множество ссылок.)

САР использует слишком узкое определение


Если вы хотите ссылаться на САР как на теорему (а не на расплывчатый концепт в маркетинговых материалах к вашей базе данных), вы должны быть точны. Математика требует точности. Доказательство сохраняется только если вы вкладывается в слова, то же самое значение, что было использовано при доказательстве. И оно опирается на очень точные определения:
Еще 3000 слов увлекательного чтива

Объяснение Kafka на примерах из Factorio

Reading time4 min
Views26K
Недавно я как обычно играл в Factorio после рабочего дня — и вдруг меня поразила удивительная мысль. Как много здесь аналогий с Apache Kafka!


Если у вас мало свободного времени, не скачивайте Factorio

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

Если человек вообще никогда не работал с потоковой платформой, то ему станет всё понятно на примерах из игры. Что ж, давайте начнём с нуля, изучим основные концепции Kafka — и немного повеселимся.
Читать дальше →

Возвращаем RSS к жизни

Reading time6 min
Views34K

RSS-агрегатор NetNewsWire

Мы уже обсуждали, насколько важен и удобен RSS для профессиональной работы с источниками в интернете. Это единственный способ собрать огромный массив данных с тысяч сайтов, соцсетей, блогов, твиттер-аккаунтов, торрент-трекеров и др.

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

Как я удалённо работал в ИТ компании из Швейцарии и почему в конце концов уволился

Reading time7 min
Views113K

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

Текущее место работы в крупном российском зелёном банке, накладывало ограничения на передвижения и удалённую работу, вплоть до сообщения домашнего адреса, мониторинга транзакций по зарплатной карте (покупки не далее пешей доступности от дома в обед), мониторинг IP-адреса, используемого для подключения к офисной сети. Как мне кажется, тут был небольшой перегиб в сторону контроля, да это всё решаемые нюансы - можно снять наличные, купить VPN с нодой в России, сообщить IP адрес мобильного оператора - но риски проколоться всегда есть и вдобавок всегда была вероятность срочного выхода в офис, так что, находясь где-то в солнечном Тайланде, оперативно появиться на утро в офисе было бы большой проблемой.

Читать далее

Джентльменский набор для создания WPF-приложений

Reading time18 min
Views49K

Данная статья представляет собой набор рецептов по созданию WPF приложений. Поэтому скорее всего она будет интересна начинающим разработчикам. В материале описаны основные моменты использования таких пакетов как ReactiveUI, Material Design in XAML Toolkit, LiveChart2. Примеры кода приведены из реального приложения.

Далее

Переводы всех статей Пола Грэма на всех языках (210+)

Reading time7 min
Views33K
image
(иллюстрация Asya_Dyu)

Пол Грэм — один из самых уважаемых людей среди ИТишников, основателей и инвесторов. Он первоклассный программист (написал два языка программирования), хакер, создатель дерзкого акселератора Y Combinator, философ.

Своими помыслами и разумом Пол Грэм врывается в широкий спектр областей: от прогнозирования развития языков программирования на сто лет вперед до человеческих качеств и способов починить/хакнуть экономику. А ещё он осознает важность того, чтобы формулировать свои мысли в текст и делиться ими с окружающими.

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

Сейчас около 2 миллиардов человек могут прочитать эссе Пола Грэма. Моя задумка в том, что если перевести его эссе на топ-20 языков, то это даст возможность еще 2 миллиардам людей случайно наткнуться на перевод на родном языке (как это было у меня) и встать на путь стартапера.

Читать лучше в оригинале, но путь к оригиналу иногда бывает (только) через перевод.
Читать дальше →

Does the latency matter?

Reading time12 min
Views9.6K

Есть исследование от Google, которое говорит, что если ваш сайт открывается больше трех секунд, то вы потеряете около 40% десктопных пользователей и более 50% — мобильных. Еще есть репорт от Amazon, который говорит, что для Amazon каждые 100 мс дополнительного latency стоит им 1% продаж. В объемах Amazon это миллионы долларов.

В зависимости от вашего бизнеса вам стоит тоже ответить на вопрос: Does the latency matter?

Я работаю как системный инженер уже более 8 лет. Хочу поделиться опытом, который получил в процессе решения задач в компании Big Data Technologies. У нас есть какой-никакой highload. В пике это 30 тысяч rps, и вопрос с latency довольно остро стоит перед бизнесом.

Читать далее

Сколько мне стоило попасть в Гугл и получить повышение, не проработав там ни одного дня

Level of difficultyEasy
Reading time10 min
Views93K

Декабрь 2020, вторая волна Ковида в разгаре. Я ПМ на удаленке в Американской компании. После похорон отца в Тбилиси я находился в прострации, надо было возвращаться в США и как-то менять своё положение, ведь денег, которых я зарабатывал явно не хватало на нормальную жизнь. Сами воспоминания о моём предыдущем поиске вызывали во мне холодный озноб и какой-то внутренний голос тихо шептал «подожди, сейчас пандемия, многие и о таком мечтают, как-нибудь выкрутишься…».

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

Я зарегистрировал себе американский номер в Google Voice, чтобы мне начали звонить рекрутеры и начал рассылать резюме. Я разослал около сотни адаптированных резюме и указал в LinkedIn что активно ищу работу. Постепенно на меня начали выходить рекрутеры небольших компаний, но я понимал, что в них условия будут в лучшем случае на 40% лучше текущей и это все равно не решало моих проблем. Хоть и казалось, что на LinkedIn висят тысячи позиций, однако основных работодателей я этим исчерпал. Подавался я в основном на Sr. Project Manager или Engineering Manager позиции.

Осознание пришло, когда я стал читать teamblind.com – лучший ресурс в США по анализу рынка в ИТ и levels.fyi где можно посмотреть реальные зарплаты. Раньше я читал Glassdoor, но информация на нем устарела.

Оказалось, что в финансовой сфере в США, которая мне была интересна - плохие условия и токсичная культура, тоже самое в консалтинге кроме компаний из Big4 или MBB где надо работать долгие часы, но возможно получать 1+ миллион долларов в год дослужившись до партнёра. Самыми интересными оказались компании, которые называют FAANG (Fb, Apple, Amazon, Netflix, Google) иногда в место этого списка используют FAANGMULA справедливо добавляя туда Microsoft, Uber, Lyft и Airbnb – все они технологические, инновационные компании не просто создающие бизнес-продукты, но и технологии, которыми пользуются весь мир. Компании, создающие де-факто стандарты разработки цифровых продуктов, инвестирующие в научные исследования, создающие легендарные условия для своих сотрудников, чем привлекают умнейших инженеров и ученных со всего мира.

Читать далее

DIY Zigbee датчик влажности почвы

Reading time5 min
Views21K
Приветствую читателей Habr! Хочу поделиться с вами своим очередным проектом, сегодня речь пойдёт о небольшом датчике измерения влажности почвы на чипе СС2530. Проект основывается на разработке с открытым исходным кодом DIYRUZ Flower, разработчик @anonymass. Измерение влажности почвы у датчика осуществляется ёмкостным методом, работает от батарейки CR2450 или CR2477, есть защита от переполюсовки батарейки, датчик предназначен для работы в сетях Zigbee.

Избавляемся от рутины со своим плагином для PhpStorm

Reading time10 min
Views13K
Привет, Хабр! Я тружусь в команде Антиспама, и, как и у большинства бэкенд-разработчиков Badoo, большая часть времени у меня уходит на работу с PHP-кодом.

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

Так появился плагин Badoo для PhpStorm, который мы сегодня активно используем. За несколько лет его возможности серьёзно расширились, мы его развиваем, и в этой статье я расскажу на примере наших кейсов, как адаптировать IDE под свои задачи и инструменты, и докажу, что это не так сложно, как кажется.


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

Полная домашняя автоматизация в новостройке. Продолжение

Reading time9 min
Views92K
Неожиданно статья про мой опыт автоматизации однокомнатной квартиры площадью 41 кв. м. в новостройке, опубликованная две недели назад, стала популярна и на 10 марта её добавил в закладки 781 image человек, просмотрели 123 921 раз и Хабр даже запилил рекламный блок в разделе «Рекомендуем» с пометкой «Интересно».


1500 метров проложенных кабелей после окончания ремонта не видны. На фото спальня

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

Сказ о том, как я автоматизировал квартиру с помощью Node-RED. Часть I

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


Умный дом с нуля своими руками или путешествие длиною в год

Reading time8 min
Views214K

Данную статью пишу для думающих, стоит оно того или нет и начинающих построение своего умного дома, надеюсь она поможет сделать вам свой выбор. Для тех кто думает я не программист у меня ничего не получится, я тоже, хотя имею техническое (теплоэнергетик) образование, но никогда не работал в IT, не знаю не одного языка программирования. Дорогу осилит идущий. Начнем с рассуждений что такое умный дом, поверьте на слово он не решит все ваших бытовых и семейных проблем, но точно сделает жизнь немного комфортней. Что такое умный дом в моем представлении год назад: 1. Красивый планшет со схемой дома весящий на стане в прихожей с которого можно управлять всем в доме; 2. Управление всем чем можно голосом. Откровение через год планшет не нужен, так как бегать со второго этажа на первый что бы по управлять неудобно. Что бы хорошо работало голосовое управление, требуется установка умной колонки в каждую комнату, когда их две это одно. А когда значительно больше вопрос. Сейчас для меня умный дом это то, что работает само без моего участия, и не требует управления. Все о чем пойдет речь далее сделано мною лично, может можно сделать по другому, может проще и лучше. Но таков путь.

Читать далее
1
23 ...

Information

Rating
Does not participate
Registered
Activity