brixton library technology initiative week2 intro

17
Welcome to the Brixton Library Technology Initiative (Coding for Adults) [email protected] [email protected] January 23 rd 2016 Week 2 Intro

Upload: basil-bibi

Post on 17-Feb-2017

332 views

Category:

Self Improvement


0 download

TRANSCRIPT

Page 1: Brixton Library Technology Initiative Week2 Intro

Welcome to the Brixton Library Technology Initiative

(Coding for Adults)

[email protected]

[email protected]

January 23rd 2016

Week 2 Intro

Page 2: Brixton Library Technology Initiative Week2 Intro

IT• This week you will learn about a different way of programming and

designing applications.

• It’s called event driven programming.

• Used in Windows, Linux and MacOS – anywhere there is a GUI and other types of reactive applications like trading systems that get prices over the internet. Small fast micro changes in state keep a system in sync with reality.

• Different from batch which is the scheduled processing of large amounts of data like a payroll run or a mail shot. This is a static view or snapshot of state at some particular point in time.

• How does that fit into the bigger picture of IT.

Page 3: Brixton Library Technology Initiative Week2 Intro

Roles in IT• BA – Business Analyst. User Acceptance Tester.• Data Scientist.

• Project manager, team leader, delivery managertesting manager.

• Tester.

• UI Developer.• Middle tier developer. Performance specialist.• DBA – Database Administrator.

• Dev Ops – Developer / operational support.• Support.• Comms / Infrastructural Specialist.

• Security.

Analysis

Management

Quality Assurance

Developer

‘DEV’

Operations / support

Security

Systems Architect

Page 4: Brixton Library Technology Initiative Week2 Intro

Tools of the trade

• IDE – Integrated Development Environment.• Frameworks, libraries, toolkits, Operating Systems• Standards and protocols - Xml, TCPiP, http.• Blogs, forums, manuals, tutorials.• Source code repository – git, subversion, CVS• Collaborative development.• Dependency Management - Nexus, Maven, Sbt• Development Methodologies

Continuous Integration.Agile / Scrum.Peer programming / review

We will cover these in later weeks.

Page 5: Brixton Library Technology Initiative Week2 Intro

Types and Structure Of Modern Applications

• Different magnitude of data – tera and peta bytes.• Different timescales – batch, intraday, low latency.• Different levels of consistency – transactional (all or nothing),

eventually consistent.

• Tiered or layered for flexibility and deployment.

• UI – The user interface or presentation layer.• Middle Tier – business logic / access logic.• Backend – data storage / replication.

• It is the same whether it is an internet application the size of Google or an app on your phone.

• Google, Facebook, BBC Website.

Page 6: Brixton Library Technology Initiative Week2 Intro

Tiered Architecture

Page 7: Brixton Library Technology Initiative Week2 Intro

Mobile App Tiered Architecture

Mobile App has presentation and some of middle tier on the device.

Page 8: Brixton Library Technology Initiative Week2 Intro

Typical Website

Page 9: Brixton Library Technology Initiative Week2 Intro

UI Design And Development• Not just building screens.

• Ergonomics.

• Engaging / interactive representation of data.

• ‘real time’ data streaming.

• Multi media integration.

• Event driven programming model.

Page 10: Brixton Library Technology Initiative Week2 Intro

Event Driven ProgramGraphical applications are made up from ‘widgets’, canvases and frames .

Widgets:Buttons, Checkboxes, Textboxes, Images.

Drag and drop.

Your application runs within a graphical windowing system ‘Window Manager’ which itself runs in an OS.

Windows, Linux, MacOS

Widgets come from libraries or frameworks.

OS / Window Manager Specific

Page 11: Brixton Library Technology Initiative Week2 Intro

Windowing SystemTypical elements of a windowing system

Page 12: Brixton Library Technology Initiative Week2 Intro

Typical Window Manager Architecture

Page 13: Brixton Library Technology Initiative Week2 Intro

Designing a UIHow does it all fit together ?

How do you write programs to exist in this environment?

You design the layout of your windows.

Think about business flow of attention of the user.

Place your widgets on the ‘screen’.

Page 14: Brixton Library Technology Initiative Week2 Intro

Event Driven ProgramYou attach a ‘handler’ to a widget (Button)

The OS sends mouse, keyboard and all other events to the application’s event queue.

It passes them to your handler.

They are processed in FIFOor some prioritised order.

Your code does stuff using data from the event.

Page 15: Brixton Library Technology Initiative Week2 Intro

Glade - A Typical UI Design Tool

Page 16: Brixton Library Technology Initiative Week2 Intro

Creating a GUI using PyGTK and GladeCreating a GUI using PyGTK and Glade Article by Mark Mruss, originally posted on www.learningpython.comhttp://tinyurl.com/5aw4md

Page 17: Brixton Library Technology Initiative Week2 Intro

IDE – Integrated Development Environment

• Tool for building, testing and collaboratively developing software.

• Usually language or framework specific.• More popular languages have better IDEs or

more choice.• PyCharm is a very good Python IDE.• All have same basic layout and features. • Demo PyCharm.