• Как найти работу или стажировку начинающему python разработчику?

    BojackHorseman
    @BojackHorseman Куратор тега Карьера
    ...в творческом отпуске...
    ибо всякий просящий получает, и ищущий находит, и стучащему отворят.
    Евангелие от Матфея 7:8
    Ответ написан
  • Как быть в моём случае (фриланс)?

    @cema93
    WordPress разработчик
    1) Если вы оказываете платные услуги - надо открывать юридическое лицо, вести бухгалтерию и платить налоги.
    2) Если сейчас ваш друг не является ЮЛ, то его могут наказать, потому что он это делает не официально и не платит налог.

    И боюсь, что налоговая не поверит в "подарки" от не связанных с вами людьми.
    Ответ написан
  • Как быть в моём случае (фриланс)?

    BojackHorseman
    @BojackHorseman
    ...в творческом отпуске...
    налоги можно начинать платить и до наступления совершеннолетия
    Ответ написан
  • Зачем нужен frontend, если всю начинку сайта или проекта можно реализовать с помощью backend'a?

    profesor08
    @profesor08
    Релизуй реактивность на php. Или давай чего попроще, отобрази в браузере красную кнопку на php без использования HTML и CSS, а изюминкой добавь чтоб при нажатии пользователю выскакивал алерт "Hello world", не используя JavaScript.
    Ответ написан
  • Каков план личностного развития JavaScript программиста с нуля?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    1. Выучить русский язык. Узнать, что такое "личностное развитие" и чем оно отличается от профессионального.
    Ответ написан
  • Насколько адекватно требовать домашнего развития от разработчиков?

    @majstar_Zubr
    C++, C#, gamedev
    Это вполне адекватно, потому что в таком случае работодатель преследует лишь одну цель - помочь вам как можно скорее найти другое место работы.
    Ответ написан
  • Кто сталкивался с биткоин вымогателями бд?

    sim3x
    @sim3x
    Вас взломали и у вас нет квалификации в расследовании взлома?
    Делаем образ выключенной системы снаружи и бекапим его себе (зачем? Возможно найдете того кто сможет расследовать)
    Берем список софта и убираем из него все, что не требуется для работы сервиса
    - пхпмайадмин, фтп, как раз примеры такого софта

    Сносим ОС (считайте что скомпроментирован рут и все тулзы ОС)
    И ставим по хорошему мануалу с изрядной долей паранои (чаще всего одна статья не поможет - делайте свои заметки при установке)
    Максимально изолируем все от всего
    Наружу смотрит только вебсервер
    ссш по портпиннингу (оно делается в полпинка, как на стороне клиента так и на стороне сервера)
    Ваши цмс и скрипты должны обновляться регулярно
    Следите за логами - часто взлом происходит в течении нескольких дней и простой греп по логам покажет, кого вам нужно забанить по ип и где поставить капчу

    То что у вас есть бекапы делает вашу ситуацию в разы лучше
    Ответ написан
  • Появляется карта сайта на 1-2 сек. при загрузке сайта, как исправить?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Это называется FOUC – Flash Of Unstyled Content. Происходит он потому что у вас невалидный и кривой HTML, менюшка ваша выводится в HEAD (где ее быть не может по определению, только в BODY), и до CSS. Отсюда и проблема – сначала браузер выплевывает HTML-разметку, а потом спохватывается, что вот еще стили есть, берет их и перерисовывает страницу.

    И да, счетчики эти всякие и прочие говноскрипты смело ставьте в футер, а еще лучше асинхронно и с задержкой. Раньше их выполнять не стоит.
    Ответ написан
  • Стоит ли переписывать полностью метод в данной ситуации?

    ThunderCat
    @ThunderCat Куратор тега PHP
    {PHP, MySql, HTML, JS, CSS} developer
    Вариантов 3:
    1) Добавить параметр: плюсы - просто, можно добавить гибкий параметр, например $sortField. минусы - в следующий раз понадобится менять еще и направление сортировки - прийдется снова костылить.
    2) Отдельный метод - уже лучше, но все равно рано или поздно функционал надо будет менять и с параметрами что -то прийдется делать.
    2.1) Передавать в качестве аргумента некий массив/объект настроек, плюсы - гибко, минусы - каждый раз надо учитывать/знать структуру объекта настроек, что не очень удобно.
    3) Использовать внутренние паблик свойства объекта для настройки работы логики объекта, плюсы - не надо менять инерфейс вызова, достаточно сделать
    $users->sortBy = 'order'; $users->sortDir = 'desc'; $users->getUsers();
    . Минусы - сходу не вижу, у кого есть идеи - отпишитесь в комментах.
    Ответ написан
  • Как получить заголовки всех статей на Wordpress?

    irishmann
    @irishmann
    Научись пользоваться дебаггером
    Написать скрипт, который
    1. Подключается к БД
    2. Запрашивает заголовки статей и их идентификаторы
    3. Создает ссылки на статьи
    4. Создает файл и записывает все туда.

    Ничего сложного нет.
    Ответ написан
  • Как люди себе представляют натяжку лендингов на вордпресс?

    Самый простой способ - поставить плагин типо ACF и с его помощью сделать редактируемым из админки каждый блок.
    Ответ написан
  • Какой язык востребованнее для фриланса?

    mrusklon
    @mrusklon
    если долго мучится - что нибудь получится
    было буквально вчера.,
    английский :)
    Ответ написан
  • Как перехватить клик по кнопке в браузере "Назад"?

    Eridani
    @Eridani
    Мимо проходил
    1) Повесьте показ модального под хэш, тогда при нажатии на кнопку "назад", по идее, должен удалиться только хэш из адреса.
    2) Переверстайте нормально, чтобы окно было похоже на окно, была нормальная кнопка закрытия модали
    Ответ написан
  • Как фильтровать элемент isotop созданный через ajax?

    @heartdevil
    плыву как воздушный шарик
    Привет.

    Проверьте вот этот параметр.

    filter: selector,

    у вас в selector точно данные попадают?

    Вообще говоря, попробуйте вот этот код

    $('.works').isotope({
                    filter: "тут сразу задайте класс для фильтра изотопа",
                });


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

    Немного доработал ваш код.

    Попробуйте так

    $(document).ready(function() {
            var $container = $('#movieBox');
    		var cache = $container.html();
    		
            $container.isotope({
                itemSelector: '.work'
            });
    
            $('#filter a').click(function() {
      
                $('#filter a').removeClass('current');
                $(this).addClass('current');
                var selector = $(this).attr('data-filter');
    
                $.ajax({
                    cache: false,
                    url: 'test2.php?filter=' + selector,
                    success: function(data) {
    					
    					// HERE YOU CAN DO SOMETHING WITH YOUR DATA
    					
    					
    					
    					//Collecting every new isotope in cache
    					cache += data;
    
    					//Making our container clean by destroying the isotope functionality
    					$container.isotope('destroy');
    
    					//Rewriting our new collection of isotopes to our container
    					$container.html(cache);
    
    					//Set new instance of the isotope functionaly in our container using last clicked filter
    					$container.isotope({
    						itemSelector: '.work',
    						filter: selector
    					});					
    				}
                    });
    
    			$container.isotope({
                    filter: selector,
                    animationOptions: {
                        duration: 1000,
                        easing: 'easeOutQuart',
                        queue: false
                    }
                });
                return false;
            });
    
        });
    </script>
    Ответ написан
  • Дайте оценку верстке?

    @Flying
    Визуально выглядит вполне пристойно и очевидных косяков почти нет, но если копнуть глубже - возникают вопросы.

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

    Из наиболее заметного - заглавная картинка с автомобилем в PNG которая занимает почти 600кб и из-за этого грузится весьма и весьма неспешно (и заметно для пользователя). В целом это по большей части косяк дизайнера, не приложившего усилий к тому чтобы выбрать правильную графику (автомобиль снят явно на улице и отражения в стёклах дают существенный вклад в визуальный шум и, как следствие, в размер картинки, нужно было выбирать фотографию сделанную в специальном помещении). Кроме того дизайнер, очевидно, не слышал про требования к такси в Нью-Йорке и рисовал как взбредёт в голову, но оставим это на его совести. Сочетание фоновой картинки, на которой весь траффик едет в обратном направлении и делает автомобиль такси нарушающим правила дорожного движения - тоже на совести дизайнера.

    Однако и в этом случае и, тем более, в случае фоновых изображений ниже по странице вы допускаете ошибки с выбором форматов файлов, способами их вставки в страницу и оптимизацией. К примеру из картинки с автомобилем можно выжать почти 100кб просто за счёт использования оптимизаторов. Гораздо грустнее ситуация с фоновыми картинками ниже по тексту. Во-первых вы сохраняете фотографии в PNG, получая на выходе файлы по мегабайту, хотя они же в JPEG занимали бы в 5-10 раз быстрее. Во-вторых вы, скорее всего, сохранили фоновые картинки уже обработанными (затемнёнными). Я не видел макета, но предположу что там эти картинки стоят в их оригинальном виде и на них наложены какие-нибудь фильтры. На первый взгляд кажется что проблемы нет, но на практике (в случае вёрстки для реального сайта) вы вынуждаете человека который будет поддерживать сайт либо готовить картинки с такой же пост-обработкой либо мириться с тем что стиль сайта меняется. Правильное решение здесь - грузить картинки как они есть и реализовывать фильтры на CSS, тем более что здесь это делается элементарно через multi background или псевдо-класс с полупрозрачным фоном. Очевидно также что для таких тёмных картинок вполне можно использовать JPEG с меньшим качеством и тем самым существенно сэкономить пользователям трафик.

    Ещё одна проблема связанная с фоновыми картинками - вы не подкладываете под них близкий по цвету solid color. Попробуйте включить в dev.tools "Network throttling", отключить кэш и перегрузить свою страницу - думаю вы поймёте что я имею в виду - белые блоки с белым текстом стоят довольно продолжительное время, постепенно заполняясь довольно тёмными картинками. Если бы background-color под ними был бы чёрным - проблемы бы не было.

    Далее - логотип. Обычно логотипы разрабатываются отдельно и даже если он выглядит просто набранным шрифтом - это вовсе не значит что это не так. Логотип Google, Microsoft или Яндекс - тоже просто название, но, надеюсь вы не сверстаете их, написав надпись текстом? В общем логотип = картинка, лучше в векторе. Сейчас даже одно съезжание слогана на пиксель влево относительно названия уже рушит всю конструкцию логотипа.

    Обратите внимание на то как вы работаете с формами. Все поля в форме являются <input type="text">, хотя часть названий явно намекает на date / time селекторы, а "Choose Vehicle" - на список выбора.

    Хотелось бы отметить работу с иконками - их всё-таки лучше хранить в SVG и либо требовать с дизайнера либо подбирать на том же Icon Finder. При этом оформление (те пресловутые жёлтые кружки) лучше делать через CSS т.к. это позволяет вам существенно гибче работать с размерами элементов.

    Есть всякие недочёты касающиеся responsive, к примеру, внимание как отображается блок "Our Tariffs" в размере чуть более 600px, в частности название тарифа и описание.

    Пожалуйста обратите внимание на то что вы используете два разных меню для desktop и mobile представления. В целом в вашем случае меню довольно простое и можно было бы обойтись одним. Конечно две копии используют часто, но у этого решения есть свои недостатки (в частности отсутствие синхронизации состояния), так что вы должны осознанно принимать решение по таким вопросам. Кроме того inline обработчики onclick там явно могут быть заменены на элементарный
    document.querySelectorAll('.menu a, .menu-hover a').addEventListener()
    что явно сделает код более простым и поддерживаемым.

    Ещё один важный момент который зачастую опускают при вёрстке - поведение макета с реальными данными. То что дизайнер в макете понапихал везде lorem ipsum и тексты примерно одинакового размера - отнюдь не означает что на реальном сайте эти условия будут соблюдаться. Отсутствие навыка проверять поведение макета в изменяющихся условиях ведёт к множеству ошибок которые не видны в условиях синтетических данных. К примеру попробуйте в блоке "We Do Best Than You Wish" (претензии по поводу английского языка оставим в стороне) в любом из элементов банально увеличить количество текста в 2-3 раза. В Chrome это приводит только к излому сетки, в Firefox - ещё и к изменению размера иконки. При этом я предполагаю что Firefox ведёт себя правильно т.к. пропорции элементов изменились, а ограничения размеров на картинки у вас не заданы.

    В целом похоже что макет верстался и проверялся только в Chrome. К примеру посмотрите как ведёт себя картинка с рукой и телефоном в Firefox при изменении размеров. Опять же Firefox вполне корректен т.к. вы не обрезали картинку корректно, предпочитая выгрузить "как есть" и подгонять положение в CSS, но забыв при этом про overflow: hidden для контейнера.

    Теперь перейдём к CSS:

    Обратите внимание на то как вы подключаете внешний шрифт:
    family=Lato:400,700,700i,900,900i&amp;subset=latin-ext
    . Возникают два вопроса:
    1. Зачем вам subset=latin-ext на сайте где есть только базовая латиница?
    2. Как вы выбирали начертания? У вас подключаются 5 начертаний (400, 700, 900 + два italic'а), при этом grep по CSS даёт значения font-weight 200, 300, 400, 500, 600, 800 и ни одного italic. Вам не кажется что эти множества почти не пересекаются?


    Кроме того вы постоянно забываете про fallback шрифты что на медленном интернете и при отсутствии инструкций для font loading приводит к невидимому контенту страницы на период загрузки.

    Отсутсвие ограничения по ширине для .wrapper приведёт к недопустимо широкому сайту на больших мониторах с высоким разрешением. Можете уменьшить масштаб страницы до 50% и полюбоваться результатом.

    В стилях повсеместно используются достаточно общие названия классов в global namespace. К примеру кто бы мог подумать что стилизует селектор .text? Вы уверены что нигде больше на сайте подобный селектор не встретится? Даже при дальнейшем развитии сайта? Другими словами именование селекторов - важная часть работы, вы можете использовать любую методологию (тот же БЭМ или что-то ещё) или разработать свою, но ваш код не должен ломаться при добавлении ещё пары блоков, особенно если это будет делать другой человек.

    Списки элементов, к примеру тот же .product-cont лучше делать именно списками, а не распихивать элементы по столбцам вручную, благо flexbox и column layout здесь всё прекрасно сделают за вас, зато имея одноранговый список вы обеспечите себе куда большую свободу действий.

    Использование id в качестве CSS селектора - плохая практика, но у вас таких мест немало, 11 штук.

    Уверен что мог бы найти ещё что-то, но надеюсь для затравки хватит, и так много получилось... :)
    Ответ написан