• БЭМ. Блок и его модификатор?

    А может не стоит отказываться от контекста и начать уже нормально работать?)
    Столько времени тратится на постижение дзена БЭМ...
    Ответ написан
    Комментировать
  • БЭМ. Блок и его модификатор?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    как бы сделали вы?

    базовые стили (общие) в header, остальное в модификаторы в зависимости от нужд. Ну и да, не привязывайте именование модификаторов к контексту, для того что бы скажем добавить заголовкам маргин сверху от слайдера у вас элементы есть (slide__header)

    В целом если сделать так:

    <div class="page">
      <div class="page__header">
        <h1 class="header">Заголовк страницы</h1>
      </div>
      <div class="page__slider">
        <div class="slider">
              <div class="slider__item slide"> 
                <h1 class="slide__header header header--small" >Заголовк слайда</h1>
              </div>
        </div>
      </div>
    <div>


    ну вот как-то так... для более нагладного примера лучше привести макет или что-то упрощенное но передающую суть проблемы.
    Ответ написан
    6 комментариев
  • БЭМ. Не понятие основных понятий - блок, элемент, модификатор?

    БЭМ - шляпа.
    Слишком много противоречий и требует лишней траты времени.
    Юзай smacss, можно в связке с OOCSS
    Ответ написан
  • БЭМ. Не понятие основных понятий - блок, элемент, модификатор?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Получается что блок это чисто Namespace для других сущностей.

    как-то так да. Вот только у вас пример не правильный.

    <div class="blog"> 
       <div class="header header_blog">Заголовок блога</div>
       <div class="date date_blog">19.19.1900</div>
       <div class="body body_blog">текст</div>
    </div>
    <div class="comment"> 
       <div class="comment_date date">19.19.1900</div>
       <div class="comment_body body">текст</div>
    </div>


    Вот так правильно.

    Далее, помимо того что блок это "неэмспейс" он так же может содержать базовые стили, но не размеры и позиционирование. За это отвечают элементы.

    Грубо говоря.

    .blog{}
    .blog__date{} // задает положение даты в... блоге? В блоге нет дат, даты есть у постов, так что выносим это в .post
    .blog__header{} // задает положение заголовка, ширина, паддинги, маргины
    .blog__body{} //задает положение содержимого в блоге, только положение на странице, ширина, паддинги, маргины
    Ответ написан
    7 комментариев
  • БЭМ, блок или элемент?

    Блок имеет смысл вне зависимости от контекста. Футер же имеет смысл только как элемент страницы. Плюс почти всегда футер имеет какие-то характеристики, определяющие его положение: position, margin... и т.д. Что сразу характеризует его как элемент.

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

    class="footer page__footer"

    При этом классу page__footer задать стили, определяющие его положение на странице, а классу footer - все остальное.

    Если на одной странице футер отличается, то его следует переопределить через модификатор. Если отличия в положении, то модифицировать следует элемент: page__footer_modificator, при отличиях в оформлении - модифицируете блок: footer_modificator
    Ответ написан
    3 комментария
  • Вопрос по Thread.Sleep(1)?

    dordzhiev
    @dordzhiev
    Потому что контекст переключается по таймеру. Thread.Sleep(n) усыпляет поток на не менее чем n мс.
    И да, гугл поможет.
    Ответ написан
    4 комментария
  • Ember, как обновить модель после создания?

    Kaer_Morchen
    @Kaer_Morchen
    Разрабатываю web-приложения.
    Видимо дело в том что вы переходите на другую страницу еще когда не выполнился запрос, попробуйте так:

    var newPost = this.store.createRecord("post", {
                    title: this.get("title"),
                    text: this.get("text"),
                    intro: this.get("intro")
                });
                var _this = this;
                newPost.save().then(function() {
                    _this.transitionToRoute("admin.posts");
                });
    Ответ написан
  • Ember, как скомпилировать шаблоны?

    Kaer_Morchen
    @Kaer_Morchen
    Разрабатываю web-приложения.
    А почему вы не хотите компилировать nodejs и подсовывать готовым статическим файлом в .net?
    Ответ написан
    6 комментариев
  • ASP.NET Identity, что это?

    Razaz
    @Razaz
    Asp.Net junkie
    Это слой управления Identity(Identity Management). Он опирается на Claim-Based Identity Model и решает задачи, управления жизненным циклом аккаунта, как то сброс паролей, подтверждение почты и тд. С Owin он интегрирован только в части IAuthenticationManager. Но оба могут легко жить друг без друга.
    В целом неплохой референс для начинающих разработчиков и для разработчиков. где нет какой-то сложной специфики, но покрывает достаточно большой пласт частых задач.
    Ответ написан
    1 комментарий
  • Как передать контекст из одной сборки в другую?

    Neuroware
    @Neuroware
    Программист в свободное от работы время
    Никак, вы хотите использовать классы EF, не подключая EF, так сделать не получится, C# строго типизированный язык и должен всегда однозначно понимать с чем работает. Если хочется изолировать придется делать промежуточный класс, который будет знать и библиотека и приложение, в котором нет зависимости от EF, то есть через него передавать сырые данные. Такой подход в любом случае страшный костыль, который полностью стирает все плюсы EF ради которых его создавали. Не нужно костылей, просто подключите зависимости к приложению.
    Ответ написан
    Комментировать
  • Как подсчитать объем?

    Mrrl
    @Mrrl
    Заводчик кардиганов
    Достаточно для каждой грани
    vertex x1 y1 z1
    vertex x2 y2 z2
    vertex x3 y3 z3
    посчитать величину Vj=(x1*(y2*z3-y3*z2)+x2*(y3*z1-y1*z3)+x3*(y1*z2-y2*z1))/6, и найти сумму этих величин (часть из них будет отрицательной, но это не страшно). Для замкнутой модели она и будет искомым объёмом.

    Работать проще с бинарным STL - там не нужно тратить силы на синтаксический разбор.
    Ответ написан
    6 комментариев
  • Почему в первом console.log переменная видна, а во втором нет?

    Petroveg
    @Petroveg
    Миром правят маленькие с#@&ки
    Ну сейчас вы наслушаетесь всяких фантазий:) На самом деле вы столкнулись с 3-мя вещами.

    Объект активации
    Это куда ссылается волшебное слово this. Зависит от способа вызова функции (она же метод). Неразрывно связан с контекстом выполнения.

    Контекст выполнения
    Контекст выполнения отложенного кода в виде таймеров setTimeout и setInterval — глобальный. Поэтому при отложенном вызове this ссылается на глобальный объект. Для клиентского JS глобальный объект — window. А у window нет такого свойства isRun.

    Как побороть
    Установить явно объект вызова activation object. Для этого есть 3 метода функций — call, apply, bind. Например:

    var timer = function (element, callback) {
    	...
    }.bind(this);

    После такой привязки функция timer будет выполняться с объектом активации, ссылающимся на тот контекст, где была создана.

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

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

    Как побороть
    Передать в замыкании для inner ссылку на нужный объект. Кстати, замыкание — это все внешние контексты для созданной функции (для конструктора Function, для таймеров и для eval — отдельная песня). Для инструкции with тоже отдельная песнь, хотя и deprecated.

    var timer = function (element, callback) {
    	var $this = this;
    	(function inner() {
    		console.log(slider.isRun); // Так свойство видно
    		console.log($this.isRun); // И так тоже
    		setTimeout(inner, 1000);
    	})();
    }.bind(this);


    Не создавать функцию inner (а по факту именованный функциональный литерал), и вызывать timer

    var timer = function (element, callback) {
    	console.log(slider.isRun); // Так свойство видно
    	console.log(this.isRun); // И так тоже
    	setTimeout(timer, 1000);
    }.bind(this);


    Итог
    Вот так можно представить ваш код

    var slider = {
    	isRun: true,
    	run: function (element, callback) {
    		var timer = function (element, callback) {
    			var $this = this;
    			(function inner() {
    				console.log(slider.isRun); // Так свойство видно
    				console.log($this.isRun); // И так тоже
    				setTimeout(inner, 1000);
    			})();
    		}.bind(this);
    		setTimeout(function () {
    			timer(element, callback);
    		}, 1000);
    	}
    }
    Ответ написан
    8 комментариев
  • Как сделать активную ссылку в главном меню?

    @ZhigulskiyNikolay
    Если я правильно понял, вы хотите поменять css класс ссылке, ведущей на страницу, на которой в данный момент находится пользователь.
    Я делаю это с помощью javascript и jquery таким образом:
    $(document).ready(function(){
            $("a[href='" + window.location.pathname + "']").addClass('active');
          });
    Ответ написан
    2 комментария
  • Reg.ru или nic.ru?

    @inkvizitor68sl
    Linux-сисадмин с 8 летним стажем.
    Ни в коем случае не пользуйтесь услугами nic.ru. Безотносительно сравнения с reg.ru. Хуже них придумать регистратора невозможно.
    Ответ написан
    7 комментариев
  • Какие есть каталоги сайтов для вдохновения дизайнеру?

    @asd111
    themeforest
    Ответ написан
    Комментировать
  • Какие есть каталоги сайтов для вдохновения дизайнеру?

    dribbble.com, www.behance.net, www.pentagram.com, www.colourlovers.com, revision.ru
    Ответ написан
    Комментировать
  • Какие есть каталоги сайтов для вдохновения дизайнеру?

    Sander_Li
    @Sander_Li
    Backend developer
    Ответ написан
    Комментировать
  • Какие есть каталоги сайтов для вдохновения дизайнеру?

    iskros
    @iskros
    Руководитель проектов
    bestcss.in
    Каждый день, новый сайт с отличным дизайном
    Ответ написан
    Комментировать
  • TDD, много Assert`ов

    xakpc
    @xakpc
    full-stack .net developer, CEO Leecero.com
    Используйте входящие параметры
    Пример с использованием NUnit'а
    [TestCase(0, "04.12.13 08:00:00", "06.12.13 00:00:00")]
    [TestCase(1, "04.12.13 08:00:00", "06.12.13 00:00:00")]
    public void Test123(int i, DateTime s, DateTime e)
    {
         Assert.That(result[i].Start, Is.EqualTo(DateTime.Parse(s)));
         Assert.That(result[i].Finish,Is.EqualTo( DateTime.Parse(e)));                 
    }


    * поправил пример чтобы он действительно был из NUnit
    Ответ написан
    Комментировать