Developing cross platform desktop application with RubyAnis Ahmad
A brief introduction and example of developing desktop application with Ruby programming language. JRuby and shoesrb is discussed as platform.
Prepared for and Presented on Ruby Conference Bangladesh 2003.
How a request from a browser flows through the Ruby on Rails applicatoin stack. For an in-class exercise in the UW Ruby Certificate Program Ruby on Rails course I teach.
Developing cross platform desktop application with RubyAnis Ahmad
A brief introduction and example of developing desktop application with Ruby programming language. JRuby and shoesrb is discussed as platform.
Prepared for and Presented on Ruby Conference Bangladesh 2003.
How a request from a browser flows through the Ruby on Rails applicatoin stack. For an in-class exercise in the UW Ruby Certificate Program Ruby on Rails course I teach.
React.js & Om: A hands-on walkthrough of better ways to build web UIsAdam Solove
This presentation introduces React, a library that makes it easier to reason about and build complex user interfaces for the web. The slides will take you through enough of React's structure and API that you can write a simple app and learn more from the React online documentation.
In part two, the slides describe Om, a ClojureScript wrapper around React that also provides a model-level abstraction for managing the data in your web application using ClojuresScript's immutable data structures. This makes it easy to test, to add undo/redo, and many other tricks hard to achieve using stateful models.
How We Do DevOps at Walmart: OneOps OSS Application Lifecycle Management Plat...WalmartLabs
Recently, Dr. Qingsong Zhang spoke at a Meetup about how Walmart is using DevOps.
Within this slide deck, you'll learn about our DataOps, DevOps and OneOps, an application lifecycle management (ALM), and open source DevOps platform for cloud which was developed by Walmart Labs.
Feel free to follow us on Twitter: @one_ops!
Contribute to One_Ops: www.oneops.com
Do you have an experience to write a client application based on http? Such as fetching the contacts from email or writing a IM client. Some of the servers provide apis which make life better, but most of them not. So how can we get the data from these servers or communicating with these servers? This talk will teach you how to analysis the packets between client and server and share my experience about how to write the client application and how to do the test and refactor.
Introduction to deployment with Ruby on Rails presented at JAX09 in Mainz by Jonathan Weiss.
Learn about the deployment architectures and setups (web and app tier) and using Capistrano/Webistrano.
React.js & Om: A hands-on walkthrough of better ways to build web UIsAdam Solove
This presentation introduces React, a library that makes it easier to reason about and build complex user interfaces for the web. The slides will take you through enough of React's structure and API that you can write a simple app and learn more from the React online documentation.
In part two, the slides describe Om, a ClojureScript wrapper around React that also provides a model-level abstraction for managing the data in your web application using ClojuresScript's immutable data structures. This makes it easy to test, to add undo/redo, and many other tricks hard to achieve using stateful models.
How We Do DevOps at Walmart: OneOps OSS Application Lifecycle Management Plat...WalmartLabs
Recently, Dr. Qingsong Zhang spoke at a Meetup about how Walmart is using DevOps.
Within this slide deck, you'll learn about our DataOps, DevOps and OneOps, an application lifecycle management (ALM), and open source DevOps platform for cloud which was developed by Walmart Labs.
Feel free to follow us on Twitter: @one_ops!
Contribute to One_Ops: www.oneops.com
Do you have an experience to write a client application based on http? Such as fetching the contacts from email or writing a IM client. Some of the servers provide apis which make life better, but most of them not. So how can we get the data from these servers or communicating with these servers? This talk will teach you how to analysis the packets between client and server and share my experience about how to write the client application and how to do the test and refactor.
Introduction to deployment with Ruby on Rails presented at JAX09 in Mainz by Jonathan Weiss.
Learn about the deployment architectures and setups (web and app tier) and using Capistrano/Webistrano.
(please download and use libreoffice, the slides look slightly messed up here)
An introduction to the Shoes GUI toolkit for Ruby. These slides are from a talk I gave at the Ruby User Group Berlin (rug-b) on the 5th of July 2012.
So what is so special about Shoes? It is simple and inspired by the web, go check it out! =)
Shoes on!
Design Patterns the Ruby way - ConFoo 2015Fred Heath
This talk showcases Design Patterns and the Ruby language. We'll provide an introduction to some of the capabilities that make Ruby unique and, at the same time, learn about some common design patterns. More importantly, we'll demonstrate how to use modern programming features like closures, lambdas and dynamic dispatching to re-think the way we implement design patterns.
Creating and Deploying Static Sites with HugoBrian Hogan
Most web sites don’t have data that changes, so why power them with a database and take the performance hit? In this talk we’ll explore static site generation using Hugo, an open-source static site generator. You’ll learn how to make a master layout for all pages, and how to use Markdown to create your content pages quickly.
Then we’ll explore how to deploy the site we made to production. We’ll automate the entire process. When you’re done, you’ll be able to build and deploy static web sites quickly with minimal tooling.
Automating the Cloud with Terraform, and AnsibleBrian Hogan
Need a web server? So did I. But setting everything up by hand is tedious. In this talk, you'll see how to build a load-balanced web server using Ansible, Terraform, and DigitalOcean, a cloud provider aimed at developers. First, you'll see how to build out the servers and load balancer, and then you'll see how to use Ansible Playbooks to install and upload the web site. When we're done, you'll have scripts you can run to set up your own environment.
Create Development and Production Environments with VagrantBrian Hogan
Need a Linux box to test a Wordpress site or a Windows VM to test a web site on IE 10? Creating a virtual machine to test or deploy your software doesn’t have to be a manual process. Bring one up in seconds with Vagrant, software for creating and managing virtual machines. With Vagrant, you can bring up a new virtual machine with the software you need, share directories, copy files, and configure networking using a friendly DSL. You can even use shell scripts or more powerful provisioning tools to set up your software and install your apps. Whether you need a Windows machine for testing an app, or a full-blown production environment for your apps, Vagrant has you covered.
In this talk you’ll learn to script the creation of multiple local virtual machines. Then you’ll use the same strategy to provision production servers in the cloud.
I work with Vagrant, Terraform, Docker, and other provisioning systems daily and am excited to show others how to bring this into their own workflows.
Docker is an amazing tool, but unless you work with it every day, you're probably left with a ton of questions. What's a container? What's an image? What's the difference between Docker, Machine, Compose, and Swarm? Why the heck should I care? Well, Docker makes it easier than ever to deploy and scale your applications and services. In addition, it lets you simulate your production environment on your local machine without heavy virtual machines. In this talk, we'll explore the basics of Docker, create a custom image for a web application, create a group of containers, and look at how you can put your apps into production on various cloud providers. At the end of the talk, you'll have the knowledge you need to put this to use with your own applications.
Come explore Elm, a functional programming language for making web things. Elm aims to solve some of the same problems that Ember, React, and Angular 2 solve, but in a radically different way. Strong and static typing ensures that data you pass around in your apps really is what you think it is. A simple and tried-and-true architecture makes it easy to understand, and great tooling makes it fun to use.
If you've ever looked into how to create Gems, you've probably seen a bunch of ways to do that. Project generators like Hoe, Jeweler, and the like offer some nice ways to get started, but they may often be overkill for many projects. If you're just starting out, why not learn to do it from scratch?
In this talk, we'll create our own gem from scratch, using only things that are provided by Ruby, its standard library, and RubyGems to craft a simple gem.
You'll learn how to set up a project, how to write and run tests, how to use Rake to quickly build the gem, and even how to create a gem that installs an executable command-line program.
Intro talks never let you learn about the things that make a language truly cool. In this talk we'll discover how advanced features of Ruby help us write cleaner more modular code.
Web Development With Ruby - From Simple To ComplexBrian Hogan
Beyond the massive hype of Ruby on Rails, there's an amazing world of frameworks, DSLs, and libraries that make the Ruby language a compelling choice when working on the web. In this talk, you'll get a chance to see how to use Ruby to quickly build a static web site, create complex stylesheets with ease, build a simple web service, crete a simple Websocket server, and test your existing applications. Finally, you'll see a few of the ways Rails really can make developing complex applications easier, from advanced database querying to rendering views in multiple formats.
Stop Reinventing The Wheel - The Ruby Standard LibraryBrian Hogan
My talk from Ruby Hoedown MMX. We talked about the Ruby standard library and how sometimes we reinvent things when we have perfectly good tools waiting for us to use them.
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
Here is something new! In our next Connector Corner webinar, we will demonstrate how you can use a single workflow to:
Create a campaign using Mailchimp with merge tags/fields
Send an interactive Slack channel message (using buttons)
Have the message received by managers and peers along with a test email for review
But there’s more:
In a second workflow supporting the same use case, you’ll see:
Your campaign sent to target colleagues for approval
If the “Approve” button is clicked, a Jira/Zendesk ticket is created for the marketing design team
But—if the “Reject” button is pushed, colleagues will be alerted via Slack message
Join us to learn more about this new, human-in-the-loop capability, brought to you by Integration Service connectors.
And...
Speakers:
Akshay Agnihotri, Product Manager
Charlie Greenberg, Host
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.
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!
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.
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/
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
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.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
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.
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.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
8. so a string and a
number can be
declared without a
type...
9. ...but you can’t just add
a number to a string
without converting it.
age = 25
"you are " + age.to_s + " years old!"
10. there’s a shortcut for
building strings though:
age = 25
"you are #{age} years old."
11. #{} embeds an
expression in a string,
converting the result to
a string!
12. Ruby has simple logic.
if on_probation(start_date)
puts "Yes"
else
puts "no"
end
13. Methods (functions) are
simple too.
# if start date + 6 months is > today
def on_probation?(start_date)
(start_date >> 6 > Date.today)
end
14. Classes can be boring...
class Person
@first_name
@last_name
def first_name=(f)
@first_name = f
end
def first_name
@first_name
end
def last_name=(l)
@last_name = l
end
def last_name
@last_name
end
end
40. Shoes.app :title => "Hello World",
:width => 320,
:height => 240 do
stack :width => "100%" do
background gray
title "Hello World"
end
stack :width => "50%" do
flow :width => "100%" do
para "Left side has some text"
end
end
stack :width => "50%" do
background white
para "Right side has some text"
para "without an inner flow."
end
end
41. Shoes.app :title => "Hello World" do
stack do
banner "Hello there."
title "The quick"
subtitle "brown fox"
tagline "jumped"
caption "over"
para "the"
inscription "lazy dog"
end
end
45. list_box
Shoes.app :title => "text boxes" do
para "Colors"
@color = list_box :items => ["green", "red", "blue"]
end
46. Use .text to grab the
values in the boxes.
Shoes.app :title => "Hello World" do
para "Enter your name"
@name = edit_line
button "Go" do
name = @name.text
alert "Hello #{name}"
end
end
47. Since everything is an
object, you can work
with it... even stacks
and flows!
48. Shoes.app do
para "add name"
button "Add" do
@names.append do
para @name.text
end
@name.text = ""
end
@names = stack
end
Hi, I’m Brian, and I’m gonna talk to you about Shoes.
No, not THOSE kind of shoes..
This kind of Shoes. A simple framework for writing graphical apps in Ruby. You can use it to write fun stuff like games, or serious stuff like database viewers or a full-blown point-of-sale system.
Highly dynamic, high level, 100% object oriented, 100% open source, and really easy to learn.
The syntax is simple - no unnecessary semicolons or curly braces. The interpreter knows when lines end.
so the type is set when you assign something to the variable.
but once it’s set, it’s set.
here we use the to_s method to turn the integer 25 into the string 25.
This is pretty common though, so Ruby handles it.
It even handles nils gracefully.
Note that the parameters you pass in aren’t typed.
This is a common pattern you see in Java, .Net, PHP, and other object oriented languages. You create instance bariables but you use getters and setters to access them.
Ruby has a built-in way of handling this pattern. It’s a huge time-saver.
Square brackets means array.
Hashes are lookups. You have the curly braces surrounding the hash’s contents.
HashRocket.
Remember... everything is an object.
The simplest Shoes app ever.
Here we can make an alert pop up when we click the button. Notice how easy it is to read that code?
Some methods set colors. Also notice that when we use hashes as parameters, it’s extremely clear to the reader of the code what’s configured. And the order doesn’t matter.
You can create gradients if you create a range
Shoes uses stacks to line elements on top of eachother. If you’ve done HTML, you can think of Stacks as block elements... each one starts on a new line.
Flows simply align next to eachother.
Shoes has helpers for various types of text.
You can grab user input easily
and you can make that input secret. It’s not encrypted in your code though.
You can use a edit box instead of an edit line if you want a multiline input box
You create dropdown lists by passing an array to the list box.
The @names section contains the names we add, and names get added when we click the button.
A window is just another Shoes app. There are some tricks you can use to pass data between the windows, too.
The video player plays mp3s, oggs, avis, movs, flvs and more.
When the app starts, these libraries get installed to the user’s home directory.
This searches YouTube and displays thumbnails of videos it finds that match the search. Clicking a video plays the clip.
This is a simple MP3 player.
So you can load files, save files, and choose colors.
Lots of people make games with Shoes, and it’s a great way to get your kids or younger siblings interested in programmin.g Since the code is open-source, you can learn from it.
You can grab the sample apps you saw here from my repository on GitHub, and you can grab Shoes there too.