A pinch of indirection, and don't cut yourself chopping onions...Sean Upton
Practical tips for using component architecture(s). Provides idea, opinions, idioms, tricks for using Zope Component Architecture (ZCA), and some notes about application of component-based design and development outside the Zope and Plone context (e.g. Python, generally; JavaScript).
Modification audit logging and using zc.beforestorage to time travel. From #ploneconf2016 presentation, this is an idea for supporting a new kind of Undo in Plone 5.x.
Show an Open Source Project Some Love and Start Using Travis-CIJoel Byler
Lots of us are looking for an open source project to help with, but sometimes it is hard to find a way to contribute. I'd like to recommend that folks start to consider using Travis-CI and adding Travis-CI scripts to projects that don't already have them. Lets look at what it takes to build a project using Travis and the benefits that a project can take advantage of if they use the service.
This was originally presented at CodeMash v2.0.1.4 in Sandusky, Ohio on January 10, 2014
Avoid adding a new library to the projectPVS-Studio
Suppose, you need to implement an X functionality in your project. Theorists of software development will say that you have to take the already existing library Y, and use it to implement the things you need. Suppose, you need to implement an X functionality in your project. Theorists of software development will say that you have to take the already existing library Y, and use it to implement the things you need. In fact, it is a classic approach in the software development - reusing your own or others' previously created libraries (third-party libraries). And most of the programmers go this way.
Saltstack For DevOps
Extremely fast and simple IT automation and configuration managment
Through this book you will learn how to use one of the most powerful DevOps tools.
This document introduces PHP and who this book is aimed towards. PHP stands for "PHP: Hypertext Preprocessor" and is a server-side programming language commonly used to build dynamic web applications. The book is aimed at designers and front-end developers who want to learn PHP to build more advanced websites or use content management systems. Some benefits of learning PHP mentioned include dynamically changing content, processing user form data, allowing file uploads, and building pages by combining templates and database content.
This document introduces variables in Python. Variables allow values like strings to be assigned to names so they can be referred to and changed later in the code. The document explains that a variable is created by writing a name followed by an equals sign and the value, such as name = 'Mark'. Once a variable is assigned, the name can be used anywhere in the code instead of writing the value out each time. Variables can also be reassigned new values later. The document emphasizes that variable names have no inherent meaning to Python, but meaningful names help humans understand the code.
CocoaPods talk given at the RubyMotion Inspect 2013 conference.
There is another version that does not include speaker notes available at: https://www.slideshare.net/alloy020/ruby-motion-inspect-2013-without-notes-18676749
The videos that were shown on slide 5 and 6 are available at: https://vimeo.com/63891717 & https://vimeo.com/63891716.
A pinch of indirection, and don't cut yourself chopping onions...Sean Upton
Practical tips for using component architecture(s). Provides idea, opinions, idioms, tricks for using Zope Component Architecture (ZCA), and some notes about application of component-based design and development outside the Zope and Plone context (e.g. Python, generally; JavaScript).
Modification audit logging and using zc.beforestorage to time travel. From #ploneconf2016 presentation, this is an idea for supporting a new kind of Undo in Plone 5.x.
Show an Open Source Project Some Love and Start Using Travis-CIJoel Byler
Lots of us are looking for an open source project to help with, but sometimes it is hard to find a way to contribute. I'd like to recommend that folks start to consider using Travis-CI and adding Travis-CI scripts to projects that don't already have them. Lets look at what it takes to build a project using Travis and the benefits that a project can take advantage of if they use the service.
This was originally presented at CodeMash v2.0.1.4 in Sandusky, Ohio on January 10, 2014
Avoid adding a new library to the projectPVS-Studio
Suppose, you need to implement an X functionality in your project. Theorists of software development will say that you have to take the already existing library Y, and use it to implement the things you need. Suppose, you need to implement an X functionality in your project. Theorists of software development will say that you have to take the already existing library Y, and use it to implement the things you need. In fact, it is a classic approach in the software development - reusing your own or others' previously created libraries (third-party libraries). And most of the programmers go this way.
Saltstack For DevOps
Extremely fast and simple IT automation and configuration managment
Through this book you will learn how to use one of the most powerful DevOps tools.
This document introduces PHP and who this book is aimed towards. PHP stands for "PHP: Hypertext Preprocessor" and is a server-side programming language commonly used to build dynamic web applications. The book is aimed at designers and front-end developers who want to learn PHP to build more advanced websites or use content management systems. Some benefits of learning PHP mentioned include dynamically changing content, processing user form data, allowing file uploads, and building pages by combining templates and database content.
This document introduces variables in Python. Variables allow values like strings to be assigned to names so they can be referred to and changed later in the code. The document explains that a variable is created by writing a name followed by an equals sign and the value, such as name = 'Mark'. Once a variable is assigned, the name can be used anywhere in the code instead of writing the value out each time. Variables can also be reassigned new values later. The document emphasizes that variable names have no inherent meaning to Python, but meaningful names help humans understand the code.
CocoaPods talk given at the RubyMotion Inspect 2013 conference.
There is another version that does not include speaker notes available at: https://www.slideshare.net/alloy020/ruby-motion-inspect-2013-without-notes-18676749
The videos that were shown on slide 5 and 6 are available at: https://vimeo.com/63891717 & https://vimeo.com/63891716.
Boxen: How to Manage an Army of Laptops and Live to Talk About ItPuppet
Will Farrington of Github talks about Boxen at Puppet Camp Atlanta, 2013. Original slides can be found: https://speakerdeck.com/wfarr/boxen-puppetcamp-atl Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
The document discusses using TensorFlow in Go. While TensorFlow was initially developed for C++ and Python, Go is a relatively new language supported by TensorFlow. However, the API for Go is not yet fully-featured and the recommended approach is to train models in Python and consume them in Go. The document then explores an example of trying to port a Twitter sentiment analysis model trained in Python to Go. This proved challenging due to differences in how tensors are handled between languages and a lack of documentation on the model format. In summary, while Go can interact with TensorFlow, Python remains the preferred language for developing and training machine learning models.
This document discusses Scala and its relationship to Java. Some key points:
- Scala is largely compatible with Java but aims to address issues like verbosity and concurrency through functional programming concepts.
- Scala simplifies things like type declarations through type inference and makes all values objects to improve consistency.
- Functional programming with immutable data makes concurrency easier by avoiding shared state issues, though Scala also supports object-oriented and imperative styles.
- Scala's goals include keeping the benefits of Java like performance and libraries while addressing weaknesses through influences from languages like ML, Haskell, Erlang and more.
The document discusses how programming languages have evolved over time and questions whether arguing over languages still matters. It notes that open-source languages are better, languages can be easily combined, and changing languages is no longer a big deal. While Scala improves on Java, its complexity may not justify switching. Different paradigms could provide more productivity gains. The author considers exploring other languages like Erlang, Rust, Kotlin as easier translations from Scala.
This document provides an overview of developing a principled approach to input/output (I/O) in Scala using the cats-effect library. It discusses the development of an initial I/O typeclass and improvements to allow composition of I/O actions. It then covers the implementation of an I/O monad to allow I/O actions to return meaningful values. Finally, it demonstrates how cats-effect supports concurrency through abstractions like MVars and provides an example of implementing a channel using an MVar.
This is a presentation I did for the new interns at Duo Software which I highlight the pros and cons of being creative and following widely used best practices in software development
There's an old joke that goes, “The two hardest things in programming are cache invalidation, naming things, and off-by-one errors.” In this talk, we'll discuss the subtle art of naming things – a practice we do every day but rarely talk about.
This document is a preface to a textbook titled "Think Java" that teaches computer science concepts using the Java programming language. The preface discusses the philosophy and goals behind the book's design. It aims to introduce concepts minimally and clearly so students can practice each one in isolation before moving on. It also emphasizes debugging and uses a "objects late" approach to teaching object-oriented programming. The book is released freely under an open license.
This document discusses Scilab, an open-source alternative to Matlab for scientific computing. It begins with an introduction to Scilab, noting its similarities to Matlab as well as its advantages such as being free to use. However, it also discusses some disadvantages like lacking robust documentation and tutorials. The document then discusses problems the author has encountered using Scilab like crashes and issues with new releases. It provides an overview of embedded help features in Scilab as well as information resources available online and in books. Overall, the document provides context around Scilab while also being candid about issues and limitations the author has faced in using the program.
An introduction to C++. These slides were used to guide a presentation on C++. The target audience was programmers learning C++ for the first time. As such the content covered basics of modern C++ and some other things that I feel was helpful to know about when starting with C++.
On Selecting JavaScript Frameworks (Women Who Code 10/15)Zoe Landon
For front-end developers, there's a never-ending stream of new things to learn. New frameworks, with new philosophies, seem to be released on a daily basis. How, then, do you pick which one to use? The answer, as it happens, has nothing to do at all with JavaScript.
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"JSFestUA
As a subset of the JS community, react has seen a lot of so-called ""good practices"" these last years, made out of libraries and design patterns. As if it wasn't hard enough to stay sane in a crazy JS world, we're now doing the same in react.
Together, let's explore how such abundance of new techniques can actually be embraced, without making you lose your mind !
This document summarizes Adam Keys' presentation "Six Easy Pieces (Twice Over)", where he discusses important concepts for software developers based on Richard Feynman's lectures. The presentation is divided into two acts, where the first act from 2006 introduced non-syntactic aspects of Ruby and Rails, and the second act extracts the most important bits and argues they are applicable to all programmers. The concepts discussed include that programming should not suck, languages should make developers feel clever and powerful, the importance of building software with a balance of top-down and bottom-up approaches, keeping things simple, avoiding duplication, using testing as feedback, and how other languages can be borrowed from to write better code.
C# and java comparing programming languagesShishir Roy
The document provides an in-depth comparison of the C# and Java programming languages. It discusses many similarities between the two languages, such as both using garbage collection and being fully object-oriented. The document also examines differences, such as C# learning from Java's strengths and weaknesses. Overall, the document aims to help readers understand the motivations behind the languages' designs and make informed choices about which to use for different situations.
A dispute on probably the most controversial feature in ES2016 leads us back to age old questions at the base of the most common practices of the development universe.
Do the “sacred laws” still apply?
jsDay 2016 closing keynote (http://2016.jsday.it/talk/a-class-action/)
I broke what?!??!? Taking over maintenance on well loved projectsBert JW Regeer
The document discusses the speaker becoming the maintainer of the Python WebOb library. Some key points:
- The speaker was given commit access to WebOb and added as the maintainer on PyPI after contributing fixes and being active on IRC.
- As maintainer, the speaker had ideas to improve the code but quickly learned that even small changes can break dependencies, requiring care around backwards compatibility.
- It is important to consider existing users and set deprecation policies before making changes. The speaker advocates refactoring code over time rather than rewriting.
- Being a maintainer involves being a gatekeeper for standards while growing the community and finding the next generation of contributors.
I broke what? Taking over maintenance on existing (well loved) projects, by B...T. Kim Nguyen
Taking over maintenance of an existing open source application can be a scary prospect yet exciting and fun at the same time. I want to talk a little bit about how I ended up taking over maintenance of WebOb a Python HTTP request/response library that is used heavily by a huge variety of projects.
Length: Long Talk
Target Level: Beginner
Target Audience: Integrator, User, Developer
The document provides an 8-part plan for learning JavaScript, including working through online courses, reading introductions and books about JavaScript, building simple projects, learning a JavaScript library, and following leaders in the JavaScript community. The plan covers understanding what JavaScript is and isn't, learning the basics through Codecademy, learning more through screencasts and books, using developer tools, creating photo galleries and to-do lists to practice skills, exploring libraries like jQuery, and staying up to date by following experts online.
The document discusses various ways that Rails plugins can modify and extend the behavior of Rails and ActiveRecord classes and objects. It covers techniques like including modules to add methods, extending classes to add class methods, aliasing methods to modify existing behavior, and patching dependencies to change how Rails loads files. The goal of these techniques is to allow plugins to flexibly change and enhance the core Rails framework.
(Canada on Rails, 2005)
"Rails Engines provide a means to share common functionality across many projects, in a package that's easy to both update *and* override.
"This presentation will explain the concepts behind Engines and demonstrate how they work within a Rails application. I will also discuss how Engines has dramatically enhanced collaboration within our own development team, and how such collaboration can be extended into the Rails community as a whole."
Contenu connexe
Similaire à Do we need more test frameworks? (2011)
Boxen: How to Manage an Army of Laptops and Live to Talk About ItPuppet
Will Farrington of Github talks about Boxen at Puppet Camp Atlanta, 2013. Original slides can be found: https://speakerdeck.com/wfarr/boxen-puppetcamp-atl Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
The document discusses using TensorFlow in Go. While TensorFlow was initially developed for C++ and Python, Go is a relatively new language supported by TensorFlow. However, the API for Go is not yet fully-featured and the recommended approach is to train models in Python and consume them in Go. The document then explores an example of trying to port a Twitter sentiment analysis model trained in Python to Go. This proved challenging due to differences in how tensors are handled between languages and a lack of documentation on the model format. In summary, while Go can interact with TensorFlow, Python remains the preferred language for developing and training machine learning models.
This document discusses Scala and its relationship to Java. Some key points:
- Scala is largely compatible with Java but aims to address issues like verbosity and concurrency through functional programming concepts.
- Scala simplifies things like type declarations through type inference and makes all values objects to improve consistency.
- Functional programming with immutable data makes concurrency easier by avoiding shared state issues, though Scala also supports object-oriented and imperative styles.
- Scala's goals include keeping the benefits of Java like performance and libraries while addressing weaknesses through influences from languages like ML, Haskell, Erlang and more.
The document discusses how programming languages have evolved over time and questions whether arguing over languages still matters. It notes that open-source languages are better, languages can be easily combined, and changing languages is no longer a big deal. While Scala improves on Java, its complexity may not justify switching. Different paradigms could provide more productivity gains. The author considers exploring other languages like Erlang, Rust, Kotlin as easier translations from Scala.
This document provides an overview of developing a principled approach to input/output (I/O) in Scala using the cats-effect library. It discusses the development of an initial I/O typeclass and improvements to allow composition of I/O actions. It then covers the implementation of an I/O monad to allow I/O actions to return meaningful values. Finally, it demonstrates how cats-effect supports concurrency through abstractions like MVars and provides an example of implementing a channel using an MVar.
This is a presentation I did for the new interns at Duo Software which I highlight the pros and cons of being creative and following widely used best practices in software development
There's an old joke that goes, “The two hardest things in programming are cache invalidation, naming things, and off-by-one errors.” In this talk, we'll discuss the subtle art of naming things – a practice we do every day but rarely talk about.
This document is a preface to a textbook titled "Think Java" that teaches computer science concepts using the Java programming language. The preface discusses the philosophy and goals behind the book's design. It aims to introduce concepts minimally and clearly so students can practice each one in isolation before moving on. It also emphasizes debugging and uses a "objects late" approach to teaching object-oriented programming. The book is released freely under an open license.
This document discusses Scilab, an open-source alternative to Matlab for scientific computing. It begins with an introduction to Scilab, noting its similarities to Matlab as well as its advantages such as being free to use. However, it also discusses some disadvantages like lacking robust documentation and tutorials. The document then discusses problems the author has encountered using Scilab like crashes and issues with new releases. It provides an overview of embedded help features in Scilab as well as information resources available online and in books. Overall, the document provides context around Scilab while also being candid about issues and limitations the author has faced in using the program.
An introduction to C++. These slides were used to guide a presentation on C++. The target audience was programmers learning C++ for the first time. As such the content covered basics of modern C++ and some other things that I feel was helpful to know about when starting with C++.
On Selecting JavaScript Frameworks (Women Who Code 10/15)Zoe Landon
For front-end developers, there's a never-ending stream of new things to learn. New frameworks, with new philosophies, seem to be released on a daily basis. How, then, do you pick which one to use? The answer, as it happens, has nothing to do at all with JavaScript.
JS Fest 2019/Autumn. Alexandre Gomes. Embrace the "react fatigue"JSFestUA
As a subset of the JS community, react has seen a lot of so-called ""good practices"" these last years, made out of libraries and design patterns. As if it wasn't hard enough to stay sane in a crazy JS world, we're now doing the same in react.
Together, let's explore how such abundance of new techniques can actually be embraced, without making you lose your mind !
This document summarizes Adam Keys' presentation "Six Easy Pieces (Twice Over)", where he discusses important concepts for software developers based on Richard Feynman's lectures. The presentation is divided into two acts, where the first act from 2006 introduced non-syntactic aspects of Ruby and Rails, and the second act extracts the most important bits and argues they are applicable to all programmers. The concepts discussed include that programming should not suck, languages should make developers feel clever and powerful, the importance of building software with a balance of top-down and bottom-up approaches, keeping things simple, avoiding duplication, using testing as feedback, and how other languages can be borrowed from to write better code.
C# and java comparing programming languagesShishir Roy
The document provides an in-depth comparison of the C# and Java programming languages. It discusses many similarities between the two languages, such as both using garbage collection and being fully object-oriented. The document also examines differences, such as C# learning from Java's strengths and weaknesses. Overall, the document aims to help readers understand the motivations behind the languages' designs and make informed choices about which to use for different situations.
A dispute on probably the most controversial feature in ES2016 leads us back to age old questions at the base of the most common practices of the development universe.
Do the “sacred laws” still apply?
jsDay 2016 closing keynote (http://2016.jsday.it/talk/a-class-action/)
I broke what?!??!? Taking over maintenance on well loved projectsBert JW Regeer
The document discusses the speaker becoming the maintainer of the Python WebOb library. Some key points:
- The speaker was given commit access to WebOb and added as the maintainer on PyPI after contributing fixes and being active on IRC.
- As maintainer, the speaker had ideas to improve the code but quickly learned that even small changes can break dependencies, requiring care around backwards compatibility.
- It is important to consider existing users and set deprecation policies before making changes. The speaker advocates refactoring code over time rather than rewriting.
- Being a maintainer involves being a gatekeeper for standards while growing the community and finding the next generation of contributors.
I broke what? Taking over maintenance on existing (well loved) projects, by B...T. Kim Nguyen
Taking over maintenance of an existing open source application can be a scary prospect yet exciting and fun at the same time. I want to talk a little bit about how I ended up taking over maintenance of WebOb a Python HTTP request/response library that is used heavily by a huge variety of projects.
Length: Long Talk
Target Level: Beginner
Target Audience: Integrator, User, Developer
The document provides an 8-part plan for learning JavaScript, including working through online courses, reading introductions and books about JavaScript, building simple projects, learning a JavaScript library, and following leaders in the JavaScript community. The plan covers understanding what JavaScript is and isn't, learning the basics through Codecademy, learning more through screencasts and books, using developer tools, creating photo galleries and to-do lists to practice skills, exploring libraries like jQuery, and staying up to date by following experts online.
Similaire à Do we need more test frameworks? (2011) (20)
The document discusses various ways that Rails plugins can modify and extend the behavior of Rails and ActiveRecord classes and objects. It covers techniques like including modules to add methods, extending classes to add class methods, aliasing methods to modify existing behavior, and patching dependencies to change how Rails loads files. The goal of these techniques is to allow plugins to flexibly change and enhance the core Rails framework.
(Canada on Rails, 2005)
"Rails Engines provide a means to share common functionality across many projects, in a package that's easy to both update *and* override.
"This presentation will explain the concepts behind Engines and demonstrate how they work within a Rails application. I will also discuss how Engines has dramatically enhanced collaboration within our own development team, and how such collaboration can be extended into the Rails community as a whole."
The Even Darker Art of Rails Engines (2009)lazyatom
(From RailsConf 2009)
"When I started talking about the idea of ‘Rails Engines’ a few years ago, everyone thought I was crazy. Some people said it was stupid, or just plain evil. Despite that, the ability to write simple yet powerful plugins is baked into the core of Rails 2.3.
"But heed the words of Uncle Ben: “With great power, comes great responsibility!”
"In this session, we’ll discuss how to best take advantage of ‘engines’, in which situations engine plugins are appropriate and those where they aren’t, and how to avoid some of the common issues that can arrive when developing with engine-style plugins.
"When we’re done, you’ll be in the best position to take advantage of this newly-sanctified functionality in your own projects."
(RubyFools 2008)
"Plugins are more than just shiny nuggets of code which rain down from the higher echelons of the Rails pantheon; they are loyal and useful servants that anyone can employ to help reuse code between applications. Without a little guidance, however, the process of figuring out just how to tame these beasts can be overwhelming.
"This presentation will help give developers the boost that's often required to get up to speed developing plugins. We'll cover the hooks that Rails' plugin mechanism makes available, and how to put them to best use in practice.
"Once we've covered the groundwork, we'll start to look at more advanced programming techniques for sharing code (and other files) between Rails applications. With a few key programming techniques under our belt, we can use plugins to alter and enhance the Rails framework itself, and become masters of Ruby's object model along the way."
The document provides an overview of James Adam's talk on building gems. It discusses some of the tools available for generating gem structures, including Hoe and NewGem. While Hoe used to require itself as a dependency, James considers it a "virus". NewGem generates a more comprehensive structure but includes many rake tasks that may not be needed. In general, the document explores different options for scaffolding gem projects and notes the pros and cons of each.
This document discusses techniques for developing Rails engines, including overriding functionality, playing nicely with the class cache, testing engines, and avoiding common pitfalls like initialization issues and technical debt. It recommends writing generators within engines to handle migrations, empowering developers to test their code, and consuming engines wisely to avoid problems.
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfVALiNTRY360
Salesforce Healthcare CRM, implemented by VALiNTRY360, revolutionizes patient management by enhancing patient engagement, streamlining administrative processes, and improving care coordination. Its advanced analytics, robust security, and seamless integration with telehealth services ensure that healthcare providers can deliver personalized, efficient, and secure patient care. By automating routine tasks and providing actionable insights, Salesforce Healthcare CRM enables healthcare providers to focus on delivering high-quality care, leading to better patient outcomes and higher satisfaction. VALiNTRY360's expertise ensures a tailored solution that meets the unique needs of any healthcare practice, from small clinics to large hospital systems.
For more info visit us https://valintry360.com/solutions/health-life-sciences
Mobile app Development Services | Drona InfotechDrona Infotech
Drona Infotech is one of the Best Mobile App Development Company In Noida Maintenance and ongoing support. mobile app development Services can help you maintain and support your app after it has been launched. This includes fixing bugs, adding new features, and keeping your app up-to-date with the latest
Visit Us For :
UI5con 2024 - Keynote: Latest News about UI5 and it’s EcosystemPeter Muessig
Learn about the latest innovations in and around OpenUI5/SAPUI5: UI5 Tooling, UI5 linter, UI5 Web Components, Web Components Integration, UI5 2.x, UI5 GenAI.
Recording:
https://www.youtube.com/live/MSdGLG2zLy8?si=INxBHTqkwHhxV5Ta&t=0
Measures in SQL (SIGMOD 2024, Santiago, Chile)Julian Hyde
SQL has attained widespread adoption, but Business Intelligence tools still use their own higher level languages based upon a multidimensional paradigm. Composable calculations are what is missing from SQL, and we propose a new kind of column, called a measure, that attaches a calculation to a table. Like regular tables, tables with measures are composable and closed when used in queries.
SQL-with-measures has the power, conciseness and reusability of multidimensional languages but retains SQL semantics. Measure invocations can be expanded in place to simple, clear SQL.
To define the evaluation semantics for measures, we introduce context-sensitive expressions (a way to evaluate multidimensional expressions that is consistent with existing SQL semantics), a concept called evaluation context, and several operations for setting and modifying the evaluation context.
A talk at SIGMOD, June 9–15, 2024, Santiago, Chile
Authors: Julian Hyde (Google) and John Fremlin (Google)
https://doi.org/10.1145/3626246.3653374
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Flutter is a popular open source, cross-platform framework developed by Google. In this webinar we'll explore Flutter and its architecture, delve into the Flutter Embedder and Flutter’s Dart language, discover how to leverage Flutter for embedded device development, learn about Automotive Grade Linux (AGL) and its consortium and understand the rationale behind AGL's choice of Flutter for next-gen IVI systems. Don’t miss this opportunity to discover whether Flutter is right for your project.
Microservice Teams - How the cloud changes the way we workSven Peters
A lot of technical challenges and complexity come with building a cloud-native and distributed architecture. The way we develop backend software has fundamentally changed in the last ten years. Managing a microservices architecture demands a lot of us to ensure observability and operational resiliency. But did you also change the way you run your development teams?
Sven will talk about Atlassian’s journey from a monolith to a multi-tenanted architecture and how it affected the way the engineering teams work. You will learn how we shifted to service ownership, moved to more autonomous teams (and its challenges), and established platform and enablement teams.
When it is all about ERP solutions, companies typically meet their needs with common ERP solutions like SAP, Oracle, and Microsoft Dynamics. These big players have demonstrated that ERP systems can be either simple or highly comprehensive. This remains true today, but there are new factors to consider, including a promising new contender in the market that’s Odoo. This blog compares Odoo ERP with traditional ERP systems and explains why many companies now see Odoo ERP as the best choice.
What are ERP Systems?
An ERP, or Enterprise Resource Planning, system provides your company with valuable information to help you make better decisions and boost your ROI. You should choose an ERP system based on your company’s specific needs. For instance, if you run a manufacturing or retail business, you will need an ERP system that efficiently manages inventory. A consulting firm, on the other hand, would benefit from an ERP system that enhances daily operations. Similarly, eCommerce stores would select an ERP system tailored to their needs.
Because different businesses have different requirements, ERP system functionalities can vary. Among the various ERP systems available, Odoo ERP is considered one of the best in the ERp market with more than 12 million global users today.
Odoo is an open-source ERP system initially designed for small to medium-sized businesses but now suitable for a wide range of companies. Odoo offers a scalable and configurable point-of-sale management solution and allows you to create customised modules for specific industries. Odoo is gaining more popularity because it is built in a way that allows easy customisation, has a user-friendly interface, and is affordable. Here, you will cover the main differences and get to know why Odoo is gaining attention despite the many other ERP systems available in the market.
8 Best Automated Android App Testing Tool and Framework in 2024.pdfkalichargn70th171
Regarding mobile operating systems, two major players dominate our thoughts: Android and iPhone. With Android leading the market, software development companies are focused on delivering apps compatible with this OS. Ensuring an app's functionality across various Android devices, OS versions, and hardware specifications is critical, making Android app testing essential.
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...XfilesPro
Wondering how X-Sign gained popularity in a quick time span? This eSign functionality of XfilesPro DocuPrime has many advancements to offer for Salesforce users. Explore them now!
UI5con 2024 - Bring Your Own Design SystemPeter Muessig
How do you combine the OpenUI5/SAPUI5 programming model with a design system that makes its controls available as Web Components? Since OpenUI5/SAPUI5 1.120, the framework supports the integration of any Web Components. This makes it possible, for example, to natively embed own Web Components of your design system which are created with Stencil. The integration embeds the Web Components in a way that they can be used naturally in XMLViews, like with standard UI5 controls, and can be bound with data binding. Learn how you can also make use of the Web Components base class in OpenUI5/SAPUI5 to also integrate your Web Components and get inspired by the solution to generate a custom UI5 library providing the Web Components control wrappers for the native ones.
1. you
an
existing
library
(the horse is
probably your ego)
at some point in your career, as a programmer, you will become frustrated with your tools, with the software you use every day.
It will start as a chafe, as some mild friction, but will grow, it will fester, and nag at you, distracting you from otherwise productive endeavours.
4. test/unit
rspec
cucumber
you hate test/unit because it’s a convoluted codebase that’s a pain to work with and impossible to extend
you hate rspec because it’s bloated and you bear some inexplicable long-term grudge against it, and the latest API change is the straw that broken your
proverbial camel’s back
or maybe you hate cucumber because it’s slow and limited
for me it was test/unit
8. before / setup
test ...
should ...
it ...
after / teardown
@f = File.new
@f.unlink
@f.read
in order to share state, you either need the code in all three stages to run with the same value of self,
or copy state around like crazy
9. subcontexts:
parent & child
def run_befores
@parent.run_befores if @parent
instance_eval(&@before)
end
def run
run_befores
instance_eval(&@test)
# etc ...
end
in order to share state, you either need the code in all three stages to run with the same value of self,
or copy state around like crazy
10. Hubris.new do
def some_method
@x = 1
end
it “works” do
raise unless 1 == some_method
end
end
where does this
method live?
the value of self in the method needs to be the same as in the test
you find yourself either needing to re-implement inheritance, or change your library implementation to be based on inheritance.
This is the point at which your simple library turns a corner, and becomes non-obvious.
11. all of this has
happened before;
and it will all
happen again.
how do I know all this? I have just done it.
step through the history of the kintama project.
as it started to get more complicated, i wondered if anyone else had done the same.
12. at least 45 libraries
pure testing - not testing ‘addons’ like mocha
i became profoundly depressed.
13. AXIS OF
WTF
either building the same features on TOP of Test::Unit
or a complete standalone implementation of a nested test framework
14. it’s probably OK.
it’s a good learning experience
you will learn loads about advanced block manipulation and a new appreciation for
convergent evolution - independent appearance of features which tend towards similarity
diversity is a good thing
15. except maybe it’s
not OK?
why do we feel the need to re-invent?
Is it because the existing libaries are “too heavy”, and you think people need something “lightweight”? Perhaps you think it’s time for a “testing library for
the rest of us”?
I think “too heavy” and “for the rest of us” can be “developer smells” - I suspect it means that either the project is ideologically incompatible with their
particular manifesto, or that they cannot be bother putting the effort in to understanding the existing code.
I’m not sure I really buy my “convergent evolution” explanation, because while there might be some form of “survival of the fittest” that weeds out the
weaker libraries, we are not developing blindly.
We are aware of these other islands of development, or certainly can be, but instead choose to go ahead and repeat the same decisions.
16. maybe don’t write
anything.
perhaps there’s already another trailblazing re-implementer who has satisfied your need.
use that!
question the urge to create another project just to bump up your authority on working with rails
17. maybe become a
contributer.
maybe there is something you can do to modify one of the existing projects to address your needs? (do you even really understand your needs?)
this is the point of open source that is most often missed; we can collaborate.
18. open source
responsibility.
github makes it very easy to make a project available for other people to use
but it also doesn’t provide any differentiation between your polished, maintained, and thoroughly tested and the piece of shit that I knocked up because I
am bored and arrogant.
if you know something is broken, at least update the README.
if you fork something, send a pull request or communicate in some other way WHY you have forked. (see cucumber bundle)
if you get a pull request, deal with it! look after your code and the people who use it.
19. give some context.
if you’re going to write a replacement tool, make it clear in the README that you understand its setting within the larger ecosystem.
this is like a literature review in a dissertation; it demonstrates that you are aware of other tools, how they work, what their problems are.