Как стать автором
Обновить
18
0.1

Любитель ферритовой памяти и больших ЕС ЭВМ

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

Почему для меня так важен алгоритм CORDIC

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

CORDIC — это алгоритм для вычисления тригонометрических функций вроде
sin, cos, tan и тому подобных на маломощных устройствах без использования модуля обработки операций с плавающей запятой или затратных таблиц поиска. По факту он сводит эти сложные функции до простых операций сложения и битового сдвига.

Перейду сразу к делу и скажу, почему я так сильно люблю этот алгоритм, а затем займёмся изучением принципов его работы. По сути, фактические операции CORDIC весьма просты — как я уже сказал, это сдвиги и сложение — но выполняет он их путём комбинирования векторной арифметики, тригонометрии, доказательств сходимости и продуманных техник компьютерных наук. Лично я считаю, что именно это имеют ввиду, описывая его природу, как «элегантную».
Читать дальше →
Всего голосов 87: ↑87 и ↓0+113
Комментарии27

Использование простейших микросхем в конструкции ранних ЕС ЭВМ

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

Серия статей Дмитрия Руднева (эта и др.) натолкнула меня на мысль написать заметку о построении простых схем (триггеров, дешифраторов и т. п.) в реальных отечественных вычислительных машинах начала 1970-х годов — в первую очередь, ЕС-1020 (1971 год), по которой имеется довольно подробная литература.

Практически вся логическая часть процессора этой машины, как и создаваемой одновременно с ней более мощной ЕС-1030, была построена всего на девяти типах микросхем 155-й серии, в те годы (первая половина 1970-х) носивших обозначения К1ЛБ551, К1ЛБ552, К1ЛБ553, К1ЛБ554, К1ЛБ556, К1ЛБ557, К1ЛР551, К1ЛР553 и К1ЛП551. В 1975-м году была принята новая система обозначений, используемая с некоторыми расширениями и доработками до сих пор; перечисленным старым обозначениям соответствуют К155ЛА1, ЛА2, ЛА3, ЛА4, ЛА6, ЛА7, ЛР1, ЛР3 и ЛД1. В дальнейшем я буду использовать только привычные новые обозначения, для краткости опуская обозначение серии.

Читать далее
Всего голосов 41: ↑41 и ↓0+41
Комментарии69

Кто реально угрожает C++ (нет, Rust, не ты)

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

Привет! Меня зовут Александр Каленюк, и я крепко подсел на C++. Пишу на C++ 18 лет кряду, и все эти годы отчаянно пытаюсь избавиться от этой разрушительной зависимости.

Всё началось в конце 2005 года, когда мне довелось писать движок для симуляции 3D-пространства. В этом движке было буквально всё, чем язык C++ мог похвастаться в 2005 году. Трёхзвёздочные указатели, восьмиуровневые зависимости, C-подобные макросы повсюду. Кое-где – вкрапления ассемблера. Итераторы в стиле Степанова и мета-код в стиле Александреску. В общем, всё. Кроме ответа на самый важный вопрос: зачем?

Читать далее
Всего голосов 220: ↑208 и ↓12+244
Комментарии362

Полный гайд о стиле для IT-специалистов: как выглядеть актуально и чувствовать себя комфортно

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

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

Читать далее
Всего голосов 186: ↑83 и ↓103-4
Комментарии353

Анатомия Hello World на языке C

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

Эта статья посвящена программе Hello World, написанной на C. Это максимальный уровень, на который можно добраться с языком высокого уровня, не беспокоясь при этом о том, что конкретно язык делает в интерпретаторе/компиляторе/JIT перед выполнением программы.

Изначально я хотел написать статью так, чтобы она была понятна любому, умеющему кодить, но теперь думаю, что читателю полезно иметь хотя бы некоторые знания по C или ассемблеру.
Читать дальше →
Всего голосов 125: ↑125 и ↓0+142
Комментарии47

Дивный мир японских аркад в новом столетии

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

В XXI веке сложилась парадоксальная ситуация: рынок аркадных автоматов в Японии не только продолжил существовать, но и развивается по сей день. О том, какие игры на рынке аркад есть сейчас (порой — совсем непонятные европейскому игроку) — в новом материале про аркады.
Читать дальше →
Всего голосов 46: ↑46 и ↓0+55
Комментарии26

