Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"Yandex
Платформа Node.js становится все более популярной. Для нее уже создано много библиотек и инструментов. Рассказ о том, какие из них и для чего мы используем.
Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)Ontico
JavaScript, который мы пишем, не всегда исполняется, как мы думаем. Виртуальные машины, исполняющие его, делают многое, чтобы он работал быстрее. Но они не всесильны, и чтобы сделать код действительно быстрым, нужно знать их особенности и как все работает под капотом.
Поговорим об этих особенностях, что может служить причиной потери производительности, как это диагностировать и как делать код действительно быстрым. Доклад базируется на опыте, полученном в ходе работы над такими проектами как basis.js (весьма быстрый фреймворк для SPA), CSSO (минификатор CSS, который из медленного стал один из самых быстрых), CSSTree (самый быстрый детальный CSS парсер) и других.
В этой презентации я рассказываю не только об автотестах, а о целом комплексе автоматических инструментов для обеспечения качества веб-сервиса на разных этапах разработки.
Как обеспечить проверку формата? Как поддерживать документацию в актуальном виде? Какую архитектуру выбрать для функциональных тестов?
Немного интересного про JSON-схемы и параметризованные тесты, про тестирование API методом чёрного ящика и про выбор исходных данных для тестирования.
Инструменты разные нужны, инструменты разные важныRoman Dvornov
В мире фронтенда уже существует большое количество инструментов: как браузерных, так и консольных. Но достаточно ли этих инструментов? Мне кажется, что нет. Веб-приложения становятся все больше и сложнее, и многое остается вне нашего поля зрения. Потому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и улучшающие понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи могут решать, что необходимо для их создания.
CodeFest, Новосибирск, 28 марта 2015
http://www.youtube.com/watch?v=HMTc3DERw5c
Разработка WPF приложений в стиле ViewModel FirstDenis Tsvettsih
Презентация к докладу «Разработка WPF приложений в стиле ViewModel First» с одиннадцатой конференции dotnetconf (Челябинск, 31 октября 2015)
http://dotnetconf.ru/materialy/viewmodelfirst
Die Zukunft liegt in Deiner Hand
Wir beginnen mit einer Verortung im Jetzt: Die mobile marketing association präsentiert hier erstmals die neuesten Topics. Danach blicken wir in die Zukunft. Wohin wird sich mobile Advertising in den nächsten fünf Jahren entwickeln? Das mobile Endgerät auf dem Weg hin zum First Screen.
What Good is this Tool? A Guide to Choosing the Right Application Security Te...Kevin Fealey
Abstract:
Choosing the right Application Security Testing (AST) tool can be challenging for any security program, and after rolling it out, discovering the real security value it brings can be downright discouraging. No single tool can solve all of all of your security problems, but unfortunately, that is exactly how many of them are marketed. This is compounded by sales teams who convince executive leadership that security programs should be built around their tools, rather than fitting each tool within a well-planned security program. The primary takeaways from this talk are:
• An understanding the real value of each type of AST tool (SAST, DAST, IAST);
• How to leverage your tools for better security visibility and process efficiency;
• Steps to find the right tool for your security program;
• Keys to finding the best stage of the SDLC to implement each tool type within your security program;
• How to integrate new tools with your existing DevOps or Agile environments and processes
Additional Takeaways:
• Examine the strengths and limitations of SAST, DAST, and IAST tools
• Learn how to choose the right tools for your security program
• Discover how to seamlessly integrate your tools into existing DevOps and Agile environments and processes
• Provide security visibility to developers, managers, and executives by enhancing your existing technology
• Learn to use your tools to improve the efficiency of security tasks that are currently manual
Есть такая штука как инструментирование кода. Мало кто знает о ней, даже пользуясь результатами ее применения. Между тем, с инструментированием можно делать много всего интересного и, главное, полезного. Например, это может вам помочь лучше понять код или сделать процесс разработки более эффективным. Примеры инструментирования кода и принципы его работы.
Владимир Алаев "Разработка на Node.js: инструменты, библиотеки, сервисы"Yandex
Платформа Node.js становится все более популярной. Для нее уже создано много библиотек и инструментов. Рассказ о том, какие из них и для чего мы используем.
Как сделать ваш JavaScript быстрее / Роман Дворнов (Авито)Ontico
JavaScript, который мы пишем, не всегда исполняется, как мы думаем. Виртуальные машины, исполняющие его, делают многое, чтобы он работал быстрее. Но они не всесильны, и чтобы сделать код действительно быстрым, нужно знать их особенности и как все работает под капотом.
Поговорим об этих особенностях, что может служить причиной потери производительности, как это диагностировать и как делать код действительно быстрым. Доклад базируется на опыте, полученном в ходе работы над такими проектами как basis.js (весьма быстрый фреймворк для SPA), CSSO (минификатор CSS, который из медленного стал один из самых быстрых), CSSTree (самый быстрый детальный CSS парсер) и других.
В этой презентации я рассказываю не только об автотестах, а о целом комплексе автоматических инструментов для обеспечения качества веб-сервиса на разных этапах разработки.
Как обеспечить проверку формата? Как поддерживать документацию в актуальном виде? Какую архитектуру выбрать для функциональных тестов?
Немного интересного про JSON-схемы и параметризованные тесты, про тестирование API методом чёрного ящика и про выбор исходных данных для тестирования.
Инструменты разные нужны, инструменты разные важныRoman Dvornov
В мире фронтенда уже существует большое количество инструментов: как браузерных, так и консольных. Но достаточно ли этих инструментов? Мне кажется, что нет. Веб-приложения становятся все больше и сложнее, и многое остается вне нашего поля зрения. Потому фреймворки и приложения должны предоставлять дополнительные инструменты, упрощающие разработку и улучшающие понимание того, что же происходит у них там — «под капотом». В ходе доклада я расскажу о таких инструментах: какими они могут быть, какие задачи могут решать, что необходимо для их создания.
CodeFest, Новосибирск, 28 марта 2015
http://www.youtube.com/watch?v=HMTc3DERw5c
Разработка WPF приложений в стиле ViewModel FirstDenis Tsvettsih
Презентация к докладу «Разработка WPF приложений в стиле ViewModel First» с одиннадцатой конференции dotnetconf (Челябинск, 31 октября 2015)
http://dotnetconf.ru/materialy/viewmodelfirst
Die Zukunft liegt in Deiner Hand
Wir beginnen mit einer Verortung im Jetzt: Die mobile marketing association präsentiert hier erstmals die neuesten Topics. Danach blicken wir in die Zukunft. Wohin wird sich mobile Advertising in den nächsten fünf Jahren entwickeln? Das mobile Endgerät auf dem Weg hin zum First Screen.
What Good is this Tool? A Guide to Choosing the Right Application Security Te...Kevin Fealey
Abstract:
Choosing the right Application Security Testing (AST) tool can be challenging for any security program, and after rolling it out, discovering the real security value it brings can be downright discouraging. No single tool can solve all of all of your security problems, but unfortunately, that is exactly how many of them are marketed. This is compounded by sales teams who convince executive leadership that security programs should be built around their tools, rather than fitting each tool within a well-planned security program. The primary takeaways from this talk are:
• An understanding the real value of each type of AST tool (SAST, DAST, IAST);
• How to leverage your tools for better security visibility and process efficiency;
• Steps to find the right tool for your security program;
• Keys to finding the best stage of the SDLC to implement each tool type within your security program;
• How to integrate new tools with your existing DevOps or Agile environments and processes
Additional Takeaways:
• Examine the strengths and limitations of SAST, DAST, and IAST tools
• Learn how to choose the right tools for your security program
• Discover how to seamlessly integrate your tools into existing DevOps and Agile environments and processes
• Provide security visibility to developers, managers, and executives by enhancing your existing technology
• Learn to use your tools to improve the efficiency of security tasks that are currently manual
This is my keynote for AppSec California 2015. In it I discuss how application security is taking over all areas of security and how we need to change how we build and deploy security tools as a result.
Here is the video of me giving the talk:
https://www.youtube.com/watch?v=-1kZMn1RueI
Web Application Firewall (WAF) DAST/SAST combinationTjylen Veselyj
In this presentation we analyze benefits of applied innovative WAF that have callback connection with DAST security tools and allow very quickly detect security defects in critical SaaS or e-commerce application
How to secure your web applications with NGINXWallarm
Your website is probably vulnerable and gonna be hacked one day. Here're 15 ready-to-use tips on how you can make your web applications more secure. How to protect web application from hacker attacks and mitigate DDoS with NGINX web server.
AngularJS Security: defend your Single Page Application Carlo Bonamico
The document summarizes Carlo Bonamico's presentation on securing AngularJS single page applications. The presentation discusses how authentication and security risks change in SPAs compared to traditional web apps, focusing on cross-site scripting and security misconfiguration. It also covers approaches to authentication in SPAs using token-based authentication with JSON Web Tokens instead of traditional session management with cookies.
The document discusses how to integrate security into the software development process. It recommends treating security as part of design from the beginning through activities like threat modeling, rather than as an afterthought. It provides examples of common vulnerabilities and mitigations that can be implemented at the requirements, design, code, and testing phases like input validation, output escaping, and static analysis. The document advocates finding and fixing issues earlier and communicating regularly with security experts.
Adopting a security attitude in DevOps via DevOpsSecTapabrata Pal
Adopting a security attitude in DevOps involves implementing security practices and controls at every stage of the software delivery pipeline from coding through testing and deployment. This includes performing security checks and tests during coding like using secure coding practices and static analysis tools, during building like reviewing dependencies and analyzing for vulnerabilities, and during testing and deployment through security testing techniques like penetration testing and configuration reviews. The goal is to shift security left and provide rapid security feedback throughout the development and delivery process.
MS Swit 2012 - Windows 8 Application LifecycleДенис Резник
As your customers move your app between the foreground and background, Windows manages your app’s usage of critical system resources. Come learn the fundamentals of Process Lifetime Management and how to structure your app to suspend and resume quickly, save app state properly, and behave consistently. We will also highlight ways to keep your app fresh using push notifications and tile interactivity. Understanding these critical concepts will help you deliver a continuous experience that customers expect.
Применение фреймворка GStreamer в системе видеонаблюденияcorehard_by
Я хочу рассказать о фреймворке GStreamer, который предназначен для обработки аудио/видеоданных. А также для чего мы его использовали в одном из наших проектов.
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
Мы прошли довольно большой путь в разработке через микросервисы.
Начинали разработку, когда это за рубежом только входило в тренд. По сути, не было никакой информации о том, как это делать правильно и, вообще, стоит ли это делать. Не было понятно, имеем ли мы дело с очередной модной штукой, или парадигма действительно решает часть проблем, характерных для больших нагруженных проектов.
Мы прошли путь от того, когда 100 микросервисов казалось много ... Сейчас цифры в 1000, 2000 кажутся чем-то обыденным.
В ходе доклада я постараюсь сделать упор на эксплуатацию системы, работающей на микросервисах. Расскажу, какой инструментарий показал себя хорошо на больших объемах, а от какого пришлось отказаться. Покажу на примерах, как эволюционировала наша система управления конфигурацией системы в целом и отдельными сервисами. Расскажу, как корректно предоставлять API сервиса и правильно поставлять его клиентские библиотеки, чтобы избегать внутренних и искусственных зависимостей. Покажу, как мы работаем с распределенными сервисами и обеспечиваем отказоустойчивость.
Everything you wanted to know about writing async, high-concurrency HTTP apps...JavaDayUA
With tens of millions of clients continuously downloading binaries from our repositories, we decided to offer an OSS client that natively supports these downloads. In this talk, we will share the main challenges in developing a highly-concurrent, resumable, async download library on top of Apache HTTP client. We will cover other libraries we tested and why we decided to reinvent the wheel. We will see important pitfalls we came across when working with HTTP and how using the right combination of techniques can improve performance by an order of magnitude. We will also see why your initial assumptions may completely change when faced with other players on the network. Consider yourself forewarned: lots of HTTP internals, NIO and concurrency ahead!
10. Теги которые не поддерживает HTML5
– acronym –frameset
– applet –isindex
– basefont –noframes
– big –noscript
–s
– center –strike
– dir –tt
– font –u
– frame
11. Новые события относятся к тегу <body>:
Атрибуты Описания
onafterprint Скрипт выполняется после того как документ напечатан
onbeforeprint Скрипт выполняется до того как документ напечатан
onbeforeonload Скрипт выполняется перед загрузкой документа
onerror Скрипт выполняется при возникновении ошибки
onhaschange Скрипт выполняется, когда документ изменился
onmessage Скрипт выполняется, когда сообщение срабатывает
onoffline Скрипт выполняется, когда документ переходит в
автономный режим
ononline Скрипт выполняется, когда документ поступает онлайн
onpagehide Скрипт выполняется, когда окно скрыто
onpageshow Скрипт выполняется, когда окно становится видимым
onpopstate Скрипт выполняется, когда история окна изменяется
12. Атрибуты Описания
onredo Скрипт выполняется, когда документ выполняет повтор
onresize Скрипт выполняется при изменении размеров окна
onstorage Скрипт запускается при загрузке документа
onundo Скрипт выполняется, когда документ выполняет "отменить"
onunload Скрипт выполняется, когда пользователь покидает
документ
13. События выполняются по действиям внутри HTML form.
Атрибуты Описания
oncontextmenu Скрипт выполняется, когда контекстное меню
срабатывает
onformchange Скрипт выполняется, когда форма изменена
onforminput Скрипт выполняется, когда форма получает
пользовательский ввод
oninput Скрипт выполняется, когда элемент получает
пользовательский ввод
oninvalid Скрипт выполняется, когда элемент недействителен
14. События мышки
Атрибуты Описания
ondrag Скрипт выполняется при перетаскивании элемента
ondragend Скрипт выполняется по окончании перетаскивания
элемента
ondragenter Скрипт выполняется, когда элемент перетащен в
допустимую цель
ondragleave Скрипт выполняется, когда элемент покидает допустимую
цель
ondragover Скрипт выполняется, когда элемент перетаскивают над
допустимой целью падения
ondragstart Скрипт выполняется в начале операции перетаскивания
ondrop Скрипт выполняется, когда перетаскиваемый элемент
отпущен
onmousewheel Скрипт выполняется, когда колеса мышки вращаются
onscroll Скрипт выполняется, когда полоса прокрутки элемента
прокручивается
15. События медиа
Атрибуты Описания
oncanplay Скрипт выполняется, когда медиа может начать
играть, но, возможно будет остановлено для
буферизации
oncanplaythrough Скрипт выполняется, когда медиа может быть
проиграно до конца, без остановок для буферизации
ondurationchange Скрипт выполняется, когда длина медиа изменилась
onemptied Скрипт выполняется, когда ресурс медиа элемента
вдруг становится пустым (сетевые ошибки, ошибки
при загрузке и т.д.)
onended Скрипт выполняется, когда медиа дошло до конца
onerror Скрипт выполняется при возникновении ошибки во
время загрузки элемента
onloadeddata Скрипт выполняется, когда данные медиа загрузились
onloadedmetadata Скрипт выполняется, когда продолжительность и
другие данные медиа-элемента загрузились
onloadstart Скрипт выполняется, когда браузер начинает
загружать медиа-данные
16. Атрибуты Описания
onpause Скрипт выполняется, когда медиа приостановлено
onplay Скрипт выполняется, когда медиа, собирается начать
играть
onplaying Скрипт выполняется, когда медиа начинает играть
onprogress Скрипт выполняется, когда браузер получает медиа-
данные
onratechange Скрипт выполняется, когда скорость проигрываемых
медиа данных изменилась
onreadystatechange Скрипт выполняется, когда готовое состояние
изменилось
onseeked Скрипт выполняется, когда атрибут медиа-элемента
seeking больше не true, и поиск закончился
onseeking Скрипт выполняется, когда атрибут медиа-элемента
seeking равен true, и поиск начался
onstalled Скрипт выполняется, когда есть ошибки в выборке
данных медиа (тупик)
18. Атрибуты форм
Autocomplete Required
Novalidate Placeholder
Maxlength Autofocus
Pattern Step
Readonly List
19. JS: Geolocation API
if (navigator.geolocation) {
// Работает
}
Функция getCurrentPosition
navigator.geolocation.getCurrentPosition( function(position) {
console.log(position.coords.latitude, position.coords.longitude);
});
latitude (широта)
longitude (долгота).
Метод динамического слижения watchPosition .
20. Хранение данных на стороне клиента
localStorage - хранит данные без ограничения времени
<script>
localStorage.lastname="Lisa"; document.write(localStorage.lastname);
</script>
localStorage.clear(); - очистить всё хранилище
sessionStorage - хранит данные одного сеанса
<script>
sessionStorage.lastname="Lisa"; document.write(sessionStorage.lastname);
</script>
22. History API
Основные методы объекта History:
window.history.length
window.history.state: Возвращает текущий объект истории
window.history.go(n)
window.history.back() (-1)
window.history.forward()
window.history.pushState(data, title [, url]): Добавляет элемент
истории.
window.history.replaceState(data, title [, url]): Обновляет текущий
элемент истории