Архитектура. Доступноять программных систем.Dima DzubaВ лекции рассматриваются тактики по обнаружению сбоев в программных системах и по устранению аварийных ситуаций.
Java Core. Lecture# 3. Part# 2. Exceptions.Anton MoiseenkoThe 2nd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Java Core. Lecture# 5. Concurrency.Anton MoiseenkoThe 5-th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Безопасность интернет-приложений осень 2013 лекция 10TechnoparkThe document discusses various web application vulnerabilities and exploits, including:
1. Wordpress vulnerabilities like file uploads in themes that can be exploited to achieve remote code execution.
2. Joomla vulnerabilities like SQL injections in components that can be used to extract admin credentials.
3. vBulletin vulnerabilities like SQL injections in addons that can be exploited to achieve remote code execution.
4. Tomcat vulnerabilities like directory traversal bugs that can be exploited to access sensitive files like /etc/passwd.
Архитектура. Доступноять программных систем.Dima DzubaВ лекции рассматриваются тактики по обнаружению сбоев в программных системах и по устранению аварийных ситуаций.
Java Core. Lecture# 3. Part# 2. Exceptions.Anton MoiseenkoThe 2nd part of the 3rd lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Java Core. Lecture# 5. Concurrency.Anton MoiseenkoThe 5-th lecture from the course "Java Core".
The Department of Information and Network Technologies.
St-Petersburg State University Of Aerospace Instrumentation.
Russia
Безопасность интернет-приложений осень 2013 лекция 10TechnoparkThe document discusses various web application vulnerabilities and exploits, including:
1. Wordpress vulnerabilities like file uploads in themes that can be exploited to achieve remote code execution.
2. Joomla vulnerabilities like SQL injections in components that can be used to extract admin credentials.
3. vBulletin vulnerabilities like SQL injections in addons that can be exploited to achieve remote code execution.
4. Tomcat vulnerabilities like directory traversal bugs that can be exploited to access sensitive files like /etc/passwd.
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-запросы". Лектор - Павел Щербинин.
Лекция открывается рассказом о том, что такое профилирование запроса, каковы его этапы выполнения в MySQL. Рассказывается о том, как планировать запрос, как осуществляется протоколирование запросов, как собирается статистика. Объясняются основы индексирования, подробно обсуждаются стратегии индексирования для достижения высокой производительности: изоляция столбца, кластерные индексы (преимущества и недостатки), размещение данных в MyISAM и InnoDB, покрывающие индексы. Далее затрагивается тема нормализации и денормализации, а также таблиц счётчиков. В завершении рассказывается о версионировании схемы БД: о методах инкрементных изменений, идемпотентных изменений, уподобления структуры БД исходному коду.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
Память в Java. Garbage CollectorOlexandra DmytrenkoВ презентации рассказывается о структурах памяти в JVM: Heap, Non-Heap, Stack, об атомарности операций и о garbage collector. Рассмотрен пример, как работает стек. Также, приведены примеры, как использовать jVisualVM и что она может показать.
C#. От основ к эффективному кодуVasiliy DeynegaВводная лекция в язык C#, для тех кто знает программирование и в особенности C++. В статье будет уделено внимание наиболее важным отличиям языков, будут обсуждаться вопросы производительности и эффективного кода.
Другие интересные статьи по C# ищите тут: http://itw66.ru/blog/c_sharp/
Написание компактного и эффективного кода в C#: http://itw66.ru/blog/c_sharp/520.html
Экспресс по Java [NoBugs WTF PRO уровень]NoBugs Если вы подзабыли основные конструкции в Java, в этом уроке мы быстро пройдемся по основам и вспомним, как реализовано ООП в Java.
Статический анализ кода: Что? Как? Зачем?Andrey KarpovМетодология статического анализа год за годом зарекомендовывает себя в поисках дефектов в исходном коде программ.
Максим расскажет про:
- методологию статического анализа и какие плюсы и минусы у нее есть;
- технологии этой методологии, которые позволяют выявлять разнообразнейшие дефекты в коде;
- интересные примеры ошибок в реальных проектах, которые были найдены при помощи статического анализа;
- интеграцию инструментов статического анализа в проекты любой сложности, и почему так важно регулярное использование подобных инструментов.
Лекция 11. Вычислительная модель PregelTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 14. Hadoop в Поиске Mail.RuTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 13. YARNTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 12. SparkTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 10. Apache MahoutTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 9. ZooKeeperTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 7. Введение в Pig и HiveTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 6. MapReduce в Hadoop (графы)TechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 5. MapReduce в Hadoop (алгоритмы)TechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 4. MapReduce в Hadoop (введение)TechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 3. Распределённая файловая система HDFSTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 2. Основы HadoopTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Лекция 1. Введение в Big Data и MapReduceTechnoparkТехносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №10 "Нереляционное решение в области баз данных — NoSQL". Лектор - Станислав Ступников.
Вводная часть посвящена определению и истории развития концепции NoSQL. Даются характеристики, рассказывается о способах использования. Рассматриваются виды NoSQL БД, теоретические основы NoSQL, а в конце лекции обсуждаются недостатки NoSQL-решений, а также проводится сравнение разных NoSQL-решений.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №10 "Нереляционное решение в области баз данных — NoSQL". Лектор - Станислав Ступников.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №9 "Безопасность баз данных"TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №9 "Безопасность баз данных". Лектор - Павел Щербинин.
Открывается лекция рассказом о резервном копировании (о логических и физических резервных копиях, о выборе данных для копирования). Затем определяется терминология для обсуждения дальнейших вопросов. После этого рассматриваются основы учётных записей: таблицы доступа, привилегии, виды записей. Обсуждаются SQL-injection, список смежных вершин (Adjacency Set), вложенное множество (Nested Set), материализованный путь (Materialized Path) и комбинированный подход.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №8 "Конфигурирование базы данных"TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №8 "Конфигурирование базы данных". Лектор - Павел Щербинин.
Сначала объясняются основы конфигурирования и общие принципы настройки. Далее рассказывается об области видимости, о настройке использования памяти, обсуждается размер блока ключей key_cache_block_size. Рассматривается устройство и использование кэша InnoDB, а также кэшей потоков и таблиц. Затем говорится об особенностях ввода/вывода в InnoDB. Далее рассказывается о табличном пространстве, оптимизации файловой сортировки, переменных состояния. Финальная часть лекции посвящена репликации: настройка, синхронизация, топология, планирование пропускной способности, администрирование и обслуживание, проблемы и их решения.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №7 "Оптимизация запросов и индексирование". Лектор - Павел Щербинин.
Вначале рассказывается об оптимизации доступа к данным, о декомпозиции соединения и состоянии запроса. Далее идёт большой блок, посвящённый оптимизатору запросов (изменение порядка соединения, применение алгебраических правил эквивалентности, оптимизации COUNT(), MIN(), MAX(), вычисление и свертка константных выражений, покрывающие индексы, оптимизация подзапросов, раннее завершение, сравнение по списку IN() и распространение равенства). Затем последовательно рассматриваются такие вещи, как соединение (JOIN) в MySQL, оптимизатор сортировки, коррелированные подзапросы, слияние и непоследовательный просмотр индексов, функции SELECT & UPDATE, COUNT(). После этого рассказывается об оптимизации запросов с помощью JOIN, GROUP BY, DISTINCT и LIMIT со смещением. В конце лекции даётся информация о кэшировании запросов, объединённых таблицах и секционировании.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №5 "Определение узких мест"TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных".
Лекция №5 "Определение узких мест". Лектор - Павел Щербинин.
Вначале рассказывается о подсистемах хранения: MyISAM, InnoDB, Memory, о критериях выбора подсистем хранения, приводятся практические примеры. Затем обсуждается тема индексирования (B-tree, хеш-индексы) и EXPLAIN (столбцы id, table, possible_keys, key, key_len).
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
СУБД 2013 Лекция №4 "Расширенные возможности работы с базами данных. Триггеры...TechnoparkТехнопарк Mail.ru Group, МГТУ им. Н.Э. Баумана. Курс "Базы данных". Лекция №4 "Расширенные возможности работы с базами данных. Триггеры и хранимые процедуры"
Лектор - Павел Щербинин.
Первая часть лекции посвящена хранимым процедурам (использование, примеры кода, аспекты безопасности при использовании хранимых процедур): LOOP, REPEAT, WHILE, HANDLER, курсоры, EXECUTE. Во второй части рассказывается о триггерах: BEFORE, AFTER, INSTEAD OF, о специальных таблицах inserted, updated и deleted, об использовании триггеров для поддержания целостности и бизнес-логики, о проблемах при использовании триггеров, приводятся примеры кода. В завершающей части лекции обсуждаются вопросы, связанные с транзакциями: концепция A.C.I.D.; уровни изоляции ANSI/ISO (SET TRANSACTION ISOLATION LEVEL); взаимовлияние транзакций и проблемы lost update, dirty read, non-repeatable read и phantom read; технология MVCC (контроль версионирования конкуренции); конкуренция; параллельность и согласованность.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9obOz5K695ugYuiOOCBciEi
2. План лекции
2
1. Наследование
2. Object, Class
3. Примитивные типы
4. Массивы и Строки
5. Size of Object
6. Deploy
3. Наследование в Java
public abstract class Animal {
private int weight;
public Animal(int weight){
this.weight = weight;
}
public boolean isDangerous(){
return isPredator() || getWeight() > 15;
}
protected int getWeight(){
return weight;
}
abstract boolean isPredator();
}public interface Jumpable {
boolean canJump();
}
<<abstract>>
Animal
- int weight
+ boolean isDangerous()
# int getWeight()
boolean isPredator()
<<interface>>
Jumpable
boolean canJump()
3
4. Наследование в Java
public class Elefant extends Animal implements Jumpable {
private boolean canJump = false;
public Elefant(){
super(200);
}
public boolean isPerdator(){
return false;
}
public bolean canJump(){
return canJump;
}
}
<<abstract>>
Aminal
<<interface>>
Jumpable
Elefant
4
5. Наследование в Java
public static void main(String[] args) {
//Animal animal = new Animal();
Elefant elefant = new Elefant();
boolean isDangerous = elefant.isDangerous();
if(elefant.canJump())
jump(elefant);
Jumpable mouse == null;
mouse = new Mouse();
//boolean isMouseDangerous = mouse.isDangerous();
if(mouse.canJump())
jump(mouse);
}
public static void jump(Jumpable object){
//Animal animal = object;
//boolean isDangerous = object.isDangerous(); - ошибка
if(object.canJump()){…}
} 5
6. Множественное наследование
public class Elefant extends Animal implements Jumpable, Movable{
…
}
Animal
<<interface>>
Movable
Elefant
<<interface>>
Jumpable
6
7. План лекции
7
1. Наследование
2. Object, Class
3. Примитивные типы
4. Массивы и Строки
5. Size of Object
6. Deploy
8. ClassLoader
8
― часть JVM, которая загружает Classloader данные о классах
Все классы должны быть загружены при старте JVM
При старте JVM работают следующие загрузчики:
• Bootstrap class loader (<JAVA_HOME>/jre/lib)
• Extensions class loader (<JAVA_HOME>/jre/lib/ext)
• System class loader (CLASSPATH)
9. java.lang.Class
чертеж самолета
на бумаге
Понятие
«абстрактный самолет»
Понятие
«абстрактный чертеж»
самолет
java.lang.Class
Class clazz = getClass();
class Airplane{…}
Airplane plane = new …
9
10. java.lang.Class
10
― объект, который представляет в runtime данные Class о классе объекта
Основные методы класса Class
static Class<T> forName(String className)
String getCanonicalName()
Fields[] getField(String name)
Class[] getInterfaces()
Method[] getMethods()
Constructor[] getConstructors()
11. class Object
class MyClass{…} == class MyClass extends Object{…}
void myFunction(Object varName) – может «обработать» любой объект
Основные методы класса Object
11
― класс от которого унаследованны class Object все остальные классы
public Class<?> getClass()
public String toString()
public boolean equals(Object obj)
public int hashCode()
protected Object clone()
12. План лекции
12
1. Наследование
2. Object, Class
3. Примитивные типы
4. Массивы и Строки
5. Size of Object
6. Deploy
13. Примитивные типы
13
bits type type
8 byte boolean
16 short char
32 int float
64 long double
14. Обертки простых типов
14
boolean, byte, char, short, int, float, long, double
Примитивные типы:
мало памяти
простая структура
Stack
Boolean, Byte, Character, Short, Integer, Float, Long, Double
Обертки простых типов:
наследники от Object
сложные типы
Heap
15. Boxing и Unboxing
15
Boxing
Character a = ‘a’;
Unboxing
int a = 1 + new Integer(2);
16. План лекции
16
1. Наследование
2. Object, Class
3. Примитивные типы
4. Массивы и Строки
5. Size of Object
6. Deploy
17. []
17
Массив это объект (наследник от Object)
Массив хранит свой размер: (new int[100]).length;
Переменная может быть размером массива
int[] arrayInts = new int[100];
String[] arrayStrings = new String[100];
int[] arrayInts = {1, 1, 2, 3, 5};
java.lang.Arrays – класс для работы с массивами
18. String
18
char – 16 bit (UTF-16)
String – обертка над char[]
Immutable: “abc” + “bcd” – создание новой строки
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2);
19. План лекции
19
1. Наследование
2. Object, Class
3. Примитивные типы
4. Массивы и Строки
5. Size of Objects
6. Deploy
21. Size of Objects
21
Точный размер объекта зависит от:
• Версии java
• Издателя (Oracle JDK, open JDK…)
• Разрядности ОС
• Параметров запуска JVM
Для измерения размера используют «инструменты»
22. Size of Objects
22
Размер объекта состоит из:
• Object header (8 byte)
• Размера примитивных типов
• Размера ссылок (32 или 64 бита на ссылку)
+ Гранулярность 8 байт
29. Сборка и запуск
29
mvn compile
mvn assemble:single
cp ./target/project.jar ./
java –classpath project.jar path.to.Main PORT
30. Stop server
30
curl http:/localhost:808N/admin?shutdown=1000
31. Правила РК
31
В каждом РК каждый студент отвечает:
• теорию по модулю (5 баллов),
• на вопросы по коду (5 баллов)
• на вопросы по тестам к коду модуля (5 баллов).
Для разработки проекта студенты могут объединиться в группы
по 2-3 человека.
На каждом РК группа:
• проходит ревью кода (5 баллов)
• показывает, что код делает то, что было в задании (5 баллов).
За каждый РК: 15 баллов студент зарабатывает самостоятельно и
10 от групповой работы.