Python is being used all over the place. from startup to big company. Basic Python is pretty straightforward, but after that you get into the fun stuff. One intermediate topic that routinely confuses people is function decorators. The talk will explain how functions work in Python, what closures are and how they relate to decorators. Even if you aren't programming in Python, many of these ideas are applicable to other languages.
User Space and Web Development
Python is often considered a "new" scripting language but has been around for over 20 years. This talk will go over who uses Python, how Python is similar and different to other languages, core concepts of Python, basic language constructs, live code examples, web framework overview, the Python Package Index, the Southern California Python community, and will finish up with some of the more exciting and interesting contributions and efforts of the Python community. Technical content will include: REPL, Types, Mutable/Immutable, Getting help, Lists, Dictionaries, Functions, Conditionals & booleans, Whitespace, Iteration, Slicing, I/O, Classes, Exceptions, Packaging and layout
The new generation of web content management systems uses a revision control system such as git, Mercurial, or Perforce, instead of a relational database, for storage. Using revision control can open up your site to advanced workflows formerly available only to software developers. For example, you can merge ongoing layout changes or corrections with a major rework of site content. Multiple staging servers can run on separate site branches, allowing you to apply the revision control system's merge functionality to reconcile changes.
Users do not need to be aware of revision control features such as branching and merging. Simple wiki-like or WYSIWYG editors let most users have a simple workflow, while branching and merging functionality is available to those who need it. In this talk, Don will demonstrate several next-generation WCM systems, including Ikiwiki, Jekyll, Perforce Chronicle, and one or more others. We'll cover some amazing examples of workflow enabled by revision control that would have been a mess for a conventional WCM system.
While it has long been possible to simply store HTML in a revision control system, modern WCM requires application features such as commenting and integration with external applications. This talk will show how to build a workable bug tracker and a blog with comments. Programming models for working on top of a revision control system are different from conventional SQL, but also very powerful. We'll look at the simple but capable PageSpec expressions in ikiwiki, as well as the ORM-like Records of Perforce Chronicle.
Most intermediate and advanced Linux users have some experience with git or another revision control system, so this talk should be immediately applicable for anyone who wants to apply the power of revision control to building a web site. A great selection of revision-control-backed WCM systems has sprung up recently, so now is a great time to begin understanding how this new way of working on the web can help you.
Memcached has long been a simplistic temporary key/value store, used by Facebook, Twitter, Wikipedia, and many others. However in recent years a new protocol was designed, allowing much potential. Even more recently the project has picked up pace and continues to push the performance barrier. We will quickly cover new features of memcached by showing use cases for improved usage. This talk will start with a short overview of memcached, but you should come prepared with basic knowledge to get the most out of it. - Learn the benefits of the binary protocol. You've perhaps heard about it, but not enough about how awesome it is. - Find out about the 1.6 beta tree, currently used by MySQL and others. - Hear about new commands, features, and fixes for long standing issues. We push performance to 10gbps and beyond!
ROS (Robot Operating System) provides libraries and tools to help software developers create robot applications. It provides hardware abstraction, device drivers, libraries, visualizers, message-passing, package management, and more. In building ROS we use Linux both as a platform and a model for development. As a platform Linux provides a great development environment and tools in addition to well packaged libraries which are tested and integrated. As a model for development, the open source community built up around Linux is one of the most productive ways to develop.
Git is arguably the best version control system out there. But habits formed from years of using svn or CVS can trip you up when you switch to using git. Without the right training, you can end feeling like you're constantly fighting git to have it do what you need it to do. This presentation will cover: Git basics, The pitfalls of treating git like svn, Suggested workflow, and Git tricks At the end of the presentation, you'll have a good grasp of what makes git special, and how you can best take advantage of its powerful features.
One of the most rapidly growing types of high-load applications today is the "high-volume data collector". Such applications collect thousands of facts per second and store them in one or more database systems for later summarization and analysis. Examples include fault reporting systems, hardware telemetry, and security and web monitoring. The challenges of such systems are several: coping with billions of inserts, storage of terabytes of data, and the integration of disparate processes, databases, and data processing tools. The biggest challenge, though, is allowing for component upgrade, replacement, and failure while continuing to process data 24/7, because the firehose never, ever, shuts off. PostgreSQL Core Team member Josh Berkus has worked on several of these systems in the last year, including Mozilla's Socorro crash reporting system, monitoring of power generation systems, and high-volume financial transaction reporting. This talk will explore some of the lessons he has learned and open-source tools he has employed in dealing with these applications.