Search
Write a publication
Pull to refresh
10
0.3

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

Send message

Язык R для пользователей Excel (бесплатный видео курс)

Reading time6 min
Views34K

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


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


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


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

Леммы о разрастании для регулярных и контекстно-свободных языков

Reading time12 min
Views13K

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


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


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




КДПВ иллюстрирует процесс разрастания для КС-грамматик

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

Разработка игр под NES на C. Главы 1-3. От введения до Hello World

Reading time8 min
Views43K

Впервые я задумался о том, как разрабатывают игры под приставки где-то через 20 минут после того, как в самый первый раз увидел Turbo Pascal. На глаза иногда попадался Subor с клавиатурой, и появилась мысль: "Наверное можно набрать какую-то программу, а потом в нее поиграть". Но интерес быстро затух, потому что абсолютно никакой информации по этой теме тогда не было доступно. Следующий раз эта же идея всплыла, когда увидел вполне играбельные эмуляторы старых консолей. Тогда стало ясно, что вбивать листинг в саму консоль и необязательно. Где-то очень потом появился Хабр с благожелательной аудиторией для таких вещей. В какой-то момент даже начал собирать разрозненную инфу чтобы написать мануал самому, и вот сегодня наткнулся на готовый учебник, который явно надо перевести.


Разработка под старые консоли документирована вдоль и поперек, но именно по NES 99% информации относятся к разработке на Ассемблере. Меня почему-то зарубило, что надо освоить именно работу с С.


следующая >>>
image

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

Разработка hexapod с нуля (часть 8) — улучшенная математика передвижения

Reading time6 min
Views11K

Всем привет! В результате перехода на удаленную работу у меня появилось больше свободного времени на разработку гексапода (+2 часа в день за счет экономии на дороге). Я наконец-то смог сделать универсальный алгоритм для построения траектории движения в реальном времени. Новая математика позволила реализовать базовые движения путем изменения всего двух параметров. Это очередной шаг к внедрению «автопилота». В этой статье я постараюсь подробно рассказать о новой математике и как это вообще работает. Будет много картинок и gif.

Этапы разработки:

Часть 1 — проектирование
Часть 2 — сборка
Часть 3 — кинематика
Часть 4 — математика траекторий и последовательности
Часть 5 — электроника
Часть 6 — переход на 3D печать
Часть 7 — новый корпус, прикладное ПО и протоколы общения
Часть 8 — улучшенная математика передвижения
Часть 9 — завершение версии 1.00

3D своими руками. Часть 2: оно трехмерное

Reading time32 min
Views39K


В предыдущей части мы разобрались, как выводить на экран двумерные объекты, такие как пиксель и линия (отрезок), но ведь хочется поскорее создать что-то трехмерное. В этой статье впервые попробуем вывести 3D-объект на экран и познакомимся с новыми математическими объектами, такими как вектор и матрица, а также некоторыми операциями над ними, но только с теми, которые применим на практике.
Продолжить обучение

3D своими руками. Часть 1: пиксели и линии

Reading time13 min
Views29K


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

Первая и двадцать пятая

Reading time11 min
Views9.1K
Самое близкое к нам и вроде бы отлично исследованное небесное тело, Луна, до сих пор вызывает серьезный научный интерес. Как на полюсах появился водяной лед, и что он из себя представляет? Это захваченное “холодными ловушками” вещество комет и астероидов? Или же результат вулканизма, когда очень давно вода была поднята из глубин Луны? Какой у него изотопный состав — совпадает ли он с земным и может ли что-то сказать о том, как появилась вода на нашей планете? А насколько удобно будет использовать его для работы обитаемой базы или делать из него ракетное топливо? Над поверхностью Луны поднимается пыль, фиксируются очень небольшие концентрации газообразных веществ — это называют экзосферой. Как ведет себя экзосфера Луны в зависимости от времени суток, как реагирует на гигантские перепады температуры между днем и ночью? Приблизиться к ответу на эти вопросы должна будет станция «Луна-25», которая может стать первым аппаратом, севшим у южного полюса и первой российской межпланетной станцией на Луне уже осенью 2021 года. Под катом история аппарата и интервью с Игорем Митрофановым, заведующим отделом ядерной планетологии Института космических исследований РАН и одним из руководителей миссии.


