Pull to refresh
4
0

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

Send message

than и then я для себя запомнил через слово "затЕм" и там и там "Е", но поначалу доставляло проблем, да.

Всех удивляет, что при смене минорной версии произошло столько изменений.

Потом будете тратить время на адаптацию к версиям начиная с 2.8, так себе удовольствие, не лучше уже сразу адаптироваться к актуальным версиям? Я сам с макса переходил на 2.8 инопланетности у него поубавилось начиная с этой версии.
Можете поискать книгу "Blender Secrets e-book" вот уж действительно полезная вещь, есть например на gumroad.


Автор опоздал немного со своей статьей.

Мда... и правда

https://developer.blender.org/project/view/120/

Причина известна? Он кстати и так должен был быть осенью в сентябре, а в августе я ждал бету :(

Сам спросил сам ответил, причина: https://lists.blender.org/pipermail/bf-committers/2021-June/051043.html

Я правильно понимаю, что в случае массива мне придется писать что-то типа:
struct AConsumer {
    consumers: Cell<Vec<Rc<dyn IConsumer>>>
}

impl AConsumer {
    fn process(&self) {
        let borrow = self.consumers.take();
        for v in &borrow {
            ...
        }
        self.consumers.set(borrow)
    }
}


А еще то, что теперь при неверном соединении цепи, не будет никаких ошибок, но при этом цепь может спокойно оказать в не валидном (с точки зрения предметной области) состояние молча. Хмм… что-то мне подсказывает, что наверное лучше тогда оставить как есть сейчас, т.к. предложенный вами подход замаскирует проблему.

Если вдруг кто не понял почему, то при повторном попадание в эту функцию когда она еще не завершена при первом вызове, приведет к тому что Cell::take() вернет пустой массив (т.к оригинальный массив забрал первый вызов), и ничего не произойдёт, тогда как с RefCell второе попадание отловится рантаймом и выпадет паника (ну или нет если вы будете обрабатывать это самостоятельно с try_borrow()).

В любом случае спасибо за напоминание, что cуществует еще и Cell.
Именно, что RefCell, к сожалению не везде я пока могу придумать как его не использовать, особенно после большого опыта в C++, в данном случае если я проектирую программу по другому у меня случается ад в другом месте.
Там вон где-то выше по сообщениям напомнили про идею индексов и хранению объектов в другом месте и получать доступ по индексам, буду на днях думать можно ли перепроектировать все на такой подход.

В целом после перехода с С++ на раст, очень большая проблема в том чтобы наработать паттерны для решения задач именно на расте, если паттерны которые были наработаны на с++ плюс минус можно использовать в других языках, то в раст надо искать свой подход с ноля :( и зачастую искать самостоятельно путем проб и ошибок.
Я конечно понимаю каждой задаче свой инструмент, но очень часто в жизни, что для одних минус для других плюс. Для меня это наоборот плюс, я настолько устал от С++сного зоопарка, вы себе представить не можете, все эти, cmake, conan, scons, make… и каждый из них полноценная система на другом языке. Проблемы когда vs собирает твой проект нормально, а потом clang на Linux не собирает и т.д…

Мой личный опыт показывает что большая вариативность — это скорее минус чем плюс, под вариативностью я понимаю «17 способов инициализировать переменную в C++» В с++ такое везде, начина от компиляторов и систем сборок заканчивая самим языком, везде есть из чего выбрать, а на деле весь этот зоопарк вносить только хаус и проблемы. То что планировалось как гибкость на любой случай жизни превращает многое в ад. Меня до сих пор бросает в дрож когда я думаю о том, что мне надо пойти и создать проект для новой библиотеки на с++, а если мне еще и зависимости внешние нужны, нет, для меня лучше пусть будет одна система с чем то вроде «cargo new my_lib --lib».
Опять же я понимаю, что в других сферах этого может быть не достаточно, но прежде чем добавлять вариацию по моему мнению надо очень хорошо подумать.
Не на поиск способа обхода, а причину почему она случилась, то самое место которое надо изменить чтобы ошибка пропала ) За год (до этого 10 лет С++) программирования на расте я буквально вчера первый раз поймал то, о чем говорит автор.

Мне надо смоделировать участок цепи и распространение энергии от источника к потребителям, все сделано так, что есть источники в которые как
Rc<RefCell<dyn IConsumer>>
вставляются потребители, источники потом сами дергают методы у IConsumer которые в свою очередь тоже имеют
Rc<RefCell<dyn IConsumer>>
(или их vector) что делает дерево.

Среди потребителей есть контакторы (свичи) которые могут выбирать активный источник, и вот этом дереве я получил «already borrowed» я не смог у себя в голове развернуть все это дело и понять где ошибка, кроме как спустя некоторое время догадался, что какие-то контакторы в дефолте стоят в не верных положениях. Итого: замечательно то, что благодаря этой ошибки можно понять, что цепь имеет не верные соединения, но очень тяжело понять где именно, я себя реально первый раз в расте ощутит беспомощным.

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

Но даже не смотря на все это, я на с++ больше писать не хочу, и не буду, только в legacy.

А неделя я думаю просто утрирование.
Я так понимаю спонсировать еще будут и пользователи, я вот например готов, видел в сети есть еще люди.
Такое не всем подходит, в случае «человеческой» адмики я могу дать доступ к страничке любому человеку и он сможет управлять пользователями сам без моего участия, с вашим подходом я должен обучить его ходить на сервер и работать с svnadmin еще и с командной строки, либо всегда это делать сам.
Это кстати одна из реальных причин в моей ситуации потому, что например настроить файлик с доступами на сервере я могу и без всякий iF.SVNAdmin.
Но честно говоря мне тоже приятней не лазать по файликам и не использовать командную строку без необходимости.
Судя по всему мы немного о разном говорили, я говорил о веб фронте iF.SVNAdmin, а вы видимо о родной тулзе самого svn.
Благодарю за рекомендации. svnadmin меня напрягает только тем, что он очень давно не обновлялся лет 7 вроде. Контейнер не очень хочется убирать, ведь под тот же svnadmin надо еще php ставить, я думаю я все же сделаю свой контейнер где избавлюсь от апач, про лимиты — я на него сразу и грешил и поэтому рассматриваю не настраивать его, а тупо вырезать, на входе у меня и так nginx есть.
Подскажите ваш cSvn-ui, умеет управлять репозиториями, пользователям и правами, и есть ли готовый докер контейнер? сейчас у мня стоит svn из контейнера где стоит апачь и древнючий svnadmin, и все меня это меня очень не радует, более того вчера выяснилось, что где то есть лимиты, не получается залить один комит в котором есть файл больше 2-х гигов, а значит надо идти и разбираться как и где увеличивать лимиты, и вот я задумался может вообще все перенастроить, убрать апачь возможно сменить ui на тот же WebSVN или теперь уже может на ваш.
А что с ним не так?
Мне например нравится использовать svn для бинарников. Я там держу файлы/сцены 3d (и не только) программ и веду разработку — blender, 3dmax, substance painter, и других, текстуры к сценам, референсы, документацию .pdf и т.д. svn хорошо со всем этим работает, такой низкоуровневый в плане контроля «Google drive» еще и с историей (правда периодами с ней приходится что-то делать из-за размера), можно так же гибко настраивать доступы к разным частям репозитория.
Он конечно все еще не идеален для моих нужд, но лучше чем ничего. Git именно под такие задачи мне использовать не нравится даже с LFS, а для кодовой базы да, я люблю git.
Но автор судя по всему использует svn для кода и тогда у меня тоже возникает недоумение как и у вас :), но о вкусах не спорят.
Чем он принципиально лучше SourceTree который кстати бесплатный?
Скачал пока попробовать, пока принципиальной разницы не увидел, попробую попользоваться может чего прояснится.
Вот кстати да, первое с чем я столкнулся в расте это, то что мой предыдущей опыт по построению архитектуры на с++ тут не работает :) И очень часто вообще не понятно, что делать в той или иной ситуации, ощущение что ходить заново учишься, с одной стороны приятно т.к. что-то реально новое и не привычное — расширяет кругозор, с другой стороны когда задачу все же решить нужно и желательно за вменяемое время, а она не решается :)…
Таким образом, достаточно одного взгляда на экран устройства или оповещения в приложении

