Привет, меня зовут Рома! Какое-то время назад я захотел изучить всю внутрянку Go, заглянуть в исходники языка и понять, почему все устроено так, как устроено. В этот самый момент я обнаружил, что на просторах интернета практически отсутствуют материалы, которые подробно разбирают типы данных, их вспомогательные функции, детали реализации runtime и так далее. Мной было принято решение сделать это самостоятельно. Изначально я занимался этим для себя, но позже решил, что стоит поделиться моими наблюдениями и выводами с миром.
Представляю вам первую статью из цикла «Типы и структуры данных Go»! Здесь мы познакомимся со Слайсами, разберем внутреннюю реализацию этого типа и его вспомогательных функций. Приятного аппетита!
Читать далееВ своей прошлой статье я рассказал, как создал небольшой проект, который генерирует курсы и обучающие материалы с помощью LLM - AI Тютор. Было приятно получить порядка 130 новых пользователей, и один из них натолкнул меня на мысль о том, чтобы сделать AI тренажер, который бы имитировал собеседование на новую работу. Идея показалась мне интересной, и я решил ее реализовать.
Как это работает?
Для начала вам надо найти подходящую вакансию, в идеале, с конкретным описанием того, что ждут от кандидата, и какие задачи он будет решать на этой позиции.
Например: Разработчик Python (Junior+)
Читать далееДобрый вечер, уважаемые коллеги. Статья будет короткой и возможно натолкнет кого-то на реализацию. У меня получилось.
Недавно разрабатывал код, который рассчитывает значения sin(x), cos(x) и квадратного корня из x, на arm. По сути это была апроксимация рядом Тейлора. Но код написан на Assembler и выполнялся относительно быстро. Изначально предполагалось использовать его для своего станка. Немого позже задался вопросом одновременной генерации sin(x) и cos(x) как сигналов для свертки с исходным. Некоторые предлагали cordic, но я пошел другим путем.
Изначально, моделировал систему дифференциальных уравнений, использующих два умножения и разности для получения sin(x) / cos(x) на каждый, временной отсчет. Фактически, это отклик диффкренциального уравнения на дельта-функцию (единичный импульс) который запускает колебательный процесс. "Синусойды" получились не ортогональными при небольшом количестве отсчетов на период из-за неточности вычисления сдвига фазы. Однако, при использовании длительных последовательностей данный метод может заменить классические методы генерации sin(x)/cos(x) поскольку конечные разности становятся небольшими.
Кроме того на вход дифференциального уравнения можно подать сигнал, который будет раскачивать его как реальный контур. Например, у Вас возникнет желание свернуть сигнал с длинноволновыми последовательностями. В этом случае, можно, просчитывать каждый отсчет sin(x)/cos(x), а можно просто подать входной сигнал с АЦП на вход такого дифференциального уравнения и получить "синхронный интегратор", настроенный на определенную частоту.
Читать далееНе так давно в порыве ностальгии я решил установить все игры из своего детства и вспомнить, как это было круто. Для чего же еще нужен современный мощный компьютер, как не для установки третьих героев старых игр.
Первыми пошли Готики — хороши до сих пор (я из тех людей, кто больше любит третью). Потом горячо любимая Neverwinter Nights (в преддверии выхода Baldur's Gate 3), но, к сожалению, сейчас в нее играть было довольно скучно. А следом шел Морровинд — ох уж эта боевая система (miss, miss, miss).
И тут я дошел до одинокого забытого бриллианта. Игра, взбудоражившая умы и сердца подростков так же сильно, как легендарный фильм Ямакаси. После нее все заборы города были измалёваны однотипными надписями дешевой краской. И я про Marc Ecko's Getting Up: Contents Under Pressure.
Читать далееПромышленные сети на многих предприятиях развиваются достаточно хаотично, как правило, вырастая как дополнение к корпоративной сети. Однако такой хаотичный рост зачастую приводит к появлению слабых мест в сетевой топологии: отсутствию резервирования, использованию общего с корпоративным сегментом оборудования, узким местам в пропускной способности каналов связи и многому другому.
В этой статье мы рассмотрим архитектуру Purdue Enterprise (PERA), в рамках которой была разработана эталонная модель для потоков данных в промышленных сетях, где производственные процессы полностью автоматизированы. Будучи разработанной еще в начале 90х, эта модель стала стандартом для построения сетевой архитектуры с учетом требований безопасности, разделяя уровни сети для поддержания иерархического потока данных между ними.
Читать далееПривет, Хабр! У каждого JS-разработчика есть своя история. История о том, как он впервые встретился с этим. Сидишь, пишешь код, всё логично, всё под контролем. И тут, чтобы проверить одну мелочь, открываешь консоль и из чистого любопытства пишешь:
[] + {} // Получаешь: "[object Object]"
// Хм, ладно, массив привел себя к строке, а объект стал... объектом. Логично.
{} + [] // Получаешь... 0 ???
// ЧТО?!
Стоп. Как это вообще возможно? Мы только что поменяли местами два операнда и получили совершенно другой тип данных. Кажется, будто язык издевается над нами.
Разобраться с этим!Создание быстросборного маломерного беспилотного судна с возможностью быстрой интеграции различных полезных нагрузок для решения задач на воде и под водой в автономном режиме.
Читать далееВ этой статье мы не только установим локальный (и бесплатный) аналог ChatGPT, но и сделаем обзор нескольких открытых LLM, разберёмся в продвинутых настройках LM Studio, подключим чатбота к Visual Studio Code и научим его помогать нам в программировании. А ещё мы посмотрим, как можно тонко настраивать поведение модели с помощью системных промптов.
Читать далееВсем привет! Сегодня я хочу поделиться историей одного странного и затянувшегося расследования, главным героем которого стал мой компьютер, а антагонистом — веб-версия Telegram. Эта история не только о поиске прожорливого процесса, но и о глубоких аномалиях в поведении современных веб-приложений, которые вызывают серьезные вопросы.
О, нука че там