Нас с детства окружают правила, которые не хочется нарушать. Мы не суем пальцы в розетку, переходим улицу на зеленый свет и не сушим кота в микроволновке. В детстве нам просто говорят, что так делать нельзя, и мы этому верим.
Повзрослев, мы понимаем, почему этого делать не следует, и радуемся, что мы получили такие знания не на своем опыте.
А бывают другие правила. Такие, как не свистеть дома, опасаться черных кошек или не рассыпать соль. Они оказываются на проверку мифами, что, впрочем, не мешает миллионам людей слепо им следовать.
Как раз о подобных мифах из мира программирования мы и поговорим на этом докладе. Некоторые из них применимы не только к .NET, но и к другим платформам.
Внимание! На докладе у ряда слушателей возможен батхёрт.
"Архитектурный шаблон Reflex - новый подход к разработке клиент-серверных при...Fwdays
В рамках этой презентации будет обсуждаться концепция клиент-серверного приложения, которое единоразово решает задачу "получения-передачи данных". Приложения, которое работает с данными, но при этом не запрашивает эти данные при помощи выборок, чем существенно сокращает количество серверсайд кода, повышает надежность и производительность приложения, а также предлагает множество инновационных свойств, недоступных при использовании обычной клиент-серверной архитектуры.
При создании интерактивного мобильного или веб-приложений нужна серверная часть, которую будет использовать приложение и разработчик этого приложения. Он должен знать маршруты, по которым можно найти методы, их описание, входные параметры и варианты ответов.
В идеале хочется, чтобы из API можно было мгновенно сгенерировать клиентский код. А ещё реализация метода всегда может измениться, и нужно предусмотреть версионность, чтобы старые клиенты могли продолжать работать без ошибок.
Можно подумать, что реализация этого может занять месяцы, но я покажу, как реализовать это на ASP.NET Core за 20 минут.
«Advanced {product_name} configuring», Алексей Макеев, Mail.Ru GroupMail.ru Group
Алексей рассказал об организации конфигурирования программного продукта с помощью конфигурационных файлов и привел примеры из практики. Речь шла о том, как сделать код работы с конфигурацией вашим верным помощником.
Секционный доклад
Экскурс в мир WEB разработки
Дмитрий Лаабе
Генеральный директор и основатель рекрутинговой компании IT-Доминанта
Технический директор и программист
портала Айти-Событие
Россия. Санкт-Петербург
http://it-sobytie.ru/events/3120
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
Какой должна быть NoSQL СУБД эпохи облаков? Что такое IBM Cloudant и Apache CouchDB?
Как они связаны друг с другом, и есть ли польза для Open Source проекта от коммерческого облачного сервиса на его основе?
InterBase на разных устройствах быстрый старт. 2017-03-30 sandy97
Слайды практического вебинара, на котором показана последовательность шагов для проектирования и создания БД InterBase на сервере и мобильных устройствах, создания простых приложений, использующих эту БД на ПК и мобильных устройствах. С участием ведущего эксперта по InterBase и FireBird - Дмитрия Кузьменко
Что такое Java? Кто такой Java разработчик?GetITAbroad
1. Какие разновидности Java бывают?
2. Можно ли взаимодействовать в Java с СУБД с помощью JDBC и через Hibernate - в чем разница?
3. Основные фреймворки и области их применения. Веб разработка на Java (особенности, соотв. технологии и т.д.)?
4. Нужно ли Java-разработчику нужно знать основы Javascript?
5.Чем отличается сервер приложений JBoss от остальных, правильно я понимаю, что в качестве контейнера сервлетов JBoss использует Tomcat, почему?
6.EJB используется для поддержки серверных компонентов, содержащих бизнес-логику, что это значит? В чем специфика “бизнес-логики” и где это нужно?
7. Если технически не подкованный заказчик передает слова руководителя тех. отдела “разработчик должен знать только стандартный пакет средств для Java, ничего специфичного”, это имеет какой -то смысл? Есть какой-то “стандартный пакет” и если да, то что в него включается?
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
При создании интерактивного мобильного или веб-приложений нужна серверная часть, которую будет использовать приложение и разработчик этого приложения. Он должен знать маршруты, по которым можно найти методы, их описание, входные параметры и варианты ответов.
В идеале хочется, чтобы из API можно было мгновенно сгенерировать клиентский код. А ещё реализация метода всегда может измениться, и нужно предусмотреть версионность, чтобы старые клиенты могли продолжать работать без ошибок.
Можно подумать, что реализация этого может занять месяцы, но я покажу, как реализовать это на ASP.NET Core за 20 минут.
«Advanced {product_name} configuring», Алексей Макеев, Mail.Ru GroupMail.ru Group
Алексей рассказал об организации конфигурирования программного продукта с помощью конфигурационных файлов и привел примеры из практики. Речь шла о том, как сделать код работы с конфигурацией вашим верным помощником.
Секционный доклад
Экскурс в мир WEB разработки
Дмитрий Лаабе
Генеральный директор и основатель рекрутинговой компании IT-Доминанта
Технический директор и программист
портала Айти-Событие
Россия. Санкт-Петербург
http://it-sobytie.ru/events/3120
IBM Cloudant и Apache CouchDB: NoSQL базы данных эпохи облаковMaxim Zinal
Какой должна быть NoSQL СУБД эпохи облаков? Что такое IBM Cloudant и Apache CouchDB?
Как они связаны друг с другом, и есть ли польза для Open Source проекта от коммерческого облачного сервиса на его основе?
InterBase на разных устройствах быстрый старт. 2017-03-30 sandy97
Слайды практического вебинара, на котором показана последовательность шагов для проектирования и создания БД InterBase на сервере и мобильных устройствах, создания простых приложений, использующих эту БД на ПК и мобильных устройствах. С участием ведущего эксперта по InterBase и FireBird - Дмитрия Кузьменко
Что такое Java? Кто такой Java разработчик?GetITAbroad
1. Какие разновидности Java бывают?
2. Можно ли взаимодействовать в Java с СУБД с помощью JDBC и через Hibernate - в чем разница?
3. Основные фреймворки и области их применения. Веб разработка на Java (особенности, соотв. технологии и т.д.)?
4. Нужно ли Java-разработчику нужно знать основы Javascript?
5.Чем отличается сервер приложений JBoss от остальных, правильно я понимаю, что в качестве контейнера сервлетов JBoss использует Tomcat, почему?
6.EJB используется для поддержки серверных компонентов, содержащих бизнес-логику, что это значит? В чем специфика “бизнес-логики” и где это нужно?
7. Если технически не подкованный заказчик передает слова руководителя тех. отдела “разработчик должен знать только стандартный пакет средств для Java, ничего специфичного”, это имеет какой -то смысл? Есть какой-то “стандартный пакет” и если да, то что в него включается?
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова.
Курс "Методы распределенной обработки больших объемов данных в Hadoop"
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9rPxMIgPri9YnOpvyDAL9HD
Переводим без интернета: как мы делали Яндекс.Перевод для iOS, Иван МоскалёвYandex
Рассказ о том, как удалось портировать сервис машинного перевода на мобильное устройство, какие сопутствующие задачи пришлось решить и какие грабли поджидали на пути. Обсудим также, насколько современные мобильные приложения зависимы от наличия сети и как проектировать архитектуру так, чтобы в будущем не набить шишек при добавлении офлайн-режима.
#ITsubbotnik Spring 2017: Sergey Chernolyas "JPA for NoSQL"epamspb
Для многих разработчиков стало привычным делом описывать доменные модели своих приложений с помощью JPA. И этот подход хорошо зарекомендовал себя в мире реляционных баз данных. Однако ... Возможно ли использование привычного подхода в мире NoSQL?
Мы поговорим об использовании JPA для NoSQL хранилищ (с примерами) и проекте HIbernate OGM. А также о СУБД OrientDB (с примерами) и моем интеграционном модуле для этой СУБД.
MyBatis и Hibernate на одном проекте. Как подружить?Alexey Zinoviev
Zinoviev Alexey presented this paper on CodeFest 2013, Novosibirsk.
Paper covers next topics: Hibernate, MyBatis, ORM, databases, SQL, JDBC, patterns, XML
Зиновьев Алексей Zinoviev Alexey выступил на Codefest 2013 с данным докладом.
Видео приглашение: http://youtu.be/8KObW8pZ9e0
Видео доклада: http://youtu.be/Tm5rl4ObWBA
The document provides instructions for extending a UDP server to handle additional commands for reading the state of GPIO pins connected to LEDs on a board. The UDP server extension should accept "read gpio<PORT> <PIN>" commands to check the status of LEDs connected to pins 13, 12, 14, and 15, and reply with the pin and state like "GPIOD.15=1". The ncat utility can be used as a UDP client to send commands to control the LEDs or get their status by communicating with ports 5678 and 1234 of the UDP server, respectively.
This document provides an agenda and overview of topics related to the transport layer and networking essentials. The agenda includes discussions of the transport layer, UDP overview, TCP communication process, the socket API, and tools and utilities. Specific topics that will be covered include the role and functions of the transport layer, UDP features and headers, TCP reliability mechanisms like connection establishment and termination, sequence numbers and acknowledgments, window sliding, and data loss/retransmission. The document also provides brief overviews and usage examples for common networking tools like ifconfig, nmcli, route, ping, traceroute, netstat, dig, ncat, nmap, tcpdump, and wireshark.
This document provides an overview of connecting the STM32F407x microcontroller on the GlobalLogic Embedded Starter Kit to Ethernet. It discusses the STM32F407x Ethernet interface, HAL Ethernet driver, Lightweight TCP/IP stack, and examples of implementing TCP client/server and an HTTP server. The KSZ8081RND PHY chip is used along with the RMII interface. The document also outlines configuring LwIP and developing a UDP server to control LEDs on the board via commands from a UDP client.
The document provides an agenda and overview of key topics related to networking essentials including the network layer, IPv4 and IPv6 packets and addresses, and network address translation (NAT). Specifically, it discusses network layer characteristics such as addressing, encapsulation, routing and de-encapsulation. It also examines IPv4 packet headers, fragmentation, and maximum transmission units. IPv6 is introduced as improving on IPv4 by providing increased address space and simplified packet handling. Network address translation is defined as a method for mapping an IP address space to overcome IPv4 address depletion.
This document provides an overview of networking concepts including network types, medium access control protocols, TCP/IP protocol suite, addressing, Ethernet frames, ARP, and standards organizations. It begins with an agenda that lists these topics and includes diagrams to illustrate CSMA/CD, the OSI model, TCP/IP encapsulation, and Ethernet encapsulation. Examples are provided for different network devices, addressing formats and protocols.
This document is a training presentation on I2C interface. It discusses understanding I2C, the internal structure of I2C modules, the I2C interface in an embedded starter kit schematic, using an I2C PWM LED controller, and using I2C in blocking mode. The individual task is to control LED brightness using I2C PWM outputs by modifying the duty cycle, frequency, and number of outputs.
The document describes a workshop for the GlobalLogic Embedded Starter Kit (GL ESK). It includes instructions for a "Hello World" project using the kit to blink an LED. It also provides guidance on additional exercises including controlling more LEDs with buttons, using interrupts to check buttons, and debugging techniques. The document recommends downloading documentation and sources from GitHub and provides information on the STM32F407 microcontroller and Discovery board used with the kit.
This document is a training module on using UART interfaces. It discusses UART fundamentals, the UART interface on an embedded starter kit, the internal structure of UART modules, and how to use UART in both polling and interrupt modes. Learners are assigned the tasks of modifying an existing UART code to control additional LEDs and print sensor values to a terminal using UART communication.
Bare metal training_04_adc_temp_sensorRoman Brovko
This document outlines the goals, theory, and practice of a training on using analog to digital converters (ADCs) in polling and interrupt modes. The training covers the internal structure of ADCs, using an on-board temperature sensor, reading voltage values from an external potentiometer, and reading multiple ADC channels. Trainees are assigned individual tasks like controlling LED brightness based on temperature sensor readings.
This document provides an overview of a training on timers and PWM for bare metal embedded systems. The goals are to learn clock control, generate 1Hz signals using delays and timers, and create PWM signals at predefined duty cycles. It explains clock control diagrams and settings, and provides code examples to generate a 1Hz signal using delays, use Timer4 to toggle a pin in an interrupt handler, and set up PWM on Timer4 Channel 3. Finally, it lists an individual task to control 4 LEDs with PWM using different channels and buttons to fade the LEDs in/out.
Bare metal training_02_le_ds_and_buttonsRoman Brovko
This document provides an overview of training materials for an embedded starter kit focused on bare metal programming of LEDs and buttons. The goals are to create firmware to control LEDs and read button presses, learn about the hardware operation of LEDs and buttons, and learn GPIO input/output and interrupt basics. It introduces GPIO configuration as digital I/O with pull-up/down resistors or analog, covers GPIO pin functionality, and discusses using interrupts to address the delay issues of polling button states in a main loop. The practice section has the learner set up a project to control an LED based on a button press via polling initially, then refactors to use interrupts to eliminate delays.
This document outlines a training for creating a "Hello World" firmware project for an embedded starter kit using the Keil IDE. The goals are to create an LED blinking firmware, learn the hardware basics of the starter kit, and learn how to create, build, flash and debug firmware projects. Trainees will go through adding LEDs to the project, implementing a custom blinking sequence, and stepping through the code using the debugger.
This document provides instructions for installing software prerequisites for a bare metal embedded training using a GlobalLogic starter kit. The instructions include downloading and installing: 1) An ST-Link driver to interface with the board; 2) Keil uVision IDE for embedded development; and 3) STM32 CubeMx for configuration. Completing these steps prepares the hardware and software for the trainings by setting up the development environment and debugger connection to the board.
The document discusses several topics related to advanced C language programming including:
1. Decomposing a program into multiple files by creating libraries and header files.
2. The structure of a software component including public header files, private header files, and library object files.
3. Techniques for building a program such as compilation, linking, and conditional compilation.
2. Hibernate
• Cлой (фреймворк) между БД и приложением
• Не нужно создавать «прямые» SQL запросы через JDBC
• Может применяться в любом типе приложения (desktop/web,
Spring и пр.)
• Основная цель – работа с таблицами БД как с объектами
• Легче создавать правильный абстрактный уровень для
приложения (применять принципы ООП)
• http://hibernate.org/
• Документация:
• http://hibernate.org/orm/documentation
3. ГДЕ ЗДЕСЬ JDBC
• На низком уровне Hibernate выполняет SQL запросы через JDBC
• JDBC – обязательно нужно знать
5. Плюсы Минусы
• Более высокоуровневый (ООП-ориентированный)
код, без ручной работы с JDBC API
• Переносимость (перенос на другую БД в
основном требует небольших изменений)
• Много примеров и документации
• Работа со всеми популярными СУБД
• Работа с NoSQL решениями
• Интеграция с фреймворками, IDE
• Удобство (для тех, кто разобрался с основами)
• Можно не углубляться в SQL
• Множество настроек (транзакции, кеширование,
генерация таблиц и пр.)
• Обновления, улучшения
• В крупных проектах возможна потеря
производительности (тяжеловесность), при
неправильных настройках
• Дополнительно нужно изучать API для Hibernate и
JPA
• Сложность для новичков - множество настроек,
аннотаций, специфики
• Меньше контроля (доступа к БД на низком
уровне)
• Привязка к своему API (все меньше и меньше)
6. Hibernate API
• В ранних версиях Hibernate имел сильную привязку к своему API, из-за чего переход на другую
JPA реализацию проходил не так быстро
• В данный момент с каждой версией происходит уклон в сторону JPA API
HIBERNATE
JPA API + HIBERNATE API
7. Что нужно знать
• Обязательно:
• JDBC
• SQL
• ООП
• Желательно:
• XML
• Аннотации в Java
• Работа в какой-либо IDE
8. Домашнее задание
• Добавить в закладки:
• http://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#architecture
• Пройти раздел 1. Architecture
• * Используйте документацию для последней версии Hibernate (на данный момент)