Search
Write a publication
Pull to refresh
-2
0.1
Send message

Увеличиваем throughput приложения в 2 раза или неблокирующая работа с Elasticsearch с использованием Kotlin coroutines

Reading time6 min
Views3.9K

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

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

Если вам интересно узнать, как это можно сделать, то добро пожаловать под кат!

Читать далее

Вкусная экология: преобразование пластика в ванилин

Reading time9 min
Views3.9K


У современного мира много современных проблем, которых не существовало триста и даже сто лет назад из-за отсутствия нынешнего уровня технологического прогресса. Как правило, большая часть проблем уходит в сторону экологии. А когда разговоры заходят о загрязнении окружающей среды, то одним из лидеров в этом аспекте является вездесущий пластик. Этот универсальный материал можно найти и в производстве сложнейших аппаратов, и на кухне. Полезность пластмассы никто не может оспорить, а поиски замены пока не увенчались успехом, ибо пластик легок в производстве и стоит дешево, в отличие от предлагаемых более экологичных вариантов. Поcему исследований, нацеленных на решение проблемы пластиковых отходов, достаточно много, и каждое из них предлагает свой уникальный подход. На Хабре уже была новость об этом исследовании, но мы, как обычно, рассмотрим его подробнее. Ученые из Эдинбургского университета (Великобритания) предложили использовать бактерию E. coli (кишечная палочка) для преобразования пластиковых отходов в ванилин. Какую роль исполняет бактерия, какие процессы лежат в основе столь необычного преобразования, и можно ли употреблять в пищу полученный таким путем ванилин? Ответы на эти вопросы мы найдем в докладе ученых. Поехали.
Читать дальше →

Разработчик популярного веб-фреймворка FastAPI — об истории его создания и перспективах аннотаций типов Python

Reading time7 min
Views12K


Python-девелопер и писатель Рики Уайт взял интервью у Себастьяна Рамиреса, разработчика из Explosion AI. Но Себастьян не просто разработчик, это заметная фигура в open source сообществе, создатель популярных фреймворков FastAPI и Typer. В основном речь шла про широкие возможности применения аннотаций типов Python, историю создания фреймворка FastAPI и его дальнейшее развитие. Кроме того, Себастьян рассказал о своих планах по работе над другими open source проектами. Без лишних слов, давайте перейдем к интервью.

Рики: Спасибо, что пришёл, Себастьян. Сначала я бы хотел задать тебе те же вопросы, что и другим своим гостям. Как ты начал программировать? Когда познакомился с Python?

Себастьян: Спасибо, что пригласил [улыбается].

Я начал программировать, когда мне было пятнадцать. Я пытался создать веб-сайт для бизнеса своих родителей. Первым моим настоящим «кодом» был JavaScript внутри HTML — модальное диалоговое окно (alert) с фразой «Hello World». Я до сих пор помню, как обрадовался, увидев это маленькое окно с сообщением, и испытал чувство всемогущества от мысли, что это запрограммировал я.

Я много лет боялся изучать какой-либо другой язык, думая, что сначала должен «хотя бы» освоить JavaScript. Но потом на одном из многих онлайн-курсов, которые я проходил, возникла необходимость использовать Python для управления искусственным интеллектом в Pac-Man и для некоторых других задач. Курс состоял из одного длинного туториала по основам Python, и этого было достаточно. Мне очень хотелось попробовать.

Я быстро влюбился в Python и пожалел, что не начал раньше!
Читать дальше →

Мультивселенная и задачи о переправе

Reading time4 min
Views2.5K

Как-то прочел на Хабре статью «Перевозим волка, козу и капусту через реку с эффектами на Haskell», которая так понравилась, что решил написать фреймворк для всего класса задач о переправах, используя мультипарадигменное проектирование. Наконец удалось найти время, и вот, спустя почти год, фреймворк готов. Теперь персонажи, их взаимодействия и описание искомого результата задаются через domain-specific language, который позволяет решать любые головоломки подобного рода с пошаговым выводом. Ниже приводится поэтапный разбор реализации DSL. Статья подойдет тем кто изучает язык Kotlin или просто интересуется примерами его использования. Некоторые малозначимые детали (вроде импортов и вывода) для кратости опущены.

