This document discusses approaches to containerizing operating systems and development environments to automate software project setup and decrease onboarding time. It analyzes different layers involved in coding (project source, libraries, OS packages, OS, device) and whether their setup is declarative. Containerizing the OS and using tools like Docker, Nix, and containerized dev environments can automate previously manual setup steps and ensure consistency across environments. Fully automated solutions include using online IDE services while bringing your own browser and device.
This document discusses continuous delivery in an open source project. It begins with an introduction of the speaker and then discusses various tools used in the continuous delivery process like Travis CI for continuous integration. It outlines the build pipeline for the project including deploying to Bintray and updating GitHub pages. It also covers code quality tools like Codecov and promoting the project on the internet through blogs, conferences and other forums.
Как быстро и легко настраивать/обновлять окружения для кросскомпиляции проектов под различные платформы(на основе docker), как быстро переключаться между ними, как используя эти кирпичики организовать CI и тестирование(на основе GitLab и Docker).
The document provides an overview of the typical workflow for a Chromium developer, including getting set up with the necessary development environment and tools, obtaining the source code, building and modifying the code, debugging, and submitting changes for review. It discusses using version control systems like Subversion and Git, the Depot Tools for managing the code checkout and uploads, building on different platforms like Linux, Mac and Windows, and common issues that may come up.
This document discusses software quality assurance tooling, focusing on pre-commit. It introduces pre-commit as a tool for running code quality checks before code is committed. Pre-commit allows configuring hooks that run checks and fixers on files matching certain patterns. Hooks can be installed from repositories and support many languages including Python. The document provides examples of pre-commit checks such as disallowing improper capitalization in code comments and files. It also discusses how to configure, run, update and install pre-commit hooks.
This document introduces Docker and containers. It discusses that Docker provides a way to easily deploy applications by using lightweight virtualization to isolate applications into containers. These containers can then be easily shared between systems. The document outlines what problem containers solve, provides an overview of how Docker works, and discusses how to author Docker images using Dockerfiles or by committing changes to containers. It also discusses the Docker community and ecosystem and Docker's long term roadmap to further simplify deployment of applications.
How to write CLI apps for macOS using swift, which packages to use, common challenges to overcome, how to structure your CLI app code.
This document provides an overview of the process for reverse engineering an Android application. It discusses various tools that can be used at each step, including apktool to decode application resources, dex2jar to convert .dex files to .jar files containing .class files, and JD-Project/jd-gui to decompile the .class files. It also discusses differences in applications built for older Android versions versus newer versions using ART, and how oat2dex tools can be used to extract DEX code from OAT files. The document demonstrates these concepts by walking through reversing a simple "Snake" application as an example. It concludes by noting there are multiple options for decompilation beyond just Eclipse.
This document describes a GitLab CI/CD workflow using GitLab, Docker, GitLab Runner, and Ansible. Developers push code to a GitLab repo, which triggers a GitLab Runner job to build a Docker image. Ansible is then used to provision servers based on the environment. The benefits of using Ansible include managing everything from one playbook to clone code, build containers, deploy applications, and more. Examples of using shell scripts versus Ansible playbooks are provided.
Eclipse tips Productive tip Two thoughts on code design Running a script standalone test case: build all isoforms & extract proteotypic peptides
This document discusses improving WordPress theme development workflow. It recommends using Docker, Node Package Manager (NPM), Gulp, Sass/Less, Git, GitHub, and Travis CI. NPM can be used to install task runners like Gulp and Babel for compiling Sass/Scss/Less. Gulp is configured using a gulpfile.js and can be used with Sass. Git is used for version control. GitHub and Travis CI can be integrated for continuous integration, running tests on pushes and pull requests. WP-CLI and Gulp can automate development tasks like creating POT files, image compression, and browser reloading on file changes. The WPGulp plugin integrates these tools into
This document discusses using Docker and microservices to build applications. It introduces Docker and how containers work at the process level in an isolated and lightweight way. It demonstrates how to build Dockerfiles for Node.js and Python applications, use Docker Hub for images, and run multi-container apps with Docker Compose. Some challenges of Docker like learning curve, build time, and file refresh are also outlined.
* What is boilerplate? * Common setup steps * Common build steps * Practices to ensure efficient development * Tools * Python demo
This document provides instructions for customizing and building the Android Open Source Project (AOSP). It discusses tools for working with AOSP, building AOSP, output images, compatibility testing, and basic customizations like adding a new device. The document is intended to guide developers through setting up their environment, building AOSP, and making simple changes to AOSP components and devices.
The document discusses optimization techniques for modern web app development. It recommends optimizing code development, operations, and production sites through techniques like image optimization, code minification, file concatenation, compression, and leveraging caching. It outlines a process of testing, measuring, optimizing, and repeating optimizations. The document also discusses preprocessing tools, automation tools, and global optimization services that can help with performance optimization.
The document provides an overview of strategies for software development including data structures, testing approaches, managing complexity, source code management, licenses, and algorithms. It discusses common data structures like arrays and lists. It outlines best practices for testing including unit testing, test-driven development, and continuous integration. It also covers techniques for managing complexity through abstraction, simplifying assumptions, and refactoring code. Source code management tools like Git and SVN are explained as well as hosting services like GitHub. Finally, it briefly introduces common open source licenses and algorithm efficiency measures.