The document contains a series of nonsensical symbols and text fragments with no clear meaning. It includes programming language keywords and testing concepts like properties, mocking, concurrency, and metrics but does not form coherent sentences.
Object Trampoline: Why having not the object you want is what you need.Workhorse Computing
Â
Overview of Trampoline Objects in Perl with examples for lazy construction, lazy module use, added sanity checks. This version includes corrections from the original presented at OSCON 2013 and comments.
A short introduction to the perl debugger's basic commands for executing code, examining data structures. Includes examples of hardwiring breakpoints, tracing sections of code, debugging regexen.
Object Trampoline: Why having not the object you want is what you need.Workhorse Computing
Â
Overview of Trampoline Objects in Perl with examples for lazy construction, lazy module use, added sanity checks. This version includes corrections from the original presented at OSCON 2013 and comments.
A short introduction to the perl debugger's basic commands for executing code, examining data structures. Includes examples of hardwiring breakpoints, tracing sections of code, debugging regexen.
Kotlin advanced - language reference for android developersBartosz Kosarzycki
Â
StxNext Lightning Talks - Mar 11, 2016
Kotlin Advanced - language reference for Android developers
This presentation contains the second talk on Kotlin language we had at STXNext. We try go deeper into language specifics and look at the positive impact new syntax can have on boilerplate removal and readability improvement.
Kotlin really shines in Android development when one looks at âEnum translationâ, âExtension functionsâ, âSAM conversionsâ, âInfix notationâ, âClosuresâ and âFluent interfacesâ applied to lists. The talk, however, compares language-specifics of Java & Kotlin in terms of âType Varianceâ, âGenericsâ and âIDE toolsâ as well.
We present real-world example based on Stx-Insider project written in Kotlin which incorporates Dagger 2, Kotterknife, Retrofit2 and is composed of 5+ Activities.
Full agenda
Live templates
Enum translation
Calling extension functions from Kotlin/Java
Constructors with backing fields
Warnings
F-bound polymorphism
Variance (Covariance/Contravariance)
Variance comparison in Kotlin/Java/Scala
Annotation processing - KAPT
SAM conversions
Type equality
Lambda vs Closure
Reified generics
Fluent interfaces
Infix notation
Static extension methods in Kotlin
Generic types
Sealed classes
Dokka - documentation in Kotlin
J2K converter
Real-world example
Reflection
Presentation is accompanied with an example project (StxInsider):
https://github.com/kosiara/stx-insider
Building a Perl5 smoketest environment in Docker using CPAN::Reporter::Smoker. Includes an overview of "smoke testing", shell commands to contstruct a hybrid environment with underlying O/S image and data volumes for /opt, /var/lib/CPAN. This allows maintaining the Perly smoke environemnt without having to rebuild it.
A few general pointers for Perl programmers starting out to write tests using Perl6. This describes a few of the differences in handling arrays vs. hashes, comparing objects, flattening, and value vs. immutable object contents.
Short introduction to the basics of Perl testing and some resources for further reading. Includes basics of Test::Simple, Test::More, using Inline for multi-language testing, testing coverage, testing tests.
Talk at the Sydney Clojure User Group, October 2014 exploring the principles behind the deign of imminent - https://github.com/leonardoborges/imminent - a Clojure library for composable futures
Performance benchmarks are all too often inaccurate. This talk introduces some things to look for in setting up and running benchmarks to make them effective.
The Jetbrain's Kotlin language cheat sheet, created by ekito and launched for the Toulouse's devfest - https://www.ekito.fr/people/kotlin-cheat-sheet/
This paper helps you keep the main feature of the Kotlin language, under the hand. Just download it & print it !
perl often doesn't get updated because people don't have a way to know if their current code works with the new one. The problem is that they lack unit tests. This talk describes how simple it is to generate unit tests with Perl and shell, use them to automate solving problems like missing modules, and test a complete code base.
Kotlin advanced - language reference for android developersBartosz Kosarzycki
Â
StxNext Lightning Talks - Mar 11, 2016
Kotlin Advanced - language reference for Android developers
This presentation contains the second talk on Kotlin language we had at STXNext. We try go deeper into language specifics and look at the positive impact new syntax can have on boilerplate removal and readability improvement.
Kotlin really shines in Android development when one looks at âEnum translationâ, âExtension functionsâ, âSAM conversionsâ, âInfix notationâ, âClosuresâ and âFluent interfacesâ applied to lists. The talk, however, compares language-specifics of Java & Kotlin in terms of âType Varianceâ, âGenericsâ and âIDE toolsâ as well.
We present real-world example based on Stx-Insider project written in Kotlin which incorporates Dagger 2, Kotterknife, Retrofit2 and is composed of 5+ Activities.
Full agenda
Live templates
Enum translation
Calling extension functions from Kotlin/Java
Constructors with backing fields
Warnings
F-bound polymorphism
Variance (Covariance/Contravariance)
Variance comparison in Kotlin/Java/Scala
Annotation processing - KAPT
SAM conversions
Type equality
Lambda vs Closure
Reified generics
Fluent interfaces
Infix notation
Static extension methods in Kotlin
Generic types
Sealed classes
Dokka - documentation in Kotlin
J2K converter
Real-world example
Reflection
Presentation is accompanied with an example project (StxInsider):
https://github.com/kosiara/stx-insider
Building a Perl5 smoketest environment in Docker using CPAN::Reporter::Smoker. Includes an overview of "smoke testing", shell commands to contstruct a hybrid environment with underlying O/S image and data volumes for /opt, /var/lib/CPAN. This allows maintaining the Perly smoke environemnt without having to rebuild it.
A few general pointers for Perl programmers starting out to write tests using Perl6. This describes a few of the differences in handling arrays vs. hashes, comparing objects, flattening, and value vs. immutable object contents.
Short introduction to the basics of Perl testing and some resources for further reading. Includes basics of Test::Simple, Test::More, using Inline for multi-language testing, testing coverage, testing tests.
Talk at the Sydney Clojure User Group, October 2014 exploring the principles behind the deign of imminent - https://github.com/leonardoborges/imminent - a Clojure library for composable futures
Performance benchmarks are all too often inaccurate. This talk introduces some things to look for in setting up and running benchmarks to make them effective.
The Jetbrain's Kotlin language cheat sheet, created by ekito and launched for the Toulouse's devfest - https://www.ekito.fr/people/kotlin-cheat-sheet/
This paper helps you keep the main feature of the Kotlin language, under the hand. Just download it & print it !
perl often doesn't get updated because people don't have a way to know if their current code works with the new one. The problem is that they lack unit tests. This talk describes how simple it is to generate unit tests with Perl and shell, use them to automate solving problems like missing modules, and test a complete code base.
Presentation for the kick-off meeting for the meetup:
"Reactive Programming Enthusiasts Denver". This talks about concurrency, non-blocking, scala, futures, akka, play framework, and other concepts of reactive programming.
The $path to knowledge: What little it take to unit-test Perl.Workhorse Computing
Â
Metadata-driven lazyness, Perl, and Jenkins provide a nice mix for automated testing. With Perl the only thing required to start testing is a files path, from there the possibilities are endless. Using Symbol's qualify_to_ref makes it easy to validate @EXPORT & @EXPORT_OK, knowing the path makes it easy to use "perl -wc" to get diagnostics.
The beautiful thing is all of it can be lazy... er, "automated". And repeatable. And simple.
A better version can be found at https://app.box.com/s/8zuk8yd4x9m7rbvinkb0xztz17x6xoqj
This is the slide for a presentation at Golang Melbourne meetup.
Programming languages must be implemented in Java or C, everybody knows this. Sure, a prototype in Ruby, but that would be unusable. After all, Ruby is made for web development, right? Hard tasks, like implementing a compiler, have to happen in far more manly languages. But wait, the Rubinius compiler is written completely in Ruby, and it seems to get pretty decent performance, maybe we can use that.
In this talk, we will explore the possibilities of using the Rubinius compiler tool chain to implement our own programming language targeting the Rubinius VM. We get all the hard work that went into Rubinius for free and above all, can do the heavy lifting in Ruby, everyone's favorite programming language.
As an example we'll use Reak, a Smalltalk implementation running on Rubinius.
Outside-in Development with Cucumber and RspecJoseph Wilk
Â
Talk given by Joseph Wilk at Scotland on Rails 2009. Examines how Cucumber and Rspec fit together in the testing workflow, how and why Cucumber is useful and how it works. Walks through a simple example based on renting DVDs showing how to use Cucumber and some of the best practices. Looks at how Webrat can drive Selenium to in-turn drive Cucumber features through the browser.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
Â
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Â
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Â
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
Â
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. Whatâs changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Â
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
Â
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
Â
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
Â
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Â
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
4. âThe number of languages you know
corresponds to your programming
skillâ
S
5. Y ... T
JUnit ScrewUnit
Rspec JBehave
PHPSpec Jasmine
JSpec Cucumber
Circumspec BlahSpec
SomethingSpec WhateverSpec
6. Y ... T
JUnit ScrewUnit
Rspec BORING!
JBehave
PHPSpec Jasmine
JSpec Cucumber
Circumspec BlahSpec
SomethingSpec WhateverSpec
7. T &M
Ruby
Monkey.stub!(:new).and_return(mock("monkey"))
Java
I owe you one Java mocking example.
I donât have the will power to write it.
Sorry.
8. T &M
Ruby
BORING!
Monkey.stub!(:new).and_return(mock("monkey"))
Java
I owe you one Java mocking example.
I donât have the will power to write it.
Sorry.
9. I r
Asynchronous Property testing
Permutation Model testing
explosions
Metrics Test feedback
Graphical tests
11. âProgram testing can be used to show the
presence of bugs, but never to show their
absence!â
Edsger Dijkstra
12. Q C
Properties
For all values of s the length of the thing
returned by five_random_characters is 5
13. Q C
Properties
QuickCheck
Randomly
Logic generate Function
tests
14. Q C
Properties
QuickCheck
Randomly
Logic generate Function
tests
15. Q C
Properties
QuickCheck
Randomly
Logic generate Function
tests
16. Q C
Properties
QuickCheck
Randomly
Logic generate Function
tests
17. Q C
Properties
QuickCheck
Randomly
Logic generate Function
tests
Counter
Examples
18. Q C
Properties
it "should reverse a string" do
"monkeys".reverse.reverse.should == "monkeys"
end
100.times.map {â#{rand(10)}#{rand(10)}â}.each do |char|
it "should reverse a string" do
char.reverse.reverse.should == char
end
end
19. Q C
Properties
import Data.Char
import Test.QuickCheck
instance Arbitrary Char where
arbitrary = choose ('32', '128')
coarbitrary c = variant (ord c `rem` 4)
prop_RevRev xs = reverse (reverse xs) == xs
where types = xs::[Char]
$ Main> quickCheck prop_RevRev
OK, passed 100 tests.
21. M Er Models
Erlang McErlang
runtime runtime
system system
communication
concurrency
distribution
22. M Er Models
message Messenger
âScottish
âScottish Service
fictionâ
fictionâ
Message login login Message
client client
Fred Clara
23. M Er Models
if user1 does not send a message m to user2 until user2 is logged on,
then
if user1 does send a message m to user2
then
eventually user2 receives the message m.
"not P until Q => (eventually P => eventually R)â
P: clara sends message âScottish fictionâ to fred
Q: fred is logged on
R: fred receives the message âScottish fictionâ from clara
24. M Er Models
{program={scenario,start,[[
[{logon,clara},{message,fred,"hi"},logoff],
[{logon,fred},logoff]]]},
monitor={mce_ltl_parse:ltl_string2module_and_load
("not P until Q implies (eventually P implies
eventually R)", messenger_mon),
{void,[{'P',basicPredicates:message_to
(clara,fred,"hi")},
{'Q',basicPredicates:logon(fred)},
{'R',basicPredicates:message_received
(fred,clara,"hi")}]}},
algorithm={mce_alg_buechi,void}}).
25. âEvery method you use to prevent or find
bugs leaves a residue of subtler bugs against
which those methods are ineffectual
Pesticide Paradox / Beizer
27. M
Facts
(fact
 (alive-in-next-generation? ...cell...) => truthy
   (provided
    (alive? ...cell...) => false
    (neighbor-count ...cell...) => 3))
