Re[5]: Проект утилитной библиотечки
От: v6  
Дата: 16.03.16 11:02
Оценка:
Здравствуйте, AndrewVK, Вы писали:

W>>Название мягко говоря противоречивое


AVK>Уж какое в фреймворке есть.


Во фреймворке как раз все понятно: Null Or Empty.

А здесь — возможны непонятки (Not Null) Or Empty VS Not (Null Or Empty)
Мне кажется, более однозначно будет NotNullNotEmpty
Re[6]: Проект утилитной библиотечки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.03.16 11:11
Оценка: +1
Здравствуйте, v6, Вы писали:

v6>А здесь — возможны непонятки (Not Null) Or Empty VS Not (Null Or Empty)

v6>Мне кажется, более однозначно будет NotNullNotEmpty

Тогда уж NotNullNorEmpty или NeitherNullNorEmpty.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[4]: Проект утилитной библиотечки
От: Sinix  
Дата: 16.03.16 11:13
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Ну и, наверное, где то есть соответствующая настройка в AppVeyor.

AVK>Вот, кстати, насколько он удобен? А то у нас http://tc.rsdn.ru есть, если что.
Я его в режиме закинул-забрал использовал. Не попрёт, можно и на тимсити перетащить.


S>>Вообще пора в gitter переползать, или issue в самом проекте завести.

AVK>Здесь удобнее, ИМХО. По крайней мере пока у проекта не появятся нерусскоговорящие участники.
Ок, тогда может отдельный раздел форума завести?
Re[5]: Проект утилитной библиотечки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.03.16 11:14
Оценка:
Здравствуйте, Sinix, Вы писали:

S>>>Вообще пора в gitter переползать, или issue в самом проекте завести.

AVK>>Здесь удобнее, ИМХО. По крайней мере пока у проекта не появятся нерусскоговорящие участники.
S>Ок, тогда может отдельный раздел форума завести?

Можно и завести, но пока, имхо, и http://rsdn.ru/forum/prj/ хватит, не?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[6]: Проект утилитной библиотечки
От: Sinix  
Дата: 16.03.16 11:25
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Можно и завести, но пока, имхо, и http://rsdn.ru/forum/prj/ хватит, не?


Можно и там. Как обсуждать отдельные фичи / issue? в самом репо, или на форуме, новым топиком с тегом в теме [CJ]?

Как минимум надо завести список планируемых фич, а то они сейчас по топику рассыпаны — потеряются.
Re[5]: Проект утилитной библиотечки
От: Vladek Россия Github
Дата: 16.03.16 11:35
Оценка: :))
Здравствуйте, AndrewVK, Вы писали:

AVK>Так, навскидку — FlockLib, ShoalKit, CodeJam, UtilSwarm, HelperMob, NerdHerd


Natasha, Romashka
Re[6]: Проект утилитной библиотечки
От: Sinix  
Дата: 16.03.16 11:40
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Natasha, Romashka

http://rsdn.ru/forum/dotnet/6385255.1
Автор: Sinix
Дата: 16.03.16


Ну и кроме того, вы троллить не умеете. Вот как надо.
Re[7]: Проект утилитной библиотечки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.03.16 11:43
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>Можно и там. Как обсуждать отдельные фичи / issue? в самом репо, или на форуме, новым топиком с тегом в теме [CJ]?


По русски если — наверное лучше в форуме. Если по английски, тогда в issues.

S>Как минимум надо завести список планируемых фич, а то они сейчас по топику рассыпаны — потеряются.


Вики-страничку надо сделать
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[3]: Проект утилитной библиотечки
От: Danchik Украина  
Дата: 16.03.16 11:46
Оценка:
Здравствуйте, Sinix, Вы писали:

[Skip]

S>Если кому надо — Range<T>/CompositeRange<T> для операция над диапазонами/наборами диапазонов — объединение, пересечение, дополнение — полный набор.


Интересно посмотреть. Писал такое, хотелось бы сравнить
Re: Проект утилитной библиотечки
От: Vladek Россия Github
Дата: 16.03.16 11:50
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>1) Кто что по этому думает?

Не взлетит. У всех разный набор решений одних и тех же проблем. Универсальной библиотекой просто не будут пользоваться.

AVK>4) Кому интересно библиотеку в своих проектах использовать?

Я лично использую мелкие библиотеки, решающие конкретные проблемы: Polly, CvsHelper, Impromptu, AutoMapper, Oxygenize и так далее. Эти библиотеки не нужны в каждом проекте, они подключаются по мере необходимости.

