Вопросы Kidman
4 824

На каких языках программирования написан DTF?

Кроме HTML, CSS и JS конечно же.

Какие языки программирования, фреймворки и инструменты использует DTF?

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Kidman", "author_type": "self", "tags": [], "comments": 147, "likes": 51, "favorites": 17, "is_advertisement": false, "subsite_label": "ask", "id": 20657, "is_wide": true, "is_ugc": true, "date": "Sat, 02 Jun 2018 19:45:02 +0300" }
{ "id": 20657, "author_id": 66002, "diff_limit": 1000, "urls": {"diff":"\/comments\/20657\/get","add":"\/comments\/20657\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/20657"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 64961, "possessions": [] }

147 комментариев 147 комм.

Популярные

По порядку

Написать комментарий...
74

на шутках и мемах

Ответить
15

без сексуального подтекста!

Ответить
6

И хлебный мякиш

Ответить
24

Ребята поправят если что, так как я менеджер и не погромист:

— Сервер на PHP и частично Go;
— Фронт-енд на нашем же фреймворке Air;
– iOS — Swift, Android — Kotlin (Или уже, или в процессе);

Но вообще Илья где-то напишет наверное детали когда настроение будет, он у нас главный и CTO

Ответить
12

Всё так. Стэк стандартный — PHP, php-fpm, nginx, postgres, redis, memcached. Раньше ещё были части веб-серверной логики на lua.

Ответить
0

А мемкэшд-то для чего? Вроде же редис за него (хотя возможно вы его для других целей юзаете)

Ответить
0

В редисе у нас данные, которые надо хранить долго (вечно), в мемкеш кидаем все, что не жалко потерять. А так да, разницы нет, редис можно использовать для того же

Ответить
0

"В редисе у нас данные, которые надо хранить долго (вечно)"
Он у вас на диск периодически выгружает данные?

Ответить
0

А подробности о машинке и диске можете сказать? А то мы в редиске персистентность отключали, т.к. в момент записи на диск просадки наблюдались. Но мы, правда, машины используем не особо дорогие.

Ответить
1

Intel Xeon E5-1650v4 3.6 ГГц
128 ГБ DDR4
SSD

Но там надо тюнить, чтобы он каждую минуту не сбрасывал на диск данные (либо тюнить чтобы сбрасывал, но правильно)

Ответить
0

Неплохая машинка-то (:
Мы предпочитаем кучу дешёвых брать и пилить архитектуру на микросервисы. Впрочем, мы в Редиске держим обычно не критичные данные. Единственное, при ребуте машины оно заводится медленно.

Ответить
1

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

Ответить
0

Контейнеры - докер? Чур меня. Мы игрались с Kubernetes, как-то совсем не понравилось. Концептуально вроде красиво, а на практике..ну, такое.

Ну и мы игры делаем, там слегка по-другому всё)

Ответить
0

Lua, серьёзно? я думал, что я один из пяти человек, пишущих сервер на lua

Ответить
0

Ну сервер нет, только модуль для nginx. Не нашли тогда способа проще сделать достаточной гибкости фуллпейдж кэш.

Ответить
0

Lua очень часто в highload используется.

Ответить
0

А Redis в кластере? Сентинель? Сингл ноды?

Ответить
0

Одна нода, но возможно мы как-то расширим, так как теперь каждая страница десятки раз туда ходит

Ответить
5

Кстати, раз уже тему завели, подскажите пожалуйста. Сам редактор статей вы тоже делали, или есть какое то опенсорсное решение ? Очень похож на этот, но ваш круче https://ifmo.su/editor

Ответить
4

Да, мы развиваем форк этого редактора, руководитель ifmo.su — один из наших разработчиков.

Ответить
0

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

Ответить
0

Это он и есть если код открыть видно что загружается codex-editor.js

Ответить
0

Учитывая, что зачем-то Kotlin использовали, то может и база данных экзотическая какая-то?

Ответить
3

Не, обычная SQLite. Была раньше Realm, но дебажить сложно было, может быть сейчас что-то изменилось в лучшую сторону. Для доступа используется библиотека SquiDB

Ответить
0

Блин, я уж было перепугался и подумал, что на серваке SQLite :D

Ответить
1

А чем вы против Kotlin?

Ответить
0

Только Java, только хардкор!

Ответить
1

Так Kotlin это же Java+ (а Scala это Java++)

Ответить
1

Я бы сказал что Scala это brainfuck мира Java, а Kotlin - это правильная Scala.

Ответить
0

Не переношу функциональщину. Если на Kotlin я бы ещё мог перейти, то на Scala точно нет.

Ответить
1

Гугл уже бОльшую часть новых примеров в документации пишет на Kotlin. Он для Андроида столь же экзотический, сколь для iOS - Swift.

Ответить
1

php каноничный 4 версии?

Ответить
1

И он не покажет вам ничего полезного или интересного...

Ответить
0

А Go где юзаете? Почему свой фреймворк для фронта, а не React, например?

Ответить
1

Наш фреймворк более низкоуровневый, если сравнивать с тем же реактом: сам по себе он ничего не умеет, ни с DOM работать, ни что-то еще. Это обертка для модулей, а модули, в свою очередь, уже могут быть написаны с помощью популярного фреймворка. К примеру, местами у нас Vue заюзан.
Go точечно используем. На нем работает аудиоверсия статей (и что-то еще, щас точно не скажу)

Ответить
0

Было бы круто, если бы постили какие-то статьи про техническую часть DTF (да и всех проектов Комитета вообще), как это делал Самат Галимов, когда был CTO Медузы.

Ответить
0

Думаю, в будущем будет

Ответить
0

Я бы хотел создать аналогичный проект (по функциям), но с другой тематикой. Могу ли я взять и пользоваться Вашем фреймворком?

Ответить
2

Ох, мама, становится только интереснее)

