This document summarizes the Unix philosophy which emphasizes:
- Making programs do one specific task well and work as filters
- Favoring portability over efficiency
- Using small, modular programs that can be combined in various ways
Circuit breakers for Java: Failsafe, Javaslang-Circuitbreaker, Hystrix and Ve...Micha Kops
A demonstration of different implementations of the circuit-breaker pattern in Java to implement more resilient applications.
The following libraries are used: Failsafe, Javaslang-Circuitbreaker, Netflix Hystrix and Vert.x.
More details can be found the following blog article of mine:
http://www.hascode.com/2017/02/resilient-architecture-circuit-breakers-for-java-hystrix-vert-x-javaslang-and-failsafe-examples/
The presentation talks about Linux principles and philosophy. The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to developing small yet capable software based on the experience of leading developers of the Unix operating system.
Eduards Sizovs - Micro Service Architecture DevConFu
Eduards will talk about micro service architecture - approach to designing software when complex app is broken into tiny, cohesive services which are apps themselves. Anatomy of micro services will be covered with practical implementation advices in Java.
Vert.X: Microservices Were Never So Easy (Clement Escoffier)Red Hat Developers
Vert.x 3 is a framework to create reactive applications on the Java Virtual Machine. Vert.x 3 takes the JVM to new levels of performance yet having a small API. It lets you build scalable microservice-based applications transparently distributed and packaged as a single jar file. Due to this simplicity, deploying and managing Vert.x applications on OpenShift 3 is a breeze, upload your jar and Vert.x internal cluster manager will connect all your pods in single distributed network. Several examples are shown during the talk and demonstrate how Vert.x can simplify DevOps daily job when working together with OpenShift 3.
Slides de apresentação realizada no dia 27/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Dificuldades técnicas na implementação e execução de testes automatizados
- Mocking Test
- Exemplos no Visual Studio 2015
Writing Well-behaved Unix Utilities
A talk given at the London Ruby Users Group in October 2014. It's about what makes a good Unix utility, and how we can use Ruby to write our own.
It covers things like working as part of text processing pipelines, reading from ARGF, handling command-line arguments, and lots more.
Microservice architectures have generated quite a bit of hype in recent months, and practitioners across our industry have vigorously debated the definition, purpose, and effectiveness of these architectures.
In this session, Matt Stine will cut through the Microservices hype and examine some very practical considerations:
• Not an End in Themselves: Microservices are really all about helping us achieve continuous delivery
• Systems over Services: Microservices are less about the services themselves and more about the systems we can assemble using them. Boilerplate patterns for configuration, integration, and fault tolerance are keys.
• Operationalized Architecture: Microservices aren’t a free lunch. You have to pay for them with strong DevOps sauce.
• It’s About the Data: Bounded contexts with API’s are great until you need to ask really big questions. How do we effectively wrangle all of the data at once?
Along the way, we’ll see how open source technology efforts such as Cloud Foundry, Spring Cloud, Netflix OSS, Spring XD, and Hadoop can help us with many of these considerations.
Mockito vs JMockit, battle of the mocking frameworksEndranNL
(Original keynote slides can be found at https://github.com/Endran/PublicSlides)
For years the industry standard of mocking on the JVM has been Mockito. Mockito is a wonderful library that really speeds up your testing by allowing you to create mocks in a very simple way. That being said, it does have its drawbacks, for which different strategies need to be deployed to keep your code testable. The main drawbacks are statics and finals. Final classes cannot be mocked, nor final methods, and also static methods are a no-go. To work with these type of things we need to wrap it, and copy the signature in a non final, non static way.
I have a great adversity against statics, I've devoted an entire post about it, in short; It hides dependencies and brings so little convenience at the costs of its drawbacks. Finals on the other hand have purpose, it helps messaging the goal of a class or method. Java is one of the few languages where classes and methods are open/virtual by default and have to be closed/final by explicit action. In (for example) Kotlin, everything is final by default, if you do not want something to be final, you should use the open keyword.
No matter if you follow the principle of making things final, static or not, if you are using Mockito the decision has been made. This mocking framework demands that everything is non-final, demands that everything is designed to be extended, since it might need to be mocked away. We should be able to improve upon this, and by the name of this post, you should be able to guess which framework will save the day. JMockit will help us with our impediments, and will give some other nifty benefits as well!
(ARC317) Maintaining a Resilient Front Door at Massive Scale | AWS re:Invent ...Amazon Web Services
The Netflix service supports more than 50 million subscribers in over 40 countries around the world. These subscribers use more than 1,000 different device types to connect to Netflix, resulting in massive amounts of traffic to the service. In our distributed environment, the gateway service that receives this customer traffic needs to be able to scale in a variety of ways while simultaneously protecting our subscribers from failures elsewhere in the architecture. This talk will detail how the Netflix front door operates, leveraging systems like Hystrix, Zuul, and Scryer to maximize the AWS infrastructure and to create a great streaming experience.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
Circuit breakers for Java: Failsafe, Javaslang-Circuitbreaker, Hystrix and Ve...Micha Kops
A demonstration of different implementations of the circuit-breaker pattern in Java to implement more resilient applications.
The following libraries are used: Failsafe, Javaslang-Circuitbreaker, Netflix Hystrix and Vert.x.
More details can be found the following blog article of mine:
http://www.hascode.com/2017/02/resilient-architecture-circuit-breakers-for-java-hystrix-vert-x-javaslang-and-failsafe-examples/
The presentation talks about Linux principles and philosophy. The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to developing small yet capable software based on the experience of leading developers of the Unix operating system.
Eduards Sizovs - Micro Service Architecture DevConFu
Eduards will talk about micro service architecture - approach to designing software when complex app is broken into tiny, cohesive services which are apps themselves. Anatomy of micro services will be covered with practical implementation advices in Java.
Vert.X: Microservices Were Never So Easy (Clement Escoffier)Red Hat Developers
Vert.x 3 is a framework to create reactive applications on the Java Virtual Machine. Vert.x 3 takes the JVM to new levels of performance yet having a small API. It lets you build scalable microservice-based applications transparently distributed and packaged as a single jar file. Due to this simplicity, deploying and managing Vert.x applications on OpenShift 3 is a breeze, upload your jar and Vert.x internal cluster manager will connect all your pods in single distributed network. Several examples are shown during the talk and demonstrate how Vert.x can simplify DevOps daily job when working together with OpenShift 3.
Slides de apresentação realizada no dia 27/10/2016 durante o evento QA Ninja Conf 2016.
Tópicos abordados:
- Dificuldades técnicas na implementação e execução de testes automatizados
- Mocking Test
- Exemplos no Visual Studio 2015
Writing Well-behaved Unix Utilities
A talk given at the London Ruby Users Group in October 2014. It's about what makes a good Unix utility, and how we can use Ruby to write our own.
It covers things like working as part of text processing pipelines, reading from ARGF, handling command-line arguments, and lots more.
Microservice architectures have generated quite a bit of hype in recent months, and practitioners across our industry have vigorously debated the definition, purpose, and effectiveness of these architectures.
In this session, Matt Stine will cut through the Microservices hype and examine some very practical considerations:
• Not an End in Themselves: Microservices are really all about helping us achieve continuous delivery
• Systems over Services: Microservices are less about the services themselves and more about the systems we can assemble using them. Boilerplate patterns for configuration, integration, and fault tolerance are keys.
• Operationalized Architecture: Microservices aren’t a free lunch. You have to pay for them with strong DevOps sauce.
• It’s About the Data: Bounded contexts with API’s are great until you need to ask really big questions. How do we effectively wrangle all of the data at once?
Along the way, we’ll see how open source technology efforts such as Cloud Foundry, Spring Cloud, Netflix OSS, Spring XD, and Hadoop can help us with many of these considerations.
Mockito vs JMockit, battle of the mocking frameworksEndranNL
(Original keynote slides can be found at https://github.com/Endran/PublicSlides)
For years the industry standard of mocking on the JVM has been Mockito. Mockito is a wonderful library that really speeds up your testing by allowing you to create mocks in a very simple way. That being said, it does have its drawbacks, for which different strategies need to be deployed to keep your code testable. The main drawbacks are statics and finals. Final classes cannot be mocked, nor final methods, and also static methods are a no-go. To work with these type of things we need to wrap it, and copy the signature in a non final, non static way.
I have a great adversity against statics, I've devoted an entire post about it, in short; It hides dependencies and brings so little convenience at the costs of its drawbacks. Finals on the other hand have purpose, it helps messaging the goal of a class or method. Java is one of the few languages where classes and methods are open/virtual by default and have to be closed/final by explicit action. In (for example) Kotlin, everything is final by default, if you do not want something to be final, you should use the open keyword.
No matter if you follow the principle of making things final, static or not, if you are using Mockito the decision has been made. This mocking framework demands that everything is non-final, demands that everything is designed to be extended, since it might need to be mocked away. We should be able to improve upon this, and by the name of this post, you should be able to guess which framework will save the day. JMockit will help us with our impediments, and will give some other nifty benefits as well!
(ARC317) Maintaining a Resilient Front Door at Massive Scale | AWS re:Invent ...Amazon Web Services
The Netflix service supports more than 50 million subscribers in over 40 countries around the world. These subscribers use more than 1,000 different device types to connect to Netflix, resulting in massive amounts of traffic to the service. In our distributed environment, the gateway service that receives this customer traffic needs to be able to scale in a variety of ways while simultaneously protecting our subscribers from failures elsewhere in the architecture. This talk will detail how the Netflix front door operates, leveraging systems like Hystrix, Zuul, and Scryer to maximize the AWS infrastructure and to create a great streaming experience.
SCS 4120 - Software Engineering IV
BACHELOR OF SCIENCE HONOURS IN COMPUTER SCIENCE
BACHELOR OF SCIENCE HONOURS IN SOFTWARE ENGINEERING
All in One Place Lecture Notes
Distribution Among Friends Only
All copyrights belong to their respective owners
Viraj Brian Wijesuriya
vbw@ucsc.cmb.ac.lk
IBM Index 2018 Conference Workshop: Modernizing Traditional Java App's with D...Eric Smalling
Slides from my 2.5 hour hands-on workshop covering Docker basics, the Docker MTA program and how it applies to legacy Java applications and some tips on running those apps in containers in production.
My talk at FullStackFest, 4.9.2017. Become more familiar with managing infrastructure using Terraform, Packer and deployment pipeline. Code repository - https://github.com/antonbabenko/terraform-deployment-pipeline-talk
Drupal Camp Brighton 2015: Ansible Drupal Medicine showGeorge Boobyer
In this session we are going to look at the latest craze amongst developers with some Sysadmin responsibilities - Ansible.
As with all trending technologies you can be led to believe that it is the new wonder drug (multi purpose in a jar - if you ain't ill it will fix your car). But in this case we will look at some of the key ways that automated provisioning, configuration and state management can actually cure some of the critical headaches you face securing and managing production infrastructure and Drupal sites - (as with all such wonder drugs seek the advice of your GP before radically changing your lifestyle). Also as a warning once you start delving deeper into the world of web security you'll need a pretty thick skin - denial was a comfortable place to be. We won’t be covering Ansible for use in local development with systems such as VLAD - that hopefully will be the subject of other presentations.
Critically we are going to look at Ansible in a Drupal context with a focus on security and hopefully encourage participation in the development of tighter integration with Drupal site deployment and management as well as security defence measures.
By the end of the session we hope to have been convinced that with the adoption of Ansible you will feel more secure, more efficient and more relaxed about managing your infrastructure and sites and also to show how the principles of collaboration common within the Drupal community can transpose with great effect to the Ansible community . Code examples will be provided to support the topics covered.
Get hands-on with security features and best practices to protect your containerized services. Learn to push and verify signed images with Docker Content Trust, and collaborate with delegation roles. Intermediate to advanced level Docker experience recommended, participants will be building and pushing with Docker during the workshop.
Led By Docker Security Experts:
Riyaz Faizullabhoy
David Lawrence
Viktor Stanchev
Experience Level: Intermediate to advanced level Docker experience recommended
"I have a framework idea" - Repeat less, share more.Fabio Milano
macOS, tvOS, iOS, watchOS, Extensions. In such a dense ecosystem, creating a framework enables us to easily share code between components of our universal applications and with the open-source community.
In this talk, we will learn about processes and tools that help create, 'ship' and maintain a multi platform framework. Throughout all steps, we will see how to use CocoaPods and Carthage, integrate CI tools to keep our code robust, see best practices for authoring frameworks. We'll show how frameworks could change our way of designing an application infrastructure and how you can contribute to the open-source community by turning your idea into a framework.
SPACK: A Package Manager for Supercomputers, Linux, and MacOSinside-BigData.com
“HPC software is becoming increasingly complex. The space of possible build configurations is combinatorial, and existing package management tools do not handle these complexities well. Because of this, most HPC software is built by hand. This talk introduces “Spack“, an open-source tool for scientific package management which helps developers and cluster administrators avoid having to waste countless hours porting and rebuilding software. Spack uses concise package recipes written in Python to automate builds with arbitrary combinations of compilers, MPI versions, and dependency libraries. With Spack, users can rapidly install software without knowing how to build it; developers can efficiently manage automatic builds of tens or hundreds of dependency libraries; and HPC centers staff can deploy many versions of software for thousands of users.”
Watch the video: http://insidehpc.com/2017/04/spack-package-manager-supercomputers-linux-macos/
Learn more: https://spack.io/
and
http://www.hpcadvisorycouncil.com/events/2017/swiss-workshop/agenda.php
Sign up for our insideHPC Newsletter: http://insidehpc.com/newsletter
Be a better developer with Docker (revision 3)Nicola Paolucci
Be a better developer with Docker: tricks of the trade (revision 3)
The talk will teach developers how to approach their development environment setups using Docker, covering awesome tricks to make the experience smooth, fast, powerful and repeatable. The talk is logically divided in five parts:
- What is Docker
- Why Docker makes developers happier
- Workflows and techniques
- Tips and tricks
- Future developments
TYPO3 Extension development using new Extbase frameworkChristian Trabold
My presentation for the TYPO3 community day in Tokyo, Japan.
The code is available at https://github.com/ctrabold/t3ski-workshop.
Due to copyright issues I had to remove all pictures of Miffy.
A quickfire rundown of concise tips designed to make your daily life with Docker better! There will be something for Docker users of all experience levels.
Scaling Servers and Storage for Film Assets Perforce
In the past two years, Pixar has grown from a handful of Perforce servers to over 90 servers. In this session, members of the Pixar team will discuss how they met the challenges in scaling out and being prudent about storage usage, from automating server creation to de-duplicating the repositories.
Docker and Cloud - Enables for DevOps - by ACA-ITStijn Wijndaele
DevOps is gericht op het tot stand brengen van een cultuur binnen organisaties waardoor het ontwikkelen, valideren en releasen van software sneller, meer betrouwbaar en frequenter kan verlopen. Om dit te realiseren staan het automatiseren van het 'software delivery process' en de bijhorende infrastructurele veranderingen centraal. Door de opkomst van 'Microservice Architecture' neemt het belang hiervan nog verder toe.
Sprekers: Stijn Van den Enden & Stijn Wijndaele (ACA IT-Solutions) DevOps is gericht op het tot stand brengen van een cultuur binnen organisaties waardoor het ontwikkelen, valideren en releasen van software sneller, meer betrouwbaar en frequenter kan verlopen. Om dit te realiseren staan het automatiseren van het 'software delivery process' en de bijhorende infrastructurele veranderingen centraal. Door de opkomst van 'Microservice Architecture' neemt het belang hiervan nog verder toe.
In deze avondconferentie werd, na een korte toelichting over DevOps, nagegaan wat Docker en de Cloud kunnen betekenen voor uw business, en hoe zij als enablers kunnen dienen voor het tot stand brengen van een DevOps-cultuur. Het container-landschap waarvan tools zoals Kubernetes, Docker Swarm, ...een belangrijk onderdeel vormen, wordt toegelicht en er wordt ingegaan op de wijze waarop deze tools aangewend kunnen worden om 'development' en 'operations' efficiënt te laten samenwerken.
2. •Small is beautiful.
•Make each program do one thing well.
•Build a prototype as soon as possible.
•Choose portability over efficiency.
•Store numerical data in flat ASCII files.
•Use software leverage to your advantage.
•Use shells scripts to increase leverage and
portability.
•Avoid captive user interfaces.
•Make every program a filter.
3. Small is beautiful.
Small things can be combined in many ways to create useful large things.
Leader/00-23 *****nam##22*****#a#4500
001 <control number>
003 <control number identifier>
005 19920331092212.7 007/00-01 ta
008/00-39 820305s1991####nyu###########001#0#eng##
020 ##$a0845348116 :$c$29.95 (£19.50 U.K.)
020 ##$a0845348205 (pbk.)
040 ##$a[organization code]$c[organization code]
050 14$aPN1992.8.S4$bT47 1991
082 04$a791.45/75/0973$219
100 1#$aTerrace, Vincent,$d1948-
245 10$aFifty years of television :$ba guide to series and pilots, 1937-1988 /$cVincent Terrace.
246 1#$a50 years of television
260 ##$aNew York :$bCornwall Books,$cc1991.
300 ##$a864 p. ;$c24 cm.
500 ##$aIncludes index.
650 #0$aTelevision pilot programs$zUnited States$vCatalogs.
650 #0$aTelevision serials$zUnited States$vCatalogs.
8. Use software leverage to your
advantage.
Running Symphony on a virtual server
Making electronic resources count using LDAP
Advanced UNIX tips/tricks
Customizing E-Library 3.3 and beyond
Symphony Reports for a lean, mean collection
EDI/9XX
Implementing Credit Card Payments
Enterprise unraveled
Integrating Web 2.0 applications with the OPAC
Implementing SchoolRooms
Shortcuts for inventorying your collection
Cataloging serials without the serials module
Creating custom reports using API
Using Director's Station
UNIX for the Uninitiated
Patron Notification via Text Messaging
Using Selection Lists with Acquisitions
Tips, tricks, and troubleshooting for API
Authority Control
Implementing Portfolio
Web Reporter in Practice
How Other Libraries Have Implemented Bookmyne and/or
Webservices
9. Use shell scripts to increase
leverage and portability.
$ vi first
#
# My first shell script
#
clear
echo "Knowledge is Power"
#!/bin/bash
# Backs up all files in current directory modified within last 24 hours
#+ in a "tarball" (tarred and gzipped file).
BACKUPFILE=backup-$(date +%m-%d-%Y)
# Embeds date in backup filename.
# Thanks, Joshua Tschida, for the idea.
archive=${1:-$BACKUPFILE}
# If no backup-archive filename specified on command-line,
#+ it will default to "backup-MM-DD-YYYY.tar.gz."
tar cvf - `find . -mtime -1 -type f -print` > $archive.tar gzip $archive.tar
echo "Directory $PWD backed up in archive file "$archive.tar.gz"."
# Stephane Chazelas points out that the above code will fail
#+ if there are too many files found
#+ or if any filenames contain blank characters.
# He suggests the following alternatives:
# -------------------------------------------------------------------
# find . -mtime -1 -type f -print0 | xargs -0 tar rvf "$archive.tar"
# using the GNU version of "find".
# find . -mtime -1 -type f -exec tar rvf "$archive.tar" '{}' ;
# portable to other UNIX flavors, but much slower.
# -------------------------------------------------------------------
exit 0