Как запускать скрипты R со своего сервака

Чтобы перейти в RStudio нужно перейти по адресу http://46.101.128.25:8787 или что то типо того

Устанавливаем пакеты, как обычно, но некоторые из них установятся во временную папку
#The downloaded source packages are in
# ‘/tmp/RtmpSPFiKl/downloaded_packages’

Чтобы установить их оттуда нужно ввести команду
install.packages(list.files(«/tmp/RtmpfbgkOs/downloaded_pack‌ages/»,full.names=TR‌UE),repos=NULL)

Подробнее тут https://stackoverflow.com/questions/26269673/r-install-packages-to-install-downloaded-packages

есть еще вот классный мануал https://www.digitalocean.com/community/tutorials/how-to-set-up-r-on-ubuntu-14-04

 

 

 

 

Регулярки и ругулярки в JS

Нам нужно отследить с помощью регулярки ссылку https://tver.petrovich.ru/catalog/18410/164371/

Как это сделать обычной регуляркой

/catalog/.+/\d+
/catalog/.+/[0-9]+
/catalog/[0-9]+/[0-9]+
/catalog/\d+/\d+

. точка означает любой символ

+ означает один или более

Т.е. запись .+ ищет любые символы до следующего элемента регулярки.

\d любая цифра

\d+ находит числа – последовательности из 1 или более цифр:

[0-9] последовательность цифр, вообще тоже самое что и \d Вообще так указываются последовательности, например [A-Za-z0-9] ищет все буквы в любом регистре и цифры, а вот так наоборот не ищет [^A-Za-z0-9]

Как это сделать регуляркой в JS

Слеши "/" говорят JavaScript о том, что это регулярное выражение. Они играют здесь ту же роль, что и кавычки для обозначения строк. Т.е. ругулярку нужно писать в /регулярка/ И из это возникает необходимость экранировать /, вот так \/

Вот так ищется нужный url:

if (window.location.href.search(/catalog\/[0-9]+\/[0-9]+/) > 1){…..}

Подробнее

https://learn.javascript.ru/regular-expressions-javascript

http://www.regextester.com/

 

 

 

Про события натив JS

Событие – это сигнал от браузера о том, что что-то произошло.

Важно:

Событию можно назначить обработчик, то есть функцию, которая сработает, как только событие произошло.

Именно благодаря обработчикам JavaScript-код может реагировать на действия посетителя.

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

Есть три способа назначения обработчиков событий:

— Атрибут HTML: onclick=»…».
— Свойство: elem.onclick = function.
— Специальные методы:
1) Современные: elem.addEventListener( событие, handler[, phase]), удаление через removeEventListener.
2) Для старых IE8-: elem.attachEvent( on+событие, handler ), удаление через detachEvent.

Справка про обработчик addEventListner

Еще одна полезная статья

Про куки, Web Storage

Источник

Web Storage — это более новое изобретение, чем куки. У web storage два интерфейса: localStorage and sessionStorage.

Их отличия:

The main difference is that the latter persists for the duration of the browser session (i.e. is flushed when the browser instance is shut down), and the former persists indefinitely.

Куки и GTM

Доставать куки можно с помощью 1st Party Cookie Variable.

Установить куки можно с помощью Custom JavaScript Variable named {{JS – setCookie}}:

function() {
 return function(name, value, ms, path, domain) {
 if (!name || !value) {
 return;
 }
 var d;
 var cpath = path ? '; path=' + path : '';
 var cdomain = domain ? '; domain=' + domain : '';
 var expires = '';
 if (ms) {
 d = new Date();
 d.setTime(d.getTime() + ms);
 expires = '; expires=' + d.toUTCString();
 }
 document.cookie = name + "=" + value + expires + cpath + cdomain;
 }
}

Чтобы использовать переменную в скрипте:

{{JS - setCookie}}('session', 'true', 1800000, '/', 'simoahava.com');

Что такое WebHook и для чего он нужен

