[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/
Scala vs. Python: Which Language Should be learned in 2020NexSoftsys
Scala and Python are both most popular programming languages used in 2020. Here, in this presentation both language pros and cons with excellent feature and support emerging technologies. We list down the differences between these two popular languages.
The document discusses the history and evolution of Perl web development. It covers early tools like CGI.pm and mod_perl that allowed Perl to be used for web apps. It then discusses issues with these approaches and the rise of reusable code repositories like Matt's Script Archive. It outlines how Perl best practices and the maturation of CPAN helped improve code quality. Key modern frameworks like Catalyst, Plack, Moose and DBIx::Class are also summarized.
STC Summit 2015: API Documentation, an Example-Based ApproachLois Patterson
The document discusses best practices for documenting APIs. It recommends including clear documentation of an API's functionality through descriptions, tutorials, code examples, and testing environments. Good API documentation demonstrates consistency in naming conventions and clear explanations of errors. The document provides examples of APIs with well-designed documentation, such as Netflix, Twitter, and GitHub, and encourages making APIs as simple and intuitive as possible for developers and non-developers alike.
The document discusses using Ionic and Angular to build a text-to-speech mobile app. It describes setting up a new Ionic project, adding the Android platform, and installing the text-to-speech plugin. It then shows how to import the TextToSpeech class, add a button click handler to call the speak method, and build a function to speak the input text.
Rowdy Rabouw - Unleash your web skills on nativeOdessaJS Conf
This document provides an overview of using NativeScript to build mobile apps with web technologies like HTML, CSS and JavaScript. It begins with instructions for setting up NativeScript and an overview of the NativeScript CLI. It then demonstrates how to build basic user interface elements and layouts similar to web development. The document also discusses options for styling apps with CSS and themes, and frameworks that can be used like Angular. Finally, it briefly mentions the ability to access some native platform APIs from JavaScript.
1) Grape is a framework for building REST-style APIs in Ruby. It is inspired by Sinatra and aims to make API development easy and intuitive.
2) With Grape, APIs can have their own framework separate from Rails or Sinatra. It allows for features like versioning, prefixing, namespacing, authentication helpers, and error handling in a concise syntax.
3) Grape focuses on ease of use but also plans to add more advanced features like documentation generation, content negotiation, OAuth support, plugin systems, and rate limiting to become a fully-featured API framework.
The quest for the perfect cross-platform solution has been like the quest for the Holy Grail. It’s been going on a long time, there are a myriad of perceived benefits, and every time someone claims to have found it, it’s never the right one. Many people ask, “Should I go with a cross-platform solution, or a native solution?” but the reality is the quest is bringing us closer to a solution where there isn’t a meaningful difference.
React Native wasn’t the first to show a solution could be both cross-platform and native, but it has certainly convinced a lot of people. As many of those early converts are discovering the limitations, they are beginning to fall back into either-or thinking. Maybe they just have the wrong assumptions.
Kotlin Multiplatform makes some new assumptions and, although it wasn’t the first to do so, is gaining in popularity very quickly. Is Kotlin Multiplatform the holy grail of cross-platform? Probably not. But it does bring cross-platform and native closer than ever before.
----
Presented at https://newyork2019.theleaddeveloper.com/
Video: https://www.youtube.com/watch?v=sA_JIqqj9js
Thank you https://touchlab.co/ for supporting me and the future of mobile.
Scala vs. Python: Which Language Should be learned in 2020NexSoftsys
Scala and Python are both most popular programming languages used in 2020. Here, in this presentation both language pros and cons with excellent feature and support emerging technologies. We list down the differences between these two popular languages.
The document discusses the history and evolution of Perl web development. It covers early tools like CGI.pm and mod_perl that allowed Perl to be used for web apps. It then discusses issues with these approaches and the rise of reusable code repositories like Matt's Script Archive. It outlines how Perl best practices and the maturation of CPAN helped improve code quality. Key modern frameworks like Catalyst, Plack, Moose and DBIx::Class are also summarized.
STC Summit 2015: API Documentation, an Example-Based ApproachLois Patterson
The document discusses best practices for documenting APIs. It recommends including clear documentation of an API's functionality through descriptions, tutorials, code examples, and testing environments. Good API documentation demonstrates consistency in naming conventions and clear explanations of errors. The document provides examples of APIs with well-designed documentation, such as Netflix, Twitter, and GitHub, and encourages making APIs as simple and intuitive as possible for developers and non-developers alike.
The document discusses using Ionic and Angular to build a text-to-speech mobile app. It describes setting up a new Ionic project, adding the Android platform, and installing the text-to-speech plugin. It then shows how to import the TextToSpeech class, add a button click handler to call the speak method, and build a function to speak the input text.
Rowdy Rabouw - Unleash your web skills on nativeOdessaJS Conf
This document provides an overview of using NativeScript to build mobile apps with web technologies like HTML, CSS and JavaScript. It begins with instructions for setting up NativeScript and an overview of the NativeScript CLI. It then demonstrates how to build basic user interface elements and layouts similar to web development. The document also discusses options for styling apps with CSS and themes, and frameworks that can be used like Angular. Finally, it briefly mentions the ability to access some native platform APIs from JavaScript.
1) Grape is a framework for building REST-style APIs in Ruby. It is inspired by Sinatra and aims to make API development easy and intuitive.
2) With Grape, APIs can have their own framework separate from Rails or Sinatra. It allows for features like versioning, prefixing, namespacing, authentication helpers, and error handling in a concise syntax.
3) Grape focuses on ease of use but also plans to add more advanced features like documentation generation, content negotiation, OAuth support, plugin systems, and rate limiting to become a fully-featured API framework.
The quest for the perfect cross-platform solution has been like the quest for the Holy Grail. It’s been going on a long time, there are a myriad of perceived benefits, and every time someone claims to have found it, it’s never the right one. Many people ask, “Should I go with a cross-platform solution, or a native solution?” but the reality is the quest is bringing us closer to a solution where there isn’t a meaningful difference.
React Native wasn’t the first to show a solution could be both cross-platform and native, but it has certainly convinced a lot of people. As many of those early converts are discovering the limitations, they are beginning to fall back into either-or thinking. Maybe they just have the wrong assumptions.
Kotlin Multiplatform makes some new assumptions and, although it wasn’t the first to do so, is gaining in popularity very quickly. Is Kotlin Multiplatform the holy grail of cross-platform? Probably not. But it does bring cross-platform and native closer than ever before.
----
Presented at https://newyork2019.theleaddeveloper.com/
Video: https://www.youtube.com/watch?v=sA_JIqqj9js
Thank you https://touchlab.co/ for supporting me and the future of mobile.
Beyond your daily coding - The Conf Brazil 2017 KeynoteEmerson Macedo
So, you're a programmer, software developer, or something like this. Your main work is to develop software to add value to the company you work for. But for sure, your company expects more from you, and that's always many opportunities to add value that maybe you're not observing carefully.
On this talk, I'll tell you a story about introducing Elixir at Globo.com while doing my daily job. From this story and others from my career, I extracted some patterns to share with you, about how to identify these opportunities, create something valuable and convince the company that this is the right move for them.
Jay Phillips's Presentation at eComm 2009eCommConf
The document introduces Adhearsion, an open-source telephony software framework built using Ruby that allows developers to easily create voice applications and integrate telephony functionality. It discusses trends in programming languages and technologies that Adhearsion follows, such as being open-source, supporting various telephony systems, and enabling polyglot programming. Examples of what Adhearsion is and is not are provided, and the document advertises an upcoming tutorial on building voice applications with Adhearsion.
The Pros and Cons of Kotlin Language for Android App DevelopmentPrakash Software
Kotlin is a statically-typed programming language that runs on the Java virtual machine and also can be compiled to JavaScript source code or uses the LLVM compiler infrastructure. Its primary development is from a team of JetBrains programmers based in Saint Petersburg, Russia. While the syntax is not compatible with Java, Kotlin is designed to interoperate with Java code and is reliant on Java code from the existing Java Class Library, such as the collections framework.
Slides for talk I was giving at meet.js Lublin 03.09.2015. I covered the very basics of ES6 features
with examples of how they can be mixed with AngularJS framework in it's 1.x versions.
Interactive version can be found here: https://github.com/IShotTheSheriff/es2015
Slobodan Stojanovic - 8 1/2 things about serverless FDConf
What is serverless? How does it work? Can you explain it with something as simple as Lego bricks?
This talk will answer that and at least five and a half more questions. It’s main goal is to explain serverless architecture, show you why it’s important, and finally, show you why it works great with Node.js and how to use it.
The presentation discusses an Urdu-to-English web application and Twitter bot built using the Oxford Dictionaries API. It demonstrates the app and bot, then describes some of the technical difficulties encountered including parsing JSON responses and handling language pairs and non-Roman scripts. It concludes with recommendations for what the presenter wishes they knew before starting, such as the number of meanings returned and issues with non-Roman fonts, and invites questions.
PiterPy #3 talk (Video: https://youtu.be/bCwSyyygSmM). Some points on RAML, general overview and takeaways based on a real project.
Presented with Dmitry Nazarov https://ru.linkedin.com/in/aspectmkn8rd/en (Part 2, as mentioned in contents)
What's new with Kotlin - Google IO18' extended Covenant University.SimileoluwaAluko
A presentation made at the Google IO 18 extended for Google Developers Group (GDG) Covenant University. Introducing the Kotlin programming language and features it has that makes software development more pleasant. It also touches a little on its goodness in Android application development.
Presentation material for Indonesia's Tizen Developer Workshop in developing Tizen Native Application Development. It describes on how to develop native application, beginning from Hello Tizen app.
It also covers the overview of Enlightenment Framework Libraries and how to use it on Tizen. Native application styling using EDJE is also covered in App Layouting section, with brief concept on how to code EDC and load it on the runtime.
Finally it gives brief information how developing natively in Tizen is flexible, where we can also utilizes C++ in conjunction with the provided C libraries. It is possible to use external libraries in Tizen if we find that the preloaded Native API is not enough.
The goal of this presentation is to give overview of native application concept while at the same time giving depth concepts to the developers so they can begin developing native Tizen application without hesitation.
PixelCrayons: Hire India's Top PHP DevelopersPixel Crayons
Hire PHP developers for simple as well as complex enterprise-grade websites, e-commerce solutions, web applications, and content management sites. Our PHP programmers have rich expertise in all major PHP frameworks viz Laravel, CodeIgniter, CakePHP, Yii, etc. So do contact PixelCrayons if you are looking to hire a PHP developer in India.
When you hire PHP developers in India, you can save your precious time & money. You get optimum quality PHP programming solutions at highly affordable prices.
We train our PHP web developers, they know all the latest technologies and trends. Therefore, they have expertise in all the latest PHP tools, technologies & frameworks.
This document provides an introduction to the Ada programming language for experienced programmers. It discusses Ada's goals of reliability, maintainability, and reuse. The document summarizes Ada's key syntax elements such as identifiers, statements, and scope. It notes Ada's emphasis on safety and error detection compared to other languages like C. Examples of Ada code are provided and explained throughout.
RubyMotion is a toolchain for developing native iOS applications using the Ruby language. It compiles Ruby code into optimized machine code for iOS. RubyMotion allows developers to use Ruby while also having direct access to the full native iOS API like Objective-C. It provides a way to code iOS apps in Ruby without needing to learn Objective-C or Cocoa Touch.
Better and Faster: A Journey Toward Clean Code and EnjoymentChris Holland
Video: http://bit.ly/tdd-talk-2
This slideshow has links, download the PDF to click them.
While this presentation touches on PHP a fair bit, it does make parallels to other ecosystems such as Java and C#/.Net, building toward an approach for building Web Applications in a Test-Driven way.
Have you ever jumped into a legacy software project and gotten to a point where it takes a near-infinite amount of time to deliver any new feature, for fear of breaking legacy functionality you’ve barely begun to understand? Software Engineering can be extremely difficult and maddening. But it doesn’t have to be. We will explore leveraging TDD and OOP principles to make Software Engineering fun again.
Coding exercises supporting this presentation are available here:
http://bit.ly/tdd-vids
Publishing API documentation -- PresentationTom Johnson
The document discusses various strategies for publishing API documentation, including different types of documentation like guides, tutorials, and reference docs. It also covers tools for generating documentation from code, hosting platforms, design patterns, and questions to consider regarding developer contributions, security, hosting budgets, and customization needs.
The document discusses new features in ASNA Visual RPG and DataGate version 12.0, including:
- Support for Visual Studio 2013 and formal end of support for versions older than 11.2.
- Options for installing multiple versions of Visual Studio and AVR to allow transitioning applications to newer runtimes.
- New language features in AVR 12.0 like conditional expressions, automatic properties, and BegUsing/EndUsing blocks to safely use disposable objects.
- Recommendations for upgrading to AVR 12.0 like removing older versions first and installing Visual Studio 2013 before AVR 12.0.
API Description Languages: Which Is The Right One For Me? ProgrammableWeb
The document discusses and compares different API description languages (APIs), including RAML and Swagger. It provides an overview of each tool's features and capabilities. The document also shares the author's experiences using RAML and Swagger to describe sample APIs. While both APIs are useful for documentation, the author found RAML better suited for designing APIs first before coding, while Swagger integrates more tightly with code.
eSoftHead is the Vietnam Software Outsourcing Company, which locates in Ho Chi Minh city. eSoftHead focuses in delivering web, mobile and desktop application for enterprises, small companies and personal uses.
eSoftHead expertises vary from Java, PHP, RoR and Mobile (iOS, Android). We did hundreds of projects includes CMSes, CRMs, Real time conference tools, marketing social data or VOIP solutions.
eSoftHead offers a very competitive rate to make it the right choice versus cost and quality we are able to offer to your business. If you have any inquiry, please send an email to business@esofthead.com
This document discusses building continuous integration and continuous delivery (CI/CD) pipelines for MongoDB Realm apps. It begins by defining CI/CD and explaining the benefits, such as faster releases, smaller releases, and fewer manual tasks. It then provides an overview of the key components in a sample CI/CD pipeline for a Realm app, including development, staging, and production environments. The document concludes by recommending resources for setting up a CI/CD pipeline, such as using GitHub, MongoDB Developer Hub, Realm documentation, and the MongoDB community.
Just a few years back, lack of a standard way to document, govern or describe a contract for the APIs acted as a deterrent to API adoption within the enterprise. WSDL 2.0 and WADL provided early support, but they couldn’t truly capture the essence of RESTful APIs. Recently we have seen the emergence of several description languages. New ways to describe and document APIs have emerged such as Swagger, RAML, API Blueprint and others, each taking a slightly different approach.
This document summarizes a Zend Framework workshop presented by Kevin Schroeder, a technology evangelist for Zend Technologies. The agenda covers both basic and more advanced topics related to using the Zend Framework, including installing the framework, autoloading, sessions, configuration, forms, MVC, and components like Zend_Db and services. The document encourages starting simply with utility classes before diving into more complex areas like MVC, and provides examples of how to use classes like Zend_Loader, Zend_Session, Zend_Config, Zend_Validate, Zend_Filter, and Zend_Form.
Beyond your daily coding - The Conf Brazil 2017 KeynoteEmerson Macedo
So, you're a programmer, software developer, or something like this. Your main work is to develop software to add value to the company you work for. But for sure, your company expects more from you, and that's always many opportunities to add value that maybe you're not observing carefully.
On this talk, I'll tell you a story about introducing Elixir at Globo.com while doing my daily job. From this story and others from my career, I extracted some patterns to share with you, about how to identify these opportunities, create something valuable and convince the company that this is the right move for them.
Jay Phillips's Presentation at eComm 2009eCommConf
The document introduces Adhearsion, an open-source telephony software framework built using Ruby that allows developers to easily create voice applications and integrate telephony functionality. It discusses trends in programming languages and technologies that Adhearsion follows, such as being open-source, supporting various telephony systems, and enabling polyglot programming. Examples of what Adhearsion is and is not are provided, and the document advertises an upcoming tutorial on building voice applications with Adhearsion.
The Pros and Cons of Kotlin Language for Android App DevelopmentPrakash Software
Kotlin is a statically-typed programming language that runs on the Java virtual machine and also can be compiled to JavaScript source code or uses the LLVM compiler infrastructure. Its primary development is from a team of JetBrains programmers based in Saint Petersburg, Russia. While the syntax is not compatible with Java, Kotlin is designed to interoperate with Java code and is reliant on Java code from the existing Java Class Library, such as the collections framework.
Slides for talk I was giving at meet.js Lublin 03.09.2015. I covered the very basics of ES6 features
with examples of how they can be mixed with AngularJS framework in it's 1.x versions.
Interactive version can be found here: https://github.com/IShotTheSheriff/es2015
Slobodan Stojanovic - 8 1/2 things about serverless FDConf
What is serverless? How does it work? Can you explain it with something as simple as Lego bricks?
This talk will answer that and at least five and a half more questions. It’s main goal is to explain serverless architecture, show you why it’s important, and finally, show you why it works great with Node.js and how to use it.
The presentation discusses an Urdu-to-English web application and Twitter bot built using the Oxford Dictionaries API. It demonstrates the app and bot, then describes some of the technical difficulties encountered including parsing JSON responses and handling language pairs and non-Roman scripts. It concludes with recommendations for what the presenter wishes they knew before starting, such as the number of meanings returned and issues with non-Roman fonts, and invites questions.
PiterPy #3 talk (Video: https://youtu.be/bCwSyyygSmM). Some points on RAML, general overview and takeaways based on a real project.
Presented with Dmitry Nazarov https://ru.linkedin.com/in/aspectmkn8rd/en (Part 2, as mentioned in contents)
What's new with Kotlin - Google IO18' extended Covenant University.SimileoluwaAluko
A presentation made at the Google IO 18 extended for Google Developers Group (GDG) Covenant University. Introducing the Kotlin programming language and features it has that makes software development more pleasant. It also touches a little on its goodness in Android application development.
Presentation material for Indonesia's Tizen Developer Workshop in developing Tizen Native Application Development. It describes on how to develop native application, beginning from Hello Tizen app.
It also covers the overview of Enlightenment Framework Libraries and how to use it on Tizen. Native application styling using EDJE is also covered in App Layouting section, with brief concept on how to code EDC and load it on the runtime.
Finally it gives brief information how developing natively in Tizen is flexible, where we can also utilizes C++ in conjunction with the provided C libraries. It is possible to use external libraries in Tizen if we find that the preloaded Native API is not enough.
The goal of this presentation is to give overview of native application concept while at the same time giving depth concepts to the developers so they can begin developing native Tizen application without hesitation.
PixelCrayons: Hire India's Top PHP DevelopersPixel Crayons
Hire PHP developers for simple as well as complex enterprise-grade websites, e-commerce solutions, web applications, and content management sites. Our PHP programmers have rich expertise in all major PHP frameworks viz Laravel, CodeIgniter, CakePHP, Yii, etc. So do contact PixelCrayons if you are looking to hire a PHP developer in India.
When you hire PHP developers in India, you can save your precious time & money. You get optimum quality PHP programming solutions at highly affordable prices.
We train our PHP web developers, they know all the latest technologies and trends. Therefore, they have expertise in all the latest PHP tools, technologies & frameworks.
This document provides an introduction to the Ada programming language for experienced programmers. It discusses Ada's goals of reliability, maintainability, and reuse. The document summarizes Ada's key syntax elements such as identifiers, statements, and scope. It notes Ada's emphasis on safety and error detection compared to other languages like C. Examples of Ada code are provided and explained throughout.
RubyMotion is a toolchain for developing native iOS applications using the Ruby language. It compiles Ruby code into optimized machine code for iOS. RubyMotion allows developers to use Ruby while also having direct access to the full native iOS API like Objective-C. It provides a way to code iOS apps in Ruby without needing to learn Objective-C or Cocoa Touch.
Better and Faster: A Journey Toward Clean Code and EnjoymentChris Holland
Video: http://bit.ly/tdd-talk-2
This slideshow has links, download the PDF to click them.
While this presentation touches on PHP a fair bit, it does make parallels to other ecosystems such as Java and C#/.Net, building toward an approach for building Web Applications in a Test-Driven way.
Have you ever jumped into a legacy software project and gotten to a point where it takes a near-infinite amount of time to deliver any new feature, for fear of breaking legacy functionality you’ve barely begun to understand? Software Engineering can be extremely difficult and maddening. But it doesn’t have to be. We will explore leveraging TDD and OOP principles to make Software Engineering fun again.
Coding exercises supporting this presentation are available here:
http://bit.ly/tdd-vids
Publishing API documentation -- PresentationTom Johnson
The document discusses various strategies for publishing API documentation, including different types of documentation like guides, tutorials, and reference docs. It also covers tools for generating documentation from code, hosting platforms, design patterns, and questions to consider regarding developer contributions, security, hosting budgets, and customization needs.
The document discusses new features in ASNA Visual RPG and DataGate version 12.0, including:
- Support for Visual Studio 2013 and formal end of support for versions older than 11.2.
- Options for installing multiple versions of Visual Studio and AVR to allow transitioning applications to newer runtimes.
- New language features in AVR 12.0 like conditional expressions, automatic properties, and BegUsing/EndUsing blocks to safely use disposable objects.
- Recommendations for upgrading to AVR 12.0 like removing older versions first and installing Visual Studio 2013 before AVR 12.0.
API Description Languages: Which Is The Right One For Me? ProgrammableWeb
The document discusses and compares different API description languages (APIs), including RAML and Swagger. It provides an overview of each tool's features and capabilities. The document also shares the author's experiences using RAML and Swagger to describe sample APIs. While both APIs are useful for documentation, the author found RAML better suited for designing APIs first before coding, while Swagger integrates more tightly with code.
eSoftHead is the Vietnam Software Outsourcing Company, which locates in Ho Chi Minh city. eSoftHead focuses in delivering web, mobile and desktop application for enterprises, small companies and personal uses.
eSoftHead expertises vary from Java, PHP, RoR and Mobile (iOS, Android). We did hundreds of projects includes CMSes, CRMs, Real time conference tools, marketing social data or VOIP solutions.
eSoftHead offers a very competitive rate to make it the right choice versus cost and quality we are able to offer to your business. If you have any inquiry, please send an email to business@esofthead.com
This document discusses building continuous integration and continuous delivery (CI/CD) pipelines for MongoDB Realm apps. It begins by defining CI/CD and explaining the benefits, such as faster releases, smaller releases, and fewer manual tasks. It then provides an overview of the key components in a sample CI/CD pipeline for a Realm app, including development, staging, and production environments. The document concludes by recommending resources for setting up a CI/CD pipeline, such as using GitHub, MongoDB Developer Hub, Realm documentation, and the MongoDB community.
Just a few years back, lack of a standard way to document, govern or describe a contract for the APIs acted as a deterrent to API adoption within the enterprise. WSDL 2.0 and WADL provided early support, but they couldn’t truly capture the essence of RESTful APIs. Recently we have seen the emergence of several description languages. New ways to describe and document APIs have emerged such as Swagger, RAML, API Blueprint and others, each taking a slightly different approach.
This document summarizes a Zend Framework workshop presented by Kevin Schroeder, a technology evangelist for Zend Technologies. The agenda covers both basic and more advanced topics related to using the Zend Framework, including installing the framework, autoloading, sessions, configuration, forms, MVC, and components like Zend_Db and services. The document encourages starting simply with utility classes before diving into more complex areas like MVC, and provides examples of how to use classes like Zend_Loader, Zend_Session, Zend_Config, Zend_Validate, Zend_Filter, and Zend_Form.
[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.
Jfokus 2015 - Immutable Server generation: the new App DeploymentAxel Fontaine
Slides from my Jfokus 2015 talk
Abstract:
======
App deployment and server setup are complex, error-prone and time-consuming. They require OS installers, package managers, configuration recipes, install scripts, server hardening and more. But... Is this really necessary? What if we could start over and radically simplify all this? What if, within seconds, we could wrap our app into the smallest machine required to run it and transfer this machine unchanged from our laptop to the cloud? How do the various platforms and tools like AWS, Docker and Boxfuse fit into this picture? When should you use them? This talk is for developers and architects wishing to radically improve and simplify how they deploy their applications. It takes Continuous Delivery to a whole new level. Welcome to Immutable Infrastructure. This is the new black.
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...
Paris Web - Javascript as a programming languageMarco Cedaro
How to setup up a stable javascript continuous integration environment and why you need it. Through a real life example, the talk explains all the benefits of having a development process that brings real control over javascript codebase. A deep analysis of developer and webapps needs and of the tools that fit those requirements.
The document discusses why Ruby and Rails are good choices for programming. Ruby is designed to save time and make programming fun and easy to read. Rails provides a full-stack framework that embraces Ruby's philosophy of freedom and productivity. It includes features like MVC, ORM, internationalization and more. Some potential weak points are hosting on Windows and lack of POSIX support, but overall Ruby and Rails provide coherency and maximize productivity and happiness for developers.
"Product Architecture: failures and lessons learnt" - Royi Benyossef @Product...Product of Things
Product architecture is the scheme by which the function of a product is allocated to physical components. The process includes building out a software and hardware product, while simultaneously conducting market research, receiving customer feedback, and developing the hardware, must be an informed and strategic process.In his session Royi will discuss the various architectures that were required for his team to develop in order to achieve different, yet optimal product versions for the Vidmind product. Through each product version, Royi covered where they went wrong and elaborate on what the company did to resolve these challenges in the next version and of course the outcome of each change that was implemented.
Immutable Infrastructure: the new App DeploymentAxel Fontaine
Immutable Infrastructure: the new App Deployment
App deployment and server setup are complex, error-prone and time-consuming. They require OS installers, package managers, configuration recipes, install and deployment scripts, server tuning, hardening and more. But... Is this really necessary? Are we trapped in a mindset of doing things this way just because that's how they've always done?
What if we could start over and radically simplify all this? What if, within seconds, and with a single command, we could wrap our application into the bare minimal machine required to run it? What if this machine could then be transported and run unchanged on our laptop and in the cloud? How do the various platforms and tools like AWS, Docker, Heroku and Boxfuse fit into this picture? What are their strengths and weaknesses? When should you use them?
This talk is for developers and architects wishing to radically improve and simplify how they deploy their applications. It takes Continuous Delivery to a level far beyond what you've seen today. Welcome to Immutable Infrastructure generation. This is the new black.
This document discusses how to build command line interface (CLI) applications in Ruby. It introduces the Thor gem for building CLI apps with single commands and then discusses building interactive shell apps using a read-eval-print loop (REPL) and the GNU Readline library. The document provides examples of CLI apps, why they are useful, and tips for making better CLI apps, and concludes by showcasing a Facebook command line application built with these techniques.
The document compares PHP and Ruby, and the web frameworks CakePHP and Ruby on Rails. It discusses the key features and differences between PHP and Ruby, and demonstrates how a simple blog application can be created from scratch in under a minute using Ruby on Rails with no coding required, compared to the additional coding needed in CakePHP. The document argues that Ruby on Rails is more productive and fully-featured compared to CakePHP.
The Ring programming language version 1.2 book - Part 4 of 84Mahmoud Samir Fayed
The document provides an overview and documentation of the Ring programming language. It discusses the history and development of Ring, beginning in 2013. Key features of Ring include being small and fast, with a compact syntax, dynamic typing, garbage collection, object-oriented support, and the ability to embed Ring code in C/C++ programs. The documentation also covers Ring's license, language design principles such as simplicity and organization, and its visual implementation process.
Top Reasons Why Java Rocks (report preview) - http:0t.ee/java-rocksZeroTurnaround
In this report we take a look at the top 10 reasons Java is the choice for so many development teams, all around the world, and why you should consider it for your next project. One of the main qualities Java possesses since the early design days is its simplicity. In that spirit we laid out in plain simple terms why Java outperforms other languages when it comes to popularity, performance, its amazing ecosystem and community.
For the less technical, this report explains the value Java brings to your projects. For fellow developers, we included some other projects in the Java ecosystem that you might want to look at. Check them out, have a play with them. It will make you a better developer.
Continue to the full report on RebelLabs: http:0t.ee/java-rocks
Ruby on Google App Engine: Upgrade to Google App "Turbo" EngineJoseph Ku
This document discusses using Ruby on Google App Engine. It begins by explaining what Google App Engine is and why developers might choose to use it. Some key features of GAE are that it provides world-class infrastructure, is lightweight, and has free usage quotas. The document then discusses how to set up a development environment for Ruby on GAE using JRuby, Sinatra, and other related tools. It provides references and encourages the reader to experiment building their own URL shortener on GAE as an example project.
Immutable Server generation: The new App DeploymentAxel Fontaine
From JavaZone 2014
Video: https://vimeo.com/105851488
Abstract:
App deployment and server setup are complex, error-prone and time-consuming. They require OS installers, package managers, configuration recipes, install and deployment scripts, server tuning, hardening and more. But... Is this really necessary? Are we trapped in a mindset of doing things this way just because that's how they've always done?
What if we could start over and radically simplify all this? What if, within seconds, and with a single command, we could wrap our application into the bare minimal machine required to run it? What if this machine could then be transported and run unchanged on our laptop and in the cloud? How do the various tools like Docker and Boxfuse fit into this picture? What are their strengths and weaknesses? When should you use them?
This talk is for developers and architects wishing to radically improve and simplify how they deploy their applications. It takes Continuous Delivery to a level far beyond what you've seen today. Welcome to Immutable Server generation. This is the new black.
Python was created in 1990 by Guido van Rossum as a hobby project. It is a highly portable, interpreted programming language that is designed to be easy to learn and read. Python code tends to be shorter and more readable than comparable code in other languages like C or Java due to its clear syntax and use of whitespace.
Web development with Lua: Introducing Sailor an MVC web framework @ CodingSer...Etiene Dalcol
Lua is a very fast and powerful scripting language that can be easily embeddable. It has been shining in industries like game development, for example. Lua is also an excellent tool as a general purpose language and can be used to develop robust applications. Its use in web developments, however, despite its great potential and incredible benchmarks, needs to be more widespread. This talk will mention the current state of Lua in web development, show some benchmarks, compare existing tools and teach how to get started with Sailor, an MVC web framework written in Lua.
Continuous Updating with VersionEye at code.talks 2014Robert Reiz
These are the slides from the "Continuous Updating with VersionEye" talk at code.talks 2014 in Hamburg.
Nowadays modern software development without open source is almost impossible. In average a modern software project has 100 open source components. How do you keep track of these open source dependencies? How do you know that they are still alive? How do you manage the licenses for these dependencies? These are all important questions which get answered in this talk.
How do you keep your REST API documented? Online description? Or maybe a spreadsheet/doc? Think about how does your consumer discover it. Poor one is pasting URLs to curl or POSTman, right? And he’s mad as hell, as documentation is out of sync with code as soon as it’s written. Not to mention submitting bugs looks like an email ping-pong. It’s not 2010 any more, you know? Let’s jump into cool tools that will improve your consumers’ life and save you some time.
The next generation of google APIs (Ade Oshineye)Ontico
The document discusses the next generation of Google APIs and lessons learned from previous API efforts. It advocates for a unified and developer-focused API experience that is easy to use, solves real problems, and provides tools like API exploration, client libraries, and issue tracking. Key points include defaulting to JSON, embracing standards while prioritizing usability, supporting multiple access methods like REST and RPC, and iterating based on developer feedback to continuously improve the experience.
Similar to [E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa) (20)
During the EDD US in March I gave a outlook on what parts of our QA infrastructure needs to get improved. Most noteworthy mandatory test cases for new API's, jenkins builds for incoming patches as phab differentials and an increasing use of exactness for testing changes on an UI level. This talk will give a status report of these ongoing changes. What have been done and what got stuck and what is still ongoing.
[E-Dev-Day 2015][4/4] Update on EFL performance benchmarking (Cedric Bail)EnlightenmentProject
As part of EFL release we try to keep performance in at least the same shape as with the previous release if not better. This talk will give an update on the usual benchmark we use and try to cover a few more benchmark case regarding memory and power consumption to. With maybe pointing to some idea on how to automake this test.
[KOR][E-Kor-Seminar 2014][7/8] Accessibility in EFL (Shinwoo Kim)EnlightenmentProject
[KOR][E-Kor-Seminar 2014][7/8] Accessibility in EFL (Shinwoo Kim)
at 2nd EFL Korean Seminar 2014
https://phab.enlightenment.org/w/events/efl_korean_seminar_2014/
This document describes Elm Theme Viewer, an EFL application that allows users to preview widgets and styles from different EFL themes. It lists key features like changing widget sizes and styles, viewing widget descriptions, and searching for specific widgets. Usage instructions are provided for running the application and specifying theme files, window sizes, and other options. Future plans are outlined, such as adding code generation and improving the preview functionality.
[KOR][E-Kor-Seminar 2014][1/8] Introduction of EFL and Enlightenment (Hermet)EnlightenmentProject
[KOR][2nd E-Kor-Seminar 2014][1/8] Introduction of EFL and Enlightenment (Hermet)
at 2nd EFL Korean Seminar 2014
https://phab.enlightenment.org/w/events/efl_korean_seminar_2014/
[E-Dev-Day 2014][14/16] Adding vector graphics support to EFLEnlightenmentProject
[E-Dev-Day 2014][14/16] Adding vector graphics support to EFL
at Enlightenment Developers Day 2014
https://phab.enlightenment.org/w/events/enlightenment_developer_day_2014/
[E-Dev-Day 2014][8/16] The Way How EFL is used in the Tizen, previous, curren...EnlightenmentProject
[E-Dev-Day 2014][8/16] The Way How EFL is used in the Tizen, previous, current and future status
at Enlightenment Developers Day 2014
https://phab.enlightenment.org/w/events/enlightenment_developer_day_2014/
[E-Dev-Day 2014][5/16] C++ and JavaScript bindings for EFL and Elementary EnlightenmentProject
[E-Dev-Day 2014][5/16] C++ and JavaScript bindings for EFL and Elementary
at Enlightenment Developers Day 2014
https://phab.enlightenment.org/w/events/enlightenment_developer_day_2014/
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's ...EnlightenmentProject
[E-Dev-Day 2014][4/16] Review of Eolian, Eo, Bindings, Interfaces and What's to Come
at Enlightenment Developers Day 2014
https://phab.enlightenment.org/w/events/enlightenment_developer_day_2014/
The document discusses the EFL API and object system called Eo. It provides an overview of Eo, how it works, and some of its unique features like pointer indirection and multiple calls in one context. It also discusses Eolian, which is used to define Eo APIs and generate bindings for other languages. Other projects like Clouseau and Erigo that utilize Eo and Eolian are mentioned. The document aims to recap the goals and impact of moving to the Eo object system in EFL.
[E-Dev-Day-US-2015][6/9] Wayland - What's up upstream? (Bryce Harrington)EnlightenmentProject
[E-Dev-Day-US-2015][6/9] Wayland - What's up upstream? (Bryce Harrington)
at Enlightenment Developers Day North America 2015
https://phab.enlightenment.org/w/events/enlightenment_developer_day_us_2015/
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
A Comprehensive Guide on Implementing Real-World Mobile Testing Strategies fo...kalichargn70th171
In today's fiercely competitive mobile app market, the role of the QA team is pivotal for continuous improvement and sustained success. Effective testing strategies are essential to navigate the challenges confidently and precisely. Ensuring the perfection of mobile apps before they reach end-users requires thoughtful decisions in the testing plan.
DECODING JAVA THREAD DUMPS: MASTER THE ART OF ANALYSISTier1 app
Are you ready to unlock the secrets hidden within Java thread dumps? Join us for a hands-on session where we'll delve into effective troubleshooting patterns to swiftly identify the root causes of production problems. Discover the right tools, techniques, and best practices while exploring *real-world case studies of major outages* in Fortune 500 enterprises. Engage in interactive lab exercises where you'll have the opportunity to troubleshoot thread dumps and uncover performance issues firsthand. Join us and become a master of Java thread dump analysis!
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsPeter Muessig
The UI5 tooling is the development and build tooling of UI5. It is built in a modular and extensible way so that it can be easily extended by your needs. This session will showcase various tooling extensions which can boost your development experience by far so that you can really work offline, transpile your code in your project to use even newer versions of EcmaScript (than 2022 which is supported right now by the UI5 tooling), consume any npm package of your choice in your project, using different kind of proxies, and even stitching UI5 projects during development together to mimic your target environment.
Project Management: The Role of Project Dashboards.pdfKarya Keeper
Project management is a crucial aspect of any organization, ensuring that projects are completed efficiently and effectively. One of the key tools used in project management is the project dashboard, which provides a comprehensive view of project progress and performance. In this article, we will explore the role of project dashboards in project management, highlighting their key features and benefits.
A neural network is a machine learning program, or model, that makes decisions in a manner similar to the human brain, by using processes that mimic the way biological neurons work together to identify phenomena, weigh options and arrive at conclusions.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
Drona Infotech is a premier mobile app development company in Noida, providing cutting-edge solutions for businesses.
Visit Us For : https://www.dronainfotech.com/mobile-application-development/
Enhanced Screen Flows UI/UX using SLDS with Tom KittPeter Caitens
Join us for an engaging session led by Flow Champion, Tom Kitt. This session will dive into a technique of enhancing the user interfaces and user experiences within Screen Flows using the Salesforce Lightning Design System (SLDS). This technique uses Native functionality, with No Apex Code, No Custom Components and No Managed Packages required.
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
E-commerce Development Services- Hornet DynamicsHornet Dynamics
For any business hoping to succeed in the digital age, having a strong online presence is crucial. We offer Ecommerce Development Services that are customized according to your business requirements and client preferences, enabling you to create a dynamic, safe, and user-friendly online store.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
Consistent toolbox talks are critical for maintaining workplace safety, as they provide regular opportunities to address specific hazards and reinforce safe practices.
These brief, focused sessions ensure that safety is a continual conversation rather than a one-time event, which helps keep safety protocols fresh in employees' minds. Studies have shown that shorter, more frequent training sessions are more effective for retention and behavior change compared to longer, infrequent sessions.
Engaging workers regularly, toolbox talks promote a culture of safety, empower employees to voice concerns, and ultimately reduce the likelihood of accidents and injuries on site.
The traditional method of conducting safety talks with paper documents and lengthy meetings is not only time-consuming but also less effective. Manual tracking of attendance and compliance is prone to errors and inconsistencies, leading to gaps in safety communication and potential non-compliance with OSHA regulations. Switching to a digital solution like Safelyio offers significant advantages.
Safelyio automates the delivery and documentation of safety talks, ensuring consistency and accessibility. The microlearning approach breaks down complex safety protocols into manageable, bite-sized pieces, making it easier for employees to absorb and retain information.
This method minimizes disruptions to work schedules, eliminates the hassle of paperwork, and ensures that all safety communications are tracked and recorded accurately. Ultimately, using a digital platform like Safelyio enhances engagement, compliance, and overall safety performance on site. https://safelyio.com/
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
Odoo releases a new update every year. The latest version, Odoo 17, came out in October 2023. It brought many improvements to the user interface and user experience, along with new features in modules like accounting, marketing, manufacturing, websites, and more.
The Odoo 17 update has been a hot topic among startups, mid-sized businesses, large enterprises, and Odoo developers aiming to grow their businesses. Since it is now already the first quarter of 2024, you must have a clear idea of what Odoo 17 entails and what it can offer your business if you are still not aware of it.
This blog covers the features and functionalities. Explore the entire blog and get in touch with expert Odoo ERP consultants to leverage Odoo 17 and its features for your business too.
An Overview of Odoo ERP
Odoo ERP was first released as OpenERP software in February 2005. It is a suite of business applications used for ERP, CRM, eCommerce, websites, and project management. Ten years ago, the Odoo Enterprise edition was launched to help fund the Odoo Community version.
When you compare Odoo Community and Enterprise, the Enterprise edition offers exclusive features like mobile app access, Odoo Studio customisation, Odoo hosting, and unlimited functional support.
Today, Odoo is a well-known name used by companies of all sizes across various industries, including manufacturing, retail, accounting, marketing, healthcare, IT consulting, and R&D.
The latest version, Odoo 17, has been available since October 2023. Key highlights of this update include:
Enhanced user experience with improvements to the command bar, faster backend page loading, and multiple dashboard views.
Instant report generation, credit limit alerts for sales and invoices, separate OCR settings for invoice creation, and an auto-complete feature for forms in the accounting module.
Improved image handling and global attribute changes for mailing lists in email marketing.
A default auto-signature option and a refuse-to-sign option in HR modules.
Options to divide and merge manufacturing orders, track the status of manufacturing orders, and more in the MRP module.
Dark mode in Odoo 17.
Now that the Odoo 17 announcement is official, let’s look at what’s new in Odoo 17!
What is Odoo ERP 17?
Odoo 17 is the latest version of one of the world’s leading open-source enterprise ERPs. This version has come up with significant improvements explained here in this blog. Also, this new version aims to introduce features that enhance time-saving, efficiency, and productivity for users across various organisations.
Odoo 17, released at the Odoo Experience 2023, brought notable improvements to the user interface and added new functionalities with enhancements in performance, accessibility, data analysis, and management, further expanding its reach in the market.
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
[E-Dev-Day-US-2015][9/9] High Level Application Development with Elua (Daniel Kolesa)
1. High Level Application Development
with Elua
... or what happens when C sucks too much
Daniel Kolesa
Samsung Open Source Group
d.kolesa@samsung.com
@octaforge
EFL Developer Day US 2015
10. Why do most scripting languages suck?
Slow
Lack of a proper type system
11. Why do most scripting languages suck?
Slow
Lack of a proper type system
Tons of useless bloat we don’t need
12. Why do most scripting languages suck?
Slow
Lack of a proper type system
Tons of useless bloat we don’t need
Inherently sucky to bind
13. Why do most scripting languages suck?
Slow
Lack of a proper type system
Tons of useless bloat we don’t need
Inherently sucky to bind
Resource heavy
14. Why do most scripting languages suck?
Slow
Lack of a proper type system
Tons of useless bloat we don’t need
Inherently sucky to bind
Resource heavy
Battery eating
15. Why do most scripting languages suck?
Slow
Lack of a proper type system
Tons of useless bloat we don’t need
Inherently sucky to bind
Resource heavy
Battery eating
Let’s still give them a shot
45. JavaScript
Popular these days
Fairly decent quality JIT implementations
Weird APIs
Language is pretty bad
But probably a better choice than the above
49. Io, Self, Squirrel etc.
Many different choices
Mostly slow interpreters
Some are decent-ish languages
50. Io, Self, Squirrel etc.
Many different choices
Mostly slow interpreters
Some are decent-ish languages
Mostly fairly light on resources
51. Io, Self, Squirrel etc.
Many different choices
Mostly slow interpreters
Some are decent-ish languages
Mostly fairly light on resources
Not good enough
52. Io, Self, Squirrel etc.
Many different choices
Mostly slow interpreters
Some are decent-ish languages
Mostly fairly light on resources
Not good enough
People would look at us weird
57. Lua
A popular scripting language
Fairly good language with a few quirks
Light on resources
Great embedding API
58. Lua
A popular scripting language
Fairly good language with a few quirks
Light on resources
Great embedding API
Interpreted... :(
59. Lua
A popular scripting language
Fairly good language with a few quirks
Light on resources
Great embedding API
Interpreted... :(
LuaJIT saves the day
61. Why is LuaJIT awesome?
One of the fastest JIT compilers around
62. Why is LuaJIT awesome?
One of the fastest JIT compilers around
Very light on resources
63. Why is LuaJIT awesome?
One of the fastest JIT compilers around
Very light on resources
Performance close to C for real world scenarios
64. 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!
65. 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
66. 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
67. 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
70. Why LuaJIT sucks
VM written in assembly - only a handful of architectures
OTOH, it’s good enough
71. Why LuaJIT sucks
VM written in assembly - only a handful of architectures
OTOH, it’s good enough
Classic Lua C API is not JITed
72. 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
73. 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
74. 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
82. What is it supposed to achieve?
Rapid application development
83. What is it supposed to achieve?
Rapid application development
Clean, high level code
84. What is it supposed to achieve?
Rapid application development
Clean, high level code
Lightweight, good performance
85. What is it supposed to achieve?
Rapid application development
Clean, high level code
Lightweight, good performance
Easier app distribution (app store model)
86. 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.)
89. How does it work?
Elua library and binary
Library provides Elua-related C utilities for the Lua state
90. How does it work?
Elua library and binary
Library provides Elua-related C utilities for the Lua state
Binary is a minimal application launcher
91. 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
92. 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
100. Eolian
Eolian parses our API definitions
We can reuse Eolian data to generate correct Lua bindings
101. Eolian
Eolian parses our API definitions
We can reuse Eolian data to generate correct Lua bindings
No maintenance burden except the generator itself
105. Lualian
Lualian is the Elua binding generator
Itself a Lua application powered by Elua
Easy to maintain and high level
106. 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
113. Eo
We have a Lua Eo layer
This provides a native-feeling Eo Lua core
114. Eo
We have a Lua Eo layer
This provides a native-feeling Eo Lua core
Handles callbacks, method resolution and other things
115. Eo
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
116. Eo
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!
119. Other Elua APIs
Elua also provides a collection of Lua utilities
This includes a Lua-side object system
120. 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
121. 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
122. 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
123. 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
127. Distribution
Bundled with EFL → always available
App store to promote development and distribution of apps
Well supported - encouraging people to write apps
128. 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
129. 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?)
130. 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?
144. Eo files
Our current Eo files are not complete
Missing enum definitions, structs etc.
145. Eo files
Our current Eo files are not complete
Missing enum definitions, structs etc.
Complete Eo files → validation is possible
146. 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.
147. 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
149. What does this all mean?
Our bindings are currently not fully functional
150. What does this all mean?
Our bindings are currently not fully functional
Many will fail to load because of missing type definitions
151. 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
152. 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
153. 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
159. Other issues
Internationalization and localization
Loading files from VFS/Eet and seamless API for that
Sandboxing
Startup time minimization
Portable bytecode loading
168. EFL 1.15
Correctly working bindings without manual modifications
Maybe just wishful thinking
Gotta get as close as possible
169. EFL 1.15
Correctly working bindings without manual modifications
Maybe just wishful thinking
Gotta get as close as possible
EFL interfaces should be mostly designed
170. EFL 1.15
Correctly working bindings without manual modifications
Maybe just wishful thinking
Gotta get as close as possible
EFL interfaces should be mostly designed
Properly validating Eo files
179. EFL 1.17
Further Bob work
Bob should start matching Edje in functionality
Deprecation of non-luajit EFL builds
180. EFL 1.17
Further Bob work
Bob should start matching Edje in functionality
Deprecation of non-luajit EFL builds
Wider testing of Elua/Bob
181. EFL 1.17
Further Bob work
Bob should start matching Edje in functionality
Deprecation of non-luajit EFL builds
Wider testing of Elua/Bob
Initial Elua based applications!
184. EFL 2.0
Will take a while (several 1.x releases before that)
Things have to be rock solid by then
185. EFL 2.0
Will take a while (several 1.x releases before that)
Things have to be rock solid by then
A lot of work
186. EFL 2.0
Will take a while (several 1.x releases before that)
Things have to be rock solid by then
A lot of work
Bob will be a thing
187. EFL 2.0
Will take a while (several 1.x releases before that)
Things have to be rock solid by then
A lot of work
Bob will be a thing
Deprecation of Edje
192. Entry point
Everything starts in the Elua launcher
Lua state gets initialized
Elua supports application lookup path
193. Entry point
Everything starts in the Elua launcher
Lua state gets initialized
Elua supports application lookup path
Apps get executed
194. 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
198. Module system
Elua provides a custom module system that works outside of
Lua’s
Seamless (replaces require)
Modules support init/shutdown callbacks
199. 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
202. Library system
C libraries are opened and initialized as necessary
Opened C libraries are cached and reference counted
203. Library system
C libraries are opened and initialized as necessary
Opened C libraries are cached and reference counted
Eolian-generated bindings use this
204. 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
205. 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)
209. Eina bindings
Elua provides hand-bound APIs from Eina
Containers are read only
Provides APIs to convert them to Lua values
210. 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.
211. 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
214. Other modules
Elua includes a benchmarking module in core
Also features a powerful command line argument parser
215. Other modules
Elua includes a benchmarking module in core
Also features a powerful command line argument parser
Lualian is included
216. 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
217. 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