• Научиться парсингу - с чего начать?

    kawabanga
    @kawabanga
    1) Нужно иметь представление, как загружаются и работают сайты. Тут необходимо иметь представление и о том, что полезный контент может появится на сайте и после загрузки через определенное время.

    2) Нужно иметь представление, как работает самый обычный способ получения контента - Curl. Попробуйте скопировать что то, поработать, представить в xml документ и тд. Тут вы определитесь с принципом работы парсера.
    - парсер получает вводую информацию -> с учетом программы и вводных данных, парсер запрашивает определенные данные -> парсер обрабатывает данные для пользователя -> при необходимости, парсер повторяет запрос (инициированный пользователем или рекурсий) -> конец

    3) Далее вы дойдете до механизмов защиты от парсинга:
    - ограничение запросов на 1 ip, на один клиент и тд
    - подгузка информации после загрузки контента
    - дополнительный запрос на подгрузку контента с CSRF и другими способами
    - блокирование ip
    Это откроет вам парсеры типа PhantomJs, Научит пользоваться прокси, мимикрировать под популярные браузеры и тд.
    Так же вы дойдете до многопоточности работы парсера, и подумаете о переходе на C и подобный язык программирования. Общаясь с сайтом уже посредством api.

    А дальше, сталкиваяь с новыми проблемами, будете их решать.
    Ответ написан
    1 комментарий
  • А у вас работает WebDav Яндекс Диска?

    @sergetos
    Ребят, надо выражать недовольство! Предлагаю хоть в в Google Play оставить негативный отзыв!
    Ответ написан
    Комментировать
  • Как сделать VK виджет адаптивным?

    Rimush
    @Rimush
    Мне помогло так:
    <div id="vk_widget"></div>
    <script type="text/javascript" src="//vk.com/js/api/openapi.js?116"></script>
    <script>
        function VK_Widget_Init(){
            document.getElementById('vk_widget').innerHTML = '<div id="vk_groups"></div>';
            VK.Widgets.Group("vk_groups", {mode: 0, width: "auto", height: "241", color1: "2B2B2B", color2: "FFFFFF", color3: "2B2B2B"}, 26292363);
        };
        window.addEventListener('load', VK_Widget_Init, false);
        window.addEventListener('resize', VK_Widget_Init, false);
    </script>
    Ответ написан
    1 комментарий
  • Как редактировать плагин WordPress, чтоб при его обновлении изменения сохранились?

    OtshelnikFm
    @OtshelnikFm Куратор тега WordPress
    Обо мне расскажет yawncato.com
    Не слушайте, они не в теме))

    Можно, но при условии ваших знаний и возможностей плагина. Важно усвоить - ядро (файлы) плагина править нельзя. Но у себя воздействовать - можно.

    Итак:

    Смотря что вы подразумеваете под редактированием:

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

    2. если вы говорите о правке перевода, а у автора плагина строки переведены через __() функции - то воспользуйтесь плагинами интернационализации (переводов), или ВП фильтром gettext

    3. Если php файлы, то поинтересуйтесь у автора - есть ли в том месте, где вы хотите поменять, фильтр. apply_filters в коде плагина, а вы воздействуете на него через add_filters (Есть еще экшены (действия) - но они не позволяют изменять. Это триггеры, когда событие произошло).
    Если фильтра в этом месте нет - попросите автора добавить его. Обычно автор заинтересован в том, что его плагином пользуются и внедряет. Но если вам фильтр нужен только для смены текста - то вам вариант номер два, выше. У плагина может быть 500 строк и на каждую строку текста лепить фильтр - маразм.

    4. Автор плагина может ввести и поддерживать функционал шаблонов. Темплейты - например карточка товара, профиль пользователя, одиночная запись и т.д. Такой функционал имеют многие плагины. bbPress, woocommerce. Суть их такова - что вы переносите файл шаблона (например cart.php) в свою тему или внутри папки wp-uploads (каждый плаг по своему реализует) и плагин вначале проверяет наличие такого файла вне своей папки, а потом, если не нашел там, подключает из своей папки. Так вы можете всю нужную верстку и внешний вид под себя переделать.

    5. Много функций внутри плагина висит на хуках (add_action) - например так:
    add_action('some_action', 'some_function', 20);
    где 20 - приоритет выполнения. Так вы можете всю функцию дерегистрировать через remove_action. Например так:
    remove_action('some_action', 'some_function', 20); (приоритет 20 обязательно такой как и при регистрации)
    и потом всю функцию из плагина копируйте к себе (переименуйте) и вешайте на этот же хук и приоритет. Внутри функции уже делайте как вам надо - изменяйте.
    Но этот способ самый зависимый - т.к. вам нужно следить - вдруг в обновлении автор в этой функции внес изменения или устранил уязвимость. Следите через svn или гит.

    Так что варианты есть. А если их еще в плагине нет - попросите автора плагина добавить такую возможность. Если автор плагина не пойдет на встречу - не юзайте такой плагин. Там нет будущего. Большинство программистов понимает что ситуаций много и помогают и внедряют и подсказывают если есть еще способы влияния на нужный участок.
    Ответ написан
    Комментировать
  • Как называется расширение файла для запуска html на компьютере без браузера?

    @zkrvndm
    Софт для автоматизации
    Как один из вариантов, вы можете заверстать обычный веб-сайт с нужным вам функционалом и запихнуть файлы вашего сайта в Electron. Будет открываться на любом ПК, даже если там нет браузера. Все это без адресной строки, словно это программа, хотя это и будет программа, пусть и написанная чисто на HTML/JavaScript. Сам по себе Electron представляет собой настраиваемый в широких пределах браузер, отображающий то, что в него вложите и именно так, как вам нужно. Плюс, возможность получить доступ к вашему железу, файловой системе и другим вещам, чисто через JavaScript.

    Подробнее тут.
    Ответ написан
    Комментировать
  • Как переместить Git репозиторий на уровень выше с включением новых папок?

    @ijakparov Автор вопроса
    Все работает, отмечу что копирования нужно делать следующим образом:

    создаём новый каталог (добавив точку в начало его названия, чтобы не получить ошибки на следующем шаге):
    $ mkdir .dir3
    перемещаем в этот каталог всё содержимое текущего каталога:
    $ git mv * .dir3
    переименовываем каталог, убирая первый символ — точку — из его имени:
    $ git mv .dir3 dir3
    проверяем, всё ли верно:
    $ git status
    # On branch master
    # Changes to be committed:
    # (use "git reset HEAD ..." to unstage)
    #
    # renamed: dir/index.html -> docroot/dir/index.html
    # renamed: index.html -> docroot/index.html
    #
    делаем git commit
    Ответ написан
    Комментировать
  • Должен ли фронтенд разработчик уметь верстать (css)?

    @mrFeeman
    Кольнуло сердце прочитав вопрос
    Ответ написан
    Комментировать
  • Должен ли фронтенд разработчик уметь верстать (css)?

    @abbrakadabbra
    Фронт-энд разработчик не умеющий верстать, это как сантехник, не умеющий починить кран. CSS - это наверное самое легкое, что есть во фронт-энд, так что учите его, иначе вы не можете претендовать на его звание. Тем более на full-stack.
    Ответ написан
    Комментировать
  • Стоит ли хранить frontend 3 внешне похожих проектов в 1 репозитории и как с этим жить?

    Robur
    @Robur
    Знаю больше чем это необходимо
    положите все общее в отдельный пакет, пилите там все и расшарьте между проектами.
    Пакет можно хоть как организовать - от npm и bower до своего велосипеда
    Ответ написан
    Комментировать
  • Стоит ли хранить frontend 3 внешне похожих проектов в 1 репозитории и как с этим жить?

    Нет, не стоит. Разные проекты - разные репозитории.
    Ответ написан
    Комментировать
  • Стоит ли хранить frontend 3 внешне похожих проектов в 1 репозитории и как с этим жить?

    @askhat
    То что вы сейчас описали, называется монорепозиторий (не путать с модулями гита). Практика не новая, но сейчас обрела популярность, особенно во фронтенде. Подход имеет сторонников и противников, однако мы не будем переходить к священным войнам.

    Это действительно может быть удобно. Например, чтобы выделить четвёртый проект из ваших трёх — содержащий скажем библиотеку компонентов и сторибук. Я нашёл для себя кейс при работе с реакт нейтив и реакт нейтив веб.

    Из инструментов для организации могу посоветовать Lerna, ставший стандартом монореп. Или те же модули гита, если конечно умеете с ними работать.

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

    y0u
    @y0u
    dev
    Уже решаю вообще отдать им деньги которые мне заплатили за работу и удалить с хостинга сайт.


    Что это за бред? Работу сделали? Да. Вам заплатили? Да. Клиенту нужна новая работа? Должен заплатить.
    Не хочет платить? Не делайте работу.
    Каким боком здесь "отдать деньги и удалить сайт с хостинга" я понять не могу. Даже теоретически, как это поможет решить ситуацию?

    Как мне им, объяснить что это делается не бесплатно.

    Словами. И нет, я не издеваюсь. У вас есть определенные условия работы - вы их озвучиваете клиенту. Если его не устраивает - он найдет то, что его устраивает.

    Я вот, вроде, и написал какой-то ответ, но смысла вашего вопроса так и не понял. С такими вопросами, мне кажется, лучше ходить на форум, потому как это специализированный сервис, как по мне. Ваш вопрос похож на вопрос из разряда "просто поговорить".
    Ответ написан
    3 комментария
  • Почему в OS X Mountain Lion изменяется порядок рабочих столов?

    forefinger
    @forefinger
    Все намного проще: в Lion были переделаны рабочие и столы и система научилась их переставлять в зависимости от частоты использования, эта опция включена по-умолчанию, но еще можно отключить: System Preferences -> Mission Contol -> [ ] Automatically rearrange spaces based on most recent use, тогда столы всегда будут в том порядке — как вы их выстроили.
    Ответ написан
    4 комментария
  • Какие название используете для классов в HTML/CSS?

    GoodProject
    @GoodProject
    Верстальщик
    Лови

    Основные
    .wrapper - /*обвертка сайта*/
    .header - /*верхняя часть сайта*/
    .sidebar - /*сайдбар (левая или правая часть сайта)*/
    .content - /*тело сайта (центральная часть)*/
    .footer  - /*нижнаяя часть сайта*/


    Название блока (обвертка)
    .bl 
    .block 
    .box
    .wrap
    .inner
    .container
    .main


    Секции блока
    .head, .header - /*верхняя часть блока например заголовок*/
    .cnt, .content, .body - /*тело блока например текс с картинкой*/
    .footer - /*нижняя часть блока к примеру дата добавления, категория и т.д.*/


    Колонки
    .column, .col - /*колонка*/

    Списки
    .list
    .item


    Позиционные классы
    .top /* элемент сверху */
    .left /* элемент слева float:left */
    .right /* элемент справа float:right */
    .bottom /* элемент внизу */
    .center /* элемент отцвентрирован  margin:0 auto; */
    .fixed - /*фиксированный элемент postion:fixed */


    Переходы
    .next  - /*следующий*/
    .prev  - /*предыдущий*/
    .last  - /*последний*/
    .first - /*первый*/
    .back  - /*назад*/
    .ahead - /*вперед*/


    Чисельные
    .one
    .thwo
    .three
    .four
    .five


    Размеры
    .xs, .tiny   - /*очень маленький*/
    .s,  .small  - /*маленький*/
    .md, .medium - /*средний */
    .lg, .large, .big - /*большой */
    .xl, .extra-large - /*очень большой*/


    Цвета
    .danger  - /*цвет опасности*/
    .default - /*стандартный цвет*/
    .warning, .error - /*цве ошибки*/
    .success - /*цвет успеха (к примеру верно введн код подтвержления)*/
    .primary - /*основной цвет */


    Кнопки
    .button, .btn - /*кнопка*/
    .loading - /*загрузка*/
    .close - /*закрыть*/
    .open  - /*открыть*/
    .touch - /*клик*/
    .edit  - /*редактировать*/
    .more  - /*больше*/
    .remove  - /*удалить*/
    .logout  - /*выход*/
    .select  - /*выбрать*/
    .divider - /*выпадающийся список меню*/
    .caret, .arrow - /*стрелочка*/
    .up - /* Вверх */
    .down - /* Вниз */
    .delete - /* удалить */
    .reply    - /*ответить*/


    Персона
    .profile - /*профиль*/
    .person - /*человек*/
    .ava, .avatar - /*аватарка, картинка*/
    .name - /*имя*/
    .description - /*описание*/
    .address  - /*адресс*/
    .nickname - /*ник*/
    .birthday - /*дата рождения*/
    .sex - /*пол*/
    .author - /* автор */

    Заголовки
    .title - /*заголовок*/
    .short-title - /*скороченный заголовок*/
    .full-title  - /*полный заголовок*/


    Ссылки
    .link - /*ссылка*/

    Текст
    .text, .txt, .paragraph  - /*текст*/
    .info, .information - /*информация*/


    Картинки
    .image, .img - /*картинка*/
    .icon, .ic   - /*иконка*/
    .bg - /*фоновая картинки или цвет*/


    Формы
    .search, .form-search - /*поиск по сайту*/
    .input - /*текстовый элемент*/
    .form  - /*форма*/
    .form-group - /*группа элементов формы*/
    .help-block - /*текст подсказки*/
    .label - /*название элемента формы*/


    Катагории
    .type - /*тип*/
    .cat, .category - /*катигория*/
    .subcat, .subcategory - /*подкатегория*/
    .section    - /*раздел*/
    .subsection - /*подраздел*/


    Видео
    .video
    .play  - /*пуск*/
    .stop  - /*стоп*/
    .pause - /*пауза*/


    Социальные сети
    .social - /* социальные сети */
    .vk   - /*вконтакте*/
    .fb   - /*фейсбук*/
    .twit - /*твиттер*/
    .inst - /*инстаграм */


    Активные классы
    .none     - /*скрытый элемент*/
    .disabled - /*заблокированный*/
    .active, .current   - /*активный */
    .selected - /*выбраный*/
    .visible  - /*видный элемент*/
    .focus    - /*нажатый*/


    Временные классы
    .time  - /*время*/
    .date  - /*дата*/
    .day   - /*день*/
    .month - /*месяц*/
    .year  - /*год*/


    Очистка
    .clear, .clearfix, .clr - /*очистка*/

    Разделители
    .separator, .divide - /*разделитель вертикальный для слов */
    .br, .line - /*разделитель горизонтальный для блоков*/


    Остоньлые названия
    .logo    - /*лого сайта*/
    .new    - /*новинка*/
    .sale   - /*распродажа*/
    .feedback - /*обратная связь*/
    .support - /*помощь */
    .group  - /*группа*/
    .module - /*модуль*/
    .posters - /*пост*/
    .form   - /*форма*/
    .tabs   - /*вкладки*/
    .slider - /*слайдер*/
    .news   - /*новости*/
    .table  - /*таблица*/
    .full   - /*полный*/
    .breadcrumbs - /*Хлебные крошки*/
    .pagination, .pager - /*Нумерация страниц*/
    .navbar, .nav, .menu, .navigation - /*Навигация (меню)*/
    .dropdown - /*выпадающейся меню */
    .comment  - /*комментарий*/
    .subscription - /* Подписка */
    .special - /* особенный элемент */
    .standard - /* стандартный элемент */
    .screens - /* Скрины */
    .rate - /* рейтинг */
    .online - /* онлайн */
    .panel - /* панель */
    .popup - /* попап */
    .version - /* версия */
    .page - /* страница */
    .banners - /* баннер */
    .map - /* Карта */
    .more - /*еще, подробнее*/
    .tags - /* тег */
    .price - /* цена */


    Взято с этого видео.
    Ответ написан
    2 комментария
  • Как развернуть web страницу на весь экран на macbook?

    trofium
    @trofium
    99% математики и 1% волшебства
    Чтобы просматривать страницу в полном режиме в Google Chrome для MacOS, нужно использовать сочетание клавиш ⌘+Shift+F. Приятного использования
    Ответ написан
    1 комментарий
  • Почему так много удаленки на Bitrix?

    alexfilus
    @alexfilus
    Senior backend developer
    Потому что для мелкого и среднего бизнеса Битрикс - отличное решение. Да он платный, но сходу закрывает большую часть потребностей, разработка чего-то подобного с нуля выйдет в разы дороже. Найти партнёра для поддержки - вообще не проблема, а благодаря системе сертификации разработчиков, примерно понятен уровень этих партнёров.
    Если вдруг разругаешься с текущим исполнителем, всегда можно найти другого.
    Так же многие поняв, что услуги агенств стоят слишком дорого для них, нанимают программистов в штат. И опять же, если у вас фирма никак не связана с ИТ, то как вы поймёте что ваш новый (первый) разработчик толковый? А если у человека есть оба платных сертификата по Битриксу, значит большинство типовых задач он выполнит без проблем, и так что у следующего кто будет это поддерживать глаза не взорвутся.
    С технической точки зрения там всё действительно печально. Сейчас они вроде взяли верный курс, но наследие 2003 года всё равно видно невооружённым глазом.
    Только ведь платформу выбирает не программист, а клиент. А клиенту надо чтобы меньше геморроя, всё работало, и было с кого спросить в случае чего (ТП Битрикса, приоритетная для платных клиентов). Вот и всё.
    А сравнивать преимущества Джанго и Вордпресса (условных) далёкому от этого всего клиенту, нафиг не сдалось.
    А вакансии на фреймворках - это скорее всего командная работа над крупными проектами, там к удалёнщикам относятся с недоверием.
    Ответ написан
    Комментировать
  • Как заверстать такие сноски у картинки?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    Самое простое с коленки jsfiddle.net/hak10cvm
    Ответ написан
    1 комментарий
  • Что лучше использовать для анимаций css или js? И почему?

    sfi0zy
    @sfi0zy Куратор тега CSS
    Creative frontend developer
    но которую можно реализовать и с помощью css, и с помощью javascript...
    ваше мнение хотел услышать

    Мне самому нравится делать все на CSS, но... Если анимация должна быть интерактивной и нужно ее останавливать в процессе, откатывать в изначальное положение и.т.д., или некоторые ее части зависят от данных (в широком смысле - это и движение по сложной траектории, и построение графиков и.т.д.) и их проще рассчитать скриптом, чем подбирать коэффициенты в CSS keyframes, то JS будет лучшим выбором. Если это последовательность мало связанных между собой изменений, то опять же скрипты почти всегда будет проще реализовать. Если речь идет о CSS-анимациях с фильтрами (особенно SVG-фильтрами), то можно влететь в очень сильные проблемы с производительностью на слабом железе. И никакие хаки с GPU тут не помогут - все равно будет тормозить. В такой ситуации может иметь смысл не просто писать на JS, но и подключить WebGL и все делать руками на шейдерах.

    В остальных случаях стоит смотреть по ситуации - разные :hover / :focus эффекты обычно легко реализуются на CSS, и, если это так, то зачем что-то придумывать? CSS в последнее время очень даже неплох. Но если, например, в проекте вся анимация делается на JS, то может иметь смысл продолжать делать так же, сохраняя единообразие в коде.
    Ответ написан
    Комментировать
  • Как найти заказ если не работал 1.5 года(javascript dev)?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    У меня недели две уйдет только на получение первого заказа.
    на других биржах тоже самое выйдет, какие еще есть способы ?

    Лопата в руки + объявление в региональную газету "покопаю огороды". Все остальное дольше искать.
    Других способов нет. Есть небольшой шанс, что повезет найти заказ на 2 недели в первый день, если ценой ломануть. Но очень призрачный. Не понимаю зачем Вам это если не нравится IT.

    подозреваю что форумы и группы в вк, но конкретно не знаю что.

    Очень вряд ли, особенно если кричать везде, что IT Вы не любите и через две недели Вы точно сольетесь. Сами прикиньте - кому оно надо?
    Ответ написан
    3 комментария
  • Стоит ли идти в программисты в 30 лет, но не простым, а..?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Вас не от Java тошнит, а от программирования :)
    Ответ написан
    Комментировать