Конечно, вы можете, раз он уже валяется в открытом доступе.
НО!
Ядро js-фреймворка вам не поможет: вокруг фреймворка работают сотни модулей, которые и делают всю работу. Их вам никто не даст.
Но если б даже у вас была полная копия нашего фронтенда, то он все равно бесполезен без бэкенд-кода, который вам тоже никто, конечно, не даст.
Я уже молчу про систему сборки, структуру БД и все прочее.
Вообщем, если правда хочется сделать клон, то проще и для бэкенда и для фронтенда взять готовые популярные фреймворки и натянуть их на дизайн наших изданий, как это сделали ребята из Копейска)
https://kopeysk24.ru/

Удачи, присылайте ссылку когда что-нибудь получится :)

Ответить
0

Ядро фреймворка есть. Но модулей нет. Интересует не дизайн проекта, а именно программная часть (модули).

Сколько примерно времени нужно на создание такого проекта с программной частью?

Ответить
0

Можно купить модули у Вас?

Ответить
0

Как установить и запустить фреймворк?

Ответить
0

А можете пофиксить мобильную версию для ios? Когда добавляешь сайт на экран «домой», то не работает логин через социальные сети, куда-то не туда редиректит после подтверждения. До последней обновы всё работало. Просто с домашнего экрана всегда заходил и было удобно :(
На сколько я знаю, то там какая-то проблема с мета тегами. ios 11, iphone 7

Ответить
0

Что за фреймворк Air?

Ответить
0

Наш, самописный

Ответить
0

Этот?

Ответить
0

Похож, ага

Ответить
0

Там же за основу взят другой фреймворк. От сюда https://github.com/socialally/air

Или просто дописали его под свои задачи?

Ответить
0

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

Вопрос о чем-то конкретном по эиру?

Ответить
0

Не, наш вообще с ним не связан – просто названия совпали

Ответить
0

lol, видимо когда-то что-то тестили, а фиддл остался.
Можно проследить эволюцию нашего начиная еще с http://w-o-s.ru/

Ответить
0

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

Ответить
0

Да ничего, нам не жалко)

Ответить
0

Я сам не программист, но думаю, что если код фреймворка в доступе, то им могут пользоваться другие программисты проектов. Верно?

