Задать вопрос
  • Как удалить одинаковые записи?

    @Akina
    Сетевой и системный админ, SQL-программист.
    нужно удалить записи с одинаковыми date и user_id

    DELETE t1.*
    FROM tablename t1
    JOIN tablename t2 USING (date, user_id)
    WHERE t1.id > t2.id


    а лучше не создавать их

    CREATE UNIQUE INDEX indexname ON tablename (date, user_id)

    Выполнить строго после удаления дубликатов - иначе упадёт по ошибке.
    Ответ написан
    Комментировать
  • Как разместить сайт не по корневой ссылке?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега Веб-разработка
    Запрос обрабатывает веб-сервер, он и принимает решение что делать дальше — передать «в React» или «в WordPress». React, разумеется, запросы на /blog перехватывать не должен.
    Ответ написан
    2 комментария
  • Как разместить сайт не по корневой ссылке?

    SagePtr
    @SagePtr
    Еда - это святое
    Тупо создаётся папка forum и туда кладётся содержимое форума
    Ответ написан
    Комментировать
  • Что происходит на рынке труда в айти?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Если честно, то на рынке ИТ все сейчас очень сложно. Причин несколько, а анализ легко растянется на полноценную статью, даже была мысль написать наХабр и Линкедин по этой теме. Постараюсь коротко пройтись по основным трендам.
    1. Доступность удаленной работы, соответственно регионы и Индия с низкими зарплатами ворвались на рынок.
    2. Миф о высокой зарплате. Когда то так было, сейчас курьер Яндекс-еды зарабатывает больше, чем средний программист. Про продажников даже не хочу говорить, знаю людей, легко имеющих и по миллиону в месяц.
    3. Мифы о легком старте. На самом деле точка входа в профессию достаточно высока, так как мало освоить навыки кодера, нужно еще иметь логическое мышление, знать математику, анализ, разбираться в предмете (физика для игр, экономика для 1С, производство для автоматизации и многое другое). И, возвращаясь к пунктам 1 и 2, за хорошую зарплату придется после пары месяцев курсов конкурировать с индусами, которые имеют по 10 лет опыта, с регионами, где есть специалисты с 20-летним опытом, готовые работать за зарплату джуна в Москве.
    4. Отдельно выделю сильно усложнившиеся программы, сложность разработки, несмотря на множество облегчающих жизнь инструментов, за последние годы выросла достаточно сильно.

    Как человек, проведший не один десяток собеседований (и изучивший пару сотен резюме) скажу, что рынок действительно перегружен людьми, которые ничего не понимают в ИТ, но окончили курсы и гонются за легкими деньгами. Найти среди этой кучи резюме хорошего специалиста становится сложно. Отдельная проблема - болтуны, у которых опять же хорошо подвешен язык, но нет понимания реальной работы ИТ. Когда к этому приложена низкая квалификация руководства, происходит беда - сотрудников много, зарплаты высокие, а реально всю работу тащит один старый сотрудник, который 90% времени занят мыслями что его не ценят и пора валить.

    Надеюсь, ответил достаточно понятно)
    Ответ написан
    4 комментария
  • Какой самый оптимальный стек основных серверных технологий для интернет-магазина?

    AlexNest
    @AlexNest
    Работаю с Python/Django
    Первое что в голову пришло:
    1. opencart
    2. wordpress + woocommerce
    Ответ написан
    Комментировать
  • В css указан один фон, а по факту передаётся другой, в чём причина?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Скорее всего дело в разных заголовках "Accept" при запросе ресурса напрямую, и когда он подгружается через <link href, так как эти заголовки отличаются от тех которые браузер посылает если вы просто напрямую открываете ссылку в адресной строке.

    Посмотрите в браузере во вкладке "Network" какие заголовки посылает браузер при загрузке main.css.php

    spoiler
    615dbfe7422e8208650300.pngтык


    Решение этой проблемы - определять поддержку формата в скрипте который отображает страницу и исходя из результатов встраивать стили передавая GET-параметры
    main.css.php?avif=1&jpg=1&webp=0
    И внутри main.css.php строить логику от GET-параметров

    Либо никакой логики в main.css.php не делать, а добавить inline-стили в страницу где перезаписать уже background
    <link href="main.css.php"> // <- тут всегда jpg
    <style>
    body {
        background: перезаписываем стили исходя из поддерживаемого формата
    }
    </style>
    Ответ написан
    4 комментария
  • В 40 лет планирую поменять сферу деятельности с 1С на Android? Сколько на старте смогу зарабатывать?

    @nApoBo3
    Без просадки, особенно в 40 лет с детьми мало реально, возможно, но имхо это из области фантастики.
    Ответ написан
    3 комментария
  • Как получить часть строки после последнего «/»?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    const getLastPartOfURL = url =>
        decodeURIComponent(url.slice(url.lastIndexOf('/') + 1));
    Ответ написан
    Комментировать
  • Как получить часть строки после последнего «/»?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Number(document.location.pathname.split("/").pop())
    на этой странице даст число (не строку) 1055184
    Ответ написан
    Комментировать
  • Как получить часть строки после последнего «/»?

    0xD34F
    @0xD34F Куратор тега JavaScript
    str.split('/').pop()
    // или
    str.match(/[^\/]+$/)[0]
    // или
    str.replace(/.*\//, '')
    // или
    str.slice(str.lastIndexOf('/') + 1)
    // или
    Array.from(str).reduce((acc, n) => n === '/' ? '' : acc + n, '')
    // или
    [...str].filter((n, i, a) => !a.includes('/', i)).join('')
    Ответ написан
    1 комментарий
  • Как отправить данные разных типов (json и formdata) методом POST?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Все проще, чем вы думаете:
    formData.append('canvas_field', blob, 'canvas.png'); 
    formData.append('name', 'Tom'); 
    formData.append('age', '30');

    На сервере смотрите содержимое суперглобальных переменных $_POST и $_FILES.
    Ответ написан
    3 комментария
  • Долго ли искать свой первый оффер ux/ui- дизайнеру, который только-только закончил курсы?

    artzolin
    @artzolin
    php, WordPress разработка сайтов artzolin.ru
    За любого специалиста говорит его портфолио и кейсы, за дизайнера особенно. Сделайте 6-8 качественных работ, разместите их на behance. Вы должны делать как минимум выше среднего по рынку, чтобы иметь шанс отклика от hr, а дальше уже ваша продажа — нужно показать как вы вникаете в задачу клиента и как обосновываете свои решения

    Предлагаю вам сразу рассмотреть такую задачу: возьмите эту страницу с вопросом, на которой вы находитесь и страницу с личным кабинетом на Тостере. Попробуйте сделать редизайн — переверстайте, добавьте полезную информацию, интерактивные элементы. Подумайте как сделать, чтобы больше пользователей пришли писать вопросы, отвечать ответы и больше времени проводить на сайте. В качестве референсов используйте Stack Overflow, Reddit, Яндекс.Кью и известные вам соц.сети

    Тут много чего можно сделать и вот вам несколько идей:

    • Добавить статистику просмотра профиля, статистику просмотра ответов, добавить кучу графиков с просмотрами своих ответов по тегам, чтобы видеть прогресс
    • Переверстать иконки ачивок, добавить разнообразия, добавить временные за неделю/месяц/год, добавить уникальные и премиальные для тех, кто делает большой вклад в развитие комьюнити
    • Добавить функцию (и самостоятельные страницы) "ответить позже" и "сохраненные ответы"
    • Чуть переверстать форму ответа (отступы от blockquote и некоторых других элементов выглядят плохо)
    • Добавить ajax поиск в своих ответах — сейчас найти свой ответ в позапрошлом месяце вообще боль


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

    vabka
    @vabka Куратор тега Веб-разработка
    Зависит ли это от стека технологий?

    зависит буквально от всего.
    Может быть есть какие нибудь специальные тесты для проверки этого?

    Да, для этого существует нагрузочное тестирование.
    Провести его можно при помощи яндекс танка/jmeter/gatling
    Ответ написан
    2 комментария
  • Как обработать все аргументы функции?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    func_get_args возвращает копии переданных аргументов, так же, как и func_get_arg.
    Само собой, изменения в копии никак не отразятся на самих аргументах.
    Ответ написан
    1 комментарий
  • Как узнать, существует ли email?

    vabka
    @vabka Куратор тега Веб-разработка
    Отправить на эту почту письмо с ссылкой для продолжения регистрации.

    Больше никак
    Ответ написан
    Комментировать
  • Как правильно установить setTimeout() в расширении для хрома?

    zkrvndm
    @zkrvndm
    Архитектор решений
    Пример:
    Развернуть код
    function waitElements(selector, regexp, where) {
    	
    	return new Promise(function(returnResult) {
    		
    		var search_result = false;
    		
    		var local_reactive_function = function() {
    			
    			var wait_elements = searchElements(selector, regexp, where);
    			
    			if (wait_elements.length > 0) {
    				
    				if (search_result === false) {
    					
    					search_result = true;
    					observer.disconnect(); 
    					
    					returnResult(wait_elements);
    					
    				}
    				
    			}
    			
    		}
    		
    		var observer = new MutationObserver(local_reactive_function);
    		
    		observer.observe(document.body, {
    			characterData: true,
    			attributes: true,
    			childList: true,
    			subtree: true
    		});
    		
    		local_reactive_function();
    		
    	});
    	
    }
    
    function searchElements(selector, regexp, where) {
    
    	var search_elements = [];
    	
    	if (typeof where !== 'undefined') {
    		
    		var all_elements = where.querySelectorAll(selector);
    		
    	}
    	
    	else {
    		
    		var all_elements = document.querySelectorAll(selector);
    		
    	}
    	
    	for (var n = 0; n < all_elements.length; n++) {
    		
    		if (typeof regexp == 'object') {
    			
    			if (typeof regexp.test == 'function') {
    				
    				if (regexp.test(all_elements[n].innerText.trim())) {
    					
    					search_elements.push(all_elements[n]);
    					
    				}
    				
    			}
    			
    			
    		}
    		
    		else {
    			
    			search_elements.push(all_elements[n]);
    			
    		}
    	}
    	
    	return search_elements;
    
    }

    Функция waitElements возвращает промис, который завершается при появлении указанных элементов.

    Например, чтобы дождаться появления на странице элемента с классом .class достаточно выполнить в консоли:
    elements = await waitElements('.class');
    
    console.log('Элементы успешно найдены:');
    console.dir(elements);
    Ответ написан
    Комментировать
  • Как скрыть определенные элементы, с повторяющимися id, в определенном блоке при использовании change(), если этих блоков может быть много?

    pLavrenov
    @pLavrenov
    Разработка сайтов
    Основы говорят что что на странице не должно быть одинаковых ID!

    Ошибка в том что получая вот так $("#main_cat").val() всегда берется первый найденый.

    Если все элементы сгруппированы то получать их надо внутри своего родителя.
    Ответ написан
  • Как сделать, чтобы язык в html файле выбирался в зависимости от языка системы пользователя?

    MrDecoy
    @MrDecoy Куратор тега JavaScript
    Верставший фронтендер
    https://developer.mozilla.org/en-US/docs/Web/API/N...
    https://qna.habr.com/q/338809

    Правила сервиса:

    2. Перед тем как задать вопрос пользователь Сервиса обязан:

    2.2 Убедиться в том, что в сети Интернет, и на страницах Сервиса в частности, отсутствуют ответы на данный вопрос. Специально для этого талантливые IT-специалисты создали и развивают поисковые системы Яндекс и Google.
    Ответ написан
    Комментировать
  • Проблема с ajax?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    data: 'action=editAccount&settings=' + array_setting,

    В этой строке вы складываете строку с объектом. По стандарту JS при этом объект преобразуется в строку '[object Object]'.
    Ответ написан
    Комментировать
  • 0 Call to a member function get() on null как испаравить?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Не записывать null в $params.
    Ваш К.О.
    Ответ написан
    Комментировать