The perils, pitfalls and advantages of moving to IP telephony
Four years ago I needed a new four-line phone system for my home business and the choices were astonishingly limited. After finding that the only reasonable four-line cordless phone system cost over $2000,I discovered Asterisk, a Linux based open source PBX and decided to risk that path. Along the way I've learned a few things I think are worth knowing before jumping in.
A collection of simple open source communication tools can coordinate thousands of decentralized contributions.
This talk is a live version of a recurring Fedora Classroom session taught both online and in-person at classrooms as part of the first-day curriculum for POSSE (Professors' Open Source Summer Experience, a week-long cultural immersion workshop for university faculty looking to get their students involved in open source communities). The Unix design philosophy of modularity - simple parts that each do one thing well, connected by clean interfaces - applies to communication workflows as well as code ones. We'll give a live demonstration of how a collection of simple open source communication tools are used by the Fedora Project to coordinate thousands of technical and nontechnical contributions on a technically complex, rapidly moving, large-scale Linux distribution - all in a decentralized manner. Although each tool by itself is simple to learn and use, the magic comes in the interactions between these tools and the communication culture it makes possible in the communities that fluently use it. We'll go through both technology usage and cultural norms, with publicly available slides and resources for full tutorials and setup instructions for each tool available to all attendees by the start of the presentaion. We'll also explain how this ecosystem of tools can be deployed in your internal infrastructure and applied to communications within a school or industry team. Tools covered: * IRC: synchronous communication * supybot / IRC bots: synchronous context-bridging * etherpad: synchronous text editing * mediawiki: asynchronous text editing, documentation * ticket trackers: asynchronous task-tracking * blog planets: asynchronous context-providance * Classrooms: structures for synchronous community teaching
KIWI is an imaging system that allows you to create demos, appliances, and other gadgets with your own customized Linux OS.
Throw away the endless lists of steps and commands to spin a live CD, a live USB key, a hard disk image and more. There is a simpler way. Check out hte kiwi open source project. The KIWI Image System provides a complete operating system image solution for Linux supported hardware platforms as well as for virtualisation systems like Xen, Qemu or VMware With KIWI you can * Create a tuned server appliance, containing your application and just enough operating system components * Spin a live CD or DVD with just the packages and software you need * Create a ready-to-run VMware virtual appliance * Create a live USB key and carry your Linux system with you wherever you go * Build a hard disk image for preloading onto hardware • and much more ... In short, KIWI is an imaging system that allows you to create demos, appliances, and other gadgets with your own customized Linux OS. Come to this session and see how simple it is.
Perl's recent renaissance has produced amazing tools that you too can use today.
This talk explains the philosophy of language design apparent in Perl 5 along the two fundamental axes of the language: lexical scoping and pervasive value and amount contexts. It also discusses several important pragmas and language extensions to improve Perl 5's defaults, to reduce the chance of errors, to allow better abstractions, and to encourage the writing of great code.
A look into differences of Linux on mobile devices
For a long time, Linux can be divided into two camps - an embedded Linux camp and a desktop/laptop camp. The desktop/laptop camp is predominately stock x86 based hardware dominated by other operating systems and the embedded Linux camp is a mix of custom hardware and standard hardware using an array of different processors. Typically, embedded is targeted toward a specific application and desktop/laptop is general purpose computing. In recent times, Linux has been finding its way into a hybrid between desktop/laptop and embedded. This new area consists mostly of mobile devices that is different from a laptop. Android phones and tablets, e-book readers, netbooks, and the coming MeeGo devices are some examples. In this session, we'll look at what these devices have in common and how Linux has the foundation for them. Like its embedded cousin, such a device requires software/hardware to work in synergy to yeild a device that can also perform general purpose computing. To accomplish this, there are both hardware and software considerations. Opensource developers familiar with development for the desktop will need to adapt designs to meet the challenges imposed by the mobility aspect. Depending on which part of the software, these adaptations can range from simple changes that can feed back into the same peice of code all the way to having to accomodate a new port. On one end, there is the Linux kernel code base that is shared by desktop and embedded users. At the other extreme is Android which requires developers to do a new port. Often, work to port a software project to a mobile platform will have benefits to the desktop versions such as speed and energy improvements along with bug fixes. Unlike desktop/laptops, mobile devices tends to be much less homogenous. As such, often basic user interfaces will have to be tuned for each or class of device. Some pieces will be agnostic to the tuning while others will need to be tweaked. This session touches on issues that both systems developers and individual project developers should be aware of in this new mobile world. Even if developers are not immediately working on a mobile related products, consideration should be weighed to minimize obstacles to future mobile usage of the project. Often times, these same considerations are demanded by embedded users.
This talk will guide the beginner Perl user through they whys and hows of code profiling. Attendees will be introduced to some of the profiling tools available, with demonstration of speeding up a single call by 85%. Attendees will learn simple techniques
Whenever a Perl program or script is not working as quickly as we think it should, we're all tempted to start pointing at the obvious issue. It's because you're using a four line block to get that hash, you should use ?map?. *That's* your problem. The database is slow, it takes forever to run the query. You're not caching that response, you need to optimize! Ok, so that last one might actually be right. But how do we know? Even if we should optimize, what should we optimize? Where are the real slow downs, and where can we get the biggest wins? The answer to these questions comes from Profiling. At Dyn Inc. we've been writing enterprise grade web applications and software in Perl for over a decade. We think we?re pretty good at. And yet, when we started to experience slow downs on a new system as the user-base grew we spent a lot of time trying to make the code faster.? It wasn't until we took the time to run some of the suspected problematic libs through a profiler that we finally were able to gain some significant speed ups. An 85% speed up in one call alone. We became profiling fools. Maybe more illuminating than where we needed to optimize was where we did not have to. Many assumptions were dashed in the face of data. This talk will guide the beginner Perl user through they whys and hows of code profiling. Attendees will be introduced to the profiling tool Devel::NYTProf, in the context of how Dyn Inc. engineers found a significant speed up based on an inefficient sub routine in a popular CPAN module. Attendees will be shown the tool, and associated output, along with a walk-through of how to interpret the data for best optimization candidates. They will be shown simple techniques for benchmarking and profiling scripts and sub-routines.
Scripting Basics What Makes Python Special? Magic - shebang Where is Python? Comments Execution Debugging Python -d Python Interactive Shell IPython help() dir() pdb Objects and Methods Bools Strs Ints Lists Tuples Dicts What Are Iterators? Functions Also Objects Code Segregation Using a main() Function Classes Also Objects Writing a Class Instantiating a Class Modules Also Objects Importing Modules Installing Modules Some Cool Modules sys os re time socket httplib subprocess json Other Resources
Learn about Redis and how you can use it with your applications.
Explaining Redis is tough, it’s easy to say “a data structures server” or “memcached on steroids” or something more jargon filled. It’s not exactly a key value store, it’s definitely not a relational or document-oriented database. Usually as programmers we have to bend our data into a table or document to save it, but with Redis we can persist data as we conceptually visualize it. You may have heard that Redis is super fast, is being used for everything from analytics to job queues, and even on large sites such as Craigslist. Learn about the basics of Redis and we'll cover some use cases so you can see how to integrate with your applications. Tasty!
Unleash the power of your command line environment through this innovative, intuitive take on GNU Screen
UNIX and Linux sys admins have been using the GNU Screen utility for 25 years. While expert Screen users swear of its importance in their toolbox, the learning curve for new users can be quite steep. Enter 'Byobu', an innovative, intuitive approach to GNU Screen. The author of Byobu will introduce the basic flow of operation and also showcase the advanced features of Byobu and GNU Screen.
A presentation covering common attack methods and how to secure web applications when altering the code is not an option.
The ever growing pool of neglected web applications is a breeding ground for malicious activity on the web, and is a concern for web hosting providers whose customers tend to leave no time for security updates after updating their blogs, forums or CMS sites. This talk will cover some basic information on 3 common attack methods as well a 3 easy ways system administrators can address each type of threat and some other details regarding security best practices. Attack: XSS, SQL Injection and insecure upload forms. Defense: mod_security, IDS/IPS (snort/snortsam), and file system monitoring.