Осваиваем 23 самых популярных языка программирования с нуля. Учебная база содержит практические курсы для начинающих разработчиков, которые хотят изучить новые ЯП, включая всю необходимую теоретическую часть с разделами по ООП и асинхронным программированием. На каждый урок есть практические задачи — читаем теорию и тут же оттачиваем навыки. Авторы проекта показали самые востребованные связки языков программирования и фреймворков.
Вчера впервые попробовал flushSyncб который подвезли в React еще в 18 версии. Классное решение для определенных моментов! Выглядит так, будто React выдал нам костыль, но сразу предупредил: пользоваться с осторожностью.
❓ Почему это вообще нужно? (Для тех, кто не совсем в теме) В React изменения в useState или в useEffect выглядят синхронными, но на самом деле они асинхронны.
Простой пример:
...
const [count, setCount] = useState(0);
console.log(count); // 0
setCount(1); console.log(count); // Всё ещё 0! 😲
...
Кажется, что setCount(1) сразу меняет count, но на самом деле новое значение попадёт в консоль только при следующем ререндере.
То же самое в useEffect:
...
useEffect(() => { console.log("Эффект сработал!"); }, [count]);
setCount(1); console.log("А это после setCount");
...
Лог "А это после setCount" появится в консоли раньше, чем "Эффект сработал!", потому что useEffect выполняется уже после рендера.
Как flushSync меняет поведение?
Обычно React группирует обновления (batching) и откладывает ререндер до конца текущего цикла. flushSync ломает это поведение и заставляет React сразу выполнить ререндер.
Что тут происходит? Без flushSync React подождал бы до конца текущего вызова и только потом обновил DOM. С flushSync обновление происходит немедленно, и console.log видит уже новый DOM.
React нас предупреждает В документации прямо сказано:
"flushSync – это низкоуровневый API. Используйте его только тогда, когда вам действительно нужно измерить DOM сразу после обновления состояния."
Когда не стоит использовать flushSync? Если можно обойтись обычными useEffect или useLayoutEffect. Если batching работает нормально и не мешает. Если нет необходимости немедленного ререндера (иначе можно уронить производительность).
Итог flushSync – мощный инструмент, но использовать его нужно осознанно. Он нужен в случаях, когда важно немедленно обновить стейт и тут же прочитать DOM (например, для анимаций).
Если понравился пост присоединяйтесь к моему каналу в Telegram по ссылке https://t.me/+qbK9ZPuAocI2MWUy. Там я делюсь своим опытом и пишу материалы которые будут полезны как новичкам, так и матерым разработчикам.
Как эффектно ворваться в mob-программирование? Узнай из выступления нашего бэкенд-лида!
В прошлом году Витя Михайлов, Backend lead Garage Eight, выступил на конференции TechLead 2024 с докладом про mob programming. Он рассказал про пользу этого подхода к разработке, а также трудности его внедрения. А еще поделился приемами, которые помогут вовлечь в этот процесс команду, справиться с «болячками» и сделать mob-программирование частью ежедневной работы.
Если не смог побывать на мероприятии, то самое время смотреть запись ;-) > YouTube > VK
Кстати, у Вити есть свой ламповый канал, где он разгоняет про бэкенд, менеджмент и процессы разработки. Заглядывай почитать!
Три важных вопроса о регистрации программ в Роспатенте
Мы продолжаем нашу серию о защите программ в Роспатенте.
Если поменять название программы или часть кода, потребуется ли новая регистрация программы для ЭВМ?
Название программы не является объектом правовой охраны при регистрации программы для ЭВМ. Название нужно зарегистрировать как товарный знак и если вы его поменяете, нужно будет подать новую заявку на регистрацию товарного знака.
А вот изменение части кода = появление новой версии программы. Однако по Гражданскому Кодексу каждая новая версия ПО — это формально новая программа, поэтому вам нужно будет подать новую заявку на регистрацию программы для ЭВМ.
Если исходный код программы для ЭВМ еще не дописан, можно ли начать процедуру регистрации в Роспатенте уже сейчас?
Да, можно подать заявку с теми фрагментами кода, которые есть. Программу получится зарегистрировать, даже если она пока не работает и находится в процессе доработки. Работоспособность программы не является обязательной характеристикой.
Срок и территория действия прав на программу для ЭВМ
Начало действия исключительного права на программу для ЭВМ отсчитывается с даты ее создания.
Срок действия прав — в течение всей жизни автора (создателя), и далее 70 лет с 1 января, следующего за датой его смерти.
Если авторы программы — это коллектив разработчиков, то срок действия истекает в год смерти последнего из них.
Территория. После регистрации программы она имеет правовую охрану не только в России, но и автоматически во всех странах, которые входят в Бернскую конвенцию (на 2022 год входит 181 государство).
Модель TCP/IP (Transmission Control Protocol/Internet Protocol) является основой для функционирования Интернета и большинства современных компьютерных сетей. Она описывает, как данные передаются между устройствами, обеспечивая надежную и эффективную связь. Модель состоит из нескольких уровней, каждый из которых выполняет определенные функции и использует свои протоколы для обработки данных.
Основные Протоколы
Два ключевых протокола, на которых основана модель TCP/IP, это:
TCP (Transmission Control Protocol): отвечает за надежную передачу данных, гарантируя, что информация будет доставлена в целостности и в правильном порядке.
IP (Internet Protocol): отвечает за адресацию и маршрутизацию данных, разбивая их на пакеты для передачи по сети.
Уровни Модели TCP/IP
Модель TCP/IP делится на четыре основных уровня:
Канальный уровень (Link Layer):
Этот уровень управляет передачей данных между узлами одной локальной сети.
Протоколы канального уровня определяют, как данные взаимодействуют с физической средой передачи (например, Ethernet).
Он обеспечивает передачу данных на физическом уровне и зависит от используемого оборудования.
Сетевой уровень (Network Layer):
Отвечает за маршрутизацию пакетов данных по сети.
Основной протокол этого уровня — IP, который не гарантирует порядок доставки пакетов или их полное получение.
В настоящее время используются две версии IP: IPv4 и IPv6. IPv4 поддерживает около 4,3 миллиарда адресов, тогда как IPv6 предлагает значительно большее количество адресов (примерно 3.4×10383.4×1038) для решения проблемы исчерпания адресов.
Транспортный уровень (Transport Layer):
Этот уровень инкапсулирует протоколы TCP и UDP.
TCP обеспечивает надежную передачу данных с контролем ошибок и гарантией порядка доставки.
UDP, в отличие от TCP, не устанавливает соединение и может использоваться для приложений, где скорость важнее надежности.
Прикладной уровень (Application Layer):
Этот уровень включает протоколы, с которыми взаимодействуют пользователи и приложения (например, HTTP, FTP, SMTP).
Он обеспечивает интерфейс для программного обеспечения для обмена данными через сеть.
Значение Модели TCP/IP
Модель TCP/IP является краеугольным камнем современных сетевых технологий. Она обеспечивает совместимость между различными устройствами и операционными системами, позволяя пользователям обмениваться данными независимо от их местоположения или используемых технологий. Благодаря этой модели стало возможным создание множества интернет-приложений и сервисов, которые стали неотъемлемой частью повседневной жизни.
Заключение
Понимание модели TCP/IP и ее уровней критически важно для всех профессионалов в области информационных технологий. Эта модель не только описывает механизмы передачи данных в Интернете, но также служит основой для разработки новых сетевых технологий и приложений. Развитие модели продолжает адаптироваться к новым вызовам и требованиям современного мира связи.
Он не смог решить задачу и был отчислен из вуза. Аппетита нет, шаверма остывает. А ведь нужно было просто написать программу, которая построит симметричную матрицу размерности NxN (1 < N <= 100).
Может, у вас получится помочь Алексею решить задачу? Тогда переходите в Академию Selectel.
Как продолжить изучение Python? Работа с БД, парсинг и идеи для пет‑проектов
В Академии Selectel вышел новый бесплатный курс по Python. Не рассказываем про основы — наоборот, помогаем сделать первые шаги в мире реального программирования.
После прохождения курса вы научитесь:
работать с базами данных и брокерами сообщений,
создавать приложения с графическим интерфейсом,
автоматизировать получение данных.
На вдумчивое ознакомление со всеми материалами уйдет около четырех часов.
Авторское право — это комплекс прав автора произведения, которые позволяют ему использовать и распоряжаться результатом своей творческой деятельности под своим именем и получать доход от такого использования и распоряжения.
Авторское право возникает в результате создания произведения и не требует дополнительной регистрации. Например, если поэт написал текст песни, он сразу становится его автором. Чтобы подтвердить это, ему не нужно обращаться в государственные органы. Произведение охраняется законом по факту создания.
театральные и хореографические произведения: постановки, танцы, цирковые представления;
архитектурные произведения и работу дизайнеров: ландшафтный дизайн, включая чертежи, проекты, макеты, элементы градостроительства;
IT-продукты: ПО, приложения для смартфонов или ноутбуков, онлайн-сервисы, облачные технологии, базы данных, игры;
географические карты.
Авторское право не действует на:
идеи;
концепции;
принципы;
методы;
процессы,
факты, языки программирования;
решения технических, организационных и иных задач, открытия и способы производства. Например, если руководитель придумал уникальный способ оптимизировать работу отделов в своей компании, его идея не будет охраняться авторским правом.
Срок действия авторского права
В России авторское право действует в течение всей жизни автора и еще 70 лет после его смерти.
Составляющие авторского права
Авторское право является интеллектуальным правом и состоит из:
исключительных имущественных прав;
личных неимущественных прав автора;
и иных прав.
Депонирование произведения
Несмотря на то, что авторское право на произведение возникает после его создания само по себе и для защиты права регистрация не нужна, на практике многие авторы и правообладатели решают зарегистрировать произведение, т.е. депонировать:
— Для программ для ЭВМ и баз данных ГК РФ предусматривает добровольную государственную регистрацию в Роспатенте;
— Для остальных произведений депонирование представляет собой добровольную процедуру, которая не предусмотрена законом. В этом случае депонирование проводят специальные организации-депозитарии.
При депонировании автор или правообладатель передает на хранение копию своего произведения в виртуальную ячейку.
Защитить свою программу можно здесь. А базу данных вот тут.
Рынок обучения программированию рухнет в ближайшее время
Сейчас много говорят о том, что ИИ оставят без работы программистов. Но на самом деле более печальная участь ожидает рынок обучения программированию.
Действительно, зачем тратить пять лет на обучение в универе, платить деньги за курсы и искать ментора, если все это быстро и бесплатно можно получить от того же ChatGPT ?
Я не говорю о написанию готовых программ, а например, о том, что можно мгновенно получить справку о методе, паттерне, да и практически о любом блоке кода.
Зачем искать книги, гуглить и спрашивать на форумах, многие из которых еще до сих пор токсичны, если ChatGPT тебе вежливо и дружелюбно расскажет и что такое ООП, как чинить утечки памяти, и предложит заменить map на более понятный for in. Заодно он тебе и роадмап нарисует, и посоветует какой язык программирования выбрать, и много чего еще.
В универах и на курсах до сих пор практикуется написание программ обучения. Это занимает как минимум несколько месяцев, а обычно полгода. За это время то, что преподаватель напишет, уже заметно устаревает. В итоге, студенты на деле уже знают больше, чем преподаватель, который рассказывает им о том, что сам узнал полгода назад.
Но и это еще не все. Как вы думаете, через какое время преподаватели универов обновляют свои курсы? Через год, два, три?
На коммерческих курсах, конечно, полегче. Но и там это такое не простое дело вносить обновления в учебные курсы.
Написание курсов и программ - это вообще больная тема для обучения. Особенно это чувствительно именно для обучения программированию, потому что нынче языки программирования развиваются с космической скоростью.
Так что, думаю, не надо быть большим Нострадамусом, чтобы понять, что рынок обучения программированию ждет большая катастрофа.
Что-то конечно останется, но это будет как с пленочными фотоаппаратами. Кто-то ими пользуется до сих пор, но их немного. Так и обучение программированию уйдет в раритетный формат.
ChatGPT помогает с математикой: Я силен в математике - Тогда сколько будет 750 умножить на 1920, - 230. - Но это даже и не близко! - Но зато быстро!
Ну что, народ, что называется "тащусь" от новой сегодняшней версии ChatGPT CodeCopilot.
Там теперь появились три окна. Слева знакомый чат, в центре код, причём теперь уже с возможностью редактировать прямо здесь. А справа ещё менюшка с несколькими опциями. Там и комментарии, и логи, и борьба с багами и др. В целом, стало даже немного похоже на Xcode.
Мне же особенно понравилась опция Code Review. Это круто! Типа он проходит по коду и даёт рекомендации.
For example:
I've reviewed the code and suggested improvements for logical consistency, potential crash prevention, layout calculations, and readability. Let me know if you need further refinements! 🚀
Если вы или ваша компания создали программу, то самое время задуматься о ее регистрации (депонировании) в Роспатенте. Так вы сможете подчеркнуть свое авторство и заблаговременно обезопасить свой софт от копирования. Рассказываем, как это сделать и какие преимущества то дает.
Что такое депонирование
Депонированием программ называют способ защиты программного кода и подтверждение факта его владением. После регистрации программы правообладатель получает исключительные права на свою интеллектуальную собственность и может быть уверен, что он сможет обезопасить свой продукт от копирования. Программа — это любое программное обеспечение или их совокупность, в том числе мобильные приложения, операционные системы и так далее.
Физически программа — это кусочек программного кода, например:
— программа “Hello, world” на Бейсике, которую вы писали на уроках информатики;
— скрипт на Python, который написали для подсчета цен;
— набор формул в Excel (да, регистрируют и такое);
— программа для управления сайтом;
— начинка, которая обеспечивает работу сайта;
— мобильное приложение;
— именно код, а не картинки;
— другие программы — например, 1С, браузер, “калькулятор” в Windows, программа для автозаполнения документов и т.д.
Один большой программный продукт может состоять из модулей и вариантов исполнения для разных операционных систем и платформ — и всё это программы для ЭВМ, которые можно зарегистрировать.
Нужно отметить, что регистрация программы в Роспатенте не является законным требованием, но это отличная возможность подтвердить свое авторство на продукт.
Что грозит без депонирования:
незаконное копирование ПО (или исходного кода);
отсутствие дополнительного документального свидетельства вашего авторского права, которое можно предъявлять в самых разных инстанциях: от клиентов до судов
отсутствие возможности получить дополнительный доход от распространения программного обеспечения;
отсутствие права принимать участие в тендерах на государственные заказы;
Зарегистрировать программу может ее правообладатель.
По умолчанию правообладатель программы — это всегда ее автор или коллектив авторов. Но права на программу могут перейти к другому лицу, юридическому или физическому, по двум причинам:
по договору — например, если с автором был заключен договор авторского заказа на разработку ПО. В этом случае правообладателем станет заказчик.
в силу служебных отношений — авторы разрабатывали программу в рамках своих трудовых обязанностей, по служебному заданию. В этом случае правообладателем будет компания.
Кто будет указан при регистрации:
Правообладатель — то есть — непосредственно автор (авторы), если права не были переданы, или — другое лицо , если права были переданы.
Авторы-физические лица. Это не обязательно, можно не указывать поименный список, а просто указать, что авторов было некоторое количество, например, два. При этом передать право авторства, то есть право быть указанным в качестве автора, нельзя — это личное неимущественное право. Оно неотчуждаемо, отказ от него ничего не меняет.
Какие преимущества получает владелец зарегистрированной программы:
возможность продавать лицензию на продукт третьим лицам и тем самым увеличивать свою прибыль;
через суд добиться компенсационной выплаты до 5 млн рублей от недобросовестных конкурентов, которые незаконно используют его ПО (исходный код). Также правообладатель может потребовать выплату двукратной стоимости контрафактного продукта;
получение авторского права на код и возможность распространения программы;
возможность расширить права на программу: если она обладает своей уникальностью, то можно получить патент на изобретение, промышленный образец или зарегистрировать товарный знак;
получение освобождения от НДС в случае включения программы в Реестр отечественного ПО;
возможность получить во владение дополнительный материальный актива, который представляет собой программа после депонирования – так бухгалтерии будет проще.
Как вы знаете, китайская LLM deepseek-R1 работает не хуже chatGPT-o1, но стоит в 20 раз дешевле. А знаете ли вы, что сама модель вообще бесплатная, её можно скачать себе и запустить на своём железе?
Мне стало интересно, как это делать, можно ли как-то запустить прямо на макбуке, и оказалось, что это делается буквально в два клика (конечно, полная модель на ноут не влезет, но дистиллированная - вполне).
Возможно, все уже это умеют, но расскажу для тех, кто, как и я, был в танке, так что держите инструкцию.
Прикол китайской модели еще в том, что там показан процесс думания. Его можно посмотреть прямо в этом веб-интерфейсе.
Понятно, что это скорее побаловаться - на ноуте влезает только дистиллированная модель и то нещадно тормозит (макбук M1 pro). Для полноценной работы нужно нормальное железо или облако.
По-моему, это очень круто: если вложиться в железо, можно очень быстро и просто поднять у себя самый топовый чат и не посылать больше свои секреты ни в OpenAI, ни в Китай.
Недавно в мессенджер ко мне постучалась HR, которой, несомненно, "понравилось моё резюме". По ходу диалога оказалось, что первый этап собеседования будет представлять из себя тест (что-то около часа). Я отказал. Потому что для меня тест - это попытка сэкономить время работодателя за мой счёт. Я потрачу своё время, что-то там отвечу, а потом, как это стало модно в последнее время, скорей всего не получу обратной связи.
Для меня собеседование - исключительно диалог. Где спрашивают не только тебя, но и ты задаёшь интересующие тебя вопросы. У кого мне узнать про условия, команду, типы задач, инструментарий, стек? У тестового вопроса номер 7?
К счастью, подобная дичь встречается не так уж часто (третий раз за 4 года). Но раз уж она опять всплыла, мне стало интересно: а как у других? Попадается ли, и какое у вас отношение к тестам?
P.S. Речь не о джун-уровне, там сейчас чёрт ногу сломит и кашей масло не испортишь.
Как программисту-фрилансеру защитить свои разработки
Работаете программистом на удаленке на крупного (или не очень) заказчика? Чтобы созданное вами никто не украл, необходимо юридически подстраховать себя.
Есть несколько вариантов того, как это сделать.
Вариант №1. Регистрация программы ЭВМ в Роспатенте
Осуществляется методом депонирования кода. Этот формат имеет некоторые недостатки: например, если ушлый противник фундаментально перепишет ваш код, то наказать обидчика становится практически невозможно.
Вариант №2. Патентование изобретения или дизайна созданного ПО, интерфейса
Если ваша программа имеет новизну, изобретательский уровень и промышленную применимость, то в этом случае можно претендовать на юридическую защиту сути ПО, его алгоритма.
Интерфейс разработанного, а также шрифты и иконки — патентуются как промышленные образцы, если экспертиза Роспатента признает указанное новым и оригинальным.
Вариант №3. Товарный знак созданной программы
Регистрация в данном случае защищает название и логотип ПО. После оформления — ни один конкурент не сможет воспользоваться брендом вашей разработки.
Какие есть еще выгоды от официальной юридической защиты созданных объектов интеллектуальной собственности?
Если вашу программу (ее начинку, код или товарный знак) незаконно позаимствовали, то вы можете подать на нарушителя в суд. В этом случае — с нарушителя взыщут серьезную компенсацию. Но нужно помнить, если Вы создаете что-то на заказ, внимательно читайте договор: кому отходит исключительное право на созданные объекты интеллектуальной собственности. Если Вам, то никаких проблем возникнуть не должно.
Сложно ли регистрировать указанные объекты?
Заявителям надо собрать пакет документов, оплатить предусмотренные пошлины и отправить материалы на экспертизу в профильное ведомство.
Отметим, что если Вы оформляете права на изобретение или дизайн интерфейса — экспертам Роспатента надо доказать, что эти объекты соответствуют установленным законодательно требованиям патентования.
Вполне очевидно, что если Вы, готовя материалы, допустите существенные ошибки, то, скорее всего, в регистрации указанных объектов интеллектуальной собственности Вам откажут.
Если нужна регистрация товарного знака, то сделать это можно здесь, вот тут можно защитить программу, а здесь получить патент на дизайн.
Лицензионный договор на использование программы для ЭВМ
Допустим, вы разработали свое уникальное ПО, оформили на него права в Роспатенте и теперь хотите предоставить право временного пользования вашим продуктом другом лицу. Для этого вам необходимо заключить лицензионный договор.
Что такое программа для ЭВМ по законам РФ
Программой для ЭВМ называют софт, программное обеспечение, исходный код приложения и так далее. ПО (программное обеспечение) - одна программа или совокупность нескольких программ. Чтобы подтвердить свое авторство на программу, а также обезопасить свой продукт от контрафакта, ее можно зарегистрировать в базе Роспатента.
Примеры зарегистрированных в базе Роспатента программ:
Чат-бот для Microsoft Teams от компании i-Sys Labs – № 2020663407
Мобильное приложение Connected Car (Сбербанк-Телеком) для iOS от ПАО «Сбербанк России» – № 2021666087
«Телеграм-бот финансовый советник» от «Алго Капитал» – № 2021611952
Что такое лицензия
Лицензионное соглашение на использование программного обеспечения – это договор, заключение которого позволяет предоставить право на использование ПО другому лицу. Автора ПО, который передает право на использование называют лицензиар, а тот, кто получает это право – лицензиат. По взаимному соглашению сторон возможно установить срок действия лицензии на месяц, квартал или год.
Лицензия бывает двух видов:
Неисключительная. Это значит, что лицензиар имеет право заключать лицензионное соглашение с несколькими лицами.
Исключительная. Лицензиар передает право пользования ПО только одному лицу.
В лицензионном договоре на использование ЭВМ должны быть:
полное описание лицензионного продукта;
лицо или лица, которые получают доступ к ПО;
прописаны разрешенные способы использования ПО;
порядок выплаты вознаграждений, размер выплат;
территория использования ПО лицензиатом;
может быть указано право заключения лицензиатом сублицензии;
особенности проведения аудита применения ПО, чтобы предотвратить несанкционированное использование;
срок действия лицензии. Если этот пункт не прописан, то по умолчанию договор действует в течение пяти лет.
Обратите внимание, что в лицензионном договоре должны быть четко указаны сферы и методы, где и как будет применяться продукт. Если лицензиат использует ПО в областях, которые не входят в договор лицензии, то это считается нарушением договора.
Что грозит за нарушение лицензионного договора на ПО:
финансовая компенсация в размере выплаты просроченных вознаграждений, плюс процент неустойки, если это прописано в договоре;
расторжение договора и запрет на использование ПО.
Реальный кейс
ПАО «Ростелеком» заключил несколько договоров с компанией «Прогресс» на использование программного обеспечения «Оптимайзер». Сублицензиат не выполнил обязательные требования по договорам и просрочил выплату вознаграждений за право использования ПО. В итоге «Ростелеком» обратился в суд. Суд встал на сторону истца и постановил выплатить в пользу «Ростелеком» 29 153 000 рублей задолженности по договорам, а также процент неустойки за задолженность – 3 407 033 рублей и расход по госпошлине в размере 185 800 рублей (N А40-158708/2020).
🦾 Поделились обновлениями сервисов на наших облачных платформах в дайджесте на сайте. Например, теперь в Public Preview доступны:
Сервис Evolution Managed Spark, который позволяет развернуть кластерный вычислительный сервис на основе Apache Spark для распределенной обработки данных. С его помощью можно создавать и конфигурировать инстансы Spark, а также запускать задачи обработки данных. Все подробности в документации.
Evolution Managed Kafka — сервис для развертывания и управления кластерами Kafka® в инфраструктуре платформы Cloud.ru Evolution. Apache Kafka® — распределенный программный брокер сообщений, проект с открытым исходным кодом, разрабатываемый в рамках фонда Apache Software Foundation на языках программирования Java и Scala. Подробнее читайте в документации.
Программисты, вместе с фермерами и водителями входят в топ-3 самых растущих рабочих мест к 2030 году, по версии доклада The Future of Jobs Report 2025
В топ самых сокращающихся профессий входят кассиры, секретари, домработницы, кладовщики, работники полиграфии, бухгалтеры, аудиторы, кондукторы, охранники, специалисты по вводу данных и даже графические дизайнеры.
🌐 HTTP-метод QUERY: новый метод для поисковых запросов
В мире HTTP давно существует проблема с передачей сложных поисковых запросов. Когда разработчику нужно передать большой набор параметров для поиска или фильтрации, у него есть два не самых удачных варианта.
Можно использовать GET и передавать всё в URL:
GET /feed?q=foo&limit=10&sort=-published&filters[]=status:active&filters[]=type:post
Но URL дефакто имеет ограничения по длине, а кодирование сложных параметров становится громоздким.
Второй вариант — использовать POST и передавать параметры в теле запроса. Однако POST не предназначен для таких операций: он не кэшируется и не является идемпотентным, что усложняет работу с CDN и повторную отправку запросов.
Именно поэтому появился новый метод QUERY. Он позволяет отправлять поисковые параметры в теле запроса:
Как разработать микроархитектуру нейросетевого ускорителя
Микроархитектура вычислительного ядра
Для создания микроархитектуры важно рассмотреть принципы работы вычислительного ядра и управляющего устройства.
Ядро фактически является вычислителем взвешенной суммы. Основная особенность заключается в наличии очередей входов и весов, которые подаются на умножители. Результаты с умножителей суммируются между собой и добавляются к текущему значению счетчика.
Реализация блока активации — более сложная задача, так как она предполагает вычисление тригонометрических формул, делений на переменные значения и других подобных операций. Но поступим проще — добавим таблицу значений (LUT, lookup table), которая позволяет посчитать примерное значение функции в заданной точке.
Статья Михаила Степанова, инженера-стажера из группы функциональной верификации YADRO, поможет вам понять, с чего начать погружение в тему ускорения нейросетей. Экспериментировать можно самостоятельно — ссылки на исходники простой нейросети на C++ и реализованную модель ускорителя на SystemC вы найдете в тексте.