This document summarizes a presentation about cloud computing and the Nanite technology. The presentation introduced cloud computing as taking computing resources as needed from a pool of available capacity. It discussed how Nanite provides a scalable message queueing backend for building cloud-ready web applications. Key features of Nanite include using RabbitMQ and AMQP for messaging, and employing agents, actors and mappers for scalable and distributed processing.
Pylons - An Overview: Rapid MVC Web Development with WSGIChes Martin
A simple overview of Pylons given at the Cambridge Python Meetup Group in January of '08. From the 0.9.6 era, it's basically outdated by now, but I wanted to archive it on Slideshare.
The complete presentation has a lot of notes. The example application discussed was QuickWiki, the standard Pylons tutorial app.
Capítulo introdutório do curso de Liferay ministrado pela SEA Tecnologia. Estes slides apresentam o Liferay Portal, a empresa que o mantém, seu modelo de negócio e algumas possibilidades de customização.
My talk on Innovation in Open Networks at the Queen Rania Center for Entrepreneurship Entrepreneurship Week program on May 20, 2009. Similar to some past presentations with limited new material for those who have seen my other presentations.
Pylons - An Overview: Rapid MVC Web Development with WSGIChes Martin
A simple overview of Pylons given at the Cambridge Python Meetup Group in January of '08. From the 0.9.6 era, it's basically outdated by now, but I wanted to archive it on Slideshare.
The complete presentation has a lot of notes. The example application discussed was QuickWiki, the standard Pylons tutorial app.
Capítulo introdutório do curso de Liferay ministrado pela SEA Tecnologia. Estes slides apresentam o Liferay Portal, a empresa que o mantém, seu modelo de negócio e algumas possibilidades de customização.
My talk on Innovation in Open Networks at the Queen Rania Center for Entrepreneurship Entrepreneurship Week program on May 20, 2009. Similar to some past presentations with limited new material for those who have seen my other presentations.
Presentation for the 34th Ruby-Kansai meeting. Credits: some of the images inside are from the Jeff Lindsay's presentations "Web Hooks and the Programmable World of Tomorrow" and "Using Web Hooks" (see the presenter notes below the slides)
Howdah - An Application using Pylons, PostgreSQL, Simpycity and ExceptableCommand Prompt., Inc
Aurynn Shaw
This mini-tutorial covers building a small application on Howdah, an open source, Python based web development framework by Commandprompt, Inc. We will cover the full process of designing a vertically coherent application on Howdah, integrating DB-level stored procedures, DB exception propagation through Exceptable, DB access through Simpycity, authentication through repoze.who, permissions through VerticallyChallenged, and application views through Pylons. By the end of the talk, we will have covered a full application built on The Stack, and how to cover common pitfalls in using Howdah components.
Choosing the right software architecture for your project is very important. Besides the framework decision there are many other key issues you need to take into account and which have an impact on such things like maintainability, scalability and also the frequency of possible deployments. In this session you will to learn why you have to remove Co-dependency in your source code, which patterns there are for successful scaling and how the choosen framework influences your architecture.
IT Depends: Custom vs Packaged Software★ Selcuk Atli
Today’s CIO faces more and more alternatives to solving particular IT problems. One of these alternatives is to choose between readily available package software or to go for custom software to fullfill a set of business needs. There are fundemental differences and a trade off between custom and packaged software but alternatives that could be referred to as the grey area between the two are also available. The final choice depends on the context of the business need and the resources available.
The most important thing happening in your website is the business process. So why should you monitor your database and your webserver only when your business is failing? Monitoring is not only about hardware and databases - it's also about the internals of your application. Learn how to monitor your business using PHP and how to create nice, good looking management compatible graphs.
Best Practices in Migrating to MySQL - Part 1Ronald Bradford
This presentation to the Federal Government sector was a follow up on my successful "MySQL for the Oracle DBA Bootcamp". Best Practices in Migrating to MySQL was a focus on software applications running on Oracle and Microsoft SQL Server database products. Topic in this 4 hr workshop included:
1. Reasons to migrate to MySQL
2. Ideal application candidates
3. Migration process overview
4. Migration assistance tools
5. Specific migration issues
6. Ideals for minimizing future migrations
7. General MySQL Information
GWT Overview And Feature Preview - SV Web JUG - June 16 2009Fred Sauer
Overview of Google Web Toolkit (GWT) and GWT 2.0 Feature Preview, presented at the Silicon Valley Web Java User Group on June 16 2009 at the Googleplex in Mountain View, CA
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
Presentation for the 34th Ruby-Kansai meeting. Credits: some of the images inside are from the Jeff Lindsay's presentations "Web Hooks and the Programmable World of Tomorrow" and "Using Web Hooks" (see the presenter notes below the slides)
Howdah - An Application using Pylons, PostgreSQL, Simpycity and ExceptableCommand Prompt., Inc
Aurynn Shaw
This mini-tutorial covers building a small application on Howdah, an open source, Python based web development framework by Commandprompt, Inc. We will cover the full process of designing a vertically coherent application on Howdah, integrating DB-level stored procedures, DB exception propagation through Exceptable, DB access through Simpycity, authentication through repoze.who, permissions through VerticallyChallenged, and application views through Pylons. By the end of the talk, we will have covered a full application built on The Stack, and how to cover common pitfalls in using Howdah components.
Choosing the right software architecture for your project is very important. Besides the framework decision there are many other key issues you need to take into account and which have an impact on such things like maintainability, scalability and also the frequency of possible deployments. In this session you will to learn why you have to remove Co-dependency in your source code, which patterns there are for successful scaling and how the choosen framework influences your architecture.
IT Depends: Custom vs Packaged Software★ Selcuk Atli
Today’s CIO faces more and more alternatives to solving particular IT problems. One of these alternatives is to choose between readily available package software or to go for custom software to fullfill a set of business needs. There are fundemental differences and a trade off between custom and packaged software but alternatives that could be referred to as the grey area between the two are also available. The final choice depends on the context of the business need and the resources available.
The most important thing happening in your website is the business process. So why should you monitor your database and your webserver only when your business is failing? Monitoring is not only about hardware and databases - it's also about the internals of your application. Learn how to monitor your business using PHP and how to create nice, good looking management compatible graphs.
Best Practices in Migrating to MySQL - Part 1Ronald Bradford
This presentation to the Federal Government sector was a follow up on my successful "MySQL for the Oracle DBA Bootcamp". Best Practices in Migrating to MySQL was a focus on software applications running on Oracle and Microsoft SQL Server database products. Topic in this 4 hr workshop included:
1. Reasons to migrate to MySQL
2. Ideal application candidates
3. Migration process overview
4. Migration assistance tools
5. Specific migration issues
6. Ideals for minimizing future migrations
7. General MySQL Information
GWT Overview And Feature Preview - SV Web JUG - June 16 2009Fred Sauer
Overview of Google Web Toolkit (GWT) and GWT 2.0 Feature Preview, presented at the Silicon Valley Web Java User Group on June 16 2009 at the Googleplex in Mountain View, CA
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024Neo4j
Neha Bajwa, Vice President of Product Marketing, Neo4j
Join us as we explore breakthrough innovations enabled by interconnected data and AI. Discover firsthand how organizations use relationships in data to uncover contextual insights and solve our most pressing challenges – from optimizing supply chains, detecting fraud, and improving customer experiences to accelerating drug discoveries.
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.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Dr. Sean Tan, Head of Data Science, Changi Airport Group
Discover how Changi Airport Group (CAG) leverages graph technologies and generative AI to revolutionize their search capabilities. This session delves into the unique search needs of CAG’s diverse passengers and customers, showcasing how graph data structures enhance the accuracy and relevance of AI-generated search results, mitigating the risk of “hallucinations” and improving the overall customer journey.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
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.
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/
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
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
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
7. My definition
Cloud computing means taking the
resources you need for a
computing task at the time you
need it from a pool of available
processing capacity.
Friday, February 20, 2009
8. What does that really
mean?
• Provision the minimum amount of
processing capacity you need
• Add more processing capacity as needed
Friday, February 20, 2009
19. (an introduction to cloud computing)
• Computing on demand
Friday, February 20, 2009
20. (an introduction to cloud computing)
• Computing on demand
• Only pay for what you use
Friday, February 20, 2009
21. (an introduction to cloud computing)
• Computing on demand
• Only pay for what you use
• Monitoring
Friday, February 20, 2009
22. (an introduction to cloud computing)
• Computing on demand
• Only pay for what you use
• Monitoring
• Provisioning
Friday, February 20, 2009
23. (an introduction to cloud computing)
• Computing on demand
• Only pay for what you use
• Monitoring
• Provisioning
• Discovery
Friday, February 20, 2009
24. (an introduction to cloud computing)
• Computing on demand
• Only pay for what you use
• Monitoring
• Provisioning
• Discovery
• Questions?
Friday, February 20, 2009
25. The Future is in the
Background
• Web serving processes need a fast
turnaround, users won’t wait
• Don’t want to tie-up processes with slow
stuff
Friday, February 20, 2009
28. Nanite
Ezra Zygmuntowicz
Friday, February 20, 2009
29. Nanite is:
“Nanite is a new way of thinking about building cloud
ready web applications. Having a scalable message
queueing back-end with all the discovery and dynamic
load based dispatch that Nanite has is a very scalable
way to construct web application back-ends.”
Friday, February 20, 2009
30. The interesting bits
• Scaleable back-end
• Message queueing
• Discovery
• Load based dispatch (by default)
Friday, February 20, 2009
31. Technical stuff
• RabbitMQ + AMQP
• Ruby
• Can send data JSON, Marshalled or YAML
Friday, February 20, 2009
45. Resources
• http://willj.net/…
Friday, February 20, 2009
46. Next Month
• Social meetup, want to talk?
• Thursday16th April: Ashley Moran - From
Specification to Success, a talk on BDD
Friday, February 20, 2009
Editor's Notes
- Well welcome everybody to the first talk in a while for NWRUG! We’ve got more planned and I hope people will come along for the social meetups when there are no talks.
- We have sponsorship this month from EngineYard, free pizzas and drinks, T-shirts. Full-disclosure, I work for engineyard.
- No food or drinks in the auditorium, please leave the building in the same state you found it.
- Talking about Nanite today, and cloud computing, it’s related (why)
- If this looks familiar it’s because I had the same problems George Palmer had when doing his talk at RubyManor
- transition
- But that’s OK, Vertebra is getting there and Nanite is cool
- So, Why not Vertebra?
- wasn’t working in time
- however, seen on EY nodes, actively developed
- Might do a talk on it at some point
- unless someone else gets there first (hint)
- On to the first part of the talk, cloud-computing
- so what is it?
- Ask for volunteer descriptions of cloud-computing.
- I came up with this description myself
- Seems to be no solid definition
- Some use the term to refer to the internet itself, but that already has a name
- Could even apply to the use of APIs
- smooth transition
- old-school provisioning, had to provision for maximum resource requirement (users in the case of web-apps)
- during slack periods unused capacity wastes money, idle servers
- cloud-computing for me means only dipping into my beer-fund when necessary
- OK, this should be fairly obvious by now
- go through points
-- transition
- At EY we see both expected (time-of-day) and unexpected bumps
- Best example I have seen
- mongrel queue hit ~1000
- Fixed by adding 2xCPUs per VM and more memory. Client added some cacheing.
- One more just for fun (can’t resist pretty graphs).
- Can’t remember the exact circumstances, but it’s pretty :)
- So we have an idea what it is, and why you would do it, but how?
- Doing it right, there’s no hard-and-fast point at which you are ‘cloud-computing’
- At what point does computing in the cloud stop being cloud-computing when provisioning takes too long?
- Could be dependent on the situation, ‘in time’
- Discovery. You don’t have to do this, you can configure everything yourself. Slows you down.
- Talk about discovery.
- Just for fun, what’s the earliest use of cloud-computing anyone can think of?
- wait for answers then transition
- Good discovery, easy provisioning (thanks Microsoft!)
- conclusion, iterate over points
- conclusion, iterate over points
- conclusion, iterate over points
- conclusion, iterate over points
- conclusion, iterate over points
- conclusion, iterate over points
- So what does this have to do with Nanite?
- Background processing is getting more important, web-apps are doing more, more processing power needed
- Website users get bored easily, they go somewhere else.
- Image transformations, Amazon S3 uploads, Email sending etc. all takes time.
- We move the heavy lifting out of the front-end process, freeing it up.
- Want to remain scalable
- So, on to Nanite!
- project started by Ezra, Open source, on github, under active development
- So, on to Nanite!
- project started by Ezra, Open source, on github, under active development
So what is it?
- As described in the README
- A bit wordy, but a pretty good description
It really is:
- Nanite is a background processing system, like Dj, Bj or BackgroundRb but on crack (explain)
- Allows you to shunt off work synchronously or asynchronously to back-end runners
- Written in Ruby, basically an abstraction of AMQP
- Scaleable, multiple rabbitMQ back-ends can be run
- Jobs can be put on the queue for running now or later
- Discovery. Agents advertise mappers, mappers can get a list of available agents and actions
- load-based dispatch, discuss
- Though any AMQP compliant queue should do
- RabbitMQ is the queue, it talks AMQP
- An Agent is a single process, it advertises multiple actors
- mapper is just a fancy name for the client that sends work and maybe received results
- Agents report there status by default every 15 seconds, mappers track the state of all nanites removing those that have not checked in within a timeout.
- Mappers send data to agent chosen using a fitness function. Default is least loaded (using uptime), but others are available as i’ll show you.
- Or at least we can get a lot of power by using an abstraction
- so we use nanite
- Or at least we can get a lot of power by using an abstraction
- so we use nanite
- Really easy on debian
- just follow the instructions on the nanite github page
- Sets up the queues and users in rabbitMQ
- Only needs to be done once.
- To process any jobs you then need an agent (transition)
- We will run nanite-actor in this directory
discuss
- Simple, just stick in the actors directory
- by default all methods exposed, can explicitly expose with ‘expose’ method
- The agent + actors do the work
- From the command line
- I am starting these using a bask wrapper from monit, works well.
- Mappers are the clients for agents/actors
- Just code
- this is where the mappers fit into the architecture
- Let’s attempt to summon the god of FAIL by doing a live-action demo
I am going to put up a blog post probably tomorrow with all the relevant links available.