Макет «Луны-25» в цехе НПО им. Лавочкина, фото Sputnik / Игорь Лекаркин
Читать дальше →

Программирование троичного вычислителя: играем с эмулятором

Reading time6 min
Views9.9K

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



— Жуткий кошмар! Нули и единицы повсюду. И кажется, я видел двойку.
— Это просто сон, Бендер. Двоек не бывает.

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

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

Минисериал: троичный компьютер своими руками

Reading time7 min
Views34K

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


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


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

GFDM и тензоры. Продолжение

Reading time8 min
Views16K
Сначала я хотел не углубляться в тензоры и описать их мимоходом, касаясь только используемого мной функционала. Однако я изменил свое мнение и решил рассказать больше. Добро пожаловать в многомерный мир.

Какие еще тензоры?

Как выбрать первый язык программирования, гайд желающим начать программировать

Reading time5 min
Views23K
Кратко для введения: я являюсь профессиональным разработчиком игр и мне есть что сказать себе 15 лет назад. Я решил оформить статью с рекомендациями тем, кто находится в самом начале пути к программированию. Статья в основном направлена на школьников (и их родителей), студентов и может быть джунов. Для людей более старшего возраста, но желающих стать программистами, думаю, также будет интересно.

image
«Опять двойка» — картина художника Фёдора Решетникова
Читать дальше →

Применимость увеличений в астрономическом телескопе

Reading time5 min
Views22K
Увеличение является наиболее неправильно понятым параметром телескопов, причем не только новичками. Новые пользователи телескопа часто предполагают, что большее увеличение дает лучший результат. Но они быстро узнают, что это редко так, и даже наоборот, более низкая кратность почти всегда дает лучшее изображение.

image

Планетные наблюдения, Сочи, 600 метров над уровнем моря. (На фото: К. Радченко)
Читать дальше →

Собираем 8-битный компьютер: как уменьшить количество микросхем до шести

Reading time5 min
Views24K

Сочетание старого трюка с кодированием цветов в NTSC и современного железа позволяет собрать на удивление работоспособную машину

В 8-битных системах есть что-то перманентно притягательное: вы можете собрать автономную систему, достаточно мощную, чтобы поддерживать адекватное взаимодействие с пользователем, но достаточно простую, чтобы собрать и запрограммировать её самостоятельно. Большинство современных 8-битных машин, созданных любителями, завязаны на классических процессорах, которые жили в золотой век домашних компьютеров 1980-х годов, когда в качестве дисплеев использовали миллионы телевизоров. Вначале была идея собрать свою машину на базе процессора Motorola 6809 из той же эпохи. Я пытался использовать как можно меньше микросхем, но несмотря на мои старания, мне всё ещё нужно было 13 дополнительных микросхем для работы с ОЗУ и последовательной передачи данных. Тогда я задумался: а что, если я использую более современный 8-битный процессор? Насколько сильно при этом я смогу снизить количество необходимых мне микросхем?
Читать дальше →

Классификация Deep Sky объектов и их наблюдение

Reading time22 min
Views7.2K
Привет, Хабр! Представляю вашему вниманию адаптированный перевод статьи «Deep Sky Objects and Their Observation» с любезного резрешения автора.

Интересная статья, классифицирующая объекты Deep-Sky, описывающая их разную природу образования. Также данная публикация дает крайне ценную информацию по методам наблюдения подобных космических объектов. В данном материале, автор делится своими личными впечатлениями о наблюдении столь завораживающих объектов как всевозможные туманности.

Интересного ознакомления, друзья!

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

Проект «Стакан». Энергоэффективность одноразовых стаканчиков с чаем/кофе

Reading time9 min
Views21K

2020 год. Вроде бы 12 марта. Сверхсекретная лаборатория научно-исследовательского института Тепла и Холода (НИИТиХо). Где-то в Подмосковье.

