Python is a widely-used and powerful computer programming language that has helped system administrators manage computer networks and problem solve computer systems for decades. Python has also built some popular applications like BitTorrent, Blender, Calibre, Dropbox, and much more. Going further, the “Pi” in Raspberry Pi stands for Python, so learning Python will instill more confidence when working with Raspberry Pi projects. Python is usually the first programming language people learn primarily because it is easy to learn and provides a solid foundation to learn other computer programming languages. In this webinar,
• Learn what Python is and what it is capable of doing.
• Install Python’s IDE for Windows and work in the Python shell.
• Use calculations, variables, strings, lists, and if statements.
• Discover Python’s built-in functions and understand modules.
• Create simple programs to build on later.
The recording is available at https://youtu.be/ThcWmJFf-ho.
Python is a widely-used and powerful computer programming language that has helped system administrators manage computer networks and problem solve computer systems for decades. Python has also built some popular applications like BitTorrent, Blender, Calibre, Dropbox, and much more. Going further, the “Pi” in Raspberry Pi stands for Python, so learning Python will instill more confidence when working with Raspberry Pi projects. Python is usually the first programming language people learn primarily because it is easy to learn and provides a solid foundation to learn other computer programming languages. In this webinar,
• Learn what Python is and what it is capable of doing.
• Install Python’s IDE for Windows and work in the Python shell.
• Use calculations, variables, strings, lists, and if statements.
• Discover Python’s built-in functions and understand modules.
• Create simple programs to build on later.
The recording is available at https://youtu.be/ThcWmJFf-ho.
Natural Language Processing using JavaScript "Natural" Library. This deck covers Natural Language Understanding using JavaScript "Natural" library in detail
What's New in LuaRocks - Lua Workshop 2014 - Hisham MuhammadHisham Muhammad
Slides from my talk "What's new in LuaRocks"
presented at Lua Workshop 2014 in Moscow, Russia
with a brief presentation of LuaRocks,
how things compare now to last year's talk
and some proposals for new features and future directions.
-- Hisham Muhammad
Roll Your Own API Management Platform with nginx and LuaJon Moore
We recently replaced a proprietary API management solution with an in-house implementation built with nginx and Lua that let us get to a continuous delivery practice in a handful of months. Learn about our development process and the overall architecture that allowed us to write minimal amounts of code, enjoying native code performance while permitting interactive codeing, and how we leveraged other open source tools like Vagrant, Ansible, and OpenStack to build an automation-rich delivery pipeline. We will also take an in-depth look at our capacity management approach that differs from the rate limiting concept prevalent in the API community.
[E-Dev-Day 2015][1/4] Eolian - Past Year Experiences and the Future (Daniel K...EnlightenmentProject
Eolian, our language independent API description language and library, has gone through a lot of development during the past year. There were several significant design aspects that had to be resolved and some are still remaining. In this talk I will summarize my experiences developing Eolian recently as well as the future plans.
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa)
at Enlightenment Developers Day North America 2015
https://phab.enlightenment.org/w/events/enlightenment_developer_day_us_2015/
Preparing an Open Source Documentation Repository for TranslationsHPCC Systems
As part of the 2018 HPCC Systems Summit Community Day event:
On display first is a poster from Robert Kennedy, Florida Atlantic University on, Distributed Deep Learning on TensorFlow.
Following, Jim DeFabia, presents his breakout session in the Documentation & Training Track.
Translating a manual once is not a terribly difficult task. However, our manuals are always evolving, so we needed a plan to update translations on a regular basis. This requires a process that is maintainable, repeatable, and robust. In this case study of our forays into documentation internationalization, you can learn from our successes and laugh at some of our missteps along the way.
Jim DeFabia is the Documentation Lead for HPCC Systems®. He entered the field of technical documentation in 1993 at Clarion Software/TopSpeed, where he helped revolutionize the industry by creating manuals that people could read and actually understand. It was at TopSpeed that he first met and worked with many of the HPCC Systems “Mavericks.” So it was like coming home when he reunited with these colleagues in 2001 as they were initially developing the HPCC Systems platform, which was then released to the Open Source community in 2011.
Natural Language Processing using JavaScript "Natural" Library. This deck covers Natural Language Understanding using JavaScript "Natural" library in detail
What's New in LuaRocks - Lua Workshop 2014 - Hisham MuhammadHisham Muhammad
Slides from my talk "What's new in LuaRocks"
presented at Lua Workshop 2014 in Moscow, Russia
with a brief presentation of LuaRocks,
how things compare now to last year's talk
and some proposals for new features and future directions.
-- Hisham Muhammad
Roll Your Own API Management Platform with nginx and LuaJon Moore
We recently replaced a proprietary API management solution with an in-house implementation built with nginx and Lua that let us get to a continuous delivery practice in a handful of months. Learn about our development process and the overall architecture that allowed us to write minimal amounts of code, enjoying native code performance while permitting interactive codeing, and how we leveraged other open source tools like Vagrant, Ansible, and OpenStack to build an automation-rich delivery pipeline. We will also take an in-depth look at our capacity management approach that differs from the rate limiting concept prevalent in the API community.
[E-Dev-Day 2015][1/4] Eolian - Past Year Experiences and the Future (Daniel K...EnlightenmentProject
Eolian, our language independent API description language and library, has gone through a lot of development during the past year. There were several significant design aspects that had to be resolved and some are still remaining. In this talk I will summarize my experiences developing Eolian recently as well as the future plans.
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel...EnlightenmentProject
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa)
at Enlightenment Developers Day North America 2015
https://phab.enlightenment.org/w/events/enlightenment_developer_day_us_2015/
Preparing an Open Source Documentation Repository for TranslationsHPCC Systems
As part of the 2018 HPCC Systems Summit Community Day event:
On display first is a poster from Robert Kennedy, Florida Atlantic University on, Distributed Deep Learning on TensorFlow.
Following, Jim DeFabia, presents his breakout session in the Documentation & Training Track.
Translating a manual once is not a terribly difficult task. However, our manuals are always evolving, so we needed a plan to update translations on a regular basis. This requires a process that is maintainable, repeatable, and robust. In this case study of our forays into documentation internationalization, you can learn from our successes and laugh at some of our missteps along the way.
Jim DeFabia is the Documentation Lead for HPCC Systems®. He entered the field of technical documentation in 1993 at Clarion Software/TopSpeed, where he helped revolutionize the industry by creating manuals that people could read and actually understand. It was at TopSpeed that he first met and worked with many of the HPCC Systems “Mavericks.” So it was like coming home when he reunited with these colleagues in 2001 as they were initially developing the HPCC Systems platform, which was then released to the Open Source community in 2011.
Introduction to .NET
.NET Architecture and factors
Code conversion in .NET
C# Language
Text to speech(TTS) converter
Steps for TTS Converter process
Architecture of TTS converter
Other features
Applications
Advantages
Limitations and future scope
Snapshots of the project
EChesters presents for the London Java Community an insight into how developers can have a direct influence on the UX of their product. Here we explore the methods, libraries and testing tools our language, Java provides us.
Language Server Protocol - Why the Hype?mikaelbarbero
The Language Server Protocol developed by Microsoft for Visual Studio Code is a language and IDE agnostic protocol which clearly separates language semantics from UI presentation. Language developers can implement the protocol and benefit from immediate support in all IDEs, while IDE developers, who implement the protocol get automatic support for all these languages without having to write any language-specific code. This session will let you learn more about the innards of the LSP. We will also have an overview of the current implementations in Eclipse, and outside Eclipse as well.
The State of One Codebase For All The Platforms | Sanket Sahu | App.js Conf 2...Sanket Sahu
How can we have one codebase for mobile and web when both of them have different APIs and behavior? Sanket covered the behavioral and technical differences between web and mobile platforms.
Watch on YouTube: https://www.youtube.com/watch?v=m6HgfkCYiT8
Envisioning the Future of Language WorkbenchesMarkus Voelter
Over the last couple of years, I have used MPS successfully to build interesting (modeling and programming) languages in a wide variety of domains, targeting both business users and engineers. I’ve used MPS because it is currently the most powerful language workbench, lots of things are good about iz, in particular, its support for a multitude of notations and language modularity. But it is also obvious that MPS is not going to be viable for the medium to long term future; the most obvious reason for this statement is that it is not web/cloud-based. In this keynote, I will quickly recap why and how we have been successful with MPS, and point out how language workbenches could look like in the future; I will outline challenges, opportunities and research problems. I hope to spawn discussions for the remainder of the workshop.
[EclipseCon France 2017] Language Server Protocol in actionMickael Istria
The Language Server Protocol in a popular IDE-independent and Language-independent interface to provide and consume language edition services - such as code analysis, completion, hyperlinking... It basically lets the language providers implement the protocol as a server, and the IDEs consume the protocol as a client to have the IDEs presenting the language-specific data without having to know about the language.
This protocol already has multiple successful stories. In this talk we’ll demonstrate:
* How a C# language server can be used in Eclipse IDE (thanks to LSP4E) to provide rich C# edition capabilities
* How a Java language server implemented on top of JDT is integrated into VSCode to have VSCode supporting rich Java edition capabilities
* How you can easily write a language server in Java (with LSP4J) and plug it into Eclipse IDE (with LSP4E) and VSCode and demonstrate how easy it becomes to ship additional features for your language in all tools at once.
Uri Nachmias - Adopting Swift @Houzz - The good, the bad and the uglytlv-ios-dev
Presented on the TLV iOS Developers Meetup - 02/08/2015.
Last year we decided to jump into the water and embrace Swift into our code. Since Houzz is a complex app with a long development history this was a challenging and exciting task.In this talk we will describe what we've learned what to do and what not to do, and some tips for all the developers who want to start writing code in Swift and didn't take the big dive in yet...
Similar to High Level Application Scripting With EFL and LuaJIT (20)
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
Understanding Globus Data Transfers with NetSageGlobus
NetSage is an open privacy-aware network measurement, analysis, and visualization service designed to help end-users visualize and reason about large data transfers. NetSage traditionally has used a combination of passive measurements, including SNMP and flow data, as well as active measurements, mainly perfSONAR, to provide longitudinal network performance data visualization. It has been deployed by dozens of networks world wide, and is supported domestically by the Engagement and Performance Operations Center (EPOC), NSF #2328479. We have recently expanded the NetSage data sources to include logs for Globus data transfers, following the same privacy-preserving approach as for Flow data. Using the logs for the Texas Advanced Computing Center (TACC) as an example, this talk will walk through several different example use cases that NetSage can answer, including: Who is using Globus to share data with my institution, and what kind of performance are they able to achieve? How many transfers has Globus supported for us? Which sites are we sharing the most data with, and how is that changing over time? How is my site using Globus to move data internally, and what kind of performance do we see for those transfers? What percentage of data transfers at my institution used Globus, and how did the overall data transfer performance compare to the Globus users?
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
How to Position Your Globus Data Portal for Success Ten Good PracticesGlobus
Science gateways allow science and engineering communities to access shared data, software, computing services, and instruments. Science gateways have gained a lot of traction in the last twenty years, as evidenced by projects such as the Science Gateways Community Institute (SGCI) and the Center of Excellence on Science Gateways (SGX3) in the US, The Australian Research Data Commons (ARDC) and its platforms in Australia, and the projects around Virtual Research Environments in Europe. A few mature frameworks have evolved with their different strengths and foci and have been taken up by a larger community such as the Globus Data Portal, Hubzero, Tapis, and Galaxy. However, even when gateways are built on successful frameworks, they continue to face the challenges of ongoing maintenance costs and how to meet the ever-expanding needs of the community they serve with enhanced features. It is not uncommon that gateways with compelling use cases are nonetheless unable to get past the prototype phase and become a full production service, or if they do, they don't survive more than a couple of years. While there is no guaranteed pathway to success, it seems likely that for any gateway there is a need for a strong community and/or solid funding streams to create and sustain its success. With over twenty years of examples to draw from, this presentation goes into detail for ten factors common to successful and enduring gateways that effectively serve as best practices for any new or developing gateway.
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...informapgpstrackings
Keep tabs on your field staff effortlessly with Informap Technology Centre LLC. Real-time tracking, task assignment, and smart features for efficient management. Request a live demo today!
For more details, visit us : https://informapuae.com/field-staff-tracking/
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Enhancing Research Orchestration Capabilities at ORNL.pdfGlobus
Cross-facility research orchestration comes with ever-changing constraints regarding the availability and suitability of various compute and data resources. In short, a flexible data and processing fabric is needed to enable the dynamic redirection of data and compute tasks throughout the lifecycle of an experiment. In this talk, we illustrate how we easily leveraged Globus services to instrument the ACE research testbed at the Oak Ridge Leadership Computing Facility with flexible data and task orchestration capabilities.
Software Engineering, Software Consulting, Tech Lead.
Spring Boot, Spring Cloud, Spring Core, Spring JDBC, Spring Security,
Spring Transaction, Spring MVC,
Log4j, REST/SOAP WEB-SERVICES.
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxrickgrimesss22
Discover the essential features to incorporate in your Winzo clone app to boost business growth, enhance user engagement, and drive revenue. Learn how to create a compelling gaming experience that stands out in the competitive market.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Accelerate Enterprise Software Engineering with PlatformlessWSO2
Key takeaways:
Challenges of building platforms and the benefits of platformless.
Key principles of platformless, including API-first, cloud-native middleware, platform engineering, and developer experience.
How Choreo enables the platformless experience.
How key concepts like application architecture, domain-driven design, zero trust, and cell-based architecture are inherently a part of Choreo.
Demo of an end-to-end app built and deployed on Choreo.
Accelerate Enterprise Software Engineering with Platformless
High Level Application Scripting With EFL and LuaJIT
1. High level application scripting
with Enlightenment Foundation Libraries and LuaJIT
Daniel Kolesa
Samsung Open Source Group
d.kolesa@osg.samsung.com
@octaforge
Lua Workshop 2015 Stockholm
4. What is the EFL?
A suite of graphics (and other) libraries
5. What is the EFL?
A suite of graphics (and other) libraries
A widget toolkit
6. What is the EFL?
A suite of graphics (and other) libraries
A widget toolkit
Originally written for the Enlightenment window manager
7. What is the EFL?
A suite of graphics (and other) libraries
A widget toolkit
Originally written for the Enlightenment window manager
Scalable to both embedded and desktop systems
8. What is the EFL?
A suite of graphics (and other) libraries
A widget toolkit
Originally written for the Enlightenment window manager
Scalable to both embedded and desktop systems
Lightweight, written in C
9. What is the EFL?
A suite of graphics (and other) libraries
A widget toolkit
Originally written for the Enlightenment window manager
Scalable to both embedded and desktop systems
Lightweight, written in C
Significant usage includes Samsung’s Tizen platform
14. EFL components
Historically, several projects with individual build systems
Merged in version 1.8
EFL - the core library set
ELementary - the widget toolkit built on the EFL
15. EFL components
Historically, several projects with individual build systems
Merged in version 1.8
EFL - the core library set
ELementary - the widget toolkit built on the EFL
Some others still separate - Evas generic loaders etc.
19. Evas
The oldest EFL component
A scene graph canvas
Represents the canvas as state with Evas objects
20. Evas
The oldest EFL component
A scene graph canvas
Represents the canvas as state with Evas objects
Provides several core primitives (rectangles, images etc.)
21. Evas
The oldest EFL component
A scene graph canvas
Represents the canvas as state with Evas objects
Provides several core primitives (rectangles, images etc.)
Widgets provided by other libraries are Evas objects
24. Ecore
Provides the interface between the OS and the rest of the EFL
Interaction with X11, Wayland, SDL, Cocoa, DirectX etc.
25. Ecore
Provides the interface between the OS and the rest of the EFL
Interaction with X11, Wayland, SDL, Cocoa, DirectX etc.
Provides a main loop for applications
26. Ecore
Provides the interface between the OS and the rest of the EFL
Interaction with X11, Wayland, SDL, Cocoa, DirectX etc.
Provides a main loop for applications
Also several other unrelated things
29. Edje
Edje is a layout/UI description language
It is also a way to compile said language together with data
30. Edje
Edje is a layout/UI description language
It is also a way to compile said language together with data
The result can be loaded from the application and used as UI
31. Edje
Edje is a layout/UI description language
It is also a way to compile said language together with data
The result can be loaded from the application and used as UI
Separation of UI/layout and application logic
32. Edje
Edje is a layout/UI description language
It is also a way to compile said language together with data
The result can be loaded from the application and used as UI
Separation of UI/layout and application logic
Widgets provided by libs can be embedded in Edje
37. Elementary
A widget toolkit
Provides a large set of widgets as Evas objects
Can be used standalone (boxed style layouting defined from C)
Can be used with Edje (Elementary widgets, Edje layout)
41. Eo
An object system for the EFL
The base for everything EFL 2.0
Allows for backwards compatible legacy APIs
42. Eo
An object system for the EFL
The base for everything EFL 2.0
Allows for backwards compatible legacy APIs
Provides everything one would expect from an object system
43. Eo
An object system for the EFL
The base for everything EFL 2.0
Allows for backwards compatible legacy APIs
Provides everything one would expect from an object system
Much of EFL 2.0 API is interfaces
44. Eo
An object system for the EFL
The base for everything EFL 2.0
Allows for backwards compatible legacy APIs
Provides everything one would expect from an object system
Much of EFL 2.0 API is interfaces
We aim for API and ABI stability
54. Why is that?
Slow
Lack of a proper type system
Tons of bloat we don’t need
Inconvenient binding
55. Why is that?
Slow
Lack of a proper type system
Tons of bloat we don’t need
Inconvenient binding
Resource heavy
56. Why is that?
Slow
Lack of a proper type system
Tons of bloat we don’t need
Inconvenient binding
Resource heavy
Battery eating
57. Why is that?
Slow
Lack of a proper type system
Tons of bloat we don’t need
Inconvenient binding
Resource heavy
Battery eating
Could there be a solution?
87. JavaScript
Popular these days
Fairly decent quality JIT implementations
Each implementation has its own weird API
Language is pretty bad
But probably a better choice than the above
91. Io, Self, Squirrel etc.
Many different choices
Mostly slow interpreters
Some are decent languages
92. Io, Self, Squirrel etc.
Many different choices
Mostly slow interpreters
Some are decent languages
Mostly fairly light on resources
93. Io, Self, Squirrel etc.
Many different choices
Mostly slow interpreters
Some are decent languages
Mostly fairly light on resources
Not good enough
94. Io, Self, Squirrel etc.
Many different choices
Mostly slow interpreters
Some are decent languages
Mostly fairly light on resources
Not good enough
People would look at us weird
103. Why is LuaJIT awesome?
One of the fastest JIT compilers around
104. Why is LuaJIT awesome?
One of the fastest JIT compilers around
Very light on resources
105. Why is LuaJIT awesome?
One of the fastest JIT compilers around
Very light on resources
Performance close to C for real world scenarios
106. Why is LuaJIT awesome?
One of the fastest JIT compilers around
Very light on resources
Performance close to C for real world scenarios
The exact same API as Lua!
107. Why is LuaJIT awesome?
One of the fastest JIT compilers around
Very light on resources
Performance close to C for real world scenarios
The exact same API as Lua!
API and ABI compatible with Lua 5.1
108. Why is LuaJIT awesome?
One of the fastest JIT compilers around
Very light on resources
Performance close to C for real world scenarios
The exact same API as Lua!
API and ABI compatible with Lua 5.1
Portable bytecode
109. Why is LuaJIT awesome?
One of the fastest JIT compilers around
Very light on resources
Performance close to C for real world scenarios
The exact same API as Lua!
API and ABI compatible with Lua 5.1
Portable bytecode
We have a winner
112. Why LuaJIT sucks
VM written in assembly - only a handful of architectures
OTOH, it’s good enough
113. Why LuaJIT sucks
VM written in assembly - only a handful of architectures
OTOH, it’s good enough
Classic Lua C API is not JITed
114. Why LuaJIT sucks
VM written in assembly - only a handful of architectures
OTOH, it’s good enough
Classic Lua C API is not JITed
A handful of other things not JITed
115. Why LuaJIT sucks
VM written in assembly - only a handful of architectures
OTOH, it’s good enough
Classic Lua C API is not JITed
A handful of other things not JITed
No multithreading support
116. Why LuaJIT sucks
VM written in assembly - only a handful of architectures
OTOH, it’s good enough
Classic Lua C API is not JITed
A handful of other things not JITed
No multithreading support
LuaJIT 2.1 significantly improves the situation
124. What is it supposed to achieve?
Rapid application development
125. What is it supposed to achieve?
Rapid application development
Clean, high level code
126. What is it supposed to achieve?
Rapid application development
Clean, high level code
Lightweight, good performance
127. What is it supposed to achieve?
Rapid application development
Clean, high level code
Lightweight, good performance
Easier app distribution (app store model)
128. What is it supposed to achieve?
Rapid application development
Clean, high level code
Lightweight, good performance
Easier app distribution (app store model)
More safety (memory etc.)
131. How does it work?
Elua library and binary
Library provides Elua-related C utilities for the Lua state
132. How does it work?
Elua library and binary
Library provides Elua-related C utilities for the Lua state
Binary is a minimal application launcher
133. How does it work?
Elua library and binary
Library provides Elua-related C utilities for the Lua state
Binary is a minimal application launcher
Together they set up Lua state + ecore main loop
134. How does it work?
Elua library and binary
Library provides Elua-related C utilities for the Lua state
Binary is a minimal application launcher
Together they set up Lua state + ecore main loop
Most of Elua is written in Lua itself
138. Bindings
Any decent application runtime needs APIs
Writing bindings is a pain in the ass
Maintaining bindings is a bigger pain in the ass
139. Bindings
Any decent application runtime needs APIs
Writing bindings is a pain in the ass
Maintaining bindings is a bigger pain in the ass
What do?
143. Eolian
Two things
An API description language we invented
A library to parse this language and expose the information
via API
144. Eolian
Two things
An API description language we invented
A library to parse this language and expose the information
via API
We describe our EFL APIs in it
145. Eolian
Two things
An API description language we invented
A library to parse this language and expose the information
via API
We describe our EFL APIs in it
We can reuse it to generate bindings
146. Eolian
Two things
An API description language we invented
A library to parse this language and expose the information
via API
We describe our EFL APIs in it
We can reuse it to generate bindings
No maintenance burden
150. Lualian
Lualian is the Elua binding generator
Itself a Lua application powered by Elua
Easy to maintain and high level
151. Lualian
Lualian is the Elua binding generator
Itself a Lua application powered by Elua
Easy to maintain and high level
Bindings generated at EFL build time
153. How do our bindings work?
LuaJIT provides a foreign function interface (FFI)
154. How do our bindings work?
LuaJIT provides a foreign function interface (FFI)
This allows us to directly access C APIs
155. How do our bindings work?
LuaJIT provides a foreign function interface (FFI)
This allows us to directly access C APIs
Lualian generates FFI-powered bindings
158. Eo and Elua
We have a Lua Eo layer
This provides a native-feeling Eo Lua core
159. Eo and Elua
We have a Lua Eo layer
This provides a native-feeling Eo Lua core
Handles callbacks, method resolution and other things
160. Eo and Elua
We have a Lua Eo layer
This provides a native-feeling Eo Lua core
Handles callbacks, method resolution and other things
Generated bindings properly register bound classes with this
161. Eo and Elua
We have a Lua Eo layer
This provides a native-feeling Eo Lua core
Handles callbacks, method resolution and other things
Generated bindings properly register bound classes with this
Native-feeling APIs!
164. Other Elua APIs
Elua also provides a collection of Lua utilities
This includes a Lua-side object system
165. Other Elua APIs
Elua also provides a collection of Lua utilities
This includes a Lua-side object system
Also bindings to most relevant Eina components
166. Other Elua APIs
Elua also provides a collection of Lua utilities
This includes a Lua-side object system
Also bindings to most relevant Eina components
Used by bindings
167. Other Elua APIs
Elua also provides a collection of Lua utilities
This includes a Lua-side object system
Also bindings to most relevant Eina components
Used by bindings
Eo interacts with our Lua-side object system
168. Other Elua APIs
Elua also provides a collection of Lua utilities
This includes a Lua-side object system
Also bindings to most relevant Eina components
Used by bindings
Eo interacts with our Lua-side object system
Completely transparent
172. Distribution
Bundled with EFL → always available
App store to promote development and distribution of apps
Well supported - encouraging people to write apps
173. Distribution
Bundled with EFL → always available
App store to promote development and distribution of apps
Well supported - encouraging people to write apps
Closely matching EFL APIs → free documentation
174. Distribution
Bundled with EFL → always available
App store to promote development and distribution of apps
Well supported - encouraging people to write apps
Closely matching EFL APIs → free documentation
Needs self-contained package format (use eet?)
175. Distribution
Bundled with EFL → always available
App store to promote development and distribution of apps
Well supported - encouraging people to write apps
Closely matching EFL APIs → free documentation
Needs self-contained package format (use eet?)
Make it possible to run Elua apps on Tizen?
189. Eo files
Our current Eo files are not complete
Missing enum definitions, structs etc.
190. Eo files
Our current Eo files are not complete
Missing enum definitions, structs etc.
Complete Eo files → validation is possible
191. Eo files
Our current Eo files are not complete
Missing enum definitions, structs etc.
Complete Eo files → validation is possible
Guaranteed definitions for types etc.
192. Eo files
Our current Eo files are not complete
Missing enum definitions, structs etc.
Complete Eo files → validation is possible
Guaranteed definitions for types etc.
Allows for proper binding generation
194. What does this all mean?
Our bindings are currently not fully functional
195. What does this all mean?
Our bindings are currently not fully functional
Many will fail to load because of missing type definitions
196. What does this all mean?
Our bindings are currently not fully functional
Many will fail to load because of missing type definitions
Dependencies are not correctly handled
197. What does this all mean?
Our bindings are currently not fully functional
Many will fail to load because of missing type definitions
Dependencies are not correctly handled
Elementary is not handled at all
198. What does this all mean?
Our bindings are currently not fully functional
Many will fail to load because of missing type definitions
Dependencies are not correctly handled
Elementary is not handled at all
Our demos work with what we have + manually adjusted
bindings
204. Other issues
Internationalization and localization
Seamless VFS integrated with Lua IO streams
Sandboxing
Startup time minimization
Portable bytecode loading
209. Entry point
Everything starts in the Elua launcher
Lua state gets initialized
Elua supports application lookup path
210. Entry point
Everything starts in the Elua launcher
Lua state gets initialized
Elua supports application lookup path
Apps get executed
211. Entry point
Everything starts in the Elua launcher
Lua state gets initialized
Elua supports application lookup path
Apps get executed
Ecore main loop is started
215. Module system
Elua provides a custom module system that works outside of
Lua’s
Seamless (replaces require)
Modules support init/shutdown callbacks
216. Module system
Elua provides a custom module system that works outside of
Lua’s
Seamless (replaces require)
Modules support init/shutdown callbacks
Those take care of opening and closing the appropriate libs
219. Library system
C libraries are opened and initialized as necessary
Opened C libraries are cached and reference counted
220. Library system
C libraries are opened and initialized as necessary
Opened C libraries are cached and reference counted
Eolian-generated bindings use this
221. Library system
C libraries are opened and initialized as necessary
Opened C libraries are cached and reference counted
Eolian-generated bindings use this
Symbols are retrieved and bound using C FFI
222. Library system
C libraries are opened and initialized as necessary
Opened C libraries are cached and reference counted
Eolian-generated bindings use this
Symbols are retrieved and bound using C FFI
This is wrapped in high level API (no FFI exposed to apps)
226. Eina bindings
Elua provides hand-bound APIs from Eina
Containers are read only
Provides APIs to convert them to Lua values
227. Eina bindings
Elua provides hand-bound APIs from Eina
Containers are read only
Provides APIs to convert them to Lua values
Various modules like accessor, iterator, list, log, file etc.
228. Eina bindings
Elua provides hand-bound APIs from Eina
Containers are read only
Provides APIs to convert them to Lua values
Various modules like accessor, iterator, list, log, file etc.
Will be further expanded as necessary
231. Other modules
Elua includes a benchmarking module in core
Also features a powerful command line argument parser
232. Other modules
Elua includes a benchmarking module in core
Also features a powerful command line argument parser
Lualian is included
233. Other modules
Elua includes a benchmarking module in core
Also features a powerful command line argument parser
Lualian is included
A custom module system implementation
234. Other modules
Elua includes a benchmarking module in core
Also features a powerful command line argument parser
Lualian is included
A custom module system implementation
Util module provides an object system, library system, string
buffer implementation and other utils