If you create Joomla! extensions you have to do some not complicated but time consuming tasks. It is easy to make a mistake and you have to start over again. I'll show how I have setup my environment and how this is integrated in the development process and package creating process. You can learn how a tool like phing can make you life easier.
Slides from the talk "CI doesn’t start with Jenkins" from DevOps Stage 2018 (12-13 October 2018, Kyiv, Ukraine)
CI is not only a tool. You cannot simply install and configure Jenkins or whatever system and say that you have CICD pipeline. Here I'm trying to cover different aspects and dependencies of the CICD process based on Preply Inc experience.
External Links:
[2] CatOps Telegram channel: https://t.me/catops
[2] HashiCorp User Group Kyiv: https://www.meetup.com/Kyiv-HashiCorp-User-Group/
[12-24 ]https://www.endpoint.com/blog/2014/05/02/git-workflows-that-work
[49-50]: https://nvie.com/posts/a-successful-git-branching-model/
[51-56]: https://www.toptal.com/software/trunk-based-development-git-flow
[64] Django Anonymizer: https://github.com/knowledge-point/dj_anonymizer
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...Baruch Sadogursky
While Docker has enabled an unprecedented velocity of software production, it is all too easy to spin out of control. A promotion-based model is required to control and track the flow of Docker images as much as it is required for a traditional software development lifecycle. New tools often introduce new paradigms. We will examine the patterns and the antipatterns for Docker image management, and what impact the new tools have on the battle-proven paradigms of the software development lifecycle.
Managing releases effectively through gitMohd Farid
Best practices with GIT
Following some standard processes in GIT branching saved numerous nights in figuring what went wrong while merging some branches.
Building New on Top of Old: The Argument for SimplicityNew Relic
The software industry is surrounded by complexity, with new solutions to old problems appearing daily. Creators of software constantly face questions about how to best navigate changing technology tides while still building their “ships". Building these ships, or building software, requires picking challenges and making sensible technical choices to move fast without compromising stability.
In this talk, GitHub’s Director of Systems Sam Lambert will explore how GitHub steers its ship—the world’s largest software host serving over 11M users—on top of stable, proven systems and services. He’ll speak specifically about how these practices can be translated to any type of software creation by focusing on:
-The importance of pragmatism during building and maintaining software systems.
-How a company like GitHub moves fast and breaks as little as possible by carefully choosing what problems to tackle.
-Why this simple path of choosing and solving problems can prove extremely useful.
The role new technologies can play in informing decisions and approaches around what problems to solve.
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOpsBaruch Sadogursky
No relationship in DevOps is more important than that between your CI/CD server and your Binary Repository. Jenkins has long been the go-to server for CI/CD, and JFrog Artifactory has long been one of the most popular integrations with it. This webinar focuses on the new features of the integration, leveraging the Jenkins Pipeline DSL for infrastructure-as-code of your favorite artifactory features whether it be generic, maven, gradle or Docker, and will show an end-to-end example of pipelines across multiple technologies and how powerful these new capabilities are.
Don't be a git - the essentials you should know about git to use it correctly
Presentation by Otto Kekäläinen held at Vincit Teatime on Nov 11th 2015
http://www.vincitteatime.fi/
Slides from the talk "CI doesn’t start with Jenkins" from DevOps Stage 2018 (12-13 October 2018, Kyiv, Ukraine)
CI is not only a tool. You cannot simply install and configure Jenkins or whatever system and say that you have CICD pipeline. Here I'm trying to cover different aspects and dependencies of the CICD process based on Preply Inc experience.
External Links:
[2] CatOps Telegram channel: https://t.me/catops
[2] HashiCorp User Group Kyiv: https://www.meetup.com/Kyiv-HashiCorp-User-Group/
[12-24 ]https://www.endpoint.com/blog/2014/05/02/git-workflows-that-work
[49-50]: https://nvie.com/posts/a-successful-git-branching-model/
[51-56]: https://www.toptal.com/software/trunk-based-development-git-flow
[64] Django Anonymizer: https://github.com/knowledge-point/dj_anonymizer
Patterns and antipatterns in Docker image lifecycle as was presented at DC Do...Baruch Sadogursky
While Docker has enabled an unprecedented velocity of software production, it is all too easy to spin out of control. A promotion-based model is required to control and track the flow of Docker images as much as it is required for a traditional software development lifecycle. New tools often introduce new paradigms. We will examine the patterns and the antipatterns for Docker image management, and what impact the new tools have on the battle-proven paradigms of the software development lifecycle.
Managing releases effectively through gitMohd Farid
Best practices with GIT
Following some standard processes in GIT branching saved numerous nights in figuring what went wrong while merging some branches.
Building New on Top of Old: The Argument for SimplicityNew Relic
The software industry is surrounded by complexity, with new solutions to old problems appearing daily. Creators of software constantly face questions about how to best navigate changing technology tides while still building their “ships". Building these ships, or building software, requires picking challenges and making sensible technical choices to move fast without compromising stability.
In this talk, GitHub’s Director of Systems Sam Lambert will explore how GitHub steers its ship—the world’s largest software host serving over 11M users—on top of stable, proven systems and services. He’ll speak specifically about how these practices can be translated to any type of software creation by focusing on:
-The importance of pragmatism during building and maintaining software systems.
-How a company like GitHub moves fast and breaks as little as possible by carefully choosing what problems to tackle.
-Why this simple path of choosing and solving problems can prove extremely useful.
The role new technologies can play in informing decisions and approaches around what problems to solve.
[Webinar] The Frog And The Butler: CI Pipelines For Modern DevOpsBaruch Sadogursky
No relationship in DevOps is more important than that between your CI/CD server and your Binary Repository. Jenkins has long been the go-to server for CI/CD, and JFrog Artifactory has long been one of the most popular integrations with it. This webinar focuses on the new features of the integration, leveraging the Jenkins Pipeline DSL for infrastructure-as-code of your favorite artifactory features whether it be generic, maven, gradle or Docker, and will show an end-to-end example of pipelines across multiple technologies and how powerful these new capabilities are.
Don't be a git - the essentials you should know about git to use it correctly
Presentation by Otto Kekäläinen held at Vincit Teatime on Nov 11th 2015
http://www.vincitteatime.fi/
How to Work Efficiently in a Hybrid Git-Perforce EnvironmentPerforce
Many companies face the challenge of supporting Git and Perforce together in their company. This presentation will describe the challenges Trend Micro faced and how they enabled a hybrid Git-Perforce environment. Additionally, learn three practices in using Perforce which make their work more efficient.
Trunk Based Development in the Enterprise - Its Relevance and EconomicsPerforce
Paul Hammant of ThoughtWorks runs through the history of the 'Trunk Based Development' branching model, its modern usage in big enterprises, and how management and technical stakeholders can benefit from it, and Perforce in particular, in their enterprise. Takeaways include prerequisites, pitfalls, economics, scaling, and related practices.
Effective Code Review (Or How To Alienate Your Coworkers)Perforce
In this talk, the architects of Perforce Swarm will guide you through the process of starting and updating a code review. They will also share some of their secrets for performing effective reviews. Learn how to start and update code reviews using Swarm, best practices for performing effective review, and the benefits of pre-commit automated testing and deployment.
Wrapped in a single session, you'll find the concepts and techniques that convert the average Git practitioner into a master of the craft. We'll go from technical topics like "efficient conflict resolution" and "effective code cleanup," to the often-asked "how to handle project dependencies with Git" and "how to manage massive repositories." And much more.
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Ontico
HighLoad++ 2017
Зал «Дели + Калькутта», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/2503.html
В докладе представлен опыт создания системы мониторинга для большой CI-системы, включающей в себя 4 Jenkins-мастера, на самый большой из которых ежедневно приходится больше 100 тысяч сборок/билдов/запусков. Т.к. в нашей компании каждый коммит обязан пройди через CI, роль мониторинга CI огромна.
...
Developing and releasing software in a team setting can be messy. With many developers working on the same code base, we need a workflow that allows a team to develop in parallel and allows for new functionality to be safely integrated into our environments and applications. In order to achieve such a workflow, leveraging a branching strategy is a must. There are, however, many to choose from. In this talk, we'll be discussing Trunk-Based Development, a branching strategy that we leverage extensively here at Nebulaworks.
Key Takeaways:
*Learn about the various benefits that we get from leveraging Trunk-Based Development.
*We will talk about general best practices that should be followed when developing new functionality
*We will be discussing the release process (How and when to leverage Release Candidate Branches and git tags)
*We will walk through the Trunk-Based Development process in a demo where we develop a simple python app!
Super-powered CI with Git - Sarah Goff-DupontAtlassian
Continuous integration is a critical part of working as a team and shipping great software. But when you switch to Git, CI can seem chaotic due to the sudden explosion of branches. Learn how to keep it under control with branch builds, shallow clones, repository caching, and other tricks of the trade.
Slides da palestra no Café Ágil da ThoughtWorks e Tá Safo em Belém, 10/08/2012.
Outros links interessantes:
http://www.youtube.com/watch?v=xzstASOvqNc
http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/
CommonJS via PINF JavaScript Loader - Introductioncadorn
The PINF JavaScript Loader is one extrapolated interpretation of the CommonJS standards that realizes the dream of portable JavaScript applications composed of libraries from all over the internet today. You don't need to wait for platform implementors to incorporate CommonJS standards. By building on PINF you bring CommonJS with you and in the process build momentum for CommonJS.
Christoph will give us a brief overview of CommonJS and then dive deep into PINF for JavaScript. He will communicate the motivation behind PINF and where it fits into the CommonJS community outlined above. You will walk away with practical advice you can apply immediately to build CommonJS based applications and libraries for production deployment.
How to Work Efficiently in a Hybrid Git-Perforce EnvironmentPerforce
Many companies face the challenge of supporting Git and Perforce together in their company. This presentation will describe the challenges Trend Micro faced and how they enabled a hybrid Git-Perforce environment. Additionally, learn three practices in using Perforce which make their work more efficient.
Trunk Based Development in the Enterprise - Its Relevance and EconomicsPerforce
Paul Hammant of ThoughtWorks runs through the history of the 'Trunk Based Development' branching model, its modern usage in big enterprises, and how management and technical stakeholders can benefit from it, and Perforce in particular, in their enterprise. Takeaways include prerequisites, pitfalls, economics, scaling, and related practices.
Effective Code Review (Or How To Alienate Your Coworkers)Perforce
In this talk, the architects of Perforce Swarm will guide you through the process of starting and updating a code review. They will also share some of their secrets for performing effective reviews. Learn how to start and update code reviews using Swarm, best practices for performing effective review, and the benefits of pre-commit automated testing and deployment.
Wrapped in a single session, you'll find the concepts and techniques that convert the average Git practitioner into a master of the craft. We'll go from technical topics like "efficient conflict resolution" and "effective code cleanup," to the often-asked "how to handle project dependencies with Git" and "how to manage massive repositories." And much more.
Мониторинг облачной CI-системы на примере Jenkins / Александр Акбашев (HERE T...Ontico
HighLoad++ 2017
Зал «Дели + Калькутта», 8 ноября, 16:00
Тезисы:
http://www.highload.ru/2017/abstracts/2503.html
В докладе представлен опыт создания системы мониторинга для большой CI-системы, включающей в себя 4 Jenkins-мастера, на самый большой из которых ежедневно приходится больше 100 тысяч сборок/билдов/запусков. Т.к. в нашей компании каждый коммит обязан пройди через CI, роль мониторинга CI огромна.
...
Developing and releasing software in a team setting can be messy. With many developers working on the same code base, we need a workflow that allows a team to develop in parallel and allows for new functionality to be safely integrated into our environments and applications. In order to achieve such a workflow, leveraging a branching strategy is a must. There are, however, many to choose from. In this talk, we'll be discussing Trunk-Based Development, a branching strategy that we leverage extensively here at Nebulaworks.
Key Takeaways:
*Learn about the various benefits that we get from leveraging Trunk-Based Development.
*We will talk about general best practices that should be followed when developing new functionality
*We will be discussing the release process (How and when to leverage Release Candidate Branches and git tags)
*We will walk through the Trunk-Based Development process in a demo where we develop a simple python app!
Super-powered CI with Git - Sarah Goff-DupontAtlassian
Continuous integration is a critical part of working as a team and shipping great software. But when you switch to Git, CI can seem chaotic due to the sudden explosion of branches. Learn how to keep it under control with branch builds, shallow clones, repository caching, and other tricks of the trade.
Slides da palestra no Café Ágil da ThoughtWorks e Tá Safo em Belém, 10/08/2012.
Outros links interessantes:
http://www.youtube.com/watch?v=xzstASOvqNc
http://continuousdelivery.com/2011/05/make-large-scale-changes-incrementally-with-branch-by-abstraction/
CommonJS via PINF JavaScript Loader - Introductioncadorn
The PINF JavaScript Loader is one extrapolated interpretation of the CommonJS standards that realizes the dream of portable JavaScript applications composed of libraries from all over the internet today. You don't need to wait for platform implementors to incorporate CommonJS standards. By building on PINF you bring CommonJS with you and in the process build momentum for CommonJS.
Christoph will give us a brief overview of CommonJS and then dive deep into PINF for JavaScript. He will communicate the motivation behind PINF and where it fits into the CommonJS community outlined above. You will walk away with practical advice you can apply immediately to build CommonJS based applications and libraries for production deployment.
vAPV Virtual Application Delivery Controllers improve application
availability, performance and security while enabling dynamic,
flexible and elastic provisioning in cloud and virtual environments.
I put this guide together as a way to plan for my second solo trip to three new cities: Prague, Dublin, & Lisbon. It is embarrassingly detailed, but proved to be irreplaceable for planning, organizing, and navigating my trip. Although some of the material is context dependent (like getting to & from my hostels), it includes many other useful aspects like tourist attractions, transportation methods, student prices, and city maps.
THANK YOU FOR YOUR SERVICE
To our veterans who have served and to our soldiers who carry out their duties here, there and every where around the globe, we thank you for your service. Keep you safe each and every day.
We thank your families for allowing you to serve our County and for their personal sacrifices.
God bless each and every one of you …
In distributed database systems, data does not re-side in one single location, it may be stored in mul-tiple computers, located in the same physical loca-tion; or may be disseminated over a network of in-terlinked computers. Distributed databases can amend the performance at end-user worksites by allowing transactions to be processed on many ma-chines, instead of being limited to one. These transactions may impose troubles like deadlock. This paper makes an attempt to detect deadlock in homogeneous distributed database systems i.e; lo-cal transactions using process termination method.
Setting up your development environmentRobert Deutz
This presentation is a snapshot how I have setup my development environment. I am constantly evaluating, so this presentation is constantly changing. It gives developers and people that are planning to start with development practical tips, I am presenting in some way best practicals. Because it is my view and what I have found it is also questionable. I am talking about coding styles, Editors, IDE, build tools like phing, git and all that stuff.
What is "Agile"?
Why would someone like to be agile?
What are the 3 pillars for agile software development?
How can you achieve technical excellence in your software teams?
Are developer skills more important than languages, methods or frameworks?
How HipChat Ships and Recovers Fast with DevOps PracticesAtlassian
HipChat operates a ‘You Build It, You Run It’ service model, where developers are responsible for building, testing, and operating their systems. While we have a high speed of development, things can break – but we also recover quickly. Learn about how we've integrated best practices within our planning, building, operating and learning processes to optimize for speed and efficiency but also mitigate, prepare for, and handle incidents.
The presenter will walk you through four steps for how to operate at a high speed of development and also prepare for any incident — planning, prevention, preparation and collecting feedback— and instruct you on how you can build these processes into your Atlasssian workflow (including JIRA Software, HipChat, Bitbucket, Confluence, Bamboo, and StatusPage).
Learn about:
- Planning: How we use JIRA Software and Confluence to plan roadmaps and sync up with teams
- Prevention: Best practices during code reviews and testing
- Preparation: How we prepare for incidents with war games
Review: Collecting feedback, assessing incident causes and improving our processes
Come out of this session with a newfound understanding of how to use Atlassian products within your DevOps workflow!
Mickie Betz, Software Developer, Atlassian
This is a low-level, and philosophical discussion on the act of compiling data out of your PHP applications using Zend\Code: Scanning, Generating, Annotating code in PHP.
The business case for contributing codeZivtech, LLC
In the Drupal community we tend to talk about committing code to our public spaces (drupal.org, but also github) in terms of "contributing" and "contributions", and while much of it can be seen in that light, there are actually very strong business reasons for publishing your code and/or attempting to get your code changes committed to the open source project that you are working on.
We will be looking at several documents from the U.S. Military detailing their recommendations for contracting Open Source Software services, and will use those as a jumping off point to discuss the many benefits of contributing code. Some of the business reasons for public publishing we'll explore will include:
* The power of peer review. With enough eyes, all bugs are shallow, and with only a few eyes the stupidity knows no depths!
* Fork you! The costs associated with "hacking" both Drupal core and contrib modules and base themes.
* Take my code, please! Cost savings from committing patches.
* Professionals publish or perish. Using code commits as marketing towards clients or potential hires.
* It's so easy, even a child(ish person) could do it! How you can easily integrate patching into your development workflow.
This session will also include a walk through of how Zivtech handles code review, patches, and deployment processes and you will hopefully walk away convinced that all of your in-house and out-sourced developers should be publicly committing their work.
What is DevOps, why do we need it and how do I get started with it? Certainly it is the new buzz world in the world of Agile is "DevOps".
This presentation will help you get started with DevOps.
This slide created for shared internal and for everyone interesting clean code. Why we needed? Why you should use it?
Ps. Sorry if my grammar is very bad :D
At UCR, automation is a part of everything we do. When designing a new architecture and the set of new processes for our new Java based development environment we came up with a set of continuous integration and deployment tools to enable our developers to write and deploy their own applications in a flexible and secure environment.
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
If you have ever played with LEGO®, you will know that adding, removing or changing features of a completed castle isn’t as easy as it seems. You will have to deconstruct large parts to get to where you want to be, to build it all up again afterwards. Unfortunately, our software is often built the same way. Wouldn’t it be better if our software behaved like a bag of marbles? So you can just add, remove or replace them at will?
Most of us have taken different approaches to building software: a big monolith, a collection of services, a bus architecture, etc. But whatever your large scale architecture is, at the granular level (a single service or host), you will probably still end up with tightly couple code. Adding functionality means making changes to every layer, service or component involved. It gets even harder if you want to enable or disable features for certain deployments: you’ll need to wrap code in feature flags, write custom DB migration scripts, etc. There has to be a better way!
So what if you think of functionality as loose feature assemblies? We can construct our code in such a way that adding a feature is as simple as adding the assembly to your deployment, and removing it is done by just deleting the file. We would open the door for so many scenarios!
In this talk, I will explain how to tackle the following parts of your application to achieve this goal: WebAPI, Entity Framework, Onion Architecture, IoC and database migrations. And most of all, when you would want to do this. Because… ‘it depends’.
This presentation about DevOps will help you understand what is DevOps, how is DevOps different from traditional IT, benefits of DevOps, the lifecycle of DevOps and tools used in DevOps processes. DevOps is one of the most trending IT jobs. It is a collaboration between development and operation teams which enables continuous delivery of applications and services to our end users. However, if you want to become a DevOps engineer, you must have knowledge of various DevOps tools (like Git, Maven, Selenium, Jenkins, Docker, Ansible, Nagios etc.) to achieve automation at each stage which helps in gaining Continuous Development, Continuous Integration, Continuous Testing and Continuous Monitoring in order to deliver a quality product to the client at a very fast pace. Now, let us get started and understand DevOps and does the various DevOps tools work.
Below are the topics explained in this DevOps presentation:
1. What is DevOps?
2. Benefits of DevOps
3. Lifecycle of DevOps
4. Tools in DevOps
Why learn DevOps?
Simplilearn’s DevOps training course is designed to help you become a DevOps practitioner and apply the latest in DevOps methodology to automate your software development lifecycle right out of the class. You will master configuration management; continuous integration deployment, delivery, and monitoring using DevOps tools such as Git, Docker, Jenkins, Puppet, and Nagios in a practical, hands-on and interactive approach. The DevOps training course focuses heavily on the use of Docker containers, a technology that is revolutionizing the way apps are deployed in the cloud today and is a critical skillset to master in the cloud age.
After completing the DevOps training course you will achieve hands-on expertise in various aspects of the DevOps delivery model. The practical learning outcomes of this Devops training course are:
An understanding of DevOps and the modern DevOps toolsets
The ability to automate all aspects of a modern code delivery and deployment pipeline using:
1. Source code management tools
2. Build tools
3. Test automation tools
4. Containerization through Docker
5. Configuration management tools
6. Monitoring tools
Who should take this course?
DevOps career opportunities are thriving worldwide. DevOps was featured as one of the 11 best jobs in America for 2017, according to CBS News, and data from Payscale.com shows that DevOps Managers earn as much as $122,234 per year, with DevOps engineers making as much as $151,461. DevOps jobs are the third-highest tech role ranked by employer demand on Indeed.com but have the second-highest talent deficit.
1. This DevOps training course will be of benefit the following professional roles:
2. Software Developers
3. Technical Project Managers
4. Architects
5. Operations Support
6. Deployment engineers
7. IT managers
8. Development managers
Learn more at https://www.simplilearn.com/cloud-computing/devops-practitioner-certification-training
Join us for this interactive event and get your hands dirty with some WildFly 9 hacking!
Our host Kabir Khan will explain how you can contribute to the WildFly project at many different levels, from properly reporting bugs in the forums and issue tracker, to actually being able to submit a pull request.
During this interactive event you will have a chance to play with WildFly 9 and try some of the following:
• Find a JIRA you want to work on.
• See how to check-out the code and setup your IDE.
• Build WildFly
• Code walkthrough - code organisation, jboss-modules etc.
• Debug something from a stack trace in a JIRA issue to nail down the problem.
• Try the testsuite
• And more!
Build software like a bag of marbles, not a castle of LEGO®Hannes Lowette
If you have ever played with LEGO®, you will know that adding, removing or changing features of a completed castle isn’t as easy as it seems. You will have to deconstruct large parts to get to where you want to be, to build it all up again afterwards. Unfortunately, our software is often built the same way. Wouldn’t it be better if our software behaved like a bag of marbles? So you can just add, remove or replace them at will?
Most of us have taken different approaches to building software: a big monolith, a collection of services, a bus architecture, etc. But whatever your large scale architecture is, at the granular level (a single service or host), you will probably still end up with tightly couple code. Adding functionality means making changes to every layer, service or component involved. It gets even harder if you want to enable or disable features for certain deployments: you’ll need to wrap code in feature flags, write custom DB migration scripts, etc. There has to be a better way!
So what if you think of functionality as loose feature assemblies? We can construct our code in such a way that adding a feature is as simple as adding the assembly to your deployment, and removing it is done by just deleting the file. We would open the door for so many scenarios!
In this talk, I will explain how to tackle the following parts of your application to achieve this goal: WebAPI, Entity Framework, Onion Architecture, IoC and database migrations. And most of all, when you would want to do this. Because… ‘it depends’.
16. Centralised Version Control Systems
• very popular at the end of the last century
• complicated when working in not centralised teams
17. Centralised Version Control Systems
• very popular at the end of the last century
• complicated when working in not centralised teams
• merging and working on different things at the same moment is complicated
18. Centralised Version Control Systems
• very popular at the end of the last century
• complicated when working in not centralised teams
• merging and working on different things at the same moment is complicated
• still room for using it but NOT in an Open Source Project like Joomla!
22. Distributed
• Best thing since sliced bread
• good for not centralised teams
• Supports merging and branching in an easy way
23. Distributed
• Best thing since sliced bread
• good for not centralised teams
• Supports merging and branching in an easy way
• It allows a group of people to work on different ideas and in parallel on a
single codebase
35. We do
• use brackets
• use tabs
• format code always in the same way
36. We do
• use brackets
• use tabs
• format code always in the same way
• use meaningful function, variable, methods and class names
37. We do
• use brackets
• use tabs
• format code always in the same way
• use meaningful function, variable, methods and class names
• use phpDoc Blocks
38. We do
• use brackets
• use tabs
• format code always in the same way
• use meaningful function, variable, methods and class names
• use phpDoc Blocks
• not copy code (DRY: don‘t repeat yourself)
40. We write helpful comments
As I wrote this code only
god and I know what it is
doing, now only god knows
41. We write helpful comments
As I wrote this code only
god and I know what it is WRONG
doing, now only god knows
42. We write helpful comments
As I wrote this code only
god and I know what it is WRONG
doing, now only god knows
Registers a handler to a
particular event group.
43. We write helpful comments
As I wrote this code only
god and I know what it is WRONG
doing, now only god knows
Registers a handler to a
RIGHT
particular event group.
56. Cooler Editor: Sublime Text
• Packages for almost everything we need
• extremely fast
• Edit features from heaven
57. Cooler Editor: Sublime Text
• Packages for almost everything we need
• extremely fast
• Edit features from heaven
• .... but not an IDE
58. Cooler Editor: Sublime Text
• Packages for almost everything we need
• extremely fast
• Edit features from heaven
• .... but not an IDE
• comes closer and closer
61. How to chose a IDE
• Don‘t give up!
• It need‘s time, so think first about your requirements
62. How to chose a IDE
• Don‘t give up!
• It need‘s time, so think first about your requirements
• Think about your development process, what you have to do to make sure
that you can support your process properly