О каком приложении речь?

Итак обладаю ATMO 8 сутки, впечатления отрицательные.

  1. Не вижу способа изменить яркость дисплея, ночью весело. Чувствую либо здравствуй паяльник и другой резистор либо до свидания прибор.
  2. Сам дисплей, смотрим слева видим нормальный контраст смотрим справа все, что должно быть черным — синие!
  3. Звуковой сигнал выключить нельзя! В средней квартире в Москве зимой у вас часто будет воздух в желтом и иногда красном диапазоне, выбор либо замерзнуть открыв окно, либо слушать писк прибора, и ничего вы с этим не сделаете, у меня уже несколько лет прибор старого образца и я вижу как себя ведет воздух зимой в тех или иных условиях. Снова здравствуй паяльника или до свидание прибор.
  4. Цена, выше уже написали и привели пример на али, не стоит этот прибор сколько за него просят в России! Даже цена на али с бооольшой натяжкой можно считать приемлемой. Что касается инструкции и 100% накидывание цены сверху — смешно, в инструкции утрированно 2 предложения.


Вывод, покупкой не доволен, зря поторопился! Если очень хочется можно рискнуть на али. ИМХО.
Статья «замечательная», какой отличный прибор и ни слова о том, что «жизнедеятельность» прибора будет мешать вашей жизни.
Не нашел как регулировать яркость в ATMO 8, это возможно?
Если соотношение сторон вашего экрана и оригинального видео не совпадают, то чтобы убрать полосы по бокам или сверху нужно откусить часть изображения, я бы предпочел иметь возможность управлять этим сам, например посредством зума в плеере как я делаю в dune hd когда смотрю кино в домашнем кинотеатре с 16:9 экраном, так как большинство фильмов широкоформатные, то я сам решаю насколько я готов уменьшить черные полосы ценой обрезки изображений по бокам и очень не хотел-бы чтобы кто-то за меня решал как это должно быть.

Так, что если нету возможности этим управлять, то это скорее минус чем плюс.
А разве паника не вид исключения и не имеет тех же накладных расходов?
Вопрос без подвоха, мне действительно интересно с точки зрения познания.

Information

Rating
Does not participate
Location
Химки, Москва и Московская обл., Россия
Date of birth
Registered
Activity