Interacting directly with a datastore can have many pitfalls. The presentation goes through an example which exposes some of the pitfalls, then shows how Ohm helps to solve them or make them a non issue. Some basic features of Ohm also covered.
This is a presentation I gave to a recent NortHACKton meeting. The audience were a mixture of seasoned developers who were new to Python and complete newbies who'd never coded anything before.
In the end everyone created a Parrot class and did a show and tell of their code to the rest of the group.
Find out about NortHACKton here: http://northackton.stdin.co.uk/blog/
This is a presentation I gave to a recent NortHACKton meeting. The audience were a mixture of seasoned developers who were new to Python and complete newbies who'd never coded anything before.
In the end everyone created a Parrot class and did a show and tell of their code to the rest of the group.
Find out about NortHACKton here: http://northackton.stdin.co.uk/blog/
Presented at the European Bioinformatics Institute (17th March 2017)
We often talk about good code — that we would like to write it, that there isn't enough of it, that it should not be considered an optional attribute of a codebase. We often talk about it but, when it comes to being precise, we don't always agree what constitutes good code, nor do we necessarily share a common view on its value.
Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...takeoutweight
I discuss Haste, which compiles Haskell code to Javascript to be run on the browser. I then cover Tagless Final Style, which is a technique for creating flexible and extensible DSLs.
The need for functional programming languages is more important than ever with the current hardware and software trends. Scala has become the number one choice for functional programming languages and is becoming the language of choice for many development teams. But with the introduction of functional programming in Java 8 is Scala still relevant and needed?
Presented at the European Bioinformatics Institute (17th March 2017)
We often talk about good code — that we would like to write it, that there isn't enough of it, that it should not be considered an optional attribute of a codebase. We often talk about it but, when it comes to being precise, we don't always agree what constitutes good code, nor do we necessarily share a common view on its value.
Haste (Same Language, Multiple Platforms) and Tagless Final Style (Same Synta...takeoutweight
I discuss Haste, which compiles Haskell code to Javascript to be run on the browser. I then cover Tagless Final Style, which is a technique for creating flexible and extensible DSLs.
The need for functional programming languages is more important than ever with the current hardware and software trends. Scala has become the number one choice for functional programming languages and is becoming the language of choice for many development teams. But with the introduction of functional programming in Java 8 is Scala still relevant and needed?
API design is one of the most difficult areas of programming. Besides solving your immediate problem, you must also accomodate unknown future ones—and fit nicely into other people's brains. Let's explore how to do this without a time machine, considering compactness, orthogonality, consistency, safety, coupling, state handling, and the messy interface with human cognition, all illustrated with practical examples—and gruesome mistakes—from several popular Python libraries.
Most developers will be familiar with lex, flex, yacc, bison, ANTLR, and other tools to generate parsers for use inside their own code. Erlang, the concurrent functional programming language, has its own pair, leex and yecc, for accomplishing most complicated text-processing tasks. This talk is about how the seemingly simple prospect of parsing text turned into a new parser toolkit for Erlang, and why functional programming makes parsing fun and awesome.
A talk I gave at the June 2010 meeting of the London Ruby User Group. It's about the first bit of ruby I ever wrote, way back in 2003. A little bit of personal history, a little bit of ruby history, a whole lot of terrible code for you to learn from.
Hibernate changed how many applications are written. With its inclusion in ColdFusion 9, ORM has changed how many ColdFusion applications are written. This session will cover first why searching via ORM may benefit applications. Secondly the session will cover the many options for how to configure the search options and perform searches.
Presented at cf.Objective() 2012.
A few techniques for everyday Ruby hacking
Touching on the following topics:
DRY Assignment
Ternary operator
Bang bang
Conditional assignment
Parallel assignment
Multiple return
Implied begin
Exception lists
Symbol to Proc
MapReduce
Regex captures
tap
sprintf
case equality
Splat Array
Splat args
blank?
present?
presence
truncate
try
in?
Delegation
delegate
Memoization
memoize
alias_method_chain
class_attribute
HashWithIndifferentAccess
Generating a custom Ruby SDK for your web service or Rails API using Smithyg2nightmarescribd
Have you ever wanted a Ruby client API to communicate with your web service? Smithy is a protocol-agnostic language for defining services and SDKs. Smithy Ruby is an implementation of Smithy that generates a Ruby SDK using a Smithy model. In this talk, we will explore Smithy and Smithy Ruby to learn how to generate custom feature-rich SDKs that can communicate with any web service, such as a Rails JSON API.
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.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
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.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
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.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
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
5. Ohm runs on redis
Remote dictionary server
Store multiple data-structure types
6. Ohm runs on redis
Remote dictionary server
Store multiple data-structure types
Lists, Sets, Sorted Sets, Strings, Hashes
7. Ohm runs on redis
Remote dictionary server
Store multiple data-structure types
Lists, Sets, Sorted Sets, Strings, Hashes
In memory datastore with persistence strategies
8. Ohm runs on redis
Remote dictionary server
Store multiple data-structure types
Lists, Sets, Sorted Sets, Strings, Hashes
In memory datastore with persistence strategies
Super fast & easy to scale
9. Ohm runs on redis
Remote dictionary server
Store multiple data-structure types
Lists, Sets, Sorted Sets, Strings, Hashes
In memory datastore with persistence strategies
Super fast & easy to scale
Atomic operations & transactions
10. Ohm runs on redis
Remote dictionary server
Store multiple data-structure types
Lists, Sets, Sorted Sets, Strings, Hashes
In memory datastore with persistence strategies
Super fast & easy to scale
Atomic operations & transactions
Key expiry
11. Ohm runs on redis
Remote dictionary server
Store multiple data-structure types
Lists, Sets, Sorted Sets, Strings, Hashes
In memory datastore with persistence strategies
Super fast & easy to scale
Atomic operations & transactions
Key expiry
redis-rb
52. symbol = {
:name => 'Ohm',
:description => 'Ancient syllable',
:phonemes => [
{
:sound => 'aaa',
:meaning => 'beginning of the universe',
:god => 'Brahma'
}, {
:sound => 'ooo',
:meaning => 'duration of the universe',
:god => 'Vishnu'
}, {
:sound => 'mmm',
:meaning => 'dissolution of the universe',
:god => 'Shiva'
}
]
}
53. require 'rubygems'
require 'ohm'
class AncientSymbol < Ohm::Model
attribute :name
attribute :description
index :name
collection :phonemes, Phoneme
def validate
assert_present :name
end
end
54. class Phoneme < Ohm::Model
attribute :sound
attribute :meaning
attribute :god
index :sound
index :god
reference :ancient_symbol, AncientSymbol
def validate
assert_present :sound
end
end
We&#x2019;re going to build up to why we need Ohm with an example of the pitfalls of trying to roll your own solution to interact with redis as a datastore.\n
\n
\n
\n
\n
\n
\n
\n
Get reference to database\n
\n
\n
Awesome - we&#x2019;re storing our information in redis!\nSo what&#x2019;s wrong with this approach?\n
\n
The key we&#x2019;re using for symbols isn&#x2019;t adequate for multiple symbols...\n
The key we&#x2019;re using for symbols isn&#x2019;t adequate for multiple symbols...\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
Using a set because each element will be unique\nOrder isn&#x2019;t important\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
index: creates an index for an attribute you want to be able to search\ncollection: similar to has_many\n
\n
Validation behaves similarly to what we see in AR\nErrors are returned as an array of attributes and the associated failure\n
Error messages are not defined within the model, but with a presenter\n\nerror_messages is just an array of errors\n
Notice that the phoneme is added to the symbols phonemes\nAND a phoneme gets a reference to ancient_symbol\n
\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
All sets are created on the fly\n
\n
\n
\n
\n
\n
attribute->string set->unordered array list->array (great for queue) reference->foreign key collection->has_many\n