• Какая есть бесплатная библиотека на C# для воспроизведения и записи аудио на Linux+Windows?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Дык VLC же есть, прям первая ссылка в гугле на биндинг: https://github.com/videolan/libvlcsharp
    Да даже если не можете найти конкретно либу или вот VLC биндинг завести, то что мешает тупо в командной строке запускать любой бесплатный плеер для воспроизведения/записи?
    Ответ написан
  • Что такое замыкание?

    @HowardRoark
    Full stack developer
    Мне кажется, самый простой пример замыкания - это счетчик.
    var counter = (function () {
    	var current = 0;
    	return function () {
    		current++;
    		return current;
    	}
    })();
    
    console.log(counter()); // 1
    console.log(counter()); // 2

    В данном случае мы не имеем доступ к переменной current и функция гарантированно возвращает каждый раз уникальное значение.
    Если бы это была простая функция, то переменная, содержащая состояние (current), должна была бы находиться вне функции.
    var current = 0;
    var counter = function () {
    	current++;
    	return current;
    }
    
    console.log(counter()); // 1
    current = 5;
    console.log(counter()); // 6

    А это уже нарушает принцип "черного ящика", т.к. переменной можно присвоить другое значение в любом месте.
    Ответ написан
    4 комментария
  • Как писать свои скрипты на JavaScript?

    Symphony
    @Symphony Куратор тега JavaScript
    Практика, начинай со слайдеров, каруселек и всяких плагинов на js
    Ответ написан
    Комментировать
  • Закрытие вкладки через определенное время?

    Закрыть вкладку/окно можно только если она/оно является дочерним по отношению к текущему. А именно если вкладка/окно было открыто javascript'ом:
    var childWindow = window.open('http://google.com');
    setTimeout(function () {
      childWindow.close();
    }, 6000);
    Ответ написан
    Комментировать
  • Что лучше: передавать функцию или ее результат в аргумент?

    С точки зрения интерпретатора эти конструкции практически идентичны, единственное, в первом случае в scope создается дополнительная ссылка на результат функции.

    Так что какой вариант использовать, в данном случае - решение стилистическое:
    с одной стороны есть мнение, что если результат вычислений используется лишь в одном месте, то не стоит создавать на него ссылку,
    с другой - сворачивание кода в бессылочную конструкцию приведет к его полной нечитабельности
    funcA(funcB(funcC(funcD(5))));
    Всего должно быть в меру.
    Ответ написан
    Комментировать
  • На каком языке пишутся сложные сайты?

    Jump
    @Jump
    Системный администратор со стажем.
    Их не пишут, нельзя вот так вот взять и написать yotube.
    Во первых не стоит называть такие проекты сайтами. Сайт это просто аккуратно оформленная страничка с данными доступная по протоколу http.
    Т.е вордовский документ размещенный в сети интернет это и есть сайт.

    А то что вы назвали - vk.com, imhonet, youtube это не сайты.
    Это программно аппаратные комплексы.
    Т.е нужны сервера, датацентры размещенные в ключевых точках, нужна система обеспечивающая взаимодействие этих серверов.
    Это продукт труда множества системных администраторов, программистов, инженеров, электриков, маркетологов, и.т.д..
    Ответ написан
    10 комментариев
  • Как побороть свою лень?

    Bandicoot
    @Bandicoot
    Вась-программист
    Я просто сразу начинаю писать код, не думая о результате. Настраиваю себя на рабочий процесс. Потом, когда уже пойдет-поедет и я войду в состояние "потока", начинаю работать с умом. Просматриваю, что уже написал. При необходимости переписываю и решаю, что делать дальше.
    Сначала нужно вообще что-то сделать, затем сделать это правильно и потом сделать как следует.
    Ответ написан
    1 комментарий
  • Сколько времени у Вас ушло с момента начала обучения до начала работы?

    mr_T
    @mr_T
    Web-разработчик
    От многого зависит. Если человек гуманитарий, то тяжко придется)
    Если нет багажа знаний по программированию в принципе (какие-то базовые понятия, паттерны, ООП и т.д.), то изучить-то ты изучишь, но толку с этого будет мало.
    Нужно еще понимать, что с созданием сайтов/web-приложений связано еще очень многое помимо знания непосредственно языка программирования: SQL, конфигурация сервера, права на файлы, сессии, HTTP заголовки... Дальше - больше: ORM, CMS/CMF какая-нибудь (а лучше какие-нибудь).
    В общем, PHP сам по себе - всего лишь язык, и нужно знать инфраструктуру этого языка.
    В итоге, отвечая на твои вопросы:
    1) От недели до бесконечности.
    2) Любым доступным. Вышка укажет (но не научит сама по себе), с чего начать. Книги дают основы. Гугл (в частности документация в его выдаче) дает все остальное. Видеоуроками, кстати, ни разу не пользовался, так как по мне быстрее прочитать. А, ну и практикуйся, без практики обучение - бесполезная трата времени.
    Ответ написан
    Комментировать
  • Правила объявления интерфейсов. "I" или "!I"?

    В нашей команде префикс «I» не используют. Все правильно говорят: это соглашение имеет плюсы и минусы и в целом дело личного вкуса. Есть много очень хороших проектов, где I используют, и где I не используют. Главное, чтобы это не превращалось в религию. Если вас на работе смешивают с дерьмом, подумайте, нужна ли вам такая работа :-)
    Ответ написан
    Комментировать
  • Как понять фрагмент кода вида (function(){}()) на js?

    TekVanDo
    @TekVanDo
    Javascript Developer
    (function(){})() - сразу же вызывает функцию, т.е. код эквивалентен:
    (function(ss,mm){
        console.log(ss,mm);
    })("привет","мир");
    
    function test(ss,mm){
        console.log(ss,mm);
    }
    
    test("привет","мир");
    Ответ написан
    Комментировать
  • Правила объявления интерфейсов. "I" или "!I"?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Никакой "официальной" жесткой конвенции на этот счет нет. Как уже указал RGV, какую конвенцию использовать - личное дело команды / фирмы / техдира.
    Я сам в свое время пришел к Java из Pascal и .NET, и тоже придерживаюсь нотации с I, т.к. это позволяет в коде визуально отличить интерфейс от класса. Просто для примера:
    ...
      IProducer simpleProducer = new Producer();
      IProducer sofisticatedProducer = new SpecialProducer();
    ...
      public void produceSomething(IProducer producer);

    При взгляде на такой код сразу понятно, кто из ху, без всяких дополнительных кликов, наведения курсора и прочих пританцовываний с IDE.
    И хотя это никак явно не помешает креативному балбесу влепить класс там, где нужно использовать интерфейс, это поможет проводящему ревью заметить грабли невооруженным глазом :) С моей точки зрения цена такого удобства в 1 (один !) доп. символ в имени вполне оправдана.
    Ответ написан
    Комментировать