Ya.islands how toAlex ShubinYa.Islands How-To.
Download slides to get all beatiful animations work (and screencast ;)).
Чтобы полностью погрузиться, рекомендую скачать презентацию. Заработает анимация и скринкаст в конце.
Три вызова реляционным СУБД и новый PostgreSQL - #PostgreSQLRussia семинар по...Nikolay SamokhvalovРеляционной модели скоро исполнится полвека – это огромный срок для любой технологической индустрии, не говоря уже об ИТ. За прошедшие годы этой модели было брошено немало вызовов, оказавших немалое влияние на развитие реляционных СУБД. В докладе обсуждаются три главных вызова реляционной модели, включая и NoSQL. На основе многолетнего опыта использования PostgreSQL для создания социальных сетей, объединяющих многомиллионные аудитории, наглядно демонстрируется как эта СУБД реагировала на возникающие вызовы. Речь также пойдет о «трех китах» PostgreSQL, которые не дают этой системе превратиться в монстра и позволяют обогащаться функционалом, необходимым для создания современных высоконагруженных проектов. Особое внимание в докладе уделено новым типам данных, JSON и JSONB — их возможностям, способам индексирования, а также разбору имеющихся недостатков.
Наколеночная автоматизация SEO процессов - Крыжановский АлександрЛеонид ГроховскийСодержание:
- Сбор доноров с различных площадок
- Автоматический и полуавтоматический парсинг контента
- Сравниваем индексы поисковых систем
- Создаем макрос
- Анализ анкор-листа
Более подробную информацию Вы можете получить на полном курсе SEO: http://www.topexpert.pro/seo-kurs.html
SQL-боттлнеки: поиск и устранение узких мест при масштабировании, Михаил Нови...Mail.ru GroupВы начинаете новый проект. Устанавливаете веб-фреймворк, ORM-фреймворк, пишете модели, делаете запросы к БД. Всё идет хорошо. Потом к вам приходит 100 000 пользователей — и проект падает под нагрузкой. Ваши действия?
Такая ситуация была у нас полгода назад. Я расскажу, как мы нашли из нее выход, покажу наши подходы к поиску узких мест, сервисы, которые в этом помогают. И поясню, почему ванильный ORM — это зло.
Как построить DOMRoman DvornovШаблонизаторы упрощают процесс формирования HTML и только. Но браузеру нужен совсем не HTML, а DOM. Необходимо преобразование. И вот тут начинается самое интересное: танцы с бубном и стрельба по ногам. В докладе пойдёт речь об общепринятом подходе получения DOM фрагмента, постпроцессинге и альтернативах. Сравним, измерим и узнаем как это делать быстрее всего.
Компонентный подход: скучно, неинтересно, бесперспективноRoman DvornovИспользование компонентного подхода это тяжеловесно, медленно, не гибко. Так ли это?
Доклад с фестиваля 404, Самара, 13 октября 2013
Видео: https://www.youtube.com/watch?v=QpZy0WW0Ig4
Ссылочные профили популярных в Яндексе сайтовСергей Кокшаров"Результаты исследования ссылочных профилей сайтов, популярных в Яндексе по коммерческим запросам" - Презентация к докладу на CyberMarketing 2012
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)OnticoВ эпоху распределённых архитектур и микросервисов как никогда актуальными становятся вопросы — как эффективно сериализовать и передать данные. Большинство решает данный вопрос просто — используют стандартный, универсальный и всем понятный формат JSON. Другие же, ориентируясь на производительность, ищут в интернете бенчмарки и выбирают protobuf или msgpack.
Мы протестировали разные реализации статически (thrift, protocol buffers) и динамически (json, msgpack) типизированных протоколов для python; сравнили их производительность в разных сценариях, возможности, внутреннее устройство, удобство разработки.
Я расскажу о результатах нашего исследования, особенностях "приготовления" библиотек и выявленных подводных камнях.
Как построить DOMRoman DvornovШаблонизаторы упрощают процесс формирования HTML и только. Но браузеру нужен совсем не HTML, а DOM. Необходимо преобразование. И вот тут начинается самое интересное: танцы с бубном и стрельба по ногам. В докладе пойдёт речь об общепринятом подходе получения DOM фрагмента, постпроцессинге и альтернативах. Сравним, измерим и узнаем как это делать быстрее всего.
Компонентный подход: скучно, неинтересно, бесперспективноRoman DvornovИспользование компонентного подхода это тяжеловесно, медленно, не гибко. Так ли это?
Доклад с фестиваля 404, Самара, 13 октября 2013
Видео: https://www.youtube.com/watch?v=QpZy0WW0Ig4
Ссылочные профили популярных в Яндексе сайтовСергей Кокшаров"Результаты исследования ссылочных профилей сайтов, популярных в Яндексе по коммерческим запросам" - Презентация к докладу на CyberMarketing 2012
Сравнение форматов и библиотек сериализации / Антон Рыжов (Qrator Labs)OnticoВ эпоху распределённых архитектур и микросервисов как никогда актуальными становятся вопросы — как эффективно сериализовать и передать данные. Большинство решает данный вопрос просто — используют стандартный, универсальный и всем понятный формат JSON. Другие же, ориентируясь на производительность, ищут в интернете бенчмарки и выбирают protobuf или msgpack.
Мы протестировали разные реализации статически (thrift, protocol buffers) и динамически (json, msgpack) типизированных протоколов для python; сравнили их производительность в разных сценариях, возможности, внутреннее устройство, удобство разработки.
Я расскажу о результатах нашего исследования, особенностях "приготовления" библиотек и выявленных подводных камнях.
Blackbox-тестирование веб-приложенийbechedПрезентация с доклада "Секреты чёрного ящика" на RuCTF 2014. Речь идёт о нюансах blackbox-тестирования веб-приложений.
Обзор перспективных баз данных для highload / Юрий НасретдиновOnticoРИТ++ 2017, Backend Conf
Зал Кейптаун, 5 июня, 10:00
Тезисы:
http://backendconf.ru/2017/abstracts/2773.html
В этом докладе я рассмотрю несколько перспективных, на мой взгляд, баз данных, которые пока еще не очень популярны, но которые определенно ждет успех в будущем, особенно для highload-проектов. Я расскажу о Tarantool, ClickHouse и CockroachDB, о том, как они устроены, и почему я считаю, что они в будущем станут стандартом де-факто, как раньше был MySQL, а сейчас — MongoDB.
...
DOM-шаблонизаторы – не только "быстро"Roman DvornovШаблонизация основанная на работе с DOM становится трендом: React, Ractive, Basis.js уже используют этот подход, другие идут в эту сторону. Главным преимуществом подхода считается скорость, но оно далеко не единственное!
В докладе немного рассказано о возможностях, что дает DOM подход.
Опыт работы с фреймворком ASP.NET MVCДаниил СилантьевПрезентация с Открытого семинара . Ведущий — Евгений Романовский, инженер-программист веб-студии СКБ Контур. Видео с выступления доступно тут http://it-eburg.com/text/article/opyt_raboty_s_freimvorkom_aspnet_mvc/
Andrew Aksyonoff "Архитектура вокруг поиска"FwdaysНачиная с определенного масштаба, вокруг любого базового поискового движка плюс рядом с ним неизбежно вырастает изрядная куча всяких интересных прослоек и сервисов. Особенно, когда одним лишь поиском по ключевым словам (либо вообще булевым, либо с простеньким ранжированием по формуле) дело ограничиваться перестает. Расскажу, как сегодня выглядит архитектура сервисов “вокруг и около поиска” у нас в Авито (числа и слова для привлечения внимания: 40M+ активных объявлений, тысячи RPS, ML ранжирование, пляски с анализом и доставкой данных, и всё такое).
Шаблонизация sql, или история еще одного велосипеда, в трех частях, Алексей Р...DevDay- Часть первая. SQL и программный код - как, имея очень простую задачу, получить очень плохое решение.
- Антракт. Почему нам неудобно писать SQL
- Часть вторая. Почему существующие решения - отстой.
- Антракт. Мечты об идеальном инструменте разработки SQL
- Часть третья. История велосипеда, или свой инструмент самый лучший
Баба-Яга против! — Роман Дворнов, Ostrovok.ruYandexВ последнее время во фронтенде появляется столько нового и внедряется настолько быстро, что не все успевают осознать последствия. Хорошо это или плохо? Рассмотрим некоторые новинки с точки зрения «за», а главное – «против».
Яндекс.Поиск для сайта. HTML+CSS: новые возможности дизайна выдачиСергей МочаловПоиск – неотъемлемая часть хорошего современного сайта. И чаще всего для организации поиска можно найти готовое решение с базовыми возможностями. Но что делать, если сайт имеет сложный дизайн? Или, скажем, вы имеете дело с капризным заказчиком, который хочет использовать нестандартные шрифты или его любимый оттенок зеленого в качестве фона? Как вписать готовое поисковое решение в дизайн сайта, чтобы любой заказчик остался доволен? Все просто – можно изменять дизайн поисковой выдачи Яндекс.Поиска для сайта! В докладе были рассмотрены несколько примеров того, как, используя только CSS, можно полностью адаптировать поиск к дизайну любого сайта.
Андрей Карпов, Приватные байки от разработчиков анализатора кодаSergey PlatonovДоклад о редких нестандартных расширениях языка С++, про которые никто не знает, но которые надо поддерживать в анализаторе кода.
О магии Visual C++ с файлом stdafx.h, когда проект компилируется, хотя не должен. О том как зародился viva64 (предшественник PVS-Studio) для поиска 64-битных проблем. Как и почему исчез анализ кода, который одно время существовал в компиляторе Intel C++.
«Scrapy internals» Александр Сибиряков, Scrapinghubit-people- Scrapy is a framework for web scraping that allows for extraction of structured data from HTML/XML through selectors like CSS and XPath. It provides features like an interactive shell, feed exports, encoding support, and more.
- Scrapy is built on top of the Twisted asynchronous networking framework, which provides an event loop and deferreds. It handles protocols and transports like TCP, HTTP, and more across platforms.
- Scrapy architecture includes components like the downloader, scraper, and item pipelines that communicate internally. Flow control is needed between these to limit memory usage and scheduling through techniques like concurrent item limits, memory limits, and delays between calls.
«Отладка в Python 3.6: Быстрее, Выше, Сильнее» Елизавета Шашкова, JetBrainsit-peopleThe document discusses debugging in Python 3.6. It describes tracing and frame evaluation debuggers. Tracing debuggers slow code execution significantly by calling the tracing function on every line. Python 3.6 introduced a new frame evaluation API that allows evaluating frames directly, avoiding the performance issues of tracing. The document demonstrates how to build a debugger using this approach, including setting breakpoints and stepping through code by inserting temporary breakpoints on each line. Frame evaluation allows building a debugger that is faster than tracing debuggers without significant performance penalties.
«Gevent — быть или не быть?» Александр Мокров, Positive Technologiesit-peopleGevent is a concurrency library for Python that uses greenlets, or lightweight coroutines, to provide asynchronous operations and non-blocking I/O. It allows developing highly concurrent applications using a simple and familiar synchronous style. The document compares gevent to other concurrency options like asyncio and discusses how it provides features like asynchronous task execution, event loops, and inter-greenlet communication using queues and callbacks.
«Что такое serverless-архитектура и как с ней жить?» Николай Марков, Aligned ...it-peopleThe document discusses what serverless computing is and how it can be used for building applications. Serverless applications rely on third party services to manage server infrastructure and are event-triggered. Popular serverless frameworks like AWS Lambda, Google Cloud Functions, Microsoft Azure Functions, and Zappa allow developers to write code that runs in a serverless environment and handle events and triggers without having to manage servers.
«Python на острие бритвы: PyPy project» Александр Кошкин, Positive Technologiesit-peopleThe document describes a talk on optimizing Python performance through just-in-time compilation. It discusses how the CPython interpreter works by evaluating bytecode through an evaluation loop. It then talks about how PyPy achieves faster performance through jit compilation of hot loops detected via tracing. The talk dives into the RPython language used to implement PyPy and shows an example of compiling a small Python program to C with RPython. It also discusses using partial evaluation to specialize an interpreter for constant inputs.
«PyWat. А хорошо ли вы знаете Python?» Александр Швец, Marilyn Systemit-peopleThe document appears to be a transcript of Python code being executed in an interactive Python shell. It contains examples testing the behavior of built-in functions and operators like sorted(), reversed(), isinstance(), sum(), float("nan"), is, min(), and comparisons like ==, <, on various data types including lists, tuples, and dictionaries.
«(Без)опасный Python», Иван Цыганов, Positive Technologiesit-peopleThe document discusses various security vulnerabilities in Python web applications. It begins with an overview of the OWASP Top 10 security risks, with sections focusing on risks related to using components with known vulnerabilities (A9) and insufficient attack protection (A7). For A9, it provides examples of vulnerabilities in popular Python packages and recommends checking changelogs and vulnerability databases. For A7, it recommends implementing attack protections like login attempts logging, rate limiting, and use of a web application firewall. The document also covers security misconfiguration (A5), giving examples like using default settings in production and exposing tracebacks.
«Как сделать так, чтобы тесты на Swift не причиняли боль» Сычев Александр, Ra...it-peopleThe document discusses best practices for writing tests in Swift, including recommendations to:
- Write clean, readable tests that focus on asserting a single truth
- Use a domain-specific language in tests for clarity
- Structure tests with "given-when-then"
- Mock dependencies through protocols to enable test isolation
- Favor partial mocks over fully mocking to limit complexity
4. Примеры
• цены и продукты
• названия и контакты организаций
• категории товаров
• …
• места дислокации батальонов в WWI
• энергопотребление вентиляторов
7. Сложные случаи
• 100000 сайтов, все разные
• сайт один, но информация - в обычном тексте
• объединение информации из разных источников
• хочется «накликать» мышкой, что извлекать, и не
писать код
13. Подход
• для каждой ссылки выделить признаки
• перевести признаки в цифры (получить вектор x)
• для каждой ссылки передать в библиотеку x и
метку (ссылка на веб-студию: да/нет)
• библиотека подберет веса
14. Подход (предсказание)
• для каждой ссылки выделить признаки
• перевести признаки в цифры (получить вектор x)
• для каждой ссылки передать в библиотеку x
• библиотека вернет метку (веб-студия/нет)
17. Поиск именованных сущностей (NER)
есть 100k сайтов, нужно узнать:
• название организации
• ее адреса
• телефоны
• факсы
• время работы
• URL-ы форм обратной связи
• размещенные вакансии
• способы подачи заявки на работу
• …
19. Правила - сложные и
работают не очень хорошо
• части необязательны
• встречаются в разных местах страницы
• сокращения
• перестановки
• названия организаций не проверишь по словарю
• …
23. CRF
• обычно 1 порядка
• максимизирует вероятность всей цепочки, а не
тегов для отдельных токенов
• реализации: Wapiti, CRFsuite
24. Подход
• Выделяем из HTML текст
• разбиваем его на токены
• тренировочные данные: каждому токену
сопоставляем тег в BIO кодировке
• для каждого токена определяем характерные
признаки
• передаем все в библиотеку для тренировки
25. Примеры признаков (фич)
• сам токен
• предыдущий токен
• с заглавной буквы?
• по регекспу похож на телефон
• часть названия города и GeoNames (начало, середина?)
• HTML-элемент, в котором лежит токен
• первый или последний токен в HTML элементе?
• word2vec