Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
Видео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
Видео: https://www.youtube.com/watch?v=IUtbbN9aevU
Веб-приложения становятся все больше и сложнее, так что многое остается вне нашего поля зрения. Поэтому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи решать, что необходимо для их создания.
SPA Meetup, 28 февраля 2015, Москва, Авито
Инструменты разные нужны, инструменты разные важныRoman Dvornov
В мире фронтенда уже существует большое количество инструментов: как браузерных, так и консольных. Но достаточно ли этих инструментов? Мне кажется, что нет. Веб-приложения становятся все больше и сложнее, и многое остается вне нашего поля зрения. Потому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и улучшающие понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи могут решать, что необходимо для их создания.
CodeFest, Новосибирск, 28 марта 2015
http://www.youtube.com/watch?v=HMTc3DERw5c
Web-программирование
Лекция #6. Введение в Django web-framework
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Шаблонизация основанная на работе с DOM становится трендом: React, Ractive, Basis.js уже используют этот подход, другие идут в эту сторону. Главным преимуществом подхода считается скорость, но оно далеко не единственное!
В докладе немного рассказано о возможностях, что дает DOM подход.
В последнее время во фронтенде появляется столько нового и внедряется настолько быстро, что не все успевают осознать последствия. Хорошо это или плохо? Рассмотрим некоторые новинки с точки зрения «за», а главное – «против».
Конференция FrontTalks, Екатеринбург, 19 сентября
Видео: https://vimeo.com/107694664
В лекции рассказано о доступных средствах по отладке веб-сайтов, их возможностях, а также способах их использования. Также речь пойдет о том, как искать ошибки у пользователей в продакшене и контролировать качество продукта.
Не бойся, это всего лишь данные... просто их многоRoman Dvornov
За последние 15 лет веб сильно изменился и ускорился. Но большинство по-прежнему боится большого количества данных и сложной логики на клиенте. Потому что "тормозит".
Я хочу сломать стереотипы и показать, как начать делать крутые штуки на client-side. Тысячи и сотни тысяч объектов, разные типы, зависимые вычисляемые свойства, агрегация, множество вариантов отображения. Все это в вашем браузере. Без тормозов, регистраций, смс.
Видео этого доклада на конференции DUMP, Екатеринбург, 14 марта 2014: https://vimeo.com/90836493
С ростом кодовой базы становится все более очевидной необходимость использования компонентного подхода, когда каждая логическая часть обособлена. Если говорить про JavaScript, то в нем есть области видимости, опираясь на которые можно соорудить изолированные компоненты. Но в CSS нет подобных механизмов, поэтому и придумываются Shadow DOM (Web Components) и различные методики вроде БЭМ.
Но что если взглянуть на проблему под другим углом? Адаптируя подходы, что уже используются для других задач, можно получить куда больше выгоды, чем просто изолированные стили!
FrontendConf, Москва, 21 мая 2015
WSD, Санкт-Петербург, 20 июня 2015
Запись трансляции: https://youtu.be/V7bnSOwuO4M?t=1h31m33s
В своей работе мы постоянно используем инструменты, призванные облегчить нам жизнь. Но как хорошо мы ими на самом деле владеем? И почему мы пренебрегаем их суперсилами? Например, Chrome DevTools — это не только отладчик и инспектор HTML. Но когда у нас в руках молоток, кругом мерещатся гвозди. Десятки мегабайт и процентов загрузки процессора на вкладку браузера — верный признак того, что пора учиться пользоваться микроскопом.
Роман предложит освоить что-то посложнее молотка и расскажет о том, какую реальную пользу можно получить от профилирования, как найти в огромном отчёте проблему с кодом и что лучше — написать в коде десяток console.log или async debug.
Инструменты разные нужны, инструменты разные важныRoman Dvornov
В мире фронтенда уже существует большое количество инструментов: как браузерных, так и консольных. Но достаточно ли этих инструментов? Мне кажется, что нет. Веб-приложения становятся все больше и сложнее, и многое остается вне нашего поля зрения. Потому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и улучшающие понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи могут решать, что необходимо для их создания.
CodeFest, Новосибирск, 28 марта 2015
http://www.youtube.com/watch?v=HMTc3DERw5c
Web-программирование
Лекция #6. Введение в Django web-framework
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
Шаблонизация основанная на работе с DOM становится трендом: React, Ractive, Basis.js уже используют этот подход, другие идут в эту сторону. Главным преимуществом подхода считается скорость, но оно далеко не единственное!
В докладе немного рассказано о возможностях, что дает DOM подход.
В последнее время во фронтенде появляется столько нового и внедряется настолько быстро, что не все успевают осознать последствия. Хорошо это или плохо? Рассмотрим некоторые новинки с точки зрения «за», а главное – «против».
Конференция FrontTalks, Екатеринбург, 19 сентября
Видео: https://vimeo.com/107694664
В лекции рассказано о доступных средствах по отладке веб-сайтов, их возможностях, а также способах их использования. Также речь пойдет о том, как искать ошибки у пользователей в продакшене и контролировать качество продукта.
Не бойся, это всего лишь данные... просто их многоRoman Dvornov
За последние 15 лет веб сильно изменился и ускорился. Но большинство по-прежнему боится большого количества данных и сложной логики на клиенте. Потому что "тормозит".
Я хочу сломать стереотипы и показать, как начать делать крутые штуки на client-side. Тысячи и сотни тысяч объектов, разные типы, зависимые вычисляемые свойства, агрегация, множество вариантов отображения. Все это в вашем браузере. Без тормозов, регистраций, смс.
Видео этого доклада на конференции DUMP, Екатеринбург, 14 марта 2014: https://vimeo.com/90836493
С ростом кодовой базы становится все более очевидной необходимость использования компонентного подхода, когда каждая логическая часть обособлена. Если говорить про JavaScript, то в нем есть области видимости, опираясь на которые можно соорудить изолированные компоненты. Но в CSS нет подобных механизмов, поэтому и придумываются Shadow DOM (Web Components) и различные методики вроде БЭМ.
Но что если взглянуть на проблему под другим углом? Адаптируя подходы, что уже используются для других задач, можно получить куда больше выгоды, чем просто изолированные стили!
FrontendConf, Москва, 21 мая 2015
WSD, Санкт-Петербург, 20 июня 2015
Запись трансляции: https://youtu.be/V7bnSOwuO4M?t=1h31m33s
В своей работе мы постоянно используем инструменты, призванные облегчить нам жизнь. Но как хорошо мы ими на самом деле владеем? И почему мы пренебрегаем их суперсилами? Например, Chrome DevTools — это не только отладчик и инспектор HTML. Но когда у нас в руках молоток, кругом мерещатся гвозди. Десятки мегабайт и процентов загрузки процессора на вкладку браузера — верный признак того, что пора учиться пользоваться микроскопом.
Роман предложит освоить что-то посложнее молотка и расскажет о том, какую реальную пользу можно получить от профилирования, как найти в огромном отчёте проблему с кодом и что лучше — написать в коде десяток console.log или async debug.
Практика применения Pinba в Badoo / Денис Карасик (Badoo)Ontico
При разработке каждого backend приложения рано или поздно встает вопрос об измерении производительности системы и поиска «узких» мест. Для этой цели мы используем Pinba.
Для тех, кто не знаком с этим инструментом, я коротко расскажу о возможностях Pinba и о том, какие задачи мы решаем с её помощью. Основной акцент доклада будет сделан не на внутреннем устройстве Pinba, процессе установки и настройки — всё это есть в документации. Гораздо полезнее на реальных примерах показать, что и как мы измеряем и как агрегируем данные для построения отчетов в режиме реального времени.
Основные аспекты доклада:
- измерение производительности php скриптов;
- измерение времени обращений к внешним сервисам;
- измерение «хитрейта» кэша;
- измерение производительности обработки очередей;
- построение распределений и использование перцентилей.
Я расскажу о том, как использовать Pinba в связке с Nginx и делать различные агрегации в зависимости от параметров URI.
Большинство примеров будет основано на взаимодействии Pinba с PHP. Но сейчас есть плагины, позволяющие отправлять данные в Pinba из программ на различных языках, методология при этом практически не меняется.
Веб-разработка без наркотиков с помощью PostgreSQL, Nginx и c2h5oh / Миша Кир...Ontico
Разговор в докладе пойдёт о веб-программировании.
При изготовлении веб-проектов то и дело пользуются широко распространёнными фреймворками на базе языков программирования — PHP, Python, Perl, Ruby, Go, Rust, Java и т.п.
Я предлагаю отказаться от употребления оных и использовать для разработки веб-приложений только c2h5oh — расширение для высокопроизводительного сервера nginx. Данное расширение позволяет эффективно использовать PostgreSQL в качестве сервера веб-приложений.
Хочу поделиться со слушателями своим личным опытом разработки с использованием подобной связки. Планирую рассказать о плюсах и минусах такого подхода.
Документация на тему архитектуры языка PHP скудна и разрозненна, несмотря на то что тема интересна многим. В моем докладе я постараюсь заполнить этот пробел и рассказать о модулях PHP: как они работают, зачем и как их пишут. В процессе мы рассмотрим опыт Badoo в этой сфере на примерах двух модулей. И еще напишем очень небольшой собственный модуль.
— Что такое модули PHP, как они работают
— Как начать писать свой модуль PHP
— Скелет модуля — Функции, классы, методы
— Разбор параметров функции
— Сборка модуля
— Подгрузка модуля
— Простой пример модуля из Badoo
— Сложный пример модуля из Badoo
Филипп Торчинский «Анализ производительности и отладка приложений с помощью D...Yandex
Научно-технический семинар «DTrace: Проверочная работа для вашего кода» в петербургском офисе Яндекса, 29 ноября 2012 г.
Филипп Торчинский, эксперт по облачным технологиям, Семоникс.
Многие разработчики не представляют, как дорого обходятся ошибки в программах. Причем я имею в виду не падения ракет и прочие катастрофы, а обыкновенное прикладное программное обеспечение. Хочется показать всю важность нахождения ошибок на самых ранних этапах. Одним из способов выявить ошибку как можно раньше является статический анализ кода. Поговорим мы не только об этом, но и о различных приемах при написании кода, которые позволят избежать множество типовых ошибок.
FrontTalks: Алексей Андросов (Яндекс), «Ошибки, которые мы любим»Yandex
Мониторинг – важная часть работы хорошего сервиса. Мало просто протестировать релиз, надо также убедиться, что код работает у пользователей и работает правильно. В докладе я расскажу про логирование js-ошибок при разных способах загрузки js, подводных камнях, способах их обойти, а также почему это надо делать.
08.11 SEMPRO Club - Влад Моргун - Цвет настроения серыйVladislav Morgun
SEO Team-lead в ЛУН & Flatfy. Куратор курса «Product SEO» в Projector. SEO-консультант
Серое SEO - баланс во вселенной.
Сын маминой подруги автоматизирует процессы. А вы?
Продвижение по белому, где все по чёрному.
Что делать, чтобы Google не укусил за бочок?
Как вам такое?
8-го ноября на Sempro.Club мы посмотрим на Google, как на продукт и узнаем как создать синергию между поиском и Вашим проектом. Обсудим цели и ограничения поисковых систем. Вектор их развития. Рассмотрим примеры поисковой оптимизации направленной на продукт и пользователя с использованием "серых" техник. Поделимся наработками по автоматизации процессов.
У нас в гостях Владислав Моргун SEO Team-lead в ЛУН & Flatfy. Вы знаете еще кого-то, кто имеет опыт продвижения долгосрочных белых проектов на 37+ стран?
Мероприятие Must know для SEO-специалистов, которые работают в продуктовых компаниях. Junior/Middle SEO.
Любите ли вы велосипеды? Все разработчики любят свои ненаколеночныерешения велосипеды! И мы не исключение. В нашем докладе мы покажем как собирать, сколачивать, вылепливать собственный велосипед так, чтобы на нем потом могла ездить без слёз вся команда, компания, или может весь мир.
Что в докладе будет:
- много Spring Boot-а;
- live coding;
- создание собственного Spring Boot Starter-а;
- Apache Thrift в качестве подопытного кролика.
Чего не будет:
- бенчмарков и сравнений Thrift vs REST vs gRPC vs XXX.
kranonit S14E02 Серёжа Пономарёв: kranonit’у уже год. Полёт нормальный?Krivoy Rog IT Community
Что такое кранонит, как устроен клуб, как его можете использовтаь вы, какие встречи мы провели, какие проблемы у нас есть, какая наша публика и многое другое.
Эдуард Лобас расскажет о тенденциях в IT на сегодняшний день. Что изменилось за последний год, и как с этим жить.
Поговорим о стартапах - главном тренде года в IT. Обсудим ситуацию в Украине, сравним с прошлым годом.
В тысячный раз поразмышляем о том, где лучше работать - в продуктовой или аутсорсинговой компании и, наконец, задумаемся о роли компаний, принадлежащих скандинавам, американцам и другим буржуям.
Во второй части доклада поразмышляем о менеджерах в IT и добавим немного интерактива!
This document summarizes a presentation about designing systems to handle high loads when Chuck Norris is your customer. It discusses scaling architectures vertically and horizontally, RESTful principles, using NoSQL databases like MongoDB, caching with Memcached, search engines like Sphinx, video/image storage, and bandwidth management. It emphasizes that the right technology depends on business needs, and high-load systems require robust architectures, qualified developers, and avoiding single points of failure.
Sergey Burma gives an introduction to cloud computing. He discusses what cloud computing is, including definitions of self-service, scalability, multitenancy, and pay-per-use models. He outlines the three types of cloud services: Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Finally, he highlights some free cloud offerings and benefits and limitations of cloud computing.
This document discusses hacking .NET applications by accessing and attacking the runtime structure. It describes tools like payloads, Metasploit, decompilers and IDA Pro that can be used. The attack process involves modifying runtime objects like the GUI to instantiate new features and access code. Specific tasks discussed include connecting to databases, finding and moving between objects, and changing objects. A demo is provided of injecting code to exploit the target application and infect the .NET framework. Benefits discussed include bug hunting, flexible programs, and custom defensive payloads.
kranonit S02E01 Дмитрий Свириденко- HTML5: Поздравляю, ты в новой реальности
Kranonit s16 (python). dmitry furzenko
1. Шардинг - что это и как
правильно его готовить.
автор: Дмитрий Фурзенко, Sandstorm NV
2. О себе:
●
●
●
●
●
в сети известен под ником - Dimonji
python developer over 3+ year expirience
pythonic way в разработке
highload системы
Мои инструменты:
○ Pycharm or Emacs
○ Python
○ Brain
○ И очень много разных python библиотек :)
3. Где работал/работаю:
c 08.2011 по текущее время - Sandstorm NV
с 05.2009 по 08.2011 ООО Любимое такси, разработчик
программного обеспечения, системный администратор
4. О чем будет доклад:
● Теория построения шардинга
● SQLAlchemy
● gevent
5. Ингредиенты для шардинга:
● python 2.7
● SQLAlchemy >= 0.7.9
● MySQL or PostgreSQL
● четкое понимание архитектуры приложения
● немного магии
6. Зачем нужен шардинг:
● практически бесконечное горизонтальное
масштабирование production платформы
● отказоустойчивость
● более дешевый production
8. Минусы:
● выборка и обработка всех данных становиться
самым узким местом
● требуется более тщательное проектирование
приложения
● в некоторых моментах приходится пренебрегать т.н
нормальной формой БД
9. Обобщенные принципы построения:
● все данные которые будут расшардены должны
иметь общий ключ т.н сегмент
● отдельная структура которая будет знать какой
сегмент какому шарду принадлежит
● единый алгоритм распределения сегментов по
шардам
10. SQLAlchemy
● мощная орм, которая при минимуме усилий
позволяет абстрагировать разработчика от БД и
работать на уровне объектов
● если алхимию неправильно использовать она может
принести много головной боли разработчику
11. Установка соединения с БД и pool соединений:
● umysqldb
● sqlalchemy.create_engine
● sqlalchemy.orm.sessionmaker
12. Пример организации соединения с одной
БД
import umysqldb
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
umysqldb.install_as_MySQLdb()
SHARD_ENGINE = { 'engine': 'mysql', 'host': 'localhost', 'name': 'kranonit_shards', 'login': 'root', 'password': ''}
_DSN = '%(engine)s://%(login)s:%(password)s@%(host)s/%(name)s?charset=utf8'
SHARD_CONNECTION = create_engine(
_DSN % SHARD_ENGINE, echo=False, pool_recycle=3600, pool_size=5, max_overflow=0, isolation_level="READ COMMITTED")
SESSION = sessionmaker(bind=SHARD_CONNECTION, autocommit=True)
S_SESSION = SESSION()
13. Организация соединения с БД для шардовых БД:
● pool соединений к шардовым базам
● shard class
○ shard_chooser
○ query_chooser
○ id_chooser
14. Пример организации соединения с
шардовыми БД
CONNECTIONS = list()
_DSN = '%(engine)s://%(login)s:%(password)s@%(host)s/%(name)s?charset=utf8'
for shard in S_SESSION.query(Shard).all():
engine = create_engine(
_DSN % {'engine': shard.engine, 'host': shard.host, 'name': shard.name, 'login': shard.login, 'password': shard.password},
echo=False, pool_recycle=3600, pool_size=shard.pool_size, max_overflow=shard.max_overflow, isolation_level=shard.
isolation_level)
CONNECTION[shard.id] = engine
createfunc = sessionmaker(class_=DeepShardedSession, autoflush=False)
scoped = scoped_session(createfunc, scopefunc=getcurrent)
scoped.configure(shards=CONNECTIONS)
session = scoped()
15. Логика распределения shard
● uuid
● балансировка
● выбор емкости сегментов
○ 1 разряд uuid дает 16 записей на сегмент
○ минимальный ключ для сегмента два разряда
uuid
○ максимальноя количество записей в сегменте
21. Немножко про gevent
Gevent - green event, микропотоки в python
Плюсы
●
●
●
Псевдо многопоточность
Забываем про ужасы callback и deffered из Twisted
пишем код в обычном стиле и двумя строчками делаем его асинхронным
Минусы
●
●
●
сложно профилировать
не все библиотеки можно им пропатчить
требует определенных навыков в использовании
Применение
●
Практически везде где уместна работа с сетью, потоками и очередями