Pull to refresh
48
0
Valentin Nechayev @netch80

Программист (backend/сети)

Send message

Процессор на коленке ч.1

Level of difficultyMedium
Reading time11 min
Views12K


Предыстория


Захотелось мне как-то перевести управление станком на ПЛИС, а для этого понадобилось ядро процессора. Поиск на opencores не особо помог, x86 лицензированный, ARM лицензированный, NIOS… ну, вы поняли. Если выдумывать свою систему команд, может получиться криво, и главное, где брать компилятор. В общем, всё было сложно, так что на время идею пришлось отложить.
С недавних пор ситуация изменилась, архитектура RISC-V пошла в массы.

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

Дискретные тригонометрические функции, машинный эпсилон и автоматическое дифференцирование

Level of difficultyHard
Reading time7 min
Views5.6K

Попалась мне недавно статья Синус, косинус, квадратный корень FixedPoint. Автор размышляет как можно не затратно рассчитывать координаты и углы в микроконтроллере. Попробовал я подсказать автору пару аппроксимаций, но он оказался разговорчив только на тему "упадка автоматизации в РФ", а по делу как то не сложился диалог. Посмотрел, такие статьи не редкость. Например, очень хорошая статья Как посчитать синус быстрее всех на Xабре. В общем разгрузил себе голову на майских праздниках от главного хобби - геометрической алгебры.

В процессе изучения всего этого, возник у меня вопрос - а зачем вообще нужно аппроксимировать sin,cos, arctan и еще и в привязке к числу в двоичной системе, если есть декартовы координаты?

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

Автоматическим дифференцированием можно назвать любую конечную разность, например dy=(y(x+ε)-y(x-ε))/(2*ε). Разность взята центральная, так как она дает меньшую погрешность.

 ε это машинный ноль. За счет округления до младшего бита его главное свойство: ε^2=0.

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

Читать далее

Инженерия — не наука

Level of difficultyMedium
Reading time18 min
Views4.8K

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

Читать далее

Нейросети: обучение или деградация?

Level of difficultyEasy
Reading time13 min
Views5.6K

«Не отупею ли я от нейросетей, если перестану думать и буду всё спрашивать у Claude?» Наверное, каждый здесь хоть раз задавал себе этот вопрос. Есть такой червячок сомнения, правда?

Нейросети — очень мощная штука. Кто-то утверждает, что беседа с нейросетью — лучше психологов и лучше приема антидепрессантов. Но вот посудите сами, стал бы ты пить таблетку аспирина, будучи первым человеком на планете, который ее попробовал? О нет. Только если еще 200 человек попробуют таблетку и не бросят кони.

С нейросетями нет никаких медицинских испытаний. Действительно ли ты хочешь испытывать всё это на себе?

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

Чтобы студенты быстрее согласились на бесчеловечные эксперименты, им создали все условия — открыли бесплатный доступ к Claude (той самой, что стоит 2000 рублей в месяц), заставили профессоров мириться с использованием нейронок в процессе обучения и так далее.

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

Изумительно! Читать далее

Чему нас научила PDP-11?

Reading time19 min
Views28K

C. G. Bell, W. D. Strecker, “Computer What Have We Learned from the PDP-11,” The 3rd Annual Symposium on Computer Architecture Conference Proceedings, pp. l-14, 1976.

Эта статья, которую я выбрал сегодня, является ретроспективой компьютерного дизайна. Это одна из ряда статей Гордона Белла с различными соавторами, описывающей разработку, рост, и внезапную замену культовой линейки продуктов компании, миникомпьютеров PDP-11.
Читать дальше →

Какие проблемы создает использование ИИ программистами

Level of difficultyEasy
Reading time8 min
Views21K

Недавно посмотрел на ютубе видео, в котором поднимается проблема того, что на место классических программистов‑кодеров приходят «программисты»‑prompt‑инженеры.

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

И рассуждения я начну с вопроса — «ну и в чем проблемы?»

Перейти к статье

Называли ли древние скандинавы Русь «страной городов»?

Reading time7 min
Views6.7K

Казалось бы, вопрос достаточно глупый. Ведь во множестве книжек и даже в самой Википедии (!!!!) чёрным по белому написано, что древние скандинавы называли Русь ᚴᛅᚱᚦᛅᚱᛁᚴᛁ, то есть Garðaríki/ Gardarike/ Gårdarike, что переводится как «страна городов».

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

Читать далее

Linux-десктоп своими руками: подключаем bluetooth-наушники

Reading time8 min
Views4.5K

