Обновить
11
0.9

JavaScript-разработчик

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

Быстрый алгоритм fulltext-поиска без токенизации

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров4.4K

Меня зовут Дмитрий Ольшанский, я ведущий инженер Т-Банка. Расскажу о новом (насколько мне известно) алгоритме поиска текста по шаблону. Такая задача возникла в рамках проекта Sage — observability-платформы от Т-Банка, для которой мы строим новый бэкэнд для структурированных логов, SageDB. 

Читать далее

Всё, что вам не рассказали про Shunting Yard

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров2.5K

Алгоритм сортировочной станции (Shunting Yard) был предложен Дейкстрой ещё в 1961 году и служит для преобразования математических выражений из привычной всем инфиксной записи (где операторы стоят между операндами, как в 1 + 2 * 3) в постфиксную (обратную польскую нотацию, 1 2 3 * +), удобную для дальнейшего вычисления. Однако есть один важный момент, который почти всегда упускается или замалчивается: алгоритм предполагает, что входное выражение уже синтаксически корректно.

Ни в Википедии, ни в большинстве обучающих статей вы не встретите слов о том, что выражения вроде + (1 2, 3 * 4 + ) или sin(+) должны вызывать ошибку. В лучшем случае они просто не вычисляются (что будет понятно лишь на этапе обработки в обратной польской записи), в худшем – дают бессмысленный результат. Алгоритм продолжает работать, даже если выражение изначально некорректно – и мало кто задумывается, почему это плохо.

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

Читать далее

Лямбда, Лисп и Ложбан — в поисках утраченного Вавилона, или мой проект конструирования симметричного языка

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров3.9K

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

Читать далее

Evertop: ультра-экономичный ПК на солнечной батарее

Время на прочтение5 мин
Количество просмотров6.9K

Evertop — это портативный ПК, эмулирующий IBM XT с процессором 80186 и 1МБ RAM. На нём можно запускать DOS, Minix и некоторые другие ОС из 80-х. Можно запустить и Windows до версии 3.0. Благодаря мощному и при этом экономичному микроконтроллеру, E-Ink дисплею, батареям на 10 000 мАч и реализации исключительных мер энергосбережения, он может работать на одном заряде до сотен и даже тысяч часов. Прибавьте сюда встроенную солнечную батарею и вы сможете использовать его бесконечно в условиях отсутствия сети, не беспокоясь о подзарядке.
Внутри много фото

Русский инженер против снега на крыше

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров12K

Снег. 

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

Меня зовут Алексей, я работаю инженером в ТЕХНОНИКОЛЬ. Так как я часто общаюсь с клиентами и монтажниками, я заметил проблему: ответственные за крышу зданий неправильно понимают, когда именно нужно чистить снег. 

Мне стало интересно разобраться, но ничего подходящего я не нашел. Российские системы только измеряли толщину снега и стоили дорого. Зарубежные — использовали громоздкие платформы 3×3 метра, которые трудно установить. Тогда я задумался о своем устройстве.

Читать далее

Химический ракетный двигатель с высоким удельным импульсом

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров11K

КДПВ


Эта заметка появилась как своего рода ответ на статью «Прорывная концепция ракетного двигателя» Глеба Кулева.


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


В комментариях, я и другие читатели доказывали ему, что это в принципе невозможно. Из-за закона сохранения энергии.


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

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

Почему ракета не долетела до звёзд, но зажгла мечту. Исповедь конструктора

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров4.7K

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

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

Ну, полетели, чего ждать

Народный измеритель ёмкости батареек и аккумуляторов BatteryTest 2

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров21K

Я завершил разработку новой версии прибора для измерения ёмкости любых батареек и аккумуляторов.

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

Любой желающий может собрать такой прибор из доступных модулей.

Читать далее

Обратное распространение ошибки… на пальцах… без формул

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров8.1K

Общая суть метода «обратного распространения ошибки» от простого примера до создания полносвязной нейронной сети.

Читать далее

Курсовой проект по проектированию ракет-носителей

Время на прочтение6 мин
Количество просмотров2.5K

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

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

Вот решил написать небольшую памятку как выполнять курсовой проект по проектированию ракет-носителей.

Читать далее

Проектирование ракеты-носителя тяжёлого класса и её варианты

Время на прочтение7 мин
Количество просмотров3.7K

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

Читать далее

Ни одна реализация элементарных функций не соответствует стандарту IEEE 754

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров17K

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

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

Моя работа в течение последнего года заключалась в анализе погрешности различных математических функций, накопления этой погрешности и способов её уменьшения при помощи различных программных паттернов. Одной из исследованных мной тем были базовые математические функции, используемые в функциях активации нейронных сетей, а также способы их аппроксимации для повышения производительности. В процессе работы нам пришлось столкнуться с противодействием со стороны людей, активно стремящихся к корректной реализации математических функций и к соответствию их стандартам, в частности, к соблюдению обеспечения корректности одной наименее значимой единицы измерения (unit in last place, ULP) для элементарных функций.

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

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

Судоку: моя попытка в новый алгоритм решения. Часть 2. Заполнение латинского квадрата

