This document discusses setting up JRuby and Ruby Processing to create graphical programs. It provides instructions for installing JRuby on Windows and Mac as well as setting environment variables. It also demonstrates using the Ruby Processing gem to generate a template for a program that rotates rectangles over time and running the generated program.
MacRuby is an implementation of Ruby 1.9 that is directly on top of Mac OS X core technologies. Recently, MacRuby has become viable as a tool for developing useful desktop applications for Mac OS X. However, as of March 2011, MacRuby is still missing some functionality that is present in cRuby. Therefore, MacRuby is not able to run Ruby on Rails. In my presentation, I will explain how I modified MacRuby to make it a suitable foundation for running Rails. I would also like to explain some of technical intricacies that I discovered along the way.
(Japanese)
2011年3月時点でのMacRubyはRuby処理系としての完成度は低く、Ruby on Railsが到底動作するようには思えない。しかしながら、MacRubyに対して改良 に改良を重ねることできっとRailsを動作させることができる(はずである)。 本発表ではMacRubyでRailsを動作させるために必要だった修正内容とともに、 その過程であらためて知ることになったcRubyのすばらしさを説明します。
MacRuby is an implementation of Ruby 1.9 that is directly on top of Mac OS X core technologies. Recently, MacRuby has become viable as a tool for developing useful desktop applications for Mac OS X. However, as of March 2011, MacRuby is still missing some functionality that is present in cRuby. Therefore, MacRuby is not able to run Ruby on Rails. In my presentation, I will explain how I modified MacRuby to make it a suitable foundation for running Rails. I would also like to explain some of technical intricacies that I discovered along the way.
(Japanese)
2011年3月時点でのMacRubyはRuby処理系としての完成度は低く、Ruby on Railsが到底動作するようには思えない。しかしながら、MacRubyに対して改良 に改良を重ねることできっとRailsを動作させることができる(はずである)。 本発表ではMacRubyでRailsを動作させるために必要だった修正内容とともに、 その過程であらためて知ることになったcRubyのすばらしさを説明します。
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
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.
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
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.
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
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.
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
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.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
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.
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.
64. x.times{|i|....}
C:ruby-processing>jirb -r irb/completion
irb(main):001:0> 5.times {|i| p i }
0
1
2
3
4
=> 5
irb(main):002:0>
Ruby Business Commons
2008 11 8 64
65.
def draw
translate width/2, height/2
5.times do |i|
i += 1
fill 30, i*20, 99
sz = 60 - i*10
rect 0, 0, sz, sz
end
end
Ruby Business Commons
2008 11 8 65
70.
def draw
translate width/2, height/2
rotate radians(45)
5.times do |i|
i += 1
fill 30, i*20, 99
sz = 60 - i*10
rect 0, 0, sz, sz
end
end
Ruby Business Commons
2008 11 8 70
71.
Ruby Business Commons
2008 11 8 71
72.
require 'ruby-processing'
class RotateRectangles < Processing::App
include Math
def radians(x)
return x*(PI/180)
end
Ruby Business Commons
2008 11 8 72
79. def draw def draw
translate width/2, height/2 translate width/2, height/2
ary = (0..11).map{|a| a*30}
ary.each do |r2|
push_matrix
rotate radians(45) rotate radians(r2)
translate 50, 0
h = random 100
5.times do |i| 5.times do |i|
i += 1 i += 1
fill 30, i*20, 99 fill h, i*20, 99, 80
sz = 60 - i*10 sz = 60 - i*10
rect 0, 0, sz, sz rect 0, 0, sz, sz
end end
pop_matrix
end
end end
Ruby Business Commons
2008 11 8 79
85.
def draw
translate width/2, height/2
def draw ary = (0..11).map{ |a| a *30 }
translate width/2, height/2 ary.each do |r1|
ary = (0..11).map{|a| a*30} push_matrix
rotate radians(r1)
translate 100, 0
h = random 100
Ruby Business Commons
2008 11 8 85
86. ary.each do|r2| ary.each do |r2|
push_matrix push_matrix
rotate radians(r2) rotate radians(r2)
translate 50, 0 translate 50, 0
h= random 100
5.times do |i| 5.times do |i|
i += 1 i += 1
fill h, i*20, 99, 80 fill h, i*20, 99, 80
sz = 60 - i*10 sz = 60 - i*10
rect 0, 0, sz, sz rect 0, 0, sz, sz
end end
pop_matrix pop_matrix
end
end
pop_matrix
end
end
end
Ruby Business Commons
2008 11 8 86
100. Position
require 'ruby-processing'
class Position
end
class Rectangle < Position
end class MovableDot...
class Dot
end
class MovableDot < Processing::App
Ruby Business Commons
2008 11 8 100
104. require 'ruby-processing'
class Position
attr_accessor :x, :y
end
class Rectangle < Position
end
Ruby Business Commons
2008 11 8 104
105. class Position
attr_accessor :x, :y
def initialize(x = 0, y = 0, &block)
move_to(x, y, &block)
end
end
2008 11 8 105
106. class Position
attr_accessor :x, :y
def initialize(x = 0, y = 0, &block)
move_to(x, y, &block)
end
def move_to(x, y)
@x = block_given? ? yield(x) : x
@y = block_given? ? yield(y) : y
end
end
2008 11 8 106
117. Symbol
def foo(t, x)
case x
when 1 then t.strftime(quot;%Y/%m/%dquot;)
when 2 then t.strftime(quot;%H:%M:%Squot;)
end
end
foo(Time.now, 1)
foo(Time.now, 2)
def foo(t, x)
case x
when :date then t.strftime(quot;%Y/%m/%dquot;)
when :time then t.strftime(quot;%H:%M:%Squot;)
end
end
foo(Time.now, :time)
foo(Time.now, :date)
Ruby Business Commons
2008 11 8 117
118. def initialize(x = 0, y = 0, &block)
move_to(x, y, &block)
end
Ruby Business Commons
2008 11 8 118
119. new --> initialize
irb(main):001:0> class Foo
irb(main):002:1> attr_accessor :x, :y
irb(main):003:1> def initialize(x = 0, y = 0)
irb(main):004:2> @x, @y = x, y
irb(main):005:2> end
irb(main):006:1> end
irb(main):007:0> foo = Foo.new
=> #<Foo:0x1c8b884 @y=0, @x=0>
irb(main):008:0> foo.x
=> 0
irb(main):009:0> foo.y
=> 0
irb(main):010:0> bar = Foo.new(1, 2)
=> #<Foo:0x1a9883d @y=2, @x=1>
irb(main):011:0> bar.x
=> 1
irb(main):012:0> bar.y
=> 2
2008 11 8 119
120. def move_to(x, y)
@x = block_given? ? yield(x) : x
@y = block_given? ? yield(y) : y
end
Ruby Business Commons
2008 11 8 120
124. yield
irb(main):062:0> block_1[1, 2, 3]
3
=> nil
irb(main):063:0> block_2[1, 2, 3]
ArgumentError: wrong number of arguments(3 for 2)
irb(main):064:0> block_3[1, 2, 3]
ArgumentError: wrong number of arguments(3 for 2)
2008 11 8 124
125. yield
irb(main):071:0> def multiple(a, b, &block)
irb(main):072:1> block[a, b]
irb(main):073:1> end
=> nil
irb(main):074:0> multiple(1, 2){|x, y| puts x + y}
3
=> nil
irb(main):075:0> def multiple(a, b)
irb(main):076:1> yield a, b
irb(main):077:1> end
=> nil
irb(main):078:0> multiple(1, 2){|x, y| puts x + y}
3
=> nil
2008 11 8 125
126. yield
irb(main):079:0> def multiple(a, b, &block)
irb(main):080:1> block[a, b, 3]
irb(main):081:1> end
=> nil
irb(main):082:0> multiple(1, 2){|x, y| puts x + y}
3
=> nil
irb(main):083:0> def multiple(a, b)
irb(main):084:1> yield a, b, 3
irb(main):085:1> end
=> nil
irb(main):086:0> multiple(1, 2){|x, y| puts x + y}
3
=> nil
2008 11 8 126
127. Rectangle
class Rectangle < Position
attr_accessor :width, :height
def initialize(x, y, width, height)
super(x, y)
@width, @height = width, height
end
Position
def to_a
[@x, @y, @width, @height]
end
end
Ruby Business Commons
2008 11 8 127
135. @app.rect(*@rect.to_a)
)
irb(main):001:0> def to_a
irb(main):002:1> [100, 200, 300, 400]
irb(main):003:1> end
irb(main):004:0> def foo(a, b=nil, c=nil, d=nil)
irb(main):005:1> p a
irb(main):006:1> p b
irb(main):007:1> p c
irb(main):008:1> p d
irb(main):009:1> end
irb(main):010:0> foo(to_a)
irb(main):011:0> foo(*to_a)
2008 11 8 135
136.
Ruby Business Commons
2008 11 8 136
137. class MovableDot < Processing::App
THE_NUM_OF_DOT = 20
def setup
@dots = []
dot_size, dot_margin = Dot::DEFAULT_SIZE, Dot::DEFAULT_MARGIN
THE_NUM_OF_DOT.times do |i|
initial_position = Position.new(width, height) do |wh_value|
i * (dot_size + dot_margin) + wh_value/2 - THE_NUM_OF_DOT *
((dot_size + dot_margin)/2)
end
@dots << Dot.new(initial_position)
end
end Ruby Business Commons
2008 11 8 137
138. def draw
background 0
@dots.each {|dot| dot.display}
end
end
MovableDot.new :title => quot;Movable Dotquot;, :width => 300, :height => 300
Ruby Business Commons
2008 11 8 138
142. irb>> foo, bar = 1, 2
=> [1, 2]
irb>> p foo
1
irb>> p bar
2
irb>> foo, bar = [5,6]
=> [5, 6]
irb>> p foo
5
irb>> p bar
6
Ruby Business Commons
2008 11 8 142
143.
def display
c1 = @app.color(255, 255, 255, 255)
@app.fill c1
@app.rect(*@rect.to_a)
end
def display
c1 = @app.color(*(0..3).map{rand(255)})
@app.fill c1
@app.rect(*@rect.to_a)
end
Ruby Business Commons
2008 11 8 143
162. require 'ruby-processing'
class LoopQueue
def initialize(*items) LoopQueue
@items = items Dot
@index = 0
end
def next
@index += 1
@index = 0 if @index == @items.length
current
end
def current
@items[@index]
end
end
2008 11 8 162
171. case
irb(main):002:0> def case_test(o)
irb(main):003:1> case o
irb(main):004:2> when String : quot;This is String.quot;
irb(main):005:2> when Fixnum : quot;This is Fixnum.quot;
irb(main):006:2> when Array : quot;This is Array.quot;
irb(main):007:2> end
irb(main):008:1> end
=> nil
irb(main):009:0> case_test(1) Attention!!
=> quot;This is Fixnum.quot; Ruby1.9
irb(main):010:0> case_test([1,2])
=> quot;This is Array.quot;
irb(main):011:0> case_test(quot;RBCquot;)
=> quot;This is String.quot;
irb(main):012:0>
Ruby Business Commons
2008 11 8 171