Авторы полезных решений могут поступать так же — оформлять свои наработки в библиотеки и выкладывать их в общий доступ, а RSDN может просто вести их каталог. Вроде оно уже есть: http://rsdn.ru/forum/prj/ И даже находится такое: http://rsdn.ru/projects/Utils/Article/Rsdn.Utils.xml
Re[2]: Проект утилитной библиотечки
От: Doc Россия http://andrey.moveax.ru
Дата: 16.03.16 11:57
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Репозиторий — https://github.com/rsdn/CodeJam


А какой будет модель бранчей? Стандартная? master > dev > featues branches
Просто увидел только master, поэтому уточняю.
Re[4]: Проект утилитной библиотечки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.03.16 11:57
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Интересно посмотреть. Писал такое, хотелось бы сравнить


Если сами структуры — там вроде все предельно тривиально. Если алгоритмы — они делятся на две части: примитивные, типа объединения, пересечения и т.п., там тоже все тривиально, и хитрые, но они, как правило, уже завязаны на задачу. Ннапример нормализация диапазонов — список диапазонов преобразуется таким образом, чтобы диапазоны внутри него нигде не накладывались друг на друга, при этом дополнительную атрибутику нужно в пересекающихся частях мержить в новый диапазон. В неуниверсальном виде выглядит примерно так:
internal static IEnumerable<RangeDescriptor> NormalizeRanges(IEnumerable<Transition> source)
{
    var ranges =
        source
            .SelectMany(t => t.Ranges.Select(r => new {r.Start, r.End, t.Target}))
            .ToArray();
    var points =
        ranges
            .SelectMany(
                r =>
                    new[]
                    {
                        new {Pos = (int)r.Start, Targets = new List<State>()},
                        new {Pos = r.End + 1, Targets = new List<State>()}
                    })
            .OrderBy(p => p.Pos)
            .ToArray();
    foreach (var range in ranges)
        foreach (var point in
                points
                    .SkipWhile(p => p.Pos < range.Start)
                    .TakeWhile(p => p.Pos <= range.End))
            point.Targets.Add(range.Target);
    return
        points
            .Zip(points.Skip(1), (p1, p2) => new {Start = p1, End = p2})
            .Where(r => r.Start.Targets.Any() && r.Start.Pos < r.End.Pos)
            .Select(
                r =>
                    new RangeDescriptor(
                        new CharRange(
                            (ushort) r.Start.Pos,
                            (ushort) (r.End.Pos - 1)),
                        r.Start.Targets.ToArray()));
}

Нужно ли такое в универсальной библиотеке? Гложут меня смутные сомнения в том.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[3]: Проект утилитной библиотечки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.03.16 12:04
Оценка:
Здравствуйте, Doc, Вы писали:

Doc>А какой будет модель бранчей? Стандартная? master > dev > featues branches

Doc>Просто увидел только master, поэтому уточняю.

Да фик его знает. Пока, до выпуска первого релиза, точно смысла в dev бранче нет. Так что, наверное, просто feature, да и то если фича объемная. А всякую мелочевку, имхо, можно сразу в master.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[2]: Проект утилитной библиотечки
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 16.03.16 12:04
Оценка:
Здравствуйте, Vladek, Вы писали:

AVK>>1) Кто что по этому думает?

V>Не взлетит. У всех разный набор решений одних и тех же проблем.

Это не так.

V> Универсальной библиотекой просто не будут пользоваться.


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

V>Авторы полезных решений могут поступать так же — оформлять свои наработки в библиотеки и выкладывать их в общий доступ, а RSDN может просто вести их каталог.


И помнить и подключать 100500 мелких пакетов в каждый проект? Да ну нафик.

V> Вроде оно уже есть: http://rsdn.ru/forum/prj/


Что оно? Это просто форум для обсуждения любых проектов.

V> И даже находится такое: http://rsdn.ru/projects/Utils/Article/Rsdn.Utils.xml


Это не совсем то, это какая то выжимка из написания Вольфхаундом бинарного диффа. Ей, кстати, люди даже пользовались, не смотря на полное отсутствие поддержки и какой либо жизни внутри.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re: Проект утилитной библиотечки
От: xy012111  
Дата: 16.03.16 12:18
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>2) Что бы хотелось в этой библиотеке увидеть, и что не хотелось бы?


