• Какую CMS выбрать для хранения регламентов компании на WIN SERVER

    @0000168
    Разверните SharePoint
    Ответ написан
    Комментировать
  • Оптимизация EventLog?

    kefirr
    @kefirr
    У меня 63к записей, тормозит именно чтение целого лога. А Reverse именно прочитает всё и начнёт возвращать с конца. Доступ к отдельным записям по индексу быстрый.

    Используйте Count и доступ по индексу.
    Если хочется LINQ — вот, например, метод, перечисляющий записи с конца.

    public static IEnumerable<EventLogEntry> EnumerateLatestLogEntries()
    {
    	var entries = new EventLog("System").Entries;
    	for (var i = entries.Count-1; i>=0;i--)
    	{
    		yield return entries[i];
    	}	
    }
    


    Но если нужен именно UI, отображающий события (список там или грид), то нужно думать о виртуализации данных. То есть, например, подгружать записи из лога по мере скроллирования.
    Ответ написан
    2 комментария
  • Чем просматривать HTTPS запросы?

    AFoST
    @AFoST
    Вот http://www.fiddler2.com/fiddler2/ должно помочь
    Ответ написан
    Комментировать
  • Обход двумерного массива при помощи одного foreach на C#?

    clx
    @clx
    Например так:
    var array = from i in Enumerable.Range(0, 5)
                from j in Enumerable.Range(0, 3)
                select new { Row = i, Col = j };
    Ответ написан
    1 комментарий
  • Вопрос по c sharp

    @Zlobober
    Хочу собрать автомобиль «Тойота». Есть колёса, кузов, двери и дрель «Механик-60». Картинка требуемого автомобиля прилагается. С помощью чего это можно реализовать?
    Ответ написан
    Комментировать
  • Статья про борьбу с "хронической усталостью"

    lsoul
    @lsoul
    Неожиданно - юрист
    В GTD наверное будет в тему.
    Думаю, это будет интересно.
    Ответ написан
    Комментировать
  • Что вдохновляет вас писать код?

    @Elkaz
    Интересный и перспективный проект, где есть умные менеджеры, хороший руководитель, и разного рода мелочи (удобный стол, удобное кресло, печеньки). Возможность оставаться на работе (душ, кровать). Возможность приходить и уходить в любое время. Отсутствие тотального контроля. Когда программист погружен в подобную или близкую атмосферу, код будет писаться сам по себе =) В целом в любой работе так =) Удовлетворить все пожелания (реальные, а не Бентли под окна) работника — и дело в шляпе. Суммарная затратность не такая большая, а профитов в разы больше.
    Ответ написан
    7 комментариев
  • Что вдохновляет вас писать код?

    @tucnak
    Что-то внутри. Наверное сущность программиста…
    Ответ написан
    Комментировать
  • Ищу Учителя / Наставника по C#

    taliban
    @taliban
    php программист
    Половина желаний не относится конкретно к языку, прочитайте пару книг (да, именно не одну а больше) И вот тогда уже, избавясь от половины вопросов и желаний сами поймете чего Вам действительно нужно.
    Ответ написан
    4 комментария
  • Интересное поведение хомячков

    @LastDragon
    Это хабра!

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

    (к счастью, нормальные индивидуумы здесь тоже встречаются)
    Ответ написан
    2 комментария
  • А что вы делаете ночью на Хабре?

    VBart
    @VBart
    Зашел поглядеть перед сном, может кто чего спросил, на что я могу ответить, и с приятным чувством, что быть может помог человеку, отправиться спать.

    Режим сбился, да.
    Ответ написан
    3 комментария
  • А что вы делаете ночью на Хабре?

    Weballergy
    @Weballergy
    Пытаюсь найти что-нибудь на RoR, что можно доработать до аналога DLE и иже с ним.
    Ответ написан
    Комментировать
  • MVC, как лучше избежать дублирование кода?

    @bioroot
    Первым делом определитесь чего вы хотите на самом деле. Не понятно почему отсутствие проверки родителя — непрофессиональность. Если она не нужна, то непрофессиональность как раз её написание ради какой-то абстрактной идеи. Например, для региона может быть нужно сделать отдельную страницу при наличии страны и отсутствии его самого («для указанной страны не существует такого региона»). Если все ошибки ведут на одинаковую надпись «страница не найдена», то дополнительные проверки ни к чему.

    Далее надо определиться с реализацией. Но тут уже вам должно быть виднее какая у вас архитектура. По сути всё предложенное выше сводится к классическому паттерну Strategy: весь общий функционал оставляем в родительском классе, а все частности (ключевой момент — их должно быть мало) переносим в наследников. В вашем случае предком будет CRUDController с реализацией метеодов завязанной на modelClass, а потомками классы определяющие этот modelClass и метод checkRequest. Дёрганье checkRequest прописывайте где вам нравится. Не знаю как устроен Yii, но если он позволяет создавать контроллеры произвольных классов не наследуясь ни от кого, то имеет смысл вообще объявить CRUDController абстрактным и в нём же прописать абстрактный метод checkRequest. Тогда это будет вообще Strategy из книжки, а вы получите возможность использовать checkRequest в других методах CRUDController не опасаясь того что в наследниках он не определён. И ещё обычно в современных фреймворках есть метод, который дёргается перед любым экшеном контроллера. Возможно, там вашему checkRequest самое место.

    Продолжая фантазировать на тему, можно сделать тип модели modelClass передаваемым в параметре. Или получать его исходя из того что вам передали. Только надо сделать карту допустимых значений. Что-нибудь типа
    array(
    	...
    	'region' => array( 'model' => 'regionModel', 'parent' => 'countryModel' ),
    	'country' => array( 'model' => 'countryModel', 'parent' => null )
    )
    

    и из этой карты получать модель и родителя проходя по ключам массива и проверяя на существование параметра с таким ключом. Как только нашли — проверяем существование родителя и работаем по общим методам с уже определённым значением modelClass.

    Почему все советуют делать Strategy. Потому что эта штука зарекомендовала себя в боях. Классический ООП подход часто приносит больше трудностей при разработке (надо быть аккуратнее и чаще всего писать больший объём кода), но даёт заметный выигрыш при необходимости изменить какую-то часть проекта. К примеру, «нафантазированный» способ реализуется быстрее (надо добавить пару методов и карту соответствия, против базового класса + 5 классов дочерних для сущностей). Но при этом если понадобиться добавить какой-то новый экшн (например, добавление комментария к ревью), то в случае со стратегией вы просто впишите его в нужный класс. А для более простого метода придётся ломать себе голову с изобретением исключения в логике. Пару раз так можно сделать, но… после 12 костылей код превратится в тыкву.

    Но, в конечном итоге, решать всё-равно вам. Может быть и второй быстрый способ подойдёт, потому что «там стопудова ничего не будет меняться» (не верьте тем кто так говорит — обязательно будет). Может вы их скрестите и внесёте в базовый класс стандартную реализацию checkRequest, а в дочерних классах будете определять только modelClass и parentModelClass. Всё зависит от конкретных потребностей и архитектуры проекта.
    Ответ написан
    1 комментарий
  • Этично ли кинуть взломщика собственного сайта?

    pnick
    @pnick
    Телеком инженер
    Главное, чтоб этот пост не прочитал тот самый заказчик (:
    Ответ написан
    Комментировать
  • Этично ли кинуть взломщика собственного сайта?

    @Yaraife
    Сама деятельность незаконна, т.е. вся эта сделка.
    Это означает, что покупатель не защищен законом.

    Позаботьтесь об анонимности, и, конечно, киньте его.
    1) Так как заказчик пытается украсть ваши данные, он может считаться для вас врагом, и однозначно следует попытаться ослабить его, например кинув его на деньги. (он не сможет повторить операцию)
    2) Он не защищен законом, поэтому не сможет ничего предпринять, скажем подать в суд.

    Поразительная внимательность для владельца сайта.
    Не вижу причин не кидать заказчика на деньги, если только эти несколько хешей пользователей для вас не буду серьёзной угрозой.
    Ответ написан
    2 комментария
  • Посоветуйте художественную литературу для программистов

    alexmay
    @alexmay
    Я бы посоветовал читать Шекли, а также
    Автостопом по галактике
    Автостопом (Д. Адамса) — вообще надо в обязательный курс программистов внести :)
    Ответ написан
    Комментировать
  • C#. Возможно ли создать список объектов заранее неизвестного типа?

    @bleykher
    Тяжело ответить на вопрос без примера дальнейшего использования списка.
    1. Можно сделать просто создать
    List<object>
    и туда пихать всё, что угодно.
    2. Если нужно будет вызывать какой-то метод для объекта в списке, то можно Value унаследовать от класса, содержащего объявление нужного метода (класс BaseValue) и создать список
     List<BaseValue>
    .
    Ответ написан
    1 комментарий