Хомяку дали Strava Premium, и он закрыл августовский челлендж на второй день
Физик из Утрехта хотел узнать, сколько наматывает за ночь его хомяк Молли, и начал с дешёвого велокомпьютера: там тоже магнит и датчик. Не сработало: велокомпьютер уходил в спящий режим, если колесо стояло дольше пяти минут, а Молли регулярно отлучается попить.
Итоговая сборка проще, чем кажется. Магнит на колесе проходит мимо датчика Холла, тот считает обороты, ESP32 копит данные за ночь. Утром скрипт на ноутбуке собирает их в файл формата Strava и заливает через её API. Сверху навесили экранчик со скоростью в реальном времени, автоматический учёт рекордов и больше сотни вариантов названий забега.
Результаты: почти 10 километров за ночь, рекорд 10,8 километра, старт пять ночей из семи в одно и то же десятиминутное окно. Автоматическая загрузка потребовала платного тарифа, поэтому Premium у хомяка теперь тоже есть.
Автор сам бегает и ждёт двадцатой пробежки Молли: после неё Strava начнёт прогнозировать время на 5 километров и марафон. Говорит, что немного опасается сравнения.
#новости #кек
Физик из Утрехта хотел узнать, сколько наматывает за ночь его хомяк Молли, и начал с дешёвого велокомпьютера: там тоже магнит и датчик. Не сработало: велокомпьютер уходил в спящий режим, если колесо стояло дольше пяти минут, а Молли регулярно отлучается попить.
Итоговая сборка проще, чем кажется. Магнит на колесе проходит мимо датчика Холла, тот считает обороты, ESP32 копит данные за ночь. Утром скрипт на ноутбуке собирает их в файл формата Strava и заливает через её API. Сверху навесили экранчик со скоростью в реальном времени, автоматический учёт рекордов и больше сотни вариантов названий забега.
Результаты: почти 10 километров за ночь, рекорд 10,8 километра, старт пять ночей из семи в одно и то же десятиминутное окно. Автоматическая загрузка потребовала платного тарифа, поэтому Premium у хомяка теперь тоже есть.
Автор сам бегает и ждёт двадцатой пробежки Молли: после неё Strava начнёт прогнозировать время на 5 километров и марафон. Говорит, что немного опасается сравнения.
#новости #кек
😁57❤12🔥4☃2👍2🙏2🍓2⚡1🕊1🐳1💯1
Почему хорошие идеи так и остаются в заметках?
«Инициатива наказуема» — знакомое выражение? Промолчал, ничего не сделал: не накажут. Предложил и ошибся: накажут почти наверняка.
Например, некоторые компании переняли у Toyota контроль качества, только наоборот. У японцев за найденный брак поощряли, а в других компаниях стали наказывать. Так и пропадает желание что-то предлагать.
В новом материале на Tproger разбираем три ловушки, которые убивают инициативу внутри компании.
https://tproger.ru/articles/chto-mewaet-zapustit-novye-produkty-vnutri-kompanii
«Инициатива наказуема» — знакомое выражение? Промолчал, ничего не сделал: не накажут. Предложил и ошибся: накажут почти наверняка.
Например, некоторые компании переняли у Toyota контроль качества, только наоборот. У японцев за найденный брак поощряли, а в других компаниях стали наказывать. Так и пропадает желание что-то предлагать.
В новом материале на Tproger разбираем три ловушки, которые убивают инициативу внутри компании.
https://tproger.ru/articles/chto-mewaet-zapustit-novye-produkty-vnutri-kompanii
❤9🎉7🔥6🕊2😍2💯2🤣2🙏1🤓1👨💻1👾1
GPU необязательно покупать — его можно арендовать
Топовая карта стоит как подержанная машина, а без неё модели от 70B не запустить. При этом мощность часто нужна не постоянно: протестировать гипотезу или закрыть пик нагрузки можно арендованными ресурсами.
Собрали 6 сервисов аренды GPU для инференса моделей: облака с посекундной тарификацией и managed-платформы с оплатой за токены. Разобрались, какие видеокарты доступны, сравнили по ключевым показателям и тарифам.
Пригодится всем, кто хочет потестировать модель, но пока не готов вложиться в железо.
https://tproger.ru/digest/gde-arendovat-gpu-dlya-inferensa-modelej-5-servisov
Топовая карта стоит как подержанная машина, а без неё модели от 70B не запустить. При этом мощность часто нужна не постоянно: протестировать гипотезу или закрыть пик нагрузки можно арендованными ресурсами.
Собрали 6 сервисов аренды GPU для инференса моделей: облака с посекундной тарификацией и managed-платформы с оплатой за токены. Разобрались, какие видеокарты доступны, сравнили по ключевым показателям и тарифам.
Пригодится всем, кто хочет потестировать модель, но пока не готов вложиться в железо.
https://tproger.ru/digest/gde-arendovat-gpu-dlya-inferensa-modelej-5-servisov
❤11🐳4😢3👍2🔥1🤔1🕊1🌚1💯1👨💻1💊1
Карьерный потолок не щадит никого: время идёт, таски закрываются, приходит скука и предел. Можно ли вырваться из «Матрицы»?
https://tproger.ru/articles/zhizn-posle-senora-kak-ya-haknul-matricu
https://tproger.ru/articles/zhizn-posle-senora-kak-ya-haknul-matricu
🤣13👏4❤3⚡2☃2👍2🌚2🔥1🎉1💯1🤝1
Mojo добрался до 1.0 и зафиксировал синтаксис
В ветке 1.x обещают в основном аддитивные изменения. Ломающие правки останутся возможны, но проводить их будут по правилам взрослых языков вроде C++. Modular понимает, что язык менялся слишком часто, и сообществу было тяжело вести на нём долгие проекты.
Заодно закончили чистку. Где было несколько способов сказать одно и то же, оставили один: переменные объявляются только через
Пока открыта только стандартная библиотека, куда пришли почти 200 контрибьюторов с 1 100 пул-реквестами. Исходники компилятора и тулчейна закрыты, пользоваться можно, но чинить или форкать сам компилятор может только Modular. Открыть его обещают в 2026 году, то есть срок истекает через несколько месяцев, и следить я бы стал именно за этим.
Пробовали этот язык в деле? Как вам?
#mojo
В ветке 1.x обещают в основном аддитивные изменения. Ломающие правки останутся возможны, но проводить их будут по правилам взрослых языков вроде C++. Modular понимает, что язык менялся слишком часто, и сообществу было тяжело вести на нём долгие проекты.
Заодно закончили чистку. Где было несколько способов сказать одно и то же, оставили один: переменные объявляются только через
var, замыкания унифицированы, тип указателя ровно один. Появилась диагностика, которая ловит момент, когда List.append перевыделяет память и ссылка внутрь списка становится недействительной.Пока открыта только стандартная библиотека, куда пришли почти 200 контрибьюторов с 1 100 пул-реквестами. Исходники компилятора и тулчейна закрыты, пользоваться можно, но чинить или форкать сам компилятор может только Modular. Открыть его обещают в 2026 году, то есть срок истекает через несколько месяцев, и следить я бы стал именно за этим.
Пробовали этот язык в деле? Как вам?
#mojo
Modular
Modular: Modular 26.5: Mojo 1.0 is here!
Today, the Mojo language officially reaches 1.0: a milestone the language has been building toward since its first release in 2023. Mojo has grown into a general-purpose language with a vibrant developer community writing their own libraries, tools, and applications…
👍5🎉4🌭3❤2🔥2🤝2💊2⚡1👎1🥰1😍1
Почему учиться в IT стало сложнее?
Вайбкодинг создал иллюзию, что теперь любой может сделать продукт быстро и легко, всего лишь с парой подписок.
Работает это не так: необходимость разбираться в том, как всё устроено, применять знания и читать код никуда не делась.
Разбор задачи, на который раньше уходил месяц, теперь укладывается в десять минут. Именно за этот месяц набирался опыт, а теперь без хорошей базы почти невозможно оценить то, что модель выдала за минуты.
Почему разбираться теперь приходится глубже и быстрее, и что с этим делать — читайте на Tproger: https://tproger.ru/articles/uchitsya-v-it-stalo-slozhnee-chto-na-samom-dele-izmenil-vajbkoding
Вайбкодинг создал иллюзию, что теперь любой может сделать продукт быстро и легко, всего лишь с парой подписок.
Работает это не так: необходимость разбираться в том, как всё устроено, применять знания и читать код никуда не делась.
Разбор задачи, на который раньше уходил месяц, теперь укладывается в десять минут. Именно за этот месяц набирался опыт, а теперь без хорошей базы почти невозможно оценить то, что модель выдала за минуты.
Почему разбираться теперь приходится глубже и быстрее, и что с этим делать — читайте на Tproger: https://tproger.ru/articles/uchitsya-v-it-stalo-slozhnee-chto-na-samom-dele-izmenil-vajbkoding
👍19❤6🤝4🕊2🤗2⚡1☃1🌚1💯1🤷1
Модель, которая помещается в 14 МБ вместе с весами
Вызов функции по фразе человека обычно уезжает в облако или тянет локальную модель на сотни мегабайт. Cactus Compute выложила под MIT Needle 2: модель на 45 миллионов параметров, которая может делать это и на телефоне и в умном доме, а заодно вынимает из текста структуру по схеме.
Веса вшиты в движок, бинарник занимает 14 МБ, сессия держится в пределах 28 МБ оперативки и не растёт с длиной разговора: контекст обрезан окном в 256 токенов, описания функций закреплены в нём как якоря. На бенчмарках авторов идёт вровень с FunctionGemma 270M, будучи в несколько раз меньше.
Схемы функций компилируются в грамматику, ограничивающую каждый токен, поэтому ответ приходит структурой, а не текстом под парсинг. Ставится через
#ии #опенсорс
Вызов функции по фразе человека обычно уезжает в облако или тянет локальную модель на сотни мегабайт. Cactus Compute выложила под MIT Needle 2: модель на 45 миллионов параметров, которая может делать это и на телефоне и в умном доме, а заодно вынимает из текста структуру по схеме.
Веса вшиты в движок, бинарник занимает 14 МБ, сессия держится в пределах 28 МБ оперативки и не растёт с длиной разговора: контекст обрезан окном в 256 токенов, описания функций закреплены в нём как якоря. На бенчмарках авторов идёт вровень с FunctionGemma 270M, будучи в несколько раз меньше.
Схемы функций компилируются в грамматику, ограничивающую каждый токен, поэтому ответ приходит структурой, а не текстом под парсинг. Ставится через
pip install cactus-needle, а посмотреть без установки можно в браузерной песочнице, там же кнопка дообучения.#ии #опенсорс
GitHub
GitHub - cactus-compute/needle: Automation foundation model for tiny devices: 2-bit, 8-29 MB, tool calls, ASR, structured extraction…
Automation foundation model for tiny devices: 2-bit, 8-29 MB, tool calls, ASR, structured extraction and embeddings on phones, wearables, smart homes, robots, cars and microcontrollers. - cactus-co...
❤16👍10💯4🔥3🎉2🐳2🤨2👨💻2🦄2🤣1💊1
Как OpenClaw прошёл проверку на прочность среди 50 опенсорс-проектов
Когда репозиторий растёт быстрее всех на GitHub, к нему приходят и хорошие контрибьюторы, и странные PR, и новые атаки. Поддерживать безопасность в таком темпе, всё равно что собирать самолёт во время полёта.
OpenClaw взяли в четвёртую сессию GitHub Secure Open Source Fund: 50 проектов, 71 мейнтейнер, 22 страны и больше $500 тысяч поддержки. За сессию команда написала план реагирования на инциденты, пересмотрела GitHub Actions и внедрила secret scanning, code scanning, Dependabot и приватные репорты уязвимостей.
Разбор, как это устроено, — в статье на GitHub Blog: цифры, методы и чему научились мейнтейнеры.
Когда репозиторий растёт быстрее всех на GitHub, к нему приходят и хорошие контрибьюторы, и странные PR, и новые атаки. Поддерживать безопасность в таком темпе, всё равно что собирать самолёт во время полёта.
OpenClaw взяли в четвёртую сессию GitHub Secure Open Source Fund: 50 проектов, 71 мейнтейнер, 22 страны и больше $500 тысяч поддержки. За сессию команда написала план реагирования на инциденты, пересмотрела GitHub Actions и внедрила secret scanning, code scanning, Dependabot и приватные репорты уязвимостей.
Разбор, как это устроено, — в статье на GitHub Blog: цифры, методы и чему научились мейнтейнеры.
👍8🔥5🤷♀3🌚2🌭2🤨2🤝2🎉1😍1😨1🙉1
Forwarded from Точка входа в программирование
Куда прятать ключи API, когда работает ИИ-ассистент
API-ключ, по сути пароль к сервису, который часто лежит в файле
Автор статьи предлагает выход: не давать ассистенту ключи напрямую. Храните их в менеджере секретов, передавайте через прокси, который подставляет ключ сам, или запускайте команды так, чтобы значение оставалось за пределами контекста. Разбор на dev.to поможет понять, как устроить это на своём первом проекте.
API-ключ, по сути пароль к сервису, который часто лежит в файле
.env, а ИИ-ассистент читает его, чтобы запустить ваш проект. Проблема в том, что ключ попадает в окно диалога: ассистент может случайно вывести его в лог или выполнить чужую инструкцию из стороннего файла.Автор статьи предлагает выход: не давать ассистенту ключи напрямую. Храните их в менеджере секретов, передавайте через прокси, который подставляет ключ сам, или запускайте команды так, чтобы значение оставалось за пределами контекста. Разбор на dev.to поможет понять, как устроить это на своём первом проекте.
2🤷♀10👏7🙉7💯6👍4🔥4🕊2🐳1🦄1💊1👾1
15 MCP-серверов, которые подключают ИИ к вашим инструментам
ИИ-агент может написать код, но без связи с реальными системами он работает вслепую: не видит ваш репозиторий, не читает дизайн и не проверяет ошибки в проде. В обзоре LogRocket собрали 15 серверов: GitHub для кода и пулреквестов, Figma для перевода дизайна в код, Sentry для отладки, Playwright для браузерных тестов, плюс облачные сервисы вроде AWS, Cloudflare и Netlify.
Полный список с примерами — хорошая старт для начала любого проекта.
ИИ-агент может написать код, но без связи с реальными системами он работает вслепую: не видит ваш репозиторий, не читает дизайн и не проверяет ошибки в проде. В обзоре LogRocket собрали 15 серверов: GitHub для кода и пулреквестов, Figma для перевода дизайна в код, Sentry для отладки, Playwright для браузерных тестов, плюс облачные сервисы вроде AWS, Cloudflare и Netlify.
Полный список с примерами — хорошая старт для начала любого проекта.
👍12🔥8👀5😁4☃1👎1🌭1🍌1🍾1😇1🙉1
Forwarded from Представляешь,
Обычный Wi-Fi превратили в камеру
Исследователи показали, что по сигналу обычного Wi-Fi можно строить изображения находящихся рядом людей и их окружения. Без специального оборудования — достаточно стандартной Wi-Fi-сети и алгоритмов обработки отражённого сигнала.
Технология ещё в стадии исследований, но сам факт, что для этого хватает домашнего роутера, уже меняет ощущение приватности.
Пока это лабораторный результат, а не функция в вашем роутере. Но контур понятен: железо умеет больше, чем разрешено и как от этого обезопасить себя, пока непонятно. Подробнее в материале Slashdot.
Исследователи показали, что по сигналу обычного Wi-Fi можно строить изображения находящихся рядом людей и их окружения. Без специального оборудования — достаточно стандартной Wi-Fi-сети и алгоритмов обработки отражённого сигнала.
Технология ещё в стадии исследований, но сам факт, что для этого хватает домашнего роутера, уже меняет ощущение приватности.
Пока это лабораторный результат, а не функция в вашем роутере. Но контур понятен: железо умеет больше, чем разрешено и как от этого обезопасить себя, пока непонятно. Подробнее в материале Slashdot.
⚡8🤔8❤6😱4🍓2👨💻2🙉2😘2☃1🤷♂1🙈1
Forwarded from Zen of Python
Почему str.lower() иногда ломает проверку имён доменов
Регистр символа в Python зависит от версии Unicode интерпретатора. Сейчас
Поэтому
В контексте безопасности не зовите
Seth Larson разбирает уязвимость и показывает, как это выглядит на практике.
Регистр символа в Python зависит от версии Unicode интерпретатора. Сейчас
unicodedata.unidata_version — 17.0.0, а протокол подготовки строк stringprep, который лежит в основе международных доменных имён, зафиксирован на Unicode 3.2.Поэтому
str.lower() и str.encode('idna') в разных версиях Python могут считать разные строки одинаковыми. В обычном коде это проходит незамеченным, а в проверке доменов или авторизации получается обход валидации.В контексте безопасности не зовите
str.lower() напрямую. Берите пакет idna: он реализует стандарт IDNA 2008 и не использует встроенные таблицы Unicode.Seth Larson разбирает уязвимость и показывает, как это выглядит на практике.
👍13🎉4🌚4❤3👎3🤔3🆒3🤷♂2🤷♀1💔1🤝1
Разработчик заставил печатать HP Laser 1008a на macOS с помощью Claude Code
У HP Laser 1008a нет родного драйвера и AirPrint. Кубера Мехта из PolyThink это не остановило. Он взял Claude Code и за 30–40 промптов, потратив 4% месячного лимита, собрал патч к открытому драйверу SpliX.
Мехт говорит, что не разбирался в macOS-драйверах, но учился по ходу. Claude Code делал уверенные заявления, которые приходилось проверять и поправлять, и снял рутину, позволив одному человеку закрыть задачу, которая раньше требовала узкой специализации.
Разбор на The Register.
У HP Laser 1008a нет родного драйвера и AirPrint. Кубера Мехта из PolyThink это не остановило. Он взял Claude Code и за 30–40 промптов, потратив 4% месячного лимита, собрал патч к открытому драйверу SpliX.
Мехт говорит, что не разбирался в macOS-драйверах, но учился по ходу. Claude Code делал уверенные заявления, которые приходилось проверять и поправлять, и снял рутину, позволив одному человеку закрыть задачу, которая раньше требовала узкой специализации.
Разбор на The Register.
😁36👍29❤14🔥7✍3🤗2😍1🌚1😨1🫡1💘1
Делаем из плоского фото 3D-сцену со светом и тенями
В новом туториале Codrops Dominik Fojcik показывает, как обычное 2D-изображение начинает отбрасывать настоящие тени: без 3D-модели, одной текстурой. Берёте картинку, генерируете карту глубины и пропускаете свет через WebGPU-шейдер в Three.js.
Фишка в том, что готовые карты глубины обычно 8-битные, всего 256 градаций, и на гладких поверхностях свет ловит ступеньки. Автор же разбирает, как конвертировать карту в float, слегка размыть и сохранить в half-float, чтобы шум исчез.
Работает пока только где есть WebGPU. Пошаговый туториал на Codrops.
В новом туториале Codrops Dominik Fojcik показывает, как обычное 2D-изображение начинает отбрасывать настоящие тени: без 3D-модели, одной текстурой. Берёте картинку, генерируете карту глубины и пропускаете свет через WebGPU-шейдер в Three.js.
Фишка в том, что готовые карты глубины обычно 8-битные, всего 256 градаций, и на гладких поверхностях свет ловит ступеньки. Автор же разбирает, как конвертировать карту в float, слегка размыть и сохранить в half-float, чтобы шум исчез.
Работает пока только где есть WebGPU. Пошаговый туториал на Codrops.
🔥9❤2🎉1🤣1
Водяной знак Claude: как статистика выдаёт машинный текст
Если вы гоняете через Claude черновики, переводы или правки, знайте: в сгенерированных текстах новых моделей появится скрытый след. Не невидимые символы, а смещение выбора между близкими по смыслу словами по секретному ключу.
Anthropic объяснила: на «равноправных» шагах модель получает лёгкий толчок к одним кандидатам и от других. Отдельный выбор незаметен, но на дистанции складывается в узнаваемую подпись, которую проверит только сама компания.
Спорная деталь — асимметрия: вы не убедитесь, что текст чист, а вот Anthropic может. Переводы и переписывания проходят через Claude целиком, поэтому маркируются сильнее. Если пишете важный текст, берите черновик у Claude и переписывайте своими словами.
Если вы гоняете через Claude черновики, переводы или правки, знайте: в сгенерированных текстах новых моделей появится скрытый след. Не невидимые символы, а смещение выбора между близкими по смыслу словами по секретному ключу.
Anthropic объяснила: на «равноправных» шагах модель получает лёгкий толчок к одним кандидатам и от других. Отдельный выбор незаметен, но на дистанции складывается в узнаваемую подпись, которую проверит только сама компания.
Спорная деталь — асимметрия: вы не убедитесь, что текст чист, а вот Anthropic может. Переводы и переписывания проходят через Claude целиком, поэтому маркируются сильнее. Если пишете важный текст, берите черновик у Claude и переписывайте своими словами.
🤣31❤7👾3🔥2🤨2👍1👏1🎉1🙏1👌1😴1
Заражённый arrayref запускал чужой код на cargo build
Build-скрипт в Rust выполняется, когда вы собираете проект. Этим и воспользовались: 20 августа команде безопасности сообщили про пакет proc-macro1, чей build-скрипт тянул вредоносную нагрузку с чужого сервера. Запускать ничего не надо, хватает сборки.
В то же утро кто-то перевыпустил популярный arrayref и добавил ему зависимость на этот пакет. Обновили зависимости, сказали cargo build — и чужой код уже отработал у вас на машине. Следом досталось internment и append-only-vec того же автора. Владельца аккаунта никто не винит: похоже, увели машину или ключи.
Заражённые версии сняли за 86–107 минут. Кажется, что мало, но ночная сборка в CI попадает в такое окно легко. Загляните в
Список удалённых пакетов и готовая команда для поиска — в блоге Rust.
Build-скрипт в Rust выполняется, когда вы собираете проект. Этим и воспользовались: 20 августа команде безопасности сообщили про пакет proc-macro1, чей build-скрипт тянул вредоносную нагрузку с чужого сервера. Запускать ничего не надо, хватает сборки.
В то же утро кто-то перевыпустил популярный arrayref и добавил ему зависимость на этот пакет. Обновили зависимости, сказали cargo build — и чужой код уже отработал у вас на машине. Следом досталось internment и append-only-vec того же автора. Владельца аккаунта никто не винит: похоже, увели машину или ключи.
Заражённые версии сняли за 86–107 минут. Кажется, что мало, но ночная сборка в CI попадает в такое окно легко. Загляните в
~/.cargo/registry/cache: если одна из версий там лежит, чистите кэш и пересобирайтесь, в реестре уже безопасные.Список удалённых пакетов и готовая команда для поиска — в блоге Rust.
blog.rust-lang.org
Supply chain attack on arrayref | Rust Blog
Empowering everyone to build reliable and efficient software.
❤7🔥6👾4👏3🎉3🤝3👍2🤔1🤩1😈1🙊1
ИИ оставляет в коде уязвимости, потому что решает поставленную задачу самым коротким путём. Если в промпте явно не заданы требования к безопасности, проверок прав доступа и валидации ввода в коде просто не будет, при этом результат выглядит рабочим и проходит тесты. В итоге на прод попадают IDOR и ошибки бизнес-логики, которые никто не заметил на ревью.
С агентами в продакшене механика похожая, но последствия иные: утекают данные. Модель не разграничивает данные и инструкции, поэтому страница вики, входящее письмо или чужой документ из общего индекса могут быть восприняты как команда и выполнены. Достаточно одного такого сценария, чтобы агент отдал пользователю данные, которые не должен раскрывать.
Собрали пять уязвимостей, которые системно воспроизводятся в сгенерированном коде:
https://tproger.ru/articles/vajb-koding-kak-mechta-hakera-kakie-uyazvimosti-plodit-kod-sgene
И пять атак, которые превращают ИИ-помощника в канал утечки данных:
https://tproger.ru/articles/manual-yunogo-hakera-kak-vzlomat-svoego-rag-bota-do-togo-kak-e
С агентами в продакшене механика похожая, но последствия иные: утекают данные. Модель не разграничивает данные и инструкции, поэтому страница вики, входящее письмо или чужой документ из общего индекса могут быть восприняты как команда и выполнены. Достаточно одного такого сценария, чтобы агент отдал пользователю данные, которые не должен раскрывать.
Собрали пять уязвимостей, которые системно воспроизводятся в сгенерированном коде:
https://tproger.ru/articles/vajb-koding-kak-mechta-hakera-kakie-uyazvimosti-plodit-kod-sgene
И пять атак, которые превращают ИИ-помощника в канал утечки данных:
https://tproger.ru/articles/manual-yunogo-hakera-kak-vzlomat-svoego-rag-bota-do-togo-kak-e
❤9👏6🔥5😁5👍3🤩3🕊3🫡2💋1👻1👨💻1
Forwarded from Точка входа в программирование
void в C меняет смысл в зависимости от места
Вы видите void в объявлении функции, в скобках после её имени и рядом со звёздочкой у указателя. Выглядит одинаково, а ведёт себя каждый раз по-своему, и в чужом коде легко прочитать одно вместо другого.
У нас вышла статья о том, как одно короткое слово набрало столько ролей. Заодно там история появления слова: его предложил Стивен Борн, тот самый автор Bourne Shell, и придумали его совсем не ради читаемости кода.
Если пишете на C, дочитайте хотя бы до места про функции без параметров: многие узнают там, что объявляли их не так, как думали. Разобрали в статье.
#основы
Вы видите void в объявлении функции, в скобках после её имени и рядом со звёздочкой у указателя. Выглядит одинаково, а ведёт себя каждый раз по-своему, и в чужом коде легко прочитать одно вместо другого.
У нас вышла статья о том, как одно короткое слово набрало столько ролей. Заодно там история появления слова: его предложил Стивен Борн, тот самый автор Bourne Shell, и придумали его совсем не ради читаемости кода.
Если пишете на C, дочитайте хотя бы до места про функции без параметров: многие узнают там, что объявляли их не так, как думали. Разобрали в статье.
#основы
👍19❤7👏3👎2🔥2🥰2🎉2💯2🎅2🤯1🤝1