– Товарищи! – заведующий лабораторией победно воздел кулак к потолку и задорно посмотрел на недавно проснувшихся инженеров и лаборантов.

Частично заполненный и видавший виды актовый зал института вяло пробурлил в ответ.

– Сегодня утром я собрал вас ради одного очень важного объявления. Во-первых, расстояние между вами на работе должно быть не менее! Повторяю, НЕ МЕНЕЕ! Одного метра. Как вы будете это обеспечивать – думайте, вы ж инженеры.

Мысль ушла в массы, вызывая легкий смех и робкое неодобрение.
Читать дальше →

Генератор музыки. Web Audio API. Опыт новичка

Reading time12 min
Views12K

Контекст и предыстория


Мне 62. Года три назад решил попробовать написать достаточно сложную систему, до этого было только 20 строк на бэйсике в 1981 г., когда нам на 5 курсе радио-факультета (НГТУ, ранее НЭТИ) воткнули 3 месяца информатики. Профессионалом принято считать того, кто предметом владеет и на нем зарабатывает, так что по факту я — новичок.

С другой стороны, я почти всю жизнь занимался относящимися к музыке алгоритмами, застал процесс развития и железа, и ПО и по мере сил участвовал в нем. В 1978 разработал и собрал синтезатор а-ля Mini-Moog (полагаю, 1-й за Уралом), разработал и выпускал 1-ю в СССР звуковую карту с синтезатором для Агат7(9) — советский аналог Apple II, проектировал модуль FM-синтеза для одного из заводов, сотрудничал с Cakewalk (США), PGMusic (Канада), PowerFX (Швеция) — чаще по схеме: «идеи и воплощение от нас, бюджет — от них», участвовал в международных музыкальных выставках MusikMesse (Германия), NAMM (США) и пр.
Читать дальше →

SameSite=Lax по умолчанию — уже в Chrome 80 stable (правда, пока не у всех)

Reading time4 min
Views62K
На днях внимательная коллега (спасибо, Лена) зарепортила странный баг — сервер нормально ставил куку в браузере, но обратно она не прилетала. Днём ранее всё работало, теперь же кука выставлялась, но спустя несколько секунд магическим образом пропадала (хотя должна держаться сутки). Воспроизводилось это всего у нескольких человек в команде и только в новом Chrome 80, но у остальных в Chrome точно такой же версии всё было в порядке. В других браузерах всё работало как часы. Мистика. Начали разбираться, и спустя какое-то время в консоли Chrome заметили предупреждение для заголовка ответа, устанавливающего куки:
A cookie associated with a cross-site resource at _your_domain_ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`.

Начали изучать что это такое, и постепенно стало понятно, как ошибка возникла и почему проявлялась не у всех. Поскольку наш сервис должен обрабатывать запросы с разных доменов, то SameSite — как раз наш случай. Добавили SameSite=None; Secure, и проблема для нас решилась.

Почему так?

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

Помехоустойчивое кодирование с иcпользованием различных кодов

Reading time5 min
Views135K
Это продолженеие статьи о помехоустойчивом кодировании, которая очень долго лежала в черновиках. В прошлой части нет ничего интересного с практической точки зрения — лишь общие сведения о том, зачем это нужно, где применяется и т.п. В данной части будут рассматриваться некоторые (самые простые) коды для обнаружения и/или исправления ошибок. Итак, поехали.
Читать дальше →

Эра, когда сложно потеряться

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


Спутник ГЛОНАСС-К в павильоне “Космос” ВДНХ

Это мог быть очередной JavaScript-фреймворк

Reading time10 min
Views8.8K

Прошлым летом, в процессе подготовки статьи для Хабра, я не поленился упаковать свой шаблон для бэкэнд-приложений на Node.js в npm-пакет, сделав из него cli-утилиту для быстрого старта.


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


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


image

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

Information

Rating
3,509-th
Location
Москва, Москва и Московская обл., Россия
Registered
Activity