Небольшая щепотка ультразвуковых чудес

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

Несмотря на свою практически неслышимость и незримость, ультразвук имеет множество применений в современной жизни. В связи с этим мы и рассмотрим некоторые весьма любопытные его реализации, вдвойне интересные ещё с той точки зрения, что они содержат полный набор исходников проектов, что позволяет любому желающему испытать свои силы в реализации описанного. Итак…
Читать дальше →
Всего голосов 49: ↑45 и ↓4+63
Комментарии23

ChatGPT клиент для MS-DOS

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

Благодаря стараниям ретро энтузиаста Yeo Kheng Meng (очень рекомендую его сайт, много интересного по ретро технике) можно юзать ChatGPT на DOS машинах. Кто владеет языком рекомендую Оригинальный пост на ангельском.

Я тестил проект на машине Toshiba T1200, (для которой к слову опробовал пару новых модов, о которых напишу ниже). Железо: проц 8086, 640КБ озу (Технически 1024КБ но это не точно), HDD неисправен, поэтому грузимся с дискет (720КБ). Подключение к сети я подробно описал в предыдущем посте

Проект на гите https://github.com/yeokm1/doschgpt - качаем самую свежую версию (на момент публикации v0.15) - два файла: doschgpt.exe и doschgpt.ini из папки releases. В ini файле нужно прописать ваш api ключ для chatGPT, версию языковой модели и адрес http-https прокси. Proxy? Да. Разумеется DOS не поддерживает SSL который нужен для подключения к апишке ChatGPT, но к счастью наш друг Yeo Kheng Meng написал удобное proxy-приложение https://github.com/yeokm1/http-to-https-proxy - нужно запустить на промежуточном компьютере и указать адрес этого пром. компьютера в файле doschgpt.ini

Читать далее
Всего голосов 23: ↑23 и ↓0+23
Комментарии20

Белые медведи — точно всеядные и почти точно выживут

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

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

Читать далее
Всего голосов 14: ↑11 и ↓3+13
Комментарии4

Каков C++ в gamedev'e?

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

Хотел написать продолжение к статье Что почитать игровому программисту? про использование С++ в игровых движках, но размышления свернули куда-то не туда.

Завороженно смотрю как и какими темпами идет развитие языка в последние годы, и понимаю, что получить и особенно применить возможности С++20/3 в разработке игр и движков получится хорошо, если с опозданием лет эдак в пять, как раз на следующее поколение консолей, если вообще получится. Сейчас плюсы в игрострое зависли где-то между 14 и 17 стандартом, Сони только-только выкатила свою версию компилятора с полной поддержкой 17 стандарта, а учитывая реактивность игровых студий в изменении кор пайплайнов, что-то новое начнут только в новых проектах. Менять коня, т.е. компилятор посреди разработки игры равносильно стрельбе не только по ногам себе, но и соседям программистам: работает - не чини.

Если смена компилятора и стандарта не даст гарантированного прироста скорости работы больше 5%, то бюджет и людей я не одобрю. (с)

Знакомство с кодовой базой больших движков дает понимание уровня и объёмов кода в продакшене и в тулзах, и ситуация вырисовывается такая, что эти объемы стали в индустрии, что называется "too big to fall", т.е. написать что-то новое, уровня движков вроде Unity/Unreal/Dagor на другом языке, будь он хоть в тысячу раз безопаснее и в десять раз быстрее не получится, но попытки конечно делаются. И чем дальше продолжается поддержка существующих проектов на плюсах, тем меньше возможности выбора остается.

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

По техдолгам будут платить наши джуны
Всего голосов 74: ↑73 и ↓1+83
Комментарии59

Интерпретатор Brainfuck на Brainfuck

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

Когда-то давно, году в 2013-м, на глаза мне попался следующий код:

