Задать вопрос
Профиль пользователя заблокирован сроком с 29 августа 2016 г. и навсегда по причине: Снова мат
  • Как понять момент в решении на JS?

    rajdee
    @rajdee
    Front-end developer
    Условие сработает, т.к. 6 % 7 выдаст 6, хотя такая перестраховка для нативного Date.prototype.getDay() не совсем понятна, но, судя по вашему примеру, getDay у вас не нативный.
    Ответ написан
    Комментировать
  • Какова природа утечки памяти JS в задаче?

    mlnkv
    @mlnkv
    JavaScript Developer
    Каждый раз создается большой объект и ссылка на него сохраняется в определении функции writeToLog , то есть сборщик мусора не может удалить объект, так как на него сохраняется ссылка.

    learn.javascript.ru/memory-leaks

    Решить можно как то так, но все зависит от ситуации, смотря что вам надо.
    var theItem = null;
    
    function writeToLog(item) {
      if (item) {
        console.log("hi");
      }
    }
    
    function someMethod() {
      console.log(someMessage);
    }
    
    function replaceItem() {
      var priorItem = theItem;
    
      if (!theItem) theItem = {};
      theItem.longStr = new Array(1000000).join('*');
      theItem.someMethod = someMethod;
    
      writeToLog(priorItem);
    };
    
    setInterval(replaceItem, 1000);
    Ответ написан
    2 комментария
  • Как влияет и на что ключевое слово?

    mlnkv
    @mlnkv
    JavaScript Developer
    это так же критично, как и ваше нежелание учить js
    Ответ написан
    1 комментарий
  • Возможно ли у получателя определить «границы пакетов» TCP отправителя?

    Scorpi
    @Scorpi
    Я пытался сделать принималку изображений по TCP на node.js и тоже столкнулся с этой проблемой.
    В результате ничего лучше не придумал как сначала отправлять размер файла, а потом просто считать кол-во принятых байт чтобы знать где конец.

    Сейчас погуглил, и пишут что можно узнать где конец передачи по \n
    Т.е. если пришёл end-line - значит передача закончена.
    Ответ написан
    2 комментария
  • Здоровье и программирование?

    @vasIvas
    Вам точно не стоит быть программистом. Вы даже не знаете сколько у людей рабочий день длится
    и что здесь не офтальмологи.
    Ответ написан
    Комментировать
  • Возможна ли нечаянная продажа авторских прав на код?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    habrahabr.ru/post/172307
    Насколько я понимаю наше право, то создание нового продукта повторяющего функционал старого - не является нарушением.
    * могу ошибаться.
    Ответ написан
    1 комментарий
  • Возможна ли нечаянная продажа авторских прав на код?

    @MiiNiPaa
    Внимательно смотрите на условия договора и что вы продаёте. Если вы продадите исключительные права на распространение конкретной игры и оговорите, что права на использование движка, на котором она создана, остаются за вами, то ничто не помешает вам наклепать ещё десяток игр.

    Вообще советуйтесь в таких случаях с юристом. Если вы плохо разбираетесь в юриспруденции, можно и квартиру случайно продать.
    Ответ написан
    Комментировать
  • Возможна ли нечаянная продажа авторских прав на код?

    swanrnd
    @swanrnd
    Издатель HTML5 игр
    Все зависит от договора при продаже.
    Ответ написан
    Комментировать
  • С чего начать изучение программирования на Python?

    Atanvar
    @Atanvar
    Frontend developer
    Начать нужно с правильного написания "Python"
    Лутц - изучаем питон
    Лутц - программируем на питон
    Dive Into Python 3
    Ответ написан
    6 комментариев
  • Дети и интернет: как контролировать?

    @vasIvas
    Странно слышать, что мы хотим защитить детей от того, что сами же и создали...
    Остается только отрубить им руки, ну или глаза выколоть. А ещё смешит, что детям
    можно ходить в ночной-стриптиз клуб, но они должны, как мартышки - не видеть, не слышать..
    Давайте им головы отрубать будем...
    Не разрешайте им в интернет ходить или забейте, ведь они играют в игры
    вместе с сорокалетними бухими сисадминами, которые матом ругаются, как
    в колхозе. Спам который дети хавуют как конфетки ведет на мат, голые тела
    и на видео, где семеро одного до обсеру избивают. А предложения дружбы, которые
    они получают, пишут порно-озобоченные боты, которые для продвижения порносайтов
    заводят с Вашими детьми дружбу, чтобы, в лучшем случаи спам слать, а то и комп заразят.
    Ответ написан
    Комментировать
  • Какие приложения помогают работать с бумажными документами?

    Офисному планктону помогут только те сотрудники It-отдела, которые не будут называть их офисным планктоном, а выяснит у них их потребности, составит требования и уже исходя из них - будет думать.
    Ответ написан
    Комментировать
  • Как постепенно выполнять действия, а потом всё повторять?

    Ronnie_Gardocki
    @Ronnie_Gardocki
    Я у мамы фронтендщик.
    Варианта два:
    1) Добавлять ко всем блокам классы одновременно, и ставить для каждого класса свою задержку на transition. Пример:
    .block-1.active {transition: height %time%;}
    .block-2.active {transition: height %time% 500;}
    .block-3.active {transition: height %time% 900;}
    .block-4.active {transition: height %time% 1200;}
    /* как вариант, transition: %property% %time% можно задать для всех одно, а по отдельности менять только свойство transition-delay, если вам так удобнее будет */

    Если вам при снятии класса требуется, чтобы анимация всех блоков произошла одновременно, то для их общего класса (ну или для каждого по отдельности) пишите просто что-нибудь такое:
    .block {transition: height %time% 0;}
    В итоге если класс active у блока есть, его анимация стартует с задержкой (первая после свойства это время исполнения, а вторая это задержка). Если класса .active нету, то и задержки не будет.
    2) Второй вариант предполагает использование setTimeout(){function() {%действие%}, %delay%) для каждого действия с делеем. Если положить таймаут внутрь другого, то его время сложится с родителем (то есть его таймаут стартнет только когда "выстрелит" таймаут родителя).

    Ну и для цикличности все это дело надо просто упаковать в setInterval.
    Ответ написан
    5 комментариев
  • Как совместить паттерны и не получить говнокод?

    @vasIvas
    Если я правильно Вас понял, то вот как-то так -
    var App = ( function( ){
    	// свойства объявляются в начале
    	var app = Object.create( null ),
    		manipulation,
    		matrix,
    		main;
    	
    	document.addEventListener( 'DOMContentLoaded', document_domContentLoadedHandler );
    
    	function document_domContentLoadedHandler( ){
    		document.removeEventListener( 'DOMContentLoaded', document_domContentLoadedHandler );
    
    		main = new Main( );
    	}
    
    	// точка входа в приложение.
    	// обычно, приложение не состоит 
    	// из двух классов и инициализация его
    	// очень долгий и крапотливый момент,
    	// который требует много внимания к последовательности
    	// создания объектов. По этому, у меня обычно отдельный
    	// класс этим занимается. Обычно, это когда без фраймворков.
    	// 
    	// Так же стои отметить, что этот класс Main обычно пишится 
    	// в отдельном файле и состоит из, порой, тысячи строк.
    	// Я это говорю к тому, что если покажется, что он излишний,
    	// то представьте приложение из сотни классов, в которых запутаться,
    	// легче чем кажется. И класс Main используется только для того,
    	// чтобы читать приложение в одном месте, а не гонять из файла в файл,
    	// в надежде понять, ЧТО ЭТО??? 
    	var Main = ( function( ){
    		function Main( ){
    
    		}
    
    		Main.prototype.init = function( ){
    			matrix = this.installMatrix( );
    			manipulation = this.installManipulation( matrix );// передаем ссылку для манипулирования
    		};
    
    		Main.prototype.installManipulation = function( ){
    			// ...
    			return new Manipulation( );
    		};
    
    		Main.prototype.installMatrix = function( ){
    			// ...
    			return new Matrix( );
    		};
    
    		return Main;
    	} )( );
    
    	//
    	var Manipulation = ( function( ){
    		function Manipulation( ){}
    		return Manipulation;
    	} )( );
    
    	//
    	var Matrix = ( function( ){
    		function Matrix( ){}
    		return Matrix;
    	} )( );
    
    	return Object.defineProperties( app, {
    		manipulation: {
    			get: function( ){return manipulation;}
    		},
    		name: {
    			get: function( ){return 'App';}
    		},
    		toString: {
    			value: function( ){return '[object ' + this.name + ']'}
    		}
    	} );
    } )( );
    Ответ написан
    2 комментария
  • Как правильнее объявить exports чтобы каждый раз его не писать в js?

    Ммм... Возможно вы ищете
    module.exports = {
      findById: function() {},
      findAll: function() {}
    }
    Ответ написан
    1 комментарий
  • MVC vs MVVM за чем будущее?

    @vasIvas
    Прежде чем получить ответ, Вам нужно понять,
    что у всех людей mvc разное, точнее, разная реализация.

    Возьму для примера логику 90% и Сергей Протько в том числе.
    MVC декларирует разделение на логику представления, бизнес логику и связывающие это все контроллеры.

    Следом идем в Model-View-Controller и читаем -
    Наиболее типичная реализация отделяет вид от модели путем установления между ними протокола взаимодействия, используя аппарат событий (подписка/оповещение). При каждом изменении внутренних данных в модели она оповещает все зависящие от неё представления, и представление обновляется. Для этого используется шаблон «наблюдатель». При обработке реакции пользователя вид выбирает, в зависимости от нужной реакции, нужный контроллер, который обеспечит ту или иную связь с моделью. Для этого используется шаблон «стратегия», или вместо этого может быть модификация с использованием шаблона «команда». А для возможности однотипного обращения с подобъектами сложно-составного иерархического вида может использоваться шаблон «компоновщик». Кроме того, могут использоваться и другие шаблоны проектирования, например, «фабричный метод», который позволит задать по умолчанию тип контроллера для соответствующего вида.


    Тут ясным языком сказано, что модель посылает события, а представление их ловит и изменяется. Можно было бы предположить, что контроллер является "наблюдателем", но нет. Контроллер, это отдельная структура данных, которая
    в большинстве случаев заключает в себе некую, контрольскую логику, которая
    убивает мысль о контроллере "наблюдателе", так как один объект не может делать больше одной обязанности.
    Конечно можно эти слова натянуть к любой реализации, но чтобы до конца разобраться нужно открыть книгу GoF в которой написано -
    6f447abd4303469d86a19e53a99d6716.png

    Можно и это трактовать по разному, но дальше идет картинка и чугунно-бетонная точка -
    525645c43f4c440b94e61c4b7309e22d.png

    Ну а так же картинку с вики -
    MVC-Process.png

    Буду раз выслушать другие взгляды, но только с приведением ссылок на авторитетные источники, а не статьи смертных и тем более неправильные реализации framwork'ов.
    Ответ написан
    9 комментариев
  • Как узнать, подо что компилирунтся код?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    #if _WIN32 || _WIN64
       #if _WIN64
         #define ENV64BIT
      #else
        #define ENV32BIT
      #endif
    #endif
    
    // Check GCC
    #if __GNUC__
      #if __x86_64__ || __ppc64__
        #define ENV64BIT
      #else
        #define ENV32BIT
      #endif
    #endif
    Ответ написан
    1 комментарий
  • Можно ли наследовать контроллеры директив в AngularJS и правильно ли это?

    haiku
    @haiku
    1) Ангулар не предполагает какого-то особого ООП и "наследования", если вы об этом.
    2) Наследовать контроллеры очень сомнительная идея. Что конкретно в контроллерах вы собрались наследовать?
    3) Напоминаю, что в общем случае, контроллер в MVC нужен всего-лишь в качестве маршрутизатора на какой сервис делигировать выполнения реакции на действия пользователя (что предполагает, что вся ваша логика должна имплементаться в сервисах (factory, value, service, provider, constant). Сервисы гораздо проще затем обвернуть чем напрямую прототипно наследовать (да и вообще new SomeService где-то в контроллере - это не слишком уж хорошо, ни к чему конструкторы экспоузить куда-то наружу за сервисы)
    4) В контроллерах следует только наинжектать и подсунуть в скоуп то, что привязано к морде и все.
    В общем, лучше не наследовать (ес-сно если вы о прототипном наследовании). При желании инжектнуть $controller в другой контроллер и инстанциировать через него какой-то конкретный контроллер в $scope вашего "наследника" ничто не мешает.
    Ответ написан
    Комментировать
  • Как подружить retina дисплей и CSS Media Queries?

    Serj-One
    @Serj-One
    i'm sexy and i know it
    Вы читали, что такое retina?
    В Retina-экранах плотность пикселей в 4 раза больше, чем в обычных. Соответственно 2560-retina px = 1280 css px.
    Проще говоря, элемент, который на обычном мониторе занимает 1 физический px, на retina будет занимать 4px. Т.е. 2px по горизонтали и 2px по вертикали. Но в пересчёте на css px это будет тот же 1px.
    Ответ написан
    5 комментариев