Начнем писать код

Постмортем инцидентов для начинающих

Reading time3 min
Views11K

image
Фото с сайта Unsplash.com


Успешные постмортемы без поиска виноватых помогают учиться на инцидентах, чтобы не допускать подобных ошибок в будущем.


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

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

DIY регистратор молний

Reading time6 min
Views11K

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

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

Читать далее

Как писать хорошую документацию

Reading time14 min
Views20K

Несколько лет назад я услышал от одного коллеги историю. Он в то время работал начальником отдела технической документации в IT компании. Дело было на собрании, посвященном знакомству с новым техническим директором. Тот, пожав моему коллеге руку и узнав о его роли, пошутил: “Документация? Так ее же не читает никто! Двадцать первый век на дворе”.

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

Читать далее

А нужен ли Redis или хватит PostgreSQL

Reading time3 min
Views20K
image

Есть проверенная архитектура, которую я видел много раз для поддержки ваших веб-сервисов и приложений:

  • PostgreSQL для хранения данных
  • Redis для координации очередей фоновых заданий (и некоторых ограниченных атомарных операций)

Redis — это фантастика, но что, если бы я сказал вам, что его наиболее распространенные варианты использования этого стека на самом деле могут быть достигнуты с использованием только PostgreSQL?

Сценарий 1: очередь заданий


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

Дурацкие идиомы английского языка, которые не имеют смысла (почти) — часть 2

Reading time6 min
Views24K

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

Здесь мы разобрали еще более странные идиомы, чем в первой части, которые если не знаешь — то точно не поймешь правильно. Не будем затягивать — поехали.

Читать далее

Мы не рабы, рабы не мы

Reading time6 min
Views9K


«Мы не рабы́, рабы не мы» — это фраза из первой советской азбуки «Долой неграмотность: Букварь для взрослых» от 1919 года. Данная книга стимулировала миллионы людей в нашей стране менять свой быт, сознание и даже политический строй. Прошло сто лет. И кажется на какой-то развилке общество повернуло налево.

Кому строгий контроль, а кому друг родной. «Большой брат» пугающий время от времени особо чувствительных граждан уже давным-давно прописался на производстве, в ритейле и офисах класса «А». Мировые корпорации используют современные технологии для повышения производительности труда. И речь идет не только про тотальную слежку за сотрудниками и контроль активности людей, но и про анализ их поведения. Зачем это «бесчувственному бизнесу» относительно понятно, но как долго люди будут готовы с этим мириться? Об этом в сегодняшней статье.
Читать дальше →

<img>. Доклад Яндекса

Reading time30 min
Views28K
«Просто добавь картинку на сайт», — говорили они. А оказалось, что «просто» не значит «правильно». В докладе я постарался разобраться, как эффективно добавлять изображения на страницу, какие форматы графики для каких случаев полезны и как автоматизировать автоматизируемое.

— Всем привет. У меня доклад с интригующим названием в виде одного тега.

Вакцины vs антибиотики: почему люди не доверяют вакцинам, но не боятся злоупотреблять антибиотиками

Reading time12 min
Views27K
Реакция мира на новый коронавирус в 2020 году и идущая с разным успехом в разных странах прививочная кампания от него него в 2021, обнажили и обострили множество слабых мест экономики и социальных проблем. Фактически, многие аспекты социального (коллективного) бытия сейчас переживают стресс-тест, подобного которому не было с начавшейся в 1929 году Великой депрессии.

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

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



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

Надували, надуваем и будем надувать. Пузыри программистов

Reading time4 min
Views54K

Не только банки, дети и аниматоры умеют надувать большие пузыри. Мы, программисты, внедренцы, автоматизаторы и руководители проектов, делаем это нисколько не хуже. И, возможно, даже чаще.

