(Level: Beginner)
Abstract: Vim makes for a great editing experience for Python projects. In this session Derek will show you:
- Vim basics and modes
- Vim plugins that are useful for - Python development
- How to organise your plugins
- How to script Vim with Python.
My presentation may be the last. So I need to speak the development history.
I have been developed Vim plugins over 10 years. I talk about my plugins development history and current development thoughts.
Releasing Puppet: Automating Packaging for Many Platforms or 'Make all the th...Puppet
"Releasing Puppet: Automating Packaging for Many Platforms or 'Make all the things'" by Moses Mendoza, Release Engineer, Puppet Labs.
Presentation Overview: A year ago, Puppet Labs had fewer than five fully packaged projects with disparate, difficult packaging workflows that took hours of manual work to accomplish identical results, with varying degrees of success. Since then, we have standardized workflow, added new products, expanded platform support, and removed manual steps (no more hand-crafted builds). This talk/workshop will describe how we have automated entire this process down to a single command from within the source code repo of most of our projects, enabling repeatable, automated packaging, and made packaging available to anyone using our projects’ source on github. This enables us to scale. Once upon a time adding new products to our release process was a major strain on the team.
Speaker Bio: Moses Mendoza grew up near Portland, Oregon. Prior to working with Puppet Labs, Moses was primarily a System Administrator, most recently for the Art Institute of Portland as a Mac OSX System Administrator. At Puppet Labs, Moses Mendoza is working to build and scale the automated pipeline and improve continuous delivery at Puppet Labs.
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013Puppet
"What Is This Continuous Delivery Thing Anyway?" by Eric Shamow, Product Owner, Continuous Delivery, Puppet Labs.
Presentation Overview: An introduction to Continuous Delivery with a focus on Puppet and Operations teams - what is Continuous Delivery, why does my company or Development team want it, and what does it do for me? We'll focus on what you can do with Puppet now to enable an environment that encourages rapid iteration, how Operations can reach out to help Development get on this path (and what Development can ask for from Ops if they aren't helping out), and what Puppet is currently working on to make Continuous Delivery available to every organization.
Speaker Bio: Eric Shamow is methodologies lead and a product owner at Puppet Labs. He has worked in IT for over 15 years in a diverse group of organizations from education to finance. Eric's passion is for culture change, and his work with Puppet has brought him to some of the most recognized companies in the industry, consulting on both technology and organizational process.
My presentation may be the last. So I need to speak the development history.
I have been developed Vim plugins over 10 years. I talk about my plugins development history and current development thoughts.
Releasing Puppet: Automating Packaging for Many Platforms or 'Make all the th...Puppet
"Releasing Puppet: Automating Packaging for Many Platforms or 'Make all the things'" by Moses Mendoza, Release Engineer, Puppet Labs.
Presentation Overview: A year ago, Puppet Labs had fewer than five fully packaged projects with disparate, difficult packaging workflows that took hours of manual work to accomplish identical results, with varying degrees of success. Since then, we have standardized workflow, added new products, expanded platform support, and removed manual steps (no more hand-crafted builds). This talk/workshop will describe how we have automated entire this process down to a single command from within the source code repo of most of our projects, enabling repeatable, automated packaging, and made packaging available to anyone using our projects’ source on github. This enables us to scale. Once upon a time adding new products to our release process was a major strain on the team.
Speaker Bio: Moses Mendoza grew up near Portland, Oregon. Prior to working with Puppet Labs, Moses was primarily a System Administrator, most recently for the Art Institute of Portland as a Mac OSX System Administrator. At Puppet Labs, Moses Mendoza is working to build and scale the automated pipeline and improve continuous delivery at Puppet Labs.
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013Puppet
"What Is This Continuous Delivery Thing Anyway?" by Eric Shamow, Product Owner, Continuous Delivery, Puppet Labs.
Presentation Overview: An introduction to Continuous Delivery with a focus on Puppet and Operations teams - what is Continuous Delivery, why does my company or Development team want it, and what does it do for me? We'll focus on what you can do with Puppet now to enable an environment that encourages rapid iteration, how Operations can reach out to help Development get on this path (and what Development can ask for from Ops if they aren't helping out), and what Puppet is currently working on to make Continuous Delivery available to every organization.
Speaker Bio: Eric Shamow is methodologies lead and a product owner at Puppet Labs. He has worked in IT for over 15 years in a diverse group of organizations from education to finance. Eric's passion is for culture change, and his work with Puppet has brought him to some of the most recognized companies in the industry, consulting on both technology and organizational process.
Many developers are forced to develop on small screens: Travelling, Coworking spaces, changing project locations, you name it. But what can you do to improve your workflow if you are bound to a small screen? This presentation tries to give some answers and suggestions.
Passing the Joel Test in the PHP World (phpbnl10)Lorna Mitchell
Talk given at the PHP Benelux conference in Antwerp, examining the points in the Joel Test and looking at how these suggested best practices apply to web development today
Have you ever spent most of a day getting your editor set up "just right"? Have you justified the time spent on customizing your configuration in terms of the overall productivity gains that are going to result once you remember what key binding you put that new tweak on? Or maybe, whenever you see a tweak described for that _other_ editor, you can't rest until you've duplicated and maybe even expanded upon it for the clearly superior editor you use? If the above hit too close to home -- particularly if you've ever written a program specifically to allow you to more easily deploy your editor configuration on a new machine -- this talk is for you.
We're going to talk about editor tweaks that make writing, testing, running, and otherwise working with Perl faster and easier, so you can focus on the stuff that really matters: beer, go karts, and cool new editor color themes...
A compare and contrast of Continuous Integration testing tools that can be used for Perl projects and where they all fall short. Also looking at what an ideal solution could look like.
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...Yandex
Lightweight virtualization", also called "OS-level virtualization", is not new. On Linux it evolved from VServer to OpenVZ, and, more recently, to Linux Containers (LXC). It is not Linux-specific; on FreeBSD it's called "Jails", while on Solaris it’s "Zones". Some of those have been available for a decade and are widely used to provide VPS (Virtual Private Servers), cheaper alternatives to virtual machines or physical servers. But containers have other purposes and are increasingly popular as the core components of public and private Platform-as-a-Service (PAAS), among others.
Just like a virtual machine, a Linux Container can run (almost) anywhere. But containers have many advantages over VMs: they are lightweight and easier to manage. After operating a large-scale PAAS for a few years, dotCloud realized that with those advantages, containers could become the perfect format for software delivery, since that is how dotCloud delivers from their build system to their hosts. To make it happen everywhere, dotCloud open-sourced Docker, the next generation of the containers engine powering its PAAS. Docker has been extremely successful so far, being adopted by many projects in various fields: PAAS, of course, but also continuous integration, testing, and more.
deoplete: The dark powered auto completion plugin for neovimShougo
Unfortunately neovim does not support neocomplete but I need an auto completion plugin. So, I have developed deoplete. Deoplete is an auto completion framework for neovim. I will describe the features and its future works.
Python Ireland June Meetup @ Science Gallery.
For many programs, it's important to have some strategy for doing I/O in an async manner. This talk will attempt to provide a quick overview of the basic principles of the topic, some examples of existing support in Python frameworks and an introduction to recent work by Guido to bring async I/O support into Python core.
Many developers are forced to develop on small screens: Travelling, Coworking spaces, changing project locations, you name it. But what can you do to improve your workflow if you are bound to a small screen? This presentation tries to give some answers and suggestions.
Passing the Joel Test in the PHP World (phpbnl10)Lorna Mitchell
Talk given at the PHP Benelux conference in Antwerp, examining the points in the Joel Test and looking at how these suggested best practices apply to web development today
Have you ever spent most of a day getting your editor set up "just right"? Have you justified the time spent on customizing your configuration in terms of the overall productivity gains that are going to result once you remember what key binding you put that new tweak on? Or maybe, whenever you see a tweak described for that _other_ editor, you can't rest until you've duplicated and maybe even expanded upon it for the clearly superior editor you use? If the above hit too close to home -- particularly if you've ever written a program specifically to allow you to more easily deploy your editor configuration on a new machine -- this talk is for you.
We're going to talk about editor tweaks that make writing, testing, running, and otherwise working with Perl faster and easier, so you can focus on the stuff that really matters: beer, go karts, and cool new editor color themes...
A compare and contrast of Continuous Integration testing tools that can be used for Perl projects and where they all fall short. Also looking at what an ideal solution could look like.
"Lightweight Virtualization with Linux Containers and Docker". Jerome Petazzo...Yandex
Lightweight virtualization", also called "OS-level virtualization", is not new. On Linux it evolved from VServer to OpenVZ, and, more recently, to Linux Containers (LXC). It is not Linux-specific; on FreeBSD it's called "Jails", while on Solaris it’s "Zones". Some of those have been available for a decade and are widely used to provide VPS (Virtual Private Servers), cheaper alternatives to virtual machines or physical servers. But containers have other purposes and are increasingly popular as the core components of public and private Platform-as-a-Service (PAAS), among others.
Just like a virtual machine, a Linux Container can run (almost) anywhere. But containers have many advantages over VMs: they are lightweight and easier to manage. After operating a large-scale PAAS for a few years, dotCloud realized that with those advantages, containers could become the perfect format for software delivery, since that is how dotCloud delivers from their build system to their hosts. To make it happen everywhere, dotCloud open-sourced Docker, the next generation of the containers engine powering its PAAS. Docker has been extremely successful so far, being adopted by many projects in various fields: PAAS, of course, but also continuous integration, testing, and more.
deoplete: The dark powered auto completion plugin for neovimShougo
Unfortunately neovim does not support neocomplete but I need an auto completion plugin. So, I have developed deoplete. Deoplete is an auto completion framework for neovim. I will describe the features and its future works.
Python Ireland June Meetup @ Science Gallery.
For many programs, it's important to have some strategy for doing I/O in an async manner. This talk will attempt to provide a quick overview of the basic principles of the topic, some examples of existing support in Python frameworks and an introduction to recent work by Guido to bring async I/O support into Python core.
Presentation about how Python Ireland started, who we are, how we got to where we are today, the events we hold including PyCon Ireland and how we integrate with other user groups in Ireland.
Object Orientation vs. Functional Programming in PythonPython Ireland
Python is a multi-paradigm language meaning it supports different programming styles, Object Orientation and Functional Programming being the major ones. However choice is not always a good thing, if you are interested in writing modular programs that are easy to maintain and promote code reuse what should you do? This talk discusses modularity in this context looking at Python's support for both paradigms, comparing and contrasting them. We then look at Python techniques and tools that bridge the perceived impedance mismatch between Object Orientation and Functional Programming.
At PyCon Ireland 2010, Paul described his experience of working with Python 3 in creating O'Reilly's Head First Programming and Head First Python (both of which target Python 3). As a big fan of Python 3, Paul suggested that all Python 2 programmers needed to at least try Python 3 as soon as was practical, if not embrace it for all "new" work. In this talk, Paul provides an update on the current status of Python 3 and discusses the community's adoption (or lack of) the latest version of the Python programming language, talking about what has changed in the year and a bit since last year, as well as describing his own experience of working with Python on recent consultancy projects.
Google App Engine in 40 minutes (the absolute essentials)Python Ireland
This talk covers just the stuff needed to get you up-to-speed with Google App Engine and its associated technologies (based on the Python run-time, of course). In addition to a bit of talking, Paul will also demo a working webapp built and deployed on the App Engine cloud... all in 40 minutes.
Introduction to Erlang for Python ProgrammersPython Ireland
What is Erlang? Why it is important? Why should Python programmers learn Erlang? How is Erlang different? How is Erlang the same? These and other questions will be answered during this talk, as well as this one: Should Erlang be the new programming language you learn this year?
Web-service based Mobile Geospatial Application Development using PythonPython Ireland
As the development of mobile technology keeps marching forward, a noticeable trend of integrating location- and orientation-aware sensors (i.e., GPS receiver, digital compass, and accelerometer) into today’s smartphones has significantly promoted the development of mobile Location Based Services (LBS). At the same time, geospatial information is increasingly recognized as the common denominator in both today’s “Web 2.0” peer-to-peer social network era and tomorrow’s “Web 4.0”. As a result, embracing the growing rich spatial resources and adopting them for the mobile geospatial application development is essential. However, considering the large amount spatial data for processing and the physical limitation of today’s mobile devices in relation to battery power, CPU speed and data storage etc., it is nearly impossible to accomplish all computation intensive tasks efficiently on the device itself. Therefore, client-server architecture is usually a preferred option where the mobile devices act as clients sending requests and receiving responses whilst the calculation modules are wrapped and delivered in the form of web services. In this case, on the server side, the geospatial applications can take advantages of the capability of a variety of spatial databases back-ends, including spatial indexing, searching and retrieving. There are now a variety of Python modules, libraries and open sources etc. available for fast constructing and deploying web services for mobile geospatial applications. This talk attempts to give an introduction on using Python for building RESTful web-services for mobile geospatial application development, including back-end spatial database access and spatial information retrieval.
Utopia Kingdoms scaling case. From 4 users to 50.000+Python Ireland
Describing the real life case of Utopia Kingdoms, an online game. The game had initially problems scaling on production environment and had to be greatly refactored to support large number of players. This includes use of caching, profiling, queuing system and the migration of database from Amazon SimpleDB to MongoDB.
The Larch - a visual interactive programming environmentPython Ireland
The Larch Environment is a visual interactive programming environment for Jython/Python, that makes programming more visual. Its is designed for the creation of visual interactive programs, and programs that operate as interactive technical literature. To this end, protocols for presenting objects visually have been devised. An active document based programming environment builds on the edit-run-debug cycle of a standard console, allowing a programmer to experiment with ideas, and develop visual programs at the same time. Additionally, a way of embellishing source code with visual content is presented.
http://sites.google.com/site/larchenv
Python vs JLizard.... a python logging experiencePython Ireland
The presentation will give a general overview of logging and why it is becoming more important for cloud based systems. In particular it will focus on limitations in PAAS logging infrastructures and will outline how more powerful logging can be achieved on python platforms such as app engine giving details on python/app engine plug in libraries that have been developed. The talk will also outline how JLizard has made wide use of python as part of its log management as a service technology (Logentries.com).
Python Ireland May 2011 - What is Pyramid and where is it with respect to Dja...Python Ireland
(Level: Intermediate) Tutorial introduction to Pyramid, showing how to install and create a simple view and a database mapped view. Will focus on the differences with respect to Django.
Python Ireland Nov 2010 Talk: Unit TestingPython Ireland
Unit testing for those seeking instant gratification - Maciej Bliziński
Abstract: Unit testing has long term benefits. However, depending on how you use it, it can have short term benefits too. This is an introductory talk, aimed at both beginner and experienced Python programmers who would like to get started testing their code.
Python Ireland Nov 2010 - RESTing with DjangoPython Ireland
RESTing with Django - Fernando Ciciliati
Abstract: Django at the heart of enterprise systems: Building RESTful web services and integration components with Django.
Level: Medium, but beginner-friendly: A very quick introduction to Django and/or to REST will be offered if required by the attendees.
Python Ireland Feb '11 Talks: Introduction to PythonPython Ireland
"Introduction to Python" by Sean O'Donnell
Level: Beginner
Abstract:
The content is an introduction to python, by means of comparing it to C, Java and Ruby.
Video:
http://vimeo.com/groups/pythonireland/videos/20239008
Thanks to all who came along. Approx. 30 people turned up.
Thanks to Science Gallery for being our host.
sciencegallery.com/
Python Ireland Dec Talks - Windows Azure -- The Nuts and BoltsPython Ireland
Speaker: Stephen Fitzmaurice
Abstract:
With the Windows Azure platform, we get a highly scalable environment, pay only for the resources we need, and relieve subscribers of the responsibilities required for supporting dynamic software and hardware infrastructure.
This is an introductory talk to…
- Explain the foundation constituents of the Windows Azure Platform and the underlying infrastructure.
- Demonstrate the Cloud developer experience in Windows Azure.
- Showcase one of the early Windows Azure adopters revealing the reasons behind their choice, the flexibility that they are now empowered with and the success it has brought to their business.
Questions? You can contact Stephen at stephen.fitzmaurice@microsoft.com
Sept 2010 Talks @ The Science Gallery
Speaker: Alan Kennedy
(Level: Intermediate/Advanced)
Abstract:
Cloud computing is a growing force in business, with the principal benefit being reduction of the costs of providing business functionality to users. Dynamic languages are very popular on cloud computing platforms, offering rapid development and deployment cycles, which further reduce costs and decrease time to market. Python is one of the most popular dynamic languages for cloud computing, as evidenced by the support it garners from large cloud computing players such as Google and Microsoft. The purpose of this talk is to give you an overview what cloud computing options exist if you want to use cpython, jython or ironpython for your next cloud computing project, be it on Google AppEngine, Microsoft Azure, or other platforms.
More info: http://www.python.ie/meetup/2010/sept_2010_talks__the_science_gallery/
2. Overview
● Intro
● Why use Vim?
● Basic Vim concepts
● Vim is a Game
● General Plugins
● Python Plugins
● How to Organise your plugins
● Resources
3. Why Vim?
● It's fast.
● It's portable. Linux, Windows, Mac, DOS, VMS
● It's everywhere – even on production systems
● It's very configurable
● It's very extensible
4. Basic Concepts #1 - Modes
● Vim is modal
● It has 5 modes
● Normal
● Insert
● Ex
● Visual
● Select
● You'll find yourself pressing <ESC> a lot :-)
5. Basic Concepts #2 - Commands
● Commands follow a pattern:
Number + Command + Destination
● E.g.
● 5dw – delete 5 words
● 6w – move forward 6 words
● 7x – delete 7 characters
6. Vim is a Game
(that you play on text)
● When you play a PC game (e.g. Minecraft) you
forget that you need to press specific keys to do
something – WASD. After a while, those actions
are programmed into your finger muscles.
● You “do”. You don't “think”.
● You can practice Vim movements this with Vim
Tetris
● Movement keys are always on the right hand.
10. Organising Plugins
● Old School – all plugins in same folder – a
mess!
● .vim
-> doc
-> ftplugin
-> plugin
● Use Pathogen
● Use Vundle
11. Scripting Vim
● Vim has an in-built scripting language
● VimScript or VimL
● It's ugly.
● Use Python instead!
12. Example*
function! GetHTML()
python << EOF
import vim, BeautifulSoup, urllib
handle = urllib.urlopen(vim.current.line)
soup =
BeautifulSoup.BeautifulSoup(handle.read())
vim.current.buffer[:] =
soup.prettify().split('n')
EOF
endfunction
* I took this from:
http://www.builderau.com.au/program/python/soa/Extending-Vim-with-Python/0,2000064084,339283181,00.htm
13. Vim is Charityware
● Donations to Vim go to a charity that helps
orphans in Uganda.
● If you do like Vim and you feel it is making you
more productive, then please donate to this
charity.
● The details are on the Vim website.
14. Vim Resources
● Vim - www.vim.org
● VimCasts - www.vimcasts.org
● Vim Quick Reference Card -
● http://tnerual.eriogerg.free.fr/vim.html
● Jolt Online Gaming version!!!
● Books
● Hacking Vim - Packt Publishing
● Byte of Vim - http://www.swaroopch.com/notes/Vim
● Older online book -
ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf
17. What to do if Vim isn't for you
● Notwithstanding the last slide...
● Try Emacs
● Seriously, it's a good editor.
● Org-mode is a great way to get into Emacs
gently
● Use the Emacs Starter Kit