Или одного файла air.js не достаточно? Как я понял в файле air.js ядро фреймворка.

Ответить
0

Ага, голое ядро, вся соль в модулях, которые вокруг него написаны

Ответить
0

Модули в смысле для сайта? Типа module.auth и прочих?

Ответить
0

Т.е. фреймворк можно запустить имея только файл air.js, а модули для него нужно дописывать?

Ответить
0

Как запустить его?

Ответить
0

Я сам не программист

тогда зачем?)

Непросто) Открытой документации нет, техподдержки, считайте, тоже.
Да и бессмысленно. Для 98% случаев быстрее, удобнее и проще использовать одно из двух:
1) если что-то большое и/или нужно долго поддерживать, то Vue/React/Angular на готовом бойлерплейте;
2) Vanilla/jQuery-велосипед из 15 строчек, когда все просто и не нужно годами поддерживать.

Ответить
0

Спасибо) Модули на чем писали? Какие языки использовали?

Ответить
0

JavaScript (:

Ответить
0

Все же как запустить фреймворк? Можете подсказать?)

Ответить
0

Можно щас не буду рассказывать, а то у коммента ограничение по длине)
Когда-нибудь будет пост про техническую часть, там осветим

Ответить
0

Это получается JS фреймворк?

Ответить
0

С большой буквы!)

Ответить
0

Я бы хотел создать аналогичный проект (по функциям), но с другой тематикой. Могу ли я взять и пользоваться Вашем фреймворком?

Ответить
0

Наверное у вас не выйдет эффективно, он ведь не в опен-сорсе :)

Ответить
0

Легкий и быстрый фреймворк у вас)

Ответить
7

HTML, CSS – но это даже не языки программирования.

Ответить
–5

а, вообще говоря, почему?
если мыслить максимально абстрактно
Язык программирования определяет набор лексических, синтаксических и семантических правил, определяющих внешний вид программы и действия, которые выполнит исполнитель (обычно — ЭВМ) под её управлением.

Ну да, они про внешний вид, а не про действия, и что?

Ответить
18

Если абстрактно: то это языки, но не программирования ¯\_(ツ)_/¯

Ответить
–6

Спорим, что ты не прав? По поводу HTML w3c как и whatwg с тобой совсем не согласны. Что такое HTML? Просто разметка? А куда ты денешь все API которые тоже часть HTML стандарта? Выкиньте пожалуйста свои методички 98 года...

Ответить
0

HTML API?
Ну-ка расскажи

Ответить
2

Давай так. Я был грубоват в формулировках и погорячился, и про язык и вообще. Если мы говорим, что HTML это только XML разметка, то да, я не прав и я трепло, нам не о чем разговаривать.

Меня просто всегда тригерит такое отношение к технологии, которая под собой содержит просто тонны человеческого труда (типа HTML - тупо разметочки накидать). Не важно HTML3, 4.2, XHTML, 5 да без разницы, это стандарт, который описывает совокупность веб технологий. Спрашиваешь про API? Открываешь w3c спеку и смотришь начиная от банальных медиа элементов, заканчивая какими-то специфическими вещами типа интерфейса вибрации, геймпада, сторов, да чего угодно. Чекаешь описания на Web IDL, нужно понимать, что банальный document.createElement() манипулирует понятиями из этой спеки (интерфейсы вроде HTMLElement HTMLUnknowElement и т.д.) и там же описан (ну скорее всего в каком нибудь DOM Level 1 или где-то рядом, тут я не уверен).

При этом это не часть ECMAScript спеки и на самом деле может быть абсолютно оторвано от конкретной реализации в виде JS.

Ответить
6

а, вообще говоря, почему?

если мыслить максимально абстрактно

Зачем мыслить максимально абстрактно, если ответ на вопрос "почему?" будет просто "по определению"?

В аббревиатуре HTML последние две буквы означают "markup language", т.е. "язык разметки". В CSS последние SS означает "style sheets", т.е. "таблицы стилей".

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

Ответить
0

