If you've ever wondered just what happens when you run go test, this talk is for you. Covering flags, pre-checks, incompatible options, and even a few interesting tricks, this talks goes deep into the test tool, but avoids going so deep that the talk turns into a session on how builds actually work - it treads somewhere in the middle.
Solving problems one Plone package at a timeMikko Ohtamaa
My lighting talk in Plone Conference 2012 presenting some Plone and Python packages we built to solve our own problems in 3 minutes. Including: Skype bot for project management, different
If you've ever wondered just what happens when you run go test, this talk is for you. Covering flags, pre-checks, incompatible options, and even a few interesting tricks, this talks goes deep into the test tool, but avoids going so deep that the talk turns into a session on how builds actually work - it treads somewhere in the middle.
Solving problems one Plone package at a timeMikko Ohtamaa
My lighting talk in Plone Conference 2012 presenting some Plone and Python packages we built to solve our own problems in 3 minutes. Including: Skype bot for project management, different
Plone IDE - the future of Plone developmentMikko Ohtamaa
Plone IDE is an ACE Javascript editor based effort to provide easy and sane Plone development environment aimed for newcomers (though power users will probably enjoy it too).
Plone Conference 2012 presentation about how we as the Plone community could develop ourselves to be perceived more friendly product platform choice within the open source developer community.
This presentation was held in PLOG2013, Sorrento, Italy. It's about good software development documentation culture, writing documentation for Python packages and maintaining up-to-date developer documentation in Plone ecosystem.
Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...Mikko Ohtamaa
This presentation is a RequireJS tutorial and targeted for front-end developers who need to maintain Javascript codebases larger than ~5 files. By using RequireJS for client-side Javascript modules, module dependency and minification one can have a project which is easier to maintain and you struggle less with everyday Javascript development tasks like debugging and deployment. The slides and tutorial were originally presented in HelsinkiJS June 2012 meet-up.
Javascript - How to avoid the bad partsMikko Ohtamaa
A five minutes lighting talk presentation how to write Javascript by following the modern best practices and not in that crappy way when you where still studying web development circa HTML3.
Operations security (OPSEC) presentations given in Bangkok Python meetup. The presentation covers topics about device encryption, two factor-authentication, SSH, preventing brute force attacks and ensuring your infrastructure integrity.
Websauna - introduction to the best Python web frameworkMikko Ohtamaa
Websauna is a Python package and application framework for developing custom consumer and business web services. It emphasises meeting business requirements with reliable delivery times, responsiveness, consistency in quality, security and high data integrity. A low learning curve, novice friendliness and polished documentation help less seasoned developers to get their first release out quickly.
Here Be Dragons – Advanced JavaScript DebuggingFITC
Presented at Web Unleashed on September 16-17, 2015 in Toronto, Canada
More info at www.fitc.ca/webu
Here Be Dragons – Advanced JavaScript Debugging
with Rami Sayar
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your node app? Cry no more, your tears will be reshaped into blinding swords as we explore uncharted territories laced with mystical creatures.
JavaScript debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your node or frontend app. Libraries and tools such as node-debugger, Visual Studio Code, vorlon.js, and memory leak catchers will be used to slay dragons.
No more shall you fear building complex apps with JavaScript!
OBJECTIVE
Slaying dragons hiding in your JavaScript apps a.k.a. Advanced JavaScript Debugging
TARGET AUDIENCE
JavaScript Developers.
ASSUMED AUDIENCE KNOWLEDGE
JavaScript.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Common causes of bugs in JavaScript
How to hunt for bugs using node-debugger
How to use introspective tools
How to debug your front-end with vorlon.js
Slaying dragons
FITC - Here Be Dragons: Advanced JavaScript DebuggingRami Sayar
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your node app? Cry no more, your tears will be reshaped into blinding swords as we explore uncharted territories laced with mystical creatures.
JavaScript debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your node or frontend app. Libraries and tools such as node-debugger, Visual Studio Code, vorlon.js, and memory leak catchers will be used to slay dragons.
No more shall you fear building complex apps with JavaScript!
QA Fest 2018. Ярослав Пернеровский. Test Automation Pyramid, how it ruins you...QAFest
Практически любую проблему человечества можно описать в виде "пирамиды". Про пирамиду Маслоу и финансовые пирамиды слышали все. Тестировщики тоже люди, и они придумали свою священную пирамиду - пирамиду автоматизации тестирования. Эта концепция доминирует на рынке уже многие годы и приносит свои позитивные плоды. Но есть и темная сторона этого процесса, выгорание, уныние и забвение в погоне за пирамидой тоже не редкость. В своем докладе хочу немного покритиковать устоявшиеся устои и разобраться как выжить в мире разработки и автоматизации с пирамидой или без нее, а также пройтись по антипатернам в автоматизации, которые так или иначе касаются пирамиды.
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share best practices (including ones followed internally at Amazon) and how you can bring them to your company by using open source and AWS services.
Speaker: Raghuraman Balachandran, Solutions Architect, Amazon India
Plone IDE - the future of Plone developmentMikko Ohtamaa
Plone IDE is an ACE Javascript editor based effort to provide easy and sane Plone development environment aimed for newcomers (though power users will probably enjoy it too).
Plone Conference 2012 presentation about how we as the Plone community could develop ourselves to be perceived more friendly product platform choice within the open source developer community.
This presentation was held in PLOG2013, Sorrento, Italy. It's about good software development documentation culture, writing documentation for Python packages and maintaining up-to-date developer documentation in Plone ecosystem.
Beautiful Maintainable ModularJavascript Codebase with RequireJS - HelsinkiJ...Mikko Ohtamaa
This presentation is a RequireJS tutorial and targeted for front-end developers who need to maintain Javascript codebases larger than ~5 files. By using RequireJS for client-side Javascript modules, module dependency and minification one can have a project which is easier to maintain and you struggle less with everyday Javascript development tasks like debugging and deployment. The slides and tutorial were originally presented in HelsinkiJS June 2012 meet-up.
Javascript - How to avoid the bad partsMikko Ohtamaa
A five minutes lighting talk presentation how to write Javascript by following the modern best practices and not in that crappy way when you where still studying web development circa HTML3.
Operations security (OPSEC) presentations given in Bangkok Python meetup. The presentation covers topics about device encryption, two factor-authentication, SSH, preventing brute force attacks and ensuring your infrastructure integrity.
Websauna - introduction to the best Python web frameworkMikko Ohtamaa
Websauna is a Python package and application framework for developing custom consumer and business web services. It emphasises meeting business requirements with reliable delivery times, responsiveness, consistency in quality, security and high data integrity. A low learning curve, novice friendliness and polished documentation help less seasoned developers to get their first release out quickly.
Here Be Dragons – Advanced JavaScript DebuggingFITC
Presented at Web Unleashed on September 16-17, 2015 in Toronto, Canada
More info at www.fitc.ca/webu
Here Be Dragons – Advanced JavaScript Debugging
with Rami Sayar
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your node app? Cry no more, your tears will be reshaped into blinding swords as we explore uncharted territories laced with mystical creatures.
JavaScript debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your node or frontend app. Libraries and tools such as node-debugger, Visual Studio Code, vorlon.js, and memory leak catchers will be used to slay dragons.
No more shall you fear building complex apps with JavaScript!
OBJECTIVE
Slaying dragons hiding in your JavaScript apps a.k.a. Advanced JavaScript Debugging
TARGET AUDIENCE
JavaScript Developers.
ASSUMED AUDIENCE KNOWLEDGE
JavaScript.
FIVE THINGS AUDIENCE MEMBERS WILL LEARN
Common causes of bugs in JavaScript
How to hunt for bugs using node-debugger
How to use introspective tools
How to debug your front-end with vorlon.js
Slaying dragons
FITC - Here Be Dragons: Advanced JavaScript DebuggingRami Sayar
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your node app? Cry no more, your tears will be reshaped into blinding swords as we explore uncharted territories laced with mystical creatures.
JavaScript debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your node or frontend app. Libraries and tools such as node-debugger, Visual Studio Code, vorlon.js, and memory leak catchers will be used to slay dragons.
No more shall you fear building complex apps with JavaScript!
QA Fest 2018. Ярослав Пернеровский. Test Automation Pyramid, how it ruins you...QAFest
Практически любую проблему человечества можно описать в виде "пирамиды". Про пирамиду Маслоу и финансовые пирамиды слышали все. Тестировщики тоже люди, и они придумали свою священную пирамиду - пирамиду автоматизации тестирования. Эта концепция доминирует на рынке уже многие годы и приносит свои позитивные плоды. Но есть и темная сторона этого процесса, выгорание, уныние и забвение в погоне за пирамидой тоже не редкость. В своем докладе хочу немного покритиковать устоявшиеся устои и разобраться как выжить в мире разработки и автоматизации с пирамидой или без нее, а также пройтись по антипатернам в автоматизации, которые так или иначе касаются пирамиды.
Today’s cutting edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share best practices (including ones followed internally at Amazon) and how you can bring them to your company by using open source and AWS services.
Speaker: Raghuraman Balachandran, Solutions Architect, Amazon India
Stopping the Rot - Putting Legacy C++ Under TestSeb Rose
Presentation given at the ACCU 2011 Conference in Oxford, UK.
Case study of applying unit test to the DOORS codebase. Includes a quick overview of unit test & the Google Test and Mock libraries. Also 3 specific refactoring examples shown.
Presentation to Craft CMS Meetup group in Charlotte, NC USA on November 13, 2019. Topic revolves around testing within the Craft framework using Codeception, as well as testing emails with Mailtrap and other types of tests. ~30 min read.
.NET Conf 2019 Tel-Aviv Israel
There are cases where bugs are discovered only after the product is shipped and used by the end-users. The main reason for these bugs that appear only in the production environment is the use of real user scenarios with real user data. Production debugging is about solving customer-facing issues that aren't easily reproducible in the development or testing environments. When it comes to a cloud-hosted application, production debugging becomes even harder. The code is running on multiple hosts, a business flow can span many services. A remote debugging session with the cloud is dangerous and may introduce side effects to the currently running software, such as performance degradation, interruption of service, and data correctness issues.
In this lecture, we will see how we can remote debug our cloud staging environment, and how we can use Visual Studio Snapshot debugger to set Snapshots and Log points in our production environment.
To get even more insights, the audience will see a revolutionary tool and approach for a collaborative production debugging – OzCode Debugging as a Service (DaaS), where the DevOps and the Dev team can solve production problems together!
You will learn:
1. The difficulties of debugging a modern cloud-hosted application
2. Methods and tools for capturing the state and debugging cloud-hosted services
Slides done for the talk on CodeCeption given during the April London Yii Meetup.
The full screencast of the talk can be viewed here: https://www.youtube.com/watch?v=FclV9ML7bH4
Building HTML based mobile phone applicationsMikko Ohtamaa
HTML and Javascript, prevailing technologies to build web sites, are the only common denominator across phones.
If one wishes to distribute application as wide as audience possible HTML based technologies are recommended.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
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.
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.
The Metaverse and AI: how can decision-makers harness the Metaverse for their...Jen Stirrup
The Metaverse is popularized in science fiction, and now it is becoming closer to being a part of our daily lives through the use of social media and shopping companies. How can businesses survive in a world where Artificial Intelligence is becoming the present as well as the future of technology, and how does the Metaverse fit into business strategy when futurist ideas are developing into reality at accelerated rates? How do we do this when our data isn't up to scratch? How can we move towards success with our data so we are set up for the Metaverse when it arrives?
How can you help your company evolve, adapt, and succeed using Artificial Intelligence and the Metaverse to stay ahead of the competition? What are the potential issues, complications, and benefits that these technologies could bring to us and our organizations? In this session, Jen Stirrup will explain how to start thinking about these technologies as an organisation.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
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!
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.
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.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
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.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
5. Why you need VVV
• Humans make human errors and are lazy
• Good practices must be enforced
automatically, continuously
• “Disadvantages: Initial setup time required”
Tuesday, May 15, 2012
6. VVV
• Per project configuration files for coding
conventions and linting rules
• Easy set-up: Automatically install required
software
• Integration with version control
• Support multiple languages (Python,
Javascript, CSS, restructured text... more to
come)
Tuesday, May 15, 2012
7. Benefits
• No bad code slips thru the commits
• Enforce coding conventions across project
members easily (esp. in open-ended OSS
projects)
• Permanent increase in software code
quality
Tuesday, May 15, 2012
8. Automatic enforcement
[~/code/vvv/demo]% git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
#! new file: demo.py
#! new file: moomodule.py
#
[~/code/vvv/demo]% git commit -m "New cool stuff I typed in eyes
folder in 3 seconds"
/Users/moo/code/vvv/demo/demo.py
/Users/moo/code/vvv/demo/demo.py validation output:
************* Module demo
E1101: 8,0: Instance of 'str' has no 'cutHumanInHalf' member
To fix validation errors:
-----------------------------
Python source code did not pass Pylint validator. Please fix
issues or disable warnings in .py file itself or validation-
options.yaml file.
Let's fix these issues, ok? ^_^
/Users/moo/code/vvv/demo/moomodule.py
VVV validatoin and linting failed
Tuesday, May 15, 2012
9. Mark-up errors
.foo {
backgrnd: yellow;
}
Running vvv against .
/Users/moo/code/vvv/demo/demo.py validation output:
{vextwarning=false, output=text, lang=en, warning=2,
medium=all, profile=css3}
W3C CSS Validator results for file:/Users/moo/code/vvv/
demo/foobar.css
Sorry! We found the following errors (1)
URI : file:/Users/moo/code/vvv/demo/foobar.css
Line : 2 .foo
Property backgrnd doesn't exist :
yellow
Tuesday, May 15, 2012
10. Coding conventions
C0103: 2,4:MagicalObject.doSomething: Invalid name
"doSomething" (should match [a-z_][a-z0-9_]{2,30}$)
(PEP-8 for Pythoneers)
Tuesday, May 15, 2012
11. Generic text validation
• Line length
• Catch bad tabs and indentation
• Catch bad character sets (ISO-8859-1,
anyone?)
• Catch spooky stuff like ALT+spacebar No
Break Space character
Tuesday, May 15, 2012
13. Install VVV on your
computer
# Python 3 + virtualenv
cd ~
virtualenv-3.2 vvv-venv
. ~/vvv-venv/bin/activate
pip install vvv
Tuesday, May 15, 2012
14. Add VVV configuration
in project root
• validation-options.yaml to tell which
validators to run with which options
• validation-files.yaml for file
whitelisting / blacklisting
Tuesday, May 15, 2012
15. validation-options.yaml
# Enforce max line length
linelength:
length: 250
# Python additional configuration
pylint:
host-python-env: true
python3k: true
configuration: |
[MESSAGES CONTROL]
# Disable:
# - Missing docstring
# :C0112: *Empty docstring*
# :R0903: *Too few public methods (%s/%s)*
# :R0904: *Too many public methods (%s/%s)*
disable = C0111, C0112, R0903, R0904
Tuesday, May 15, 2012
16. validation-files.yaml
# Don't match hidden dotted files/folders
# Don't match generated folders
# Don't match test data (which is bad
intentionally)
all: |
*
!RE:.*/..*|^..*
!**/build/**
!dist/**
!venv
!**/__pycache__
!*.egg-info
!tests/validators
!tests/test-installation-environment
Tuesday, May 15, 2012
17. Run VVV
source ~/vvv-venv/bin/activate
vvv .
...or...
~/vvv-venv/bin/vvv .
Tuesday, May 15, 2012
18. No painful manual
installations
• VVV will automatically download and install
a pile of software in ~/.vvv when run for the
first time
• VVV gives instructions how to install
dependencies which cannot be
automatically installed: java, node
• Installed on-demand: jshint, CSS validator,
pylint, etc.
Tuesday, May 15, 2012
20. Pre-commit hook
integration
# Run pre-commit hook installation
vvv-install-git-pre-commit-hook .
Breaking the law (Judas Priest, 1980)
git commit --no-verify -m "Those validator hooks
prevent me committing crappy code, damn it!"
https://www.youtube.com/watch?v=L397TWLwrUU
Tuesday, May 15, 2012
21. Continuous integration
(.travis.yml)
# Snake me baby!
language: python
python:
- "3.2"
# - We use logilab.astng trunk until this bug fix is
# released http://comments.gmane.org/gmane.comp.python.logilab/1193
install:
- "pip install hg+http://hg.logilab.org/logilab/astng/"
- pip install . --use-mirrors
# command to run validation against the code base
script: vvv .
Tuesday, May 15, 2012
22. VVV is here today
• Available on PyPi: http://pypi.python.org/
pypi/vvv
• Available on Github: https://github.com/
miohtama/vvv
Tuesday, May 15, 2012
23. Future
• Text-editor background linting when typing
(Sublime Edit 2)
• Expanded version control integration with
SVN, Bazaar and Mercurial
• Expanded language support: Java, PHP,
CoffeeScript
• Expanded user base: you report the bugs
Tuesday, May 15, 2012
24. Q&A
• Mikko Ohtamaa
• http://twitter.com/moo9000
• http://linkedin.com/in/ohtis
• http://opensourcehacker.com
Tuesday, May 15, 2012