Hacker News Digest

Тег: #uikit

Постов: 3

Why I'm teaching kids to hack computers (hacktivate.app) 🔥 Горячее

Пол Хадсон создал приложение Hacktivate, чтобы научить детей 13+ основам кибербезопасности через формат игры "захвати флаг". В отличие от современных компьютеров, которые слишком защищены для экспериментов, приложение предлагает 240 уникальных заданий по SQL-инъекциям, взлому хэшей, стеганографии и другим практическим навыкам. "Я хочу вернуть тот же опыт, который был у меня, новому поколению", — объясняет автор, стремясь сделать обучение одновременно увлекательным и структурированным.

Приложение использует безопасную песочницу, где все действия происходят внутри игры, не затрагивая реальные системы. Задания варьируются от базовых вопросов о представлении данных (hex, binary, ASCII) до сложных криптографических задач с современными алгоритмами. "Моя цель — не превратить всех в опытных пентестеров за один день, а вдохновить новое поколение хактеров на эксперименты и обучение в безопасной среде", — подчеркивает Хадсон. Приложение уже доступно на iPhone, iPad и Mac.

by twostraws • 22 октября 2025 г. в 14:07 • 252 points

ОригиналHN

#sql-injection#hash-cracking#steganography#cryptography#ctf#ios#macos#swift#uikit

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

  • Пользователи обсуждают, как раннее влияние нехватки ресурсов в странах третьего мира сформировало их навыки и мотивацию к самообучению и творческому подходу к решению проблем.
  • Поднят вопрос о том, что микротранзакции в приложениях могут быть неэтичными, особенно для детей, и что существует альтернативная версия приложения без них.
  • Упомянуто, что разработчик приложения, Paul Hudson, ранее преподавал автору Swift и UIKit, что подчеркивает его вклад в обучении сообщества разработчиков.
  • Участники обсуждают, что важно сохранять баланс между монетизацией и доступностью образования, и что существует версия приложения без микротранзакций.

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

  • В iOS Clock много мелких, но раздражающих проблем: «AM/PM» не успевает зафиксироваться при быстром свайпе, кнопки «Отложить/Стоп» расположены по-разному в будильнике и таймере, а таймер иногда не звонит.
  • Пользователи жалуются на неудобное вертикальное колесо: длинный линейный список вместо кругового, нет быстрого перехода к 00, сложно попасть точно.
  • Обнаружен «хак» в UIPickerView: чтобы имитировать бесконечный скролл, Apple просто делает очень длинный список строк; реального кольцевого буфера нет.
  • Некоторые просят добавить «пропустить завтра» для повторяющихся будильников, календарные будильники и нормальное числовое поле ввода.
  • Часть проблем решается переходом на 24-часовой формат или Siri, но общий консенсус: дефолтное приложение давно требует переработки.

TextKit 2 – The Promised Land (blog.krzyzanowskim.com)

TextKit 2 (NSTextLayoutManager) появился на WWDC21, но уже 4 года не оправдывает надежд. Архитектура продумана: NSTextContentManager, NSTextElement, NSTextLayoutManager. На практике работает только NSTextContentStorage → NSTextStorage, а элементы должны наследовать NSTextParagraph. UITextView/NSTextView не принимает альтернатив.

Баги многочисленны: «extra line fragment», регрессии между версиями, часть отчётов без ответа.

Viewport — главная боль. Он лениво раскладывает только видимую область, поэтому высота документа постоянно пересчитывается и «прыгает» при прокрутке. Постоянные инвалидации и кэширование усложняют код.

by nickmain • 15 августа 2025 г. в 21:26 • 96 points

ОригиналHN

#textkit#ios#macos#apple#uikit#flutter#view#layout

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

  • TextKit 2 выглядит «сырым»: демо работает, но стоит отойти от happy path — всплывают баги, плохая документация и отсутствие публичного списка проблем.
  • Основной способ использования — кастомизация UITextView/NSTextView; попытки полностью заменить их приводят к боли.
  • На macOS TextKit 2 сломал даже TextEdit: появились глюки прокрутки и повреждение текста.
  • «Дрожание» скроллбара из-за lazy layout и оценок высоты считается «как задумано», но выглядит неприемлемо; решения есть (Flutter, эвристики), но не встроены.
  • Apple, судя по всему, не додогфудила API: внутренние приложения не отловили острые углы, поэтому теперь каждый разработчик получает синяки.