Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Yandex
Флеш-накопители используются в самых разных устройствах, от мобильных телефонов до компьютеров и серверов. Для каждой модели накопителя нужна прошивка с определённым набором параметров, которые могут отличаться в зависимости от ситуации. В докладе будет описан универсальный фреймфорк на С++, который предоставляет разработчикам симуляторов простой, прозрачный и быстрый доступ к любому параметру. Тестировщикам же он позволяет управлять конфигурациями при помощи стандартных инструментов редактирования и слияния.
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Yandex
Основываясь на опыте разработки Крипты, Дмитрий рассмотрит средства реализации статического и динамического полиморфизма в C++, а также некоторые их паттерны и антипаттерны.
Модель памяти C++ - Андрей Янковский, ЯндексYandex
В докладе Андрей расскажет о моделях памяти различных процессоров, о тонкостях реализации неблокирующих алгоритмов и о том, какое отношение всё это имеет к С++.
This document discusses teaching game development using mini-games to teach programming and design concepts. It provides an overview of setting up the development environment and tools, basic game programming concepts like cameras and matrices, and approaches for simple games like Pong to teach core mechanics.
Writing concurrent code is becoming more and more important to leverage the parallelism of multicore architectures. The C++11 library introduced futures and promises as a first step towards task-based programming. However, the C++ support of concurrency is still very limited. Other languages, like C# and Python, provide some forms of resumable functions or coroutines and in C#, the async/await pattern enables to write functions that suspend their execution while waiting for a computation or I/O to complete.This talk will describe a proposal for the addition of resumable function and async/await in C++17. We will focus on the implementation of resumable function on Windows, and we'll play with a first prototype of their implementation in the Visual Studio 2015 Preview. Finally, we will see how resumable functions can also be used to implement (lazy) generators, similar to the one provided by "yield" statements in C#.
Использование шаблонов и RTTI для конфигурации симулятора флеш-накопителя - Г...Yandex
Флеш-накопители используются в самых разных устройствах, от мобильных телефонов до компьютеров и серверов. Для каждой модели накопителя нужна прошивка с определённым набором параметров, которые могут отличаться в зависимости от ситуации. В докладе будет описан универсальный фреймфорк на С++, который предоставляет разработчикам симуляторов простой, прозрачный и быстрый доступ к любому параметру. Тестировщикам же он позволяет управлять конфигурациями при помощи стандартных инструментов редактирования и слияния.
Некоторые паттерны реализации полиморфного поведения в C++ – Дмитрий Леванов,...Yandex
Основываясь на опыте разработки Крипты, Дмитрий рассмотрит средства реализации статического и динамического полиморфизма в C++, а также некоторые их паттерны и антипаттерны.
Модель памяти C++ - Андрей Янковский, ЯндексYandex
В докладе Андрей расскажет о моделях памяти различных процессоров, о тонкостях реализации неблокирующих алгоритмов и о том, какое отношение всё это имеет к С++.
This document discusses teaching game development using mini-games to teach programming and design concepts. It provides an overview of setting up the development environment and tools, basic game programming concepts like cameras and matrices, and approaches for simple games like Pong to teach core mechanics.
Writing concurrent code is becoming more and more important to leverage the parallelism of multicore architectures. The C++11 library introduced futures and promises as a first step towards task-based programming. However, the C++ support of concurrency is still very limited. Other languages, like C# and Python, provide some forms of resumable functions or coroutines and in C#, the async/await pattern enables to write functions that suspend their execution while waiting for a computation or I/O to complete.This talk will describe a proposal for the addition of resumable function and async/await in C++17. We will focus on the implementation of resumable function on Windows, and we'll play with a first prototype of their implementation in the Visual Studio 2015 Preview. Finally, we will see how resumable functions can also be used to implement (lazy) generators, similar to the one provided by "yield" statements in C#.
Секционный доклад
Экскурс в мир WEB разработки
Дмитрий Лаабе
Генеральный директор и основатель рекрутинговой компании IT-Доминанта
Технический директор и программист
портала Айти-Событие
Россия. Санкт-Петербург
http://it-sobytie.ru/events/3120
Основы "мобильной" разработки на примере платформы iOs (iPhone)Pavel Tsukanov
Легкая обзорная лекция по платформе iOS. Рассмотрим специфику разработки под мобильные платформы, средства разработки, язык Objective-C, концепции применяемые при разработке под iOS. Расскажу шаги которые нужно сделать для создания вашего первого мобильного приложения.
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
Мы создаем nodejs приложения, используя различные современные технологии, такие как Docker, Consul, pm2. Современный спектр решений настолько обширен, что сложно не заблудиться. Как же выбрать нужные вашему проекту технологии, чтобы успешно его запустить и поддерживать? Будут рассказаны истории и, конечно же, даны вредные советы :)
Как на nodejs пройти путь от Hello world приложения до распределённого решения, состоящего из микросервисов?
Мы пройдём жизненный цикл продукта, начав с простого приложения на nodejs. Научимся его правильно запускать и будем постепенно добавлять элементы, убирая при этом ненужные. Так к нашему приложению присоединится гипервизор, а само оно будет разделено на части, где каждая сущность будет управлять своей частью приложения.
Построив таким образом архитектуру на чистом nodejs, мы займёмся развитием приложения, добавим современные технологии и применим новые подходы к организации инфраструктуры. Запакуем приложение в Docker, попутно обсудим, зачем он нужен и что может дать. И, наконец, решим проблему поиска запущенных сервисов и отслеживания их статусов, используя Consul.
Доклад для Middle и Senior .NET-программистов о различиях в рантаймах. Вы узнаете:
* чем отличается среда исполнения MS.NET от Моno;
* чем отличаются разные версии компилятора и BCL;
* как работает JIT-компилятор на различных архитектурах;
* что еще следует помнить, если вы пишете кроссплатформенные программы под .NET.
Доклад будет полезен всем разработчикам, которые хоть раз сталкивались с «неожиданным» поведением рантайма.
The document discusses transitioning a services business into a products business. It notes that services businesses sell human labor but are hard to scale with low added value, while products businesses can scale more easily with a higher multiplier effect. It cautions that when pivoting to products, companies should not use the same team, processes, knowledge, or space as their services side, and should treat product development as a separate endeavor with its own dedicated resources in order to succeed.
Секционный доклад
Экскурс в мир WEB разработки
Дмитрий Лаабе
Генеральный директор и основатель рекрутинговой компании IT-Доминанта
Технический директор и программист
портала Айти-Событие
Россия. Санкт-Петербург
http://it-sobytie.ru/events/3120
Основы "мобильной" разработки на примере платформы iOs (iPhone)Pavel Tsukanov
Легкая обзорная лекция по платформе iOS. Рассмотрим специфику разработки под мобильные платформы, средства разработки, язык Objective-C, концепции применяемые при разработке под iOS. Расскажу шаги которые нужно сделать для создания вашего первого мобильного приложения.
Инфраструктура распределенных приложений на nodejs / Станислав Гуменюк (Rambl...Ontico
Мы создаем nodejs приложения, используя различные современные технологии, такие как Docker, Consul, pm2. Современный спектр решений настолько обширен, что сложно не заблудиться. Как же выбрать нужные вашему проекту технологии, чтобы успешно его запустить и поддерживать? Будут рассказаны истории и, конечно же, даны вредные советы :)
Как на nodejs пройти путь от Hello world приложения до распределённого решения, состоящего из микросервисов?
Мы пройдём жизненный цикл продукта, начав с простого приложения на nodejs. Научимся его правильно запускать и будем постепенно добавлять элементы, убирая при этом ненужные. Так к нашему приложению присоединится гипервизор, а само оно будет разделено на части, где каждая сущность будет управлять своей частью приложения.
Построив таким образом архитектуру на чистом nodejs, мы займёмся развитием приложения, добавим современные технологии и применим новые подходы к организации инфраструктуры. Запакуем приложение в Docker, попутно обсудим, зачем он нужен и что может дать. И, наконец, решим проблему поиска запущенных сервисов и отслеживания их статусов, используя Consul.
Доклад для Middle и Senior .NET-программистов о различиях в рантаймах. Вы узнаете:
* чем отличается среда исполнения MS.NET от Моno;
* чем отличаются разные версии компилятора и BCL;
* как работает JIT-компилятор на различных архитектурах;
* что еще следует помнить, если вы пишете кроссплатформенные программы под .NET.
Доклад будет полезен всем разработчикам, которые хоть раз сталкивались с «неожиданным» поведением рантайма.
The document discusses transitioning a services business into a products business. It notes that services businesses sell human labor but are hard to scale with low added value, while products businesses can scale more easily with a higher multiplier effect. It cautions that when pivoting to products, companies should not use the same team, processes, knowledge, or space as their services side, and should treat product development as a separate endeavor with its own dedicated resources in order to succeed.
Stanfy is a Ukrainian company that specializes in developing mobile applications for iPhone and Android. They focus on creating apps for business, marketing, and entertainment. Their services include full-cycle app development from consulting to integration. Some of their clients include social networks and they have experience integrating apps with platforms like Facebook. The company aims to promote Ukraine's expertise in mobile development internationally.
- Mobile Internet has changed with advanced iPhone and Android platforms offering multi-touch screens, GPS, apps, and more. The iPhone is currently the most popular mobile platform with over 75,000 apps.
- iPhone users are very active mobile internet users, with over 57 million iPhone users actively using apps. 93% of iPhone users have used the App Store and installed apps, with 73% installing more than 5 apps. The iPhone accounts for over 50% of mobile internet traffic.
- As mobile apps are always accessible, they are more likely to be used than mobile websites. Developing a mobile app can increase user loyalty and attract new users, as well as gain press and blogger attention.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise boosts blood flow, releases endorphins, and promotes changes in the brain which help regulate emotions and stress levels.
Владимир Пузанов - JailBreak: Разработка без лимитовPavel Bashmakov
The document discusses jailbreaking, which refers to removing limitations on iOS devices imposed by Apple. It allows for full access to device filesystem, running of unapproved apps, and more functionality. Key tools for jailbreaking include Cydia, which brings a package manager like APT to iOS, and various hacking techniques that work around the technical restrictions through modifications to the device operating system and binaries.
Taras Kornichuk - Ценности социальной игровой платформы для разработчиков и и...Pavel Bashmakov
The document discusses social gaming platforms and their features. It lists popular platforms like AGON Online Crystal SDK, Gameloft Live, Geocade, Open Feint, and Plus+ and some of their key features like cross-promotion, leader boards, challenges, and Facebook/Twitter integration. It also mentions the lack of cross-promotion from some smaller companies and the large user bases of some title publishers.
Использование iPhone приложений в Бизнесе, Маркетинге и PRPavel Bashmakov
Платформа iPhone получила достаточно широкое распространение и выбрала определенную целевую аудиторию успешных и обеспеченных людей. Этими аппаратами пользуються президенты, депутаты, спикеры парламента, руководители и топ-менеджмент предприятий, члены их семей, золотая молодежь и, наконец, инноваторы, которые всегда хотят быть на гребне технологий.
И эта аудитория использует iPhone приложения для работы, развлечения или коммуникации.
1. OpenGL ES 1.1 и 2.0 для разработки iPhone игр Товченко Тарас [email_address]
2. OpenGL - реализует API для передачи графических данных на устройство для визуализации и последующего вивода этих данных на экран OpenGL API User Code данные и комманды визуализация и вывод
3.
4. Единый контекст 2 Render context View Texture 1 Texture 2 Texture 3 VBO 1 VBO 2 Shader Current Need bind 1 Плохая практика
9. Отличия OpenGL ES 1.1 и 2.0 Точка выбора версии OpenGL ES EAGLContext* myContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES1]; [EAGLContext setCurrentContext: myContext]; GLES 1.1 - реализует набор стандартных ф-й для вивода всей графической информации, в том числе и для затенения. GLES 2.0 - реализует набор ф-й для инициализации, управления состояниями контекста и вывода VBO c текстурами, все остальные операции (модификация вершин, затенение и т.п.) реализуются через шейдеры.
10. Шейдеры OpenGL ES 2.0 поддерживает: 1. Pixel Shaders (Fragment) - программа которая исполняется на видео карточке для каждого пикселя. 2. Vertex Shaders - тоже самое только вызывается для каждой вершины модели. Таким образом все операции по обработке вершин и пикселей можно писать на шейдерах и не тратить на них процессорное время. Это дает больше возможностей для реализации техник затенений.
14. Модели и VBO Как лучше: 1. Создавать для каждого объекта свой VBO, слить один раз данные, при условии что они не меняются, а потом при отрисовке перебирать все VBO и выводить? 2. Создать один VBO и каждый раз при отрисовке перебирать все объекты и заливать в него данные при этом не тратя время на переключение между буферами?
15. Решение Создаем один VBO, затем сливаем в него данные от всех объектов при этом пересчитываем индексы. object 1 object 2 object 3 vert: x0,y0,z0-x1... vert: x0,y0,z0-x1... vert: x0,y0,z0-x1... index: 0,2,1,3 index: 0,1,2 index: 2,1,3,0 index vbo 0,2,1,3, - 4,5,6, - 9,8,10,7
16. Правильная последовательность биндинга OpenGL объектов - залог производительности Очень важно во время рендеринга чем по менше использовать операции переключения текущего объекта (например текстуры) или изменения состояния opengl. Для этого нужно иметь так называемый дрокол вывода данных (drawing protocol), который представляет из себя отсортированный список объектов по состояниям отрисовки. Под состояниями понимается: 1. состояния самого opengl 2. текущая текстура 3. трансформации 4. и могут быть какие-то еще свои костомные атрибуты
17. Пример Есть 3 объекта и 2 текстуры object 1 object 2 object 3 tex 1 tex 2 tex 1 object 1 object 2 object 3 tex 1 tex 2 tex 1 Неправильно Правильно
18.
19. Экспорт 3D объектов из графических редакторов Maya 3DMax Для этой цели проще всего использовать формат OBJ в который умеет экпортировать почти любой 3D-редактор и который очень простой для парсинга и последующего извлечения данных. Но перед использованием данного формата в своем iPhone приложении его следует предварительно обработать.
20. OBJ - формат Является текстовым форматом в котором интересующие нас данные представлены в следующем виде: v 0.617428 -0.168873 -1.800043v 0.664162 0.002637 1.938868v 0.792035 -0.168873 -1.800043 vn -0.423596 -0.905671 0.018061vn -0.399840 -0.916549 -0.008100vn 0.403383 -0.915026 -0.003040 vt 0.520304 0.236667vt 0.662630 0.236373vt 0.662631 0.374176 f 0/2/5 4/3/0 2/0/1 f 8/3/2 2/3/4 4/6/7 f 1/4/7 2/3/8 2/9/3
21. iPhone приложения не должны тратить свое время на парсинг текста и построения правильной последовательности вершин и индексов, эта работа должна быть предварительно выполнена парсером. vertex data: x0, y0, z0, u0, v0, xn0, yn0, zn0, ... index data: 0, 4, 5, 3, 2, 3, 0, 1... Для удобства можно сделать что бы парсер результат своей работы сохранял в apple plist, в котором будут лежать уже правильно построенные бинарные данные в str-закодированном виде. И потом загружаем этот plist в NSDictionary и по имени тега получаем данные объекта.