SlideShare a Scribd company logo
Python for PHP Developers
@ben_nuttall
Raspberry Pi Foundation
About me
● Education Developer Advocate for Raspberry Pi Foundation
– Developer & maintainer of www.raspberrypi.org
– Education – teacher training & learning resources
– Outreach – open source, education & programming conferences
● From Sheffield
● BSc Mathematics & Computing in Manchester (MMU)
● Lived in Cambridge since late 2013
● Interested in programming, open source, Linux
About Raspberry Pi
● Family of affordable single board computers
– ~£15 700MHz single core 256MB RAM
– ~£25 900MHz quad core 1GB RAM
● Designed for use in education
● Used in education, industry and by hobbyists
● We're a charity (UK charity 1129409)
● Founded and based in Cambridge
● Staff of < 20
● Raspberry Pi manufactured in Pencoed, Wales (not China)
● Sold 6 million units since 2012 launch
What this talk is not
PHP
● $a = 1;
● function foo() {
    return “bar”;
}
● T_PAAMAYIM_NEKUDOTAYIM
Python
● a = 1
● def foo():
    return “bar”
● ???
What this talk is also not
YOU ARE ALL IDIOTS YOU
SHOULD BE USING PYTHON NOT
PHP IT'S NOT EVEN A REAL
LANGUAGE IT'S SO
INCONSISTENT I DON'T EVEN
What this talk is
● Examples of Python
● What makes Python code Pythonic
● How to think like a Python programmer
● Python Idioms
● Practical Python – frameworks, libraries, infrastructure
About Python
● General purpose high-level programming language
● Created in 1991 by Guido van Rossum
● Cross-platform
● Implemented in C (alternatives: Java, Python, C#)
● Multi-paradigm (OO, Imperative, Functional, Procedural)
● Dynamic type
● Designed for readability
Python is for...
● Web programming (Django, Pyramid, Bottle, Flask...)
● GUI development (wxPython, tkInter, PyGtk, PyQt...)
● Scientific and Numeric (SciPy, NumPy, Pandas...)
● Software development (Buildbot, Trac, Roundup...)
● System Administration (Ansible, Salt, OpenStack...)
● Embedded computing (Raspberry Pi, MicroPython, BeagleBone...)
● Education (Raspberry Pi, Turtle, Robotics...)
Why Python?
● Professional and powerful modern language
● Focus on readability
● Strong community
● Good documentation
● Flexible
● Full stack
Python 2 or Python 3?
● Python 3 was released in 2008, its current version is 3.4
● Python 2 is considered legacy, its EOL is 2020
– No more major revisions (2.7.x – no 2.8)
– However, everyone still uses it
● Python 3 is the present and future of the language
● Python 3 contains some nice new features
– But apparently not different enough for people to bother to change
– What version of PHP are you currently using in production? My guess: 5.3
● Some libraries don't support Python 3 yet
● Examples in this presentation are for Python 3
Which version do I have?
● Linux (including Raspberry Pi):
– python is Python 2
– python3 is Python 3
– (except Arch Linux – rebels)
● Mac:
– Python 2 pre-installed, Python 3 available from python.org/downloads
● Windows:
– Download either or both from python.org/downloads
Hello world
print(“Hello world”)
Built-in Numerical Types
● Numbers:
– Integer
● Decimal
● Binary
● Octal
● Hex
– Float
– Complex
● 123
● 0b01111011
● 0o173
● 0x7b
– 123.0
– 123 + 123j
Strings
● Single quotes
● Double quotes
● Triple quotes
● s = 'hello'
● s = “Hello”
● s = “””
Hello world,
how are you?
“””
Built-in Data Structures
● List
● Tuple
● Dictionary
● Set
● [1, 2, 3]
● (1, 2, 3)
● {
    'a': 1,
    'b': 2,
    'c': 3,
}
● {1, 2, 3}
Keywords
● False
● None
● True
● and
● as
● assert
● break
● class
● continue
● def
● del
● elif
● else
● except
● finally
● for
● from
● global
● if
● import
● in
● is
● lambda
● nonlocal
● not
● or
● pass
● raise
● return
● try
● while
● with
● yield
Built-in functions
● abs
● all
● any
● ascii
● bin
● bool
● bytearray
● bytes
● callable
● chr
● classmethod
● compile
● complex
● delattr
● dict
● dir
● divmod
● enumerate
● eval
● exec
● filter
● float
● format
● frozenset
● getattr
● globals
● hasattr
● hash
● help
● hex
● id
● input
● int
● isinstance
● issubclass
● iter
● len
● list
● locals
● map
● max
● memoryview
● min
● next
● object
● oct
● open
● ord
● pow
● print
● property
● range
● repr
● reversed
● round
● set
● setattr
● slice
● sorted
● staticmethod
● str
● sum
● super
● tuple
● type
● vars
● zip
Import
● import time
● from time import sleep
● from picamera import 
PiCamera
● Import the whole time module,
namespaced as time
● Import only the sleep function
from time module
● Import only the PiCamera class
from the picamera module
Import
● from datetime import 
datetime, timedelta
● import numpy as np
● from numpy import *
● Import only the datetime and 
timedelta functions from the
datetime module
● Import the numpy module,
namespaced as np
● Import all objects from numpy
module, polluting the namespace
(don't do this)
Paradigms
● Procedural
● Functional
● Object Oriented
Procedural
● C
● Go
● Fortran
● Pascal
● BASIC
Loops
for i in range(10):
    print(“Hello world”)
i = 0
while i < 10:
    i += 1
    print(“Hello world”)
    
while True:
    print(“Hello world”)
Iterables & Enumeration
people = [“Alice”, “Bob”, “Charlie”]
for person in people:
    print(“Hello %s” % person)
for i, name in enumerate(people):
    print(“%i: %s” % (i, name))
Functions
def greeting():
    print(“Hello”)
greeting()
Functions
def greeting(name):
    print(“Hello %s” % name)
greeting(“Ben”)
Functions
def greeting(name=None):
    if name:
        print(“Hello %s” % name)
    else:
        print(“Hello”)
greeting()
greeting(“Ben”)
Functions – positional & named arguments
def birthday_greeting(name=None, age=None):
    if name and age:
        print(“Happy %ith birthday, %s” % (age, name))
    elif name:
        print(“Happy birthday, %s” % name)
    elif age:
        print(“Happy %ith birthday” % age)
    else:
        print(“Happy birthday”)
birthday_greeting()  # use default arguments
birthday_greeting(“Ben”)  # positional argument
birthday_greeting(name=”Ben”, age=26)  # named arguments
birthday_greeting(age=26, name=”Ben”)  # named arguments, reverse order
birthday_greeting(age=26) # named argument
Functions – keyword arguments
def foo(**kwargs):
    if 'name' in kwargs:
        print(“Hello %s” % name)
Functions – globals (read only)
pi = 3.14159265358979
def circumference(radius):
    return 2 * pi * radius
Functions – globals (read/write)
total = 0
def add_one():
    global total
    total += 1
Functions – return vs. yield
def get_square_numbers(n):
    squares = []
    for i in range(n):
        squares.append(i**2)
    return squares
>>> get_square_numbers(10)
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
Functions – return vs. yield
def get_square_numbers(n):
    for i in range(n):
        yield i**2
>>> square_numbers = get_square_numbers(10)
>>> square_numbers.next()
0
>>> square_numbers.next()
1
Functional
● Haskell
● ML
● Common Lisp
● Scheme
● Clojure
● Erlang
● F#
List comprehension
squares = []
for n in range(10):
    squares.append(n**2)
print(squares)
squares = [i**2 for i in range(10)]
Set comprehension
>>> [i**2 for i in [­5, ­4, ­3, 2, 3, 4, 5]]
[25, 16, 9, 4, 9, 16, 25]
>>> {i**2 for i in [­5, ­4, ­3, 2, 3, 4, 5]}
{4, 9, 16, 25}
Dictionary comprehension
>>> {i: i**2 for i in range(5)}
{
 0: 0,
 1: 1,
 2: 4,
 3: 9,
 4: 16,
}
Generator Expressions
>>> squares = (i**2 for i in range(5))
>>> squares.next()
0
>>> squares.next()
1
Map
def square(n):
    return n**2
>>> things = [1, 2, 3]
>>> square_things = map(square, things)
>>> print(list(square_things))
[1, 4, 9]
functools & itertools
● functools - for higher-order functions: functions that act on or
return other functions
● itertools - a number of iterator building blocks inspired by
constructs from APL, Haskell, and SML, each recast in a form
suitable for Python
– product
– combinations
– permutations
Object Oriented
● C++
● Objective-C
● Smalltalk
● Java
● C#
● Ruby
Classes
class Dog:
    pass
>>> d = Dog()
Classes – init and properties
class Dog(object):
    def __init__(self, name):
        self.name = name
>>> d = Dog(“Bingo”)
>>> print(d.name)
Classes - methods
class Dog(object):
    def __init__(self, name):
        self.name = name
    def bark(self):
        print(“woof”)
>>> d = Dog(“Bingo”)
>>> d.bark()
woof
Classes - @property
class Dog(object):
    def __init__(self, name):
        self.name = name
        self.born = time()
    @property
    def age(self):
        return time() ­ self.born
>>> d = Dog(“Bingo”)
>>> print(d.age)
Classes – magic methods
class PlayingCard(object):
    VALUES = ('2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A')
    SUITS = ('H', 'D', 'S', 'C')
    def __init__(self, value, suit):
        self.value = value
        self.suit = suit
    def __repr__(self):
         return “%s%s” % (self.value, self.suit)
    def __eq__(self, other):
        return self.VALUES.index(self.value) == self.VALUES.index(other.value)
    def __lt__(self, other):
        return self.VALUES.index(self.value) < self.VALUES.index(other.value)
    def __gt__(self, other):
        return self.VALUES.index(self.value) > self.VALUES.index(other.value)
>>> card_1 = PlayingCard('A', 'S')
>>> card_2 = PlayingCard('9', 'D')
>>> print(card_1 > card_2)
True
>>> cards = [card_1, card_2]
>>> print(max(cards))
AS
The Zen of Python
The Zen of Python
● Beautiful is better than ugly.
● Explicit is better than implicit.
● Simple is better than complex.
● Complex is better than complicated.
● Flat is better than nested.
● Sparse is better than dense.
● Readability counts.
● Special cases aren't special enough to break the rules.
● Although practicality beats purity.
● Errors should never pass silently.
● Unless explicitly silenced.
● In the face of ambiguity, refuse the temptation to guess.
● There should be one-- and preferably only one --obvious way to do it.
● Although that way may not be obvious at first unless you're Dutch.
● Now is better than never.
● Although never is often better than *right* now.
● If the implementation is hard to explain, it's a bad idea.
● If the implementation is easy to explain, it may be a good idea.
● Namespaces are one honking great idea -- let's do more of those!
Python Idioms
● “The specific grammatical, syntactic, and structural character of
a given language”
● “A commonly used and understood way of expressing a fact,
idea or intention.”
Examples by Safe Hammad
http://safehammad.com/downloads/python-idioms-2014-01-16.pdf
Python Idioms
● "Programs must be written for people to read, and only incidentally for machines to execute."
- Abelson & Sussman, SICP
● “There should be one - and preferably only one - obvious way to do it.”
- The Zen of Python
● The use of commonly understood syntax or coding constructs can aid readability and clarity.
● Some idioms can be faster or use less memory than their “non-idiomatic” counterparts.
● Python's idioms can make your code Pythonic!
Make a script both importable and executable
if __name__ == '__main__':
    main()
Test for “truthy” and “falsy” values
if x:
if not x:
Test for “truthy” and “falsy” values
# GOOD
name = “Ben”
if name:
    print(“Hello %s” % name)
# BAD
if name != “”:
    print(“Hello %s” % name)
Truth
● True:
– Non-empty string
– Number not 0
– Non-empty container
(len(x) > 0)
– True
● False:
– Empty string
– Number 0
– Empty container
(len(x) == 0)
– False
– None
in
● Contains:
if x in items:
● Iteration:
for singular in plural:
in – iteration (list)
people = [“Alice”, “Bob”, “Charlie”]
# GOOD
for name in people:
    print(name)
# BAD
for i in range(len(people)):
    print(people[i])
in – iteration (dictionary)
people = {“Alice”: 23, “Bob”: 21, “Charlie”: 30}
# GOOD
for name, age in people.items():
    print(“%s is %i” % (name, age))
# BAD
for name in people:
    print(“%s is %i” % (name, people[name]))
in - contains
people = [“Alice”, “Bob”, “Charlie”]
name = “Ben”
if name in people:
    print(“in”)
else:
    print(“out”)
Swap variables
a = 1
b = 2
# GOOD
a, b = b, a
# BAD
c = a
a = b
b = c
Join
words = ['hello', 'world']
# GOOD
print(' '.join(words))
# BAD
s = ''
for word in words:
    s += word + ' '
print(s)
with – self-cleanup
# GOOD
with open('file.txt') as f:
    line = f.readline()
# BAD
f = open('file.txt')
line = f.readline()
with – self-cleanup
# GOOD
with PiCamera() as camera:
    camera.start_preview()
    sleep(2)
    camera.capture('image.jpg')
    camera.stop_preview()
# BAD
camera = PiCamera()
camera.start_preview()
sleep(2)
camera.capture('image.jpg')
camera.stop_preview()
Exceptions
people = {“Alice”: 23, “Bob”: 21, “Charlie”: 30}
name = “Ben”
# OK
if name in people:
    age = people[name]
else:
    age = None
Exceptions
people = {“Alice”: 23, “Bob”: 21, “Charlie”: 30}
name = “Ben”
# GOOD
try:
    age = people[name]
except ValueError:
    age = None
# BAD
try:
    age = people[name]
except:
    age = None
Exceptions – try/except not try/catch!
try:
    import GPIO
except ImportError:
    GPIO = None
if GPIO:
    …
else:
    print(“Cannot access GPIO”)
Exceptions – patch to work in Python 2 and 3
try:
    input = raw_input
except NameError:
    pass
Exceptions – patch to work in Python 2 and 3
from __future__ import (
    unicode_literals,
    print_function,
    division,
    absolute_import,
)
# Make Py2's str and range equivalent to Py3's
str = type('')
try:
    range = xrange
except NameError:
    pass
PEP : Python Enhancement Proposals
PEP8 - Style Guide for Python Code
● Indentation
● Tabs or spaces?
● Maximum line length
● Blank lines
● Source file encoding
● Imports
● String quotes
● Whitespace
● Comments
● Versioning
● Naming conventions
● Programming recommendations
PyPi: Python Packaging Index
● Free-for-all upload of Python packages and modules
● Namespace based
● Browsable online
● Easy to upload & update
● Easy to download
● Easy to install & upgrade
What a Python package looks like
 ├── energenie
     │ ├── energenie.py
     │ └── __init__.py
 └── setup.py
Write in C - optional
● Python modules can be written in C for optimal speed
Installing packages with pip
$ pip install energenie
$ pip3 install energenie
Virtualenv
● Isolated environment for running an appplication with specific
version dependencies
● Run multiple apps requiring different versions of libraries
● Use pip to install within a virtualenv
Secrets from the Future
● from __future__ import print_function, division
Bring Python 3 features into Python 2
2to3
● Convert a Python file, set of files or module from Python 2 to
Python 3 syntax
– Often trivial
– Sometimes requires manual intervention
– Dry run to see suggested changes first
Tips
● IPython shell
● IPython Notebook
● Trinket
● PEP8
● python.org – docs, examples, wiki
● PyPi
Community
● PyCon
– PyCon (Montreal)
– PyConUK (Coventry)
– EuroPython (Bilbao)
– PyCon Ireland (Dublin)
– EuroSciPy (Cambridge)
– Many more!
● User groups & organisations
– Campug
– London Python Dojo
– PyLadies
– Django Girls
– Python Software Foundation
Further reading
● Why Python is a Great First Language
http://blog.trinket.io/why-python/
● Python Success Stories
https://www.python.org/about/success/
● Python in Education
http://www.oreilly.com/programming/free/python-in-education.
csp
Learn Python
● Python Challenge
http://www.pythonchallenge.com/
● Python Docs
https://www.python.org/doc/
● Project Euler
https://projecteuler.net/
● Raspberry Pi Learning Resources
https://www.raspberrypi.org/resources/
● Trinket
https://trinket.io/python
Python for PHP Developers
@ben_nuttall
Raspberry Pi Foundation
Ad

Recommended

Physical computing with Python and Raspberry Pi
Physical computing with Python and Raspberry Pi
bennuttall
 
Picamera, Flask and the Twitter API Raspberry Pi workshop
Picamera, Flask and the Twitter API Raspberry Pi workshop
bennuttall
 
Python on Pi - Keynote at PySS14
Python on Pi - Keynote at PySS14
bennuttall
 
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
[Forward4 Webinar 2016] Building IoT Prototypes w/ Raspberry Pi
Tomomi Imura
 
Why is Python slow? Python Nordeste 2013
Why is Python slow? Python Nordeste 2013
Daker Fernandes
 
Raspberry Pi for Developers and Makers
Raspberry Pi for Developers and Makers
All Things Open
 
Python in a real life
Python in a real life
Vladimir Filonov
 
Python Ireland - Who, how, what
Python Ireland - Who, how, what
Python Ireland
 
Python: an introduction for PHP webdevelopers
Python: an introduction for PHP webdevelopers
Glenn De Backer
 
IoT-Week1-Day1-Lab.pptx
IoT-Week1-Day1-Lab.pptx
afsheenfaiq2
 
Programming Under Linux In Python
Programming Under Linux In Python
Marwan Osman
 
An Intro to Python in 30 minutes
An Intro to Python in 30 minutes
Sumit Raj
 
Blueprints: Introduction to Python programming
Blueprints: Introduction to Python programming
Bhalaji Nagarajan
 
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Sian Lerk Lau
 
2024-25 TYBSC(CS)-PYTHON_PROG_ControlStructure.pptx
2024-25 TYBSC(CS)-PYTHON_PROG_ControlStructure.pptx
sangeeta borde
 
First Steps in Python Programming
First Steps in Python Programming
Dozie Agbo
 
What is Python?
What is Python?
PranavSB
 
Programming RPi for IoT Applications.pdf
Programming RPi for IoT Applications.pdf
rakeshk213994
 
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
admin369652
 
05 python.pdf
05 python.pdf
SugumarSarDurai
 
Introduction to Python For Diploma Students
Introduction to Python For Diploma Students
SanjaySampat1
 
Python lec1
Python lec1
Swarup Ghosh
 
Python for Scientific Computing
Python for Scientific Computing
Albert DeFusco
 
Python bootcamp - C4Dlab, University of Nairobi
Python bootcamp - C4Dlab, University of Nairobi
krmboya
 
MODULE 1.pptx
MODULE 1.pptx
KPDDRAVIDIAN
 
Python Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard Way
Utkarsh Sengar
 
Python
Python
Kumar Gaurav
 
Tutorial on-python-programming
Tutorial on-python-programming
Chetan Giridhar
 
Raspberry Pi Foundation - Intro for Creative Technologists
Raspberry Pi Foundation - Intro for Creative Technologists
bennuttall
 
Build your product around the best supported mini computer in the world - Ras...
Build your product around the best supported mini computer in the world - Ras...
bennuttall
 

More Related Content

Similar to Python for PHP developers (20)

Python: an introduction for PHP webdevelopers
Python: an introduction for PHP webdevelopers
Glenn De Backer
 
IoT-Week1-Day1-Lab.pptx
IoT-Week1-Day1-Lab.pptx
afsheenfaiq2
 
Programming Under Linux In Python
Programming Under Linux In Python
Marwan Osman
 
An Intro to Python in 30 minutes
An Intro to Python in 30 minutes
Sumit Raj
 
Blueprints: Introduction to Python programming
Blueprints: Introduction to Python programming
Bhalaji Nagarajan
 
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Sian Lerk Lau
 
2024-25 TYBSC(CS)-PYTHON_PROG_ControlStructure.pptx
2024-25 TYBSC(CS)-PYTHON_PROG_ControlStructure.pptx
sangeeta borde
 
First Steps in Python Programming
First Steps in Python Programming
Dozie Agbo
 
What is Python?
What is Python?
PranavSB
 
Programming RPi for IoT Applications.pdf
Programming RPi for IoT Applications.pdf
rakeshk213994
 
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
admin369652
 
05 python.pdf
05 python.pdf
SugumarSarDurai
 
Introduction to Python For Diploma Students
Introduction to Python For Diploma Students
SanjaySampat1
 
Python lec1
Python lec1
Swarup Ghosh
 
Python for Scientific Computing
Python for Scientific Computing
Albert DeFusco
 
Python bootcamp - C4Dlab, University of Nairobi
Python bootcamp - C4Dlab, University of Nairobi
krmboya
 
MODULE 1.pptx
MODULE 1.pptx
KPDDRAVIDIAN
 
Python Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard Way
Utkarsh Sengar
 
Python
Python
Kumar Gaurav
 
Tutorial on-python-programming
Tutorial on-python-programming
Chetan Giridhar
 
Python: an introduction for PHP webdevelopers
Python: an introduction for PHP webdevelopers
Glenn De Backer
 
IoT-Week1-Day1-Lab.pptx
IoT-Week1-Day1-Lab.pptx
afsheenfaiq2
 
Programming Under Linux In Python
Programming Under Linux In Python
Marwan Osman
 
An Intro to Python in 30 minutes
An Intro to Python in 30 minutes
Sumit Raj
 
Blueprints: Introduction to Python programming
Blueprints: Introduction to Python programming
Bhalaji Nagarajan
 
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Learning python with flask (PyLadies Malaysia 2017 Workshop #1)
Sian Lerk Lau
 
2024-25 TYBSC(CS)-PYTHON_PROG_ControlStructure.pptx
2024-25 TYBSC(CS)-PYTHON_PROG_ControlStructure.pptx
sangeeta borde
 
First Steps in Python Programming
First Steps in Python Programming
Dozie Agbo
 
What is Python?
What is Python?
PranavSB
 
Programming RPi for IoT Applications.pdf
Programming RPi for IoT Applications.pdf
rakeshk213994
 
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
FALLSEM2022-23_ITA3007_ETH_VL2022230100613_Reference_Material_I_23-09-2022_py...
admin369652
 
Introduction to Python For Diploma Students
Introduction to Python For Diploma Students
SanjaySampat1
 
Python for Scientific Computing
Python for Scientific Computing
Albert DeFusco
 
Python bootcamp - C4Dlab, University of Nairobi
Python bootcamp - C4Dlab, University of Nairobi
krmboya
 
Python Workshop - Learn Python the Hard Way
Python Workshop - Learn Python the Hard Way
Utkarsh Sengar
 
Tutorial on-python-programming
Tutorial on-python-programming
Chetan Giridhar
 

More from bennuttall (20)

Raspberry Pi Foundation - Intro for Creative Technologists
Raspberry Pi Foundation - Intro for Creative Technologists
bennuttall
 
Build your product around the best supported mini computer in the world - Ras...
Build your product around the best supported mini computer in the world - Ras...
bennuttall
 
Picademy - Python picamera workshop
Picademy - Python picamera workshop
bennuttall
 
Raspberry Pi - background of Raspberry Pi Foundation for Creative Technologists
Raspberry Pi - background of Raspberry Pi Foundation for Creative Technologists
bennuttall
 
Hands on Raspberry Pi - Creative Technologists
Hands on Raspberry Pi - Creative Technologists
bennuttall
 
Ben Nuttall - Creative Technologists Pecha Kucha
Ben Nuttall - Creative Technologists Pecha Kucha
bennuttall
 
Raspberry Pi for startups - Estonia
Raspberry Pi for startups - Estonia
bennuttall
 
Raspberry Pi - Estonia
Raspberry Pi - Estonia
bennuttall
 
How Raspberry Pi (an educational charity) funds itself without ratlling a tin...
How Raspberry Pi (an educational charity) funds itself without ratlling a tin...
bennuttall
 
Creative technologists
Creative technologists
bennuttall
 
Picademy 5 Picamera Intro Workshop
Picademy 5 Picamera Intro Workshop
bennuttall
 
Raspberry Pi in education - Barcamp Manchester
Raspberry Pi in education - Barcamp Manchester
bennuttall
 
Raspberry Pi in science education - IMA NW
Raspberry Pi in science education - IMA NW
bennuttall
 
Pioneering the future of computing education - PyCon Ireland
Pioneering the future of computing education - PyCon Ireland
bennuttall
 
PyPi (not that one) [Python on Pi] - PyConUK 2014
PyPi (not that one) [Python on Pi] - PyConUK 2014
bennuttall
 
Raspberry Pi - Denver Hackspaces
Raspberry Pi - Denver Hackspaces
bennuttall
 
St Louis St. John Vianney High School - Raspberry Pi
St Louis St. John Vianney High School - Raspberry Pi
bennuttall
 
Arch Reactor - Raspberry Pi
Arch Reactor - Raspberry Pi
bennuttall
 
LVL1 - Raspberry Pi
LVL1 - Raspberry Pi
bennuttall
 
Fayette Academy - Raspberry Pi
Fayette Academy - Raspberry Pi
bennuttall
 
Raspberry Pi Foundation - Intro for Creative Technologists
Raspberry Pi Foundation - Intro for Creative Technologists
bennuttall
 
Build your product around the best supported mini computer in the world - Ras...
Build your product around the best supported mini computer in the world - Ras...
bennuttall
 
Picademy - Python picamera workshop
Picademy - Python picamera workshop
bennuttall
 
Raspberry Pi - background of Raspberry Pi Foundation for Creative Technologists
Raspberry Pi - background of Raspberry Pi Foundation for Creative Technologists
bennuttall
 
Hands on Raspberry Pi - Creative Technologists
Hands on Raspberry Pi - Creative Technologists
bennuttall
 
Ben Nuttall - Creative Technologists Pecha Kucha
Ben Nuttall - Creative Technologists Pecha Kucha
bennuttall
 
Raspberry Pi for startups - Estonia
Raspberry Pi for startups - Estonia
bennuttall
 
Raspberry Pi - Estonia
Raspberry Pi - Estonia
bennuttall
 
How Raspberry Pi (an educational charity) funds itself without ratlling a tin...
How Raspberry Pi (an educational charity) funds itself without ratlling a tin...
bennuttall
 
Creative technologists
Creative technologists
bennuttall
 
Picademy 5 Picamera Intro Workshop
Picademy 5 Picamera Intro Workshop
bennuttall
 
Raspberry Pi in education - Barcamp Manchester
Raspberry Pi in education - Barcamp Manchester
bennuttall
 
Raspberry Pi in science education - IMA NW
Raspberry Pi in science education - IMA NW
bennuttall
 
Pioneering the future of computing education - PyCon Ireland
Pioneering the future of computing education - PyCon Ireland
bennuttall
 
PyPi (not that one) [Python on Pi] - PyConUK 2014
PyPi (not that one) [Python on Pi] - PyConUK 2014
bennuttall
 
Raspberry Pi - Denver Hackspaces
Raspberry Pi - Denver Hackspaces
bennuttall
 
St Louis St. John Vianney High School - Raspberry Pi
St Louis St. John Vianney High School - Raspberry Pi
bennuttall
 
Arch Reactor - Raspberry Pi
Arch Reactor - Raspberry Pi
bennuttall
 
LVL1 - Raspberry Pi
LVL1 - Raspberry Pi
bennuttall
 
Fayette Academy - Raspberry Pi
Fayette Academy - Raspberry Pi
bennuttall
 
Ad

Recently uploaded (20)

Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Coordinated Disclosure for ML - What's Different and What's the Same.pdf
Priyanka Aash
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Daily Lesson Log MATATAG ICT TEchnology 8
Daily Lesson Log MATATAG ICT TEchnology 8
LOIDAALMAZAN3
 
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
EIS-Webinar-Engineering-Retail-Infrastructure-06-16-2025.pdf
Earley Information Science
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
Database Benchmarking for Performance Masterclass: Session 2 - Data Modeling ...
ScyllaDB
 
From Manual to Auto Searching- FME in the Driver's Seat
From Manual to Auto Searching- FME in the Driver's Seat
Safe Software
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
Salesforce Summer '25 Release Frenchgathering.pptx.pdf
yosra Saidani
 
The Future of Product Management in AI ERA.pdf
The Future of Product Management in AI ERA.pdf
Alyona Owens
 
Connecting Data and Intelligence: The Role of FME in Machine Learning
Connecting Data and Intelligence: The Role of FME in Machine Learning
Safe Software
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
Ad

Python for PHP developers