Немного шаманства и колдовства, чтобы заставить работать беспроводные наушники без помощи Desktop Environment, особенно когда вы его не устанавливали

Читать далее

Под маской самозванца

Level of difficultyEasy
Reading time28 min
Views2.6K

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

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

Обычно в них пишут что-то такое: "Вы считаете себя недостаточно хорошим специалистом и боитесь, что вас разоблачат. Но на самом деле вы компетентны, поэтому просто поверьте в себя, отмечайте маленькие победы, ничего не бойтесь и действуйте!"

Лично мне такие советы никогда не помогали. На минуту становилось легче, но потом неуверенность снова возвращалась. Я долгое время страдал от этого синдрома и не мог понять — «что же со мной не так?»

У меня копилось все больше вопросов, касающихся моей ежедневной деятельности:

– Почему одни люди легко называют себя экспертами и несут полную ахинею, а я уже десятый раз переписываю свой пост в соцсетях, потому что вижу в нем все новые и новые непонятные мне темы?

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

– Почему я не верю, что меня возьмут на интересную мне вакансию, до которой я чуть-чуть не дотягиваю, но я легко соглашаюсь на позиции, которые уже давным-давно перерос?

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

Продолжение

[Перевод] Смыть

Reading time18 min
Views27K
Привет, Хабр! Представляю вашему вниманию перевод статьи «To Wash It All Away» автора James Mickens.



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

100 символов, или Как влияет длина строки на читаемость текста

Reading time5 min
Views20K

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

Роберт Брингхерст в книге «Основы стиля в типографике» говорит, что оптимальное значение длины строки составляет от 45 до 75 знаков. 66 — идеальный вариант, а для многоколонного набора — 40—50 знаков.

Максим Ильяхов пишет, что за максимум берет 75 знаков, — столько помещается на страницу А4 с полями при наборе 12-м кеглем.

Smashing Magazine в 2009 году провели исследование и выяснили, что средний результат символов на строку равен 88,74, а среднее значение изменяется от 75 до 85.

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

Читать далее

Разработка цифровой аппаратуры нетрадиционным методом: CGA видеоадаптер на SpinalHDL

Level of difficultyHard
Reading time127 min
Views4.8K

В предыдущей статье (ч.1, ч.2) я рассказывал как построить свою полностью открытую вычислительную систему на опенсорсных решениях — некую синтезируемую систему-на-кристалле, которая будет адаптирована под ваши задачи, в которой всё до последнего триггера находится под вашим управлением и не зависит ни от рыночной конъюнктуры, ни от политических решений. В этой статье я расскажу и покажу как добавить к этой СнК простейший видеоадаптер под тип старого доброго Color Graphics Adapter (CGA), но с современным (HDMI) интерфейсом, с графическим и текстовым режимами и аппаратным скроллингом для плавной прокрутки изображений. Как и в предыдущей статье, речь пойдет о проектировании аппаратуры на языке SpinalHDL и синтезе её для микросхем ПЛИС, используя опенсорсный тул. Все эксперименты я буду проводить на плате «Карно» с ПЛИС Lattice серии ECP5, но весь мой код, за исключением части касающейся настроек PLL, будет аппаратно независимым и легко адаптируемым под любой тип микросхем ПЛИС из поддерживаемых тулчейном Yosys/NextPNR.

Читать далее

16-, 8- и 4-битные форматы чисел с плавающей запятой

Level of difficultyMedium
Reading time15 min
Views33K

Уже лет 50, со времён выхода первого издания «Языка программирования Си» Кернигана и Ритчи, известно, что «числа с плавающей запятой» одинарной точности имеют размер 32 бита, а числа двойной точности — 64 бита. Существуют ещё и 80-битные числа расширенной точности типа «long double». Эти типы данных покрывали почти все нужды обработки вещественных чисел. Но в последние несколько лет, с наступлением эпохи больших нейросетевых моделей, у разработчиков появилась потребность в типах данных, которые не «больше», а «меньше» существующих, потребность в том, чтобы как можно сильнее «сжать» типы данных, представляющие числа с плавающей запятой.

Я, честно говоря, был удивлён, когда узнал о существовании 4-битного формата для представления чисел с плавающей запятой. Да как такое вообще возможно? Лучший способ узнать об этом — самостоятельно поработать с такими числами. Сейчас мы исследуем самые популярные форматы чисел с плавающей запятой, создадим с использованием некоторых из них простую нейронную сеть и понаблюдаем за тем, как она работает.

Читать далее

Большой обзор больших языковых моделей

