Background processing is an important tool in web development. Some
things just can't optimized enough for the normal request/response cycle
of a web site and need to be run asynchronously. Ruby on Rails doesn't provide
you with any real out of the box solution. There are a lot of external
options available and this part of Rails is lacking any real convention
or standard.
In this presentation, we will talk about how to choose and implement a
solution that fits your needs. We will start with some basic options
using built in Rails tools and we will cover some of the more popular
solutions solutions out there such as BackgrounDRb, Background Job,
Delayed Job, Workling and more.
Rob Mack has been working with Rails professionally on and off since
2005. Rob currently works for VitalSource Technologies.
Javascript is so much fun, except when it’s not.
There’s always the fear of runtime errors that keeps us thinking all the time while writing code. It makes us better coders - we have no other option than to visualize every line of code as if it’s running as we write it.
That’s why it’s so important to have tidy code. Small code. Pretty code. Code you just fall in love with. Otherwise, Javascript will scare you away.
I gathered some fun snippets I enjoy using instead of boring code that takes too much space. Some makes the code shorter, cleaner and more readable. Other are just plain hacks for debugging.
I learned all of this from open source code (until node.js all javascript code was open source, wasn’t it?), but I’ll write them here is if I invented them.
Javascript is so much fun, except when it’s not.
There’s always the fear of runtime errors that keeps us thinking all the time while writing code. It makes us better coders - we have no other option than to visualize every line of code as if it’s running as we write it.
That’s why it’s so important to have tidy code. Small code. Pretty code. Code you just fall in love with. Otherwise, Javascript will scare you away.
I gathered some fun snippets I enjoy using instead of boring code that takes too much space. Some makes the code shorter, cleaner and more readable. Other are just plain hacks for debugging.
I learned all of this from open source code (until node.js all javascript code was open source, wasn’t it?), but I’ll write them here is if I invented them.
Disconnecting the Database with ActiveRecordBen Mabey
Short presentation about how I use NullDB in my ActiveRecord projects. I generally use this approach on projects that I know will be large and will merit the tradeoffs that come with disconnecting the database. I will typically use Cucumber when taking this approach as well.
Cucumber is a BDD tool that aids in outside-in development by executing plain-text features/stories as automated acceptance tests. Written in conjunction with the stakeholder, these Cucumber “features” clearly articulate business value and also serve as a practical guide throughout the development process: by explicitly outlining the expected outcomes of various scenarios developers know both where to begin and when they are finished. I will present the basic usage of Cucumber, primarily in the context of web applications, which will include a survey of the common tools used for simulated and automated browser-testing. Common questions and pitfalls that arise will also be discussed.
Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009Jan Wedekind
This talk gives an introduction to the properties of the Ruby language and it presents the basics of the HornetsEye Ruby extension for doing machine vision. The end of the talk points out a few must-see videos and must-read books if you got excited about either Ruby or machine vision or both.
MACRUBY: WHAT'S THE BIG DEAL?
Last year, Apple released MacRuby, an open source Ruby implementation
written on top of the Objective-C runtime. Writing native MacOSX
applications in Ruby without having to pay the cost of using a bridge
is now a reality. This is an important milestone for Ruby, Apple and
the Ruby community.
Matt Aimonetti explains the implementation, show how to build
desktop applications with MacRuby & HotCocoa, and discuss why Ruby
developers should add this new tool to their utility belt. Matt also talks about the future of MacRuby.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Disconnecting the Database with ActiveRecordBen Mabey
Short presentation about how I use NullDB in my ActiveRecord projects. I generally use this approach on projects that I know will be large and will merit the tradeoffs that come with disconnecting the database. I will typically use Cucumber when taking this approach as well.
Cucumber is a BDD tool that aids in outside-in development by executing plain-text features/stories as automated acceptance tests. Written in conjunction with the stakeholder, these Cucumber “features” clearly articulate business value and also serve as a practical guide throughout the development process: by explicitly outlining the expected outcomes of various scenarios developers know both where to begin and when they are finished. I will present the basic usage of Cucumber, primarily in the context of web applications, which will include a survey of the common tools used for simulated and automated browser-testing. Common questions and pitfalls that arise will also be discussed.
Ruby & Machine Vision - Talk at Sheffield Hallam University Feb 2009Jan Wedekind
This talk gives an introduction to the properties of the Ruby language and it presents the basics of the HornetsEye Ruby extension for doing machine vision. The end of the talk points out a few must-see videos and must-read books if you got excited about either Ruby or machine vision or both.
MACRUBY: WHAT'S THE BIG DEAL?
Last year, Apple released MacRuby, an open source Ruby implementation
written on top of the Objective-C runtime. Writing native MacOSX
applications in Ruby without having to pay the cost of using a bridge
is now a reality. This is an important milestone for Ruby, Apple and
the Ruby community.
Matt Aimonetti explains the implementation, show how to build
desktop applications with MacRuby & HotCocoa, and discuss why Ruby
developers should add this new tool to their utility belt. Matt also talks about the future of MacRuby.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
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/
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.
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
8. Do Some Work
$running = true
Signal.trap(quot;TERMquot;) do
$running = false
end
while($running) do
# Do some work
sleep 10
end
lib/daemons/my_worker.rb
Thursday, April 30, 2009
9. Kick It Off
lib/daemons/my_worker_ctl start
lib/daemons/my_worker_ctl stop
Thursday, April 30, 2009
10. Spawn
http://github/tra/spawn
Thursday, April 30, 2009
11. Spawn - Do Some Work
def my_action
flash[:notice] = quot;Processing ... quot;
spawn do
# do some processing
end
end
Thursday, April 30, 2009
21. Do Some Work
class MyWorker < BackgrounDRb::MetaWorker
set_worker_name :my_worker
def create(args = nil)
# initialization goes here
end
def do_work(user_id = nil)
# do some work
end
end
def my_action
flash[:notice] = quot;Processing ...quot;
MiddleMan.worker(:my_worker).async_do_work(:arg => @user.id)
end
Thursday, April 30, 2009
22. Persistent Work
def my_action
MiddleMan(:my_worker).enq_do_work(:job_key => quot;unique_keyquot;)
end
Thursday, April 30, 2009
23. Poll Status
class MyWorker < BackgrounDRb::MetaWorker
set_worker_name :my_worker
def create(args = nil)
# initialization goes here
end
def do_work(user_id = nil)
# do some work
register_status quot;almost donequot;
end
end
Thursday, April 30, 2009
24. Poll Status
def my_action
@job_key = MiddleMan.new_worker(
:worker => :my_worker,
:job_key => quot;unique_keyquot;
)
MiddleMan.worker(:my_worker, @job_key).
do_work(@user.id)
end
def check_status
@status = MiddleMan.worker(:my_worker, @job_key).
ask_status
end
Thursday, April 30, 2009
35. Do Some Work
class MyWorker
attr_accessor :user_id
def initialize(user)
self.user_id = user_id
end
def perform
User.find user_id
# do some work
end
end
Thursday, April 30, 2009
36. Do Some Work
def my_action
flash[:notice] = quot;Processing ...quot;
Delayed::Job.enqueue MyWorker.new(@user.id)
end
def my_action
flash[:notice] = quot;Processing ...quot;
MyMailer.new(@user.id).send_later(:deliver_newsletter)
end
Thursday, April 30, 2009
40. Do Some Work
class MyWorker < Workling::Base
def do_something(options)
# do some work
end
end
def my_action
flash[:notice] = quot;Processing ...quot;
MyWorker.async_do_something :user_id => @user.id
end
Thursday, April 30, 2009
41. The Worker Process
with spawn:
script/workling_client start
with starling:
sudo starling -d
script/workling_client start
Thursday, April 30, 2009
42. Starling
http://github.com/starling/starling/
Thursday, April 30, 2009
43. Even More Options
• Background Fu - http://github.com/ncr/
background-fu
• Roofus Scheduler - http://github.com/
jmettraux/rufus-scheduler
• AP4R - http://rubyforge.org/projects/
ap4r/
Thursday, April 30, 2009
45. Kestrel
http://github.com/robey/kestrel/
Thursday, April 30, 2009
46. Rabbit MQ
http://www.rabbitmq.com/
Thursday, April 30, 2009
47. Active MQ
http://activemq.apache.org/
Thursday, April 30, 2009
48. Amazon SQS
http://aws.amazon.com/sqs/
Thursday, April 30, 2009
49. Monitoring
• god - http://github.com/mojombo/
god/
• launchd - OS X
• monit - http://mmonit.com/monit/
Thursday, April 30, 2009
50. Persistant?
Yes
No
Scaling concerns or fear
I enjoy
of commitment?
managing a
process?
No Yes
No
Yes
Delayed Job
Background Job
Spawn Workling
Daemons
Are you the Kestrel
Starling Probably Not Yes
next Twitter? Rabbit MQ
Thursday, April 30, 2009
51. Thanks
rob@robmack.com
twitter.com/robmack
Thursday, April 30, 2009