Pull to refresh
39
0
Александр @alPTR

User

Send message

Носители английского языка — худшие коммуникаторы в мире

Level of difficulty Easy
Reading time 5 min
Views 37K

Носители языка — худшие коммуникаторы в мире

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

Читать далее
Total votes 84: ↑74 and ↓10 +64
Comments 142

Трансформером по A*, или как уменьшить число итераций самого известного алгоритма поиска пути

Level of difficulty Medium
Reading time 24 min
Views 7.1K

Привет! Меня зовут Константин Яковлев, я научный работник и вот уже более 15 лет я занимаюсь методами планирования траектории. Часто эта задача сводится к поиску пути на графе, для чего обычно используется алгоритм эвристического поиска A*. Этот алгоритм был предложен в 60-х годах XX века и с тех пор используется повсеместно. Скорее всего, юнит вашей любимой RTS бежит по карте с помощью той или иной вариации A*. Точно так же, под капотом беспилотного авто вы, наверняка, найдёте A*, хотя там, конечно, не только он.

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

Этот текст посвящен как самому алгоритму A*, так и попыткам повысить его эффективность с помощью методов искусственного интеллекта. Заодно я расскажу о том, какие новшества в этом направлении придумали мы с коллегами: научная статья на эту тему опубликована в сборнике конференции AAAI 2023.

Читать далее
Total votes 34: ↑34 and ↓0 +34
Comments 35

Зоопарк трансформеров: большой обзор моделей от BERT до Alpaca

Level of difficulty Hard
Reading time 59 min
Views 17K

Авторский обзор 90+ нейросетевых моделей на основе Transformer для тех, кто не успевает читать статьи, но хочет быть в курсе ситуации и понимать технические детали идущей революции ИИ.

Читать далее
Total votes 28: ↑28 and ↓0 +28
Comments 15

Викторианская история больших данных

Reading time 12 min
Views 4K

В весьма впечатлившей меня книге «Информация. История. Теория. Поток» Джеймса Глика, о которой я уже упоминал ранее, страннейшим образом обойдён вопрос о том, как возник феномен «Big Data». В той же книге упоминается первый авторский словарь английского языка, составленный в начале XVII века неким Кодри, а далее развивается идея о том, что феномен концептуализируется в языке после того, как попадает в словарь – в английской культуре таким словарём является оксфордский.

Тогда я попробовал проверить, когда же в английском и русском языке закрепилось понятие «BigData» и, соответственно, «большие данные». Распространено мнение, что выражение «BigData» впервые было употреблено в 2008 году в статье Клиффорда Линча  «Big data: how do your data grow?», опубликованной в журнале «Nature», но даже это небольшое исследование подсказывает, что всё гораздо сложнее.

Читать далее
Total votes 37: ↑33 and ↓4 +29
Comments 0

Как работает перспектива в изображениях?

Reading time 9 min
Views 31K
«Линза доминировала уже шесть сотен лет и я считаю, что изображениям пора отходить от неё. Если это произойдёт, может случиться что-то чудесное».Дэвид Хокни, 2022 год

У вас когда-нибудь было такое: вы фотографируете какую-то далёкую сцену, а на фото она выглядит слишком маленькой по сравнению с её окружениями?


Комикс Мег Адамс

В этом посте мы поговорим о том, как возникает это явление, и что мы с ним можем сделать.
Читать дальше →
Total votes 63: ↑62 and ↓1 +61
Comments 25

Как быстро проверить все конденсаторы на плате. Простой ESR-пробник

Reading time 3 min
Views 67K

Как определить неисправный электролитический конденсатор?

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

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

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

На одном из форумов я нашел схему и решил повторить ее.

Читать далее
Total votes 31: ↑30 and ↓1 +29
Comments 42

Профилирование Python-программ и анализ их производительности

Reading time 14 min
Views 21K

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

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

Читать далее
Total votes 26: ↑25 and ↓1 +24
Comments 0

Рисуем красивые трейсбеки, перехватывая исключения в Python

Reading time 10 min
Views 13K

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

На пути к этой цели мы узнаем о том, как реализовывать и использовать собственные перехватчики исключений (exception hook), которые позволяют убрать из трейсбеков весь «информационный шум». Мы поговорим о том, как улучшить читабельность отчётов о трассировке стека, как выводить в них лишь то, что нужно для решения проблем с Python-кодом и с возникающими в процессе его работы исключениями. Кроме того, мы посмотрим на несколько потрясающих Python-библиотек, в которых имеются готовые к использованию, хорошо сделанные перехватчики исключений. Их можно использовать без необходимости написания собственного кода перехватчиков.

Читать далее
Total votes 27: ↑27 and ↓0 +27
Comments 1

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

Reading time 31 min
Views 44K


