Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Vadim Kruchkov
Вадим Крючков [Long], руководитель группы разработки, компания Agunga
Считается (в общем случае — вполне справедливо), что писать демонов на PHP — моветон. Использовать для прототипирования интерфейсов взаимодействия — можно, а вот в продакшене ни-ни. Именно с таким представлением мы начинали разработку новой версии игры — проработаем интерфейсы взаимодействия с демоном, который к запуску будет переписан на высокопроизводительном С. Однако, первые тесты демона, написанного на PHP с использованием libevent, заставили нас серьезно задуматься — а нужен ли нам переход на С? Какую производительность нам удалось достичь? Течет ли память? Обо всем этом будет рассказано в докладе. А так же - особенности использования и недокументированные возможности расширения, облегчающие рутинные операции
Эвристический метод обнаружения DOM-based XSS с использованием толерантных си...Positive Hack Days
Будет описан подход к обнаружению и предотвращению атак DOM-based XSS на клиентской стороне веб-приложения с использованием синтаксических анализаторов JavaScript, толерантных к синтаксическим ошибкам. Метод ориентирован на применение в межсетевых экранах уровня приложения (WAF).
Пора ли отправлять С на свалку истории? Пишем демонов на PHP с использованием...Vadim Kruchkov
Вадим Крючков [Long], руководитель группы разработки, компания Agunga
Считается (в общем случае — вполне справедливо), что писать демонов на PHP — моветон. Использовать для прототипирования интерфейсов взаимодействия — можно, а вот в продакшене ни-ни. Именно с таким представлением мы начинали разработку новой версии игры — проработаем интерфейсы взаимодействия с демоном, который к запуску будет переписан на высокопроизводительном С. Однако, первые тесты демона, написанного на PHP с использованием libevent, заставили нас серьезно задуматься — а нужен ли нам переход на С? Какую производительность нам удалось достичь? Течет ли память? Обо всем этом будет рассказано в докладе. А так же - особенности использования и недокументированные возможности расширения, облегчающие рутинные операции
Эвристический метод обнаружения DOM-based XSS с использованием толерантных си...Positive Hack Days
Будет описан подход к обнаружению и предотвращению атак DOM-based XSS на клиентской стороне веб-приложения с использованием синтаксических анализаторов JavaScript, толерантных к синтаксическим ошибкам. Метод ориентирован на применение в межсетевых экранах уровня приложения (WAF).
JS Fest 2019/Autumn. Дмитрий Жарков. Blockchainize your SPA or Integrate Java...JSFestUA
Blockchain and decentralized applications are getting used more and more often. Many big enterprises like IBM, Walmart, Alibaba, FedX, British Airways, and others are already integrating blockchain into their ecosystems.
As most of the applications on the web, decentralized applications require a client to make interaction with them user-friendly. I would like to share how to connect/integrate JavaScript applications with decentralized, blockchain services. Take a look at what are the differences between decentralized and standard backends, what challenges and issues developers might meet.
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
Web-программирование
Лекция #5. Введение в язык программирования Python 3
Цикл лекций читается в Омском государственном университете им. Ф.М.Достоевского на факультете компьютерных наук.
Лектор: Яковенко Кирилл Сергеевич.
«Статический анализ: гордость и предубеждения», Алексей Кузьменко, аналитик И...Mail.ru Group
Анализ кода — один из эффективных подходов к выявлению дефектов на этапе разработки программного обеспечения. Это позволяет избежать тривиальных и не очень ошибок, которые могут приводить к появлению уязвимостей. Существует ряд подходов, применяемых в анализаторах, на основании которых производится анализ, позволяющий снижать риски. Однако возникает ряд предубеждений, ведь не всегда предупреждение анализатора является реальным дефектом, тем более, что не всякий дефект является уязвимостью.
Вводная лекция в язык C#, для тех кто знает программирование и в особенности C++. В статье будет уделено внимание наиболее важным отличиям языков, будут обсуждаться вопросы производительности и эффективного кода.
Другие интересные статьи по C# ищите тут: http://itw66.ru/blog/c_sharp/
Написание компактного и эффективного кода в C#: http://itw66.ru/blog/c_sharp/520.html
Гуманитарные специальности в IT-индустрии
Анна Астахова, старший аккаунт-менеджер в компании Nоveо.
Noveo — международная IT‑компания. Наши главные офисы разработки ПО находятся в Новосибирске и Санкт-Петербурге, представительства — в Москве, Париже, Лондоне и Сиэтле.
2. NSError+NSExeption
Ошибки бывают двух видов
Деление на 0, выход
за границы массива,
...
NSException
Не удалось
загрузить файл, не
удалось создать
объект, …
NSError
3. NSError+NSExeption
NSError+NSExeption
NSError
NSURL *yandex = [NSURL URLWithString:@"http://ya.ru"];
NSError *error = nil;
NSString *yandexString =
[NSString stringWithContentsOfURL:yandex
encoding:NSUTF8StringEncoding
error:&error];
NSError всегда
передается как
указатель на указатель
4. NSError+NSExeption
NSError+NSExeption
Информация об ошибке
- (NSInteger)code; // код ошибки
- (NSString *)domain; // домен ошибки (напр., NSCocoaErrorDomain)
// могут существовать ошибки с одним кодом, но разными доменами
- (NSDictionary *)userInfo; // дополнительная информация
6. NSError+NSExeption
NSError+NSExeption
Как использовать такие методы?
//...
NSError *error = nil;
NSString *yandexString =
[NSString stringWithContentsOfURL:yandex
encoding:NSUTF8StringEncoding
error:&error];
// сначала проверяем, произошла ли ошибка...
if (error != nil) {
// …, и только после этого обрабатываем ошибку
NSLog(@"Error - %@", error);
}
7. NSError+NSExeption
NSError+NSExeption
Как самому создать такой метод?
- (BOOL)myOwnMethodReturnsError:(NSError *__autoreleasing *)error {
//...
if (somethingWrong && error) {
*error = [[NSError alloc] initWithDomain:@"MyErrorDomain"
code:666
userInfo:nil];
return NO;
}
return YES;
}
8. NSError+NSExeption
NSError+NSExeption
NSException
NSArray *array = @[@"one", @"two", @"three"];
int index = 100;
@try {
NSLog(@"%d item: %@", index, array[index]);
}
@catch (NSException *exception) {
NSLog(@"Oops... exception occured");
NSLog(@"Name - %@", exception.name);
NSLog(@"Reason - %@", exception.reason);
}
@finally {
// запускается независимо от того, было исключение или нет
}
9. NSError+NSExeption
NSError+NSExeption
Скорее всего, вам это не пригодится
NSException *myException =
[[NSException alloc] initWithName:@"ExceptionName"
reason:@"ExceptionReason"
userInfo:nil];
@throw myException;
//или
[NSException raise:@"ExceptionName" format:@"ExceptionReason"];