>>>+[[-]>>[-]++>+>+++++++[<++++>>++<-]++>>+>+>+++++[>++>++++
++<<-]+>>>,<++[[>[->>]<[>>]<<-]<[<]<+>>[>]>[<+>-[[<+>-]>]<[[
[-]<]++<-[<+++++++++>[<->-]>>]>>]]<<]<]<[[<]>[[>]>>[>>]+[<<]
<[<]<+>>-]>[>]+[->>]<<<<[[<<]<[<]+<<[+>+<<-[>-->+<<-[>+<[>>+
<<-]]]>[<+>-]<]++>>-->[>]>>[>>]]<<[>>+<[[<]<]>[[<<]<[<]+[-<+
>>-[<<+>++>-[<->[<<+>>-]]]<[>+<-]>]>[>]>]>[>>]>>]<<[>>+>>+>>
]<<[->>>>>>>>]<<[>.>>>>>>>]<<[>->>>>>]<<[>,>>>]<<[>+>]<<[+<<
]<]

Это интерпретатор языка Brainfuck, написанный на самом Brainfuck. Ссылки на оригинал у меня не осталось, только код, так что автора я назвать не смогу.

Мне всегда было безумно интересно узнать, как он работает. И теперь я решил наконец-то это сделать!

Читать далее
Всего голосов 95: ↑93 и ↓2+116
Комментарии20

Исследование звука: удаление шумов

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

Обработка звука - это процесс исследования динамической/статической звуковой дорожки при помощи применения определенного набора линейных и нелинейных алгоритмов с целью получения необходимой информации. 

Алгоритмы динамической обработки звука работают с потоковым аудио, когда статически обрабатывают уже готовую звуковую дорожку.

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

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

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

Цель данной работы – исследовать алгоритмы удаления посторонних шумов из аудио дорожки.

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

Читать далее
Всего голосов 5: ↑4 и ↓1+5
Комментарии0

Следует ли проверять указатель на NULL перед вызовом функции free?

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

Проверка указателя перед вызовом функции free


Короткий ответ: нет. Тем не менее, раз про это вновь и вновь спрашивают на Reddit, Stack Overflow и других сайтах, пришло время подробно разобрать эту тему. Оказывается, есть много интересного, о чём можно порассуждать.

Читать дальше →
Всего голосов 66: ↑65 и ↓1+84
Комментарии35

Как шутят математики. Решение первого шифра Олама

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

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

Итак, Лос-Аламос объединил одной целью многих видных учёных того времени. Одним из них был замечательный учёный Ричард Фейнман. Разумеется, основным предметом его интереса всегда была физика, но помимо потрясающих познаний в ней, профессор Фейнман отличался и другими талантами. Из его автобиографии (всем, кто ещё не читал, настоятельно рекомендую) известен факт, что профессор особенно гордился своими реактивными скилами решения головоломок и математических задач.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии16

ASCII-арты на python

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

Здравствуйте уважаемые читатели, в этой статье я расскажу Вам как делать ASCII-арты при помощи языка python, на примере моего кода.

Читать далее
Всего голосов 19: ↑18 и ↓1+24
Комментарии18

«Пиратский» Google Chrome в Microsoft Windows 7 год спустя. И примкнувший к ним MS EDGE, Opera, Brave. Полная версия

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

Пиратство растёт, милорд!

Google Chrome для Windows 7 - детальный технический отчёт, каким образом актуальная версия популярнейшего браузера всё равно работает в «семёрке» даже спустя год после официального прекращения её поддержки корпорацией. Реакция Google LLC или почему пиратство только набирает обороты?

Читать далее
Всего голосов 117: ↑103 и ↓14+105
Комментарии163

Малоизвестные и интересные особенности C и C++

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

В C и C++ есть особенности, о которых вас вряд ли спросят на собеседовании (вернее, не спросили бы до этого момента). Почему не спросят? Потому что такие аспекты имеют мало практического значения в повседневной работе или попросту малоизвестны.

Целью статьи является не освещение какой-то конкретной особенности языка или подготовка к собеседованиям, и уж тем более нет цели рассказать все потайные смыслы языка, т. к. для этого не хватит одной статьи и даже книги. Напротив, статья нужна для того, чтобы показать малоизвестные и странные решения, принятые в языках C и C++. Своего рода солянка из фактов. Вопрос “что делать с этими знаниями?” я оставляю читателю.