Привет! Меня зовут Макс Матюхин, я работаю в SRV-команде Badoo. Мы в Badoo не только активно пишем посты в свой блог, но и внимательно читаем блоги наших коллег из других компаний. Недавно ребята из Dropbox опубликовали шикарный пост о различных способах оптимизации серверных приложений: начиная с железа и заканчивая уровнем приложения. Его автор – Алексей Иванов – дал огромное количество советов и ссылок на дополнительные источники информации. К сожалению, у Dropbox нет блога на Хабре, поэтому я решил перевести этот пост для наших читателей.

Читать дальше →
Total votes 78: ↑78 and ↓0 +78
Comments 7

Буря в пустыне, сумерки и торосы. Каково жить на планете, попавшей в приливный захват

Reading time 9 min
Views 19K

С 1988 года до наших дней открыто более пяти тысяч планет, обращающихся вокруг других звезд. Основной прорыв в поиске и классификации этих планет был связан с работой орбитального телескопа «Кеплер», функционировавшего с 2009 по 2018 год и за этот период открывшего более 3500 небесных тел, сочтенных «кандидатами в экзопланеты». Более 1000 объектов, найденных «Кеплером», действительно оказались экзопланетами. Рассмотрение этой миссии – тема для целой книги (кстати, такая книга уже написана и переведена на русский язык, называется «Фабрика планет»).

Как известно, убежденность в существовании обитаемых миров поблизости от «других солнц» была одним из ключевых положений философии Джордано Бруно, сожженного в 1600 году, когда еще даже не была официально осуждена теория Коперника, изрядно мозолившая глаза католической церкви (работа Коперника попала в «Индекс запрещенных книг» только в 1612 году). Со времен Бруно и до наших дней человек ищет именно обитаемые или хотя бы пригодные для обитания миры, вся остальная россыпь небесных тел и открытий в планетологии – не более чем побочный продукт этого процесса.

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

Читать далее
Total votes 71: ↑71 and ↓0 +71
Comments 25

Как мы лажали, открывая очередное юрлицо — на этот раз в США

Reading time 11 min
Views 17K


Я тут открывал юрлицо в США и сделал всё по инструкции «как не облажаться», но облажался. Уже в новых местах, не предусмотренных инструкцией.

Главная инструкция вот тут, она написана не юристом, но сами юристы подтверждают, что получилась хорошая и на неё же ссылаются, когда нужно быстро ввести в курс дела новичка. Список того, где уже облажались русские участники УКомбината — вот.

Проект внезапно созрел и нужно было пустить инвесторов. Команда немного размазана по планете, поэтому всем было примерно всё равно, где регистрироваться. Есть вообще типовой стартаперский набор: Кипр, прибалты, США, Сингапур, Люксембург. Но не пофиг было российскому стратегу, одному из инвесторов, он хотел на родине. При этом американское корпоративное правило наиболее гибкое + накоплена большая база прецедентов, то есть оно ещё и предсказуемое. А в штате Делавер наиболее квалифицированный суд, и его решения — просто золотой стандарт отрасли. То есть если у вас есть иностранные инвесторы, стоит выбор между Европой, Кипром и США. Из Латвии и Эстонии тяжело выскакивать при росте компании (и за сладкий старт придётся платить условиями дальше), Кипр хорош, но венчурные инвесторы часто ассоциируют его с «русские что-то там мутят», поэтому Делавер.

Поскольку у нас ИТ-бизнес в России, и мы знаем правила ведения ИТ-бизнеса в России, план был такой:

  1. Уговаривать стратега на любую зарубежную юрисдикцию (а для них бы это был первый опыт инвестиций в зарубежный проект);
  2. Как только они дадут добро, за недельку зарегистрироваться, например в Делавере, и принять деньги.

А если стратега не уговорим, то уйдем во все тяжкие согласования венчурной сделки с корпоратом в правовом поле РФ, что одно из самых экстремальных развлечений, доступных бизнесмену. Я наивно полагал, что основные проблемы будут в этой части.

Но нет. Переходим к мякотке.
Читать дальше →
Total votes 83: ↑81 and ↓2 +79
Comments 11

Взбираясь на непокорённую гору: сложности создания игры в одиночку

Reading time 10 min
Views 33K
Standing at the foot of the mountain

Делать видеоигры сложно. Но ещё сложнее делать их в одиночку.

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

Эта статья предназначена для разработчиков, отправляющихся в одиночное путешествие, а также для тех, кто уже давно в пути и пытается выпустить свой первый соло-проект.
Total votes 34: ↑34 and ↓0 +34
Comments 48

Словарь визуальных слов: как создать, зачем использовать, где применять

Reading time 15 min
Views 3.3K

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

