Задать вопрос
  • В браузере работает, а в кроне нет, почему?

    @aol-nnov
    wget - это не браузер. он не умеет в ifame-ы
    Ответ написан
    2 комментария
  • Как в foreach сделать счетчик?

    Melkij
    @Melkij
    DBA для вашего PostgreSQL?
    foreach (array_slice($divan['divan'], 0, 3, true) as $key => $value) {


    Это если остальные элементы этой коллекции нужны в других местах и только тут первые три. Если не нужны - то зачем вы их вообще получаете?
    Ответ написан
    1 комментарий
  • Как установить Symphony 3.0 на Apache?

    @seriogja
    Вы уж извините, но ваш вопрос похож на: 'Что делать, если я не хочу читать дукументацию, и чтобы все работало?'. Чтобы не быть голословным, распишу по пунктам:
    1. Следуя стандартным инструкциям... Что дальше - непонятно.
      Что это за стандартные инструкции интересно?
    2. Тут предлагается запустить сервер PHP, а мне нужно на апаче.
      В Symphony для разработки можно использовать "встроенный" сервер, котрый запускается командой php bin/console server:run, вы бы заметили это, если бы читали документацию по Symphony
    3. И если это проект, то где у него index.php, где хотя бы htaccess?
      Это вы тоже в доках могли бы найти, если бы смотрели
    4. В инструкциях (и стандартной, и неофициальных) есть куча методов установки, почти все инструкции устарели...
      Такого просто не может быть! Открываете сайт Symphony, выбираете версию, смотрите документацию. Я кстати только что проверил один из вариантов - все работает!
    5. Symphony может работать как CMS, то есть как Joomla например
      Это вы точно не туда попали. Можно конечно кучу пакетов поставить... Но результат, как мне кажется, нельзя сравнивать с работой CMS.
    6. Поясните пожалуйста по шагам, что дальше делать, чтобы запустить на Апаче проект, а дальше я сам уже буду разбираться.
      Первым делом тщательно поизучайте доки, там много полезного. Разбираетесь, что нужно, чтобы все поехало на Apache (ссылку выше я вам уже дал), узнаете где же находится index.php, прописываете с конфиг апача, прописываете хосты (если нужно конечно), запускаете и радуетесь


    Замечу, что на мой взгляд, "изучать фреймворки" сразу с Symphony несколько тяжеловато. Если вы начинающий, то, возможно, вам стоило бы начать изучение с чего-то более простого.
    Ответ написан
    Комментировать
  • VestaCP или ISPConfig, что выбрать?

    georgich
    @georgich
    Приветствую!
    VestaCP demo и ISPConfig demo. Решать вам. С наступающим!
    Ответ написан
    Комментировать
  • Почему не стоит вызывать методы в конструкторе?

    @smozhaykin
    На самом деле вызывать не стоит только виртуальные методы. Т.к. если класс наследник его переопределит, то возникнет ситуация, когда метод работает до вызова конструктора класса-наследника. И если в этом методе используются какие-нибудь поля класса-наследника, они могут быть еще непроинициализированы.

    А так как в Java

    In Java, all non-static methods are by default "virtual functions." Only methods marked with the keyword final, which cannot be overridden, along with private methods, which are not inherited, are non-virtual.


    то в конструкторе не стоит вызывать любые публичные не final методы.

    Ниже C# код (т.к. работаю в основном с этим языком), иллюстрирующий это.

    void Main()
    {
    	new B("name");
    }
    
    class A
    {
        public A()
    	{
    	     Method();
    	}
    	
    	protected virtual void Method()
    	{
    	}
    }
    
    class B : A
    {
        private string Property { get; set; }
    	
    	public B(string value)
    	{
    	    Property = value;
    	}
    	
        protected override void Method()
    	{
    	    Console.WriteLine(Property.Length);
    	}
    }


    Результат: Object reference not set to an instance of an object.

    StackTrace
    at UserQuery.B.Method()
    at UserQuery.A..ctor()
    at UserQuery.B..ctor(String value)
    at UserQuery.Main()
    Ответ написан
    Комментировать
  • Как получить последние х строк из mysql?

    valerium
    @valerium
    Изобретая велосипед
    SELECT * FROM `имя_таблицы` ORDER BY `Дата` DESC LIMIT 10;


    И если нужно именно последние x в хронологическом порядке, то сортировать по полю с датой — это единственное правильное решение, потому что никто не гарантирует, что id привязан к хронологии. Например, данные о погоде могли быть добавлены «задним числом».

    UPD. Действительно, допустил ошибку в ответе, поправил.
    Ответ написан
    Комментировать
  • Действие после события?

    Deonisius
    @Deonisius
    Родился в 11110110111 году, 11000 января.
    $(".paragraph-text").bind('input', function(event){
       console.log( $(this).val() );
    });

    P.S. Вместо метда .bind( ), я бы предпочел метод .on( )
    Ответ написан
    1 комментарий
  • Действие после события?

    Стандартного события нет. Но есть например такой вариант: css-tricks. Если это нужно один раз - можно просто необходимый постобработчик обернуть в timeout(onPostPaste, 0);
    И вместо bind теперь рекомендуется on использовать
    Ответ написан
    Комментировать
  • Яндекс директ, может ли быть такое?

    @k1ng
    IT-предприниматель
    На позицию в поиске влияют поведенчиские факторы. От качественного целевого трафика из Директа они улучшаются, поэтому и растет позиция.
    Ответ написан
    2 комментария
  • Почему так странно заполняется поле автоинкремент?

    idelg
    @idelg
    Разработчик
    Не нужно менять автоинкремент. Так задумано разработчиками MySQL.

    Сдвиг в 10 значений добавили чтобы поддерживать master-master архитектуру и избегать коллизий.
    Ответ написан
    Комментировать
  • Можно ли подделать Content-length?

    nazarpc
    @nazarpc
    Open Source enthusiast
    Если Content-Length больше фактического тела, тогда веб-сервер будет ожидать получения данных и в итоге завалится по таймауту так и не дождавшись всех данных (либо часть следующего запроса попадет в конец тела текущего), если же наоборот - то конец текущего запроса попадет в начало следующего и следующий запрос завалится.
    То есть если вы получили корректный запрос - то Content-Length это фактическое количество данных.
    Если вы реализовываете HTTP сервер самостоятельно - вам нужно всё это проверять, если же пользуетесь готовым - то по факту да, можно доверять.
    Ответ написан
    Комментировать
  • На чем писать клиент-сервер с 10 000+ онлайном и 36 000 000 запросов в час?

    @abcyu
    Разработчик
    "На чем" - не правильный вопрос.
    Ничего страшного для используемых вами технологий в такой нагрузке нет.
    PHP и Facebook использует. MySQL и mail.ru использует.

    Нужно правильно архитектуру спланировать.
    Очень здорово снижает нагрузку правильное использование кэширования в оперативной памяти
    habrahabr.ru/search/?q=Tarantool
    Ответ написан
    Комментировать
  • Можно ли использовать letsencrypt в коммерческих проектах?

    Scorpi
    @Scorpi
    Commercial users are welcome to use Let's Encrypt for commercial and for-profit purposes. This is an intended use; we don't have any desire to restrict the use of our services to non-profit or non-commercial purposes.
    https://community.letsencrypt.org/t/are-they-limit...
    Ответ написан
    Комментировать
  • Какие есть методики отладки веб-приложения?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Правильное решение в данном случае: поднять на новом сервере какой нибудь vagrant / docker с окружением максимально идентичным исходному.
    В остальные решения от лукавого, полноценный дебаг приложения со сложной логикой это гарантированные человеко-месяцы.
    Ответ написан
    Комментировать
  • Какой алгоритм работы у консоли, когда в ней пишешь название приложения и команду?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Консоль ничего не знает. В простейшем случае (если набрана одна команда без пайпов и перенаправления потоков):
    Когда вы набираете строку и нажимаете Enter сначала из строки отделяется первая подстрока до пробела (или конца строки, если пробелов нет). Остаток строки будет передан выполняемой команде как аргументы.
    Затем проверяется, не является ли эта подстрока внутренней командой шелла. Если да, то выполняется эта команда.
    Если это не внутренняя команда и не указан полный путь к файлу, то идёт поиск файла с таким именем в каталогах, перечисленных в строке окружения PATH. Если файл найден и у пользователя есть права на его запуск, то он запускается.
    Если указан полный путь (например, /usr/bin/perl), то поиск не производится, идёт только проверка на права запуска.

    PS. Если речь о досовском/виндовом cmd, то он ищет файлы добавляя расширения .bat, .cmd, .exe, если расширение не указано явно. Кроме того, в нём поиск начинается с текущего каталога, а затем уже по переменной PATH.
    Ответ написан
    4 комментария
  • Как усовершенствовать код и избавиться от множества глобальных переменных?

    vawsan
    @vawsan
    Frontend Developer
    Вот более правильный вариант, вам правда уже быстрее меня ответили.
    <script type="text/javascript">
    		(function () {
    			function makeArray() {
    				var arr1 = getArray("#ul1"),
    					arr2 = getArray("#ul2");
    
    				function getArray(selector) {
    					if (selector)
    						return Array.prototype.slice.apply(document.querySelector(selector).getElementsByTagName('li'))
    							.map(function (curr) {
    								return curr.innerHTML
    							})
    					return [];
    				}
    
    				for (var i = 0; len = arr2.length, i < len; i++) {
    					if (arr1.indexOf(arr2[i]) < 0)
    						arr1.push(arr2[i])
    				}
    				return arr1.join(", ");
    			};
    
    			document.getElementById('makeNewArray').onclick = function () {
    				var div = document.createElement('div');
    				div.innerHTML = makeArray();
    				body.appendChild(div);
    			};
    		})();
    	</script>

    Но это легко понимаемый вариант с получением списков по отдельности.

    Если же вам все равно сколько списков и не важно, откуда каждый элемент по отдельности, есть мегакороткий вариант:
    <script type="text/javascript">
    		(function () {
    			function makeArray() {
    				return Array.prototype.slice.apply(document.querySelectorAll("li"))
    					.map(function (curr) {
    						return curr.innerHTML
    					})
    					.filter(function (item, pos, self) {
    						return self.indexOf(item) == pos;
    					})
    					.join(", ");
    			};
    
    			document.getElementById('makeNewArray').onclick = function () {
    				var div = document.createElement('div');
    				div.innerHTML = makeArray();
    				body.appendChild(div);
    			};
    		})();
    	</script>
    Ответ написан
    Комментировать
  • Отфильтровать шум в данных?

    XNoNAME
    @XNoNAME
    Эникейщик
    Из координат и времени можно получить скорость и направление движения ТС
    Фильтрация будет заключаться в том, что бы убрать точки в которых скорость выше нормальной и/или направление кратковременно меняется на недопустимый угол.
    Ответ написан
    Комментировать
  • Влияет ли аудиокарта на качество звука и музыки?

    @moozooh
    Chief Technical Grammar Nazi
    Влияет на ряд объективных параметров:
    • наводки и посторонние призвуки (например, свист при движениях мыши);
    • фоновый шум и динамический диапазон;
    • мощность выхода на наушники (проявляется в низкой громкости и хрипах на высокой амплитуде);
    • гармонические и интермодуляционные искажения (звучат по-разному, текстом описать сложно);
    • взаимопроникновение каналов;
    • искажения от погрешностей некачественной передискретизации (например, старые карты Creative аппаратно пересчитывали все звуки в 48 КГц перед выводом, причём не по самому качественному алгоритму);
    • принципиальную возможность воспроизведения записей высокого разрешения (например, 24/44.1, 24/96, 24/192) без принудительной передискретизации.


    Также разные ЦАПы — не единственные, но основные компоненты саундкарты, влияющие на качество вывода — незначительно отличаются друг от друга характером звучания; например, чёткостью атаки. Между качественными ЦАПами, используемыми в профессиональном и полупрофессиональном оборудовании (CS4398, AK4620, AD1853 и т. п.), разница сугубо гомеопатическая и заметная только на тракте очень высокого класса, но всякие бюджетные встроенные реалтеки от них, как правило, можно и на нормальных наушниках отличить. Но, опять же, не в любых условиях, не на любом материале, и только с пониманием, в чём заключается разница.

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

    30% — осознание слушателем разницы (понимание, что нужно услышать);
    25% — возможность физически услышать разницу (наличие требуемых физиологических возможностей и аспектов музыкального слуха);
    20% — наличие разницы в обработке материала (эквалайзеры, другая постобработка, различия в громкости) и акустическом оформлении помещения (если речь о прослушивании через акустическую систему) или фоновом шуме (если речь о наушниках);
    15% — наличие разницы в звуковом материале (артефакты и искажения, которые есть в одной записи и отсутствуют в другой);
    9,9% — разница в качестве АС/наушников (и усилителя, если речь о наушниках или пассивных АС);
    0,099% — разница в качестве ЦАПа/операционных усилителей звуковой карты;
    0,001% — разница в качестве других компонентов системы.

    Я рекомендую подходить к решению вопроса качества звука последовательно, и именно в таком порядке; к тому же, так обычно выходит дешевле всего. Кидаться покупать дорогую саундкарту и АС и слушать на них МП3 с убогим мастерингом и выкрученным на эквалайзере басом, сидя в прямоугольной комнате с кучей плоских поверхностей и окном, выходящим на проезжую часть — что выбрасывать деньги на ветер.
    Ответ написан
    1 комментарий
  • Как создать сайт вроде спрашивай.ру?

    HoHsi
    @HoHsi
    Не стоит сразу же замахиваться на большой сервис, начните постепенно. Каждый начинающий программист первым своим проектом грезит сделать убийцу ВК / FB. Скажу сразу, это с первого раза не выйдет. Как не выйдет и с 10. Но! Это не повод, что-бы не развиваться и не учиться. Итак если вы все же решили потрать пару месяцев на обучение, или вы уверены, что пойдет меньше, начните так:

    Шаг первый
    Html. Это язык разметки, на котором написано 100% веба, то есть это необходимая вещь де-факто. Он позволит вам разместить текст на странице, оформить ее.
    В базовой аналогии, это ворд для интернета (кышь Ъ праграммысты, это довольно хорошая аналогия для новичка, продолжим...).

    Это займет +- 1 неделю

    Вам помогут:
    * htmlbook

    Шаг второй
    CSS. Это язык стилизации. Перекрасить текст, увеличить отступы, сделать тень у блоков это к нему. Все крависости в интернете делаются на нем. 99% веба использует для стилизации именно его, так что опять же это стандарт.

    Это займет +- 2 недели

    Вам помогут:
    * Sorax

    Шаг третий
    PHP. Это уже язык программирования (плохой, больной, уродливый, но язык. Да начнется холивар). Он поможет вам понять как это работает, как устроена кухня. Поковыряйте его, обучитесь начальной логике и алгоритмам. Он поможет вам выводить HTML более осмыслено, т.е. вы сможете уже составлять динамические страницы, которые могут подстраиваться под пользователя, добавлять посты, вопросы, картинки и т.д.

    Это займет +- 2 месяца

    Вам помогут:
    * php.net

    Шаг четвертый
    Wordpress. Это почти готовый сайт. В нем уже есть все, что вам нужно. Вы можете писать посты, делать обсуждения и т.д. На его основе вы сможете вылепить что угодно, даже тот самый вопросник. Он написан на PHP, так что он будет дополнять ваши знания. Как только научитись ставить WP, попробуйте написать для него шаблон, потом плагин, и еще и еще. Это закрепит и разовьет ваши предыдущие знания.

    Это займет +- 2 месяца

    Вам помогут:
    * wp-kama

    Шаг пятый
    MySQL. И в частности язык запросов SQL. Это база данных. Они нужны, что-бы хранить информацию вашего сайта в удобном виде. Т.е. по своей сути это таблица экселя, в ней есть поля и их значения. Это так же необходимые знания, так как ваши вопросы из вопросника будух храниться именно там.

    Это займет +- 1 месяц

    Переломный момент
    Наступает переломный, это значит что по истечению полу-года вы должны сесть и подумать, нравится ли вам, что вы делали. Это важно. Так как дальше не будет проще, не будет легче. Начнутся такие вещи как Асинхронность, Брокеры сообщений, ООП, MVC, и другие страшные слова, которые ровно как и предыдущие шаги по-началу будут вас пугать, но потом станут лучшими друзьями.

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

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

    Шаг пятый
    JavaScript. Ура, вы решили, что вы хотите быть программистом, похвально. Этот язык позволит вам сделать ваши страницы более динамичными. Добавить на них анимацию, логику. Этот язык использует 90% веба, так что сомневаться в его значимости нет смысла. Он позволит вам добавить жизнь на ваш сайт.

    Это займет +- 2 месяц

    Вам помогут:
    * Sorax
    * learn.javascript.ru

    Шаг шестой
    Jquery. Это продолжение JS. Это фреймворк (набор готовых функций). Он облегчит вашу работу с JS и позволит делать ее более качественно и быстро.

    Это займет +- 1 месяц

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

    Если вам нравится PHP, он удобен, тогда продолжите изучать именно его, но не стоит бездумно и слепо защищать язык. Если вы чувствуете, что он вас смущает, не противьтесь и просто попробуйте что-то другое. А поверьте этого много.

    Итак развилка:
    Мне нравится PHP, мама я женюсь!
    Ок, тогда вам стоит взглянуть на фреймворки Laravel, Yii 2, вполне хороши. Они довольно мощные и позволят много чего на себе сделать.

    PHP какой-то странный, но мне понравился JavaScript
    Шикарно, значит есть смысл попробовать NodeJS. Это версия языка (Да, я знаю, что нода это среда а не язык, дайте уже объяснить человеку) расчитаная на составление страниц, как PHP. Это очень мощный инструмент, поняв который, вы вряд ли захотите уйти с него. Он поможет вам писать не только сайты, но и приложения для телефонов / планшетов, программы для ПК, возможно игры (но не стоит. По крайней мере с текущим развитием инструментов), демоны, сервисы, консольные приложения и т.д.

    Они оба мне не нравятся
    Что ж, тогда вам могут приглянуться Python, Ruby - эти два языка более близки к PHP, чем JS.
    Или вы за год стали адептом скорости, и не видите большей радости в жизни чем оптимизация и быстрото рендеренга. Ну тогда вам точно понравятся GO и Rust.
    А может быть Dart к тому временем станет мейн стримом, это уже покажет время.

    Что-бы вы не выбрали, это будет хорошим решением.

    Шаг восьмой
    Как говорится, я просто оставлю это здесь. Сейчас нет смысла объяснять, что это, зачем оно и с чем его едет, вы просто взглянете через год на этот список и все поймете.

    CSS:
    * Sass / Less / Stylus

    JS:
    * CoffeeScript / LiveScript / TypeScript
    * Angular
    * Promise

    NodeJS:
    * NPM
    * Express

    Ускорение работы:
    * Gulp
    * Jade
    * Yo

    Остальное:
    * MongoDB
    * MariaDB
    * RabbitMQ

    Шаг 7 и 8 займут у вас всю жизнь
    Это не в коем случае не значит, что язык будет тем же, просто Язык / Технолигия будут заменяться на другую, а смысл будет тем же. Будут новые технологии, будут новые подходы, новые языки. Будет интересно и весело.
    Ответ написан
    15 комментариев