• Сравнение текстов. Сколько байтов используется для сравнения?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    До первого несовпадающего символа.
    Ответ написан
    Комментировать
  • Какие можно почитать книги "по самому низкому уровню" компьюетров?

    athacker
    @athacker
    Была хорошая книжка за авторством Михаила Гука. Называется "Аппаратные средства IBM PC". Последнее издание -- от 2008 года. Несколько устарело, но не кардинально, 80% описанного там используется до сих пор. В цифровом виде вряд ли её удастся найти, а вот на каких-нибудь книжных развалах -- можно.
    Ответ написан
    1 комментарий
  • Блокирует ли сигнал wifi медная фольга соединенная с минусом питания?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    70% пространства текстолита не задействовано
    Протравите на нём антенну.
    Ответ написан
    Комментировать
  • Почему шипят колонки и наушники в виндовс 10?

    Slayer_nn
    @Slayer_nn Куратор тега Windows
    Гугол, памаги!
    Отключить пункт: прослушивать с данного устройства> в микрофонах и микшерах
    5bd2d76953410701806579.jpeg
    Ответ написан
    9 комментариев
  • Как открыть 1000 websocket соединений и следить за ними?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    На любой асинхронной.
    Ответ написан
    Комментировать
  • Как правильно использовать имена страниц?

    RotgarSett
    @RotgarSett
    SEO Эксперт
    Привет!
    Все правильно, нужны названия на транслите передающие суть того что на странице, максимально короткие, но включающие основные ВЧ ключевые слова. Вместо пробелов можно использовать тире. В конце .php лучше убрать.
    Ответ написан
    Комментировать
  • Список сайтов машинного перевода stackoverflow (аналоги http://qaru.site)?

    Taraflex
    @Taraflex Автор вопроса
    Ищу работу. Контакты в профиле.
    Решил проблему написанием юзерскрипта
    https://github.com/Taraflex/Back2stackoverflow
    Ответ написан
    6 комментариев
  • Нужен ли HTTPS для статики?

    RotgarSett
    @RotgarSett
    SEO Эксперт
    Нет, не имеет.

    Гугл хром наоборот откажется от затеи помечать сайты ненадежными (по последним новостям).

    Опять же на это (ненадежность) мало кто из юзеров смотрит, при отсутствии авторизации и покупок.

    А если у вас нет передачи инфы то и для оптимизации это не нужно.
    Ответ написан
    Комментировать
  • Можно ли составлять семантическое ядро по частям, пошагово?

    RotgarSett
    @RotgarSett
    SEO Эксперт
    Конечно можно. Никакой разницы нет.
    Ответ написан
    Комментировать
  • Как исправить проблему с отображения фона лендинга на ios?

    Kiriniy
    @Kiriniy
    Графический и веб-дизайнер
    Очень старая проблема и не только на iOS, а на большинстве браузеров для мобильных устройств в принципе. Суть в том, что использование background-attachment: fixed; сказывается на производительности и он тупо отключён в мобильных устройствах. Может однажды всё будет работать, но пока так. После нескольких лет поиска решения я пришёл к следующим выводам.

    Если эффект крайне необходим, вы можете использовать технологию параллакса (есть бесплатные плагины), когда позиционирование элемента изменяется динамически во время прокрутки, либо использовать отдельный пустой div, где вместо background-attachment: fixed; ставите position: fixed; этому пустому блоку и регулируете всё через z-index.

    Если эффект не так важен и вы согласны пойти на компромисс с мобильными, то можете воспользоваться моим личным вариантом. На компьютерах эффект работает как должен, а на мобильных — фон просто растягивается по высоте блока и двигается вместе со страницей.

    HTML
    Тут ваша разметка шапки, но с разложенными по классам свойствами CSS.
    <header class="main-header bg-cover bg-fixed">...</header>


    CSS
    Из своего основного класса убираете всё, что касается фона, кроме картинки. Естественно, если вам там ещё что-то нужно, вроде высоты, флоатов и тд., сами решите. Теперь добавляете два класса, которые пойдут как фреймворк и могут использоваться многократно. Один растягивает картинку (центрует и без повторений), другой делает тот самый эффект fixed.
    .main-header {background-image: url(img/picjumbo-bg5.jpg);}
    .bg-cover {background-repeat: no-repeat; background-position: center center; background-size: cover; -webkit-background-size: cover;}
    .bg-fixed {background-attachment: fixed;}


    JS
    Добавляете этот код в шаблон или в файл скриптов. Если ваш сайт открывают на мобильных устройствах, скрипт находит все блоки по классу bg-cover и убирает из них класс bg-fixed, если он есть. Фоновая картинка просто будет скролиться со всем остальным.
    var device = navigator.userAgent.toLowerCase();
    var mob = device.match(/android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/);
            if (mob) {
                $(".bg-cover").removeClass("bg-fixed");
            }
    Ответ написан
    8 комментариев
  • Бэкэнд разработчик на ноде, вкатывание?

    @spaceatmoon
    Дело вкуса. Я знаю JS, но совершенно не хочу вкатываться в nodejs. Зачем мне нода, когда и php решает те же проблемы?

    Мне лично нравиться в PHP, что есть на что опереться. Динамика развития стека средне динамичная и движется в правильном направлении, а не придумывает 100500 решений одной и той же проблемы. Есть решение - все его используют.

    Боязнь изучения другого языка в вашем случае не оправдана. Попробуйте Python/Java/PHP. Ознакомитесь где вот вам проще искать документацию, приятность синтаксиса, скорость разработки. Где вы решаете проблему из мира живого, а не из мира "Как эта штука работает".

    Я как-то хотел изучить Haskell, долго блуждал, но в итоге сложилось ощущение, что язык решает проблему для себя, а не для меня. Мне банально было неудобно всё в том языке. Даже родной редактор завершался с критической ошибкой...
    Ответ написан
    7 комментариев
  • Зачем при создании промиса нужно передавать resolve?

    Думаю, понятнее будет, если записать функцию в полном виде.

    const p = new Promise(
      function (resolve) {
        resolve(2)
      }
    );
    
    // vs
    
    const p = new Promise(
      function () {
        resolve(2)
      }
    );

    Вы видите, что в первом случае resolve - это аргумент коллбека. А во втором - вообще непонятно откуда берется. Вот вы написали как альтернативу второй код.
    Ответ написан
  • Можно ли будучи верстальщиком устроиться на работу в компанию по разработке игр?

    Griboks
    @Griboks
    Нет.
    Надо изучать основы геймдева, движка, языка программирования, cоздать несколько самописных игр.
    Ответ написан
    1 комментарий
  • Нужна ли вузовская математика для андроид разработчика?

    Moskus
    @Moskus
    Это ужасно избитый вопрос, который задается тут раз в неделю, минимум.
    "Программисту" не нужна математика, только если он натягивает верстку на Wordpress. В любой другой области вы можете рано или поздно столкнуться с задачей, требующей знаний геометрии, тригонометрии, мат. статистики и т.п. Программист не выбирает, какие задачи он будет решать, он должен быть готов решать любые, а если он не готов, он застрянет junior-ом навсегда.
    Ну и подумайте десять раз - если у вас проблемы с математикой, будут и проблемы с программированием.

    Update:
    На Тостере полно вопросов по математике именно от программистов. Бесконечные "подскажите формулу", "как считать вероятность", "как считать траекторию", даже куда более элементарные, вроде подсчета процентов или что-то по точности типов данных. Если бы авторы владели школьным курсом математики (под владением я понимаю действительное умение ее применять, а не дрессировку на тесты, например), большинства этих вопросов бы не было вообще. А некоторых не было бы, если бы авторы владели институтской математикой.
    Пресловутая идея о том, что все должно быть можно найти поиском за пять минут и использовать, также на практике разбивается о то, что если человек не знает, как называются некоторые вещи, он и запрос правильно написать не сможет, и понять, что именно он нашел. Такие вот "гуглители" вечно задают вопросы "я нашел что-то для решения моей задачи, помогите переделать, я не понимаю". А сторонники этой идеи, которые "наглядно демонстрируют обратное" сами, как правило, из числа владеющих предметной областью, так что их примеры просто некорректны из-за наличия у них этих знаний.
    Ответ написан
    2 комментария
  • Кто знает игры (настольные и сетевые) для обучения программированию?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Шахматы, шашки.

    Детям просто полезно играть в игры, которые их учат просчитывать ходы наперед, причем чем дольше вариантов просчитал, тем лучше развивается умение оперировать большими объемами данных и концентрация.
    Ответ написан
    Комментировать
  • На чем зарабатывает Quora, toster или подобные сайты?

    shmatuan
    @shmatuan
    8 year of Web, 5 years of Vue
    Можно просто выключить адблок и увидеть ответ
    5bd0447166cd2277435374.png
    Ответ написан
    Комментировать
  • Как продвигать сайт с минимальным количеством текста?

    RotgarSett
    @RotgarSett
    SEO Эксперт
    1- Вот тут почитайте (а лучше сначала дочитайте ответ чтобы время не тратить:)
    2- Нереально
    3- Это из разряда SEO-магия блогеров-эльфов (я понимаю о чем он говорит, но это не будет работать на белом проекте какое-то долгое время)

    Вы все правильно понимаете, так SEO не работает. Для SEO этого сайта необходимо делать качественный многостраничник и покупать много качественных ссылок под Google.
    Ответ написан
    2 комментария
  • Как найти общие подстроки в нескольких строках на JavaScript?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    Есть более простое (алгоритмически) решение.
    Общая суть его такова, вместо построения матрицы N1 x N2 делаем последовательный сдвиг меньшей строки относительно большей (1 цикл длинной N1+N2-2). На каждой итерации этого сдвига делаем второй цикл через текущую область пересечения этих строк, подсчитывая совпадения символов и запоминая их, если число совпадений больше предыдущего. Так же время выполнения такого алгоритма будет не O(Nmax*Nmin) а O(Nmax*Nmin -Nmin)

    Если не поленюсь, оформлю с утра в виде кода)

    PS: Заставляете не полениться:) Для поддержки поиска по строкам в количестве больше 2-х алгоритм был несколько модифицирован. Для удобства понимания почти не использовал "особые фишки" JavaScript-а, все выполнено на обычных циклах.
    код с комментариями

    function search_largest_substr(){
    	/*
    	Наибольшая общая строка не может 
    	быть больше наименьшей входной строки.
    	Находим наименьшую и по ходу формируем
    	массив с остальными:
    	*/
    
    		// в эту переменную внесем самую маленькую подстроку
    		let str_min = arguments[0];
    		// сюда сложим все остальные подстроки
    		const list = [];
    		
    		// пробежим в цикле по всем переданным в функцию аргументам
    		for(let n=1; n<arguments.length; n++){
    			// если строка в str_min меньше чем в
    			if(str_min.length<arguments[n].length){
    				// вносим в list текущую строку
    				list.push(arguments[n]);
    				// переходим к следующей итерации цикла
    				continue;
    			}
    
    			// иначе в list строку, лежащую в str_min
    			list.push(str_min);
    			// запоминаем в str_min текущую строку
    			str_min = arguments[n];
    		}
    
    	/*
    	Далее нам надо проверить наличие всех возможных
    	подстрок из самой маленькой строки в других строках.
    	Например если самая маленькая подствока была "abcd"
    	то надо последовательно проверить 
    	"abcd", "abc", "bcd", "ab", "bc", "cd", "a", "b", "c", "d"
    	Но при этом, как только будет найдена подстрока имеющаяся
    	во всех строках надо сразу завершить цикл с проверкой.
    	*/
    		// Данный цикл будет определять текущий размер 
    		// проверяемой подстроки, начиная от наибольшего возможного.
    		// Например для строки "abcd" это будут значения 4, 3, 2, 1
    		for(let l=str_min.length; l>0; l--){
    
    			// В данном цикле определяем позицию подстроки.
    			// Например для строки "abcd" это будут значения:
    			// при l=4 будут 0
    			// при l=3 будут 0, 1
    			// при l=2 будут 0, 1, 2
    			// при l=1 будут 0, 1, 2, 3
    			for(let p=0; p<=str_min.length-l; p++){
    				// берем из наименьшей строки тестируемую подстроку
    				const substr = str_min.slice(p, p+l);
    
    				// если искомый фрагмент есть во всех строках
    				// то isFound будет присвоено true
    				let isFound = true;
    
    				// далее в цикле проверяем все остальные строки 
    				// на наличие искомой подстроки
    				for(let i=0; i<list.length; i++){
    					// если искомая подстрока присутствует в
    					// текущей строке - ничего не делаем
    					if(	list[i].indexOf(substr) >= 0)
    						continue;
    
    					// иначе выставляем isFound=false 
    					// и прерываем текущий цикл по i
    					isFound=false;
    					break;
    				}
    
    				// если isFound == true значит нужная подстрока найдена
    				if( isFound )
    					return substr;
    
    				// иначе продолжаем поиск
    			}
    		}
    
    		// если не было найдено ни единой соврадающей подстроки
    		// возвращаем пустую строку
    		return "";
    }
    
    
    // Исползуем функцию поиска так:
    var str = search_largest_substr("ABCDEFGH", "ABCDEFG", "ABCDEF");
    console.log(str);
    
    
    str = search_largest_substr("123445", "12654", "123768");
    console.log(str);


    Ответ написан