Обновить
4K+
39

Пользователь

0,5
Рейтинг
24
Подписчики
Отправить сообщение

Немного философии Rust, возможно кому то интересно обсудить

Уже почти 3 месяца пишу проект на Rust. Сейчас разработка стала другой, ручная работа стала роскошью, реальные задачи бизнеса быстрее решить LLM-ками. Естественно познание языка в таком режиме замедляется, хочется как-то компенсировать, хотя бы поговорить об этом.

Вот какой аспект. В Rust уровень владения/заимствования объектом - часть контракта. По большому счету можно составить примерно такую таблицу (на самом деле это дерево должно быть, но для упрощения привожу плоскую таблицу):

  • Просто владею объектом → T

  • Временно читаю чужой объект → &T

  • Временно изменяю чужой объект → &mut T

  • Один владелец, нужна куча → Box

  • Несколько владельцев, один поток, чтение → Rc

  • Нужны несколько владельцев, один поток, изменение → Rc<Cell> / Rc<RefCell>

  • Несколько владельцев, несколько потоков, чтение → Arc

  • Несколько владельцев, несколько потоков, изменение → Arc<Mutex> / Arc<RwLock>

По сути чем более строгий уровень доступа (или какой термин тут лучше?) - тем больше проверок сможет сделать компилятор. Если используете Rc - то уже потенциально возможны циклические ссылки и утечка памяти (с Box - это не возможно). Если RefCell - то компилятор не сможет проверить два borrow_mut() одновременно - будет рантайм проверка или паника.

И вот какая фишка. Часто LLM-ка дает уровень больше чем нужно. Как-то где можно обойтись ссылкой - добавит Rc<RefCell>. Т.е., по сути, код то рабочий, но лишние обертки и послабление компил-тайм проверок немного угнетают.

Но иногда бывает оправданно, когда в процессе уровень нужно ослабить, т.к. не всегда предусмотришь на этапе проектирования.

И далее возникла философская идея. А вот неплохо бы чтобы компилятор сам решал какой уровень применять. Т.е. начинаем от самого малого, если его не достаточно - то использует послабления. Если достаточно классической проверяемой ссылки - то использовать ее. Или если нужно множественное владение, но точно нет потоков - то Arc можно не использовать - достаточно Rc (если нет данных то ослабляем - берем Arc).

При этом все еще остаемся в рамках языка без GC - но вместо ручного выбора - выбор осуществляется компилятором при сборке.

Как вы думаете - идея имеет право на жизнь?

Теги:
+3
Комментарии3

Составляем таблицу квалиа (qualia)

В Wiki описают так: квалиа могут быть определены как качества или ощущения, вроде, например, красноты или боли, и рассматриваются отдельно от их влияния на поведение, а также от любых физических условий, которые могли их вызвать. В более точных философских терминах, квалиа — это свойства чувственного опыта.

Хотелось бы определить более точно. Решил начать вот с чего — привести полный перечень всех возможных квалиа. Интересно сколько их всего? Наверное десятки? А может сотни? Или тысячи?

Неплохо бы составить таблицу квалиа — может что какую интересную закономерность увидем. Для начала просто перечислить. Кажется что не много, но попробуем перечислить.

Сенсорные квалиа (перцептивные)

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

  • Зрение 3 квалиа: квалиа цвета, квалиа яркости, квалиа формы. Кстати, квалиа цвета — это, по сути, трехмерное пространство ощущений — даже не три разных квалиа. Квалиа формы — распределение плотности в трехмерном пространстве восприятия.

  • Слух 2 квалиа: квалиа частоты и амплитуды.

  • Обоняние или квалиа запаха. Сложно классифицировать, обычно выделять 6 основных групп запахов: цветочный, гнилостный, фруктовый, пряный, смолистый и запах гари. Считать ли каждый запах отдельным квалиа или же это многомерное пространство восприятия?

  • Осязание 2 квалиа + форма: температура, давление, форма (текстура). Форма, по сути, та же самая что и зрительная — то есть можно второй раз не считать.

  • Вкус — скорее 5 разных квалиа: соленый, сладкий, кислый, горький, умами.

  • Вестибулярный аппарат 2 квалиа: ускорение и положение тела.

Итого сенсорных 15 квалиа. Некоторые одномерные (как яркость), некоторые многомерные (как форма или цвет).

Телесные внутренние (интероцептивные)

  • Ощущение тела (положение частей тела). Хотя, не уверен можно ли это считать квалиа. Как думаете?

  • Наполненность желудка/кишечника/мочевого пузыря и пр. Сюда можно отнести голод, жажду, сытость по сути. Видимо одно квалиа, но разные его мерности и амплитуда.

  • Физическая боль → физическое наслаждение (удовольствие). Это квалиа имеет амплитуду, знак и несколько мерностей. Как думаете: стоит ли разделять боль и удовольствия на разные квалиа или же это разные знаки одного и того же квалиа? Однозначно есть разные «оттенки» (или шклаы) боли и удовольствия — наслаждение тортом, шашлыком и сексуальное наслаждение — имеют совсем разные оттенки.

  • Усталость.

  • Тошнота.

Всего 5 квалиа насчитал.

Эмоциональные квалиа

Тут просто оставлю ссылку на статью

