Magento Live Australia 2016: Request FlowVrann Tulika
As a web application, Magento 2’s web request processing flow is similar to all other web framework flows, but offers more extension points to third-party developers. In this session, we will walk through a web request path in the Magento 2 application, from index.php to browser JS application, and will look at extension points available on that path.
Magento Live Australia 2016: Request FlowVrann Tulika
As a web application, Magento 2’s web request processing flow is similar to all other web framework flows, but offers more extension points to third-party developers. In this session, we will walk through a web request path in the Magento 2 application, from index.php to browser JS application, and will look at extension points available on that path.
Cucumber is a tool for executable plain-text documentation. Skipping past "how to install..." etc, I jump right into how I'm actually using it in a large project.
If you are new to Single Page Applications, This will give you a great understanding of a proven technology stack & Architecture used in a popular commercial project.
Cucumber is a tool for executable plain-text documentation. Skipping past "how to install..." etc, I jump right into how I'm actually using it in a large project.
If you are new to Single Page Applications, This will give you a great understanding of a proven technology stack & Architecture used in a popular commercial project.
Rails World 2023: Powerful Rails Features You Might Not KnowChris Oliver
I gave a talk at Rails World 2023 in Amsterdam on Powerful Rails Features You Might Not Know.
If all you've got is a hammer, everything looks like a nail. In tech, there is a constant stream of new features being added every day. Keeping up with the latest Ruby on Rails functionality can help you and your team be far more productive than you might normally be.
In this talk, we walk through a bunch of lesser known or easy to miss features in Ruby on Rails that you can use to improve your skills.
ManageIQ currently runs on Ruby on Rails 3. Aaron "tenderlove" Patterson presents his effort to migrate to RoR 4, which entails some changes in the code to take advantage of the latest advances in RoR.
For more on ManageIQ, see http://manageiq.org/
(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."
Rails Antipatterns (http://www.amazon.com/Rails-AntiPatterns-Refactoring-Addison-Wesley-Professional/dp/0321604814) 를 읽고 몇 가지 정도만 요약을 해보았습니다.
레일즈를 시작한지 얼마 되지 않은터라 맞지 않는 부분이 있더라도 양해 부탁드려요 :)
Similar to Simplify Your Rails Controllers With a Vengeance (20)
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
9. routes.rb
resources :clients do
get :download_pdf, on: :member
end
clients_controller.rb
def download_pdf
client = Client.find params[:id]
send_data client.to_pdf, type: :pdf
end
def show
@client = Client.find params[:id]
end
10. routes.rb
resources :clients
clients_controller.rb
def show
@client = Client.find params[:id]
respond_to do |format|
format.html {}
format.pdf do
send_data @client.to_pdf, type: :pdf
end
end
end
11. routes.rb
resources :orders do
post :submit, on: :member
end
orders_controller.rb
def submit
order = Order.find params[:id]
PaymentGateway.process order
flash[:notice] = “Payment successful”
order.update_attribute :status, :complete
rescue PaymentGateway::Error => e
order.update_attribute :status, :failed
redirect_to order, alert: “Error: #{e}”
end
13. routes.rb
resources :regions do
put :sort, on: :collection
end
regions_controller.rb
def sort
params[:region].each do |id, position|
Region.find(id).update_attribute :position, position
end
end
14. routes.rb
resources :regions
resources :region_collections, only: :update
region_collections_controller.rb
def update
region_collection_params.each do |attributes|
Region.find(attributes[:id)].update_attributes attributes
end
end
private
def region_collection_params
params.require(:region_collection).permit [:id, :position]
end
18. payment_attempt.rb
class PaymentAttempt < ActiveRecord::Base
before_save do
PaymentGateway.process order
rescue PaymentGateway::Error => e
update_attribute :error, e.message
end
def successful?
error.present?
end
end
19. payment_attempts_controller.rb
def create
@attempt = PaymentAttempt.create payment_attempt_params
if @attempt.successful?
flash[:notice] = “Payment successful.”
else
flash[:alert] = “Error: #{@attempt.error}”
redirect_to @attempt.order
end
end
20. users_controller.rb
def update
@user = User.find params[:id]
@user.update_attributes user_params
@user.address.update_attributes address_params
...
end
def user_params
params.require(:user).permit :name, :email
end
def address_params
params.require(:address).permit :city, :state, :zip
end
24. widgets_controller.rb
def new
@widget = Widget.new
end
def show
@widget = Widget.find params[:id]
end
def update
@widget = Widget.find params[:id]
...
end
26. application_controller.rb
protected
def build_member
set_member_instance_variable collection.new
end
def find_member
set_member_instance_variable collection.find(params[:id])
end
def set_member_instance_variable(value)
variable_name = “@#{controller_name.singularize}”
instance_variable_set variable_name, (@member = value)
end
def collection
controller_name.classify.constantize
end
27. assets_controller.rb
def update
if @asset.update_attributes asset_params
redirect_to @asset, notice: “Asset updated”
else
flash[:alert] = @asset.errors.full_messages.join(', ')
render :edit
end
end
surveys_controller.rb
def update
if @survey.update_attributes survey_params
redirect_to @survey, notice: “Survey updated”
else
flash[:alert] = @survey.errors.full_messages.join(', ')
render :edit
end
end
28. assets_controller.rb
def update
@asset.update_attributes asset_params
respond_to_update @asset
end
surveys_controller.rb
def update
@survey.update_attributes survey_params
respond_to_update @survey
end
application_controller.rb
def respond_to_update(model)
if model.valid?
type = model.class.name.humanize
redirect_to model, notice: “#{type} updated”
else
flash[:alert] = model.errors.full_messages.join(', ')
render :edit
end
end
29. shared_rest_actions.rb
module SharedRestActions
def self.included(base)
base.before_action :build_member, only: [:new, :create]
base.before_action :find_collection, only: :index
base.before_action :find_member, except: [:index, :new, :create]
end
def index
end
def update
member_params = send “#{controller_name.singularize}_params”
@member.update_attribute member_params
respond_to_update @member
end
...
end
30. assets_controller.rb
class AssetsController < ApplicationController
include SharedRestActions
before_action :paginate, only: :index
before_action :sort_by_date, only: :index
end
surveys_controller.rb
class SurveysController < ApplicationController
include SharedRestActions
before_action :build_member, only: :index
end
31. Recap:
1. Less responsibilities (REST)
2. Shorter methods (Models)
3. Less duplication
32. Go try it out!
brianauton@gmail.com
twitter.com/brianauton
github.com/brianauton