Уровень сложностиСредний
Время на прочтение28 мин
Количество просмотров1.3K

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

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

Читать далее

Учёные отметили на карте Луны лучшие места для сбора образцов

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров593

Как геологическая карта лунного ударного кратера, образовавшегося миллиарды лет назад, может помочь будущим человеческим и роботизированным экспедициям на лунную поверхность? Именно на этот вопрос отвечает недавнее исследование, опубликованное в журнале The Planetary Science Journal. Международная группа исследователей составила, пожалуй, самые глубокие, полные и подробные геологические карты моря Восточного, которое представляет собой одну из крупнейших и древнейших геологических структур на Луне. Это исследование может помочь учёным, инженерам и планировщикам миссий разработать миссии по сбору и возвращению образцов, которые смогут установить абсолютный возраст геологии Луны, что приведёт к лучшему пониманию формирования и эволюции Луны и Земли.

Читать далее

Как я избавляюсь от компьютерной шеи (text neck)

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров58K

Нагрузка на позвоночник в зависимости от наклона головы

Маленькое отступление: мне 43, первый компьютер «Сура ПК8000» появился у меня в 6 лет. С тех пор дома всегда были компы, за которыми я проводил довольно много времени. До 40 лет я ни разу не лежал в больнице, и со здоровьем, в целом, все хорошо.

Но сидячий образ жизни и работа за компьютером берут свое, поэтому есть небольшая сутулость, близорукость и начинается проявляться «компьютерная шея», а уставшие под конец дня спина, шея и глаза сводят работоспособность к нулю. Массаж, пешие прогулки и какая-то физическая активность в течение дня глобально ничего не меняют. Скорее, не дают ситуации ухудшиться.


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

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

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

Но сначала определимся с терминами и откуда они взялись.
Читать дальше →

Как даже 6 простых команд роботу могут стать головной болью разработчика настольной игры

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2K

Я автор настольной игры о программируемых роботах «Битва Големов». Игры, обучающей детей от 6–7 лет. И я хочу рассказать, почему даже 6 простых команд, которые «понимают» роботы, стали для меня головной болью, как я решал проблемы игровой механики и почему в итоге правила игры «распухли» до 16 страниц, но это не страшно.

Читать далее

Судоку: моя попытка в новый алгоритм решения. Часть 1 (надеюсь)…

Уровень сложностиСредний
Время на прочтение29 мин
Количество просмотров2.4K

Как известно, нахождение оптимального алгоритма решения любой NP-полной задачи - это цель амбициозная, пахнущая славой и неплохими деньгами. Как раз к таким задачам относится Судоку, и как раз своим решением этой головоломки я горел последний месяц. На данный момент сделана (по ощущениям) лишь половина дела, и хоть результаты и вышли интересными (по крайней мере для меня-любимого) - дело еще далеко до завершения, т.к. в определенном моменте настал "творческий тупик". Впрочем, надеюсь, что он пройдет и на свет появится по крайней мере какое-то новое любопытное решение. Пока что лишь поделюсь своими первыми наработками в этом направлении. Пока что они не вполне вылизаны + написаны на Java, перевод на какой-нибудь более простой для восприятия язык планируется лишь с окончательной победой на Java.

Читать далее

RTS — Реактивный язык программирования свободных структур данных

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров3.9K

Представляю вам свой open-source проект - RTS (Real-Time Script). Это реактивный язык свободных структур данных, опирающийся на новый подход к программированию. Проект я начал и продолжнаю писать на данный момент в одиночку начиная с 6 Декабря 2023 года. Пол года было потрачено на создание концептов и ещё пол года на саму реализацию.

Далее будет рассказ, он будет довольно подробный и я надеюсь, не будет сумбурным. Сама цель моего рассказа, объяснить работу RTS и концепции к которым меня привела моя работа в этой области. Это мой первый пост как на Хабре, так и в целом более-менее публичный про RTS. Поэтому прошу отнестить с пониманием. В случае, если у вас есть критика, предложения и т.п., то рад буду обсудить и ответить.

Читать далее

Вёрстка Учебника (LaTeX + CPP + GNU Make + Jenkins = Учебник)

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров3.9K

Вы, наверное удивитесь, но чтобы написать учебник, надо знать системы сборки из софтверного БигТеха и, как ни странно, старый добрый сишный препроцессор (cpp).

Да, господа... Именно так...

В этой заметке я покажу несколько трюков по работе с LaTeX.

Читать далее

Как мы помогаем развиваться web3 front-end разработчикам благодаря нашей Карте развития в 2024 году

Время на прочтение6 мин
Количество просмотров1.9K

Привет, Хабр! Меня зовут Миша Якубчук, я техлид фронтенд-направления в Металампе. Мы всегда любили погружаться в предметку, изучать много информации и заниматься саморазвитием — именно поэтому в 2016 году была запущена наша первая карта развития для разработчиков — по бэкенду, а затем по фронтенду. Но в этой статье я расскажу о нашей карте развития для web3 фронтендеров.

Читать далее

Информация

В рейтинге
1 826-й
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность