This document discusses techniques for managing different buildout configurations for multiple environments. It describes using environment variables and variant configuration files to determine the correct buildout configuration. It also covers isolating the buildout from system site packages using virtualenv. Finally, it shows how to bootstrap virtualenv and buildout in one step.
Webinar - Manage user, groups, packages in windows using puppetOlinData
Package installation, managing users, groups etc in Windows can be easily done using Puppet. You will learn how to manage huge windows enviornments using Puppet.
Learn new things with fun.
Get Grulping with JavaScript Task Runners (Matt Gifford)Future Insights
Taken from the London Web Meet-up, this is Matt's session: Get Grulping with JavaScript Task Runners.
In this session Matt will introduce the attendees to Grunt and Gulp, two incredibly powerful JavaScript task runners. It will help clarify what they are, why you need them and how you could use them in your projects, including how to introduce them into your development workflow and cycle.
You will learn
* What Gulp and Grunt are
* Running Tasks – how they can be used
* Plugins, extensions and enhancements
* Building them into your workflow
* The differences between the two task runners
Webinar - Manage user, groups, packages in windows using puppetOlinData
Package installation, managing users, groups etc in Windows can be easily done using Puppet. You will learn how to manage huge windows enviornments using Puppet.
Learn new things with fun.
Get Grulping with JavaScript Task Runners (Matt Gifford)Future Insights
Taken from the London Web Meet-up, this is Matt's session: Get Grulping with JavaScript Task Runners.
In this session Matt will introduce the attendees to Grunt and Gulp, two incredibly powerful JavaScript task runners. It will help clarify what they are, why you need them and how you could use them in your projects, including how to introduce them into your development workflow and cycle.
You will learn
* What Gulp and Grunt are
* Running Tasks – how they can be used
* Plugins, extensions and enhancements
* Building them into your workflow
* The differences between the two task runners
Setup MySQL is simple, it becomes more simple and easy via puppet. With puppetlabs-mysql, you can take what was once a complex to manage, streamline into far simpler. Puppetlabs-mysql module, lets you both configure and manage your MySQL installation, plus manage MySQL resources such as users, grants, and databases.
In this post, it will shows you how to easily setup MySQL server using puppet, as well as demonstrate how to quickly deploy a simple MySQL client.
PuppetDB gives users fast, robust, centralized storage for Puppet-produced data. It caches data generated by Puppet, and gives you advanced features at awesome speed with a powerful API.
Learn new things with fun.
Get Grulping with JavaScript Task RunnersMatt Gifford
Session given at Scotch on the Rocks 2014, 6th June 2014
This session will introduce the attendees to Grunt and Gulp, two incredibly powerful JavaScript task runners. It will help clarify what they are, why you need them and how you could use them in your projects, including how to introduce them into your development workflow and cycle.
This covers:
What Gulp and Grunt are
Running Tasks - how they can be used
Plugins, extensions and enhancements
Building them into your workflow
The differences between the two task runners
Using Buildout to Develop and Deploy Python ProjectsClayton Parker
Buildout gives you a way to manage, build and deploy your Python project with ease. Large Python projects such as Plone use it to distribute repeatable development environments. Buildout allows you to easily get up and running with your project versus the traditional method of installing all the dependancies and manually configuring your applications instance for each environment. The buildout community is rapidly growing with a large repository of recipes that allow you to extend it's functionality. This talk will show you the basics of using buildout and how to make it a vital part of your project's life cycle.
Webinar - Windows Application Management with PuppetOlinData
This webinar will help you to understand how to install Windows application and services, We will also look into how to manage windows services related to the application.
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsRyan Weaver
Bower, Grunt, and RequireJS are just a few tools that have been re-shaping the frontend development world, replacing cluttered script tags and server-side build solutions with a sophisticated, but sometimes complex approach to dependency management and module loading. In this talk, we'll put on our trendy frontend developer hat and find out how these tools work and how they differ from what we might be used to. Most important, we'll see how using tools like this might look in Symfony2 and how our application can be a friendly place for a frontend guy/gal.
Gianluca Esposito presenta l'utilizzo di Grunt per introdurre utili automazioni pratiche in Javascript al Codemotion Tech Meetup di Napoli del 18 febbraio 2015.
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Florent BENOIT
Développer dans le cloud en Java ? Yes we can !
Grace à Eclipse Che et Codenvy vous pouvez facilement compiler, executer ou développer votre projet Java. L'environnement d'execution utilise Docker
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015Jeongkyu Shin
현대 과학 연구에는 컴퓨터를 이용한 계산 및 분석 작업이 필수적입니다. 그러나 거대 스케일의 계산 및 분석 작업을 수행할 경우 컴퓨팅 리소스의 적절한 관리 및 확장 용이성을 확보하는 것은 많은 리소스를 필요로 합니다. 우리는 컴퓨터 계산 작업 및 분석 작업을 표준화하고 클라우드에서 처리하는 파이썬3 기반의 오픈소스 플랫폼을 설계 및 개발하고 있습니다. 또한 이 플랫폼 위에서 돌아가는 교육 / 연구 플랫폼을 함께 설계하고 있습니다.
새로운 서비스를 변화하는 환경에 맞추어 개발하는 일은 즐거운 경험인 동시에, "무엇을" "어떻게" "왜" 로 이어지는 지뢰밭을 거니는 일이기도 합니다. "무엇을" 만들지 고민하고 토론하며 결정하고, 설계하고, 토론하고, 목표가 바뀌는 과정이 일어납니다. "어떻게" 만드느냐의 지뢰들로는 python 2에서 python 3 로의 전환, 웹 프레임웍인 Django와 프론트엔드 프레임웍들과의 충돌, 아마존 elastic computing cloud와 docker를 사용한 디플로이 시나리오 등 삽질 중에 발생하는 일들이 있습니다. "왜"에 대한 질문들은 무겁지만 피해갈 수 없습니다. "왜 하필 파이썬인가?" "왜 하필 그런 서비스를 만드려 하는가" 등의 질문은, 무엇인가를 만들기로 결심한 사람들에게 주어지는 가장 중요한 질문이자 보상이기도 합니다.
저희는 지난 2개월동안 이 과정을 통해 우리가 배운 것들을 공유하고자 합니다. 구체적으로는 개발 중인 플랫폼 구조, 설계 과정의 경험 및 python 3 기반의 플랫폼 개발시 주의할 점들에 대해 이야기하고, 그와 함께 지뢰밭을 걷게 만든 '원동력' 에 대해 함께 이야기할 수 있는 자리가 되었으면 합니다.
These are the slides for the talk given during the Plone 2010 conference in Bristol, England.
Video of the talk:
http://ploneconference2010.blip.tv/file/4317697/
(Broken... use the other upload, same title) State of Plone CachingRicardo Newbery
For some reason, the tag list on this upload is not being updated. After waiting a day, I decided to just upload a second version. The file is identical, just the tags are different. Bookmark the other one. :-)
Setup MySQL is simple, it becomes more simple and easy via puppet. With puppetlabs-mysql, you can take what was once a complex to manage, streamline into far simpler. Puppetlabs-mysql module, lets you both configure and manage your MySQL installation, plus manage MySQL resources such as users, grants, and databases.
In this post, it will shows you how to easily setup MySQL server using puppet, as well as demonstrate how to quickly deploy a simple MySQL client.
PuppetDB gives users fast, robust, centralized storage for Puppet-produced data. It caches data generated by Puppet, and gives you advanced features at awesome speed with a powerful API.
Learn new things with fun.
Get Grulping with JavaScript Task RunnersMatt Gifford
Session given at Scotch on the Rocks 2014, 6th June 2014
This session will introduce the attendees to Grunt and Gulp, two incredibly powerful JavaScript task runners. It will help clarify what they are, why you need them and how you could use them in your projects, including how to introduce them into your development workflow and cycle.
This covers:
What Gulp and Grunt are
Running Tasks - how they can be used
Plugins, extensions and enhancements
Building them into your workflow
The differences between the two task runners
Using Buildout to Develop and Deploy Python ProjectsClayton Parker
Buildout gives you a way to manage, build and deploy your Python project with ease. Large Python projects such as Plone use it to distribute repeatable development environments. Buildout allows you to easily get up and running with your project versus the traditional method of installing all the dependancies and manually configuring your applications instance for each environment. The buildout community is rapidly growing with a large repository of recipes that allow you to extend it's functionality. This talk will show you the basics of using buildout and how to make it a vital part of your project's life cycle.
Webinar - Windows Application Management with PuppetOlinData
This webinar will help you to understand how to install Windows application and services, We will also look into how to manage windows services related to the application.
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsRyan Weaver
Bower, Grunt, and RequireJS are just a few tools that have been re-shaping the frontend development world, replacing cluttered script tags and server-side build solutions with a sophisticated, but sometimes complex approach to dependency management and module loading. In this talk, we'll put on our trendy frontend developer hat and find out how these tools work and how they differ from what we might be used to. Most important, we'll see how using tools like this might look in Symfony2 and how our application can be a friendly place for a frontend guy/gal.
Gianluca Esposito presenta l'utilizzo di Grunt per introdurre utili automazioni pratiche in Javascript al Codemotion Tech Meetup di Napoli del 18 febbraio 2015.
Devoxx France: Développement JAVA avec un IDE dans le Cloud: Yes we can !Florent BENOIT
Développer dans le cloud en Java ? Yes we can !
Grace à Eclipse Che et Codenvy vous pouvez facilement compiler, executer ou développer votre projet Java. L'environnement d'execution utilise Docker
연구자 및 교육자를 위한 계산 및 분석 플랫폼 설계 - PyCon KR 2015Jeongkyu Shin
현대 과학 연구에는 컴퓨터를 이용한 계산 및 분석 작업이 필수적입니다. 그러나 거대 스케일의 계산 및 분석 작업을 수행할 경우 컴퓨팅 리소스의 적절한 관리 및 확장 용이성을 확보하는 것은 많은 리소스를 필요로 합니다. 우리는 컴퓨터 계산 작업 및 분석 작업을 표준화하고 클라우드에서 처리하는 파이썬3 기반의 오픈소스 플랫폼을 설계 및 개발하고 있습니다. 또한 이 플랫폼 위에서 돌아가는 교육 / 연구 플랫폼을 함께 설계하고 있습니다.
새로운 서비스를 변화하는 환경에 맞추어 개발하는 일은 즐거운 경험인 동시에, "무엇을" "어떻게" "왜" 로 이어지는 지뢰밭을 거니는 일이기도 합니다. "무엇을" 만들지 고민하고 토론하며 결정하고, 설계하고, 토론하고, 목표가 바뀌는 과정이 일어납니다. "어떻게" 만드느냐의 지뢰들로는 python 2에서 python 3 로의 전환, 웹 프레임웍인 Django와 프론트엔드 프레임웍들과의 충돌, 아마존 elastic computing cloud와 docker를 사용한 디플로이 시나리오 등 삽질 중에 발생하는 일들이 있습니다. "왜"에 대한 질문들은 무겁지만 피해갈 수 없습니다. "왜 하필 파이썬인가?" "왜 하필 그런 서비스를 만드려 하는가" 등의 질문은, 무엇인가를 만들기로 결심한 사람들에게 주어지는 가장 중요한 질문이자 보상이기도 합니다.
저희는 지난 2개월동안 이 과정을 통해 우리가 배운 것들을 공유하고자 합니다. 구체적으로는 개발 중인 플랫폼 구조, 설계 과정의 경험 및 python 3 기반의 플랫폼 개발시 주의할 점들에 대해 이야기하고, 그와 함께 지뢰밭을 걷게 만든 '원동력' 에 대해 함께 이야기할 수 있는 자리가 되었으면 합니다.
These are the slides for the talk given during the Plone 2010 conference in Bristol, England.
Video of the talk:
http://ploneconference2010.blip.tv/file/4317697/
(Broken... use the other upload, same title) State of Plone CachingRicardo Newbery
For some reason, the tag list on this upload is not being updated. After waiting a day, I decided to just upload a second version. The file is identical, just the tags are different. Bookmark the other one. :-)
Ansible is an open source automation platform, written in Python, that can be used for configuration-management, application deployment, cloud provisioning, ad-hoc task-execution, multinode orchestration and so on. This talk is an introduction to Ansible for beginners, including tips like how to use containers to mimic multiple machines while iteratively automating some tasks or testing.
Complet vector.dep.inc# This code depends on make tool being .docxardhowp
Complet vector/.dep.inc
# This code depends on make tool being used
DEPFILES=$(wildcard $(addsuffix .d, ${OBJECTFILES} ${TESTOBJECTFILES}))
ifneq (${DEPFILES},)
include ${DEPFILES}
endif
Complet vector/build/Debug/Cygwin-Windows/main.o
Complet vector/build/Debug/Cygwin-Windows/main.o.d
build/Debug/Cygwin-Windows/main.o: main.cpp SimpleVector.h
SimpleVector.h:
Complet vector/dist/Debug/Cygwin-Windows/complet_vector.exe
Complet vector/main.cppComplet vector/main.cpp/*
* File: main.cpp
* Author: Bebo
* Created on April 8, 2019, 6:18 PM
* Purpose:Complex Vector
*/
#include<cstdlib>
#include"SimpleVector.h"
//System Libraries
#include<iostream>//Input/Output Library
usingnamespace std;
//User Libraries
//Global Constants, no Global Variables are allowed
//Math/Physics/Conversions/Higher Dimensions - i.e. PI, e, etc...
//Function Prototypes
void fillVec(SimpleVector<int>&);
void addVec(SimpleVector<int>&);
void delVec(SimpleVector<int>&);
void prntVec(SimpleVector<int>&,int);
//Execution Begins Here!
int main(int argc,char** argv){
//Declare Variables
int size;
//Read in the size
cout<<"What size vector to test?"<<endl;
cin>>size;
SimpleVector<int> sv(size);
//Initialize or input i.e. set variable values
fillVec(sv);
//Display the outputs
prntVec(sv,10);
//Add and subtract from the vector
addVec(sv);
//Display the outputs
prntVec(sv,10);
//Add and subtract from the vector
delVec(sv);
//Display the outputs
prntVec(sv,10);
//Exit stage right or left!
return0;
}
void addVec(SimpleVector<int>&sv){
int add=sv.size()*0.1;
for(int i=1;i<=add;i++){
sv.push_front(i+add-1);
sv.push_back(i-add);
}
}
void delVec(SimpleVector<int>&sv){
int del=sv.size()*0.2;
for(int i=1;i<=del;i++){
sv.pop_front();
sv.pop_back();
}
}
void fillVec(SimpleVector<int>&sv){
for(int i=0;i<sv.size();i++){
sv[i]=i%10;
}
}
void prntVec(SimpleVector<int>&sv,int n){
cout<<endl;
for(int i=0;i<sv.size();i++){
cout<<sv[i]<<" ";
if(i%n==(n-1))cout<<endl;
}
cout<<endl;
}
Complet vector/Makefile
#
# There exist several targets which are by default empty and which can be
# used for execution of your targets. These targets are usually executed
# before and after some main targets. They are:
#
# .build-pre: called before 'build' target
# .build-post: called after 'build' target
# .clean-pre: called before 'clean' target
# .clean-post: called after 'clean' target
# .clobber-pre: called before 'clobber' target
# .clobber-post: called after 'clobber' target
# .all-pre: called before 'all' target
# .all-post: called after 'all' target
# .help-pre: called before 'help' target
# .help-post: called after 'help' target
#
# Targets beginning with '.' are not intended to be called on their own.
#
# Main targets can be executed dire.
Kernel developers may have experience in writing makefiles for the linux kernel. In many cases, maybe just adding lines like
"obj-$(CONFIG_FOO) += foo.o" to a makefile. But, probably there
is not many people really know what's going on behind this cool
build system.
In this talk, Cao jin will dive into the Kbuild internals. Starting from
the basics of GNU Make, he will explain how Kbuild works, and in the end, produces vmlinux, bzImage, modules. The talk will also focus on some smart tricks used in Kbuild. At last, he will give a introduction about how Xen project is related with this config/build system.
PuppetCamp SEA 1 - Puppet Deployment at OnAppOlinData
Wai Keen Woon, CTO CDN Division OnApp Malaysia, gave an interesting overview of what the Puppet architecture at OnApp looks like. The CDN division at OnApp is a large provider of CDN services, and as such makes a very interesting candidate for a case study.
PuppetCamp SEA 1 - Puppet Deployment at OnAppWalter Heck
Wai Keen Woon, CTO CDN Division OnApp Malaysia, gave an interesting overview of what the Puppet architecture at OnApp looks like. The CDN division at OnApp is a large provider of CDN services, and as such makes a very interesting candidate for a case study.
Cfengine is a policy-based configuration management system. Its primary function is to provide automated configuration and maintenance of computers, from a policy specification.
The cfengine project was started in 1993 as a reaction to the complexity and non-portability of shell scripting for Unix configuration management, and continues today. The aim was to absorb frequently used coding paradigms into a declarative, domain-specific language that would offer self-documenting configuration.
http://www.nycbug.org/index.cgi?action=view&id=10157
Whether you call yourself a system administrator, developer, or DevOps sprint mediator, life is too short for sloppy shell scripts! In this talk, we look at how to improve them to stand the test of time. Michael will share how to create a good foundation for your scripts, so they run more reliable now and in the future. Your (future) colleagues might love you for it.
Focus areas of this presentation include error handling, security, style, and best practices. Also, it will cover (many) mistakes made by Michael over the last 20 years.
More info at http://blog.carlossanchez.eu/tag/devops
Video en español: http://youtu.be/E_OE4l3t5BA
The DevOps movement aims to improve communication between developers and operations teams to solve critical issues such as fear of change and risky deployments. But the same way that Agile development would likely fail without continuous integration tools, the DevOps principles need tools to make them real, and provide the automation required to actually be implemented. Most of the so called DevOps tools focus on the operations side, and there should be more than that, the automation must cover the full process, Dev to QA to Ops and be as automated and agile as possible. Tools in each part of the workflow have evolved in their own silos, and with the support of their own target teams. But a true DevOps mentality requires a seamless process from the start of development to the end in production deployments and maintenance, and for a process to be successful there must be tools that take the burden out of humans.
Apache Maven has arguably been the most successful tool for development, project standardization and automation introduced in the last years. On the operations side we have open source tools like Puppet or Chef that are becoming increasingly popular to automate infrastructure maintenance and server provisioning.
In this presentation we will introduce an end-to-end development-to-production process that will take advantage of Maven and Puppet, each of them at their strong points, and open source tools to automate the handover between them, automating continuous build and deployment, continuous delivery, from source code to any number of application servers managed with Puppet, running either in physical hardware or the cloud, handling new continuous integration builds and releases automatically through several stages and environments such as development, QA, and production.
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Communications Mining Series - Zero to Hero - Session 1DianaGray10
This session provides introduction to UiPath Communication Mining, importance and platform overview. You will acquire a good understand of the phases in Communication Mining as we go over the platform with you. Topics covered:
• Communication Mining Overview
• Why is it important?
• How can it help today’s business and the benefits
• Phases in Communication Mining
• Demo on Platform overview
• Q/A
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Maruthi Prithivirajan, Head of ASEAN & IN Solution Architecture, Neo4j
Get an inside look at the latest Neo4j innovations that enable relationship-driven intelligence at scale. Learn more about the newest cloud integrations and product enhancements that make Neo4j an essential choice for developers building apps with interconnected data and generative AI.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
UiPath Test Automation using UiPath Test Suite series, part 5DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 5. In this session, we will cover CI/CD with devops.
Topics covered:
CI/CD with in UiPath
End-to-end overview of CI/CD pipeline with Azure devops
Speaker:
Lyndsey Byblow, Test Suite Sales Engineer @ UiPath, Inc.
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
3. The problem
Multiple environments (dev, qa, staging, production) requiring
different buildout configurations.
$ bin/buildout -c dev.cfg
$ bin/buildout -c qa1.cfg
$ bin/buildout -c qa2.cfg
ad nauseum ...
The non-dev builds are performed by release engineers who
have better things to do than to read complicated release
notes to figure out the right buildout incantation for the
current environment.
Wednesday, November 9, 2011
4. The solution
Add environment variables into each non-dev environment
and have buildout figure out which config is the right one.
Wednesday, November 9, 2011
5. First try...
Used a buildout extension to munge the buildout config
dynamically. Similar to the way collective.recipe.python works.
Two issues:
1) The variant configs are hard to read.
2) Doesn't play well with mr.developer since "bin/develop"
turns off extensions when reading the config.
This was painful so I redid this w/o the buildout extensions...
Wednesday, November 9, 2011
6. Nothing fancy...
$ bin/buildout
-c config/variant-staging.cfg
buildout:directory=<<PATH TO BUILDOUT ROOT>>
The "buildout:directory" value fixes the problem where
buildout assumes the build context is the directory where the
main config resides.
Now, I just need a script to generate this call to buildout...
$ bin/environ
Let's make this script...
Wednesday, November 9, 2011
7. import os
import sys
import logging
import subprocess
logger = logging.getLogger('buildout.variants')
logger.setLevel(logging.INFO)
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(message)s'))
logger.propagate = False
logger.addHandler(handler)
log = logger.info
# Is config file specified on command line?
config_file = False
args_in = sys.argv[1:]
while args_in:
op = args_in.pop(0)
if op[:2] == '-c':
config_file = True
log("buildout.variants: Disabled.")
# If config file not specified, check for one matching the environment
args = ['bin/buildout']
if not config_file:
environ = os.environ.get('BUILDOUT_ENVIRON')
if environ:
log("buildout.variants: Detected environment '%s'" %environ)
config_file = 'config/variant-%s.cfg' %environ
if not os.path.exists(config_file):
log("buildout.variants: Not found '%s'" %config_file)
config_file = False
if config_file:
args.append('-c%s' %config_file)
args.append('buildout:directory=%s' %os.getcwd())
log("buildout.variants: Applying variant '%s'" %config_file)
else:
log("buildout.variants: No variants found.")
# Run buildout
args = args + sys.argv[1:]
subprocess.call(args)
Wednesday, November 9, 2011
8. # Is config file specified on command line?
config_file = False
args_in = sys.argv[1:]
while args_in:
op = args_in.pop(0)
if op[:2] == '-c':
config_file = True
log("buildout.variants: Disabled.")
Wednesday, November 9, 2011
9. # Check the environment
args = ['bin/buildout']
if not config_file:
environ = os.environ.get('BUILDOUT_ENVIRON')
if environ:
log("buildout.variants: Detected '%s'" %environ)
config_file = 'config/variant-%s.cfg' %environ
if not os.path.exists(config_file):
log("buildout.variants: Not found '%s'" %config_file)
config_file = False
if config_file:
args.append('-c%s' %config_file)
args.append('buildout:directory=%s' %os.getcwd())
log("buildout.variants: Applying variant '%s'" %config_file)
else:
log("buildout.variants: No variants found.")
Wednesday, November 9, 2011
10. # Run buildout script
args = args + sys.argv[1:]
subprocess.call(args)
Wednesday, November 9, 2011
11. release engineers = :-)
Only need to know one command to update a buildout
$ bin/environ
Environment buildouts can always be overridden.
$ bin/environ -c local.cfg
or
$ BUILDOUT_ENVIRON=staging bin/environ
Wednesday, November 9, 2011
12. Extra credit
All the documentation says to run buildout with...
$ bin/buildout
Let's not confuse the release engineers with yet another way
to run a buildout so I just created a custom buildout script
(generated by the bootstrap.py) that folds this environment
hook into bin/buildout itself.
[customizing buildout script left as an exercise for the reader]
So no more 'bin/environ'. Just 'bin/buildout' again.
Release engineers even happier :-)
Wednesday, November 9, 2011
13. An alternative
Another way to get environment-aware buildout configurations
is with mr.scripty,
http://pypi.python.org/pypi/mr.scripty
Allows defining values in a buildout part with regular python
expressions. This is possibly a more general solution although
the configs may be a little harder to read. You also can't adjust
a buildout config "extends" value with this method.
Wednesday, November 9, 2011
14. Another problem
Staging environment sucks.
Occasionally, stuff in python site packages in staging borks the
buildout. I could work on fixing the staging environment but
I've got better things to do.
So let's isolate the buildout from site packages.
Some possible solutions...
1) virtualenv
2) zc.buildout, version 1.5.x
Let's show the virtualenv method...
Wednesday, November 9, 2011
15. Release notes 2.0
Using virtualenv...
$ hg clone <path-to-repo> MyBuildout
$ virtualenv --no-site-packages MyBuildout
$ cd MyBuildout
$ bin/python bootstrap.py
$ bin/buildout
Wednesday, November 9, 2011
16. A virtualenv bootstrap
Virtualenv must be installed, or we need to create a bootstrap.
$ virtualenv.create_bootstrap_script(extra_text)
The extra_text is just some python script to hook in extra
behavior during a bootstrap.
extend_parser(optparse_parser):
Add or remove options from the parser here.
adjust_options(options, args):
Change options or args here.
after_install(options, home_dir):
After everything is installed, this function is called.
See the virtualenv docs for details.
Wednesday, November 9, 2011
17. (cont.)
>>> extra_text = """
>>> def adjust_options(options, args):
>>>
>>> # Create virtualenv in current dir
>>> args = ['.']
>>>
>>> # Isolate from system python site-packages
>>> options.no_site_packages = True
>>>
>>> # Use distribute instead of setuptools
>>> options.use_distribute = True
>>> """
>>>
>>> import virtualenv
>>> out = virtualenv.create_bootstrap_script(extra_text)
>>> open('virtualenv.py', 'w').write(out)
Wednesday, November 9, 2011
18. Release notes 3.0
Virtualenv not installed in system python...
$ hg clone <path-to-repo> MyBuildout
$ cd MyBuildout
$ python2.6 virtualenv.py
$ bin/python bootstrap.py
$ bin/buildout
Wednesday, November 9, 2011
19. But wait, there's more
Add the following to the virtualenv bootstrap script,
def after_install(options, home_dir):
if os.path.exists('bootstrap.py'):
logger.notify('Running bootstrap.py')
subprocess.call([os.path.join(home_dir, 'bin', 'python'),
'bootstrap.py'])
Now bootstrapping virtualenv also bootstraps buildout.
Wednesday, November 9, 2011
21. Conclusion
* Much simpler release process... happy release engineers.
* Much simpler release notes... happy developers
* Joy all around.
Wednesday, November 9, 2011