Ruby was created by Yukihiro Matsumoto in 1993 with the goal of creating a powerful scripting language with good object-oriented capabilities. It has a procedural style with fully object-oriented classes like Smalltalk and supports functional programming with blocks. Ruby is dynamically typed and treats all operations like method calls for high flexibility. It has a large community that shares code and libraries through sites like RubyGems and GitHub.
This document provides an introduction to the Ruby programming language. It discusses that Ruby is an object-oriented language designed by Yukihiro "Matz" Matsumoto to be focused on humans rather than machines. It emphasizes that everything in Ruby is an object and covers key Ruby concepts like variables, methods, classes, modules, mixins, blocks, and syntax. The document encourages learning more about Ruby through interactive tutorials and code exercises.
There are tactical reasons to adopt strong typehint: easy validation, less code, fashionable. Besides, the first typehints blend in effortlessly with the current application: it is as if typehint was already there. Later, it appears that scalar types paved the way to more substantial code refactoring. Classes emerge from the initial scalar types, code congregate around important values, types gets more complex. Finally, systemic typehint arrives. Type hints become systemic when they help tame the class dependency hell, and help us plan for the new code. During the session, we'll cover the various stages of using typehints, with their advantages, and when not to overuse them.
Strong typing : adoption, adaptation and organisationDamien Seguy
There are tactical reasons to adopt strong typehint: easy validation, less code, fashionable. Besides, the first typehints blend in effortlessly with the current application: it is as if typehint was already there. Later, it appears that scalar types paved the way to more substantial code refactoring. Classes emerge from the initial scalar types, code congregate around important values, types gets more complex. Finally, systemic typehint arrives. Type hints become systemic when they help tame the class dependency hell, and help us plan for the new code. During the session, we’ll cover the various stages of using typehints, with their advantages, and when not to overuse them.
This document provides an outline for a lesson on data structures and algorithms in C++. It covers the history and overview of C++, basic features of the language like data types and operators, parameter passing techniques, classes and objects, inheritance and polymorphism, header files, input/output, memory management, common class methods like destructors and copy constructors, constants, and templates. The outline also describes key characteristics of C++ and what types of applications it can be used to develop.
The document discusses object-oriented programming (OOP) and functional programming (FP). It introduces the presenter, Uberto Barbini, as a software artisan and agile enthusiast. Barbini questions if OOP was wrong and suggests OOP is only a tool that needs to be kept sharp by learning other tools, like FP. The presentation later discusses state as the foundation of behavior but also being hidden from the outside and needing protection. Functional programming is said to expel state from functions.
The document discusses how the Guardian migrated from Java to Scala for one of its projects. It had been using Java since 2006 but wanted to innovate faster. It tried Python/Django but found it required throwing away Java experience and had different development and runtime environments. It discovered Scala as a better alternative as Scala runs on the JVM so it could reuse Java tools, libraries and deployment processes. It converted a content API project from Java to Scala and was pleased with the results, finding Scala less verbose and more expressive than Java. It now uses Scala by default for new JVM projects.
This document provides an introduction to the Ruby programming language. It discusses that Ruby is an object-oriented language designed by Yukihiro "Matz" Matsumoto to be focused on humans rather than machines. It emphasizes that everything in Ruby is an object and covers key Ruby concepts like variables, methods, classes, modules, mixins, blocks, and syntax. The document encourages learning more about Ruby through interactive tutorials and code exercises.
There are tactical reasons to adopt strong typehint: easy validation, less code, fashionable. Besides, the first typehints blend in effortlessly with the current application: it is as if typehint was already there. Later, it appears that scalar types paved the way to more substantial code refactoring. Classes emerge from the initial scalar types, code congregate around important values, types gets more complex. Finally, systemic typehint arrives. Type hints become systemic when they help tame the class dependency hell, and help us plan for the new code. During the session, we'll cover the various stages of using typehints, with their advantages, and when not to overuse them.
Strong typing : adoption, adaptation and organisationDamien Seguy
There are tactical reasons to adopt strong typehint: easy validation, less code, fashionable. Besides, the first typehints blend in effortlessly with the current application: it is as if typehint was already there. Later, it appears that scalar types paved the way to more substantial code refactoring. Classes emerge from the initial scalar types, code congregate around important values, types gets more complex. Finally, systemic typehint arrives. Type hints become systemic when they help tame the class dependency hell, and help us plan for the new code. During the session, we’ll cover the various stages of using typehints, with their advantages, and when not to overuse them.
This document provides an outline for a lesson on data structures and algorithms in C++. It covers the history and overview of C++, basic features of the language like data types and operators, parameter passing techniques, classes and objects, inheritance and polymorphism, header files, input/output, memory management, common class methods like destructors and copy constructors, constants, and templates. The outline also describes key characteristics of C++ and what types of applications it can be used to develop.
The document discusses object-oriented programming (OOP) and functional programming (FP). It introduces the presenter, Uberto Barbini, as a software artisan and agile enthusiast. Barbini questions if OOP was wrong and suggests OOP is only a tool that needs to be kept sharp by learning other tools, like FP. The presentation later discusses state as the foundation of behavior but also being hidden from the outside and needing protection. Functional programming is said to expel state from functions.
The document discusses how the Guardian migrated from Java to Scala for one of its projects. It had been using Java since 2006 but wanted to innovate faster. It tried Python/Django but found it required throwing away Java experience and had different development and runtime environments. It discovered Scala as a better alternative as Scala runs on the JVM so it could reuse Java tools, libraries and deployment processes. It converted a content API project from Java to Scala and was pleased with the results, finding Scala less verbose and more expressive than Java. It now uses Scala by default for new JVM projects.
Este documento compara as linguagens PHP e Ruby, descrevendo suas histórias, paradigmas, tipagem, orientação a objetos dinâmica e comunidades. Ruby foi criada para ser mais poderosa que PHP e mais orientada a objetos que Python.
O documento discute vários tópicos relacionados ao desenvolvimento web com Ruby on Rails, incluindo: ferramentas de email marketing, relacionamentos de modelo, escopos de modelo, testes unitários e de integração utilizando ferramentas como Cucumber, RSpec e WebRat.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Este documento compara PHP e Ruby, destacando:
1) Ruby foi criada para ser mais poderosa que PHP e orientada a objetos que Python;
2) As variáveis em Ruby são objetos e tudo é chamado via métodos;
3) Ruby tem tipagem dinâmica e forte ao contrário da tipagem fraca de PHP.
The document discusses several key concepts for frontend development including patterns over frameworks, skills over tools, and unidirectional data flow. It provides examples of implementing toggling behavior using different approaches like jQuery, Angular, and React. The takeaway is not to move to React specifically, but rather to adopt underlying principles like automatic DOM mutation, stateless DOM, UI as a function of state, unidirectional data flow, purity, and immutability that apply beyond any single framework.
Este documento apresenta a empresa Softa e seu serviço Mailee.me. Detalha as experiências dos sócios Juan Maiz e Pedro Axelrud na programação e em projetos open source. Descreve as tecnologias utilizadas no desenvolvimento do software como serviço (SaaS) Mailee.me, incluindo Ruby on Rails, PostgreSQL, Resque e estratégias para manutenção do serviço, como backups, monitoramento e atualizações contínuas.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
The slides for a lecture about the Ruby programming language. This language was given at FEUP, on a course called "Laboratories of Object-Oriented Programming".
Ruby for Java Programmers provides an overview of the Ruby programming language for Java developers. It discusses Ruby's origins and timeline, key differences from Java like duck typing and mixins, and how Ruby approaches concepts like classes, objects, and closures differently. The document aims to explain Ruby's philosophy and help Java programmers transition to Ruby's more dynamic style.
Ruby for Java Programmers provides an overview of the Ruby programming language for Java developers. Some key points:
- Ruby was created in 1993 and gained popularity with the Rails framework in the mid-2000s. It influences include Smalltalk and Lisp.
- Ruby is dynamically typed with duck typing. Classes are objects that can be modified. Everything is an object with message passing.
- Similarities to Java include garbage collection and use of a virtual machine. Differences include optional syntax, mixins instead of interfaces, and reopening of classes.
- Ruby focuses on solving problems concisely while Java focuses on reusable building blocks. Closures and metaprogramming allow more flexible programming in Ruby.
Code for Startup MVP (Ruby on Rails) Session 2Henry S
This document provides an overview and agenda for a workshop on learning to code for startup MVPs using Ruby on Rails. It covers setting up the development environment, a review of concepts from the previous session, and a focus on Ruby basics, Rails models, and using Devise for user authentication.
Ruby is a dynamic, open source programming language created in 1993 by Yukihiro Matsumoto. It was influenced by Perl, Smalltalk, Python and Lisp. Ruby supports object-oriented, imperative, and functional programming styles. Everything in Ruby is an object and has flexible typing. Ruby also features open classes and duck typing. It gained popularity with the release of the Ruby on Rails framework in 2004.
The document discusses differences between Ruby and Scala programming languages. Some key similarities include both being class-based object-oriented languages with functional features. Differences include Scala using explicit types while Ruby is dynamically typed, and Scala having separate concepts of methods and functions while Ruby blurs the distinction. The document also compares features like class definitions, collections, functions as values, and enhancing existing classes.
This document provides an introduction to the Ruby programming language. It discusses that Ruby is a dynamic, object-oriented scripting language with features like duck typing, open classes, literal syntax for arrays and hashes, mixins, closures, and operator overloading. It also covers Ruby concepts like dynamic and static typing, using Ruby in scripting, Ruby's terse syntax, and how the interactive REPL environment works.
Learn Ruby 2011 - Session 5 - Looking for a RescueJames Thompson
In this final language-focussed session we covered the three kinds of blocks used in Ruby: blocks, Procs and lambdas. We also covered error/exception handling in Ruby and reviewed iteration mechanisms.
The document outlines an agenda for a PHP crash course, beginning with an introduction to the speaker's background and qualifications. It then covers the basics of PHP including its history, why it's popular, how to get started, basic syntax and types, variables, constants, expressions, control structures, functions, classes and objects. The document recommends additional advanced PHP topics and reading materials.
The document introduces Ruby and Rails. It discusses that Ruby is an object-oriented scripting language created by Matz to bring joy to programming. Rails is a web framework that makes building database-driven web applications easy through conventions like MVC, templates, and ORMs. The document then provides an overview of major Ruby features like objects, variables, arrays, hashes, symbols, blocks and iterators. It also demonstrates building a simple class in Ruby. Finally, it shows a quick demo of generating a TODO list application in Rails.
Perl is a high-level, general purpose programming language that was introduced in 1987 and remains widely used today. It draws inspiration from languages like C, sed, awk, and grep. The document provides an introduction to Perl's history and basics, including variables, conditionals, loops, regular expressions, subroutines and objects. It highlights advantages like the comprehensive CPAN module library, strong Unicode support, testing culture, and job opportunities. The author works at Nestoria, where Perl powers their property search engine, handling tasks like XML parsing, geocoding, and image processing.
This document provides an overview of object-oriented programming concepts in PHP, including classes, objects, inheritance, and the PHP Data Object (PDO) extension. Key points covered include:
- Classes define objects with associated methods and variables, while objects are instances of classes.
- Inheritance allows child classes to inherit properties from parent classes and add their own.
- PDO provides a uniform interface for database access across different database systems. It allows for prepared statements, transactions, and portability of code. Benchmarking shows PDO offers significant performance improvements over alternative databases extensions.
Este documento compara as linguagens PHP e Ruby, descrevendo suas histórias, paradigmas, tipagem, orientação a objetos dinâmica e comunidades. Ruby foi criada para ser mais poderosa que PHP e mais orientada a objetos que Python.
O documento discute vários tópicos relacionados ao desenvolvimento web com Ruby on Rails, incluindo: ferramentas de email marketing, relacionamentos de modelo, escopos de modelo, testes unitários e de integração utilizando ferramentas como Cucumber, RSpec e WebRat.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Este documento compara PHP e Ruby, destacando:
1) Ruby foi criada para ser mais poderosa que PHP e orientada a objetos que Python;
2) As variáveis em Ruby são objetos e tudo é chamado via métodos;
3) Ruby tem tipagem dinâmica e forte ao contrário da tipagem fraca de PHP.
The document discusses several key concepts for frontend development including patterns over frameworks, skills over tools, and unidirectional data flow. It provides examples of implementing toggling behavior using different approaches like jQuery, Angular, and React. The takeaway is not to move to React specifically, but rather to adopt underlying principles like automatic DOM mutation, stateless DOM, UI as a function of state, unidirectional data flow, purity, and immutability that apply beyond any single framework.
Este documento apresenta a empresa Softa e seu serviço Mailee.me. Detalha as experiências dos sócios Juan Maiz e Pedro Axelrud na programação e em projetos open source. Descreve as tecnologias utilizadas no desenvolvimento do software como serviço (SaaS) Mailee.me, incluindo Ruby on Rails, PostgreSQL, Resque e estratégias para manutenção do serviço, como backups, monitoramento e atualizações contínuas.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
The slides for a lecture about the Ruby programming language. This language was given at FEUP, on a course called "Laboratories of Object-Oriented Programming".
Ruby for Java Programmers provides an overview of the Ruby programming language for Java developers. It discusses Ruby's origins and timeline, key differences from Java like duck typing and mixins, and how Ruby approaches concepts like classes, objects, and closures differently. The document aims to explain Ruby's philosophy and help Java programmers transition to Ruby's more dynamic style.
Ruby for Java Programmers provides an overview of the Ruby programming language for Java developers. Some key points:
- Ruby was created in 1993 and gained popularity with the Rails framework in the mid-2000s. It influences include Smalltalk and Lisp.
- Ruby is dynamically typed with duck typing. Classes are objects that can be modified. Everything is an object with message passing.
- Similarities to Java include garbage collection and use of a virtual machine. Differences include optional syntax, mixins instead of interfaces, and reopening of classes.
- Ruby focuses on solving problems concisely while Java focuses on reusable building blocks. Closures and metaprogramming allow more flexible programming in Ruby.
Code for Startup MVP (Ruby on Rails) Session 2Henry S
This document provides an overview and agenda for a workshop on learning to code for startup MVPs using Ruby on Rails. It covers setting up the development environment, a review of concepts from the previous session, and a focus on Ruby basics, Rails models, and using Devise for user authentication.
Ruby is a dynamic, open source programming language created in 1993 by Yukihiro Matsumoto. It was influenced by Perl, Smalltalk, Python and Lisp. Ruby supports object-oriented, imperative, and functional programming styles. Everything in Ruby is an object and has flexible typing. Ruby also features open classes and duck typing. It gained popularity with the release of the Ruby on Rails framework in 2004.
The document discusses differences between Ruby and Scala programming languages. Some key similarities include both being class-based object-oriented languages with functional features. Differences include Scala using explicit types while Ruby is dynamically typed, and Scala having separate concepts of methods and functions while Ruby blurs the distinction. The document also compares features like class definitions, collections, functions as values, and enhancing existing classes.
This document provides an introduction to the Ruby programming language. It discusses that Ruby is a dynamic, object-oriented scripting language with features like duck typing, open classes, literal syntax for arrays and hashes, mixins, closures, and operator overloading. It also covers Ruby concepts like dynamic and static typing, using Ruby in scripting, Ruby's terse syntax, and how the interactive REPL environment works.
Learn Ruby 2011 - Session 5 - Looking for a RescueJames Thompson
In this final language-focussed session we covered the three kinds of blocks used in Ruby: blocks, Procs and lambdas. We also covered error/exception handling in Ruby and reviewed iteration mechanisms.
The document outlines an agenda for a PHP crash course, beginning with an introduction to the speaker's background and qualifications. It then covers the basics of PHP including its history, why it's popular, how to get started, basic syntax and types, variables, constants, expressions, control structures, functions, classes and objects. The document recommends additional advanced PHP topics and reading materials.
The document introduces Ruby and Rails. It discusses that Ruby is an object-oriented scripting language created by Matz to bring joy to programming. Rails is a web framework that makes building database-driven web applications easy through conventions like MVC, templates, and ORMs. The document then provides an overview of major Ruby features like objects, variables, arrays, hashes, symbols, blocks and iterators. It also demonstrates building a simple class in Ruby. Finally, it shows a quick demo of generating a TODO list application in Rails.
Perl is a high-level, general purpose programming language that was introduced in 1987 and remains widely used today. It draws inspiration from languages like C, sed, awk, and grep. The document provides an introduction to Perl's history and basics, including variables, conditionals, loops, regular expressions, subroutines and objects. It highlights advantages like the comprehensive CPAN module library, strong Unicode support, testing culture, and job opportunities. The author works at Nestoria, where Perl powers their property search engine, handling tasks like XML parsing, geocoding, and image processing.
This document provides an overview of object-oriented programming concepts in PHP, including classes, objects, inheritance, and the PHP Data Object (PDO) extension. Key points covered include:
- Classes define objects with associated methods and variables, while objects are instances of classes.
- Inheritance allows child classes to inherit properties from parent classes and add their own.
- PDO provides a uniform interface for database access across different database systems. It allows for prepared statements, transactions, and portability of code. Benchmarking shows PDO offers significant performance improvements over alternative databases extensions.
- The document discusses Ruby meta programming and provides information about the author such as their Twitter handle and blog. It then covers topics like what Ruby is, differences between Ruby and other languages, and new concepts in Ruby like symbols, variables, and object-oriented principles.
Barry Jones introduces himself as the instructor for the Ruby on Rails and PostgreSQL course. He has experience developing applications using various languages and databases. He wishes a course like this had been available when he took over a large Perl to Rails conversion project without knowing Rails or PostgreSQL, which led to issues he later had to fix. The goal of the course is to help students gain proficiency with Rails and PostgreSQL faster to avoid similar mistakes.
Toby Crawley gives an overview of TorqueBox, an open-source application server for Ruby that is based on JBoss Application Server and JRuby. He discusses how TorqueBox allows Ruby applications to take advantage of features like background processing, scheduling, daemons, and clustering. He also provides instructions for installing TorqueBox and deploying Ruby applications on it using rake tasks and deployment descriptors.
- Test-First Teaching involves writing tests before writing code to make the tests pass one by one. This helps students learn incrementally and receive immediate feedback.
- It encourages writing small, focused tests and code to address one problem at a time. Students learn by seeing their code pass each test.
- Research has found Test-First Teaching effective for learning programming languages like Ruby based on various studies and examples developed by independent instructors over time.
This document provides an overview of the Ruby programming language, including its history, philosophy, characteristics, applications, culture, syntax, built-in types, classes and methods, accessors, control flow, including code, modules, metaprogramming, web frameworks, web servers, shell scripting, testing, JRuby, and calling between Java and Ruby.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
Cosa hanno in comune un mattoncino Lego e la backdoor XZ?Speck&Tech
ABSTRACT: A prima vista, un mattoncino Lego e la backdoor XZ potrebbero avere in comune il fatto di essere entrambi blocchi di costruzione, o dipendenze di progetti creativi e software. La realtà è che un mattoncino Lego e il caso della backdoor XZ hanno molto di più di tutto ciò in comune.
Partecipate alla presentazione per immergervi in una storia di interoperabilità, standard e formati aperti, per poi discutere del ruolo importante che i contributori hanno in una comunità open source sostenibile.
BIO: Sostenitrice del software libero e dei formati standard e aperti. È stata un membro attivo dei progetti Fedora e openSUSE e ha co-fondato l'Associazione LibreItalia dove è stata coinvolta in diversi eventi, migrazioni e formazione relativi a LibreOffice. In precedenza ha lavorato a migrazioni e corsi di formazione su LibreOffice per diverse amministrazioni pubbliche e privati. Da gennaio 2020 lavora in SUSE come Software Release Engineer per Uyuni e SUSE Manager e quando non segue la sua passione per i computer e per Geeko coltiva la sua curiosità per l'astronomia (da cui deriva il suo nickname deneb_alpha).
“An Outlook of the Ongoing and Future Relationship between Blockchain Technologies and Process-aware Information Systems.” Invited talk at the joint workshop on Blockchain for Information Systems (BC4IS) and Blockchain for Trusted Data Sharing (B4TDS), co-located with with the 36th International Conference on Advanced Information Systems Engineering (CAiSE), 3 June 2024, Limassol, Cyprus.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
GraphRAG for Life Science to increase LLM accuracyTomaz Bratanic
GraphRAG for life science domain, where you retriever information from biomedical knowledge graphs using LLMs to increase the accuracy and performance of generated answers
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
Driving Business Innovation: Latest Generative AI Advancements & Success StorySafe Software
Are you ready to revolutionize how you handle data? Join us for a webinar where we’ll bring you up to speed with the latest advancements in Generative AI technology and discover how leveraging FME with tools from giants like Google Gemini, Amazon, and Microsoft OpenAI can supercharge your workflow efficiency.
During the hour, we’ll take you through:
Guest Speaker Segment with Hannah Barrington: Dive into the world of dynamic real estate marketing with Hannah, the Marketing Manager at Workspace Group. Hear firsthand how their team generates engaging descriptions for thousands of office units by integrating diverse data sources—from PDF floorplans to web pages—using FME transformers, like OpenAIVisionConnector and AnthropicVisionConnector. This use case will show you how GenAI can streamline content creation for marketing across the board.
Ollama Use Case: Learn how Scenario Specialist Dmitri Bagh has utilized Ollama within FME to input data, create custom models, and enhance security protocols. This segment will include demos to illustrate the full capabilities of FME in AI-driven processes.
Custom AI Models: Discover how to leverage FME to build personalized AI models using your data. Whether it’s populating a model with local data for added security or integrating public AI tools, find out how FME facilitates a versatile and secure approach to AI.
We’ll wrap up with a live Q&A session where you can engage with our experts on your specific use cases, and learn more about optimizing your data workflows with AI.
This webinar is ideal for professionals seeking to harness the power of AI within their data management systems while ensuring high levels of customization and security. Whether you're a novice or an expert, gain actionable insights and strategies to elevate your data processes. Join us to see how FME and AI can revolutionize how you work with data!
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Ruby para-programadores-php
1. Ruby
para programadores PHP
Monday, April 25, 2011
2. PHP
História
• Criada por Rasmus Lerdorf em 1994.
• Objetivo: Fazer um contador para a página pessoal de Rasmus.
• Originalmente era apenas uma biblioteca Perl.
• PHP3 escrito por Andi Gutmans e Zeev Suraski (Zend) em 1997/98
Monday, April 25, 2011
3. Ruby
História
• Criada por Yukihiro Matsumoto (Matz) em 1993.
• Objetivo: Criar uma linguagem poderosa que tenha uma “versão simplificada”
de programação funcional com ótima OO.
• Matz: “I wanted a scripting language that was more powerful than Perl, and
more object-oriented than Python. That's why I decided to design my own
language”
• Matz: “I hope to see Ruby help every programmer in the world to be
productive, and to enjoy programming, and to be happy. That is the primary
purpose of Ruby language.”
Monday, April 25, 2011
6. PHP
Paradigma
• Procedural com suporte a OO.
$a = array(1,2,3);
array_shift($a);
=> 1
array_pop($a);
=> 3
array_push($a, 4);
=> [2,4]
Monday, April 25, 2011
7. Ruby
Paradigma
• Procedural, totalmente OO com classes (Smalltalk-like), um tanto funcional
com o conceito de blocos. Not Haskell thought.
a = [1,2,3]
a.shift
=> 1
a.pop
=> 3
a.push(4)
=> [2,4]
Monday, April 25, 2011
8. PHP
Tipagem
• Dinâmica e fraca.
10 + “10”;
=> 20
Monday, April 25, 2011
9. Ruby
Tipagem
• Dinâmica e forte. (Aberta a mudanças.)
10 + “10”
=> TypeError: String can't be coerced into Fixnum
class Fixnum
alias :old_sum :+
def + s
old_sum s.to_i
end
end
10 + “10”
=> 20
Monday, April 25, 2011
12. Ruby
Fluxo
• if, unless ...
if i == j
...
end
unless cond
...
end
puts “Maior” if age >= 18
puts “Menor” unless user.adult?
Monday, April 25, 2011
13. Ruby
Fluxo
• ...case...
# default usage
case hour
when 1: ...
when 2: ...
end
# with ranges!
case hour
when 0..7, 19..23: puts “Good nite”
when 8..12: puts “Good mornin’”
end
Monday, April 25, 2011
14. Ruby
Fluxo
• ...case...
# with regexes
case date
when /d{2}-d{2}-d{4}/: ...
when /d{2}/d{2}/d{4}/: ...
end
# crie seu próprio case
class MyClass
def ===
...
end
end
Monday, April 25, 2011
15. PHP
Iteradores
• while, for, foreach;
while($i < 10){ ... }
for($i = 0; $i < length($clients); $i++){ ... }
foreach($clients as $client){ ... }
Monday, April 25, 2011
16. Ruby
Iteradores
• for in, each, map, select, inject... enumeradores;
5.times{ ... }
[5,7,4].each{ ... }
[1,2,3].map{|i| i + 1 }
=> [2,3,4]
[16,19,22].select{|i| i >= 18 }
=> [19,22]
[5,7,8].inject{|s,i| s + i }
=> 20
Monday, April 25, 2011
17. Ruby
Iteradores / Blocos
• crie seu próprio iterador:
def hi_five
yield 1; yield 2; yield 3; yield 4; yield 5
end
hi_five{|i| ... }
Monday, April 25, 2011
18. Ruby
Blocos
• power to the people.
File.open(“file”, “w”){|f| f.write(“Wow”) }
File.each_line(“file”){|l| ... }
Dir.glob(“*.png”){ ... }
“Ruby para programadores PHP”.gsub(/PHP/){|m| ... }
get “/” { ... } # sinatra
p{ span “Ruby is ”; strong “cool” } # markaby
Monday, April 25, 2011
19. PHP
OO
• Herança comum, classes abstratas, interfaces. Como Java.
Monday, April 25, 2011
20. Ruby
OO
• Classes e módulos.
module Walker
def walk
...
end
end
# módulo como “herança múltipla” ou “mixin”
class Johny
include Walker
end
Monday, April 25, 2011
21. Ruby
OO
• Classes e módulos.
# módulo como “namescope”
module Foo
class Bar
...
end
end
variable = Foo::Bar.new
Monday, April 25, 2011
22. PHP
OO Dinâmico
• __call: Chama métodos não existentes.
• __get: Chama “atributos” não existentes.
• __set: Chama ao tentar setar atributos não existentes;
$obj->metodo();
$obj->atributo;
$obj->atributo = “valor”;
Monday, April 25, 2011
23. Ruby
OO Dinâmico
• method_missing: Tudo em Ruby são chamadas de métodos.
obj.metodo # chama o método “metodo”
obj.atributo # chama o método “atributo”
obj.atributo = “valor” # chama o método “atributo=”
class Foo
def method_missing m, *args
...
end
end
Monday, April 25, 2011
24. Ruby
OO Dinâmico
• inherited...
# inherited
class Foo
def self.inherited(subklass)
...
end
end
class Bar < Foo
end
Monday, April 25, 2011
25. Ruby
OO Dinâmico
• included...
# included
module Foo
def included(klass)
...
end
end
class Bar
include Foo
end
Monday, April 25, 2011
26. Ruby
OO Dinâmico
• class_eval, class_exec....
class Foo; end
Foo.class_eval(“def bar() ... end”)
Foo.class_exec{ def bar() ... end }
Foo.bar # works
Foo.baz # works
Monday, April 25, 2011
27. Ruby
OO Dinâmico
• instance_eval, instance_exec, define_method....
class Foo
define_method(:bar) { ... }
instance_exec{ def baz(); ... end }
instance_eval(“def qux(); ... end”)
end
Foo.new.bar # works
Foo.new.baz # works
Foo.new.qux # works
Monday, April 25, 2011
28. Ruby
OO Dinâmico
• attr_(reader|accessor|writer)
class Foo
attr_accessor :bar
end
# same as...
class Foo
def bar() @bar end
def bar= val
@bar = val
end
end
Monday, April 25, 2011
29. Ruby
OO Dinâmico
• nesting, alias, autoload, class_variable_(set|get|defined?), const_(get|set|
defined?|missing), constanst, instance_(method|methods), method_(added|
defined?|removed|undefined), remove_(class_variable|const|method),
undef_method, and so much more...
Monday, April 25, 2011
30. PHP
Comunidade
• PECL, PEAR. ... PHP Classes?
Monday, April 25, 2011
31. Ruby
Comunidade
• RubyGems
gem install bundler # install gem
bundler gem my_gem # create my own gem
cd my_gem
rake release # that’s all folks
#also
bundler install # install all dependencies for a project
Monday, April 25, 2011
32. Ruby
Comunidade
• GitHub
Monday, April 25, 2011