Reading time9 min
Views13K

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

Читать далее

Предел Шеннона. Математика компромиссов. Пушкин и Толстой это конечно наша гордость, но считать-то тоже надо учиться

Level of difficultyMedium
Reading time13 min
Views4.3K

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

Удивительно что на Хабре нет статьи посвященной анализу теоремы Шенннона-Хартли и тому какой смысл она несет.

Сатья подготовлена по материалам из книги Бернарда Скляра "Цифровая связь", 2003 г.

Содержание:

1. Задачи и проблемы построения эффективных-экономных систем связи

2. Что можно определить как математику компромиссов

3. Несерьезная интерпретация теоремы Шеннона-Хартли из учебных материалов отечественных ВУЗов.

4. Теорема Шеннона из проверенного источника

5.  Энтропия как мера информативности

6. Отличие дискритизации по Найквисту от дескритизации по Шеннону

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

Читать далее

Teensy 4: Arduino на скорости 600 МГц (почувствуй себя властелином вселенной)

Level of difficultyEasy
Reading time10 min
Views37K


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

Оказывается, последняя версия Teensy 4 сделана на основе Cortex M7 и работает на частоте 600 МГц, причём ядро там довольно продвинутое и позволяет исполнять две инструкции за такт, использует предсказание ветвлений и аппаратную обработку 64-битных чисел с плавающей точкой, а также много чего ещё, в том числе имеет на борту много RAM, Flash и PSRAM памяти и т. д.

В общем, контроллер очень продвинутый и позволяет создавать проекты в области обработки звука, управления массивами светодиодов, вывода видео на LED экраны, создания музыкальных синтезаторов и т. д. и т. п.

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

Стиральная машина позволила мне иначе взглянуть на сроки разработки ПО

Level of difficultyMedium
Reading time5 min
Views32K
Моя недавняя эпопея со стиральной машиной напомнила мне, почему одна из самых страшных и ненавидимых задач в разработке ПО начинается с вопроса:

«Сколько времени вам на это потребуется?»

Привычность этого бытового прибора внушила мне ложное чувство безопасности
Читать дальше →

Почему JWT — не панацея: разбор проблем сессий и безопасности

Level of difficultyMedium
Reading time6 min
Views26K

JWT для сессий: удобство или головная боль?

JSON Web Token (JWT) приобрёл популярность как удобный способ аутентификации и передачи данных между клиентом и сервером. Его ценят за простоту, stateless-подход и гибкость. Однако большинство гайдов рассказывают только о плюсах, забывая о недостатках.

В этой статье мы разберём основные проблемы использования JWT для хранения пользовательских сессий и обсудим более надёжные альтернативы.

Читать далее

Обзор клавиатуры Cougar 500K с полной её разборкой

Reading time25 min
Views13K
Почти по классику:
«Сеанс чёрной магии
с полным ее разоблачением»
© Михаил Булгаков



Дисклеймер: не повторять! Чревато!


(минимум — потерей гарантии, максимум — неработоспособностью клавиатуры)!

В процессе обзора ни одна клавиатура не пострадала!


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


Ещё предупреждение: ссылки на сайт Lurkmore предназначены для взрослой аудитории, «детям до 16» и т. п.





Итак, на сцене, то есть, на столе, клавиатура Cougar 500K от молодого, динамично развивающегося немецкого производителя, название которого по-русски звучит как «кугуа́р», а обозначает, по́просту, пу́му (Пума — это такая большая дикая кошка).



Правда, милашка? Но дизайнеры логотипа, видимо, вдохновлялись другой фотографией, вот этой:



Кстати, здесь зверюга не скалится, а всего-навсего зевает!

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

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

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

NKRO на USB. Проблемы и костыли при их решениях

Reading time5 min
Views33K
Привет, GT. В одном из моих прошлых постов (в частности, про клавиатуру SteelSeries Apex M800) юзернейм monah_tuk задал интересный вопрос в комментариях: как реализуется NKRO (n-key rollover, одновременное зажатие нескольких клавиш) в USB-клавиатурах. Данный вопрос меня заинтересовал, а когда я копнул поглубже… В общем, там такие авгиевы конюшни, что на целый пост информации хватило, пусть и небольшой.



Казалось бы, USB 2.0 даже в режиме Low-speed обеспечивает передачу до 1500 КБит в секунду (порядка 185 КБайт/с.), в чём проблема передать нажатия клавиш? Но не всё так просто.
Читать дальше →
1
23 ...

Information

Rating
7,107-th
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity