LINUX.ORG.RU

Сообщения peregrine

 

Проверка каталога, вложенных каталогов и файлов на идентичность

В связи с замечательным башем cp не копирует скрытые файлы с аргументом ! хочется спросить у Ъ как они сверяют каталог с подкаталогами на тему всё ли скопировалось и не попортились ли в процессе данные. Спрашиваю так как переношу данные с кучи маленьких флешек, некоторые из которых уже приказали долго жить (работает только чтение но не запись) или находятся на конце своей жизни (15+ годиков мелочи пузатой по 1 гб, например, на флешки большие (128 гб). А из маленьких буду делать загрузочные флешки с линуксами на борту, прежде чем проводить их в последний путь они ещё послужат мне на установку убунт. Один фиг 8 гигов флешки, которых у меня большинство, сейчас особого смысла не имеют. Стоит ли мне изобретать велосипед на баше для сверки хешсумм или есть что-то готовое? Может так запросто быть, что копирование с очень старых носителей уже ненадёжно и там мусор.

 ,

peregrine
()

Размеры корня

Собственно имеется ubuntu 22.04 (надо бы обновить но пока всё работает и новая версия меня шибко не радует). Система разбита на 3 диска (/ /home /mnt/data) В /home лежат конфиги, какие-то временные файлы, всякая несортированная помойка, в /mnt/data лежит музыка, видео, фото и всё что хочется хранить долго годами, физически это отдельный диск. На / выделено 50 гигов и их как-то стало мало. С другой стороны /var/log 4.2 гигабайта, из которых 4.1 это /var/log/journal

В связи с этим вопрос - не текут ли у меня логи (4.2 гига как по мне многовато, хотя это основная домашняя машинка на которой я годами живу) и сколько лучше сейчас под / отрезать.

 ,

peregrine
()

Eclipse vs РКН

А у кого плагины в Eclipse не качаются, т.к. РКН блочит хостера откуда плагины едут/протоколы.

 ,

peregrine
()

Почему лор не микросервисный

САБЖ. Понятно что его давно делали, но с тех пор можно было переписать не раз. Или микросервисный и я что-то проглядел (глядел очень быстро)

 , ,

peregrine
()

xml в html

Сабж. Понятно что сразу на ум приходит технология с названием XSLT. Есть задача конвертировать xml в html, попутно обмазываясь js, css и всякими свистелками которых в самом xml нет. 90% проекта именно работа с xml. Что есть из языков и фреймворков от которых не хочется блевать и которые не требуют 100500 человек и 10 лет обучения для десятка веб страничек (понятно что вкусовщина и можно сделать на чём угодно, хоть на сишке, если упороться). Но хочется максимальной портируемости и отсутствия геморроя с запуском (тут вроде java/scala норм).

Если конечно серьёзно делать то наверное, java+spring+что там ещё потребуется по ходу (умеет ли сам spring в XSLT или надо тянуть ещё какие-то пакеты). C# как бы умеет в XSLT, но оговорка, что умеет он это безболезненно только в Windows именно в Net Framework, а в Net core и в .NET базовой поддержки XSLT нет или она обрублена судя по документации (может это конечно лишнее и не нужно, вроде как у этого такой плашки нет и возможно всё нормально и я зря подозреваю мелкомягких в засаде, ну и конечно это можно сделать через какие-то сторонние библиотеки и ясно дело через обёртки). Python вроде как умеет, но делать лёгкое портируемое приложение на питоне ну совсем так себе идея, если честно. Хочется послушать тех кто работал с XSLT (желательно в разных стеках) и узнать что им больше понравилось.

Если раздел не тот, то переносите в толксы, но хочется и анона послушать.

Сразу оговорюсь, с XSLT я не работал серьёзно никогда, так что, возможно, одного XSLT мне может и не хватит и какую-то предварительную обработку или пост обработку мне придётся делать (у меня в xml в формате base64 воткнуты бинарные данные (картинки, звук) и вот может их извлекать и обрабатывать имеет смысл до XSLT).

В идеале как я это вижу, простая софтинка которую можно запустить с условной флешки/внешнего hdd на любом компе, которая локально на локалхосте будет иметь GUI в браузере, ничего невероятно сложного. Плюсом будет если один и тот же бинарь (понятно что не нативный, а байткод какой-то)/скрипт будет работать в разных ОС.

Теперь к минусам, проект мой и ковырять мне его в одно рыло - python и c# я использовал и использую, java и scala я только в универе тыкал палочкой и на курсах (что-то вроде хеллоуворлда продвинутого, где-то там ещё и php лежит на котором в дремучие времена я делал простенький сайт чуть сложнее визитки - несколько страничек и капля интерактивности, реально в СУБД было десяток таблиц, т.е. ничего сложного). Ах да, ещё патчить доводилось код на Java, но это мелочи. С другой стороны потыкать что-то новое себе в удовольствие, я бы и не сильно против. Сразу предупрежу - rust, C и C++ идут лесом, они не для такой задачи, как и ассемблер.

 , , , ,

peregrine
()

Генерация видосиков нейронкой

Там это, https://deepmind.google/models/veo/ нейронки видосики и аудио научили делать и более-менее сносно клеить. Понятно что пока Голливудский блокбастер с описания текстом в абзац не получится, но мне кажется что уже скоро это исправят, как и количество пальцев на руках, с которым иногда до сих пор бывают проблемы. ИМХО геймдев и кинематограф ждёт закат в ближайшие 10 лет. Противники и сторонники AI приглашаются в наш уютный срачик.

 veo, ,

peregrine
()

А в чём профит Java

САБЖ, никогда не писал на жабке, был уверен что оно везде более-менее одинаковое и не прибито к платформе, имеем честно взятый отсюда код https://stackoverflow.com/questions/21406401/java-7-watchservice-entry-modify...

import static com.sun.nio.file.ExtendedWatchEventModifier.FILE_TREE;
import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;
import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE;
import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY;

import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;

public class Main
{
    public static void main(String[] args) throws Exception
    {
        FileSystem fs = FileSystems.getDefault();
        WatchService ws = fs.newWatchService();
        Path pTemp = Paths.get("/home/user/Документы/tmptest");
        pTemp.register(ws, new WatchEvent.Kind[] {ENTRY_MODIFY, ENTRY_CREATE, ENTRY_DELETE}, FILE_TREE);
        while(true)
        {
            WatchKey k = ws.take();
            for (WatchEvent<?> e : k.pollEvents())
            {
                Object c = e.context();
                System.out.printf("%s %d %s\n", e.kind(), e.count(), c);
            }
            k.reset();
        }
    }
}
в онтопике крашится в рантайме с невнятным сообщением о том что Modifier not supported как я понимаю это ему от FILE_TREE так плохо. А какой тогда смысл в Java, когда надо под каждую ОС свою прослойку делать ручками поверх inotify/fsevents/FindFirstChangeNotification/FindNextChangeNotification/ReadDirectoryChangesW

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

import static com.sun.nio.file.ExtendedWatchEventModifier.FILE_TREE;
import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;
import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE;
import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY;

import java.nio.file.FileSystem;
import java.nio.file.FileSystems;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.WatchEvent;
import java.nio.file.WatchKey;
import java.nio.file.WatchService;

public class Main
{
    public static void main(String[] args) throws Exception
    {
        FileSystem fs = FileSystems.getDefault();
        WatchService ws = fs.newWatchService();
        Path pTemp = Paths.get("/home/user/Документы/tmptest");
        pTemp.register(ws, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);
        while(true)
        {
            WatchKey k = ws.take();
            for (WatchEvent<?> e : k.pollEvents())
            {
                Object c = e.context();
                System.out.printf("%s %d %s\n", e.kind(), e.count(), c);
            }
            k.reset();
        }
    }
}

Или это между версиями её так ломают или челики на ней писать не умеют совсем?

ЗЫ

Вообще может кто-то подскажет как изменения файлов на максимальном числе платформ удобнее всего мониторить? Может что-то готовое есть? Хочется Windows, OSX, Android, Linux, BSD. Ну и всё остальное экзотическое если есть возможность. Конечно можно на C#, но там в Android с производительностью не очень хорошо и жором батарейки как следствие.

 

peregrine
()

NAS

Собственно кто-что посоветует чтоб было дешево и linux нормально работал? Готовые железяки или ручками собирать самому? Хочется домашнюю файлопомойку без облаков, RAID 1. Хранить планируется около 8 терабайт (сейчас реально 4-5 терабайт, но 3 в запас под всё что может потребоваться). Хорошо если получится использовать не только как бекап систему, но и как своё облако (удалённая сетевая папка, samba, файлокачалка/торрентокачалка, домашний медиасервер (DLNA?), TFTP для локалки, возможно ownCloud, git-репа, пара своих веб-приложений, может легенький сайтик поднять на который не ожидается большая нагрузка, может ещё что-то что я не вспомнил сразу).

 ,

peregrine
()

А что за зверь такой rain?

Собственно глянул сейчас в qbittorrent где у меня старые образы убунты раздаются и вижу что одни китайцы качают (вот прям сейчас 1 с США, 1 с Германии 1 с Сингапура и наверное 200 китайцев, ладно rain вроде как качает с нескольких портов потому если айпишники посчитать то там всего 50 китайцев). Но почему он такой модный у них сейчас? В чём его фичи? На гитхабе нашел https://github.com/cenkalti/rain так и не понял чем оно прямо хорошее или его в какой-то китайский госдистрибутив воткнули из коробки? Может кто пользовался или в курсе что там за дичь творится?

Перемещено CrX из desktop

 , rain

peregrine
()

Проекции карт

На секунду заинтересовался, а что у нас есть похожего на проекцию Пирса, кроме самой проекции Пирса? Скажем чтоб искажения были более равномерно размазанные по карте, а не собирались все в 4 точках? Интересно с точки зрения создания плоской земли в 2Д играх. Может местные плоскоземельцы знают? У них то наверняка хорошие модели заготовлены на все случаи жизни.

 

peregrine
()

О клиент-серверных приложениях

Привет всем. А как в случае клиент-серверного приложения наиболее грамотно понять что пользователь работает с ним локально (понятно что можно многими способами)? Желательно кроссплатформенно. Имеется ввиду тот случай когда и клиент и сервер работают на одной машине? В качестве клиента веб браузер (в нем страничка которую отдаёт серверное приложение). Когда юзер работает удалённо, то скажем, наша веб-страничка должна уметь всё через веб делать. Но когда юзер работает локально с гуем, то мы можем и внешний гуёвый софт запускать со стороны сервера, например. Да знаю что звучит странно, но потому и спрашиваю. Лекцию о том что в 99% случаев на сервере нет и не должно быть GUI можете мне не читать, тут скорее аналог mpd с веб-мордой или трансмиссии. Типо да, можно через веб всё что необходимо делать, но в случае когда приложение на десктопе крутится то можно ещё чуть-чуть. Например открыть в файловом менеджере папку с файлами, а не скачивать их через загрузки как в случае когда клиент и сервер на разных машинах. Вообще меня asp.net core интересует, но в целом, интересны любые варианты. Знаю про

HttpContext.Current.Request.IsLocal
но насколько оно надёжно? Технически оно проверяет что адрес с которого прилетел запрос соответствует этому условию
"127.0.0.1" || remoteAddress == "::1"
Понятно что 127.0.0.1 это лупбек на локалхост, но линуксоиды - знатные извращенцы, а потому в теории кто-то может выставить любой адрес в интервале от 127.0.0.1 до 127.255.255.254 что поломает всю логику или я не прав? Или может даже какой-то дистрибутив от сумасшедших так делает из коробки ради «безопасности»?

 , , , ,

peregrine
()

Про вялого расскажите

Привет всем. Думаю пора накатывать что-то вместо Ubuntu 22.04 на все мои машинки, возможно придётся вместо иксов вялого брать. Но вот беда - на kde и gnome у меня аллергия и горение пукана. Мне не нравится ни одно решение в плане дизайна от их разработчиков. Что-то по типу конструктора под вялого есть? Вод под иксами у меня сейчас такая связка в автозапуск openbox-а просунута (nitrogen остался только на самой старой машинке, т.к. по историческим причинам я первым его ставил, на остальных feh стоит)

dbus-launch &
xrdb -merge ~/.Xresources &
tint2 -c ~/.config/tint2/panel1.config &
compton --opengl --vsync opengl --paint-on-overlay &
nitrogen --restore &
/opt/deadbeef/bin/deadbeef &
/home/user/.config/conky/start_conky.sh &
xset s off &
xset -dpms &
sleep 1; xxkb &
synapse -s &
qbittorrent&
В коде есть костылики, а именно sleep 1 и 2 раза xset. Костылики правильные, просьба не пугаться, без них как надо не работает, потому как xxkb видимо надо чтоб какой-то компонент иксов успел прогрузиться, как и synapse с qbittorrent, иначе они просто упадут. xset тоже с одного запуска как надо не работал, потому 2 раза используется. ХЗ практика показала что так работает. В start_conky.sh много интересного, но вообще надо переписывать, потому скриптом не поделюсь, т.к. с тех пор как конфиг перевели на lua там кое-что сломалось из-за чего размер окна коньков не такой как задумывалось, может как раз и перепишу всё при переносе. А теперь внимание, вопрос а что у нас есть из конструкторов под вялого? По типу тут панельку отодрали, тут индикатор, тут запускалку программ и так далее.

 ,

peregrine
()

Про локализацию

Собственно немного флуда о наболевшем. Про то что у нас есть в разных ЯП и ОС в плане локализации и почему у меня до сих пор от неё подгорает.

В linux-е и таких языках как c, c++ вовсю используется gettext. Штука хорошая мне нравится. Вроде как удобно, т.к. в коде пишешь на английском как дефолтном языке, а если есть перевод то подтягивается русский. Т.е. в самом коде всё написано нормально. Стал делать локализацию в оффтопике на c# там свой огород с .resx файлами и тем, что в коде одно, в локализации совсем другое, короче мне сильно не нравится, всё как всегда у мелгкомягких через одно место. Ещё и если сильно не извращаться то библиотека с переводом на каждый язык (там это технически дотнетовская dll-ка с данными внутри) ну и куча всякого говна паровозиком за твоим экзешником таскается (вопрос зачем, я бы предпочёл в один бинарь всё собирать, вроде как можно сверху помазать некоторыми полуофициальными средствами которые это в один бинарь собирают чтоб маленькая программка портативной была, но дотнет туповат и не может так ну или память старается экономить чтоб лишние переводы не подгружать заранее, хотя это ИМХО экономия на спичках при текущих объёмах оперативки). Что у джавистов и на андроде с маком хочу от знатоков послушать - честно не знаю, но стало очень интересно.

И ещё вопрос в догонку, а почему не прижилось в библиотеках делать переводы? Имеется ввиду не те dll что в дотнете чисто под ресурсы создаются, а к примеру, есть у нас формат mp3, в нём есть ID3 теги, ну например https://github.com/JeevanJames/Id3 вот пример библиотеки которая с ними работает как раз с примером кода. В результате имеем (в теории, понятно что это просто одна из рандомных либ на гитхабе) эту библиотеку в разных программах ну скажем возьмём более известную, например https://github.com/quodlibet/mutagen просто mutagen посерьёзнее и примеры там будут чуть менее простыми и каждый автор программы использующей эту библиотеку должен переводить в теории на все языки мира (в реальности конечно проектов с полной локализацией нет, и мало у кого больше 10 языков поддерживается) слова Artist, Album и так далее, которые в 99% случаев переводятся однозначно на все основные языки мира при этом перевод у всех будет под копирку почти, сколько плееров видел никто меня даже падежами не удивил, везде +- одно и то же, иногда синонимы разные используются, вводя смуту.

В теории могли бы в самой библиотеке опционально строчку зафигачить которая возвращала бы эти названия в переданной ей локале, а кому надо необычно перевести могли бы как сейчас делать. Например вместо

Console.WriteLine("Title: {0}", tag.Title);
Console.WriteLine($"{tag.TitleName}: {tag.Title}");
Глядишь сократило бы работу переводчиков и перевод был бы более однородным. Особенно наверное у всяких офисов которые аналоги экселя делают это актуально, т.к. там функции переводятся на язык при том однозначно, т.е. всякие SUMIF которые перевели на кучу языков, например на русском это СУМЕСЛИ, на испанском SUMAR.SI и таких функций там воз и маленькая тележка, т.е. счёт реально на сотни идёт. Ну и я в своей жизни сталкивался не раз с таким кодом, когда тупо от сотни до пары тысяч каких-то параметров с однозначным переводом имеется. Вплоть до того что я скриптом такое обрабатывал чтоб руками не терять ничего, потому как когда у тебя список из трёх-четырёх сотен таких строк на перевод, то расставлять ручками знаки для gettext-а или вытягивать их в resx файлы в случае C# руками я не готов.

 , ,

peregrine
()

Как синхронизировать браузеры

САБЖ, нет никакого желания делать это через сервера тормозилы. Слышал что локально (на своём публичном айпишнике например) можно поднять сервер для фаерфокса и в конфиге его вписать. А если я хочу историю, закладки и пароли между разными браузерами синхронизировать (хром и фаерфокс)? Есть что-то подобное?

 ,

peregrine
()

а как вы относитесь к приложениям с веб-интерфейсом?

Например, к таким приложениям, которыми я пользуюсь, или пользовался относятся Transmission, pgAdmin4, Jupyter Notebook, OpenRefine. У них либо вообще нет десктопного интерфейса (Jupyter Notebook, OpenRefine), либо он является опциональным (Transmission, pgAdmin4). Я не говорю про электрон, который «косит» под настоящее десткопное приложение, а про приложения, которые не стесняются полноценно запускаться в браузере. Потому как электрон в отличии от таких приложений разве что может свою иконку на панельке рисовать и в трей возможно умеет без лишних телодвижений со стороны разработчика (хотя тут я не смотрел какие варианты есть).

 ,

peregrine
()

Маркировка текста

Пару лет не вникал в NLP (обработка естественного языка) задачи. С тех пор появилось много LLM для языков и не только LLM, вон недавно Phi-2 для английского вывалили с относительно скромными аппетитами в виде 16GB RAM.

А что-нибудь готовое или хотя бы в виде научных статей по расстановке тегов появилось? Желательно не требующего nvidia a100 80ГБ в количестве нескольких штук для работы и обучения, хотя на обучение 64 гига оперативки и 24 гига видеопамяти я легко найду, если прям хорошо пойдёт то и 120/40 найду со скрипом, 256 и 80 уже слишком дорого будет, мне не целесообразно получится.

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

Хочется глянуть научные статьи/опенсорсные продукты которые уже есть, прежде чем начинать велосипедостроением заниматься. Вдруг в этой области тоже прорывы были, а я проглядел. А так уверен там и Naive Bayes c TF-IDF будет как-то худо-бедно справляться. Но хочется чего-то получше.

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

 ,

peregrine
()

Что по файловым менеджерам

Смотрю грустно как-то всё. Условный 7zip в оффтопике легко справляется с несколькими тысячами файлов в архиве и не лагает, да и в линуксе архиваторы я не видел прям чтоб крашились от большого числа файлов в архиве, а nautilus, pcmanfm в linux-ах и даже проводник оффтопика (этот в оффтопике естественно) от пары десятков тысяч текстовых файлов в каталоге сходит с ума, что приводит либо к фризам на несколько минут, либо вообще к крашу и иногда bsod-у в случае оффтопика и ssd тут особо не помогает, я ХЗ что они намудрили, миниатюр то у текстовых файлов для рендеринга нету, это не картинки чтоб так лагать. А есть ли что-то что адекватно работает с тысячами файлов в каталогах и не является консольным как mc/far? Интересует линукс в первую очередь и оффтопик как бонус.

PS

раньше (лет 10 назад) работало лучше, кажись деградация софта идёт

 ,

peregrine
()

Про валидацию данных...

Пилю потихоньку библиотеку для работы с определённым форматом файла (если получится нормально сделать выложу на гитхаб под mit лицензией). Возник логичный вопрос про валидацию файлов.

С одной стороны есть стандарт который говорит как должно быть, с другой стороны есть несколько велосипедов на дельфях которые уже используются (некоторые аж 15 годиков) и кое-что грубо нарушают. Юзеры страдать от этого не должны, но и поощрять нарушение стандарта не хочется.

Таким образом, проводить валидацию при чтении файла полностью согласно стандарту я не могу иначе я не буду читать файлы в которых нарушения незначительные. Но я должен поощрить тех разработчиков которые разрабатывают продукт для конечного юзера, добавив им валидацию ввода. А как собственно по-феншую это делать?

Лепить проверки к многим функциям и полям? Скажем пусть у нас будет поле Email тогда делать функцию CheckEmail которая будет проверять email и возвращать true или false или делать email не полем а функцией SetEmail типа bool и возвращать false если вместо email-а написали «абырвалг» но в любом случае загружать этот «абырвалг» по крайней мере до тех пор пока не потребуется сохранять файл? Или вообще проводить только конечную проверку всего файла?

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

Да чтобы иметь представление, всё дело происходит на языке программирования C#, но писать проверки в сеттерах (что может придти в голову если читать по диагонали) я не должен, т.к. даже кривой файл надо бы уметь читать, так что сыпать эксепшенами при присвоении переменным значений не вариант.

 

peregrine
()

Посоветуйте книжку по C#

Собственно что у нас хорошего появилось? Я писал на нём когда был C# 5.0, нынче многое поменялось, добавили readonly, сильно улучшили асинхронщину, внесли кортежи и так далее. Это не могло не повлиять на то как сейчас принято писать. У Python-а есть удобные pep (PEP8, PEP20 как самые известные, которых я всегда стараюсь придерживаться), а что есть у C# взамен, чего придерживается большинство разработчиков?

Хотелось бы глянуть как на конструкции и советы когда их лучше использовать, так и что-то по принятым методикам проектирования приложений. Я сейчас пользуюсь общими соображениями, которые годятся для любого ООП языка (в основном соображениями полученными от разработки на C++ в плане проектирования, паттернов и глобальной архитектуры и немного соображениями Python-а в плане оформления ну и плюс понятно старые подходы в C# которые никуда не делись и про которые я не забыл, вроде _somePrivateField для наименования закрытых полей). Но хочется чего-то характерное для C# глянуть.

Посмотрел пока «Паттерны проектирования для C# и платформы .NET Core» но оно как на мой взгляд слишком для новичков, есть какие-то крупицы полезной для меня информации в последних главах, но оно такое, немного не то что я хотел бы в приоритете увидеть. Мне интереснее было бы почитать про хороший тон проектирования библиотек и крупных приложений (и использование в них интерфейсов - понятно что для масштабируемости в плане роста кодовой базы, множественного наследования, контроля реализации их стоит использовать).

Например, есть костыли и хаки когда через них делают группировку методов по сути, чтоб, например, обращаться к классу с сотнями методов, особенно когда в разных интерфейсах есть одинаковые названия через . По типу Human.Head.Nose.GetHP();, Вместо Human.GetNoseHP(); когда у хумана не только нос, на голове но скажем и каждая фаланга в пальцах есть. Делается это, например, через explicit interfaces но там начинаются сомнительные конструкции, которые требуют и partial class и шаманство с интерфейсами, которое далеко не в каждой книжке для нубасов описывается, да и когда-то в дремучие времена такие классы ломали mvc3 а без него, возможно, работали (не проверял но учитывая то сколько предупреждении о таких конструкциях я видел на стаковерфлоу то я не знаю либо оно не работало именно с mvc3 и работало без него, либо mvc3 построенный вокруг c#4 жил сильно дольше чем сам C# 4, но скорее первое если верить датам, например, тут, а значит это просто грязный хак), а значит это не очень хорошая практика.

Дробить классы на подклассы, которые включать в члены класса тоже такое себе, если следовать правилу что выделенный класс должен быть самостоятельным (и иметь самостоятельное время жизни к примеру), голова это не совсем самостоятельный живой организм, без тушки существовать не должна, а если и должна, например, в виде объекта в игре если её отрубили, то уже не в том виде, например глазами моргать отрубленная голова не должна и говорить тоже. Потому логично что и отдельным независимым объектом в составе человечка в игре она не должна быть.

 ,

peregrine
()

а расскажите мне про форматы архивов

Появилось ли что-то более новое модное и хорошее, чем формат 7zip, единственным недостатком которого является отсутствие сохранения linux-овых атрибутов и расширенных атрибутов? Давно не следил за этим - года так с 2009, а сегодня увидел появление zstd которому уже 9 лет, но он такой же специфический как и xz, т.е. годится только в связке с tar, что не даёт извлекать произвольные файлы без распаковки всего архива. Понятно что где-то там продолжают развиваться архиваторы семейства PAQ, но на практике их применять невозможно из-за очень медленной скорости упаковки/распаковки.

 

peregrine
()

RSS подписка на новые темы