Тут ещё можно полезных методов отыскать: [FlashMob] Ваш любимый метод-расширение
Автор: _FRED_
Дата: 13.07.09
Отредактировано 16.03.2016 12:19 xy012111 . Предыдущая версия .
Re[3]: Проект утилитной библиотечки
От: vmpire Россия  
Дата: 16.03.16 12:28
Оценка:
Здравствуйте, Sinix, Вы писали:

V>>Моё мнение — не взлетит. Участники не договорятся о деталях.

S>Не-не-не, троллинг этап я уже провёл тут
Автор: Sinix
Дата: 15.03.16
, опоздали

Эх, не успел

S>Есть желание — присоединяйтесь, нет — добавьте в календарик напоминалку на через год, тогда и посмотрим.

Присоединяться пока не буду, но за обсуждением буду наблюдать. Вдруг полезную идею обнаружу, о которой не задумывался.
Могу пока что высказать мнение чего НЕ стоит включать в библиотеку:
— преобразование XML в строку и обратно
— синтаксический сахар, который не уменьшает сильно количество кода.

А вот "парсер командной строки", который AndrewVK включат не хочет, я бы как раз включил. При условии, что он гибко декларативно настраиваемый.
У меня в проекте есть что-то подобное, очень удобно (хоть и не доделано до конца).
Re[3]: Проект утилитной библиотечки
От: vmpire Россия  
Дата: 16.03.16 12:32
Оценка:
Здравствуйте, AndrewVK, Вы писали:

V>>Моё мнение — не взлетит. Участники не договорятся о деталях.

AVK>Тут ты преувеличиваешь проблему.
V>>В процессе споров отвалятся все, кроме двух-четырёх человек, которые и произведут продукт.
AVK>4 человека это существенно больше, чем я ожидаю. И их более чем достаточно.
Ну, если до 4 человек — то, конечно, договорятся.

V>>Я через такое проходил один раз сам и пару раз наблюдал со стороны.

AVK>Ну мы тоже не совсем новички.
Да я в курсе, я тут уже несколько лет Правда, больше читаю, чем пишу.
Re[4]: Проект утилитной библиотечки
От: Sinix  
Дата: 16.03.16 12:53
Оценка:
Здравствуйте, vmpire, Вы писали:

V>Могу пока что высказать мнение чего НЕ стоит включать в библиотеку ...

V>А вот "парсер командной строки", который AndrewVK включат не хочет, я бы как раз включил. При условии, что он гибко декларативно настраиваемый.

Ну, т.е. нужен issue tracker, но, как я понимаю, не гитхаб, т.к. обсуждения планируется на русском.
Re[5]: Проект утилитной библиотечки
От: _Raz_  
Дата: 16.03.16 13:25
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Ну, т.е. нужен issue tracker, но, как я понимаю, не гитхаб, т.к. обсуждения планируется на русском.


Есть же https://track.rsdn.ru/
... << RSDN@Home (RF) 1.2.0 alpha 5 rev. 78>>
Re[5]: Проект утилитной библиотечки
От: Danchik Украина  
Дата: 16.03.16 13:35
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Danchik, Вы писали:


D>>Интересно посмотреть. Писал такое, хотелось бы сравнить


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


Для себя как раз делал "сложные" алгоритмы обьединения диапазонов.
    public struct Range<TValue> : IComparable<Range<TValue>>
        where TValue : IComparable<TValue>
    {
        // основные методы
        Union
        Contains
        Intersects
        IsAdjastent
    }


Основные особенности диапазонов
1. Могут быть бесконечными ..... , S....., ......E
2. Могут включать или не включать грани [S]....., ......[E]

И есть ImmutableRangeList (сортированный)

    public class ImmutableRangeList<TValue> : IEnumerable<Range<TValue>>
        where TValue : IComparable<TValue>
    {
        // основные методы
        IsEmpty
        IsFull
        ContainsValue,
        Add
        Remove
        Invert
        Intersect
        ~, +, -, &, |, !
    }


С тегами не думал. Пока хватало для своих задач.

Как использовалось. Например когда делал кеш даных по диапазонам (Cached).
Делался вызов — нужен такой то диапазон или набор диапазонов даных (Request).
Request — Cached = То_что_надо_закачать. Потом по этому строился ExpressionTree для IQueryable и накладывалась Where условие. Как результат, на сервер ушел оптимальный запрос, а из кеша взялось то что уже в нем лежит.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.