This is how Facebook Develops and Deploys Software. Should you care? A recently published academic paper by Prof. Dror Feitelson at Hebrew University, Eitan Frachtenberg a research scientist at Facebook, and Kent Beck (who is also doing something at Facebook), describes Facebook’s approach to developing and deploying their front-end software. While it would be more interesting to understand how back-end development is done (this is where the real heavy lifting is done scaling up to handle hundreds of millions of users), there are a few things in the paper that are worth knowing about. Continuous Deployment at Facebook is not Continuous Deployment Rather than planning work out in projects or breaking work into time boxed Sprints, Facebook developers do most of their work in independent, small changes which are released frequently. At Facebook, code can be released twice a day, but this is done mostly for bug fixes and internal code. Code Ownership Testing? Facebook doesn't have an independent test team, because, they say, they don’t need one. Security???
Requests :: HTTP for Humans Firefox Release Engineering Recently, the Mozilla Release Engineering team has made numerous advances in release automation for Firefox. We have reduced the requirements for human involvement during signing and sending notices to stakeholders, and have automated many other small manual steps, because each manual step in the process is an opportunity for human error. While what we have now isn't perfect, we're always striving to streamline and automate our release process. Our final goal is to be able to push a button and walk away; minimal human intervention will eliminate many of the headaches and do-overs we experienced with our older part-manual, part-automated release processes. In this chapter, we will explore and explain the scripts and infrastructure decisions that comprise the complete Firefox rapid release system, as of Firefox 10. This chapter describes the mechanics of how we generate release builds for Firefox. 2.1. This mindset has three important consequences: 2.2. Who Can Send the "Go to Build"? 2.3.
ftfy::Python Bad Encoding Fixer This is a module for making text less broken and more consistent. It works in Python 2.6, Python 3.2, or later. The most interesting kind of brokenness that this resolves is when someone has encoded Unicode with one standard and decoded it with a different one. This often shows up as characters that turn into nonsense sequences: The word schön might appear as schÃ¶n.An em dash (—) might appear as â€”.Text that was meant to be enclosed in quotation marks might end up instead enclosed in â€œ and â€ (and that last character probably won’t even display as anything meaningful). This happens very often to real text. Any given text string might have other irritating properties, possibly even interacting with the erroneous decoding: Of course you’re better off if all the text you take as input is decoded properly and written in standard ways. ftfy will do everything it can to fix the problem. Using ftfy The main function, fix_text, will run text through a sequence of fixes. Non-Unicode strings
7 DevOps Habits Glenn O'Donnell and Kurt Bittner, Forrester Research analysts, have published a report that describes how developers and operations see each other when working in isolation and offers seven habits of collaboration between the two. Their "The Seven Habits Of Highly Effective DevOps" are: Getting the two sides to talk to each other Taking an outside-in approach to everything Automating the build, test and release processes so they contain less human error Simplifying and standardizing the development and production environments Instilling a culture of systems engineering across both development and operations Implementing feedback and feed-forward loops Putting developers on the front line of support They go into detail for each of them: Getting the two sides to talk to each other Talking face to face is a good way to learn about each other's daily challenges and struggles. Taking an outside-in approach to everything Simplifying and standardizing the development and production environments
python::diff-cover Facebook release engineering Facebook is headquartered in Menlo Park, California at a site that used belong to Sun Microsystems. A large sign with Facebook's distinctive "like" symbol—a hand making the thumbs-up gesture—marks the entrance. When I arrived at the campus recently, a small knot of teenagers had congregated, snapping cell phone photos of one another in front of the sign. Thanks to the film The Social Network, millions of people know the crazy story of Facebook's rise from dorm room project to second largest website in the world. But few know the equally intriguing story about the engine humming beneath the social network's hood: the sophisticated technical infrastructure that delivers an interactive Web experience to hundreds of millions of users every day. I recently had a unique opportunity to visit Facebook headquarters and see that story in action. As I passed through the front entrance of the campus and onto the road that circles the buildings, I saw the name on a street sign: Hacker Way.
ZeevG/python-forcast.io 2nd International Workshop on Release Engineering, Mountain View, CA, USA, 2014 Abstract: Within the software development community the practices of continuous integration, continuous delivery, and other development process improvements have become widely adopted in recent years. It's generally accepted that these improvements to tools, process, and culture will have a positive impact on a software product's time to market, quality, feature set, etc. But how can one quantify the business value of these development process enhancements? Relevance: Release engineers are in a unique position to deliver an extraordinary amount of value to an R&D organization. Bio: Dan Tehranian is a release engineer and the "Economist in Residence" at Virtual Instruments, Inc., a dynamic and rapidly growing technology company headquartered in the heart of Silicon Valley.
Seven Steps to Start Your DevOps Initiative Analyst(s): Ronni J. Colville Step One: Define DevOps for You There are many definitions of DevOps that can be found, depending on where you look. DevOps emphasizes people (and culture) over tools and processes, and seeks to improve collaboration between operations and development teams. Guidance: The definition is only as important as getting everyone on the same page. Step Two: Pick the App While there are no specifics in the DevOps philosophy that negate applying DevOps to all types of applications, its core use case is in agile development or Web-enabled applications. Figure 1. Source: Gartner (September 2014) Guidance: For best results in introducing DevOps to your IT organization, seek out new applications that are designed for change and have a much higher tolerance of risk. Step Three: Pick the Team People are the main ingredient in a successful DevOps initiative. Guidance: Build a required skills list before selecting or assigning people to the initiative. Figure 2.