Использование словарей (кодовых книг) визуальных слов, аналогичных Bag-of-Words (BoW), раньше было довольно популярно для обработки изображений (к примеру, для поиска или классификации изображений документов). Мы решили создать принципиально новое решение для извлечения информации из документов, которое бы решало перечисленные выше проблемы предшествующих подходов и базировалось бы на построении и использовании оптимизированного словаря визуальных слов. При этом дополнительным достоинством нашей разработки является то, что обнаружение полей основано только на данных изображения и не требует больших размеченных наборов данных для обучения (fine-tuning) системы на стороне пользователя.

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

Читать далее
Total votes 9: ↑8 and ↓1 +7
Comments 4

Nginx. О чем не хотелось писать

Reading time 5 min
Views 12K

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

Наследование директив в nginx - это классная штука. Именно наследование позволяет писать простые и понятные конфиги. При слиянии конфигураций значение директивы и её функциональность переходит из вышестоящего контекста в текущий. Логично, что наследование не происходит от параллельных контекстов, например от соседнего location или if.

Вроде бы всё хорошо. Пока не возникают исключения.

N.B.: Здесь и далее описывается работа с nginx версии 1.21.1 (если не указано иное). Всё сказанное основывается лишь на опыте и ошибках автора. Вместе с тем автор не является разработчиком nginx и даже его маститым сварщиком, поэтому не стоит принимать слова автора как догму, а, наоборот, подвергать сомнению и самостоятельному тестированию.

Размышления простого админа
Total votes 20: ↑20 and ↓0 +20
Comments 9

Даешь давление для альпинистов или как дышать свободно на вершинах?

Reading time 10 min
Views 9.7K
Как пел когда-то Владимир Высоцкий, «лучше гор могут быть только горы, на которых еще не бывал». Завораживающая высота гор издавна манила к себе людей и только в прошлом веке, люди смогли покорить многие самые высокие вершины Земли.

Для дыхания на высоте используется сжатый воздух и в этой статье мы рассмотрим, а можно ли его как то заменить?
Получится или нет?
Total votes 49: ↑39 and ↓10 +29
Comments 43

Как найти и купить дом, если вы Data Scientist

Reading time 10 min
Views 9.9K

Атма Мани, переводом статьи которого мы делимся к старту флагманского курса по Data Science, — ведущий инженер по продуктам ArcGIS API для Python в компании Esri. В этом материале он рассказывает, как при помощи ArcGIS и Python создать модель, выводящую короткий список домов в соответствии с потребностями и желаниями покупателя. Ссылку на репозиторий GitHub вы найдёте в конце статьи.

Читать далее
Total votes 10: ↑8 and ↓2 +6
Comments 10

Тайна списка шумерских царей. Часть 1. Машина времени

Reading time 15 min
Views 45K

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

Если древний Египет со своими памятниками всегда был на виду, то о существовании шумеров наука узнала только в середине XIX века. Проделав огромный труд и расшифровав аккадскую клинопись, историки внезапно столкнулись с неожиданной проблемой. Часть клинописных текстов никак не получалось прочитать. Знаки были те же, но смысл не складывался. Сначала грешили на тайнопись жрецов, но потом поняли, что на самом деле столкнулись с другим более древним языком, письменность которого совпадала с аккадской. Так начался новый виток расшифровки клинописи, который в итоге привел к открытию великой шумерской цивилизации.

Читать далее
Total votes 52: ↑50 and ↓2 +48
Comments 112

Тайна списка шумерских царей. Часть 2. Плуг судьбы

Reading time 23 min
Views 13K

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

Итак, посмотрим на начало царского списка, на тех царей, что правили до потопа.

Читать далее
Total votes 19: ↑19 and ↓0 +19
Comments 20

Тайна списка шумерских царей. Часть 3. Зодиак

Reading time 33 min
Views 13K

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

Что вы знаете об астрологии? Название “астрология” происходит от древнегреческого ἀστήρ «звезда» и λόγος «мысль, причина». Сама астрология — это некая древняя практика, которая позволяет гадать по звездам. Дескать, звезды влияют на судьбы людей и по положению звезд можно предсказывать будущее.

Как вы относитесь к астрологии? Здравомыслящий человек понимает, что астрология — это, как и всякое гадание, шарлатанство. Положение Солнца, планет и созвездий выступает генератором случайных сочетаний, которым астрологи дают свои толкования. Люди, склонные к мистицизму, готовы платить за это деньги. Спрос рождает предложение.  Все так?

Что такое знаки зодиака? Есть двенадцать созвездий, лежащих на годичном пути Солнца. То, в каком знаке родился человек, по мнению астрологов определяет его характер и судьбу. Зодиак придумали греки, поместив на небо героев своих мифов.

Читать далее
Total votes 15: ↑10 and ↓5 +5
Comments 7

Information

Rating
Does not participate
Location
Украина
Registered
Activity