WebHook — нужен, чтобы общаться между приложениями и передавать данные.
Вебхук может быть исходящим (принимать данные) и входящим(отправлять данные).

Например, в AMO CRM есть поле в котором нужно указывать WebHook. Туда вписывается определенный url другого сервиса.

Подробнее:

https://dev.1c-bitrix.ru/community/blogs/marketplace_apps24/easy-integration-with-bitrix24-or-magic-vibhuti.php
http://macte.pro/b24toga-webhooks/
http://macte.pro/b24toga/
https://www.youtube.com/watch?v=BcobxHl5wdc

О dataLayer

Итак, начнем с главного – dataLayer это название переменной JavaScript, которая служит для передачи данных, которые Google Tag Manager не может получить сам, но они необходимы ему для работы, такая переменная называется уровнем данных.

С одной стороны, это массив (об этом говорят квадратные скобки и сам метод push()). С другой стороны – это объект (почему нет?). Ведь у него есть свойства и методы.

dataLayer.push(); Конструкция push() предназначена для добавления значения в массив, не более.

Саммари по MP

  1. Сохранять источник/канал/ключевое слово/объяву чтобы источник не перезатирался
  2. Используем ni=1, чтобы не плодить новый сеанс
  3. Нужно хранить ip, и User-Agent пользователя и передавать их в теле запроса.

    В самой справке об этом тоже немного упоминается:  https://developers.google.com/analytics/devguides/collection/protocol/v1/reference?hl=ru#post
    Вот параметры, которые позволяют переопределить ip и user-agent:  https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters?hl=ru#uip и https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters?hl=ru#ua

  4. Использовать POST запрос

Советы по GTM

Использование DOM элементов (document ready)

Если вы в своём коде собираетесь обращаться к элементам которые находятся на страницы (кнопки, формы, поля и пр.), то свой код нужно оборачивать в такую конструкцию:

$(document).on('ready', function(){
    тут_вставьте_ваш_код
});

Это даст гарантию того, что ваш код не сработает раньше, чем загрузятся элементы DOM (т.е. страница).

 

Сохранность кода (замыкание)

При интеграции кода GTM в глобавльную обрасть видимости попадают все ваши объявленные переменные, что может повлечь перезатирания переменных, которые используются на сайте. Для экранирования вашего кода стоит использывать замыкания. (https://developer.mozilla.org/ru/docs/Web/JavaScript/Closures)

(function(){
    тут_вставьте_ваш_код
})();

Узнать текущую и предшествующиую страницуwindow.location + document.referer

  • Чтобы узнать с какой страницы пришел пользователь стоит использовать глобальную переменную document.referrer
  • Для того, чтобы узнать на какой странице сейчас находится пользователь стоит использовать переменную window.location (http://javascript.ru/window-location):

<tbody> </tbody>

Свойство Описание Пример
hash часть URL, которая идет после символа решетки ‘#’, включая символ ‘#’ #test
host хост и порт www.google.com:80
href весь URL http://www.google.com:80/search?q=javascript#test
hostname хост (без порта) www.google.com
pathname  строка пути (относительно хоста) /search
port номер порта 80
protocol протокол http:
search часть адреса после символа ?, включая символ ? ?q=javascript

Пример:

dataLayer.push({'event': 'GAevent', 'eventCategory': 'категория', 'eventAction': 'действие', 'eventLabel': window.location.href});

Проверять есть ли jQuery на странице

Иногда разработчики сайтов не используют jQuery, поэтому стоит проверить загружен ли он на странице.
Для этого зайдите в консоль и в строке ввода вставьте jQuery. Если вывелось Uncaught ReferenceError: jQuery is not defined(…), то значит jQuery не подключен на странице и стоит его подключить или попросить разработчиков.

Если же jQuery подключен, но ваш код срабатывает раньше чем он загружается, то можно использовать функцию window.onload:

window.onload = function() {
    тут_вставьте_ваш_код
}