Hacker News Digest

Тег: #merlin

Постов: 2

Intro to BirdNET-Pi: Eavesdropping on my feathered friends (hannahilea.com)

С помощью BirdNET-Pi на Raspberry Pi можно легко настроить систему пассивного акустического мониторинга птиц. Проект использует модель BirdNET от Cornell Lab of Ornithology для идентификации видов по их пению, а открытое сообщество разработало удобное ПО для Raspberry Pi. Автор делится опытом установки у себя и у родителей, отмечая радость от наблюдений и общения с соседями.

На примере графиков за май видно, как домовые воробьи активны с 5 утра до 6 вечера, голубые сойки кричат около часа после 16:00, а американские дрозды ненадолго появляются после рассвета. Сравнение данных за апрель и июнь показывает сезонные изменения в поведении видов. Инструкции по установке максимально подробны и рассчитаны на новичков, что делает систему доступной даже при минимальных технических знаниях.

by zdw • 02 октября 2025 г. в 14:49 • 104 points

ОригиналHN

#birdnet#raspberry-pi#cornell-lab-of-ornithology#rtsp#home-assistant#perch-v2#google#merlin

Комментарии (23)

  • Обсуждение посвящено использованию технологии BirdNET для идентификации птиц по звуку, в частности проекту BirdNET-Pi для непрерывного мониторинга с помощью Raspberry Pi.
  • Участники делятся альтернативами и дополнениями: мобильное приложение Merlin для идентификации в реальном времени, проект BirdNET-Go, сервис Birdweather и модель Perch v2 от Google.
  • Подчёркивается удобство использования видеодомофонов (например, UniFi) с RTSP-потоком в качестве аудиоисточника без необходимости установки отдельного микрофона.
  • Обсуждаются практические применения: интеграция с Home Assistant, создание генеративной музыки на основе звуков птиц и возможность обнаружения других животных, например, лягушек.
  • Упоминаются экспериментальные и нишевые проекты, такие как устройство для отпугивания голубей с помощью аудиозаписей хищников.

Improvements to OCaml code editing: the basics of a refactor engine (tarides.com)

  • Цель стажировки – заложить основу для системы рефакторинга в Merlin, вдохновлённой IntelliJ и Gleam.

  • Первый эксперимент – команда «вынести выражение на верхний уровень» (extract to toplevel).

  • Как работает

    1. Выделяется наибольшее выражение внутри выбранного фрагмента.
    2. Оно переносится в новое let-связывание на уровень выше.
    3. Если выражение не чистое, создаётся thunk unit -> …, чтобы сохранить семантику.
    4. Свободные переменные превращаются в параметры новой функции.
  • Примеры

    • Константа 3.14159let const_name1 = 3.14159.
    • print_endline внутри блока → оборачивается в fun () -> ….
    • a + b + c + (c * x * y) + z → функция, принимающая x, y, a, b, c.
  • Результат – работающий прототип, готовый к расширению другими командами.

by nukifw • 20 августа 2025 г. в 13:37 • 89 points

ОригиналHN

#ocaml#refactoring#merlin#intellij#gleam#vim#vscode#emacs#fsharp

Комментарии (16)

  • Участники рады появлению базового рефакторинга «extract expression» и обсуждают, какие более продвинутые преобразования (например, map ↔ for) хотели бы видеть.
  • Уточняли, будет ли автоматически заменяться одинаковый код в той же области видимости: пока нет, чтобы не «угадать» намерения пользователя.
  • Кто-то делится самописными vim-скриптами для поиска и рефакторинга, работающими на любом языке.
  • Поднимался вопрос о поддержке VS Code: разработчики утверждают, что вкладывают время и в VS Code, и в Emacs, но Emacs проще расширять.
  • Обсуждали родство OCaml и F#, а также возможность использования ИИ для крупных рефакторингов.