Ну вот например "правило 110" на чистом html + css
http://eli.fox-epste.in/rule110-full.html

Вполне себе тьюринг-полное

Ответить
2

Ну, если я правильно понимаю, полным по Тьюрингу может быть любой формальный язык, необязательно для этого быть языком программирования. Правило 110 так-то клеточный автомат -- матмодель.

Ответить
–1

Данный пример построен на присваивании свойств чекнутым/анчекнутым чекбоксам. Никакой логики там нет.

Для простоты приведу пример. Чекбокс это переключатель. Найдите у себя в комнате выключатель. Переключая его, горит 1 лампочка на потолке, переключая второй горит ещё одна. Вот это вы пытаетесь сейчас назвать языком программирования.

Надеюсь доходчиво объяснил.

Ответить
1

Почитай, что такое "правило 110" и потом умничать лезь, ладно?

Потыкал мышкой и полез всем объяснять про выключатели...

Ответить
2

Нарисуй на дверце шкафа нолик, а за ней единичку. Открывай и закрывай дверцу, наслаждаясь правилом 110. А потом рассказывай всем, что твой шкаф - это язык программирования.

Ответить
4

Окей, я продолжу твою дегенератскую аналогию: если ты откроешь одну из трёх дверей шкафа, остальные две откроются/закроются в зависимости от статуса друга друга?
А вот в представленном примере именно это и происходит.

Просто ты слишком тупой, чтобы последовать совету и прочитать уже наконец, что такое "правило 110".

Ответить
2

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

И так, дверцы связанные по нужной схеме сделают ли шкаф языком программирования или нет? Я думаю что нет. Можно ли сделать яп из шкафа таким образом? Думаю да. Так вот я хочу сказать и с CSS тоже самое. То что на нем можно реализовать правило 110 ещё не делает его ЯП.

Ответить
0

Я, наверное, не понял сути этого автомата, но перепробовав различные комбинации у меня менялись только те элементы, на которые я тыкал.

Ответить
0

Там надо таб/пробел жать.
Вот "кликабельная" реализация:
https://jsfiddle.net/Camilo/eQyBa/

Ответить
0

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

Ответить
0

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

Ответить
0

Я знавал веб дизайнера, который в графу "какие языки знаю" велючил node.js...

Ответить
2

в css есть calc() и черт знает, что ещё, ещё чуть-чуть и будет ЯП.

Ответить

4

Прошу пардону, с чего бы "тянет"? JS -- это и есть язык программирования, без всяких оговорок.

И ООП тут ни при чём. В функциональных языках, положим, без него прекрасно обходятся, но они от этого не перестают быть ЯП :)

Ответить

1

Там уже нормальный ООП, язык развивается понемногу.

Ответить
0

Нормальный там ООП. Правда можно себе ногу отстрелить, но прототипы о******

Ответить
0

Языком программирования считается все что лучше или равно машине Тьюринга.
Так то для этого хватит операций суммы, сравнений, условия и goto.
Мне иногда кажется что связка css и html как то вместе сможет это вытянут, если совсем заморочиться.

Ответить
0

Простите, считается кем? Можно ссылку на авторитетный источник такого определения?

Ответить
1

Господи, по всем комментам прошёлся, ссылку даже минуснул.
Неужели настолько убого тебе живётся? Помочь может чем?

Ответить
0

насколько знаю то css3 частично может заменить джс но все же для динамики он по прежнему нужен чтоб ивенты обрабатывать

Ответить
0

Потому что это языки разметки.

Ответить
0

Ну что ж вы так грубо...

Ответить
0

это прозвучит странно, но у меня уже второй день вылетает хром при попытке зайти на сайт. Сейчас вот с третьей попытки получилось зайти и при загрузки сайта выскакивали дефолтные формы http base authentication.

Ответить
5

Чего вы ржете, мне вот тоже, (тащемта) например, любопытно.

Понятное дело, что у ребят свой движок, но на чём его писали?

Ответить
0

VisualBasic, очевидно же.

Ответить
0

