Эта статья подготовлена на основе вебинара от одного из авторов курса Архитектура приложенийЧитать полностью »
Рубрика «Программирование» - 36
Антипаттерны проектирования
2022-12-16 в 14:41, admin, рубрики: Анализ и проектирование систем, антипаттерны, архитектура, архитектура приложений, Блог компании Southbridge, ПрограммированиеСказ о M1 GPU
2022-12-15 в 22:09, admin, рубрики: gpu, linux, Rust, высокая производительность, драйверы, Программирование, Процессоры, Разработка под LinuxПривет всем, в эфире Асахи Лина!✨
marcan попросил меня написать статью о M1 GPU, и вот она готова ~! Это был долгий проект, растянувшийся на несколько месяцев, и было о чём поведать, так что, надеюсь, вам понравится!
Что такое GPU
Пожалуй, вы знаете, что такое GPU, но известно ли вам, как он работает под капотом? Давайте посмотрим! Почти у всех современных GPU одни и те же основные компоненты:
-
Набор шейдерных ядер, обрабатывающих треугольники (вершинные данные) и пиксели (фрагментные данные), выполняя программы, определяемые пользователем. Они используют разные кастомные наборы инструкций для каждого GPU!
Неблокирующая обработка тактовой кнопки для Arduino. Как использовать прерывание таймера «в два клика» в стиле ардуино
2022-12-14 в 8:10, admin, рубрики: arduino, isis proteus, Proteus, timeweb_статьи, байт, Блог компании Timeweb Cloud, гайд, кнопка, код, микроконтроллеры, Программирование, программирование микроконтроллеров, Разработка под Arduino, Си, схема, электроника, Электроника для начинающихВ своей прошлой статье я писал про блокирующие способы обработки кнопки. Реакция была, наверное, больше положительная, чем отрицательная. Хотя минусов мне поднасовали… Но, тем не менее, я решил продолжить. И в этой статье я хочу поделиться с вами своим опытом по неблокирующей обработке кнопок на Arduino. Напишем несложную библиотеку в стиле Си. Но, боюсь, что закрыть свой гештальт этой статьей тоже не получится…
Чтобы сохранить общую концепцию, пришлось разобраться с обработкой прерываний таймеров-счетчиков в стиле Arduino. Если вы не сталкивались с этим, и работаете напрямую с регистрами, рекомендую посмотреть, как это выглядит. HAL-драйвер для STM32 в этом плане нервно курит в сторонке.
Заранее предупреждаю, что материал рассчитан для начинающих. Но комментарии от бывалых программистов микроконтроллеров только приветствуются. Читать полностью »
Программировали два товарища
2022-12-13 в 6:14, admin, рубрики: Карьера в IT-индустрии, Программирование, управление персоналом, управление разработкой, черт знает чтоЭта грустная история случилась на моих глазах. Не берусь утверждать, что она уже совсем прям завершилась – мало ли, вдруг кто-то из её героев прочтёт, задумается, что-то изменит… Ну или плюнет мне в кружку.
Итак, пришли в компанию, почти одновременно, два распрекрасных программиста. Одного поля ягодки – опыт, квалификация, профессиональная любознательность, энергия. Раньше их карьеры развивались по одинаковому, иногда – равному треку (работали вместе).
Величайшие программисты 21 века. Джон-Движок Кармак
2022-12-12 в 9:00, admin, рубрики: AGI, binary space partitioning, DOOM, Heretic, Hexen, id software, quake, ruvds_статьи, Slordax, Wolfenstein 3D, Блог компании RUVDS.com, выгорание, двоичное разбиение пространства, джон кармак, Программирование, разработка игр, сильный ИИ, тайм-менеджмент, управление разработкой, эффективность кодаДжон Кармак вместе с тёзкой Джоном Ромеро стали родоначальниками игрового жанра FPS. На слабеньких 486SX, без видеокарт (!) они выдали настоящий 3D-шутер без лагов с эффектом присутствия, что стало бомбой для 1993 года — в эпоху пошаговых стратегий и отсутствия скроллинга. Казалось, тут вмешалась чёрная магия…
В принципе, примерно так и есть. В разработке Wolfenstein 3D, Doom и движка Quake Джон Кармак действительно использовал кучу нестандартных приёмов вроде конверсии указателей или выхода за границы объектов, чтобы в циклах получать доступ к другому объекту, который гарантировано идёт следом.
Уровень программирования Doom и Quake до сих пор считается непревзойдённым образцом хакерских оптимизаций, а сам Джон Кармак — эталон сверхэффективного разработчика. Благодаря высочайшему качеству программирования Doom стал феноменом, который изменил мир.
Читать полностью »
Строки кода, которые изменили мир
2022-12-09 в 8:01, admin, рубрики: DEC PDP-1, ENIAC, Facebook, flow, irc, like, MIT, Spacewar, timeweb_статьи, баг, Блог компании Timeweb Cloud, Грейс Хоппер, интернет, Научно-популярное, научпоп, Программирование, Совершенный код{"__typename":"PageLikeAction","action_type":"LIKE","label":{"text":"Like"}
В 2009 году Facebook добавила в интерфейс своей социальной сети код, изменивший мир — кнопку «Like». «Лайк» был детищем нескольких программистов и дизайнеров — Лии Перлман и Джастина Розенштейна. Они предположили, что пользователи Facebook часто бывают слишком заняты, чтобы оставлять комментарии к постам своих друзей, и что поэтому им нужна простая кнопка, нажав которую можно было бы дать понять друзьям, что их пост вам понравился. Так оценивать и поощрять друг друга пользователям стало бы легче, а значит и делали бы они это чаще.
Это сработало — и даже слишком хорошо. К 2012 году пользователи прожали «лайк» триллион раз. У этого оказались и побочные эффекты. Многие стали публиковать фото/видео, чтобы потом сидеть и с тревогой обновлять страницу, ожидая, когда же число лайков возрастёт. Все стали гадать, почему кто-то другой получает больше лайков. Люди подсели на иглу одобрения (вместо того, чтобы сесть на чьё-то лицо), что отразилось на их повседневной онлайн-активности: старались публиковать как можно больше постов, чтобы казаться смешнее, умнее, красивее, спортивнее.
Небольшой фрагмент кода, который внёс почти незаметное изменение в пользовательский интерфейс социальной сети, изменил поведение людей. Ниже представлен список из примеров подобных важных фрагментов кода, которые изменили мир. И на самом деле это неполный список, учитывая огромное количество кода, который был написан.Читать полностью »
Поиск бага регистра, приводящего к вылету Chrome
2022-12-07 в 5:12, admin, рубрики: chrome, chromium, браузеры, отладка, Программирование, разработка под windows«Эй ты, функция. Да, я к тебе обращаюсь. При очистке не забудь, пожалуйста, восстановить все мои регистры. Да, и этот тоже, ты что, думаешь, в Linux попала?»
Вот краткое описание проблемы, с которой я столкнулся. ABI (Application Binary Interface) платформы требует от функций, чтобы они сохраняли значения определённых регистров и восстанавливали их в случае использования, однако набор восстанавливаемых регистров зависит от платформы, и правила в Linux отличаются от правил в Windows. Возможно, поэтому я столкнулся с повреждением регистров Chrome в Windows. Но давайте начнём с самого начала.
Читать полностью »
Превью профессии «говорящий с нейросетями»
2022-12-04 в 14:26, admin, рубрики: C, c++, data engineering, будущее, будущее наступило, нейросеть, ненормальное программирование, Программирование, С++Все уже слышали, что openAI выпустили в свет свою новую нейросеть-асистента, так что я решил попробовать на что она способна и описать свой опыт взаимодействия с этим.. Этой... Сущностью.
Разговор будет вестись как с человеком в вежливой форме, так как оказалось, что нейросеть очень хорошо запоминает = )
Начнём с чего-то простого, попросим сгенерировать на языке CMake простую программу
Улучшенный benchstat для оптимизирующих гоферов
2022-12-03 в 16:04, admin, рубрики: benchcmp, benchmark, benchstat, Go, golang, performance, высокая производительность, ПрограммированиеПривет!
Если вы писали бенчмарки и пытались понять, что там ускорилось и на сколько, то наверняка вы пользовались утилитами вроде benchstat.
Мне очень нравится эта утилита, но временами я понимаю, что некоторые её особенности работают против меня. Сегодня я расскажу вам о своей обёртке над benchstat, которая добавляет улучшения, полезные в моей работе.
Вам нужен чистый код? Используйте правило шести
2022-12-02 в 13:30, admin, рубрики: apl, LTM, python, Блог компании Цифровой СИБУР, мозг, Программирование, Совершенный код, чистый кодВсе хотят писать чистый код. Этому посвящены целые книги.
Но вам не нужно читать книги, чтобы начать писать более чистый код прямо сейчас. Есть одна «хитрость», которой может научиться любой кодер, она делает код гораздо менее запутанным.
Решение таково:
Каждая строка делает только одно действие
Одна строка, одна задача.
Но не стоит слишком перебарщивать.
Читать полностью »