The document provides an introduction to Python programming concepts including functions, variables, data types, conditionals, loops, and data structures. It demonstrates a simple "Hello, World!" function and how to define, call, and assign the return value of functions. It also shows how to check variable types, use if/else conditional logic, iterate with for loops, and define a dictionary with nested data. The document uses examples and commentary to explain Python syntax and programming concepts in a beginner-friendly manner.
Ruby is amazing. It has a huge standard library and a core choc full of weird and wonderful things. In this talk, given at the Ipswich Ruby User Group, I give a whimsical nonstop tour through some of the more obscure parts of Ruby.
Python's "batteries included" philosophy means that it comes with an astonishing amount of great stuff. On top of that, there's a vibrant world of third-party libraries that help make Python even more wonderful. We'll go on a breezy, example-filled tour through some of my favorites, from treasures in the standard library to great third-party packages that I don't think I could live without, and we'll touch on some of the fuzzier aspects of the Python culture that make it such a joy to be part of.
Slides from my PyCon 2011 talk, "Exhibition of Atrocity," a confessional of my sins against the Python programming language.
Abstract: http://us.pycon.org/2011/schedule/presentations/138/
Video: http://www.pycon.tv/#/video/49
A helper to make the life of Wordpress developers easier.
This helper can be used to quickly register Custom Post Types, Taxonomies, Meta Boxes, Menu Pages and Sidebars within your Wordpress projects. Please comment, review, watch, fork and report bugs.
Ruby is amazing. It has a huge standard library and a core choc full of weird and wonderful things. In this talk, given at the Ipswich Ruby User Group, I give a whimsical nonstop tour through some of the more obscure parts of Ruby.
Python's "batteries included" philosophy means that it comes with an astonishing amount of great stuff. On top of that, there's a vibrant world of third-party libraries that help make Python even more wonderful. We'll go on a breezy, example-filled tour through some of my favorites, from treasures in the standard library to great third-party packages that I don't think I could live without, and we'll touch on some of the fuzzier aspects of the Python culture that make it such a joy to be part of.
Slides from my PyCon 2011 talk, "Exhibition of Atrocity," a confessional of my sins against the Python programming language.
Abstract: http://us.pycon.org/2011/schedule/presentations/138/
Video: http://www.pycon.tv/#/video/49
A helper to make the life of Wordpress developers easier.
This helper can be used to quickly register Custom Post Types, Taxonomies, Meta Boxes, Menu Pages and Sidebars within your Wordpress projects. Please comment, review, watch, fork and report bugs.
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.
Simply Business is starting to look into new tools to improve some of our mission-critical systems. There is one application, which would hugely benefit from the concurrency and fault tolerance model offered by languages like Elixir.
To increase awareness and gauge interest in the technology, we will have a bootcamp dedicated to giving us more insights into how to build and architect applications using Elixir and OTP.
It is meant to aim for slightly more advanced concepts, so in order to prepare rest of the team to be able to read the code and have some basic understanding of constructs and tooling - we have organised a LevelUP session, to talk exactly about that...
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
Symfony2 - extending the console componentHugo Hamon
The goal of this session is to explain how to take benefit from the Symfony2 command line interface tool. First, I have a closer look at the most interesting commands to generate code and help you reduce your development time. Then, I will show you how to create your own commands to extend the Symfony CLI tool and automate your tedious and redundant tasks. This part of the talk will also explain how to create interactive tasks, interact with the database, generating links or send emails from the command line. Of course, there will be a focus on how to design your commands the best way to make them as much testable as possible.
From Territorial Peoples toward a Global Agreementalianzabosques
Global proposal for the 2014 UN Climate Summit by indigenous peoples that hold influence over 85% of the World’s Tropical Forests Amazon Basin, Mesoamerica, Congo Basin, Pacific and Southeast Asia
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.
Simply Business is starting to look into new tools to improve some of our mission-critical systems. There is one application, which would hugely benefit from the concurrency and fault tolerance model offered by languages like Elixir.
To increase awareness and gauge interest in the technology, we will have a bootcamp dedicated to giving us more insights into how to build and architect applications using Elixir and OTP.
It is meant to aim for slightly more advanced concepts, so in order to prepare rest of the team to be able to read the code and have some basic understanding of constructs and tooling - we have organised a LevelUP session, to talk exactly about that...
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
Symfony2 - extending the console componentHugo Hamon
The goal of this session is to explain how to take benefit from the Symfony2 command line interface tool. First, I have a closer look at the most interesting commands to generate code and help you reduce your development time. Then, I will show you how to create your own commands to extend the Symfony CLI tool and automate your tedious and redundant tasks. This part of the talk will also explain how to create interactive tasks, interact with the database, generating links or send emails from the command line. Of course, there will be a focus on how to design your commands the best way to make them as much testable as possible.
From Territorial Peoples toward a Global Agreementalianzabosques
Global proposal for the 2014 UN Climate Summit by indigenous peoples that hold influence over 85% of the World’s Tropical Forests Amazon Basin, Mesoamerica, Congo Basin, Pacific and Southeast Asia
The basics of Python are rather straightforward. In a few minutes you can learn most of the syntax. There are some gotchas along the way that might appear tricky. This talk is meant to bring programmers up to speed with Python. They should be able to read and write Python.
Internationalizing CakePHP ApplicationsPierre MARTIN
Slides from the talk given by Mariano Iglesias during the CakeFest #3 - July 2009
Note: the original pdf and the code related to this talk can be found on cakephp.org (http://cakephp.org/downloads/CakeFest/CakeFest%203%20-%20Berlin%202009/Mariano%20Iglesias%20-%20Internationalizing%20CakePHP%20Applications)
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.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
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.
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.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
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
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.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
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.
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!
6. “Hello, World!”
$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license"
for more information.
>>> print "Hello, World!"
Hello, World!
7. “Hello, World!”
Start the Python interpreter
$ python
from the command line
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license"
for more information.
>>> print "Hello, World!"
Hello, World!
8. “Hello, World!”
$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license"
for more information.
>>> print "Hello, World!"
Hello, World!
Generic information about the
Python interpreter.
9. “Hello, World!”
$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license"
for more information.
>>> print "Hello, World!"
Hello, World!
You type this bit...
10. “Hello, World!”
$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license"
for more information.
>>> print "Hello, World!"
Hello, World!
Python returns the result (you made that happen!)
11. “Hello, World!” function
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
12. “Hello, World!” function
Functions are named blocks of code that do stuff.
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
13. “Hello, World!” function
def = define
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
14. “Hello, World!” function
hello = name of function
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
15. “Hello, World!” function
an argument (input) into the function
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
16. “Hello, World!” function
a default value for the name arg
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
17. “Hello, World!” function
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
Whitespace (a 4 space indent) indicates scope
18. “Hello, World!” function
def hello(name="World!"):
"""
Makes Python say hello.
comments
& docs :param name: who to greet
"""
return "Hello, %s" % name
19. “Hello, World!” function
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
return = result
20. “Hello, World!” function
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
a string (use either ' or ")
21. “Hello, World!” function
def hello(name="World!"):
"""
Makes Python say hello.
:param name: who to greet
"""
return "Hello, %s" % name
string formatting
22. Call the function (note the brackets)
>>> hello()
'Hello, World!'
>>> hello("NortHACKton")
'Hello, NortHACKton'
>>> hello("Widget")
'Hello, Widget'
26. HELP!
>>> dir() return the attributes of given scope
['__builtins__', '__doc__',
'__name__', '__package__', 'hello']
>>> help(hello) display help from docstring
Help on function hello in module __main__:
hello(name='World!')
Makes Python say hello.
:param name: who to greet
33. Program flow...
>>> world_is_flat = False
>>> if world_is_flat:
... print "The world is flat!"
... else:
... print "The world is round"
...
The world is round
34. Program flow...
>>> world_is_flat = False
>>> if world_is_flat: “if” tests for truth
... print "The world is flat!"
... else: “else” if “if” evaluates to false
... print "The world is round"
...
The world is round
The result of this logic...
35. Program flow...
>>> world_is_flat = False
>>> if world_is_flat:
... print "The world is flat!"
... else:
... print "The world is round"
...
The world is round
NB: there is NO switch in Python. Use elif for
further clauses in the logic.
36. Loops
>>> for number in range(10):
... print number
...
Basically, for each “something” in a
group of “somethings” do something
(for each number in a group of
numbers print the number)
37. Loops
>>> for number in range(10):
... print number
...
0
1
2
3 Like many programming languages,
4 Python starts counting from 0 (zero)
5
6
7
8
9
There’s also while
38. Data structures
>>> my_dictionary = { curly brackets!
... 'key': 'value',
... 1: 2, dict = key/value store
... 'branch': {
... 'leaf': 'node' (think phone book)
... }
... }
>>> my_dictionary['key'] get the value from the dict
'value'
>>> my_dictionary[1]
2
>>> my_dictionary['branch']['leaf']
'node'
>>> my_dictionary
{1: 2, 'branch': {'leaf': 'node'}, 'key': 'value'}
Why not try dir(my_dictionary)and play.?
39. Data structures
>>> shopping = ['eggs', 'ham', 'spam', 'parrot'] a list
>>> len(shopping)
4 square brackets!
>>> shopping
['eggs', 'ham', 'spam', 'parrot'] lists remain in order
>>> shopping[0]
'eggs'
>>> shopping[3] get a specific item by position
'parrot'
>>> shopping[4]
Traceback (most recent call last): start counting from
File "<stdin>", line 1, in <module>
IndexError: list index out of range zero (remember?)
>>> shopping[1:]
['ham', 'spam', 'parrot']
>>> shopping[:1]
['eggs']
>>> shopping[:-1]
slicing
['eggs', 'ham', 'spam']
>>> shopping[-1:]
['parrot']
47. A very simple view...
Nouns = Classes
Proper Nouns = Objects
Verbs = Methods
Adjectives = Attributes
er, sort of... I’m making this up as I go along... :-)
48. class Cow(object):
"""
A pythonic cow
"""
def __init__(self, name="Cow", breed=None):
"""
Called when the class is instantiated
"""
self.name = name
self.breed = breed
def moo(self, message="MOO!"):
"""
A bovine hello world!
"""
return "%s says, %s" % (self.name, message)
49. Indicates we’re defining a new class...
class Cow(object):
"""
A pythonic cow
"""
def __init__(self, name="Cow", breed=None):
"""
Called when the class is instantiated
"""
self.name = name
self.breed = breed
def moo(self, message="MOO!"):
"""
A bovine hello world!
"""
return "%s says, %s" % (self.name, message)
50. ... that we’re calling “Cow”...
class Cow(object):
"""
A pythonic cow
"""
def __init__(self, name="Cow", breed=None):
"""
Called when the class is instantiated
"""
self.name = name
self.breed = breed
def moo(self, message="MOO!"):
"""
A bovine hello world!
"""
return "%s says, %s" % (self.name, message)
51. ... that inherits attributes/behaviour
from the“object” class.
class Cow(object):
"""
A pythonic cow
"""
def __init__(self, name="Cow", breed=None):
"""
Called when the class is instantiated
"""
self.name = name
self.breed = breed
def moo(self, message="MOO!"):
"""
A bovine hello world!
"""
return "%s says, %s" % (self.name, message)
52. class Cow(object): A docstring that explains
"""
A pythonic cow what this class represents
"""
def __init__(self, name="Cow", breed=None):
"""
Called when the class is instantiated
"""
self.name = name
self.breed = breed
def moo(self, message="MOO!"):
"""
A bovine hello world!
"""
return "%s says, %s" % (self.name, message)
53. class Cow(object):
"""
A pythonic cow
"""
def __init__(self, name="Cow", breed=None):
"""
A special Called when the class is instantiated
"""
method self.name = name
self.breed = breed
called when
a new def moo(self, message="MOO!"):
"""
object is A bovine hello world!
"""
created return "%s says, %s" % (self.name, message)
with this
class
54. class Cow(object):
"""
A pythonic cow “self” refers to the new
"""
object (e.g. Buttercup)
def __init__(self, name="Cow", breed=None):
"""
Called when the class is instantiated
"""
self.name = name
self.breed = breed
def moo(self, message="MOO!"):
"""
A bovine hello world!
"""
return "%s says, %s" % (self.name, message)
55. class Cow(object):
"""
A pythonic cow
"""
def __init__(self, name="Cow", breed=None):
"""
Called when the class is instantiated
"""
self.name = name self.name and self.breed
self.breed = breed
are attributes of the
def moo(self, message="MOO!"): instantiated object
"""
A bovine hello world! (Buttercup)
"""
return "%s says, %s" % (self.name, message)
56. class Cow(object):
"""
A pythonic cow
"""
def __init__(self, name="Cow", breed=None):
"""
Called when the class is instantiated
"""
self.name = name
self.breed = breed
def moo(self, message="MOO!"):
"""
A bovine hello world!
A method """
return "%s says, %s" % (self.name, message)
makes the
object do
something
60. Your task:
Create a Parrot class. It must be able to squawk, flap and,
ahem, become deceased. If the parrot is deceased then
calling squawk and flap return the message “This is an ex-
parrot”. We should be able to indicate the parrot’s breed
and give it a name. Use your imagination! HAVE FUN!