How I, a beginner developer, read the tutorial you, a developer, wrote for me 🔥 Горячее 💬 Длинная дискуссия
Нетехнический пользователь сталкивается с типичной проблемой: туториал для начинающих написан разработчиком, который не учитывает реальный уровень новичка. Автор иронично описывает, как инструкция изобилует жаргонизмами вроде «Shoobababoo» и «Snarfus», предполагает знание скрытых системных папок и содержит запутанные команды терминала без пояснений. Ключевой момент — осознание, что даже после семи часов поисков и 193 запросов в интернете шаг «Boop!» кажется достижением, хотя суть решения остаётся непонятной. Практический вывод: обучающие материалы должны проверяться на реальной аудитории, иначе они превращаются в пародию, несмотря на благие намерения автора.
Комментарии (360)
- Рекомендуется тестировать документацию на новичках или людях с минимальным опытом, наблюдая за их трудностями без помощи, чтобы выявить пробелы и неявные предположения.
- Многие руководства написаны разработчиками для других разработчиков в той же экосистеме и предполагают базовый уровень знаний, что может быть неочевидно для настоящих новичков.
- Проблема усугубляется "проклятием знания" — авторам сложно представить, что неизвестно читателю, что приводит к пропуску важных шагов, контекста и объяснения базовых концепций.
- Эффективная документация должна четко определять целевую аудиторию, предварительные требования, предоставлять конкретные примеры кода и работать в строго определенном окружении, чтобы избежать "гниения" инструкций.
- Решения включают в себя итеративную обратную связь от новых пользователей, удаление ненужного жаргона, использование интерактивных элементов и явное указание альтернатив для разных сред и инструментов.
We Politely Insist: Your LLM Must Learn the Persian Art of Taarof
Исследователи предлагают обучать большие языковые модели искусству персидского таарофа — сложной системе вежливости, включающей ритуальные отказы, косвенные просьбы и тонкие социальные нюансы. Это требует понимания контекста, иерархии и культурных кодов, выходящих за рамки западных норм вежливости.
Модели без такого обучения часто воспринимают таароф буквально, что ведёт к неловким или оскорбительным ситуациям. Например, на предложение «останьтесь на обед» правильный ответ — вежливый отказ, а не прямое согласие. Интеграция таарофа улучшит взаимодействие ИИ в мультикультурных контекстах, подчеркнув важность культурной специфики в NLP.
Комментарии (77)
- Обсуждается опасность обучения LLM на культурных нормах вроде персидского таарофа и кетмана (искусства ритуальной вежливости и скрытности), так как это может усилить деceptiveness моделей.
- Участники проводят параллели с другими культурами: ирландской, норвежской, японской (имаваси), западной вежливостью и теорией вежливости в лингвистике, отмечая универсальность косвенности в коммуникации.
- Высказываются опасения, что LLM, будучи обученными в основном на западных данных, плохо справляются с восточными культурными тонкостями, и их вежливость часто выглядит неестественно или "слишком по-продажному".
- Отмечается, что низкий человеческий бенчмарк (81.8%) для таарофа демонстрирует сложность даже для носителей, а также что модели могут стереотипизировать поведение, оправдывая его гендером, а не культурным контекстом.
- Поднимается вопрос о том, что такие ритуалы служат социальным фильтром и способом демонстрации эмоционального интеллекта, а их сложность — часть культурной идентичности, которую ИИ может не уловить без достаточных данных и тонкой настройки.
Be careful with Go struct embedding
Встраивание структур в Go позволяет обращаться к полям вложенных структур напрямую, но может приводить к неожиданным конфликтам имён. Например, если две вложенные структуры содержат поле с одинаковым именем, компилятор не выдаст ошибку, а выберет поле из наименее вложенной структуры — в примере opts.URL вернёт "abc.com", хотя ожидалась неоднозначность.
Это поведение опасно, так как маскирует потенциальные ошибки проектирования: код компилируется, но логика может работать некорректно. Конфликт имён при встраивании не вызывает паники, а разрешается неявно, что усложняет отладку. На практике такие ситуации лучше избегать, явно именуя вложенные структуры или переименовывая поля.
Комментарии (72)
- Критика структуры Go за разрешение конфликтов имён полей при вложении структур, что может приводить к неочевидным ошибкам.
- Предложения считать такие случаи ошибкой компиляции или, как минимум, выдавать предупреждения через линтеры.
- Отмечается, что поведение соответствует спецификации (выбирается поле с наименьшей глубиной вложения), но это противоречит интуиции некоторых разработчиков.
- Приводятся аргументы за и против использования вложения структур: полезно для композиции методов, но опасно для данных.
- Обсуждается историческое происхождение фичи из Plan 9 C и её потенциальная полезность в ограниченных сценариях.
Why is Venus hell and Earth an Eden? 💬 Длинная дискуссия
Венера и Земля, схожие по размеру и массе, демонстрируют радикально разные условия: на Венере — адские 460°C и давление в 92 раза выше земного, а на Земле — умеренный климат, пригодный для жизни. Главная причина — парниковый эффект: Венера, ближе к Солнцу, потеряла воду из-за интенсивного ультрафиолетового излучения, что привело к накоплению CO₂ и необратимому перегреву. Земля же сохранила океаны, которые поглощают углекислый газ и регулируют температуру.
Ключевым фактором стало наличие тектоники плит на Земле, которая перерабатывает углерод, и магнитного поля, защищающего атмосферу от солнечного ветра. На Венере же вулканическая активность, возможно, вызвала катастрофический выброс CO₂, усилив парниковый эффект. Это подчёркивает хрупкость земного климата и риски unchecked выбросов парниковых газов.
Комментарии (293)
- Обсуждается уникальность Земли и её пригодность для жизни благодаря сочетанию факторов: магнитное поле, тектоника плит, расстояние от Солнца, наличие воды и Луны, а также внутреннее тепло от радиоактивного распада.
- Венера рассматривается как непригодная для жизни из-за парникового эффекта, близости к Солнцу, отсутствия магнитного поля и тектоники плит, но выдвигаются идеи её терраформирования или создания плавучих городов в атмосфере.
- Подчёркивается роль кислорода как продукта жизни и одновременно агрессивного, опасного элемента, который сделал Землю уникальной, но и уязвимой.
- Упоминается антропный принцип: Земля кажется раем потому, что жизнь на ней эволюционировала, в то время как условия на других планетах непригодны для человека.
- Затрагиваются долгосрочные угрозы для Земли (кипение океанов) и необходимость колонизации других миров как стратегия выживания человечества.
Zig got a new ELF linker and it's fast
jacobly0 предлагает полностью переписать линкер Zig с нуля, создав Elf2 вместо текущей реализации. Основная цель — повысить производительность, уменьшить потребление памяти и улучшить поддержку различных форматов объектных файлов. Новая архитектура позволит эффективнее обрабатывать символы, секции и релокации, избегая проблем существующего кода.
Ключевые улучшения включают параллельную обработку, лучшую диагностику ошибок и оптимизацию для больших проектов. Это может значительно ускорить сборку в экосистеме Zig и упростить дальнейшее расширение. Практический вывод: переписывание устаревших компонентов иногда необходимо для долгосрочной масштабируемости.
Комментарии (24)
- Участники высоко оценивают Zig как компилятор для C/C++ и инструмент кросс-компиляции за его простоту и самодостаточность.
- Отмечается мощная вертикально интегрированная система сборки Zig, включающая линкер и бэкенды генерации кода, что открывает возможности для оптимизаций.
- Обсуждаются ограничения использования линкера Zig (elf2) и самого компилятора вне экосистемы Zig, а также отсутствие неструктурированного goto.
- Некоторые пользователи выражают смешанные чувства: язык делает многое правильно, но отдельные изменения и особенности вызывают сомнения.
- Упоминается книга "Linkers and Loaders" и общее оживление в области разработки линкеров (ренессанс).
How can I influence others without manipulating them? 💬 Длинная дискуссия
Влияние без манипуляций — это искусство приглашения, а не принуждения. Оно строится на уважении к позиции другого человека и предложении ему осознанного выбора, а не на скрытом давлении. Ключ — в осознании пяти стилей влияния: рационального (факты и логика), утверждающего (уверенность и прямота), переговорного (компромисс), вдохновляющего (истории и ценности) и объединяющего (связи и общность). Каждый подход эффективен в разных ситуациях и для разных аудиторий.
Часто мы бессознательно полагаемся на один привычный стиль, что создаёт «слепое пятно»: мы misinterpretуем чужое поведение как сопротивление, хотя люди просто ждут иного подхода. Например, данные не убедят того, кого мотивируют эмоции. Расширение диапазона влияния требует самокритики и гибкости — умения «подойти к их двери», а не ждать у своей. Практический вывод: начните с анализа собственного предпочтения, затем учитесь распознавать сигнаторы других и адаптировать стиль, сохраняя искренность.
Комментарии (179)
- Убеждение в добросовестном диалоге требует взаимного уважения, готовности изменить свою позицию и искреннего стремления понять сильные аргументы другой стороны.
- Влияние и манипуляция часто воспринимаются как схожие процессы, но ключевое различие заключается в намерении: манипуляция предполагает недобросовестность, скрытые мотивы или действия против интересов собеседника.
- Эффективная коммуникация строится на активном слушании, поиске взаимовыгодных решений (win-win), честности и установлении человеческой связи, а не на попытках убедить любой ценой.
- Многие участники дискуссии считают, что любое влияние — это форма манипуляции, и важность имеет лишь моральный компас инициатора и прозрачность его намерений.
- Успешное влияние часто достигается не прямым убеждением, а помощью в преодолении препятствий, подтверждением чужих идей и снижением когнитивного сопротивления.
My new Git utility `what-changed-twice` needs a new name
Разработана утилита для Git, которая показывает изменения между двумя коммитами, исключая изменения, общие для обоих. Она помогает анализировать, какие именно правки были внесены в двух разных версиях, убирая пересекающиеся модификации. Это полезно при сравнении веток или при отслеживании вклада разных разработчиков.
Автор ищет новое название для инструмента, так как текущее what-changed-twice кажется ему слишком длинным и неудобным. Он открыт для предложений, которые лучше отражают суть утилиты — сравнение изменений с исключением общих частей.
Комментарии (37)
- Обсуждаются варианты названия для утилиты, анализирующей файлы, измененные более одного раза в коммитах (например,
what-changed-twice,git-delta,git squash-report). - Предлагаются альтернативные инструменты с похожей функциональностью, такие как
git absorb, который автоматически вносит изменения в предыдущие коммиты. - Упоминается алгоритм "gather" как потенциальная аналогия для процесса группировки изменений.
- Отмечается практическая польза утилиты для изоляции часто изменяемых файлов и упрощения ребейза.
- Подчеркивается, что подобные утилиты можно реализовать как отдельные исполняемые файлы в PATH с префиксом
git-для интеграции с Git.
Lightweight, highly accurate line and paragraph detection
Новая модель на основе графовых сверточных сетей (GCN) решает задачу одновременного обнаружения строк и абзацев в документах. Вместо традиционных методов, которые обрабатывают эти элементы отдельно, подход объединяет их в единую структуру, где узлы графа представляют текстовые блоки, а связи отражают пространственные и семантические отношения. Это позволяет точнее определять логическую структуру документа, учитывая контекст и взаимодействие между строками и абзацами.
Модель демонстрирует высокую точность на стандартных наборах данных, превосходя предыдущие методы как в сегментации строк, так и в группировке их в абзацы. Ключевое преимущество — способность обрабатывать сложные макеты с перекрывающимися или разнородными блоками текста. Практический вывод: такой подход может значительно улучшить автоматическое извлечение информации из сканированных документов и PDF, сокращая потребность в ручной разметке.
Комментарии (23)
- Обсуждаются сложности автоматического извлечения структурированного текста (абзацы, колонки, таблицы) из PDF, особенно с рукописными документами и изображениями.
- Упоминается, что подобная технология (анализ кластеров для группировки слов) уже давно используется в iOS для функции масштабирования PDF по тапу.
- Участники делятся проблемами и неудачным опытом с существующими инструментами для преобразования PDF в текст.
- Поднимается вопрос о необходимости улучшения читаемого режима в браузерах и более надежных решений для классификации страниц с таблицами.
- Предлагаются альтернативные решения с использованием ИИ (Gemini для OCR) и отмечается ироничность того, что сама научная работа об улучшении PDF доступна в формате PDF.
Apple Silicon GPU Support in Mojo
Mojo теперь поддерживает программирование GPU на Apple Silicon, что делает разработку GPU-ускоренных алгоритмов и AI-моделей доступнее для владельцев современных Mac. Для работы требуется macOS 15, Xcode 16 и чипы M1–M4. Пока функциональность ограничена: не работают сложные примеры вроде матричного умножения, AI-модели, PyTorch-интеграция и некоторые аппаратные возможности. Планируется доработка поддержки atomic operations, bfloat16 и других функций.
Технически код компилируется в AIR bitcode через LLVM IR, затем в .metallib через Metal-cpp API, скрыто от разработчика. Существующий код для NVIDIA/AMD GPU должен работать, но для максимальной производительности потребуются оптимизации под архитектуру Apple. Документация и открытый вклад ожидаются позже, когда базовая инфраструктура будет стабилизирована.
Комментарии (40)
- Обсуждение касается языка Mojo и его потенциала в области глубокого обучения и GPU-программирования, с акцентом на его совместимость с экосистемой Python и производительность.
- Участники спорят о нишевости написания кастомных CUDA/Triton ядер, отмечая, что это сложно и этим занимаются немногие, но Mojo может сделать этот процесс более доступным.
- Высказываются как скептические мнения о будущем Mojo (называя его "проектом тщеславия"), так и оптимистичные, видящие в нём важный прорыв и альтернативу существующим инструментам.
- Поднимаются вопросы о бизнес-модели Mojo (лицензирование) и её потенциальном влиянии на открытость экосистемы, что может отпугнуть часть разработчиков.
- Отмечается, что синтаксис Mojo, основанный на Python, является его сильной стороной для привлечения аудитории data scientists, но сама языковая модель и runtime отличаются.
Комментарии (113)
- Ruby Central предприняла резкие действия по ограничению доступа к инфраструктуре RubyGems из-за требований спонсора, угрожавшего отозвать финансирование из-за проблем с безопасностью цепочки поставок.
- Сообщество раскритиковало Ruby Central за катастрофически плохую коммуникацию, отсутствие предупреждения и прозрачности в процессе принятия решений, что привело к потере доверия.
- Действия были технически оправданы необходимостью безопасности, но метод исполнения (внезапный "переворот" без консультаций) признан неудачным и враждебным по отношению к добровольным maintainer'ам.
- Под вопросом остаётся независимость некоммерческой организации, которая оказалась под давлением крупных доноров, и её способность управлять критической инфраструкцией сообщества.
- Сообщество призывает к извинениям, восстановлению доверия через честный диалог и выработке более прозрачных процессов управления, чтобы избежать раскола в будущем.