> Благодаря таким людям как вы, держится движение Open Source
И свободного ПО:
> Я решил выложить код на недавно открывшемся CodePlex под лицензией LGPLv3.
А то open source под разными лицензиями бывает :)
М… Боюсь сказать, но по моему опыту Open Source держится на очень больших деньгах корпораций вложеных чтобы заработать еще больше денег. А такие люди — это только маленькая часть
На моем (не очень большом) опыте всегда было так: письма с предложениями что-то поделать ни к чему не приводят. Работает только модель «взял и сделал», возможно, предварительно обсудив. Если человек не знает, что бы сделать, а хочет просто помочь проекту, то заинтересованности у него хватает совсем ненадолго. Другое дело — люди, которые используют проект, сталкиваются с какими-то сложностями, смотрят код, находят решение и о нем рассказывают/высылают патч.
Я тоже, когда появляется желание поучаствовать в опенсорс проекте, рассылаю подобные письма, потом выбираю тот проект, который больше всего в данный момент подходит под мои знания и текущие возможности.
Так что ничего крамольного не вижу, тут же нет обязаловки сразу подвязываться после первого же письма.
Шикарно, теперь есть альтернатива ставшему уже привычным SharpZipLib.
Я помню, когда писал nbox (тоже на codeplex'e лежит), мне было нужно сжимать и разжимать блоки данных, я тогда чистое LZMA api использовал. Значит, теперь можно и архивы создавать, good job!
Вы про это?
>> затраченные усилия и падение в скорости не окупаются кроссплатформенностью и религией
В таком случае в статье написана чушь. Вся суть в CAS, а не скорости или религии. И кстати скорость SharpZipLib как и встроенных GZipStream/DeflateStream особых нареканий не вызывают.
Можете почитать, что мне пишут пользователи-владельцы серверов на ASP.NET. Даже за 10% падение скорости они ругаются, причем постоянно мне об этом напоминают. Вы думаете, я не проводил тестов? LZMA алгоритм на чистом шарпе работает в 4 (!) раза медленне аналога из 7-Zip. Deflate гораздо проще LZMA, и всегда работал быстро.
Отбросим скорость. См. статью от ABBYY «Как не переносить код на 64 бита» habrahabr.ru/company/abbyy/blog/101560. Там пишут в том числе о том, что чем меньше средств тратится на решение проблемы, тем оно лучше. У меня было несколько свободных часов в неделю, т.е. если бы мне, как и большому количеству студентов из MSDN Channel 9, пришла в голову идея написать managed 7-zip, то
Теперь давайте ещё раз проанализируем фразу «затраченные усилия и падение в скорости не окупаются кроссплатформенностью и религией». Видимо надо было написать «Необходимых человеческих ресурсов у меня не было, к тому же мои заграничные друзья серийные маньяки фанатеющие от мегагерцеф». Вместо «объективных» причин были бы субъективные. А объективные причины просты — пока существуют ASP.Net shared хостинг и Silverlight в частности и недоверенные среды исполнения вообще, чисто усправляемые решения востребованы.
а что скажете о библиотеке DotNetZip (http://dotnetzip.codeplex.com/)? Мне хватает ее возможностей, так как пользуюсь только ZIP.
Есть ли у вашей разработки преимущества перед ней, которые могут заинтересовать?
Странно, а разве в LZMA SDK нет исходников на шарпе? По крайней мере еще в прошлом году я их использовал. С точки же зрения Open Source статья однозначно интересна, спасибо.
Там есть реализация LZMA… На этом шарп кончается :) Думаю, из-за различия в скорости managed LZMA и unmanaged дальше двигаться не стали. Прошло два года, а код не менялся
Мне кажется что если у тебя код не managed то нет смысла компилировать в .net нету.
Можно просто скомпилить DLLку и ее вызывать из .net
В целом стремления это прекрасно!
>>А мысль сделать из этого стартап не рассматривалась?
5 баллов! Это квинтэссенция хабрахабр!
А если под видом 7z.dll будет находиться некий зловредный код, который в точности будет содержать интерфейсы правильного кода, но выполнять действия далеко не упаковки\распаковки?
Проверяет ли код Вашего проекта аутентичность вызываемой библиотеки 7z.dll?
Мой код способен работать с любой 7z.dll. Например, с custom build только с теми кодеками, которые нужны, и вдобавок оптимизированным компилятором. Как тут проверять? Если пользователь библиотеки захочет, то сам может привязываться к определенной 7z.dll (явно указывать, откуда ее загружать) и проверять ее, например, по md5.
7-Zip из .NET или как я делал open source проект на CodePlex