Ну, серверсайд на VB.NET -- не такой уж невероятный вариант, должен сказать.

Ответить
0

Ну так-то на чем угодно можно написать, какая разница? Вряд ли они дадут исходники посмотреть.

Ответить
1

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

Сугубо в целях повышения образованности.

Ответить
1

Php
А, ниже ответили уже.

Ответить
4

хочешь свой дтф сделать? с блекджеком и пхп?

Ответить
0

хочешь свой дтф сделать? с блекджеком и пхп?

Скорее с блекджеком и воплями :D

Ответить
0

Нет конечно, просто интересно.

Ответить
4

HTML, CSS не языки программирования

Ответить
3

[Здесь могла бы быть моя очередная тупая шутка, но так как я совсем не разбираюсь в программировании, ее не будет]

Ответить
3

Я думаю им было достаточно лишь языка программирования html.

Ответить
0

Frontend, backend.... Node.js? А приложение на Android, надеюсь, на Kotlin писали?

Ответить
11

И штанины, надеюсь, подворачиваете!

Ответить
0

Судя по тому, что сайт древний, это не го или нжс, а при мейнтенсе падает весь, то это не пхп, а значит какое-нибудь руби или java, а приложение на Java, в декомпиле котлина я не нашёл

Ответить
0

а при мейнтенсе падает весь, то это не пхп

А почему нет, кстати?

или java,

Вряд-ли, JSESSIONID отсутствует

Ответить
0

А почему нет, кстати?

А без понятия, я на пхп никогда серьёзно не писал и не знаю как там сейчас дела обстоят

Вряд-ли, JSESSIONID отсутствует

sid может-быть разным

Ответить
0

при мейнтенсе падает весь

PHP умеет по-разному, мы кладём страницу целиком при любой неожиданной ошибке.

Ответить
0

"а при мейнтенсе падает весь, то это не пхп"
Как раз наоборот.

Ответить
0

Ну да, логично было бы предположить, что раз сайт имеет роутер, значит падать он может весь, да и Денис уже подтвердил

Ответить
0

Го это. И немного ПХП

Ответить
0

Ещё и приложение на котлине или в процессе, во всём оказался не прав, хотя я древнюю версию приложения декомпилировал

Ответить
0

Интересно, а какой штаб разработчиков?

Ответить
4

У нас 10 разработчиков в команде, на все сайты — vc.ru, TJournal и DTF

Ответить
1

Секретный конечно.

Ответить
0

Штаб? Вот такой, наверное

Ответить
0

И сразу вопрос: Laravel или Yii2 или Symfony или Zend?

Ответить
3

Свой велосипед, но в том числе и с компонентами Symfony.

Ответить

0

Меня больше это интересует, выбивает сразу после отправки комментария, это такая мотивация?

Ответить
3

Это рандом с вероятностью ниже процента, мы такие пасхалки любим (:

Ответить

1

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

Ответить

0

Не важно на каком языке програмирования, главное, что на русском.
<3

Ответить
0

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

Ответить
0

HTML и CSS не ЯП

Ответить
0

На !@#$%^ и костылях.

Ответить
0

Отчет Wappalyzer

Ответить
0

Очень полезная инфа, просто безумно.
4 "сервиса" для трекинга пользователей, шаблончики и нгинкс, за которым вапалайзер ничего не видит. И чем это помогло? Даже FB Pixel не видит. Открыв дев тулзы больше узнать можно.

Ответить
0

Самую полную инфо выдает сервис builtwith. Скорее всего, таких аналогов больше нет

Ответить
0

К сожалению ни один из таких сервисов не покажет, что "под капотом", если нету явных ярлыков, которые оставляет язык/фреймворк :). Хотя и бывают полезны, наверное.

Ответить
0

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fjog" } } }, { "id": 10, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "clmf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-250597-0", "render_to": "inpage_VI-250597-0-1134314964", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=clmf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudo", "p2": "ftjf" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fzvc" } } } ]
Узнавайте новости о мостах
Санкт-Петербурга первыми
Подписаться на push-уведомления