1. The document discusses Scala including learning it in half an hour, Scala being a JVM and .NET language, and examples of companies using Scala like Twitter and Foursquare.
2. It provides code examples of basic Scala programs and concepts like classes, objects, main methods, and printing output.
3. Later examples demonstrate more advanced concepts like domain specific languages, traits, mixins, pattern matching, actors, and message passing between actors.
One of the advantages of learning a new language is being exposed to new idioms and new approaches to solving old problems. In this talk, we will introduce the Ruby language with particular focus on the idioms and concepts that are different from what is found in Java.
We will introduce concepts such as closures, continuations and meta programming. We will also examine powerful techniques that are practically impossible in Java due to its compile time binding of types.
No experience with Ruby is assumed although an understanding of Java would be helpful.
This talk was given at the Toronto Java Users Group in April 2008
The document provides an overview of what the author loves about Ruby, summarizing several key features in 3 sentences or less:
Ruby allows for concise and clear code with less ceremony than other languages like Java. It features an expressive syntax, powerful enumerable processing methods, and the ability to pass code blocks to functions as arguments. Ruby treats everything as an object, including primitive types like integers, and includes features like ranges, regular expressions, and metaprogramming capabilities.
Doctrine 2.0 Enterprise Persistence Layer for PHPGuilherme Blanco
One area that was mostly abandoned in applications is the Model layer. Doctrine is a project that brings enterprise support this layer through a powerful ORM implementation.
Allied with new support introduced in PHP 5.3, Doctrine 2.0 brings the concept of ORM in PHP to the next level. It introduces a couple of concepts known from other languages and areas, like Annotations, Object Query Languages and Parsers. This talk will introduce these new concepts as well as explain most of its architecture.
The document provides an overview of JavaScript, covering what it is, its basics, functions, objects, prototypes, scope, asynchronous JavaScript, JSON, debugging tools, performance, events, error handling, and the future of JavaScript. It discusses that JavaScript is an object-oriented scripting language used in web pages that is not tied to specific browsers but makes use of the DOM, BOM, and ECMAScript standards. It also summarizes some of JavaScript's core features like functions, objects, prototypes, and more.
Mirah is a small, fast JVM language that uses Ruby syntax but compiles to Java bytecode. It was created by Charles Oliver Nutter, the creator of JRuby, who wanted to write Java code using a language as expressive as Ruby. Mirah has Ruby's syntactic sugar but is statically typed and compiled like Java, without runtime modification. It uses type inference and macros to provide Ruby-like conveniences while compiling to a small footprint without needing a runtime library, making it suitable for mobile applications. Developers can get started with Mirah by installing it with RVM and writing code that looks like Ruby but compiles to Java classes.
Groovy is a dynamic language for the Java Virtual Machine that aims to bring dynamic capabilities like Python and Ruby to Java developers. It has many features inspired by dynamic languages like closures, duck typing and metaprogramming, but also maintains compatibility with Java by having a Java-like syntax and the ability to interoperate with Java code. Groovy code can either be run directly from scripts or compiled into Java bytecode to be used within Java applications.
1. The document discusses Scala including learning it in half an hour, Scala being a JVM and .NET language, and examples of companies using Scala like Twitter and Foursquare.
2. It provides code examples of basic Scala programs and concepts like classes, objects, main methods, and printing output.
3. Later examples demonstrate more advanced concepts like domain specific languages, traits, mixins, pattern matching, actors, and message passing between actors.
One of the advantages of learning a new language is being exposed to new idioms and new approaches to solving old problems. In this talk, we will introduce the Ruby language with particular focus on the idioms and concepts that are different from what is found in Java.
We will introduce concepts such as closures, continuations and meta programming. We will also examine powerful techniques that are practically impossible in Java due to its compile time binding of types.
No experience with Ruby is assumed although an understanding of Java would be helpful.
This talk was given at the Toronto Java Users Group in April 2008
The document provides an overview of what the author loves about Ruby, summarizing several key features in 3 sentences or less:
Ruby allows for concise and clear code with less ceremony than other languages like Java. It features an expressive syntax, powerful enumerable processing methods, and the ability to pass code blocks to functions as arguments. Ruby treats everything as an object, including primitive types like integers, and includes features like ranges, regular expressions, and metaprogramming capabilities.
Doctrine 2.0 Enterprise Persistence Layer for PHPGuilherme Blanco
One area that was mostly abandoned in applications is the Model layer. Doctrine is a project that brings enterprise support this layer through a powerful ORM implementation.
Allied with new support introduced in PHP 5.3, Doctrine 2.0 brings the concept of ORM in PHP to the next level. It introduces a couple of concepts known from other languages and areas, like Annotations, Object Query Languages and Parsers. This talk will introduce these new concepts as well as explain most of its architecture.
The document provides an overview of JavaScript, covering what it is, its basics, functions, objects, prototypes, scope, asynchronous JavaScript, JSON, debugging tools, performance, events, error handling, and the future of JavaScript. It discusses that JavaScript is an object-oriented scripting language used in web pages that is not tied to specific browsers but makes use of the DOM, BOM, and ECMAScript standards. It also summarizes some of JavaScript's core features like functions, objects, prototypes, and more.
Mirah is a small, fast JVM language that uses Ruby syntax but compiles to Java bytecode. It was created by Charles Oliver Nutter, the creator of JRuby, who wanted to write Java code using a language as expressive as Ruby. Mirah has Ruby's syntactic sugar but is statically typed and compiled like Java, without runtime modification. It uses type inference and macros to provide Ruby-like conveniences while compiling to a small footprint without needing a runtime library, making it suitable for mobile applications. Developers can get started with Mirah by installing it with RVM and writing code that looks like Ruby but compiles to Java classes.
Groovy is a dynamic language for the Java Virtual Machine that aims to bring dynamic capabilities like Python and Ruby to Java developers. It has many features inspired by dynamic languages like closures, duck typing and metaprogramming, but also maintains compatibility with Java by having a Java-like syntax and the ability to interoperate with Java code. Groovy code can either be run directly from scripts or compiled into Java bytecode to be used within Java applications.
Javascript allows interactive content on web pages and control of the browser and document. It is an interpreted scripting language that is cross-platform but support varies. Javascript can provide interactive content, control document appearance and content, and interact with the user through event handlers.
This is the first set of slightly updated slides from a Perl programming course that I held some years ago for the QA team of a big international company.
I want to share it with everyone looking for intransitive Perl-knowledge.
The updates after 1st of June 2014 are made with the kind support of Chain Solutions (http://chainsolutions.net/)
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Not so long ago Microsoft announced a new language trageting on front-end developers. Everybody's reaction was like: Why?!! Is it just Microsoft darting back to Google?!
So, why a new language? JavaScript has its bad parts. Mostly you can avoid them or workaraund. You can emulate class-based OOP style, modules, scoping and even run-time typing. But that is doomed to be clumsy. That's not in the language design. Google has pointed out these flaws, provided a new language and failed. Will the story of TypeScript be any different?
Introduction to web programming with JavaScriptT11 Sessions
This document provides an overview of web programming with JavaScript. It discusses topics like:
- HTML and CSS which are used to structure and style web pages
- How browsers interpret HTML, CSS, and JavaScript to display web pages
- What backend and frontend development involve
- Common JavaScript concepts like variables, operators, functions, and events
- Tools that can be used for web development like text editors, browsers, and version control software
- Resources for learning more about JavaScript and web programming
This is the sixth set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
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.
Rust is a emerging system language with the speed of C/C++, the ergonomics of a functional language and the safety of a modern dynamic language. In this presentation I’ll expose the main feature of the language which make it distinctive and a good choice for fats and reliable software.
What You Need to Know About Lambdas - Jamie Allen (Typesafe)jaxLondonConference
This document summarizes Jamie Allen's presentation on lambdas. Some key points:
- Lambdas are anonymous functions that are limited in scope and difficult to test and debug in isolation.
- Using named functions instead of lambdas can help with readability and debugging by showing the function name in stack traces, but the name may still be mangled.
- Lambdas have access to variables in enclosing scopes, which can cause problems if mutable state is closed over.
- To maintain functional programming benefits while improving maintainability, techniques like "lifting" methods to treat them as first-class functions can help. This allows showing the method name in stack traces.
Monads, also known as Kleisli triples in Category Theory, are an (endo-)functor together with two natural transformations, which are surprisingly useful in pure languages like Haskell, but this talk will NOT reference monads. Ever. (Well, at least not in this talk.)
Instead what I intend to impress upon an audience of newcomers to Haskell is the wide array of freely available libraries most of which are liberally licensed open source software, intuitive package management, practical build tools, reasonable documentation (when you know how to read it and where to find it), interactive shell (or REPL), mature compiler, stable runtime, testing tools that will blow your mind away, and a small but collaborative and knowledgeable community of developers. Oh, and some special features of Haskell - the language - too!
1. The document discusses format string vulnerabilities and how to exploit them. Format strings allow printing variable values without specifying the type or number of parameters, allowing arbitrary memory reads and writes.
2. Examples show how to use format strings with the %n specifier to write specific values to arbitrary memory addresses by calculating offsets on the stack.
3. Exploiting format strings allows operations like GOT hijacking, leaking memory, and writing variable values to gain arbitrary code execution on vulnerable programs. The document provides resources for practicing these techniques.
This document outlines PHP functions including function declaration, arguments, returning values, variable scope, static variables, recursion, and useful built-in functions. Functions are blocks of code that perform tasks and can take arguments. They are declared with the function keyword followed by the name and parameters. Functions can return values and arguments are passed by value by default but can also be passed by reference. Variable scope inside functions refers to the local scope unless specified as global. Static variables retain their value between function calls. Recursion occurs when a function calls itself. Useful built-in functions include function_exists() and get_defined_functions().
- Xslate is a template engine for Perl5 that is written in C using XS. It aims to be fast, safe from XSS attacks, and support multiple template syntaxes including Kolon and TTerse.
- Xslate templates are first preprocessed, parsed into an AST, compiled into bytecode, and then executed by a virtual machine for high performance. Automatic HTML escaping also helps prevent XSS issues.
- Future goals include adding features like loop controls and context controls, as well as exploring more template syntaxes and better integrations with web frameworks.
There are several JavaScript libraries available in the world of web programming. And, as the usage and complexity is increasing day by day, sometimes it becomes very difficult and confusing to understand and create modules using those libraries, especially for those having strong background of Object Oriented Languages.
So this one hour session will make an effort to go into the very basics of JavaScript and put a base for writing modular JavaScript code.
Part of a series of talk to help you write your first Perl 6 program today. So its basic syntax and concepts of its object orientation and a comparison to the widely used P5 OO system Moose which is similar by no accident.
These are my slides from a mini Clojure tutorial presented at the "7 Languages in 7 Months" meetup group. The first part of the presentation faithfully presents material from Bruce Tate book, and the second part covers the more advanced topics of state management and macros
"How was it to switch from beautiful Perl to horrible JavaScript", Viktor Tur...Fwdays
The document provides biographical information about Viktor Turskyi, including his professional experience as a non-executive director, founder, senior software engineer, and open source developer with over 20 years of experience in IT. It also lists some of his conference talks and delivered projects. The remaining slides provide examples and explanations of JavaScript and Perl concepts like data types, operators, functions, objects and arrays.
This document provides the step-by-step solutions to 4 subtraction problems showing the ones, hundreds, and tens places. It shows that 653-438=215, 546-328=218, 544-373=170, and 658-465=193.
AutoForms is a custom form engine for Django that allows users to declare forms at runtime, serialize form data, and dynamically generate forms. It can be used for polling, information collecting, custom forms in workflows, and dynamic forms in Django apps. Key features include declaring forms programmatically, previewing forms, setting advanced field options, customizing error messages, collecting and accessing submitted form data, and displaying stored data.
Javascript allows interactive content on web pages and control of the browser and document. It is an interpreted scripting language that is cross-platform but support varies. Javascript can provide interactive content, control document appearance and content, and interact with the user through event handlers.
This is the first set of slightly updated slides from a Perl programming course that I held some years ago for the QA team of a big international company.
I want to share it with everyone looking for intransitive Perl-knowledge.
The updates after 1st of June 2014 are made with the kind support of Chain Solutions (http://chainsolutions.net/)
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
Not so long ago Microsoft announced a new language trageting on front-end developers. Everybody's reaction was like: Why?!! Is it just Microsoft darting back to Google?!
So, why a new language? JavaScript has its bad parts. Mostly you can avoid them or workaraund. You can emulate class-based OOP style, modules, scoping and even run-time typing. But that is doomed to be clumsy. That's not in the language design. Google has pointed out these flaws, provided a new language and failed. Will the story of TypeScript be any different?
Introduction to web programming with JavaScriptT11 Sessions
This document provides an overview of web programming with JavaScript. It discusses topics like:
- HTML and CSS which are used to structure and style web pages
- How browsers interpret HTML, CSS, and JavaScript to display web pages
- What backend and frontend development involve
- Common JavaScript concepts like variables, operators, functions, and events
- Tools that can be used for web development like text editors, browsers, and version control software
- Resources for learning more about JavaScript and web programming
This is the sixth set of slightly updated slides from a Perl programming course that I held some years ago.
I want to share it with everyone looking for intransitive Perl-knowledge.
A table of content for all presentations can be found at i-can.eu.
The source code for the examples and the presentations in ODP format are on https://github.com/kberov/PerlProgrammingCourse
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.
Rust is a emerging system language with the speed of C/C++, the ergonomics of a functional language and the safety of a modern dynamic language. In this presentation I’ll expose the main feature of the language which make it distinctive and a good choice for fats and reliable software.
What You Need to Know About Lambdas - Jamie Allen (Typesafe)jaxLondonConference
This document summarizes Jamie Allen's presentation on lambdas. Some key points:
- Lambdas are anonymous functions that are limited in scope and difficult to test and debug in isolation.
- Using named functions instead of lambdas can help with readability and debugging by showing the function name in stack traces, but the name may still be mangled.
- Lambdas have access to variables in enclosing scopes, which can cause problems if mutable state is closed over.
- To maintain functional programming benefits while improving maintainability, techniques like "lifting" methods to treat them as first-class functions can help. This allows showing the method name in stack traces.
Monads, also known as Kleisli triples in Category Theory, are an (endo-)functor together with two natural transformations, which are surprisingly useful in pure languages like Haskell, but this talk will NOT reference monads. Ever. (Well, at least not in this talk.)
Instead what I intend to impress upon an audience of newcomers to Haskell is the wide array of freely available libraries most of which are liberally licensed open source software, intuitive package management, practical build tools, reasonable documentation (when you know how to read it and where to find it), interactive shell (or REPL), mature compiler, stable runtime, testing tools that will blow your mind away, and a small but collaborative and knowledgeable community of developers. Oh, and some special features of Haskell - the language - too!
1. The document discusses format string vulnerabilities and how to exploit them. Format strings allow printing variable values without specifying the type or number of parameters, allowing arbitrary memory reads and writes.
2. Examples show how to use format strings with the %n specifier to write specific values to arbitrary memory addresses by calculating offsets on the stack.
3. Exploiting format strings allows operations like GOT hijacking, leaking memory, and writing variable values to gain arbitrary code execution on vulnerable programs. The document provides resources for practicing these techniques.
This document outlines PHP functions including function declaration, arguments, returning values, variable scope, static variables, recursion, and useful built-in functions. Functions are blocks of code that perform tasks and can take arguments. They are declared with the function keyword followed by the name and parameters. Functions can return values and arguments are passed by value by default but can also be passed by reference. Variable scope inside functions refers to the local scope unless specified as global. Static variables retain their value between function calls. Recursion occurs when a function calls itself. Useful built-in functions include function_exists() and get_defined_functions().
- Xslate is a template engine for Perl5 that is written in C using XS. It aims to be fast, safe from XSS attacks, and support multiple template syntaxes including Kolon and TTerse.
- Xslate templates are first preprocessed, parsed into an AST, compiled into bytecode, and then executed by a virtual machine for high performance. Automatic HTML escaping also helps prevent XSS issues.
- Future goals include adding features like loop controls and context controls, as well as exploring more template syntaxes and better integrations with web frameworks.
There are several JavaScript libraries available in the world of web programming. And, as the usage and complexity is increasing day by day, sometimes it becomes very difficult and confusing to understand and create modules using those libraries, especially for those having strong background of Object Oriented Languages.
So this one hour session will make an effort to go into the very basics of JavaScript and put a base for writing modular JavaScript code.
Part of a series of talk to help you write your first Perl 6 program today. So its basic syntax and concepts of its object orientation and a comparison to the widely used P5 OO system Moose which is similar by no accident.
These are my slides from a mini Clojure tutorial presented at the "7 Languages in 7 Months" meetup group. The first part of the presentation faithfully presents material from Bruce Tate book, and the second part covers the more advanced topics of state management and macros
"How was it to switch from beautiful Perl to horrible JavaScript", Viktor Tur...Fwdays
The document provides biographical information about Viktor Turskyi, including his professional experience as a non-executive director, founder, senior software engineer, and open source developer with over 20 years of experience in IT. It also lists some of his conference talks and delivered projects. The remaining slides provide examples and explanations of JavaScript and Perl concepts like data types, operators, functions, objects and arrays.
This document provides the step-by-step solutions to 4 subtraction problems showing the ones, hundreds, and tens places. It shows that 653-438=215, 546-328=218, 544-373=170, and 658-465=193.
AutoForms is a custom form engine for Django that allows users to declare forms at runtime, serialize form data, and dynamically generate forms. It can be used for polling, information collecting, custom forms in workflows, and dynamic forms in Django apps. Key features include declaring forms programmatically, previewing forms, setting advanced field options, customizing error messages, collecting and accessing submitted form data, and displaying stored data.
Spring MVC is a framework for building Java web applications in Spring. It uses the MVC architectural pattern to decouple the different parts of the application. The framework provides features like controllers to handle requests, models to manage data, and views to render the model for the user. It aims to make developing enterprise applications simple while maintaining power and flexibility.
The document discusses Grails, an open-source web application framework that uses Groovy and is built on top of Spring and Hibernate. It provides an overview of some key advantages of Grails, including lowering the learning curve of Java, bringing back productivity and pleasure to development, allowing incremental and iterative application building, and enabling scaling of applications. Code examples are also provided showing how to implement domain classes, controllers and tags in Grails.
This document summarizes a talk given at YAPC Tokyo 2010 about calling C code from Perl using various techniques. It discusses Ctypes, a module for directly calling C functions without XS; Libperl++, a C++ library for embedding and extending Perl; and XS++, which allows writing C++ classes that integrate seamlessly with Perl using a special syntax.
Groovy is a dynamic language for the Java Virtual Machine that simplifies programming through features like closures, properties, and built-in support for lists, maps, ranges, and regular expressions. The latest version 1.5 adds support for Java 5 features like annotations and generics to leverage frameworks that use them. Groovy can be integrated into applications through mechanisms like JSR-223, Spring, and Groovy's own GroovyClassLoader to externalize business rules, provide extension points, and customize applications.
The presentation shows major features of the new C++ standard (language and the library). The full list of new things is very broad, so I've categorized them to be easier to understand.
Embedded Typesafe Domain Specific Languages for JavaJevgeni Kabanov
The document discusses embedded domain-specific languages (DSLs) for Java and provides two case studies:
1) Building SQL queries using a typesafe DSL that avoids errors and allows type inference.
2) Modifying Java bytecode using the ASM library to define a DSL for bytecode engineering.
The document summarizes several Java 5 features including generics, enhanced for loops, autoboxing/unboxing, typesafe enums, varargs, static imports, and annotations. It provides examples and explanations of each feature.
RailswayCon 2010 - Dynamic Language VMsLourens Naudé
The document discusses Ruby virtual machines and optimizations. It covers topics like Ruby VM internals, system resources, Ruby optimizations like constant folding and inlining, object structures, classes and modules, method dispatch, garbage collection. The goal is to understand tools and techniques for building high performance Ruby applications.
From Query Plan to Query Performance: Supercharging your Apache Spark Queries...Databricks
The SQL tab in the Spark UI provides a lot of information for analysing your spark queries, ranging from the query plan, to all associated statistics. However, many new Spark practitioners get overwhelmed by the information presented, and have trouble using it to their benefit. In this talk we want to give a gentle introduction to how to read this SQL tab. We will first go over all the common spark operations, such as scans, projects, filter, aggregations and joins; and how they relate to the Spark code written. In the second part of the talk we will show how to read the associated statistics to pinpoint performance bottlenecks.
This document discusses how domain-specific languages (DSLs) can be used to make Java code more readable and maintainable. It describes different types of DSLs including external and internal DSLs built with Java and scripting languages. It also discusses JetBrains MPS, a language workbench that provides a new approach for building DSLs without relying on a specific output language. DSLs allow raising the level of abstraction and separating stable and changing parts of code. Fluent APIs and internal DSLs in Java provide readability benefits, while scripting languages allow further readability through features like closures and list literals.
This document discusses the importance of comments in code. It provides reasons to include comments such as explaining unintuitive code, documenting what the code is doing, and documenting why certain approaches were taken. It also discusses what makes a good comment, including commenting on processing, APIs, changes, tags, and keywords like TODO, FIXME, and XXX. Bad commenting practices like redundant comments are also covered. The document recommends commenting code for other programmers and notes comments are also important for documentation standards like JavaDoc and PHPDoc.
SQLAdria 2009 presentation's slides about our experience with Maven and SQLJ. It delves in some details about SQLJ and performance comparion between SQLJ and JDBC with prepared statements. It also shows surprising results for what concerns performances of (DB2) SQL PL procedures
The document outlines the topics covered in an advanced Java programming course, including object-oriented programming concepts, Java programming fundamentals, GUI programming, networking, and server-side programming. It also provides examples of Java code demonstrating basic syntax, methods, classes, strings, and math functions.
This document provides an introduction to MERB (Modular, Elegant Resource-Based) and discusses several key concepts related to MERB including background processes, web services, embedded components, distributed applications, and the Rack middleware framework. The document is written in an informal tone and touches on many different topics at a high-level without going into detail on any single topic.
The document provides an overview of various design patterns including the Strategy Pattern, Template Method Pattern, Component Configuration Pattern, Reflection Pattern, Pipe and Filter Pattern, Factory Pattern, Observer Pattern, and Chain of Responsibility Pattern. It discusses the core principles and intents of each pattern, provides examples of how they can be implemented in code, and notes the relationships between different patterns.
The document discusses using JDBC (Java Database Connectivity) for object-relational mapping in Java. It covers connecting to databases, executing SQL statements and queries, working with ResultSets, and best practices for managing database connections. Key points include using the DriverManager class to obtain database connections, preparing statements for parameterized queries, and implementing a DAO (Data Access Object) layer to encapsulate data access logic.
This document discusses writing a domain specific language (DSL) for data transformations using applicative functors in Scala. It introduces the concepts of Picker, Reader, and Result to parse heterogeneous data formats into a common format. Reader is defined as an applicative functor to allow combining multiple readers. Later, Reader is enhanced to take type parameters for both input and output to avoid reparsing data and support XML parsing. Type lambdas are used to make Reader work as an applicative functor.
This document provides an overview of DOM and SAX, two common XML APIs in Java. It describes the key differences between DOM and SAX, including that DOM builds an in-memory tree representation, while SAX parses the XML as a stream of events. The document also provides code examples for using SAX to parse XML and extract data, and examples of how to access and manipulate DOM trees after parsing XML.
Ruby on Rails is a web application framework built using the Ruby programming language. It is designed to make web development simpler and more productive. Some key principles of Ruby on Rails include convention over configuration, don't repeat yourself (DRY), and opinionated software. Ruby on Rails integrates with Oracle databases using various Oracle adapters and gems that allow access to Oracle data from Ruby and Rails applications.
The document discusses best practices for writing PL/SQL code, including writing as little code as possible by favoring set-based operations over procedural loops, using packages to organize code and reduce dependencies, employing static SQL for improved performance and maintainability, and using bulk processing to reduce round trips to the database.
Similar to Domain Specific Languages In Scala Duse3 (20)
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
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).
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!
“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.
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.
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.
CAKE: Sharing Slices of Confidential Data on BlockchainClaudio Di Ciccio
Presented at the CAiSE 2024 Forum, Intelligent Information Systems, June 6th, Limassol, Cyprus.
Synopsis: Cooperative information systems typically involve various entities in a collaborative process within a distributed environment. Blockchain technology offers a mechanism for automating such processes, even when only partial trust exists among participants. The data stored on the blockchain is replicated across all nodes in the network, ensuring accessibility to all participants. While this aspect facilitates traceability, integrity, and persistence, it poses challenges for adopting public blockchains in enterprise settings due to confidentiality issues. In this paper, we present a software tool named Control Access via Key Encryption (CAKE), designed to ensure data confidentiality in scenarios involving public blockchains. After outlining its core components and functionalities, we showcase the application of CAKE in the context of a real-world cyber-security project within the logistics domain.
Paper: https://doi.org/10.1007/978-3-031-61000-4_16
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
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.
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
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.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
Full-RAG: A modern architecture for hyper-personalizationZilliz
Mike Del Balso, CEO & Co-Founder at Tecton, presents "Full RAG," a novel approach to AI recommendation systems, aiming to push beyond the limitations of traditional models through a deep integration of contextual insights and real-time data, leveraging the Retrieval-Augmented Generation architecture. This talk will outline Full RAG's potential to significantly enhance personalization, address engineering challenges such as data management and model training, and introduce data enrichment with reranking as a key solution. Attendees will gain crucial insights into the importance of hyperpersonalization in AI, the capabilities of Full RAG for advanced personalization, and strategies for managing complex data integrations for deploying cutting-edge AI solutions.
Things to Consider When Choosing a Website Developer for your Website | FODUUFODUU
Choosing the right website developer is crucial for your business. This article covers essential factors to consider, including experience, portfolio, technical skills, communication, pricing, reputation & reviews, cost and budget considerations and post-launch support. Make an informed decision to ensure your website meets your business goals.
23. Or... case class Route(source:String, target:String) class RouteBuilder(s:String) { def --> (target:String) = Route(s, target) } implicit def string2Route(s:String) = new RouteBuilder(s) "a" --> "b" == Route( "a" , "b" )
24. Let's build a DSL we all know SQL http://github.com/p3t0r/scala-sql-dsl
25. Pure Scala // Simple query with sorting SQL select "*" from ("user") order Asc("name") // More complex query with and/or including precedence SQL select "*" from ("user") where (("name","peter") and (("active", true) or ("role", "admin"))) Overriding the '=' operator was a no-go ;-)
27. case class Where( val clauses: Clause*) trait Clause { def and (otherField: Clause): Clause = And(this, otherField) def or (otherField: Clause): Clause = Or(this, otherField) } case class StringEquals(val f: String, val value: String) extends Clause case class NumberEquals(val f: String, val value: Number) extends Clause case class BooleanEquals(val f: String, val value: Boolean) extends Clause case class In(val field: String, val values: String*) extends Clause case class And(val lClause:Clause, val rClause:Clause) extends Clause case class Or(val lClause:Clause, val rClause:Clause) extends Clause AST for the Where clause
28. Some Implicits & Helpers object QueryBuilder { implicit def tuple2field(t: (String, String)): StringEquals = StringEquals(t._1, t._2) implicit def tuple2field(t: (String, Int)): NumberEquals = NumberEquals(t._1, t._2) implicit def tuple2field(t: (String, Boolean)): BooleanEquals = BooleanEquals(t._1, t._2) implicit def from2query(f: From): Query = Query(f.operation.get, f, Option(Where())) /** entrypoint for starting a select query */ def select(fields:String*) = Select(fields:_*) def select(symbol: Symbol): Select = symbol match { case 'all => select("*") case _ => throw new RuntimeException("Only 'all allowed as symbol") } def in(field: String, values: String*) = In(field, values: _*) }
29. That looks like a lot of code :( The entire builder is only 54 lines, including whitespace and comments! >> CONTINUE IN IDEA <<
30. And external? class SQLParser extends JavaTokenParsers { def query:Parser[Query] = operation ~ from ~ opt(where) ~ opt(order) ^^ { case operation ~ from ~ where ~ order => Query(operation, from, where, order) } def operation:Parser[Operation] = { ("select" | "update" | "delete") ~ repsep(ident, ",") ^^ { case "select" ~ f => Select(f:_*) case _ => throw new IllegalArgumentException("Operation not implemented") } } def from:Parser[From] = "from" ~> ident ^^ (From(_)) def where:Parser[Where] = "where" ~> rep(clause) ^^ (Where(_:_*)) /* more in idea */ }