Если вы, как и я, любите и интересуетесь C/C++, и эти языки являются неотъемлемой частью вашей жизни, в том числе и его углубленного изучения, то эта статья для вас. По большей части я надеюсь, что эта статья сможет развлечь и заставить поработать головой. И если получится, рассказать что-то, чего вы, возможно, еще не знали.

Читать далее
Всего голосов 127: ↑126 и ↓1+159
Комментарии61

Когда старый софт лучше нового

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

У каждого из нас наверняка есть подборка старого проверенного софта, который много лет работает без сбоев. В такой ситуации возникает вопрос: а зачем его обновлять?

Практика показывает, что новые версии утилит часто изменяются к худшему, раздуваются, обрастают ненужными функциями, начинают тормозить или вовсе перестают запускаться. Ухудшение программного продукта со временем — известный процесс, для которого есть специальный термин: дерьмофикация (enshittification, слово придумал Кори Доктороу). Она происходит не только с десктопным или мобильным софтом, но и с платформами. Все мы за последние годы наблюдали дерьмофикацию Google, Reddit, Amazon, Twitter и Facebook (два последних вообще признаны экстремистами и запрещены в РФ). Аналогично с десктопным софтом и мобильными приложениями.

В то же время старый софт многолетней давности фантастически быстро работает. Программы в несколько мегабайт, которые запускаются мгновенно, потребляют минимум памяти и просто летают. По сути, ресурсы современных CPU для них избыточны. Пользоваться такими инструментами одно удовольствие. Такое чувство, что работаешь на суперкомпьютере, а не обычном ПК.
Читать дальше →
Всего голосов 185: ↑144 и ↓41+149
Комментарии512

Собираем автономную игру на C# в 2 килобайтах

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

Моё детство пришлось на эпоху 1,44-мегабайтных дискет и 56-килобитных модемов, поэтому я всегда любил маленькие программы. Раньше можно было записать на дискету кучу мелких игр и таскать её с собой. Если программа не помещалась на дискету, я задумывался, почему — в ней много графики? Есть музыка? Возможно, она выполняет много сложных операций? Или она просто раздута?

В наши дни дисковое пространство стало настолько дешёвым, что люди отказались от оптимизации по размеру.

Размер важен только при передаче: если вы передаёте программу по проводам, мегабайты равны секундам. По быстрому соединению на 100 Мбит в лучшем случае можно передать 12 МБ в секунду. Если на другом конце провода находится человек, ожидающий завершения скачивания, то разница между пятью и одной секундой может существенно повлиять на его ощущения.

Человек может зависеть от времени передачи как напрямую (пользователь, скачивающий программу по сети), так и косвенно (serverless-сервис, отвечающий на веб-запрос).

Люди обычно воспринимают всё, что длится меньше 0,1 секунды, как мгновенное, 3 секунды — это примерно тот предел, после которого прерывается состояние потока пользователя; а уж 10 секунд удержать внимание пользователя очень сложно.

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

Эта статья задумывалась как эксперимент, позволяющий выяснить, каким может быть минимальный размер полезного автономного исполняемого файла C#. Могут ли приложения на C# достичь размеров, при которых пользователи будут ощущать их скачивание как мгновенное? Позволит ли это использовать C# там, где он не используется сейчас?
Читать дальше →
Всего голосов 98: ↑97 и ↓1+126
Комментарии35

Проведем эксперимент: Кто справится лучше с созданием видео под конец этого года — человек или нейронные сети?

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

«Через 10 лет нам всем шибздец». Такой комментарий я встретил под своим предыдущим постом, когда пытался провести эксперимент: написать песню на русском и сделать видео при помощи нейронных сетей. И я задумался: а что, если сравнить процесс генерации видео нейронными сетями и создания моушн-дизайна человеком под конец этого года? Сколько времени это занимает, из каких этапов состоит процесс и какова стоимость? Может быть, не все так однозначно, или, наоборот, не нужно ждать целых 10 лет. Вы сможете увидеть результат созданной анимации человеком и искусственным интеллектом из одной и той же картинки, чтобы сделать выводы самостоятельно.

Какой такой шибздец?
Всего голосов 8: ↑6 и ↓2+5
Комментарии8

Информация

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

Специализация

Computer Vision Engineer