home.social

#исходный_код — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #исходный_код, aggregated by home.social.

fetched live
  1. Кривые Безье для обработки звука

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

    habr.com/ru/articles/1097110/

    #фильтрация #звук #исходный_код #цифровая_обработка_сигналов #преобразование_фурье #dsp #безье #эквалайзер #кихфильтр #ачх

  2. Что мы на самом деле открываем?

    Начну со своего проекта. Я буквально чудом поднял для EvertyDesk крутой автотестовый стенд, на котором сейчас гоняю кучу разных сценариев. Иногда у меня уходят недели просто на то, чтобы воспроизвести какую-то маленькую аномалию, понять, существует ли она вообще, поймать нужное состояние и наконец разобраться, что именно происходит. И в какой-то момент я поймал себя на довольно неприятной мысли. Есть люди с деньгами, большими лимитами и доступом к невероятным современным моделям ии. Есть сами модели, которые уже умеют разбирать большие кодовые базы, искать связи, читать тесты, объяснять архитектуру. И я не знаю, будет ли это в десять раз быстрее или в сто — да это, наверное, и неважно. Важно другое. Я трачу недели на то, чтобы получить ответ. А если потом просто открою весь репозиторий, кто-то другой начнёт уже с этого ответа. Он получит не только код. Он увидит, что я тестирую, какие состояния считаю важными, где ставлю проверки, какие ошибки вообще допускаю возможными, как воспроизвожу редкие случаи и почему какие-то части системы выглядят именно так.

    habr.com/ru/articles/1090772/

    #open_source #искусственный_интеллект #разработка #GitHub #программирование #исходный_код #software_engineering #продукты #внимание #EvertyDesk

  3. Обработка цифрового звука фильтрами

    В данном материале в максимально простой форме изложены основы обработки цифрового звука, без подробного погружения в теорию цифровой обработки сигналов. Прилагается готовый код на C++ для расчета цифровых фильтров и собственно обработки звука.

    habr.com/ru/articles/1088440/

    #звук #dsp #цифровая_обработка_сигналов #преобразование_фурье #кихфильтр #нч #вч #ачх #исходный_код #фильтрация

  4. У nginx сжатие заголовков одностороннее

    Стенд: один nginx, одно HTTP/3-соединение, четыре одинаковых запроса подряд. Меряем размер сжатого блока заголовков в обе стороны. Ответ (nginx → клиент): 131, 131, 131, 131 байт. Запрос (клиент → nginx): 246, 8, 8, 8. Ответ — константа: сколько запросов ни повтори, столько же байт. Запрос со второго раза схлопывается в тридцать раз. В HTTP/2 к тому же серверу — та же константа. Между тем динамическая таблица HPACK и QPACK и есть половина смысла обоих протоколов: повторяющийся заголовок отправляется один раз, дальше идут ссылки на номер. Клиент ей пользуется. Сервер не пользуется ни в одном из двух — в HTTP/2 выставляет её размер в ноль, в HTTP/3 не открывает encoder-поток вовсе. Разбор по фиксированным тегам: nginx 1.31.3, quic-go, Cloudflare quiche, ls-qpack, Google QUICHE. Две реализации из пяти таблицу всё-таки ведут. И приёмная половина — та, которой сервер сам не пользуется, но обязан обслуживать, — в мае принесла nginx use-after-free с оценкой 9.2.

    habr.com/ru/articles/1070310/

    #nginx #quic #qpack #hpack #сжатие_заголовков #динамическая_таблица #cve202642530 #useafterfree #исходный_код #http

  5. nginx не умеет reload. Он умеет fork

    Деплой делает nginx -s reload . Команда возвращает ноль, nginx -T показывает новый конфиг, в error.log ровно одна строка — reconfiguring. А keep-alive соединение, открытое секундой раньше, в этот момент закрывается. Само по себе это не ошибка: сервер вправе закрыть простаивающий keep-alive когда угодно. Ошибку даёт гонка — FIN уходит в тот момент, когда клиент уже записал в сокет следующий запрос. Идемпотентный он повторит, POST — нет. Разбор по исходникам на фиксированных тегах: nginx release-1.31.3, httpd 2.4.68, traefik v3.7.10, плюс замер всех четырёх (с HAProxy) на одном стенде в одном прогоне. Выясняется, что мастер nginx конфиг не перечитывает вообще: он строит новый цикл целиком и форкает новых воркеров, а старым остаётся ровно то, что у них было. Apache приходит к тому же контракту через счётчик поколений, HAProxy — через замену процесса. А у одного из четырёх второй запрос в том же самом сокете возвращает уже новый конфиг — и причина не та, о которой вы подумали. Внутри: почему документация nginx сама создаёт половину недоразумения; почему WebSocket и SSE не попадают под ngx_close_idle_connections и держат старого воркера сколько угодно долго, а HTTP/2 попадает всегда и получает GOAWAY; как сигнал родителя у Apache доезжает до конкретного соединения через пять звеньев; и таблица из двенадцати клеток, в которой четыре реализации расходятся ровно в одной. Со стендом (один docker build, один docker run), полными выводами ps и тремя claims-*.tsv, где каждое утверждение о коде проверяется скриптом.

    habr.com/ru/articles/1067686/

    #nginx #traefik #apache_httpd #haproxy #reload #graceful_restart #keepalive #исходный_код #worker_process #обратный_прокси

  6. proxy_pass и fastcgi_pass — одна машина

    У директив proxy_* и fastcgi_* совпадает 46 опций из 53 — буферизация, таймауты, кеш, next_upstream, с точностью до префикса и вплоть до значений по умолчанию. Два независимо написанных модуля так не сходятся. Они и не независимы. Всё, чем proxy_pass отличается от fastcgi_pass, — девять указателей на функции в ngx_http_upstream_t. Соединение, таймауты, повторы, буферизация и отдача клиенту лежат в общих 7352 строках ngx_http_upstream.c, и восемь модулей — от proxy до свежего tunnel — дёргают один и тот же код. Только контракт из этих девяти указателей врёт в обе стороны. Один из них, abort_request, ставят все восемь модулей — а машинерия не вызывает его ни разу: ноль вызовов во всём дереве и ни одного коммита с вызовом за всю публичную историю, с импорта 0.1.14 в январе 2005-го. Другой, pipe->input_filter, в контракте не объявлен вовсе — но обязателен, как только включена буферизация, и вызывается без проверки на NULL. Разбираем по тегу release-1.31.3 со ссылками файл:строка: все места вызова каждого колбэка, включая тот, который разбирает заголовок не из сокета, а из файла кеша; матрица «кто какие указатели ставит» по всем восьми модулям; два сценария падения с разными стек-трейсами. Плюс свой рабочий upstream-модуль на 335 строк, собранный и проверенный curl'ом, и tunnel — самый маленький из восьми, приехавший в open source в апреле.

    habr.com/ru/articles/1067246/

    #nginx #upstream #proxy_pass #fastcgi_pass #модули_nginx #исходный_код #разбор_кода #ngx_http_upstream #C #обратный_прокси

  7. В nginx один алгоритм балансировки

    server a.internal weight=10 max_fails=2; — десять к одному. Ночью бэкенд на пару секунд отвалился, к утру давно жив и из ротации не выведен. А первые полсотни запросов рабочего дня распределяются не 10:1, и среди них есть места, где два запроса подряд уходят на сосед с весом единица. Ни один лог об этом не скажет, в документации по upstream такого объяснения нет. Есть — в двух строках ngx_http_upstream_round_robin.c. Разбираем по тегу release-1.31.3, со ссылками файл:строка: smooth weighted round-robin и его восемь копий в исходниках; effective_weight, которого нет в документации, и то, как max_fails втихую им управляет; почему least_conn сравнивает не число соединений; почему ip_hash не работает на unix-сокетах. Плюс sticky и least_time, приехавшие в open source несколько месяцев назад.

    habr.com/ru/articles/1066752/

    #nginx #upstream #балансировка_нагрузки #load_balancing #roundrobin #weighted_round_robin #исходный_код #least_conn #ip_hash #sticky

  8. Я распаковал исходник Claude Code v2.1.88. Половина того, что про него пишут — миф

    Почти всё, что я считал про устройство Claude Code изнутри, оказалось упрощением. Я распаковал бандл версии 2.1.88 — около 1884 файлов в src/ — и пошёл сверять, что из общеизвестного правда, а что нет. Ниже восемь мест, где расхожее мнение разошлось с кодом, и под конец одна вещь про безопасность, которая мне самому не понравилась.

    habr.com/ru/articles/1043904/

    #claude_code #ииагенты #исходный_код

  9. Ответчик не показывает исходный код. Что делать истцу?

    Представьте: ваша компания обнаружила, что конкурент выпустил продукт, подозрительно похожий на ваш. Вы знаете, что код скопирован, но доказать это в суде не можете, потому что у ответчика находится тот самый исходный код, который нужен для экспертизы. А предоставлять его он отказывается. Что делать в такой ситуации?

    habr.com/ru/articles/1035198/

    #исходный_код #авторское_право #программы_для_ЭВМ #интеллектуальная_собственность #судебная_практика #доказательства_в_суде #нарушение_исключительных_прав #обратная_инженерия #защита_авторских_прав #стартапы

  10. Часть 3: Архитектура нейросети для распознавания голосовых команд

    def get_features_all(y, sr): """ Получаем различные параметры аудио которые в сумме дадут уникальный набор признаков """ # Частота цветности chst = librosa.feature.chroma_stft(y=y, sr=sr) # Среднеквадратичные колебания (энергия сигнала) rmse = librosa.feature.rms(y=y) # Пересечения нуля (частота смены знака сигнала) zcr = librosa.feature.zero_crossing_rate(y) # Центр масс звука (спектральный центр) spe_c = librosa.feature.spectral_centroid(y=y, sr=sr) # Ширина полосы частот spe_b = librosa.feature.spectral_bandwidth(y=y, sr=sr) # Спектральный спад частоты rol = librosa.feature.spectral_rolloff(y=y, sr=sr) # Значимые для обработки частоты (MFCC) mfcc = librosa.feature.mfcc(y=y, sr=SR, n_mfcc=50, n_mels=50, hop_length=1024) return chst, rmse, zcr, spe_c, spe_b, rol, mfcc

    habr.com/ru/articles/1005320/

    #искусственный_интеллект #исследование #исходный_код #нейронные_сети #CNN #распознавание_голоса #обработка_аудио #умный_дом #Python #MFCC

  11. Уязвимости в Naumen Service Desk

    Naumen Service Desk — один из самых распространённых helpdesk-продуктов на отечественном рынке. Он используется в госсекторе, корпоративных ИТ-службах, интеграционных решениях. Именно поэтому любые найденные в нём уязвимости потенциально опасны — они используются в реальных атаках, которые могут привести к серьёзным последствиям. В этой статье я попробовал собрать свой опыт тестирования веб-приложения этого продукта с точки зрения безопасности, в том числе описал найденные zero-day уязвимости, которые приводят к удаленному исполнению кода ОС.

    habr.com/ru/companies/angarase

    #helpdesk #анализ_кода #эксплуатация_уязвимостей #исходный_код #naumen #api

  12. [Перевод] Вся мощь открытого исходного кода в PostgreSQL

    PostgreSQL — одна из самых популярных СУБД, и это во многом благодаря открытому исходному коду. В статье рассказывается о том, как открытость кода влияет на развитие PostgreSQL и создание сообщества вокруг неё.

    habr.com/ru/companies/flant/ar

    #open_source #postgresql #исходный_код #коммиты #commit #git #git_log #sgml #git_blame #source_code

  13. [Перевод] Мы взломали ИИ Gemini от Google и опубликовали его исходный код

    В 2024 году мы опубликовали блог-пост We Hacked Google A.I. for $50,000 , в котором рассказали, как в 2023 году мы отправились в Лас-Вегас вместе с Джозефом «rez0» Тэкером, Джастином «Rhynorater» Гарднером и мной, Рони «Lupin» Карта, в настоящее путешествие по взлому, которое прошло от Лас-Вегаса через Токио до Франции – всё ради поиска уязвимостей в Gemini на мероприятии Google LLM bugSWAT. И, что вы думаете? Мы сделали это снова … Мир генеративного искусственного интеллекта (GenAI) и больших языковых моделей (LLMs) по-прежнему остаётся диким Западом в сфере технологий. С момента появления GPT гонка за лидерством в области LLM только накаляется, и такие технологические гиганты, как Meta, Microsoft и Google, стремятся создать лучшую модель. Но теперь на сцене появляются и Anthropic, Mistral, Deepseek и другие, оказывающие масштабное влияние на индустрию. Пока компании спешат внедрять AI‑ассистентов, классификаторы и всевозможные инструменты на базе LLM, остаётся один важный вопрос: строим ли мы системы с учётом безопасности? Как мы подчёркивали в прошлом году, стремительное принятие технологий иногда заставляет нас забывать о базовых принципах защиты, открывая дорогу как новым, так и старым уязвимостям. ИИ-агенты стремительно становятся следующим прорывом в мире искусственного интеллекта. Эти интеллектуальные сущности используют продвинутые цепочки рассуждений – процесс, в котором модель генерирует логически связанную последовательность внутренних шагов для решения сложных задач. Документируя ход своих мыслей, агенты не только улучшают способность принимать решения, но и обеспечивают прозрачность, позволяя разработчикам и исследователям анализировать и совершенствовать их работу. Такая динамичная комбинация автономного действия и видимых рассуждений прокладывает путь к созданию ИИ-систем, которые становятся более адаптивными, понятными и надёжными. Мы наблюдаем, как появляется всё больше приложений – от интерактивных ассистентов до сложных систем поддержки принятия решений. Интеграция цепочек рассуждений в ИИ-агентах задаёт новый стандарт того, чего эти модели могут достичь в реальных условиях.

    habr.com/ru/articles/895546/

    #google_gemini #уязвимость #взлом #исходный_код #rpc #протоколы #компьютерная_безопасность #хакер #хакерские_атаки #bug_bounty

  14. Календарь тренировок — когда пет-проект чуть больше to-do листа

    В декабре 2023 я впервые задумался о похудении. Тогда при росте 194 см я весил 116 кг. Раньше я только играл в мини-футбол, вообще не следил за едой и даже не заглядывал в спортзал. Начал нормально питаться, поменял привычки, добавил силовые тренировки, к сентябрю 2024 скинул около 30 кг. Это был рекорд по минимальному весу. Сейчас, через полгода, вешу 89 кг. Оказалось, что нарастить мышцы намного труднее, чем избавиться от жира. Надеюсь, что эти +3 кг в основном мышцы. Почему так: теперь могу подтянуться 11 раз вместо 9, и на фото видны изменения — делаю такие сравнения каждые пару месяцев.

    habr.com/ru/articles/895296/

    #vue #vuejs #frontend #frontendразработка #typescript #javascript #фронтенд #пет_проект #открытый_код #исходный_код

  15. Случай из практики анализа кода

    Приветствую всех хабрачитателей. Если выкинуть административную работу, то моя основная деятельность на работе - поиск различных уязвимостей. Чаще всего мой инструментарий представляет собой набор каких-то отладчиков, динамических анализаторов и прочего подобного. Но иногда приходится заниматься анализом исходного кода произвольной степени кривизны понятности. И это практически отдельный параллельный мир в области безопасности. Под катом я расскажу об одном примере разбора небольшой проблемы в коде. Открываем код OpenJDK на гитхабе

    habr.com/ru/companies/pm/artic

    #статический_анализ #исходный_код #анализ_кода #openjdk

  16. Подводные камни устройства карты видимости в СУБД PostgreSQL

    Карта видимости - это достаточно простой механизм в СУБД PostgreSQL, но даже он имеет множество интересных тайн, если погрузиться в детали реализации. В этой статье мы выясним: 1. Какие особенности есть у механизма сбрасывания и установки бита полной видимости. 2. Как Index only scan использует бит полной видимости. 3. Зачем записывать информацию об изменении карты видимости в WAL. 4. Каким образом карта видимости участвует в оптимизации предвыборки Bitmap scan. 5. Зачем механизму оценки селективности нужна карта видимости.

    habr.com/ru/articles/842520/

    #postgres #postgresql #visibility_map #vm #open_source #анализ_программ #reverseengineering #исходный_код #c_programming #субд

  17. Не панацея, но помощник. О статическом анализаторе кода

    Приветствую, уважаемые читатели Хабра! Сегодня я хочу предложить вашему вниманию статью о статических анализаторах кода, о том, что это такое и для чего они, собственно, нужны.

    habr.com/ru/companies/reksoft/

    #статический_анализатор #статический_анализатор_кода #исходный_код #анализ_кода #patternbased_analysis #data_flow_analysis #control_flow #msbuild #cmake #baseline

  18. Собственные проекты, углубленная практика алгоритмов и другое: поднимаем навыки программирования на новый уровень

    Неважно, новичок ли вы, отлаживающий вашу первую программу «Hello World», или опытный инженер, — у каждого из нас всегда есть возможность улучшить свои навыки. Александр Шелютин, Data Architect в KarmaHQ, расскажет о разнице между тем, как просто заставить что-то работать, и написанием действительно хорошего кода.

    habr.com/ru/companies/products

    #программирование #код #code #ruby #советы_начинающим #лайфхаки #алгоритмы #github #исходный_код #oss

  19. PostgreSQL. Устройство карты свободного пространства

    СУБД PostgreSQL способна бысто работать с огромными массивами данных благодаря множеству различных механизмов, таких как карта свободного пространства, позволяющая за короткий промежуток времени найти страницу из основного слоя с необходимым свободным пространством для вставки новых версий строк. В этой статье мы разберемся в устройстве карты свободного пространства, а также познакомимся с алгоритмом получения страницы с необходимым свободным пространством.

    habr.com/ru/articles/806415/

    #postgres #postgresql #free_space_map #fsm #open_source #анализ_программ #reverseengineering #исходный_код #субд #c_programming

  20. Заглядываем в консоль: пасхалки и приглашения на работу, которые вы могли пропустить

    Это статья о поиске пасхалок в коде и о том, что мне удалось найти. Покажу, где были поиски, и на каких популярных сайтах их все-таки удалось найти. Погнали!

    habr.com/ru/companies/timeweb/

    #timeweb_статьи #исходный_код #пасхалки #юмор

Share on Mastodon

Enter the server where you have an account.