This talk discusses ways to keep work playful (and as a side effect do better work), including:
* Dealing with crusty data formats and protocols in a lighthearted way
* Scripting other people’s software (whether they know it or not)
* Sharing your code with co-workers without annoying them
* Deploying your programs to honest-to-goodness paying customers
Slides from a workshop I held for some colleagues during December 2010. Slides, exercises and solutions downloadable at http://kjeldahlnilsson.net/ruby101.zip
Dynamic languages, for software craftmanship groupReuven Lerner
Reuven Lerner's talk about dynamic programming languages in general, and about Ruby in particular. Why would you want to use a dynamic language? What can you do with one that isn't possible (or easy) with a static language?
This talk discusses ways to keep work playful (and as a side effect do better work), including:
* Dealing with crusty data formats and protocols in a lighthearted way
* Scripting other people’s software (whether they know it or not)
* Sharing your code with co-workers without annoying them
* Deploying your programs to honest-to-goodness paying customers
Slides from a workshop I held for some colleagues during December 2010. Slides, exercises and solutions downloadable at http://kjeldahlnilsson.net/ruby101.zip
Dynamic languages, for software craftmanship groupReuven Lerner
Reuven Lerner's talk about dynamic programming languages in general, and about Ruby in particular. Why would you want to use a dynamic language? What can you do with one that isn't possible (or easy) with a static language?
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/
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
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.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
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.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
3. Ruby, Don't Take Your Love To Town
Ruby is "an interpreted scripting language for
quick and easy object-oriented programming“
4. Ruby‘s Arms
▪ interpreted
– powerful string operations and regular expressions
>> puts "Let's go" + " Nats!“
Let's go Nats!
– not compiled
▪ quick and easy
– variable declarations are unnecessary (random_statement = “this is a string”)
– it's all about happiness
▪ object oriented
– everything is an object ("hey does that mean that __ is an ob--" "yes“)
– classes, methods, inheritance
5. MINASWAN
▪ Yukihiro "Matz" Matsumoto
▪ “You want to enjoy life, don't
you? If you get your job done
quickly and your job is fun,
that's good isn't it?That's the
purpose of life, partly.Your life
is better.”
6. It’s really hard to avoid railroad puns
Rails is a “web application development framework written in
the Ruby language. It is designed to make programming web
applications easier by making assumptions about what every
developer needs to get started.”
7. Working on the Rails Road
▪ back end platform
– runs on a web server (server-side)
– interacts with front-end (in the browser, client-side) elements (HTML,CSS,
JavaScript)
▪ convention over configuration
– Rails expects you to follow certain conventions in exchange for sparing you time
spent on configuration
– easier to collaborate & increased productivity
▪ points of confusion
– when there's no convention
– changing the default
– Rails magic and obscurity
8. If Rails is the Creature
▪ David Heinemeier Hansson
(DHH)
▪ Drives racecars
▪ Created Rails for speed, self-
reliance, and programmer
happiness
▪ "If we don't have toys, we're
just adults."
9. Do I have to learn Ruby for Rails?
Yes
-- sort of
12. Numbers
▪ Trying running the following code in the REPL (you can use your own
numbers, but make sure you use the same numbers each time)
print 4 / 2
print 4 % 2
print 4.0 / 2.0
print 4.0 % 2.0
▪ What output do you get? Can you venture a guess why?
13. Strings
▪ Lines of text composed of characters
>> puts "Let's go" + " Nats!“
Let's go Nats!
14. Variables
▪ Variables in math and programming are pretty similar
▪ Placeholders that represent or point to some value
– x = 5 name = “Tom Marvolo Riddle” numbers = [1, 2, 3, 4]
▪ Can be re-written/overwritten
name = “I am LordVoldemort”
15. Strings
▪ Lines of text composed of characters
>> puts "Let's go" + " Nats!“
Let's go Nats!
▪ Makes string interpolation easy by evaluating between the brackets
– x = 5 y = 10 “I ate #{x+y} grapes.” => “I ate 15 grapes.”
▪ Create a variable called name, assigned to a string of your name
▪ Create a variable assigned to the name of the person next to you
▪ Once you’ve done it in person, how would you introduce yourself to each
other in Ruby code using the variables?
▪ http://ruby-doc.org/core-2.2.0/String.html
16. Arrays
▪ Ordered collections of things: [“apple”, “peach”, 8, “banana”, 1.0]
▪ Items are accessed by the index number of the thing in square brackets : [#]
▪ Make an array of at least five things
– How do you access the fifth/last item?
– Given what you know about variables and accessing items, change the second element to
“banana”
– With this syntax, how might we add a new element to the array?
– Tough one: How would you delete “banana”?
▪ http://ruby-doc.org/core-2.2.0/Array.html
17. Hashes
▪ A collection of unique keys and their values
grades = { “Dzhoy” => 86, “Paris” => 65, “Tiana” => 92, “Herve” => 45 }
▪ Items are accessed with brackets just like arrays : [index]
▪ Make a hash of at least five things
– How do you access the fifth/last item?
– Given what you know about variables and accessing items, change the value of
the second key to “banana”
– With this syntax, how might we add a new element to the hash?
– Tough one: How would you delete “banana”?
▪ http://ruby-doc.org/core-2.2.0/Hash.html
18. Methods
▪ +, delete, print
def method_name(input)
what you want the method to do
end
▪ You call a method by its name and any input you’re providing
double_numbers ([1, 2, 5])
▪ Create a method that will take in a person’s name and return or print
out a greeting (ex: “Hello ______, nice to meet you!”)
– Hint: string interpolation (x = 5 y = 10 “I ate #{x+y} grapes.” => “I ate 15 grapes.”)
– Call your method a few times, passing it a different name each time
19. Iteration
▪ Hugely important bit of Ruby when making a Rails app
▪ Where the program loops through a set of things and performs an action
▪ syntax
variable.each do |x|
x.something (do this thing to each one)
end
names = ["joHN", "shaNNon", "Tyson", "lily"]
names.each do |name|
puts name.capitalize
end
29. Resources
▪ Free
– Codecademy
– CodeSchool (partly)
– http://bit.ly/1T8IoL2 (Women Who Code DC Rails resource list)
– Railstutorial.org (free to read online)
– Jumpstart Labs Blogger
▪ Paid
– Udemy
– Udacity
– TeamTreeHouse (free trial option)
▪ Local Meetups
– Women Who Code DC (join our slack!)
– DCRUG (DC Ruby User’s Group)
– Arlington Ruby
– Ruby LoCo
30. Katherine McClintic
Software Engineer.Teacher. Musician. Fencer.
Person who likes to take things apart and usually
puts them back together in working order-er.
@scarletalphabet
Rails Lead forWomenWho Code DC meetup
http://installrails.com/
Editor's Notes
Before I start, I have a question. How many of you here would say that you’ve never programmed before? How many of you with hands raised have ever used Excel? You have programmed before. Excel (and similar) is at it’s heart, programming, just on a basic but important data entry level.
Welcome to a brief intro session on Ruby and Rails. I’m going to spend a little bit of time talking about the two generally, then we’ll get our hands on some actual code without having to install anything, and then I’ll leave time at the end for questions and installation issues. I’ll tweet out a link to the presentation after and post in Slack so don’t feel like you have to write anything down if you don’t want to. (3:30-4:20)
You may have several variations of Ruby, Rails, Ruby/Rails, Ruby on Rails, or something else floating around, but what does that mean. If what I’m talking to you about is Ruby on Rails, what’s the difference?
I like to think of Ruby as the raw ingredients. The flour, the sugar, the fat, and so on. You can make a great cake from scratch. But that takes a lot of time and you risk the possibility of not getting the mix exactly right.
That’s where Rails comes in. Rails is a framework for Ruby, so in this analogy it’s sort of the boxed cake mix. It’s still got flour and sugar and so on inside it, but it’s packaged up to be quick easy to use. You can customize it for your own needs, but you don’t have to in order to get a great cake out of it.
I say this mainly for the benefit of those of you with programming experience in other languages, but Ruby describes as an interpreted scripting language for quick and easy object-oriented programming.
This may be your face right now and that’s okay. We’ll dive into it a bit.
So first off, interpreted. For those of you who are coming from other languages like C or Java, Ruby is different because you don’t have to compile it first. The moment you type in a command, it reads it, parses it, and executes it. Assuming it’s a complete command anyhow.
Now quick and easy. Unlike other languages where you have to tell it that an integer is an integer, or a string (bit of text) is a string, Ruby understands that automatically.
Now object oriented. Ruby, like other object oriented languages, essentially functions by sending messages between objects. Even in a simple arithmetic problem like 1 + 2 you’re sending the addition message between 1 and 2 and because they’re both numbers (integers) they know what the plus sign means. Object oriented languages also make it easier to organize similar code to avoid repetition.
Matz is Nice and so We are Nice
Remember when I mentioned that Ruby is all about happiness? Well this is its creator, Matz. Every time he was faced with a decision when making Ruby where he could make it run a little faster or he could make the programmer happier, he chose happier every time.
So on to Rails.
Again, this may be your face right now and that’s okay. We’ll dive into this too a bit.
Backend
Convention over configuration
When there’s no convention, people often turn to gems, prepackaged bits of code that you can add to your app. Other languages and frameworks might call them libraries or packages, or modules or something else entirely.
So if Rails is the creation, if it’s the creature, who is Dr. Frankenstein? Well, it’s this guy. DHH as he’s known. He looks less like a member of a European boyband now, but this is still the picture of him that most places use, including his own website. Obligatory information: he drives racecars. The reason why Rails is so popular with startups is that it was created to enable small teams or individuals to build with speed, and to enjoy it. A lot like Matz’s goal with Ruby.
So you might be wondering if you have to learn Ruby to do Rails. The answer is:
Most of you probably want to focus on Rails, so let’s work with some elements of Ruby that will improve the ease of working with Rails. If you have a Mac I believe you should have Ruby installed already so you can open up a terminal or iTerm window, but otherwise please go to the address on the screen and click on Ruby. This is an online interpreter that will Read, Evaluate (or run) and Print your code. That’s why it’s called a REPL (a read, evaluate, print loop). There are other ones you can use for apps, but this will enable us to work some basic Ruby code without installing anything.
FixNum == Integer
Out of curiosity, did anyone try running it without the print statement? The print statement is just to be able to run all four lines at once but separately so it doesn’t think it’s all part of the same code block and just return the last statement it evaluates.
Aside from adding and subtracting and such, how do you think that understanding Ruby numbers will help in a Rails web application? (e-commerce)
Basically if it’s in quotes, it’s a string. Doesn’t matter if a number’s within those quotes or not.
Just as a way of storing text you can see already why Ruby’s strings are important in a Rails app, but to really see the power of strings we’re going to need to take a quick detour.
Who remembers or knows what variables are used for in math?
Well they’re a great way for temporarily saving or storing a reference to something that you’re going to want to use again. Do I want to print out that name all over my page? Do I want to do some operations on that collection of numbers? Putting in the variable makes it easy.
Back to strings. How many of you have ever played a video or computer game where you start by creating a character and giving it a name, and then as you play other characters greet you by saying something like Hello, your character’s name? Ever wondered how they do that, aside from perhaps assuming the logic behind it?
Run it (or press return if you’re using your terminal) just to make sure that it works.
Make an array of at least five things, making sure you’re setting it equal to a variable so we can access it later. Maybe your favorite foods or favorite numbers or favorite tv shows. Keep in mind what we’ve learned about how to write strings.
This was a bit of a trick question. In Ruby, like many other languages, the first item is the 0th item. Sort of like a newborn exists but is 0 years old.
There are other, sometimes better ways of doing this, but for consistency we’ll keep with this syntax for now.
This touches on something we’ll get to creating in a bit, called methods. Methods, whether built into Ruby or what you create, are the messages you’re sending telling things what action to take. In this case, delete deletes a particular element everywhere it occurs in an array, and delete_at deletes at a particular index.
How might arrays be useful in a Rails app, say in a blog? What are some things you might want to do to an array of stuff in a Rails app?
Keys are unique, so you can’t use them more than once. So for this example I couldn’t have Paris get a grade of 65 and another grade of 87 say.
Hash items are accessed just like arrays, but unlike arrays, any object can be a key.
Maybe tv shows or movies and their ratings, or how you liked them on a scale of 1-10. Maybe items like food or animals or people and a brief description.
This one’s a little harder to see outright, but how might hashes be useful in a Rails app? What are some things you might want to do to a hash of stuff in a Rails app? (think username => “username” password => “password” database check)
You’ve seen some built-in Ruby methods already, like +, %, /, delete, and print. Now let’s put together some things we’ve learned already and create our own.
A Ruby method starts with the abbreviation “def”, as in define. Method names in Ruby are lower-case and what’s called snake case (or connected by an underscore) if they’re more than one word. If you want your method to take any arguments, or input, you put that in parentheses after the name. The indented block of code describes what you want the method to do, and you close it all off by the word “end”.
You call a method by:
You can also call a method directly on something. *GO TO REPL* Say you have this shout. Doesn’t look really threatning does it. Try calling upcase on it. How about now?
Sometimes the looping can be conditional, like “do this while this condition is true”, and sometimes it’s what you do for the whole set.
The syntax looks like this. You call each on whatever variable refers to the collection, and tell it to do something for each element. The x between the pipe characters here is a kind of temporary placeholder that stands for the thing that you want to manipulate. You can name it anything, and should name it something that makes sense with the data you’re using.
Why do you think I said this is super important to Rails?
You’ve seen some elements of Ruby that are involved somehow in Rails, so let’s get back to Rails.
While we haven’t done anything specifically with Rails, with the tech community’s focus on Rails, is Rails the only Ruby framework? The only boxed cake mix around?
No, but, and let’s ignore the second one for a moment, it might as well be. It’s so popular compared to the next most popular one that few major companies use anything else. When trying to think of a well known company or organization that does Ruby on another framework, the only one I could come up with is the NSA, for reasons I can theorize later if you’re curious.
Rails is popular with startups like these because it allows a small team or individual to create at least a basic version of an app fairly quickly. So why doesn’t everybody use it?
You may have heard that Twitter was built with Rails. So where Rails falters is in scaling up to handle giant apps where hundreds of thousands of users transmit and save data at any single second.
So Twitter had to move off of Rails. But as you’ve just seen, Rails does a pretty good job for other companies that are household names.
Before we get to the installation part, I want to finish this off with a list of resources you might want to look into for future learning. I’ll tweet out a link to the presentation after so you don’t have to copy this all down.