Всего @truefreewill классифицировал более 30 эмоций: радость, горе, надежда, страх, удовлетворение, гнев, интерес, пренебрежение, радость за другого, жалость, злорадство, мазохизм, зависть, обида, вина, заслуга, зловредность, гордость, стыд, гордость за другого, стыд за другого, уважение, презрение, восхищение, отвращение, обвинение, щедрость, жадность, награда, наказание, благодарность, месть, подлость, благородство, преданность, ревность.

Это более полная и более стройная классификация, чем у Роберта Плутчика и лучшее что я видел, если вы видели лучшую классификацию — поделитесь.

Согласно этой классификации — эмоция это одно квалиа, но знаковое (то есть шкала положительная и отрицательная) и многомерное (причем там пространство замкнутое, то есть какая‑то хитрая форма, типа пятиячейника — но упрощенно можно представить в виде треугольников).

Пространственные квалиа

  • Форма (уже учли ранее)

  • Расстояние/размер.

  • Время.

Время мы воспринимаем иначе, чем расстояние. Форму считали ранее - значит добавилось еще 2 квалиа.

Трансцендентные

Самосознание — ощущение себя как субъекта, способного ощущать. Сложное квалиа. Возможно относится к эмоциональным, но скорее трансцендентное.

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

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии11

Генерация векторных картинок с помощью LLM

Без лишних слов, результаты простого эксперимента - один и тот же запрос применительно к разным LLM и результат в виде SVG, который можно увидеть глазами. Просто чтобы примерно понимать как что можно получить на выходе.

Сделал, чтобы вам не пришлось. Тематику выбрал - актуальную на сегодня.

Лучшая и худшая по субъективному мнению автора
Лучшая и худшая по субъективному мнению автора

Еще елки-палки на одной странице: https://htmlpreview.github.io/?https://raw.githubusercontent.com/petcodevault/llm-svg/main/index.html

Исходники: https://github.com/petcodevault/llm-svg/

Обзор конечно не объективный, т.к. по другим картинкам видно что GTP 5.2 не так уж красиво рисует SVG, но именно с этой темой, видимо, поработали.

Теги:
Всего голосов 3: ↑1 и ↓20
Комментарии2

Что внутри клавы Ziyoulang K68 (разборка)

Поддался всеобщему тренду и решил попробовать механическую клаву. Для начала выбрал одну из самых дешевых беспроводных с Али. Прошло пол года и хочу поделиться впечатлением.

Основная причина, почему захотелось механики - ремонтопригодность. Старая добрая MS Natural Keyboard была залита соком (дети есть дети) - сок разъел нежные напыленные дорожки за несколько дней (нужно было сразу разбирать и чистить). Вторая какая-то китайская была залита чаем и после разборки пара клавиш уже не села на место (механизм по типу ноутбучной - тип ножницы).

Для пробы взял самую дешевую китайскую. Поменял свитчи на коричневые, т.к. красные утомляют. Срабатывание происходит раньше полного нажатия, но ведь нет ни щелчка ни тактильного ощущения и жмешь все-равно до конца, а пружину чем сильнее деформируешь, тем сильнее она сопротивляется. Коричневые решают данную проблему.

Теперь кишки, все одним файлом (больше не дает для поста):

Клавиатура Ziyoulang K68, чип HS6620
Клавиатура Ziyoulang K68, чип HS6620

Чип какой-то HS6620, вроде подобный ставят в часы и народ ковыряет.

Выводы

Общее впечатление после 6 мес. использования - нормальное. Удобство печати, имхо, не лучше чем на хорошей мембранке, есть более мягкие, и имеющие более отчетливый ход клавиш (хотя стоит не дешевле). Т.е. дело вкуса.

Ремонтопригодность, имхо, отличная. Свитчи менял раз 5, экспериментировал с разными наборами. Батарейку расходует экономно, самые дешевые AAA - хватает примерно на месяц работы по Bluetooth (WiFi не проверял).

Присматриваюсь к раздельным клавам.

Теги:
Всего голосов 2: ↑2 и ↓0+5
Комментарии0

Оставлю в заметках как я структурирую хранимые мной данные. Пришел к этому за 23 года ежедневного пользования и работы с компьютером.

Данные разделяются на 2 большие категории:

  1. Публичные (то что не является секретом, что общедоступно и чем можно поделиться).

  2. Приватные. То что касается только меня и не должно попасть в чужие руки.

Публичные

  1. Софт (включая дистрибутивы ОС).

  2. Книги.

  3. Музыка.

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

Приватные

  1. Ключи и пароли. Используется KeePassXC и VeraCrypt с хранением в облаке и синхронизацией по девайсам.

  2. Копии документов (на случай пожара и пр. - помогут быстрее восстановить).

  3. Связь с социумом: контакты, сообщения. В основном все в онлайн сервисах, но так же частично есть оффлайн копии, на случай блокировки онлайн-сервиса.

  4. Фото, видео из жизни.

  5. Информация и исследования в Obsidian. Ранее вел в OneNote - но приобщился к более прогрессивной технологии, старые заметки постепенно переношу, когда в них возникает потребность.

  6. Ресурсы, примеры кода, стоковые изображения и пр. По сути относится к п. 5, но требует много места для хранения.

  7. Проекты (все что делал). С ними намного проще вспомнить, если столкнешься с чем-то подобным.

  8. Задачи.

  9. Бухгалтерия.

  10. Бекапы систем.

  11. Диски вирт. машин.

  12. Инфо-мусор, который не успел разобрать. Храню по датам скидывания в архив.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии0

Информация

В рейтинге
2 376-й
Зарегистрирован
Активность