Memoization is an optimization technique that caches the results of expensive method calls to avoid repeating the same computation multiple times. The document discusses memoizing the current_user method in Ruby by using the ||= conditional assignment operator to assign the result of User.find(session[:user_id]) to the @current_user instance variable only if it is nil. This avoids duplicate database queries when current_user is called multiple times. The document also provides examples of when memoization should and should not be used, such as memoizing expensive calculations that do not change but not calculations that take parameters or can easily change.
This talked is inspired by Martin Fowler's "Mocks aren't stubs" http://martinfowler.com/articles/mocksArentStubs.html
We talked about Cassical TDD vs. Mockist TDD and the libraries that help Ruby developers with their tests.
Webmock, FactoryGirl, VCR, Rspec mocks, stubs and spies.
What do you prefer? To mock everything, or to mock as less as possible?
This is a presentation about the values that guide our activities. When in doubt, look at these slides and think about the values that represent the work that we do.
Are you building something that you can be proud of? Are you applying that principles that guide our company? Are you striving to achieve a simple but powerful solution?
Always deliver on time and always strive for simplicity. These values will guide us through hard times.
In this presentation we talk about three rules that we follow every week to deliver high quality code. We prefer to write tests in this order: Integration tests first, unit tests later.
We don't do TDD religiously but it is a good idea when you're facing a very complex problem.
Think about your code as a black box and think about all the possible inputs and outputs, all the possible paths that a user might take, all the possible ranges that the user may enter.
Don't test only the happy path, keep in mind the odd cases.
The flow is what makes a programmer thrive or fail. How many interruptions did you have today? Can you stop them?
Interruptions turn each day into chunks of productivity. Each interruption costs a programmer at least 10 minutes, plus the time spent during the interruption.
Here are some tips to avoid interruptions and get to a flow state of mind. Kill interruptions before they kill your productivity.
When was the last time that you programmed without any interruptions?
Some of the tips:
1. Keep your email clients closed
2. Keep Twitter closed
3. Keep Facebook closed
4. Start tracking time spent on every project
5. Unplug your phone
6. Silence your cell phone
7. Use Slack
Manage your interruptions before they manage your productivity.
At Ombu Labs, The Lean Software Boutique, we like to use these services. They help us build lean software, that is easy to maintain and scale.
We like to use: Github, Code Climate, Heroku, Rails, Ruby, Sinatra, Cuba, Solano CI, Intercom, Google Ad Words, Google Analytics, Twitter, Facebook, Freckle and Slack!
This talked is inspired by Martin Fowler's "Mocks aren't stubs" http://martinfowler.com/articles/mocksArentStubs.html
We talked about Cassical TDD vs. Mockist TDD and the libraries that help Ruby developers with their tests.
Webmock, FactoryGirl, VCR, Rspec mocks, stubs and spies.
What do you prefer? To mock everything, or to mock as less as possible?
This is a presentation about the values that guide our activities. When in doubt, look at these slides and think about the values that represent the work that we do.
Are you building something that you can be proud of? Are you applying that principles that guide our company? Are you striving to achieve a simple but powerful solution?
Always deliver on time and always strive for simplicity. These values will guide us through hard times.
In this presentation we talk about three rules that we follow every week to deliver high quality code. We prefer to write tests in this order: Integration tests first, unit tests later.
We don't do TDD religiously but it is a good idea when you're facing a very complex problem.
Think about your code as a black box and think about all the possible inputs and outputs, all the possible paths that a user might take, all the possible ranges that the user may enter.
Don't test only the happy path, keep in mind the odd cases.
The flow is what makes a programmer thrive or fail. How many interruptions did you have today? Can you stop them?
Interruptions turn each day into chunks of productivity. Each interruption costs a programmer at least 10 minutes, plus the time spent during the interruption.
Here are some tips to avoid interruptions and get to a flow state of mind. Kill interruptions before they kill your productivity.
When was the last time that you programmed without any interruptions?
Some of the tips:
1. Keep your email clients closed
2. Keep Twitter closed
3. Keep Facebook closed
4. Start tracking time spent on every project
5. Unplug your phone
6. Silence your cell phone
7. Use Slack
Manage your interruptions before they manage your productivity.
At Ombu Labs, The Lean Software Boutique, we like to use these services. They help us build lean software, that is easy to maintain and scale.
We like to use: Github, Code Climate, Heroku, Rails, Ruby, Sinatra, Cuba, Solano CI, Intercom, Google Ad Words, Google Analytics, Twitter, Facebook, Freckle and Slack!
What etagwerker worked on for the open source days that we had in Ombu Labs on December 2015.
EmailSpec, DatabaseCleaner, Bitpagos, Oca Epak library news and an update on the latest articles in the Ombu Labs blog.
Rspec Tweaks, enhancing specs (Controller, Model, etc.), let vs instance variables, refactoring, use more “let”, just build, don’t create!
flexible use of “let”, more than 65% faster, test without ActiveRecord
A few guidelines for peer reviews at Ombu Labs. Be nice, be constructive, suggest alternatives, start discussions, use Git branches, Github pull requests and keep it lean.
Make sure that the pull requests solve a concrete problem today. You can always refactor your solution later. Do not design for the future.
Keep it simple stupid and learn from the comments in your pull requests.
Algunas notas y lecciones aprendidas sobre nuestra experiencia trabajando en código abierto. 8 proyectos interesantes que abrimos en los últimos meses.
At Ombu Labs we decided to start recycling to improve the environment and as a contribution to our community.
This presentation has some basic tips on what needs to be recycle.
A brief introduction to relational databases, SQL and ActiveRecord.
What's a SELECT, UPDATE, INSERT or DELETE query? What's an Index, a Foreign Key, a Primary Key?
Here is the 7 days open source challenge. Contribute to an open source project for 7 days straight and then share it with the world!
Tag your friend and challenge him or her to contribute to an open source project for 7 days straight!
I gave this talk at the Buenos Aires Ruby Meetup (July, 2015)
A short presentation about two of the most popular design patterns in object oriented software: Strategy and NullObject.
Check out these examples to understand when it's a good time to apply them to your own code.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
What etagwerker worked on for the open source days that we had in Ombu Labs on December 2015.
EmailSpec, DatabaseCleaner, Bitpagos, Oca Epak library news and an update on the latest articles in the Ombu Labs blog.
Rspec Tweaks, enhancing specs (Controller, Model, etc.), let vs instance variables, refactoring, use more “let”, just build, don’t create!
flexible use of “let”, more than 65% faster, test without ActiveRecord
A few guidelines for peer reviews at Ombu Labs. Be nice, be constructive, suggest alternatives, start discussions, use Git branches, Github pull requests and keep it lean.
Make sure that the pull requests solve a concrete problem today. You can always refactor your solution later. Do not design for the future.
Keep it simple stupid and learn from the comments in your pull requests.
Algunas notas y lecciones aprendidas sobre nuestra experiencia trabajando en código abierto. 8 proyectos interesantes que abrimos en los últimos meses.
At Ombu Labs we decided to start recycling to improve the environment and as a contribution to our community.
This presentation has some basic tips on what needs to be recycle.
A brief introduction to relational databases, SQL and ActiveRecord.
What's a SELECT, UPDATE, INSERT or DELETE query? What's an Index, a Foreign Key, a Primary Key?
Here is the 7 days open source challenge. Contribute to an open source project for 7 days straight and then share it with the world!
Tag your friend and challenge him or her to contribute to an open source project for 7 days straight!
I gave this talk at the Buenos Aires Ruby Meetup (July, 2015)
A short presentation about two of the most popular design patterns in object oriented software: Strategy and NullObject.
Check out these examples to understand when it's a good time to apply them to your own code.
Globus Connect Server Deep Dive - GlobusWorld 2024Globus
We explore the Globus Connect Server (GCS) architecture and experiment with advanced configuration options and use cases. This content is targeted at system administrators who are familiar with GCS and currently operate—or are planning to operate—broader deployments at their institution.
Cyaniclab : Software Development Agency Portfolio.pdfCyanic lab
CyanicLab, an offshore custom software development company based in Sweden,India, Finland, is your go-to partner for startup development and innovative web design solutions. Our expert team specializes in crafting cutting-edge software tailored to meet the unique needs of startups and established enterprises alike. From conceptualization to execution, we offer comprehensive services including web and mobile app development, UI/UX design, and ongoing software maintenance. Ready to elevate your business? Contact CyanicLab today and let us propel your vision to success with our top-notch IT solutions.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
top nidhi software solution freedownloadvrstrong314
This presentation emphasizes the importance of data security and legal compliance for Nidhi companies in India. It highlights how online Nidhi software solutions, like Vector Nidhi Software, offer advanced features tailored to these needs. Key aspects include encryption, access controls, and audit trails to ensure data security. The software complies with regulatory guidelines from the MCA and RBI and adheres to Nidhi Rules, 2014. With customizable, user-friendly interfaces and real-time features, these Nidhi software solutions enhance efficiency, support growth, and provide exceptional member services. The presentation concludes with contact information for further inquiries.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus
As part of the DOE Integrated Research Infrastructure (IRI) program, NERSC at Lawrence Berkeley National Lab and ALCF at Argonne National Lab are working closely with General Atomics on accelerating the computing requirements of the DIII-D experiment. As part of the work the team is investigating ways to speedup the time to solution for many different parts of the DIII-D workflow including how they run jobs on HPC systems. One of these routes is looking at Globus Compute as a way to replace the current method for managing tasks and we describe a brief proof of concept showing how Globus Compute could help to schedule jobs and be a tool to connect compute at different facilities.
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...Juraj Vysvader
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I didn't get rich from it but it did have 63K downloads (powered possible tens of thousands of websites).
First Steps with Globus Compute Multi-User EndpointsGlobus
In this presentation we will share our experiences around getting started with the Globus Compute multi-user endpoint. Working with the Pharmacology group at the University of Auckland, we have previously written an application using Globus Compute that can offload computationally expensive steps in the researcher's workflows, which they wish to manage from their familiar Windows environments, onto the NeSI (New Zealand eScience Infrastructure) cluster. Some of the challenges we have encountered were that each researcher had to set up and manage their own single-user globus compute endpoint and that the workloads had varying resource requirements (CPUs, memory and wall time) between different runs. We hope that the multi-user endpoint will help to address these challenges and share an update on our progress here.
Check out the webinar slides to learn more about how XfilesPro transforms Salesforce document management by leveraging its world-class applications. For more details, please connect with sales@xfilespro.com
If you want to watch the on-demand webinar, please click here: https://www.xfilespro.com/webinars/salesforce-document-management-2-0-smarter-faster-better/
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTier1 app
Even though at surface level ‘java.lang.OutOfMemoryError’ appears as one single error; underlyingly there are 9 types of OutOfMemoryError. Each type of OutOfMemoryError has different causes, diagnosis approaches and solutions. This session equips you with the knowledge, tools, and techniques needed to troubleshoot and conquer OutOfMemoryError in all its forms, ensuring smoother, more efficient Java applications.
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Anthony Dahanne
Les Buildpacks existent depuis plus de 10 ans ! D’abord, ils étaient utilisés pour détecter et construire une application avant de la déployer sur certains PaaS. Ensuite, nous avons pu créer des images Docker (OCI) avec leur dernière génération, les Cloud Native Buildpacks (CNCF en incubation). Sont-ils une bonne alternative au Dockerfile ? Que sont les buildpacks Paketo ? Quelles communautés les soutiennent et comment ?
Venez le découvrir lors de cette session ignite
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
4. irb(main):001:0> a = 1
=> 1
irb(main):002:0> a ||= 2
=> 1
Not assigned, because a was already set to 1
irb(main):003:0> a = nil
=> nil
irb(main):004:0> a ||= 2
=> 2
Assigned, because a was nil
18. CACHE (0.0ms) SELECT "groups".* FROM "groups" WHERE "groups"."id" = $1 LIMIT 1 [["id", 3]]
CACHE (0.1ms) SELECT "groups".* FROM "groups" WHERE "groups"."id" = $1 LIMIT 1 [["id", 3]]
CACHE (0.0ms) SELECT "groups".* FROM "groups" WHERE "groups"."id" = $1 LIMIT 1 [["id", 3]]
CACHE (0.0ms) SELECT "groups".* FROM "groups" WHERE "groups"."id" = $1 LIMIT 1 [["id", 3]]
CACHE (0.0ms) SELECT "groups".* FROM "groups" WHERE "groups"."id" = $1 LIMIT 1 [["id", 3]]
… (around 100 calls)
19. By applying the memoization pattern,
the cached query count was reduced
from around 100 to less than 40
20.
21. “Those cache calls mean Rails is returning the
cached result of the SQL query, but it doesn’t
include the cost of building the User object.”
“And because Rails hides the cost of object
creation these queries cost more than the 0.0ms
and 0.1ms reported!”
http://gavinmiller.io/2013/basics-of-ruby-memoization/