The document discusses Ruby coding style guidelines including:
- Using 2 spaces for indentation and avoiding tabs
- Formatting code layout such as spacing around operators and line breaks
- Naming conventions like snake_case and avoiding unnecessary comments
- Following patterns for classes, modules and methods
The document emphasizes consistency but acknowledges rules can be broken for readability or consistency within a codebase. Automatic checking and team adoption are suggested for enforcing style guidelines.
This document provides an introduction and overview of the Ruby programming language. It discusses Ruby's history and creator Yukihiro Matsumoto. It demonstrates basic Ruby syntax like integers, floats, strings, variables, methods, and flow control. It also covers Ruby classes, objects, and the interactive Ruby shell IRB. The document then introduces common Ruby libraries and frameworks like Sinatra for web development and Nokogiri for parsing HTML/XML. It includes code examples to demonstrate basic usage.
Annotations are more than phpdoc comments, they're a fully-featured way of including additional information alongside your code. We might have rejected an RFC to add support into the PHP core, but the community has embraced this tool anyway! This session shows you who is doing what with annotations, and will give you some ideas on how to use the existing tools in your own projects to keep life simple. Developers, architects and anyone responsible for the technical direction of an application should attend this session.
Six Feet Up's senior developer Clayton Parker will lead you on a journey to become a Python zen master. Your code should be as fashionable as it is functional. To quote the Zen of Python, "Beautiful is better than ugly". This talk will teach you about the Python style guide and why it is important. The talk will show you examples of well written Python and how to analyze your current code to make Guido proud.
Six Feet Up's senior developer Clayton Parker will lead you on a journey to become a Python zen master. Your code should be as fashionable as it is functional. To quote the Zen of Python, "Beautiful is better than ugly". This talk will teach you about the Python style guide and why it is important. The talk will show you examples of well written Python and how to analyze your current code to make Guido proud.
This document contains interview questions and answers related to Ruby and Ruby on Rails. It includes questions about Ruby gems, the difference between symbols and strings, the purpose of yield, class variables vs instance variables vs global variables, constructors and method overloading in Ruby, ranges, and implementing singleton pattern. Detailed explanations and code examples are provided for many of the questions.
PHP Annotations: They exist! - JetBrains WebinarRafael Dohms
Annotations are more than PHPDoc comments, they’re a fully-featured way of including additional information alongside your code. We might have rejected an RFC to add support into the PHP core, but the community has embraced this tool anyway!
This session shows you who is doing what with annotations, and will give you some ideas on how to use the existing tools in your own projects to keep life simple. Developers, architects and anyone responsible for the technical direction of an application should attend this session.
The document summarizes new features in Ruby 2, including lazy enumerators that allow infinite enumerations to be cut off, the Module#prepend method that puts modules before classes in the method lookup path, String methods like #bytes now returning arrays instead of enumerators, keyword arguments that allow default parameters, and various other minor changes.
The document provides advice for feeling overwhelmed as a newcomer to an OCaml project, recommending using the OCamlSpotter tool to more easily search and navigate code by leveraging metadata from the compiler rather than manual searching or grep. It describes how OCamlSpotter works and can be integrated with editors, and argues that it is a proven solution for locating symbols in OCaml code.
This document provides an introduction and overview of the Ruby programming language. It discusses Ruby's history and creator Yukihiro Matsumoto. It demonstrates basic Ruby syntax like integers, floats, strings, variables, methods, and flow control. It also covers Ruby classes, objects, and the interactive Ruby shell IRB. The document then introduces common Ruby libraries and frameworks like Sinatra for web development and Nokogiri for parsing HTML/XML. It includes code examples to demonstrate basic usage.
Annotations are more than phpdoc comments, they're a fully-featured way of including additional information alongside your code. We might have rejected an RFC to add support into the PHP core, but the community has embraced this tool anyway! This session shows you who is doing what with annotations, and will give you some ideas on how to use the existing tools in your own projects to keep life simple. Developers, architects and anyone responsible for the technical direction of an application should attend this session.
Six Feet Up's senior developer Clayton Parker will lead you on a journey to become a Python zen master. Your code should be as fashionable as it is functional. To quote the Zen of Python, "Beautiful is better than ugly". This talk will teach you about the Python style guide and why it is important. The talk will show you examples of well written Python and how to analyze your current code to make Guido proud.
Six Feet Up's senior developer Clayton Parker will lead you on a journey to become a Python zen master. Your code should be as fashionable as it is functional. To quote the Zen of Python, "Beautiful is better than ugly". This talk will teach you about the Python style guide and why it is important. The talk will show you examples of well written Python and how to analyze your current code to make Guido proud.
This document contains interview questions and answers related to Ruby and Ruby on Rails. It includes questions about Ruby gems, the difference between symbols and strings, the purpose of yield, class variables vs instance variables vs global variables, constructors and method overloading in Ruby, ranges, and implementing singleton pattern. Detailed explanations and code examples are provided for many of the questions.
PHP Annotations: They exist! - JetBrains WebinarRafael Dohms
Annotations are more than PHPDoc comments, they’re a fully-featured way of including additional information alongside your code. We might have rejected an RFC to add support into the PHP core, but the community has embraced this tool anyway!
This session shows you who is doing what with annotations, and will give you some ideas on how to use the existing tools in your own projects to keep life simple. Developers, architects and anyone responsible for the technical direction of an application should attend this session.
The document summarizes new features in Ruby 2, including lazy enumerators that allow infinite enumerations to be cut off, the Module#prepend method that puts modules before classes in the method lookup path, String methods like #bytes now returning arrays instead of enumerators, keyword arguments that allow default parameters, and various other minor changes.
The document provides advice for feeling overwhelmed as a newcomer to an OCaml project, recommending using the OCamlSpotter tool to more easily search and navigate code by leveraging metadata from the compiler rather than manual searching or grep. It describes how OCamlSpotter works and can be integrated with editors, and argues that it is a proven solution for locating symbols in OCaml code.
Part 2 in depth guide on word-press coding standards for css & js bigeSparkBiz
Every programming language has its own coding standards which need to be followed by any WordPress Development Company in order to enhance the readability of the code. The same is the case with WordPress, where there are coding standards for PHP, HTML, CSS & JS.
Here, we have tried to provide you with an in-depth guide on WordPress Coding Standards For CSS & JS which will help you in future when you’re working with WordPress.
The document discusses best practices for documenting Swift code using Markdown syntax. It provides examples of how to write documentation comments, automatically recognize parameters and return values, embed code blocks, and use other Markdown elements like lists and headers. It recommends using the Jazzy tool to generate HTML documentation from the comments.
STC 2016 Programming Language StorytimeSarah Kiniry
This document provides an overview of how to interpret code to understand what a program is doing without running it. It discusses using code comments, function names, variable names, file locations, print functions, file names and other variables to understand the program's purpose. Specific programming languages are also discussed including examples of "Hello World" programs in Java, JavaScript, C, C#, PHP, Perl, Ruby and Python.
The document provides an introduction to PHP including its history, features, syntax, variables, data types, operators, conditional statements, loops, functions and string operations. It discusses how to install PHP, integrate it with Apache and use PHP tags to distinguish code from HTML. It also covers declaring variables, constants, arithmetic, relational and logical operators, conditional statements like if/else, loops like for and while, math and string functions.
These are slides from a lecture on Red Flags in Programming that took place at an Israeli Open Source Developers meeting.
Red flags in programming are signs that you likely made a mistake with your application design or code.
Noticing and avoiding these mistakes help us write better code, at any language.
The subject related to mostly dynamic (higher level) languages, even though the sample code is in Perl.
The Perl API for the Mortally Terrified (beta)Mike Friedman
A brief introduction to get you started in working with Perl's internal API. This presentation is a work in progress.
Code samples: http://github.com/friedo/perl-api-terror
El síndrome de Down es una condición genética causada por la presencia de una copia extra del cromosoma 21, lo que provoca problemas en el desarrollo del cuerpo y el cerebro. Los síntomas varían de una persona a otra pero incluyen características físicas como cabeza pequeña y boca pequeña, así como retraso mental y social. Aunque muchos niños con síndrome de Down tienen limitaciones, ahora viven más tiempo y pueden llevar vidas independientes y productivas con el debido apoyo y tratamiento.
Este informe trata sobre un expediente civil relacionado con la ejecución de garantías reales. El conflicto se ubica en el derecho privado del código civil, específicamente en el área de mutuo hipotecario y garantía hipotecaria. La garantía tiende a asegurar el retorno de créditos otorgados por un acreedor a un deudor mediante la protección del cumplimiento de las obligaciones contraídas.
Current State of Cloud Computing (Jan 2016)Joe Kinsella
On January 26th 2016 the MassTLC held an event on "When, Where and How to Go to the Cloud". The event was a panel discussion led by Joe Kinsella, CTO & Founder of CloudHealth Technologies. Prior to the event, Joe shared this update on the current state of the cloud.
http://blog.masstlc.org/2016/01/when-where-and-how-to-go-to-cloud.html
Este documento resume dos estudios relacionados con modelos de integración de TIC en la educación en Uruguay y reflexiona sobre el desafío de aplicar estos modelos en el aula. En particular, analiza el Plan Ceibal y su evolución, así como el potencial del modelo TPACK para orientar la formación docente y mejorar la integración de TIC con fines educativos.
Este documento presenta una agenda para un taller sobre gestión del conocimiento que incluye temas como qué es el conocimiento, cómo se genera y almacena, tipos de conocimiento, cómo se transmite y gestiona. También discute la importancia de la gestión del conocimiento para las universidades con el fin de transferir conocimiento entre sus miembros y usarlo como un recurso disponible.
Este documento describe varios valores humanos fundamentales como el amor, el agradecimiento, el respeto, la tolerancia, la solidaridad, la honestidad y la humildad. Explica que estos valores perfeccionan a los seres humanos y mejoran la calidad de vida de cada persona, aunque escogerlos es una decisión personal.
The document provides an overview of cloud platforms and Kubernetes. It introduces cloud computing concepts like virtualization, deployment models, and service models. It then discusses Kubernetes, including concepts like pods, services, labels, replica sets, and deployments. It demonstrates how Kubernetes manages and scales containers across nodes and provides a demo of Kubernetes on a Raspberry Pi cluster and Google Container Engine.
The CORFU project was a 4-year European Commission-funded project from 2010-2014 that assessed flood impacts and resilience strategies in 11 cities across Europe and Asia. It developed models to simulate flooding under future scenarios of economic development, urban growth, and climate change. The project evaluated the effectiveness of resilience measures using a Flood Resilience Index. It also created a flood damage assessment tool to analyze impacts to buildings and infrastructure for cities like Barcelona, Beijing, and Dhaka. The project facilitated collaboration between European and Asian researchers and cities to improve flood management and create more resilient urban areas.
Este documento presenta la infografía como un recurso educativo. Explica que la infografía es una representación gráfica que incluye mapas, tablas, gráficas y diagramas para comunicar conceptos complejos de manera simple. Luego, ofrece varias definiciones de infografía de expertos en el tema y muestra ejemplos de infografías. Finalmente, discute algunas razones por las cuales la visualización de información es útil, como la poca capacidad de atención del público y la sobrecarga informativa.
Part 2 in depth guide on word-press coding standards for css & js bigeSparkBiz
Every programming language has its own coding standards which need to be followed by any WordPress Development Company in order to enhance the readability of the code. The same is the case with WordPress, where there are coding standards for PHP, HTML, CSS & JS.
Here, we have tried to provide you with an in-depth guide on WordPress Coding Standards For CSS & JS which will help you in future when you’re working with WordPress.
The document discusses best practices for documenting Swift code using Markdown syntax. It provides examples of how to write documentation comments, automatically recognize parameters and return values, embed code blocks, and use other Markdown elements like lists and headers. It recommends using the Jazzy tool to generate HTML documentation from the comments.
STC 2016 Programming Language StorytimeSarah Kiniry
This document provides an overview of how to interpret code to understand what a program is doing without running it. It discusses using code comments, function names, variable names, file locations, print functions, file names and other variables to understand the program's purpose. Specific programming languages are also discussed including examples of "Hello World" programs in Java, JavaScript, C, C#, PHP, Perl, Ruby and Python.
The document provides an introduction to PHP including its history, features, syntax, variables, data types, operators, conditional statements, loops, functions and string operations. It discusses how to install PHP, integrate it with Apache and use PHP tags to distinguish code from HTML. It also covers declaring variables, constants, arithmetic, relational and logical operators, conditional statements like if/else, loops like for and while, math and string functions.
These are slides from a lecture on Red Flags in Programming that took place at an Israeli Open Source Developers meeting.
Red flags in programming are signs that you likely made a mistake with your application design or code.
Noticing and avoiding these mistakes help us write better code, at any language.
The subject related to mostly dynamic (higher level) languages, even though the sample code is in Perl.
The Perl API for the Mortally Terrified (beta)Mike Friedman
A brief introduction to get you started in working with Perl's internal API. This presentation is a work in progress.
Code samples: http://github.com/friedo/perl-api-terror
El síndrome de Down es una condición genética causada por la presencia de una copia extra del cromosoma 21, lo que provoca problemas en el desarrollo del cuerpo y el cerebro. Los síntomas varían de una persona a otra pero incluyen características físicas como cabeza pequeña y boca pequeña, así como retraso mental y social. Aunque muchos niños con síndrome de Down tienen limitaciones, ahora viven más tiempo y pueden llevar vidas independientes y productivas con el debido apoyo y tratamiento.
Este informe trata sobre un expediente civil relacionado con la ejecución de garantías reales. El conflicto se ubica en el derecho privado del código civil, específicamente en el área de mutuo hipotecario y garantía hipotecaria. La garantía tiende a asegurar el retorno de créditos otorgados por un acreedor a un deudor mediante la protección del cumplimiento de las obligaciones contraídas.
Current State of Cloud Computing (Jan 2016)Joe Kinsella
On January 26th 2016 the MassTLC held an event on "When, Where and How to Go to the Cloud". The event was a panel discussion led by Joe Kinsella, CTO & Founder of CloudHealth Technologies. Prior to the event, Joe shared this update on the current state of the cloud.
http://blog.masstlc.org/2016/01/when-where-and-how-to-go-to-cloud.html
Este documento resume dos estudios relacionados con modelos de integración de TIC en la educación en Uruguay y reflexiona sobre el desafío de aplicar estos modelos en el aula. En particular, analiza el Plan Ceibal y su evolución, así como el potencial del modelo TPACK para orientar la formación docente y mejorar la integración de TIC con fines educativos.
Este documento presenta una agenda para un taller sobre gestión del conocimiento que incluye temas como qué es el conocimiento, cómo se genera y almacena, tipos de conocimiento, cómo se transmite y gestiona. También discute la importancia de la gestión del conocimiento para las universidades con el fin de transferir conocimiento entre sus miembros y usarlo como un recurso disponible.
Este documento describe varios valores humanos fundamentales como el amor, el agradecimiento, el respeto, la tolerancia, la solidaridad, la honestidad y la humildad. Explica que estos valores perfeccionan a los seres humanos y mejoran la calidad de vida de cada persona, aunque escogerlos es una decisión personal.
The document provides an overview of cloud platforms and Kubernetes. It introduces cloud computing concepts like virtualization, deployment models, and service models. It then discusses Kubernetes, including concepts like pods, services, labels, replica sets, and deployments. It demonstrates how Kubernetes manages and scales containers across nodes and provides a demo of Kubernetes on a Raspberry Pi cluster and Google Container Engine.
The CORFU project was a 4-year European Commission-funded project from 2010-2014 that assessed flood impacts and resilience strategies in 11 cities across Europe and Asia. It developed models to simulate flooding under future scenarios of economic development, urban growth, and climate change. The project evaluated the effectiveness of resilience measures using a Flood Resilience Index. It also created a flood damage assessment tool to analyze impacts to buildings and infrastructure for cities like Barcelona, Beijing, and Dhaka. The project facilitated collaboration between European and Asian researchers and cities to improve flood management and create more resilient urban areas.
Este documento presenta la infografía como un recurso educativo. Explica que la infografía es una representación gráfica que incluye mapas, tablas, gráficas y diagramas para comunicar conceptos complejos de manera simple. Luego, ofrece varias definiciones de infografía de expertos en el tema y muestra ejemplos de infografías. Finalmente, discute algunas razones por las cuales la visualización de información es útil, como la poca capacidad de atención del público y la sobrecarga informativa.
This document summarizes a refactoring workshop about improving code quality through refactoring. It discusses techniques like extracting logic from controllers into models, replacing long methods with method objects, using service objects to separate concerns, and implementing form objects to clean up forms. Examples are provided for each technique.
It has been said that one should code as if the person maintaining the code is a violent psychopath who knows where you live. But why do we work with psychopaths? That question unfortunately cannot be answered in this presentation. However, we can shed some light on how to code for readability hopefully avoiding the problem altogether.
Readable code is about a lot more than producing beautiful code. In fact, it has nothing really to do with the beauty of the code and everything to do with the ability to quickly understand what the code does.
In this presentation we will discuss why readable code is so important. We will cover six commonly reoccurring patterns that made code hard to read, why they occur, and how they can easily be avoided:
* Deep Nesting
* Unnecessary Generalization
* Ambiguous Naming
* Hard to Follow Flow of Execution
* Code Style vs. Individualism
* Code Comments
These concepts may be applied to any programming language.
Discussing language constructs with fellow developers in the context of solving a particular problem is something we do routinely. While most such conversations are productive and useful, a fair portion degenerate into angry brawls. A pattern we've observed in the latter situation is that a surprising number of times the argument is that "Why shouldn't I use language feature X to achieve objective Y- after all, the language supports X."
In this talk Aakash and Niranjan walk through a few features of the Ruby language which when used wisely allows programmers to solve problems elegantly but if they are used without caution can lead to bad code.
Clean code is a reader-focused development style that produces software that's easy to write, read and maintain. In this slide deck clean code has been presented briefly.
Ruby is a dynamic, open source programming language that was created in the mid-1990s by Yukihiro Matsumoto. While it shares some similarities with .NET languages like C#, Ruby differs in that everything is an object, it is very flexible and forgiving, and it emphasizes programmer productivity. Ruby utilizes duck typing through modules and mixins rather than interfaces. Popular Ruby frameworks include Ruby on Rails for web development and libraries like Enumerable are implemented through mixins rather than interfaces. The Ruby ecosystem includes tools like RubyGems and testing frameworks like RSpec.
Intro to Ruby - Twin Cities Code Camp 7Brian Hogan
This document provides an introduction to the Ruby programming language. It discusses Ruby's object-oriented nature, dynamic typing, syntax similarities to other languages like Java and C#, and the ease of learning Ruby. It also demonstrates simple Ruby code examples for arrays, hashes, classes, inheritance and modules. Testing practices like TDD (test-driven development) are emphasized. Popular Ruby web frameworks like Ruby on Rails, Sinatra and libraries like HAML and SASS are also introduced.
The document provides techniques for designing beautiful Ruby APIs. It discusses 10 techniques: 1) argument processing, 2) code blocks, 3) module, 4) method_missing, 5) const_missing, 6) method chaining, 7) core extension, 8) class macro, 9) instance_eval, and 10) Class.new. For each technique, it provides examples of how it can be implemented and used to create clean, readable APIs in Ruby. It also includes a sub-talk on Ruby's object model and how metaprogramming works.
The document discusses the Ruby programming language. It provides an overview of Ruby, how to install Ruby, write basic Ruby programs, and compares Ruby syntax and features to other languages like PHP. Some key things that make Ruby special mentioned are its object-oriented nature, natural language-like syntax, ability to redefine methods, mixins, metaprogramming capabilities, and dynamic and flexible nature.
The document provides an overview of the Ruby programming language for Perl programmers. Some key points:
- Ruby is an object-oriented scripting language that is interpreted, not compiled. It draws influences from Perl, Smalltalk, Lisp, and C.
- Ruby supports functional, aspect-oriented, and design-by-contract programming paradigms. It is well-suited for practices like extreme programming.
- Core concepts include classes, modules, blocks/iterators, exceptions, regular expressions and strings. Common data structures include arrays, hashes, ranges and more.
- Examples demonstrate basic syntax like variables, loops, conditions, classes and modules. Ruby emphasizes flexibility, dynamism and "
This document provides an overview of the Ruby programming language for Perl programmers. Ruby is a dynamic, reflective, object-oriented scripting language that is similar to Perl in many ways but also differs in its stronger object-oriented focus. The document discusses Ruby's syntax, core classes, object model, modules, blocks and iterators, and other features.
The document provides an overview of the Ruby programming language for Perl programmers. Some key points:
- Ruby is an object-oriented scripting language that is interpreted, not compiled. It borrows concepts from Perl, Smalltalk, Lisp, and C but has a stronger object orientation than Perl.
- Ruby places an emphasis on flexibility, dynamism, and a "human-oriented" design with principles like "least surprise." It aims to provide multiple ways to accomplish tasks.
- The document discusses Ruby's syntax, basic programming concepts like classes and modules, and core library classes like Array, IO, and String. It also notes Ruby's support for paradigms like functional programming.
This document provides an overview of the Ruby programming language for Perl programmers. Ruby is an interpreted, object-oriented scripting language that is very similar to Perl in many ways, such as its syntax for regular expressions and control structures like loops and conditionals. However, Ruby differs from Perl in that it was designed from the start to be object-oriented and highly dynamic. The document discusses Ruby's core concepts like classes, modules, blocks and iterators in detail and provides many code examples to illustrate Ruby's syntax and features.
The document provides an overview of the Ruby programming language for Perl programmers. Some key points:
- Ruby is an object-oriented scripting language that is interpreted, not compiled. It draws influences from Perl, Smalltalk, Lisp, and C.
- Ruby supports functional, aspect-oriented, and design-by-contract programming paradigms. It is well-suited for practices like extreme programming.
- Core concepts include classes, modules, blocks/iterators, exceptions, regular expressions and strings. Common data structures include arrays, hashes, ranges and more.
- Examples demonstrate basic syntax like variables, loops, conditions, classes and modules. Ruby emphasizes flexibility, dynamism and "
The document provides an overview of the Ruby programming language for Perl programmers. Some key points:
- Ruby is an object-oriented scripting language that is interpreted, not compiled. It draws influences from Perl, Smalltalk, Lisp, and C.
- Ruby supports functional, aspect-oriented, and design-by-contract programming paradigms. It is well-suited for practices like extreme programming.
- Core concepts include classes, modules, blocks/iterators, exceptions, regular expressions and strings. Common data structures include arrays, hashes, ranges and more.
- Examples demonstrate basic syntax like variables, loops, conditions, classes and modules. Ruby emphasizes flexibility, dynamism and "
The document provides an overview of the Ruby programming language for Perl programmers. Some key points:
- Ruby is an object-oriented scripting language that is interpreted, not compiled. It draws influences from Perl, Smalltalk, Lisp, and C.
- Ruby supports features like classes, modules, blocks/iterators, exceptions, regular expressions and threads. Everything in Ruby is an object.
- Compared to Perl, Ruby is more object-oriented, dynamic, and has built-in support for threads. Syntax also differs in some key ways.
- The document provides examples of basic Ruby syntax like variables, loops, conditions, classes and modules to illustrate how the language works.
This document provides an overview of the Ruby programming language for Perl programmers. Ruby is an interpreted, object-oriented scripting language that is very similar to Perl in many ways, such as its syntax for regular expressions and special variables, but differs in its stronger emphasis on object-oriented principles and more dynamic features. The document discusses Ruby's history and influences, basic syntax, core classes and modules, functional programming capabilities, and ease of extension.
This document provides an overview of the Ruby programming language for Perl programmers. Ruby is an interpreted, object-oriented scripting language that is very similar to Perl in many ways, such as its syntax for regular expressions and special variables, but differs in its stronger emphasis on object-oriented principles and more dynamic features. The document discusses Ruby's history and influences, basic syntax, core programming concepts like classes and modules, and ways that Ruby code can be easily extended.
The document provides an overview of the Ruby programming language for Perl programmers. Some key points:
- Ruby is an object-oriented scripting language that is interpreted, not compiled. It draws influences from Perl, Smalltalk, Lisp, and C.
- Ruby supports features like classes, modules, blocks/iterators, exceptions, regular expressions and threads. Everything in Ruby is an object.
- Compared to Perl, Ruby is more object-oriented, dynamic, and has built-in support for threads. Syntax also differs in some areas like conditionals.
- The document provides examples of common Ruby constructs like classes, modules, loops, conditions and built-in core classes like Array, IO
The document provides an overview of the Ruby programming language for Perl programmers. Some key points:
- Ruby is an object-oriented scripting language that is interpreted, not compiled. It draws influences from Perl, Smalltalk, Lisp, and C.
- Ruby supports functional, aspect-oriented, and design-by-contract programming paradigms. It is well-suited for practices like extreme programming.
- Core concepts include classes, modules, blocks/iterators, exceptions, regular expressions and strings. Common data structures include arrays, hashes, ranges and more.
- Examples demonstrate basic syntax like variables, loops, conditions, classes and modules. Ruby emphasizes flexibility, dynamism and "
Make ruby talk to your users - literallyBhavin Javia
Adhearsion is an open source Ruby framework that allows developers to build voice applications. It provides tools for building interactive voice response (IVR) systems, handling calls, playing and recording audio, and integrating with telephony APIs and services. Adhearsion applications can be deployed on voice platforms like FreeSWITCH and connected to databases, queues and other services. The framework uses Celluloid for concurrency and Punchblock for a consistent API to interact with different telephony protocols.
This document outlines 12 steps to achieving DevOps nirvana when building software-as-a-service (SaaS) applications. The 12 steps include: tracking code in version control; declaring and isolating dependencies; separating configuration from code; treating backing services uniformly; separating build, release, and run stages; making processes stateless and share-nothing; binding processes via ports; scaling out using processes; making processes disposable; keeping development, staging, and production similar; routing all logs to a single destination; and running administrative tasks as one-off processes in the same environment as the app. The document provides guidance for developers building SaaS apps and operations engineers managing SaaS apps.
Slides from my talk at Agile India 2012 (http://agile2012.in). This talk introduces concepts of lean startup and presents a case study of product development at Ennova (www.ennova.com.au)
Software Quality and Test Strategies for Ruby and Rails ApplicationsBhavin Javia
This document provides an overview of software quality and test strategies for Ruby and Rails applications. It discusses the importance of quality, managing quality through setting goals and measuring metrics. It outlines a test strategy template and covers test types, tools, and approaches for unit, integration, acceptance and other types of tests in Ruby/Rails. It also discusses test data management, defect management, and the Ruby/Rails testing ecosystem including various testing frameworks and quality/metrics tools.
This document discusses agile team dynamics and how they evolve. It begins by covering how teams become agile and factors that affect agile teams such as people, customers, distances, time zones, tools, and environment. It then examines the evolution of team dynamics from freelancers to small collocated teams to large distributed teams. Each stage faces new challenges related to collaboration, communication, feedback and cultural issues. Practices and processes must evolve to address these challenges in order to maintain effective agile team dynamics.
The presentation from my talk on Continuous Integration and Builds at XP Days Indore 2010. The target audience was MCA students, faculty and members of IT industry in and around Indore.
Productive Programmer - Using IDE effectively and various small practices to ...Bhavin Javia
The presentation from my talk on Programmer Productivity at XP Days Indore 2010. The target audience was MCA students, faculty and members of IT industry in and around Indore.
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfMalak Abu Hammad
Discover how MongoDB Atlas and vector search technology can revolutionize your application's search capabilities. This comprehensive presentation covers:
* What is Vector Search?
* Importance and benefits of vector search
* Practical use cases across various industries
* Step-by-step implementation guide
* Live demos with code snippets
* Enhancing LLM capabilities with vector search
* Best practices and optimization strategies
Perfect for developers, AI enthusiasts, and tech leaders. Learn how to leverage MongoDB Atlas to deliver highly relevant, context-aware search results, transforming your data retrieval process. Stay ahead in tech innovation and maximize the potential of your applications.
#MongoDB #VectorSearch #AI #SemanticSearch #TechInnovation #DataScience #LLM #MachineLearning #SearchTechnology
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
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.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
“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.
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.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
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.
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
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
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.
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!
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
UiPath Test Automation using UiPath Test Suite series, part 6DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 6. In this session, we will cover Test Automation with generative AI and Open AI.
UiPath Test Automation with generative AI and Open AI webinar offers an in-depth exploration of leveraging cutting-edge technologies for test automation within the UiPath platform. Attendees will delve into the integration of generative AI, a test automation solution, with Open AI advanced natural language processing capabilities.
Throughout the session, participants will discover how this synergy empowers testers to automate repetitive tasks, enhance testing accuracy, and expedite the software testing life cycle. Topics covered include the seamless integration process, practical use cases, and the benefits of harnessing AI-driven automation for UiPath testing initiatives. By attending this webinar, testers, and automation professionals can gain valuable insights into harnessing the power of AI to optimize their test automation workflows within the UiPath ecosystem, ultimately driving efficiency and quality in software development processes.
What will you get from this session?
1. Insights into integrating generative AI.
2. Understanding how this integration enhances test automation within the UiPath platform
3. Practical demonstrations
4. Exploration of real-world use cases illustrating the benefits of AI-driven test automation for UiPath
Topics covered:
What is generative AI
Test Automation with generative AI and Open AI.
UiPath integration with generative AI
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
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.
12. • Fascinated by computers
• Learnt programming in school/college
• Knew a few languages - C, C++, Java
• Loved Ruby
• Joined a Startup as an Intern
• Full of Ruby veterans
• Felt right at home
Story of Rubo
40. “ Nearly everybody is convinced that every style but their
own is ugly and unreadable. Leave out the "but their
own" and they're probably right...
- Jerry Coffin (on indentation)
42. # bad - four spaces
def some_method
do_something
end
# good
def some_method
do_something
end
* No tabs please
Two spaces per indent
43. # bad
def too_much; something; something_else; end
# okish
def no_braces_method; body; end
# okish
def some_method() body end
# good
def some_method
body
end
* Not applicable to empty methods e.g.
# good
def no_op; end
Avoid single-line methods
44. # around operators, after commas, colons and semicolons,
around `{` and before `}`
sum = 1 + 2
a, b = 1, 2
1 > 2 ? true : false; puts 'Hi'
[1, 2, 3].each { |e| puts e }
* Not with exponent operator
# bad
e = M * c ** 2
# good
e = M * c**2
Use spaces
45. Indent when as deep as case
case
when song.name == 'Misty'
puts 'Not again!'
when song.duration > 120
puts 'Too long!'
when Time.now.hour > 21
puts "It's too late"
else
song.play
end
kind = case year
when 1850..1889 then 'Blues'
when 1890..1909 then 'Ragtime'
when 1910..1929 then 'New Orleans Jazz'
when 1930..1939 then 'Swing'
when 1940..1950 then 'Bebop'
else 'Jazz'
end
52. Add underscores to large
numeric literals
# bad - how many 0s are there?
num = 1000000
# good - much easier to parse
num = 1_000_000
53. class Array
# Calls <tt>to_param</tt> on all its elements and joins the result with
# slashes. This is used by <tt>url_for</tt> in Action Pack.
def to_param
collect { |e| e.to_param }.join '/'
end
end
Use RDoc and its conventions
for API docs
55. Use Iterators
arr = [1, 2, 3]
# bad
for elem in arr do
puts elem
end
# good
arr.each { |elem| puts elem }
56. # bad
result = if some_condition then something else something_else end
# good
result = some_condition ? something : something_else
* for one line constructs
Favor the ternary operator (?:)
over if/then/else/end
57. # bad
some_condition ? (nested_condition ? nested_something :
nested_something_else) : something_else
# good
if some_condition
nested_condition ? nested_something : nested_something_else
else
something_else
end
Use one expression per branch
in a ternary operator
59. Favor unless over if for
negative conditions
# bad
do_something if !some_condition
# bad
do_something if not some_condition
# good
do_something unless some_condition
# another good option
some_condition || do_something
60. class Person
attr_reader :name, :age
# omitted
end
temperance = Person.new('Temperance', 30)
temperance.name
puts temperance.age
x = Math.sin(y)
array.delete(e)
bowling.score.should == 0
Omit parentheses around parameters
for methods that are part of internal
DSL, keyword status, accessors
61. names = ['Bozhidar', 'Steve', 'Sarah']
# bad
names.each do |name|
puts name
end
# good
names.each { |name| puts name }
* Avoid using {...} for multi-line blocks
Prefer {...} over do...end for
single-line blocks
62. # bad
def some_method(some_arr)
return some_arr.size
end
# good
def some_method(some_arr)
some_arr.size
end
Avoid return where not
required for flow of control
63. # bad
def ready?
if self.last_reviewed_at > self.last_updated_at
self.worker.update(self.content, self.options)
self.status = :in_progress
end
self.status == :verified
end
# good
def ready?
if last_reviewed_at > last_updated_at
worker.update(content, options)
self.status = :in_progress
end
status == :verified
end
* only required when calling a self write accessor
Avoid self where not required
65. “The only real difficulties in programming are cache
invalidation and naming things.
- Phil Karlton
66. Name identifiers in English
# bad - variable name written in Bulgarian with
latin characters
zaplata = 1_000
# good
salary = 1_000
67. Use CamelCase for
classes and modules
# bad
class Someclass
...
end
class Some_Class
...
end
class SomeXml
...
end
# good
class SomeClass
...
end
class SomeXML
...
end
* Keep acronyms like
HTTP, RFC, XML
uppercase
68. Use snake_case for symbols,
methods and variables
# bad
:'some symbol'
:SomeSymbol
:someSymbol
someVar = 5
def someMethod
...
end
def SomeMethod
...
end
# good
:some_symbol
some_var = 5
def some_method
...
end
70. Predicate methods shouldshould
end in a question mark ‘?’
# bad
def available
appointments.empty?
end
# good
def available?
appointments.empty?
end
* e.g. Array#empty?
77. Use Comment
Annotations
• Use TODO to note missing features
• Use FIXME to note broken code
• Use HACK to note code smells
• Use OPTIMIZE to note inefficient code
81. Use a consistent structure in
your class definitions
class Person
# extend and include
extend SomeModule
include AnotherModule
# constants
SOME_CONSTANT = 20
# attribute macros
attr_reader :name
# other macros (if any)
validates :name
# public class methods are next in line
def self.some_method
end
# followed by public instance methods
def some_method
end
# protected/private methods
end
82. Implement to_s on
domain classes
class Person
attr_reader :first_name, :last_name
def initialize(first_name, last_name)
@first_name = first_name
@last_name = last_name
end
def to_s
"#{@first_name} #{@last_name}"
end
end
83. Use the attr family of functions
to define trivial accessors
# bad
class Person
def initialize(first_name, last_name)
@first_name = first_name
@last_name = last_name
end
def first_name
@first_name
end
def last_name
@last_name
end
end
# good
class Person
attr_reader :first_name, :last_name
def initialize(first_name, last_name)
@first_name = first_name
@last_name = last_name
end
end
89. “ A Foolish Consistency is the Hobgoblin of Little Minds
- Essays: First Series by RalphWaldo Emerson
90. Consistency at what level ?
• consistency with style guide - important
• consistency with project - more important
• consistency with module - most important
• readability matters
94. • Make it a standard team practice
• Select/Draft a style guide for project
• Make it a must read for everyone
• Use IDE support e.g. RubyMine inspections
How to enforce these rules ?
95. • Use Style Checker tools
• Integrate with CI
• Use a live style guide - fork it, send PRs
• Commit your IDE settings
• Point out violations in context
• Use Github inline commit notes
How to enforce these rules ?