Symbio, a leading software foundry, provides software product engineering and R&D co-creation services to the world's technology innovators. With offices in Finland, Sweden, USA and China, Symbio serves such world-leading companies like China Mobile, Google, Nokia, PayPal and ST-Ericsson. www.symbio.com.
Symbio, a leading software foundry, provides software product engineering and R&D co-creation services to the world's technology innovators. With offices in Finland, Sweden, USA and China, Symbio serves such world-leading companies like China Mobile, Google, Nokia, PayPal and ST-Ericsson. www.symbio.com.
Symbio, a leading software foundry, provides software product engineering and R&D co-creation services to the world's technology innovators. With offices in Finland, Sweden, USA and China, Symbio serves such world-leading companies like China Mobile, Google, Nokia, PayPal and ST-Ericsson. www.symbio.com.
Symbio, a leading software foundry, provides software product engineering and R&D co-creation services to the world's technology innovators. With offices in Finland, Sweden, USA and China, Symbio serves such world-leading companies like China Mobile, Google, Nokia, PayPal and ST-Ericsson. www.symbio.com.
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us as we explore the best of QML for mobile, embedded and desktop.
Part I will cover:
- Building Blocks of QML
- Qt Properties
- Declarative Code
Serving QML applications over the networkJeremy Lainé
Qt Quick's support for network transparency makes it possible to serve an application's user interface and logic over the network. This allows application developers to adopt fast web-like release cycles, but it does require some planning ahead. The presentation will highlight some benefits of serving QML applications over the network, give an overview of QML's network transparency support and illustrate how to build and serve QML applications. The presentation will also address some of the challenges encountered in a real world application deployment.
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for this webinar to explore the best of QML for mobile, embedded and desktop.
Part III will cover:
- C++ Backends
- Reusing existing code
- Creating QML Modules
This webinar presents the official set of bindings to use Qt's API in your Python application. Using real examples, we will not only implement a beautiful UI, we'll illustrate how it interacts with your regular Python business logic.
Symbio, a leading software foundry, provides software product engineering and R&D co-creation services to the world's technology innovators. With offices in Finland, Sweden, USA and China, Symbio serves such world-leading companies like China Mobile, Google, Nokia, PayPal and ST-Ericsson. www.symbio.com.
Symbio, a leading software foundry, provides software product engineering and R&D co-creation services to the world's technology innovators. With offices in Finland, Sweden, USA and China, Symbio serves such world-leading companies like China Mobile, Google, Nokia, PayPal and ST-Ericsson. www.symbio.com.
Symbio, a leading software foundry, provides software product engineering and R&D co-creation services to the world's technology innovators. With offices in Finland, Sweden, USA and China, Symbio serves such world-leading companies like China Mobile, Google, Nokia, PayPal and ST-Ericsson. www.symbio.com.
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us as we explore the best of QML for mobile, embedded and desktop.
Part I will cover:
- Building Blocks of QML
- Qt Properties
- Declarative Code
Serving QML applications over the networkJeremy Lainé
Qt Quick's support for network transparency makes it possible to serve an application's user interface and logic over the network. This allows application developers to adopt fast web-like release cycles, but it does require some planning ahead. The presentation will highlight some benefits of serving QML applications over the network, give an overview of QML's network transparency support and illustrate how to build and serve QML applications. The presentation will also address some of the challenges encountered in a real world application deployment.
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for this webinar to explore the best of QML for mobile, embedded and desktop.
Part III will cover:
- C++ Backends
- Reusing existing code
- Creating QML Modules
This webinar presents the official set of bindings to use Qt's API in your Python application. Using real examples, we will not only implement a beautiful UI, we'll illustrate how it interacts with your regular Python business logic.
In today’s economy, internationalization is increasingly important as our target audience has gone from being a local one to a global one. This webinar will look at what tools Qt provides for this task and cover best practices for C++ and QML, as well as the other steps you need to take to create a properly localized Qt application.
Qt Application Programming with C++ is one of the best Qt QML training and courses in Bangalore India. This workshop is ideal for anyone who want to get started with developing GUI Application using Qt framework. Starting with basics, this workshop covers developing multi-threaded, multimedia and 2D graphics based applications with multiple Do-It-Yourself (DIY) exercises.
In the final webinar in our summer series we will illustrate how the Model/View/Controller design pattern fits in Qt applications, specifically with the item-view objects. We'll present them, the model classes, and how they both interact. The concept will be demonstrated through a Napster/iTunes-like download manager.
QVariant, QObject — Qt's not just for GUI developmentICS
In part II of our Qt for Beginners Summer Webinar Series we will explore how Qt is so much more than just a GUI toolkit. Through two classes, QObject and QVariant, Qt brings us introspection, makes it easier to manage memory in C++ and makes it easier to decouple classes.
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for part 2 of our 4 part webinar series where we explore the best of QML for mobile, embedded and desktop.
Part 2 will cover:
Creating New Items
States and Transitions
Dynamic Creation of Items
OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...ICS
Watch the video here: http://bit.ly/1TA24fU
OpenGL Fixed Function to Shaders - Porting a fixed function application to “modern” OpenGL - Webinar Mar 2016
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for part 3 of our 4 part webinar series where we explore the best of QML for mobile, embedded and desktop.
Part 3 will cover:
C++ / QML Integration
Reusing Existing C++ Code
This workshop is aimed for professionals with Qt programming background who want to become proficient in developing excellent GUI by taking up Qt QML QtQuick courses in Bangalore. This workshop focuses on Qt Quick that separates declarative UI design and programming logic that enables you to develop UI in a super-fast manner. It also covers QML to do rapid prototyping of the UI. Build with ample hands-on sessions, this workshop makes you realize best-in-class UI for your products.
There is ongoing confusion, and some contention, over the right way to use the QThread class. Part of the confusion comes from the uniqueness of QThread, which is significantly different from other threading classes. There are two valid patterns of QThread use, and each pattern is best suited for different use cases. Errors will arise when mixing these two patterns, or applying them inappropriately.
This presentation will look at different patterns of threading in general, and examine in detail the two usage patterns for QThread. This talk will also cover how QThread works inside, how to communicate between threads, provide examples, and point out the pitfalls to avoid.
The model/view design pattern is the standard way of separating UI from business logic, especially when the data exchanged is dynamic. In a series of blog posts released in May, we presented an introduction to model/view design and provided an example of how this pattern is leveraged in Qt applications. In this webinar, we will go more in depth, illustrating model/view with a set of two QML programming examples. The first will consider the simple case where data size remains constant. The second will cover the more common situation where data size is dynamic.
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for part 1 of our 4 part webinar series where we explore the best of QML for mobile, embedded and desktop.
Part 1 will cover:
Building Blocks of QML
Qt Properties
Declarative Code
Anchors
The Qt Mobility project is developing new Qt APIs. These APIs will benefit all Qt developers. This presentation shall provide an overview of the APIs and demonstrate the use of some the APIs through an example application. This presentation shall fuel ideas for usage of the new APIs in your own projects.
Presentation by Alex Luddy held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Lockless Producer Consumer Threads: Asynchronous Communications Made EasyICS
In ICS’ latest technical webinar Justin Noel will teach you how to leverage Qt's cross thread communications systems to marshall data to and from communications threads using QThreads (or threads owned by third party libraries.) He’ll show you that by using the lockless producer consumer pattern you can write efficient and easy to read code without needing to add mutexes to your data structures, important because data read by QML bindings needs to be as quick as possible to avoid dropping frames. Don’t miss it!
In today’s economy, internationalization is increasingly important as our target audience has gone from being a local one to a global one. This webinar will look at what tools Qt provides for this task and cover best practices for C++ and QML, as well as the other steps you need to take to create a properly localized Qt application.
Qt Application Programming with C++ is one of the best Qt QML training and courses in Bangalore India. This workshop is ideal for anyone who want to get started with developing GUI Application using Qt framework. Starting with basics, this workshop covers developing multi-threaded, multimedia and 2D graphics based applications with multiple Do-It-Yourself (DIY) exercises.
In the final webinar in our summer series we will illustrate how the Model/View/Controller design pattern fits in Qt applications, specifically with the item-view objects. We'll present them, the model classes, and how they both interact. The concept will be demonstrated through a Napster/iTunes-like download manager.
QVariant, QObject — Qt's not just for GUI developmentICS
In part II of our Qt for Beginners Summer Webinar Series we will explore how Qt is so much more than just a GUI toolkit. Through two classes, QObject and QVariant, Qt brings us introspection, makes it easier to manage memory in C++ and makes it easier to decouple classes.
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for part 2 of our 4 part webinar series where we explore the best of QML for mobile, embedded and desktop.
Part 2 will cover:
Creating New Items
States and Transitions
Dynamic Creation of Items
OpenGL Fixed Function to Shaders - Porting a fixed function application to “m...ICS
Watch the video here: http://bit.ly/1TA24fU
OpenGL Fixed Function to Shaders - Porting a fixed function application to “modern” OpenGL - Webinar Mar 2016
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for part 3 of our 4 part webinar series where we explore the best of QML for mobile, embedded and desktop.
Part 3 will cover:
C++ / QML Integration
Reusing Existing C++ Code
This workshop is aimed for professionals with Qt programming background who want to become proficient in developing excellent GUI by taking up Qt QML QtQuick courses in Bangalore. This workshop focuses on Qt Quick that separates declarative UI design and programming logic that enables you to develop UI in a super-fast manner. It also covers QML to do rapid prototyping of the UI. Build with ample hands-on sessions, this workshop makes you realize best-in-class UI for your products.
There is ongoing confusion, and some contention, over the right way to use the QThread class. Part of the confusion comes from the uniqueness of QThread, which is significantly different from other threading classes. There are two valid patterns of QThread use, and each pattern is best suited for different use cases. Errors will arise when mixing these two patterns, or applying them inappropriately.
This presentation will look at different patterns of threading in general, and examine in detail the two usage patterns for QThread. This talk will also cover how QThread works inside, how to communicate between threads, provide examples, and point out the pitfalls to avoid.
The model/view design pattern is the standard way of separating UI from business logic, especially when the data exchanged is dynamic. In a series of blog posts released in May, we presented an introduction to model/view design and provided an example of how this pattern is leveraged in Qt applications. In this webinar, we will go more in depth, illustrating model/view with a set of two QML programming examples. The first will consider the simple case where data size remains constant. The second will cover the more common situation where data size is dynamic.
Qt Quick/QML brings designers and developers together to create and collaborate. QML is a collection of technologies that can build modern and fluid interfaces for applications – quickly. Join us for part 1 of our 4 part webinar series where we explore the best of QML for mobile, embedded and desktop.
Part 1 will cover:
Building Blocks of QML
Qt Properties
Declarative Code
Anchors
The Qt Mobility project is developing new Qt APIs. These APIs will benefit all Qt developers. This presentation shall provide an overview of the APIs and demonstrate the use of some the APIs through an example application. This presentation shall fuel ideas for usage of the new APIs in your own projects.
Presentation by Alex Luddy held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Lockless Producer Consumer Threads: Asynchronous Communications Made EasyICS
In ICS’ latest technical webinar Justin Noel will teach you how to leverage Qt's cross thread communications systems to marshall data to and from communications threads using QThreads (or threads owned by third party libraries.) He’ll show you that by using the lockless producer consumer pattern you can write efficient and easy to read code without needing to add mutexes to your data structures, important because data read by QML bindings needs to be as quick as possible to avoid dropping frames. Don’t miss it!
Moby is an open source project providing a "LEGO set" of dozens of components, the framework to assemble them into specialized container-based systems, and a place for all container enthusiasts to experiment and exchange ideas.
One of these assemblies is Docker CE, an open source product that lets you build, ship, and run containers.
This talk will explain how you can leverage the Moby project to assemble your own specialized container-based system, whether for IoT, cloud or bare metal scenarios.
We will cover Moby itself, the framework, and tooling around the project, as well as many of it’s components: LinuxKit, InfraKit, containerd, SwarmKit, Notary.
Then we will present a few use cases and demos of how different companies have leveraged Moby and some of the Moby components to create their own container-based systems.
Video at https://www.youtube.com/watch?v=kDp22YkD6WY
KubeCon 2017 session with @JasonMcGee: Do you want to increase the density of your Kubernetes workers? We have run some experiments with Kubernetes workers in LXC containers managed by LXD. Come to hear our experience and challenges during the experiment!
Использование AzureDevOps при разработке микросервисных приложенийVitebsk Miniq
Презентация подготовлена по материалам выступления Игоря Сычёва на витебском MiniQ#17, который был проведен 25 июля 2019:
https://vk.com/miniq17;
https://communities.by/events/miniq-vitebsk-17.
Про доклад:
Мы реализуем CI/CD на базе Azure DevOps для нашего приложения в МикроСервисном стиле, которое хостим на Azure Kubernetes Services на протяжении более чем 6 месяцев. Мы хотим поделиться нашими успехами и ошибками в CI/CD с разработчиками и DevOps инженерами. Мы продемонстрируем наши подходы и реализации к Build/Release, созданию сред тестирования с использованием ARM шаблонов, согласования установки приложения на рабочие среды и эволюцию этих процессов со временем.
As we move to our application units to containers most people are asking themselves the question about orchestrator choice. That is not the only choice that’s important, what about the underlying container runtime? In this talk, we will look at why you would use containerD with runC with both Swarm and Kubernetes, but other uses for ContainerD like container OS’s to ship immutable infrastructure.
Kubernetes is an open source container cluster orchestration platform founded by Google. This presentation covers an overview of it's main concepts, plus how it fits into Google Cloud Platform. This was delivered by Kit Merker at DevNexus 2015 in Atlanta.
Red Flag is the largest Linux distribution company in China and also the Leader of Asianux consortium. Red Flag has been using KDE/Qt as the foundation element of Red Flag Linux Desktop/Server since 1999, currently their newest Linux Desktop also fully utilizes Qt Creator as the SDK environment. During the session, Red Flag will talk about how Qt is used in the Red Flag software product line and why they choose Qt/KDE as the default desktop environment.
Presentation by Wang Baisheng and Rick Xing held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
The Qt WebKit Integration provides a powerful framework to seamlessly integrate web technologies into future Maemo applications, where web content can interact with Qt components. This presentation introduces the QtWebKit APIs, the underlying engine and new features coming in future releases.
Presentation by Kenneth Christiansen held during the Maemo Summit 2009 in Amsterdam
Docker in Production: How RightScale Delivers Cloud ApplicationsRightScale
Combining Docker, cloud infrastructure, and continuous integration and delivery practices can create a highly automated and efficient way to get new applications and features to market. The RightScale development team has been using Docker from development to continuous integration, and now the operations team has taken Docker into the production environment.
The Docker in Production: How RightScale Delivers Cloud Applications webinar will cover:
Approach and use case for adopting Docker
How RightScale has adopted Docker for development, CI, and production
Overcoming technical and process challenges
The RightScale process before and after Docker
Benefits for both developers and operations teams
Kitware is involved with Qt in two main areas. First, Kitware is the provider of the CMake (www.cmake.org) build tool which is used to build KDE, the flagship open source Qt project. In addition, Kitware has been using Qt for the ParaView (www.paraview.org) project. ParaView is an open-source, multi-platform data analysis and visualization application. With the recent change in Qt licensing Kitware is also starting to use Qt for many other open source scientific and medical projects. For cross platform C++ GUI development Qt now stands alone as really the only viable choice. This talk will cover the CMake build system, and the impact Qt and Qt derived projects are having on state of the art scientific computation.
Presentation by BIll Hoffman held during Qt Developer Days 2009.
http://qt.nokia.com/developer/learning/elearning
Secure Your Containers: What Network Admins Should Know When Moving Into Prod...Cynthia Thomas
This session offers techniques for securing Docker containers and hosts using open source network virtualization technologies to implement microsegmentation. Come learn real tips and tricks that you can apply to keep your production environment secure.
Adopting Docker for production applications and services used to be hard. You had to hand-roll a lot of the underlying infrastructure and write lots of custom code for service discovery, load balancing, orchestration, desired state, etc. Today, with the rise of open source container orchestration platforms and cloud-native offerings, it's a lot easier to get up and running.
Github repo for demo: https://github.com/elabor8/dockertalk
Docker is an open platform for developers and system administrators to build, ship and run distributed applications. Using Docker, companies in Jordan have been able to build powerful system architectures that allow speeding up delivery, easing deployment processes and at the same time cutting major hosting costs.
George Khoury shares his experience at Salalem in building flexible and cost effective architectures using Docker and other tools for infrastructure orchestration. The result allows them to easily and quickly move between different cloud providers.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
4. Installation
• Qt SDK mess
• http://qt.nokia.com/downloads/downloads
• Latest Qt meant for desktop
• http://www.forum.nokia.com/Develop/Qt/
• Meant for mobile devices (but not desktop)
• Only ”preliminary support for Qt 4.7”
• Will be merged into one product in the future
4
6. Installation
• Install Qt 4.7 from Ubuntu repositories
• sudo apt-get install build-essential libqt4-dev
qt4-qmlviewer
• Download and install the forum Nokia
version of Nokia Qt SDK
• Repository version doesn’t have QML designer
• Run qtcreator
• ~/NokiaQtSDK/QtCreator/bin/qtcreator
6
7. Installation
• Select Help / About plugins from menu
• Enable QmlDesigner and re-start qtcreator
7
8. Installation
• Check Tools / Options that Qt libraries exist
• Rebuild debug helper for C++ development
8
16. What is Qt Quick
• QML – a language for UI design and
development
• Qt declarative – Module for integrating QML
and Qt C++ libraries
• Qt Creator tools – Complete development
environment
• QML design and code
• C++ integration
• Packaging and deployment
16
17. QML overview
• JavaScript-based declaractive language
• Expressed as bindings between properties that
are structured into object tree
Objects
Properties
and their
bindings
17
18. QML overview
• Contrast with an imperative language
Property bindings are
statements that get evaluated
whenever property changes
Statements are
evaluated once
18
19. QML overview
• JavaScript / JSON, not XML
• unlike MXML (Flash), XUL (Gecko), XAML (.Net)
• But, has support for XPath queries, so can easily
integrate with XML-based web services
19
20. Qt Declarative
• Declarative module is a C++ framework for
gluing QML and C++ code together
• Integrating QML ”scripts” into C++ application
• Integrating C++ plug-in’s into QML application
• Still lacking some basics
• First official version with Qt4.7 (2010/09/21)
• GUI component project in development
• Buttons, dialogs etc.
20
21. Qt Creator
• Qt Creator integrates C++ and QML
development into single IDE
• QML designer for visual editing
• QML and C++ code editors
• Same code can be run at desktop or device
21
33. GUI module
• Graphics view
• Graphics items
• Graphics widgets
• Proxy widgets
• This course focuses on the
QML-side, not C++
graphics framework
33
34. Network module
• Sockets, including secure ones
• QTcpSocket, QSslSocket
• Simple HTTP and FTP API’s
• QNetworkAccessManager
34
35. Multimedia modules
• OpenGL for 3D rendering
• OpenVG for 2D rendering
• Svg for processing vector graphics files
• Phonon multimedia framework
• Not in mobile devices
35
36. Scripting modules
• QtDeclarative and QtScript
• QtScript -> Basically QML without the
declarative parts
• Different C++ engines
• QtDeclarative gets the hype nowadays
36
37. Other modules
• XML
• SAX and DOM parsers
• XmlPatterns
• XPath, XQuery, XSLT, schemas
• WebKit browser engine
• SQL for accessing databases
37
38. Mobile development
• Mobility API’s are not part of standard QT
• GPS, contacts, calendar, messaging, etc.
• Latest release 1.1:
• http://qt.nokia.com/products/qt-addons/mobility/
• Symbian .sis packages available for download
• N900 package can be installed from repository
- libqtm-… packages with apt-get install
• Works in Qt Simulator on PC
• QML integration in progress
38
40. QML syntax
• Based on ECMA-262 specification
• Operating environment differs from the usual
web browser
• DOM vs. QtDeclarative
• Supports v5 features (notably JSON)
• Declarative concepts added on top
• Quite a lot can be done without any ”scriptiness”
40
41. Components
• A QML document (.qml file) describes the
structure of one Component
• Component name is file name
• Name follows camel-case conventions
• Components have inheritance hierarchy
FunWithQML
extends Rectancle
41
42. Components
• An instance of a component is created
when the program is run
Creates FlipText and
MouseArea objects
as children of Rectangle
id property is used when
referencing instances
42
43. Components
• Internals of component are not
automatically visible to other components
• Component’s API is defined via properties,
functions and signals:
• Property - expression that evaluates to a value
• Function - called to perform something
• Signal - callback from the component
43
44. Properties
• Properties can be referenced by name
• Always starts with lower-case letter
• A property expression that references
another property establishes a binding
• Whenever the referenced property changes, the
bound property changes
Simple values
Bindings
44
45. Properties
• The basics of properties:
• id is used to reference an object
• list properties are a collection of elements
• default property can be used without a name
• The data list in following example
45
46. Properties
• Public properties are specified with
property syntax
• Value properties, for example:
• int, bool, real, string
• point, rect, size
• time, date
http://doc.qt.nokia.com/4.7/qdeclarativebasictypes.html
46
47. Alias properties
• Property alias exposes an internal property
to public API of component
Not working directly
47
48. Properties
• Properties can be grouped or attached
• Both are referenced with ’.’ notation
• Grouping and attaching is done on C++ side,
not within QML
font contains a group of
Properties related to the
font of the text field
All properties of Keys
component have been
attached to Text and
can be used by ’.’ notation
48
49. Signals
• A component may emit signals, which are
processed in signal handlers
• Signal handlers follow onSignalName syntax
Mouse click
signal handler
49
50. Signals
• Property changes may be bound to signals
• on<Property>Changed syntax
• Note the capital case, similarly as with other
signal handlers
50
51. Signals
• Signals can be defined with signal keyword
Custom signal
Calling the signal
Custom signal handler
51
52. Functions
• A component may export functions that
can be called from other components
• Note: Not declarative way of doing things
• Destroys property bindings
52
54. QML Item
• Item is a base for all GUI components
• Basic properties of an GUI item:
• Coordinates: x, y, z, width, height, anchors
• Transforms: rotation, scale, translate
• Hierarchy: children, parent
• Visibility: visible, opacity
• state and transitions
• Does not draw anything by itself
54
55. Basic visual elements
• Rectangle and Image
• Basic building blocks
• Image can be loaded from web
• Text, TextInput and TextEdit
• For non-editable, single-line editable and
multiline editable text areas
• And that’s about it
• Qt components project is in progress
55
56. Rectangle
• Rectangle is the basic visual element
• color and gradient
• border and radius
• Color can be a name or hex representation
• Gradient is always vertical
• Can be rotated
• Example in Rectangles directory
56
57. Image
• Image element for standard image formats
• jpg, png, svg…
• File or URL source
• Loads web images asynchronously
• Image has sourceSize
• Scaled to width and height by default
• Inherited by AnimatedImage
• Example in Images directory
57
58. Text
• Text element supports plain and rich text
• HTML markup support
• Fonts and styles from platform Text.AlignTop
Text.AlignVCenter
• Text alignment Text.AlignBottom
• verticalAlignment, horizontalAlignment Text.AlignLeft
Text.AlignHCenter
• Multiline text wrapping supported Text.AlignRight
58
59. TextInput
• TextInput is used for single-line input
• Font and styles as in Text
• Text selection supported
• Integrates with system clipboard
• Echo modes for password input
• Text input validators
• IntValidator, DoubleValidator, RegExpValidator
• Example in TextInput directory
59
60. TextEdit
• TextEdit for multi-line editing
• Supports both plain and rich text
• Mostly similar as Text and TextInput
• Note readOnly and selectByMouse flags
• Text that can be copied to system clipboard
60
61. Item transformations
• Each Item has two basic transformations
• rotation
• Around z-axis in degrees
• scale Item.TopLeft Item.TopRight
Item.Top
• smaller < 1.0 < larger
Item.Left Item. Center Item.Right
• Both relative to transformOrigin (default)
• ”Stick through the screen” Item.Bottom
Item.BottomLeft Item.BottomRight
• Additionally, item has transform list
61
62. Item transformations
• Transform objects allow more options
• Rotation in 3-D
• Around arbitrary axis (x, y, z)
• Scale
• Separate scale factors for x and y axis
• Translate
• Moves objects without affecting their x and y position
• Combination of any above
• With arbitrary origin points
62
65. Item coordinates
• Position is defined by x and y
y
x
• Relative to parent item
height
width
• Size is defined by width and height
65
66. Item coordinates
• z defines how overlapping areas are drawn
• Example in Coordinates directory
66
67. Item anchors
• Each item has 6 anchor lines (+1 for text)
• Side anchors:
• top, bottom, left, right
• fill special anchor
• Center anchors:
• verticalCenter, horizontalCenter
• Text has baseline anchor
67
68. Item anchors
• Anchors may contains spacing
• Side anchors have margins
• topMargin, bottomMargin, leftMargin, rightMargin
• margins special value
• Center anchors have offset
• verticalCenterOffset, horizontalCenterOffset
• Example in Anchors directory
68
69. Anchors and coordinates
• Anchoring rules
• Can only anchor to parent or
siblings
• Anchors will always overwrite x
and y
• width or height needed with
single anchor
• width or height overwritten
when both sides anchored
• Example in
AnchorsCoordinates
69
70. Positioners
• Four positioner types:
• Row lays out child items horizontally
• Column lays them vertially
• Flow is either horizontal or vertical
• Row or Column with wrapping
• Grid is two-dimensional
• Child item doesn’t need to fill the ”slot”
70
71. Positioners
• Positioners inherit from Item
• Thus, have for example anchors of their own
• Can be nested inside other positioners
• Positioners have spacing property
• Specifies the distance between elements, quite
similarly as margins of anchors
• Same spacing for all child item
• Example in Positioners directory
71
73. Day 1 exercise - layouts
Text input and button
• Create a QML application
• Build following layout
• Add some interaction
List of items
Empty for now
• When Submit is pressed, status
bar text changes to whatever
has been typed into text input
• If a color is clicked, status bar
text changes to represent that
color
Status bar
• ”red”, ”green” etc.
73