Но мы – круче. В определённых условиях мы умеем надувать огромные перламутровые пузыри, которые потом годами не лопаются. Толку от них нет, но… Красиво же!

Читать далее

Всегда старайтесь быть н̶е̶заменимым

Reading time3 min
Views42K
Есть хорошая жизненная философия, которой можно придерживаться на рабочем месте, — это «постоянно быть готовым увольняться» («always be quitting»). Это не значит думать о том, чтобы уйти с работы. Но вести себя так, как будто вы можете уйти в кратчайшие сроки. Парадоксально, но это сделает вас лучшим инженером и откроет возможности для роста.

Так что же значит «постоянно быть готовым уйти»? Это означает «сделать себя заменимым»; «унизить себя»; «автоматизировать свою работу». Возможно, вы слышали эти более популярные ярлыки (и вам нужно будет с этим поразбираться и выяснить что это), и они дают подсказку что делать.

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

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

Илон Маск в прямом смысле запустит Dogecoin на Луну

Reading time3 min
Views42K


Мемы становятся всё дороже.


Уже были и NFT, которые продаются за миллионы, и «обезьяны» с Реддита, вкладывающие в акции Gamestop, чтобы обанкротить хедж-фонды с активами в несколько десятков миллиардов. А теперь Илон Маск вовсю форсит Dogecoin.


Вчера SpaceX объявила, что собирается запустить спутник, который они назовут DOGE-1, к Луне. И теперь принимает Dogecoin на свой кошелек, чтобы сделать это возможным. Запуск спутника будет оплачен исключительно криптовалютой.

Первый полет космоплана Dream Chaser назначен на 2022 год

Reading time4 min
Views6.6K

Изначально полет должен был состояться в конце 2021 года, но по словам старшего вице-президента Sierra Nevada Corporation (SNC) Стива Линдси, главную роль в задержке сыграла пандемия COVID-19. Конкретная дата запуска пока не названа – все будет зависеть от времени, к которому корабль будет полностью готов, и от НАСА, с которым у SNC заключен контракт на доставку грузов к МКС.  

Читать далее

Что должно быть в счёте на оплату, чего быть не должно и что дико бесит

Reading time5 min
Views26K

Мы уже разбирали “Одностраничный устав ООО с двумя директорами электронно и открытие счёта в банке дистанционно” и “Хороший договор — короткий договор”, теперь поговорим про счёт.

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

Попробуем выкинуть всё лишнее и сделать понятно и красиво. Здесь в основном речь пойдёт о России, но и заграничные счета бывают запутанными. Немного скажу и про Европейский Союз.

Читать далее

Полежать в эконом-классе? Zephyr Aerospace разработал двухэтажные купе для самолетов. И можно сделать почти кровать

Reading time2 min
Views6.9K

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

Читать далее

Биография основателя DEF CON и Black Hat Джеффа Мосса (Dark Tangent)

Reading time10 min
Views2.5K

К старту курса об этичном хакерстве мы перевели размещённую на сайте Black Hat биографию основателя этой серии мероприятий по кибербезопасности. Джефф Мосс родился в Калифорнии, США, в январе 1975 года, он — эксперт по компьютерной и интернет-безопасности, хакер. Первый опыт работы с компьютером он получил в возрасте 10 лет и был восхищён возможностью общаться и вести взрослые разговоры с людьми по всему миру. У него ещё не было водительских прав, Джефф не мог голосовать, но мог общаться с людьми намного старше его, которых нисколько не волновали ни его возраст, ни внешность.

Читать далее

Измеряем расходы на память у Postgres процессов

Reading time7 min
Views15K

Это вольный перевод поста одного из сильных разработчиков Postgres - Andres Freund. Кроме того что разработчик сильный, так еще и статья довольно интересная и раскрывает детали того как работает ОС Linux.

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

Как по мне, здесь есть что обсудить...

Читать далее

Information

Rating
5,634-th
Registered
Activity