The document is the slides from a presentation given by Amir Barylko on Iron Ruby and .NET to a .NET user group in September 2010. The slides introduce Ruby, discuss how Iron Ruby allows Ruby code to run on .NET, demonstrate some basic Ruby concepts, and provide examples of using Ruby with .NET such as the RSpec testing library.
The document is a presentation on Jruby and Iron Ruby given by Amir Barylko. It contains 3 slides: an introduction slide with contact information, a slide on Ruby basics including dynamic typing and features, and a slide on Ruby language elements like classes and mixins.
This document is a presentation by Amir Barylko on Iron Ruby and .NET given at CodeMash in January 2011. It introduces Iron Ruby, which allows Ruby code to run on the .NET Common Language Runtime (CLR). The presentation covers Ruby basics like classes, mixins and the Enumerable module. It also provides examples of using Iron Ruby like the RSpec testing library and building a simple web app with Sinatra.
The document provides an overview of the Ruby programming language, discussing how everything in Ruby is an object, Ruby's dynamic typing, how classes are objects and class names are constants, modules and mixins, functional support through blocks and variables, and how procs and lambdas allow for deferred evaluation.
Semana Interop: Trabalhando com IronPython e com IronrubyAlessandro Binhara
The document compares dynamic and static languages, listing characteristics of each. It then shows a table comparing several languages (C#, VB.NET, Boo, Python, Ruby) based on their type system (static or dynamic), compilation (static or dynamic), object model (static or dynamic) and typing (strong or weak).
The document is an introduction to Ruby and IronRuby. It discusses what Ruby and IronRuby are, how to run Ruby applications with IronRuby, and how to integrate IronRuby with C#. It provides information on Ruby's creator Yukihiro Matsumoto, other Ruby implementations besides IronRuby, and links to additional Ruby resources. The document aims to give an overview of the Ruby programming language and how IronRuby allows Ruby code to run on .NET.
Видео и материалы со встречи:
http://getdev.net/Event/dynamic-language-runtime
В докладе рассмотрим скриптовые языки на платформе DLR, способы автоматизации рутинной работы с их помощью, а также интегрирование в конечное приложение.
Amir Barylko gave a presentation on page object patterns to the Winnipeg Ruby User Group in February 2012. He discussed the benefits of using page object patterns for UI testing, including flushing out requirements, driving development, and providing traceability and documentation. He also covered common implementations of page object patterns using Ruby and Cucumber.
The document is a presentation on Jruby and Iron Ruby given by Amir Barylko. It contains 3 slides: an introduction slide with contact information, a slide on Ruby basics including dynamic typing and features, and a slide on Ruby language elements like classes and mixins.
This document is a presentation by Amir Barylko on Iron Ruby and .NET given at CodeMash in January 2011. It introduces Iron Ruby, which allows Ruby code to run on the .NET Common Language Runtime (CLR). The presentation covers Ruby basics like classes, mixins and the Enumerable module. It also provides examples of using Iron Ruby like the RSpec testing library and building a simple web app with Sinatra.
The document provides an overview of the Ruby programming language, discussing how everything in Ruby is an object, Ruby's dynamic typing, how classes are objects and class names are constants, modules and mixins, functional support through blocks and variables, and how procs and lambdas allow for deferred evaluation.
Semana Interop: Trabalhando com IronPython e com IronrubyAlessandro Binhara
The document compares dynamic and static languages, listing characteristics of each. It then shows a table comparing several languages (C#, VB.NET, Boo, Python, Ruby) based on their type system (static or dynamic), compilation (static or dynamic), object model (static or dynamic) and typing (strong or weak).
The document is an introduction to Ruby and IronRuby. It discusses what Ruby and IronRuby are, how to run Ruby applications with IronRuby, and how to integrate IronRuby with C#. It provides information on Ruby's creator Yukihiro Matsumoto, other Ruby implementations besides IronRuby, and links to additional Ruby resources. The document aims to give an overview of the Ruby programming language and how IronRuby allows Ruby code to run on .NET.
Видео и материалы со встречи:
http://getdev.net/Event/dynamic-language-runtime
В докладе рассмотрим скриптовые языки на платформе DLR, способы автоматизации рутинной работы с их помощью, а также интегрирование в конечное приложение.
Amir Barylko gave a presentation on page object patterns to the Winnipeg Ruby User Group in February 2012. He discussed the benefits of using page object patterns for UI testing, including flushing out requirements, driving development, and providing traceability and documentation. He also covered common implementations of page object patterns using Ruby and Cucumber.
Amir Barylko gave a presentation on page object patterns to the Winnipeg Ruby User Group in February 2012. He discussed the benefits of using page object patterns for UI testing, including flushing out requirements, driving development, and providing traceability and documentation. He also covered common implementations of page object patterns using Ruby and Cucumber.
Pharo is an open-source Smalltalk platform for professional use based on Squeak Smalltalk. It provides a flexible environment for language research and development. The document discusses Pharo's history, upcoming releases, examples of new compiler and slot implementations, and plans for just-in-time compilation and adaptive optimization using runtime information. It encourages readers to join the Pharo community to help improve tools, implement modules, reflection, and more.
Denker - Pharo: Present and Future - 2009-07-14CHOOSE
Pharo is an open-source Smalltalk platform for professional use based on Squeak Smalltalk. It provides a flexible environment to support research into new language concepts. Over the past year, 377 updates were made to address 699 bug reports. Future plans include improvements to the compiler, slots system, and just-in-time (JIT) compilation and adaptive optimization (AOStA) techniques. The community is working on these and other enhancements to further enable evolution and experimentation.
The document discusses the evolution of architecture at the gaming company Wooga. It began by using Ruby on Rails with a MySQL database, which worked for low user numbers but struggled as users grew. A second team then used Redis as the main database instead of MySQL for its speed. The teams combined approaches, migrating static data to MySQL and keeping dynamic data in Redis. This allowed scaling to millions of daily users. The architecture evolved further to make servers and databases stateless to improve reliability.
The document discusses alternatives for running Ruby on Google App Engine that provide better performance than JRuby. It introduces Mirah, a Ruby-like language that compiles to Java bytecode, and Dubious, a web framework written in Mirah. Dubious aims to provide high performance, lightweight functionality similar to Rails. Examples show how to write a basic contacts management application in Dubious that compiles to Java for the App Engine environment.
RubyMotion allows building iOS apps using the Ruby programming language. It was released in beta in April 2014 and costs $199 plus the $99 iOS developer license. RubyMotion uses Ruby gems and works with any text editor. Libraries like CocoaPods and templates like Storyboards can be used. Testing tools include RSpec, Guard, and Frank/Cucumber. Documentation is available on the RubyMotion site and via the Dash app.
This document provides an overview and introduction to the Apache Sling framework. It discusses why Sling was created, its architecture built on OSGi, JCR, and REST standards, and how it provides a content-centric approach. Key benefits of Sling include its modular design, support for multiple programming languages, and use by major companies for applications like digital asset management and wikis.
RubyMotion is a toolchain for developing native iOS applications using the Ruby language. It compiles Ruby code into optimized machine code for iOS. RubyMotion allows developers to use Ruby while also having direct access to the full native iOS API like Objective-C. It provides a way to code iOS apps in Ruby without needing to learn Objective-C or Cocoa Touch.
Vagrant presentation at LA Ruby in September 2010.
The main takeaway for this presentation I wanted to give was the reasoning and importance for virtualization development environments.
This document provides an overview of open source tools and libraries that can be used for .NET projects. It lists many popular options for IDEs, source control, package management, continuous integration servers, metrics, build scripts, ORM, IoC containers, database management, APIs, unit testing, mocking, acceptance testing, application automation, HTTP libraries, JSON, JavaScript libraries, routing, JavaScript MVC frameworks, view engines, roles and access, CoffeeScript, SASS/LESS, CSS libraries, and Visual Studio extensions.
Rich UI with Knockout.js & CoffeescriptAmir Barylko
This document outlines a presentation on building rich user interfaces using Knockout.js and CoffeeScript. It introduces the speaker, Amir Barylko, and provides an overview of the topics to be covered, including introductions to CoffeeScript, Knockout.js, MVVM pattern, bindings, observables and computed values. Expectations from the audience are requested and resources including contact details and additional materials are listed.
Kotlin what_you_need_to_know-converted event 4 with nigeriansjunaidhasan17
Kotlin is a cross-platform, statically typed programming language that runs on the JVM and JavaScript. It was developed by JetBrains as a pragmatic language for building production-grade applications. Kotlin is fully interoperable with Java and has many features that improve code safety, brevity, and readability compared to Java, like null safety, data classes, string templates, and extension functions. Popular companies like Google, Pinterest, and Square use Kotlin for Android development due to its interoperability with Java and improvements over Java.
This document summarizes a presentation about exception propagation in PostgreSQL and Python. It discusses how stored procedures in PostgreSQL raise generic exceptions that provide limited information. The author then describes Exceptable, a Python library that defines a common exception hierarchy. It uses a decorator to catch database exceptions and re-raise custom exceptions, improving error handling and separation of concerns between the database and application layers. Examples show how it makes permission errors and other exceptions more usable and identifiable.
- The document discusses various debugging tools that can be used for Ruby and Rails development, including NetBeans, Aptana, Gyre, 3rd Rail, Sapphire Steel, Komodo IDE, TextMate, e-texteditor, and ruby-debug. It provides links to download pages and setup instructions for many of these debuggers. It also includes a link to download a free book on building Ruby on Rails web applications.
The document summarizes a presentation by Amir Barylko on Behaviour Driven Development (BDD). It introduces BDD and its principles, including describing an application's behavior from the stakeholder's perspective. It also discusses how traditional projects fail and the outside-in approach of BDD. The presentation demonstrates BDD with Gherkin and includes questions and resources for further information.
IronRuby is a Ruby implementation that compiles Ruby code to .NET Intermediate Language. It allows Ruby code to run on the .NET Common Language Runtime and interoperate with .NET libraries. IronRuby was started by Microsoft but is now an open source project. It enables Ruby developers to build applications that integrate with existing .NET systems and libraries. However, IronRuby is still missing support for some Ruby standards like OpenSSL and has a lower test passing rate than MRI Ruby.
My presentation from RedDotRubyConf 2013 in Singapore. Turned out to be a reflection on whether I'd still be a Rubyist in another 5 years, and what are the external trends that might change that. Short story: Yes! Of course. I'll always think like a Rubyist even though things will probably get more polyglot. The arena of web development is perhaps the most unpredictable though.
1. The document discusses abstracting database access in Titanium Mobile applications through the use of Object-Relational Mappers (ORMs).
2. It describes some of the pain points of directly using Titanium's database API for complex applications.
3. It then introduces the concept of ORMs and how they can provide an abstraction layer to manipulate database records and execute queries in an object-oriented way.
Abstracting databases access in Titanium MobileXavier Lacot
1. The document discusses abstracting database access in Titanium Mobile applications through the use of Object-Relational Mappers (ORMs).
2. It describes some of the pain points of directly using Titanium's database API for complex applications.
3. It then introduces the concept of ORMs and how they can provide an abstraction layer to manipulate database records and execute queries in an object-oriented way.
The Guardian's Open Platform initiative enables partners to build applications with The Guardian. As part of this initiative, The Guardian provides the Content API - a rich interface to all The Guardian's content and metadata back to 1991 - over 1 million documents. This talk starts with a brief overview of the latest iteration of the content API. It will then cover how we implemented this in Scala using Solr, addressing real-world problems in creating an index of content:
how we represented a complex relational database model in Solr
how we keep the index up to date, meeting a sub-5 minute end-to-end update requirement
how we update the schema as the API evolves, with zero downtime
how we scale in response to unpredictable demand, using cloud services
The document discusses converting code from object-oriented programming to functional programming, focusing on concepts like immutability, recursion, and composition. It highlights common functional programming techniques like mapping, filtering, reducing, and list comprehensions. The document also provides references for learning more about functional programming in Clojure, Haskell, F#, and other languages.
The document discusses the Elm programming language. It provides an overview of Elm including that it is functional, Haskell-inspired, compiles to JavaScript, and uses a simple architecture pattern. It also summarizes some key Elm features like types, functions, and packages for core functionality.
Amir Barylko gave a presentation on page object patterns to the Winnipeg Ruby User Group in February 2012. He discussed the benefits of using page object patterns for UI testing, including flushing out requirements, driving development, and providing traceability and documentation. He also covered common implementations of page object patterns using Ruby and Cucumber.
Pharo is an open-source Smalltalk platform for professional use based on Squeak Smalltalk. It provides a flexible environment for language research and development. The document discusses Pharo's history, upcoming releases, examples of new compiler and slot implementations, and plans for just-in-time compilation and adaptive optimization using runtime information. It encourages readers to join the Pharo community to help improve tools, implement modules, reflection, and more.
Denker - Pharo: Present and Future - 2009-07-14CHOOSE
Pharo is an open-source Smalltalk platform for professional use based on Squeak Smalltalk. It provides a flexible environment to support research into new language concepts. Over the past year, 377 updates were made to address 699 bug reports. Future plans include improvements to the compiler, slots system, and just-in-time (JIT) compilation and adaptive optimization (AOStA) techniques. The community is working on these and other enhancements to further enable evolution and experimentation.
The document discusses the evolution of architecture at the gaming company Wooga. It began by using Ruby on Rails with a MySQL database, which worked for low user numbers but struggled as users grew. A second team then used Redis as the main database instead of MySQL for its speed. The teams combined approaches, migrating static data to MySQL and keeping dynamic data in Redis. This allowed scaling to millions of daily users. The architecture evolved further to make servers and databases stateless to improve reliability.
The document discusses alternatives for running Ruby on Google App Engine that provide better performance than JRuby. It introduces Mirah, a Ruby-like language that compiles to Java bytecode, and Dubious, a web framework written in Mirah. Dubious aims to provide high performance, lightweight functionality similar to Rails. Examples show how to write a basic contacts management application in Dubious that compiles to Java for the App Engine environment.
RubyMotion allows building iOS apps using the Ruby programming language. It was released in beta in April 2014 and costs $199 plus the $99 iOS developer license. RubyMotion uses Ruby gems and works with any text editor. Libraries like CocoaPods and templates like Storyboards can be used. Testing tools include RSpec, Guard, and Frank/Cucumber. Documentation is available on the RubyMotion site and via the Dash app.
This document provides an overview and introduction to the Apache Sling framework. It discusses why Sling was created, its architecture built on OSGi, JCR, and REST standards, and how it provides a content-centric approach. Key benefits of Sling include its modular design, support for multiple programming languages, and use by major companies for applications like digital asset management and wikis.
RubyMotion is a toolchain for developing native iOS applications using the Ruby language. It compiles Ruby code into optimized machine code for iOS. RubyMotion allows developers to use Ruby while also having direct access to the full native iOS API like Objective-C. It provides a way to code iOS apps in Ruby without needing to learn Objective-C or Cocoa Touch.
Vagrant presentation at LA Ruby in September 2010.
The main takeaway for this presentation I wanted to give was the reasoning and importance for virtualization development environments.
This document provides an overview of open source tools and libraries that can be used for .NET projects. It lists many popular options for IDEs, source control, package management, continuous integration servers, metrics, build scripts, ORM, IoC containers, database management, APIs, unit testing, mocking, acceptance testing, application automation, HTTP libraries, JSON, JavaScript libraries, routing, JavaScript MVC frameworks, view engines, roles and access, CoffeeScript, SASS/LESS, CSS libraries, and Visual Studio extensions.
Rich UI with Knockout.js & CoffeescriptAmir Barylko
This document outlines a presentation on building rich user interfaces using Knockout.js and CoffeeScript. It introduces the speaker, Amir Barylko, and provides an overview of the topics to be covered, including introductions to CoffeeScript, Knockout.js, MVVM pattern, bindings, observables and computed values. Expectations from the audience are requested and resources including contact details and additional materials are listed.
Kotlin what_you_need_to_know-converted event 4 with nigeriansjunaidhasan17
Kotlin is a cross-platform, statically typed programming language that runs on the JVM and JavaScript. It was developed by JetBrains as a pragmatic language for building production-grade applications. Kotlin is fully interoperable with Java and has many features that improve code safety, brevity, and readability compared to Java, like null safety, data classes, string templates, and extension functions. Popular companies like Google, Pinterest, and Square use Kotlin for Android development due to its interoperability with Java and improvements over Java.
This document summarizes a presentation about exception propagation in PostgreSQL and Python. It discusses how stored procedures in PostgreSQL raise generic exceptions that provide limited information. The author then describes Exceptable, a Python library that defines a common exception hierarchy. It uses a decorator to catch database exceptions and re-raise custom exceptions, improving error handling and separation of concerns between the database and application layers. Examples show how it makes permission errors and other exceptions more usable and identifiable.
- The document discusses various debugging tools that can be used for Ruby and Rails development, including NetBeans, Aptana, Gyre, 3rd Rail, Sapphire Steel, Komodo IDE, TextMate, e-texteditor, and ruby-debug. It provides links to download pages and setup instructions for many of these debuggers. It also includes a link to download a free book on building Ruby on Rails web applications.
The document summarizes a presentation by Amir Barylko on Behaviour Driven Development (BDD). It introduces BDD and its principles, including describing an application's behavior from the stakeholder's perspective. It also discusses how traditional projects fail and the outside-in approach of BDD. The presentation demonstrates BDD with Gherkin and includes questions and resources for further information.
IronRuby is a Ruby implementation that compiles Ruby code to .NET Intermediate Language. It allows Ruby code to run on the .NET Common Language Runtime and interoperate with .NET libraries. IronRuby was started by Microsoft but is now an open source project. It enables Ruby developers to build applications that integrate with existing .NET systems and libraries. However, IronRuby is still missing support for some Ruby standards like OpenSSL and has a lower test passing rate than MRI Ruby.
My presentation from RedDotRubyConf 2013 in Singapore. Turned out to be a reflection on whether I'd still be a Rubyist in another 5 years, and what are the external trends that might change that. Short story: Yes! Of course. I'll always think like a Rubyist even though things will probably get more polyglot. The arena of web development is perhaps the most unpredictable though.
1. The document discusses abstracting database access in Titanium Mobile applications through the use of Object-Relational Mappers (ORMs).
2. It describes some of the pain points of directly using Titanium's database API for complex applications.
3. It then introduces the concept of ORMs and how they can provide an abstraction layer to manipulate database records and execute queries in an object-oriented way.
Abstracting databases access in Titanium MobileXavier Lacot
1. The document discusses abstracting database access in Titanium Mobile applications through the use of Object-Relational Mappers (ORMs).
2. It describes some of the pain points of directly using Titanium's database API for complex applications.
3. It then introduces the concept of ORMs and how they can provide an abstraction layer to manipulate database records and execute queries in an object-oriented way.
The Guardian's Open Platform initiative enables partners to build applications with The Guardian. As part of this initiative, The Guardian provides the Content API - a rich interface to all The Guardian's content and metadata back to 1991 - over 1 million documents. This talk starts with a brief overview of the latest iteration of the content API. It will then cover how we implemented this in Scala using Solr, addressing real-world problems in creating an index of content:
how we represented a complex relational database model in Solr
how we keep the index up to date, meeting a sub-5 minute end-to-end update requirement
how we update the schema as the API evolves, with zero downtime
how we scale in response to unpredictable demand, using cloud services
The document discusses converting code from object-oriented programming to functional programming, focusing on concepts like immutability, recursion, and composition. It highlights common functional programming techniques like mapping, filtering, reducing, and list comprehensions. The document also provides references for learning more about functional programming in Clojure, Haskell, F#, and other languages.
The document discusses the Elm programming language. It provides an overview of Elm including that it is functional, Haskell-inspired, compiles to JavaScript, and uses a simple architecture pattern. It also summarizes some key Elm features like types, functions, and packages for core functionality.
.NET Core is a cross-platform version of .NET that allows developers to build applications that run on Windows, Linux and Mac. It features a modular design that only includes necessary components, is lightweight and fast. It also introduces a new model for hosting applications, dependency injection, configuration and logging. ASP.NET Core unifies the web frameworks like MVC, Web API and Web Pages on a single shared framework.
Estimating software projects, features and tasks is not easy. This presentation shows a way to change the focus from "how long is going to take" to "what can I build in xx days"
Coderetreat hosting training slides for future hosts of coderetreat. It covers the basic components of hosting a coderetreat. From finding a location, to getting sponsors and what can go wrong.
For the video please go to https://youtu.be/QhDpq5hrRM8
There's no charge for (functional) awesomenessAmir Barylko
Presentation about adopting functional programming as a way of thinking and solving problems by embracing functional traits of languages like Haskell, F#, Scala and Clojure.
The document summarizes new features in C# 6 including string interpolation for embedding variables in strings, null conditional operators to avoid null reference exceptions, using static for calling static methods without qualifying the class, auto-property initializers to set property values in the constructor, expression-bodied methods and properties for more concise syntax, nameof expressions for compile-time checked names, exception filters for catching specific exceptions, index initializers for simplifying dictionary initialization, and await in catch/finally blocks for asynchronous exception handling. It also previews potential future features like primary constructors and indexed property operators.
Presentation done in Jan at the Winnipeg Agile User Group about how to make your team more productive and communicate better developers, managers and business analysts.
This document discusses various programming concepts and techniques including:
- Object oriented design and whether it makes programming more enjoyable
- Techniques for working with dates like DateTime parsing and date arithmetic
- Addressing anemic domain models by adding behavior to entities
- Different approaches to application architecture like repositories, services, and the unit of work pattern
- Best practices for testing like focusing tests on behavior rather than implementation details
- Principles like abstraction, the story of the code, and only coding what is needed
From coach to owner - What I learned from the other sideAmir Barylko
The document describes an Agile coach's experience transitioning to becoming a startup owner. It discusses building an experienced and self-sufficient remote team, managing requirements through user stories, planning releases using a story map to visualize work, delivering value through Kanban and retrospectives, and succeeding as a team through believing in the process. Lessons learned include searching for the best team takes time but pays off, keeping releases short and celebrating each one, and deploying from day one while balancing quality and releasing value.
Communication is the Key to Teamwork and productivityAmir Barylko
The document discusses the importance of communication and teamwork in lean project management. It emphasizes using visual tools to share expectations, plan as a team by avoiding status meetings and promoting visualizations, and work as a team by also avoiding status meetings and modeling the work process. The document recommends estimating using team velocity, having retrospective meetings, believing in the process, and helping each other rather than focusing on what is not ready.
Refactoring is a technique for restructuring existing code without changing its external behavior. It involves reorganizing code to improve factors like design, readability, and maintainability. Some reasons to refactor include removing duplication, improving design, reducing complexity, and decreasing technical debt. Refactoring should be done incrementally with unit tests to ensure changes don't introduce bugs. It involves techniques like extracting methods, simplifying conditionals, and improving names. Refactoring helps keep code healthy and manageable as a project evolves over time.
The document discusses roles and responsibilities in agile teams. It notes that roles may change in agile approaches compared to classic teams, with a focus on collaboration, delivering value, and shortening lead times. The most important factor is the attitude of working as a team to feel good about delivering value.
This document discusses refactoring code. It begins with a definition of refactoring as restructuring existing code without changing external behavior. It then provides reasons for refactoring such as removing duplication, improving design and readability. The document outlines different types of tests that can be used for refactoring like unit tests and integration tests. It provides examples of refactoring techniques for different programming languages like removing nested conditionals in C#. It emphasizes principles for refactoring like keeping the code clear and telling a story. It also discusses functional programming inspirations and the importance of the right tools.
- The document is a presentation by Amir Barylko about CoffeeScript and its benefits over JavaScript.
- CoffeeScript is a language that compiles to JavaScript, exposing the good parts of JavaScript in a simpler way. It adds features like string interpolation, implicit returns, destructuring assignment, and classes.
- While some argue JavaScript is enough or that the extra compilation step is difficult, CoffeeScript produces cleaner code and the benefits outweigh the costs according to Barylko. It can be tested and used with third party libraries as JavaScript.
This document discusses using Sass and Bootstrap to improve CSS development. It introduces Sass features like nesting, variables, operations and functions that help avoid repetition and make CSS more maintainable. Bootstrap is presented as a framework that provides pre-built CSS components, a grid system, and mixins to support responsive design. The benefits of both tools are rapid development and cross-browser compatibility, though Bootstrap has a learning curve and may not be fully flexible. Resources are provided to learn more.
The document discusses techniques for agile requirements including writing user stories and acceptance criteria before implementation. It suggests using a common language like Gherkin to describe features and scenarios to facilitate automated testing and communication. Scenarios should be descriptive rather than imperative. Runnable scenarios can be implemented as acceptance, integration, or unit tests using various tools. Benefits include easier planning and discovering functionality while challenges include transitioning to the new approach and team effort.
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.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
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).
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
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!
AI 101: An Introduction to the Basics and Impact of Artificial IntelligenceIndexBug
Imagine a world where machines not only perform tasks but also learn, adapt, and make decisions. This is the promise of Artificial Intelligence (AI), a technology that's not just enhancing our lives but revolutionizing entire industries.
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.
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!SOFTTECHHUB
As the digital landscape continually evolves, operating systems play a critical role in shaping user experiences and productivity. The launch of Nitrux Linux 3.5.0 marks a significant milestone, offering a robust alternative to traditional systems such as Windows 11. This article delves into the essence of Nitrux Linux 3.5.0, exploring its unique features, advantages, and how it stands as a compelling choice for both casual users and tech enthusiasts.
Infrastructure Challenges in Scaling RAG with Custom AI modelsZilliz
Building Retrieval-Augmented Generation (RAG) systems with open-source and custom AI models is a complex task. This talk explores the challenges in productionizing RAG systems, including retrieval performance, response synthesis, and evaluation. We’ll discuss how to leverage open-source models like text embeddings, language models, and custom fine-tuned models to enhance RAG performance. Additionally, we’ll cover how BentoML can help orchestrate and scale these AI components efficiently, ensuring seamless deployment and management of RAG systems in the cloud.
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.
“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.
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
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/building-and-scaling-ai-applications-with-the-nx-ai-manager-a-presentation-from-network-optix/
Robin van Emden, Senior Director of Data Science at Network Optix, presents the “Building and Scaling AI Applications with the Nx AI Manager,” tutorial at the May 2024 Embedded Vision Summit.
In this presentation, van Emden covers the basics of scaling edge AI solutions using the Nx tool kit. He emphasizes the process of developing AI models and deploying them globally. He also showcases the conversion of AI models and the creation of effective edge AI pipelines, with a focus on pre-processing, model conversion, selecting the appropriate inference engine for the target hardware and post-processing.
van Emden shows how Nx can simplify the developer’s life and facilitate a rapid transition from concept to production-ready applications.He provides valuable insights into developing scalable and efficient edge AI solutions, with a strong focus on practical implementation.
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.
1. AMIR BARYLKO
IRON RUBY AND .NET
A MATCH MADE IN
HEAVEN
.NET USER GROUP
SEP 2010
Amir Barylko - RoR Training MavenThought Inc. - June 2010
2. WHO AM I?
• Architect
• Developer
• Mentor
• Great cook
• The one who’s entertaining you for the next hour!
Amir Barylko - RoR Training MavenThought Inc. - June 2010
3. CONTACT AND MATERIALS
• Contact me: amir@barylko.com, @abarylko
• Download: http://www.orthocoders.com/presentations.
Amir Barylko - RoR Training MavenThought Inc. - June 2010
4. RUBY INTRO
Dynamic languages
Testing
IRB
Constructs
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
5. DYNAMIC LANGUAGES
High level
Dynamically typed
Runtime over compile time
Closures
Reflection
Platform independent
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
6. .NET CLR
Iron Ruby DLR CLR
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
7. DEVELOPERS TOOLBOX
• Make your toolbox grow!
• The right tool for the job
• Not a replacement
• Combine strengths
• Problem solving
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
8. WELCOME TO RUBY
Created in mid-90s by Several implementations:
“Matz” Matsumoto in Japan MRI, YARB, JRuby
Smalltalk, Perl influences Totally free!!
Dynamic typing
Object Oriented
Automatic memory
management
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
9. RUBY FEATURES
Everything is an expression Operator overloading,
flexible syntax
Metaprogramming
Powerful standard library
Closures
Garbage collection
Exceptions
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
10. RUBY SUPPORT
Hundreds of books Lots of great web sites:
basecamp, twitter, 43
User conferences all over things, hulu, scribd,
the world slideshare, Justin.tv
Active community (you can Lots of web frameworks
create a conf in your own inspired by Ruby on Rails
city and top Ruby coders
will go there to teach
others, invite them and
see)
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
11. SET UP
Download IronRuby installer
Put the bin folder on the path
That’s it!
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
13. BASIC TYPES
Numbers
1.class => Fixnum
1.1.class => Float
(120**100).class => Bignum
3.times {puts “he “}
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
14. BASIC TYPES II
• Strings
'he ' + 'he' => he he
“That's right” => That's right
'He said “hi”' => He said “hi”
“He said “hi”” => He said “hi”
“1 + 1 is #{1+1}” => 1 + 1 is 2
"#{'Ho! '*3}Merry Christmas" =>Ho! Ho! Ho! Merry
Christmas
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
15. BASIC TYPES III
Arrays
a = [1, 5.5, “nice!”]
1 == a.first
1 == a[0]
nil == a[10]
a[1] = 3.14
a.each {|elem| puts elem}
a.sort
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
16. BASIC TYPES IV
• Hashes
h = {“one” => 1, 1 => “one”}
h[“one”] == 1
h[1] == “one”
h[“two”] == nil
h.keys == [“one”, 1] (or is it [1, “one”] ?)
h.values == [“one”, 1] (or is it [1, “one”] ?)
h[“one”] = 1.0
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
17. BASIC TYPES V
Symbols: constant names. No need to declare, guaranteed
uniqueness, fast comparison
:apple == :apple
:orange != :banana
[:all, :those, :symbols]
{:ca => “Canada”, :ar => “Argentina”, :es => “Spain”}
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
18. CONTROL STRUCTURES
if
if count < 20
puts “need more”
elsif count < 40
puts “perfect”
else
puts “too many”
end
while
while count < 100 && need_more
buy(1)
end
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
19. CONTROL STRUCTURES II
Statement modifiers
buy while need_more?
buy(5) if need_more?
buy until left == 0
buy unless left < 5
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
20. CONTROL STRUCTURES III
• Case
case left
when 0..5
dont_buy_more
when 6..10
buy(1)
when 10..100
buy(5)
end
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
21. METHODS
Simple
def play(movie_path)
....
end
Default arguments
def play(movie_path, auto_start = true, wrap = false)
....
end
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
22. METHODS II
Return value: the last expression evaluated, no need for
explicit return
def votes(voted, num_votes)
voted && num_votes || nil
end
No need for parenthesis on call without arguments (same
syntax to call a method and a field)
buy() == buy
movie.play() == movie.play
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
23. METHODS III
No need also with arguments (but careful!! only if you know
what you are doing)
movie.play “Pulp fiction”, false, true
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
24. RUBY INTRO II
Classes
Mixin
Enumerable
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
25. CLASSES & OBJECTS
Initializer and instance variables
class Movie
def initialize(name)
@name = name
end
def play
puts %Q{Playing “#{@name}”. Enjoy!}
end
end
m = Movie.new(“Pulp fiction”)
m.play
=> Playing “Pulp fiction”. Enjoy!
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
26. CLASSES & OBJECTS II
Attributes
class Movie
def initialize(name)
@name = name
end
}
def name # attr_reader :name
@name
end # attr_accessor :name
def name=(value) # attr_writter :name
@name = value
end
end
m = Movie.new('Brazil').name = “Pulp fiction”
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
27. CODE ORGANIZATION
Code in files with .rb extension
Require 'movie' will read movie.rb file and make its methods
available to the current file
Require 'media/movie' will read file from media dir relative
to the current working dir
$LOAD_PATH << 'media'
require 'movie'
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
28. CODE ORGANIZATION II
Relative to this file:
require File.join(File.dirname(__FILE__), 'media/movie')
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
29. MIXINS
What about module “instance methods”?
One of the greatest Ruby features!
You can define functions in Modules, and get them added to
your classes.
Great code reuse,
Multiple inheritance alternative.
Code organization
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
30. ENUMERABLE
Enumerable mixin, from the standard library documentation:
The Enumerable mixin provides collection
classes with several traversal and
searching methods, and with the ability to
sort. The class must provide a method each,
which yields successive members of the
collection
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
31. ENUMERABLE II
It provides useful methods such as:
map
to_a
take_while
count
inject
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
32. EXAMPLES
rSpec
Enumerable Mixin
missing_method
Sinatra
BDD Cucumber
DSL
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
33. RSPEC TESTING LIBRARY
require File.dirname(__FILE__) + "/../main/MavenThought.MovieLibrary/bin/Debug/MavenThought.MovieLibrary.dll"
require 'rubygems'
require 'spec'
include MavenThought::MovieLibrary
describe Library do
it "should be created empty" do
lib = Library.new
lib.contents.should be_empty
end
it "should add an element" do
lib = Library.new
m = Movie.new 'Blazing Saddles'
lib.add m
lib.contents.should include(m)
lib.contents.count.should == 1
end
end
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
34. EXTEND LIBRARY
WITH METHOD MISSING
require File.dirname(__FILE__) + "/../main/MavenThought.MovieLibrary/bin/Debug/MavenThought.MovieLibrary.dll"
require 'rubygems'
include MavenThought::MovieLibrary
# Extend library to use method missing to add find_by
class Library
def method_missing(m, *args)
if m.id2name.include?( "find_by" )
field = m.id2name.sub /find_by_/, ""
contents.find_all( lambda{ |m| m.send(field) == args[0] } )
else
super
end
end
end
l = Library.new
l.add Movie.new('Blazing Saddles', System::DateTime.new(1972, 1, 1))
l.add Movie.new('Spaceballs', System::DateTime.new(1984, 1, 1))
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
35. SIMPLE WEB WITH SINATRA
require 'rubygems'
require 'sinatra'
require 'haml'
require 'singleton'
require File.dirname(__FILE__) + "/../main/MavenThought.MovieLibrary/bin/Debug/MavenThought.MovieLibrary.dll"
include MavenThought::MovieLibrary
class Library
include Singleton
end
# index
get '/' do
@movies = Library.instance.contents
haml :index
end
# create
post '/' do
m = Movie.new(params[:title])
Library.instance.add m
redirect '/'
end
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
36. BDD WITH CUCUMBER
Feature: Addition
In order to make my library grow
As a registered user
I want to add movies to the library
Scenario: Add a movie
Given I have an empty library
When I add the following movies:
| title | release_date |
| Blazing Saddles | Feb 7, 1974 |
| Young Frankenstein | Dec 15, 1974 |
| Spaceballs | Jun 24, 1987 |
Then The library should have 3 movies
And "Blazing Saddles" should be in the list with release date "Feb 7, 1974"
And "Young Frankenstein" should be in the list with release date "Dec 15, 1974"
And "Spaceballs" should be in the list with release date "Jun 24, 1987"
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
37. CUCUMBER STEPS
require File.dirname(__FILE__) + "/../../main/MavenThought.MovieLibrary/bin/Debug/MavenThought.MovieLibrary.dll"
include MavenThought::MovieLibrary
Given /^I have an empty library$/ do
@lib = Library.new
end
When /^I add the following movies:$/ do |table|
table.hashes.each do |row|
movie = Movie.new row[:title], System::DateTime.parse(row[:release_date])
@lib.add movie
end
end
Then /^The library should have (.*) movies$/ do |count|
@lib.contents.count.should == count.to_i
end
Then /^"([^"]*)" should be in the list with release date "([^"]*)"$/ do |title, release|
@lib.contents.find( lambda { |m| m.title == title and m.release_date == System::DateTime.parse(release) } ).should_not be_nil
end
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
38. DSL I
RAKE
task :default => [:build]
desc "Builds the project"
task :build do
call_target msbuild_cmd, :build
end
desc "Rebuild the application by cleaning and then building"
task :rebuild => [:clean, :build] do
#nothing to do....
end
desc "Runs all the tests"
task :test => ["test:all"]
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
39. DSL II
CRON - WHENEVER
every 10.minutes do
runner "MyModel.some_process"
rake "my:rake:task"
command "/usr/bin/my_great_command"
end
every 2.days, :at => '4:30am' do
command "/usr/bin/my_great_command"
end
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010
41. CONTACT AND MATERIALS
• Contact me: amir@barylko.com, @abarylko
• Download: http://www.orthocoders.com/presentations.
Amir Barylko - RoR Training MavenThought Inc. - June 2010
42. ONLINE RESOURCES
IronRuby: http://ironruby.net/
The Ruby Bible (a.k.a. Pickaxe) http://ruby-doc.org/docs/ProgrammingRuby/
Ruby language site: http://www.ruby-lang.org
Amir Barylko - Iron Ruby and .NET MavenThought Inc. - Sep 2010