cell = mock("a cell")
cell.stub(:alive?).and_return(false)
cell.stub(:neighbour_count).and_return(3)
cell.alive_in_next_generation.should == true
33. Z b .
Trapped inside a browser
var zombie = require("zombie");
var assert = require("assert");
zombie.visit("http://localhost:3000/",
function (err, browser, status) {
browser.
fill("email", "zombie@underworld.dead").
pressButton("Sign Me Up!",
function(err, browser, status) {
assert.equal(browser.text("title"), "Welcome");
})
});
34. V w
Topics
{ topic: function () { return 42 },
'should be a number': function (topic) {
assert.isNumber (topic);
},
'should be equal to 42': function (topic) {
assert.equal (topic, 42);
}
}
35. V w
Asynchronous calls
{ topic: function () {
fs.stat('~/FILE', this.callback);
},
'can be accessed': function (err, stat) {
assert.isNull (err); // We have no error
assert.isObject (stat); // We have a stat object
},
'is not empty': function (err, stat) {
assert.isNotZero (stat.size); // The file size is > 0
}
}
36. V w
Promises / Futures
{ topic: function () {
var promise = new(events.EventEmitter);
fs.stat('~/FILE', function (e, res) {
if (e) { promise.emit('error', e) }
else { promise.emit('success', res) }
});
return promise;
},
'can be accessed': function (err, stat) {
assert.isNull (err); //We have no error
assert.isObject (stat); //We have a stat object
},
'is not empty': function (err, stat) {
assert.isNotZero (stat.size); //The file size is > 0
}
}
37. V w
Parallel Execution
{ '/dev/stdout': {
topic: function () { path.exists('/dev/stdout',this.callback) },
'exists': function (result) { assert.isTrue(result) }
},
'/dev/tty': {
topic: function () { path.exists('/dev/tty',this.callback) },
'exists': function (result) { assert.isTrue(result) }
},
'/dev/null': {
topic: function () { path.exists('/dev/null',this.callback) },
'exists': function (result) { assert.isTrue(result) }
}
}
45. ââWhat is the use of a book,ââ thought Alice,
ââwithout pictures or conversations?ââ
Lewis Carroll
Aliceâs Adventures in Wonderland
49. ââHow much do you know about the
heuristics of failure?â
Joseph Wilk
Scotland Ruby Conf 2011
http://testobsessed.com/wp-content/uploads/2007/02/testheuristicscheatsheetv1.pdf