Ruby is an object-oriented programming language where everything is an object. There are multiple ways to install Ruby, including using RailsInstaller, compiling from source, or using a package manager like RVM. Common data types in Ruby include numbers, strings, ranges, and objects. Methods can be defined and called, and may accept blocks of code. Classes define objects and can use attributes, class variables, class methods, and access control levels like private and public.
JavaScript - An Introduction is a beginner's guide to JavaScript. It starts with very basic level and goes to intermediate level. You'll be introduced with every language constructs, Event handling, Form handling and AJAX which is supported by JavaScript with XMLHttpRequest object. This XHR object is discussed in enough detail so that you can understand how the underlying AJAX functionality works in jQuery. At the end it discusses advance concepts and library build on/around JavaScript.
JavaScript - An Introduction is a beginner's guide to JavaScript. It starts with very basic level and goes to intermediate level. You'll be introduced with every language constructs, Event handling, Form handling and AJAX which is supported by JavaScript with XMLHttpRequest object. This XHR object is discussed in enough detail so that you can understand how the underlying AJAX functionality works in jQuery. At the end it discusses advance concepts and library build on/around JavaScript.
C++11 Idioms @ Silicon Valley Code Camp 2012 Sumant Tambe
C++11 feels like a new language. Compared to its previous standards, C++11 packs more language features and libraries designed to make C++ programs easier to understand and faster. As the community is building up experience with the new features, new stylistic ways of using them are emerging. These styles (a.k.a. idioms) give the new language its unique flavor. This talk will present emerging idioms of using rvalue references -- a marquee feature of C++11 as many renowned experts call it. You will see how C++11 opens new possibilities to design class interfaces. Finally, you will learn some advanced use-cases of rvalue references which will likely make you feel something amiss in this flagship feature of C++11.
A quick introduction to the object-oriented programming language Ruby, part of a full lecture on Programming Paradigms at UCL university in Belgium, focussing on the programming languages Smalltalk, Ruby and Java, with reflection and meta programming as underlying theme.
Slides from a tutorial I gave at ETech 2006. Notes to accompany these slides can be found here: http://simonwillison.net/static/2006/js-reintroduction-notes.html
Not so long ago Microsoft announced a new language trageting on front-end developers. Everybody's reaction was like: Why?!! Is it just Microsoft darting back to Google?!
So, why a new language? JavaScript has its bad parts. Mostly you can avoid them or workaraund. You can emulate class-based OOP style, modules, scoping and even run-time typing. But that is doomed to be clumsy. That's not in the language design. Google has pointed out these flaws, provided a new language and failed. Will the story of TypeScript be any different?
This session will uncover some useful, but not so well known VIM features as well as go over a number of VIM plugins that are essential for programmers.
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...Andrey Upadyshev
Newer version: https://www.slideshare.net/oliora/hot-universal-references-and-perfect-forwarding-82155460
Detailed presentation of universal references and perfect forwarding introduced in C++11.
Extended version of "Hot C++11, Part 3 Universal References And Perfect Forwarding".
These are my slides from a mini Clojure tutorial presented at the "7 Languages in 7 Months" meetup group. The first part of the presentation faithfully presents material from Bruce Tate book, and the second part covers the more advanced topics of state management and macros
Algorithms based on the circulation of a unique token are often indicated in the coordination of distributed systems. We introduce the design of the token passing operation at application level, that exhibits the requirements of security, since the token is a sensitive resource, and scalability, since the token passing protocol must not implement security at expense of scalability. These
characteristics make our solution suitable for large scale distributed infrastructures.
C++11 Idioms @ Silicon Valley Code Camp 2012 Sumant Tambe
C++11 feels like a new language. Compared to its previous standards, C++11 packs more language features and libraries designed to make C++ programs easier to understand and faster. As the community is building up experience with the new features, new stylistic ways of using them are emerging. These styles (a.k.a. idioms) give the new language its unique flavor. This talk will present emerging idioms of using rvalue references -- a marquee feature of C++11 as many renowned experts call it. You will see how C++11 opens new possibilities to design class interfaces. Finally, you will learn some advanced use-cases of rvalue references which will likely make you feel something amiss in this flagship feature of C++11.
A quick introduction to the object-oriented programming language Ruby, part of a full lecture on Programming Paradigms at UCL university in Belgium, focussing on the programming languages Smalltalk, Ruby and Java, with reflection and meta programming as underlying theme.
Slides from a tutorial I gave at ETech 2006. Notes to accompany these slides can be found here: http://simonwillison.net/static/2006/js-reintroduction-notes.html
Not so long ago Microsoft announced a new language trageting on front-end developers. Everybody's reaction was like: Why?!! Is it just Microsoft darting back to Google?!
So, why a new language? JavaScript has its bad parts. Mostly you can avoid them or workaraund. You can emulate class-based OOP style, modules, scoping and even run-time typing. But that is doomed to be clumsy. That's not in the language design. Google has pointed out these flaws, provided a new language and failed. Will the story of TypeScript be any different?
This session will uncover some useful, but not so well known VIM features as well as go over a number of VIM plugins that are essential for programmers.
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...Andrey Upadyshev
Newer version: https://www.slideshare.net/oliora/hot-universal-references-and-perfect-forwarding-82155460
Detailed presentation of universal references and perfect forwarding introduced in C++11.
Extended version of "Hot C++11, Part 3 Universal References And Perfect Forwarding".
These are my slides from a mini Clojure tutorial presented at the "7 Languages in 7 Months" meetup group. The first part of the presentation faithfully presents material from Bruce Tate book, and the second part covers the more advanced topics of state management and macros
Algorithms based on the circulation of a unique token are often indicated in the coordination of distributed systems. We introduce the design of the token passing operation at application level, that exhibits the requirements of security, since the token is a sensitive resource, and scalability, since the token passing protocol must not implement security at expense of scalability. These
characteristics make our solution suitable for large scale distributed infrastructures.
Customer Scale: Stateless Sessions and Managing High-Volume Digital ServicesForgeRock
Rob Wapshott, Sr Software Developer, ForgeRock:
When identity moves beyond simple users and web apps to also include devices and things, the
volume of identities to manage grows exponentially. Identity deployments are now asked to support
over a hundred million identities. In this session, Rob will discuss the exploding requirements for
scale and how to meet them.
OAuth 2.0 Token Exchange: An STS for the REST of UsBrian Campbell
From the 2016 Cloud Identity Summit:
Complete with the requisite bad jokes and gratuitous photography, this session will provide an introduction to an emerging new protocol for a lightweight HTTP- and JSON- based Security Token Service built on OAuth 2.0. The presenter, Brian Campbell, is a long time veteran of the CIS speaking circuit who peaked in 2013 when Vittorio Bertocci tweeted about his session, "I love @__b_c presentations :-) hilarious & very informative!" Attendees expecting this session to live up to that will be sorely disappointed but are encouraged to come nonetheless.
One of the advantages of learning a new language is being exposed to new idioms and new approaches to solving old problems. In this talk, we will introduce the Ruby language with particular focus on the idioms and concepts that are different from what is found in Java.
We will introduce concepts such as closures, continuations and meta programming. We will also examine powerful techniques that are practically impossible in Java due to its compile time binding of types.
No experience with Ruby is assumed although an understanding of Java would be helpful.
This talk was given at the Toronto Java Users Group in April 2008
AMC Squarelearning Bangalore is the best training institute for a career development. it had students from various parts of the country and even few were from West African countries.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
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
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
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.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
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.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
2. Ruby as OOPs
● Ruby is a genuine Object
oriented programming
● Everything you manipulate is an
object
● And the results of the
manipulation is an object
● e.g. The number 4,if used, is an
object
Irb> 4.class Python : len()
Fixnum Ruby: obj.length
3. Setting up and installing ruby
● There are various ways of
installing ruby
● RailsInstaller for windows and osx
(http://railsinstaller.org)
● Compiling from source
● Using a package manager like
rvm..most popular
4. Ruby version
manager(rvm)
● In the ruby world, rvm is the most
popular method to install ruby and
rails
● Rvm is only available for mac os
x,linux and unix
● Rvm allows you to work with
multiple versions of ruby
● To install rvm you need to have
the curl program installed
6. Standard types - numbers
● Numbers
● Ruby supports integers and floating point
numbers
● Integers within a certain range (normally
-230 to 230-1 or -262 to 262-1) are held
internally in binary form, and are objects
of class Fixnum
● Integers outside the above range are
stored in objects of class Bignum
● Ruby automatically manages the
conversion of Fixnum to Bignum and vice
versa
● Integers in ruby support several types
of iterators
7. Standard types- numbers
● e.g. Of iterators
● 3.times { print "X " }
● 1.upto(5) { |i| print i, " " }
● 99.downto(95) { |i| print i, " " }
● 50.step(80, 5) { |i| print i, " " }
8. Standard types - strings
● Strings in ruby are simply a sequence of
8-bit bytes
● In ruby strings can be assigned using
either a double quotes or a single quote
● a_string1 = 'hello world'
● a_string2 = “hello world”
● The difference comes
● when you want to use a special
character e.g. An apostrophe
● a_string1 = “Binn's world”
● a_string2 = 'Binn's world' # you need to
use an escape sequence here
9. Standard types - string
● Single quoted strings only
supports 2 escape sequences, viz.
● ' - single quote
● - single backslash
● Double quotes allows for many
more escape sequences
● They also allow you to embed
variables or ruby code commonly
called as interpolation
puts "Enter name"
name = gets.chomp
puts "Your name is #{name}"
10. Standard types - string
Common escape sequences available are :
● " – double quote
● – single backslash
● a – bell/alert
● b – backspace
● r – carriage return
● n – newline
● s – space
● t – tab
●
11. Working with strings
gsub Returns a copy of str with str.gsub( pattern,
all occurrences of pattern replacement )
replaced with either
replacement or the value of
the block.
chomp Returns a new String with str.chomp
the given record separator
removed from the end of str
(if present).
count Return the count of str.count
characters inside string
strip Removes leading and str.strip
trailing spaces from a
string
to_i Converts the string to a str.to_i
number(Fixnum)
upcase Upcases the content of the str.upcase
strings
http://www.ruby-doc.org/core-1.9.3/String.html#method-i-strip
12. Standard types - ranges
● A Range represents an interval—a set of
values with a start and an end
● In ruby, Ranges may be constructed using
the s..e and s...e literals, or with
Range::new
● ('a'..'e').to_a #=> ["a", "b", "c",
"d", "e"]
● ('a'...'e').to_a #=> ["a", "b", "c",
"d"]
14. Using ranges
● Using in iteration
(10..15).each do |n|
print n, ' '
end
15. Using ranges
● Checking for members
● ("a".."z").include?("g") # -> true
● ("a".."z").include?("A") # ->
false
16. Methods
● Methods are defined using the def
keyword
● By convention methods that act as a
query are often named in ruby with a
trailing '?'
● e.g. str.instance_of?
● Methods that might be
dangerous(causing an exception e.g.)
or modify the reciever are named with
a trailing '!'
● e.g. user.save!
● '?' and '!' are the only 2 special
characters allowed in method name
17. Defining methods
● Simple method:
def mymethod
end
● Methods with arguments:
def mymethod2(arg1, arg2)
end
● Methods with variable length arguments
def varargs(arg1, *rest)
"Got #{arg1} and #{rest.join(', ')}"
end
18. Methods
● In ruby, the last line of the
method statement is returned back
and there is no need to explicitly
use a return statement
def get_message(name)
“hello, #{name}”
end
.Calling a method :
get_message(“bin”)
● Calling a method without arguments
:
mymethod #calls the method
19. Methods with blocks
● When a method is called, it can be given
a random set of code to be executed
called as blocks
def takeBlock(p1)
if block_given?
yield(p1)
else
p1
end
end
21. Classes
● Classes in ruby are defined by
using the keyword 'class'
● By convention, ruby demands that
the class name should be capital
● An initialize method inside a
class acts as a constructor
● An instance variable can be
created using @
23. Making an attribute
accessible
● Like in any other object oriented
programming language, you will need
to manipulate the attributes
● Ruby makes this easy with the
keyword 'attr_reader' and
'attr_writer'
● This defines the getter and the
setter methods for the attributes
24. class Book
attr_reader :title, :author
def initialize(title,author)
@title = title
@author = author
end
end
#using getters
CompBook = Book.new(“A book”, “me”)
Puts CompBook.title
25. Symbols
● In ruby symbols can be declared using ':'
● e.g :name
● Symbols are a kind of strings
● The important difference is that they are immutable
unlike strings
● Mutable objects can be changed after assignment while
immutable objects can only be overwritten.
● puts "hello" << " world"
● puts :hello << :" world"
26. Making an attribute
writeable
class Book
attr_writer :title, :author
def initialize(title,author)
@title = title
@author = author
end
end
myBook = Book.new("A book",
"author")
myBook.title = "Some book"
27. Class variables
● Sometimes you might need to declare a
class variable in your class definition
● Class variables have a single copy for
all the class objects
● In ruby, you can define a class variable
using @@ symbol
● Class variables are private to the class
so in order to access them outside the
class you need to defined a getter or a
class method
28. Class Methods
● Class methods are defined using
the keyword self
● e.g.
– def self. myclass_method
end
29. Example
class SomeClass
@@instance = 0 #private
attr_reader :instance
def initialize
@@instance += 1
end
def self.instances
@@instance
end
end
s1 = SomeClass.new
s2 = SomeClass.new
puts "total instances #{SomeClass.instances}"
30. Access Control
● You can specify 3 types of
access control in ruby
● Private
● Protected
● Public
● By default, unless specified,
all methods are public