MacRuby & HotCocoa provides concise summaries:
1. The document discusses MacRuby, a Ruby implementation for OS X that integrates tightly with Cocoa and Objective-C. It allows building desktop applications for Mac using Ruby with access to the Cocoa frameworks.
2. MacRuby compiles Ruby code to LLVM IR for just-in-time or ahead-of-time compilation, making it faster than alternative solutions. It provides a unified object model and runtime with Cocoa, removing issues like duplicate infrastructure from earlier solutions.
3. The document demonstrates how to create a simple GUI application using MacRuby and Cocoa's Interface Builder to wire controls to Ruby code handlers, similar to how callbacks
To hit Ruby3x3, we must first figure out **what** we're going to measure, **how** we're going to measure it, in order to get what we actually want. I'll cover some standard definitions of benchmarking in dynamic languages, as well as the tradeoffs that must be made when benchmarking. I'll look at some of the possible benchmarks that could be considered for Ruby 3x3, and evaluate them for what they're good for measuring, and what they're less good for measuring, in order to help the Ruby community decide what the 3x goal is going to be measured against.
To hit Ruby3x3, we must first figure out **what** we're going to measure, **how** we're going to measure it, in order to get what we actually want. I'll cover some standard definitions of benchmarking in dynamic languages, as well as the tradeoffs that must be made when benchmarking. I'll look at some of the possible benchmarks that could be considered for Ruby 3x3, and evaluate them for what they're good for measuring, and what they're less good for measuring, in order to help the Ruby community decide what the 3x goal is going to be measured against.
Mini curso ministrado no Semcomp 15 da USP São Carlos. Parte do curso foi descrito em quadro branco. Os slides são referências somente para quem fez o curso ao vivo.
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のすばらしさを説明します。
Track 3 - A robot in the classroom
Authors: Pedro Tavares, Pedro Costa, José Lima and António Paulo Moreira
https://www.youtube.com/watch?v=2CFWpTaUY44&index=5&list=PLboNOuyyzZ85UwWh70luNvKIhX8U1gxug
I will talk about some improvements of GC in Ruby 2.0.0. For instance, I will introduce about implementations of Bitmap Marking GC and so on, and show results of benchmarks after these are implemented.
Animation version is here: https://gumroad.com/l/xWCR (premium version)
Presentation given at the Scottish Ruby Conference 2010. It was mainly a practical demo, so please watch the video at http://video2010.scottishrubyconference.com/show_video/9/1
The talk focuses on the processes and requirements to ship a software, which was written with MacRuby, to the end user. I present libraries and tools, that are helpful for this purpose and show how to use them.
Mini curso ministrado no Semcomp 15 da USP São Carlos. Parte do curso foi descrito em quadro branco. Os slides são referências somente para quem fez o curso ao vivo.
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のすばらしさを説明します。
Track 3 - A robot in the classroom
Authors: Pedro Tavares, Pedro Costa, José Lima and António Paulo Moreira
https://www.youtube.com/watch?v=2CFWpTaUY44&index=5&list=PLboNOuyyzZ85UwWh70luNvKIhX8U1gxug
I will talk about some improvements of GC in Ruby 2.0.0. For instance, I will introduce about implementations of Bitmap Marking GC and so on, and show results of benchmarks after these are implemented.
Animation version is here: https://gumroad.com/l/xWCR (premium version)
Presentation given at the Scottish Ruby Conference 2010. It was mainly a practical demo, so please watch the video at http://video2010.scottishrubyconference.com/show_video/9/1
The talk focuses on the processes and requirements to ship a software, which was written with MacRuby, to the end user. I present libraries and tools, that are helpful for this purpose and show how to use them.
This is a set of modified MacRuby presentation slides given at the Pittsburgh Ruby Brigade meeting on Nov 5, 2009. The original presentation was given by Patrick Thomson at C4[3] in September, 2009. Slides 68 and 69 were added by me for the PghRB talk.
Patrick's original slides are available at http://www.slideshare.net/importantshock/why-macruby-matters
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.
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
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.
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/
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/
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.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
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
2. Overview
About - Web developer - macruby - - Upstream - Alex - Web developer - WebApplications - doningtext
- forex-metal - In business for a while - bootstrap - Paper-C - fast - rails - ruby - reliable - testing - rspec
- cucumber - ruby - reliable - macs - ruby - rails - text mate - fast - plugins - gems - tools - interesting
techs - iphone - mac - tools - Objective-C - features like ruby - smalltalk - more code - Hello World
Example - not so fast - unlike ruby - dropped it - heard about macruby 0.3 relase - on top of Obj-C -
get curious - less code - on Mac - with Cocoa - major API - Desktop Applications - More like ruby -
liked it - Its from Apple! - from - RubyWrapper for NSObject 2001 - Integration with ProjectBuilder (IB
2002) - 2006 Laurent Sansonetti - 10.5 shipped with OS X - 2008 MacRuby shall replace RubyCocoa -
RubyCocoa is a scripting Bridge - Syntactic Sugar - Syntax Mismatch - 2 Object Graphs - Green
Threads vs. native Threads - Ruby 1.8 and ObjectiveC - Standard Libs Broken - Slow!!! - Mismatch like
String != NSString => more Code - Picture - Ruby first Class Citizen - MacRuby - Ruby 1.9 - Native
Threads - Matches better with Obj Syntax - Faster - Tighter Integration with Obj-C - Share Base classes
- Share Infrastructure - GC - MacRuby 0.5 - the best Ruby for Mac - In Development - NO GLI - Share
IO - On top of LLVM - Doing optimizations - Calls Obj-C - class/methods/obj all Obj C - show Methods
- No more libffi but uses a new C-dispatcher - Picture! - Show Mixing MacRuby with ObjC - Compiles
Code JIT - soon AOT - other Platforms - iPhone? - IB integration! - Framework - main_rm - Outlet -
Action - Delegates - Like ActiveRecord Callbacks - but fixed names - you tell who handle it - first
responder - Delegate for Application - Show Random Number Gen with IB - Code Obj-C/MacRuby-
All the things I’d like to talk about.
3. Outline
Intro
Objective-C Encounter
Apple - Ruby
RubyCocoa
MacRuby 0.5
MacRuby <-> Obj-C
Interface Builder Integration
Back to Code with HotCocoa
Impact
25. First Objective-C App
class Foo
attr_writer :text_field
def seed(sender)
@text_field.StringValue = quot;Generator doesn't need to be seeded ;)quot;
end
def generate(sender)
@text_field.StringValue = (rand(100) + 1)
end
end
Same Obj-C Tutorial App with MacRuby.
35. RubyCocoa
Use Objects from Obj-C in Ruby and vice versa
Syntax matching
[Class initWith:(type) p1 other:(type) p2]
Frameworks
Class.initWith_other(p1, p2)
Extending/Inheriting/Overwriting
App Std Lib Obj-C
Access to C-Structs
Ruby Code GC GC IO GCC
Bridge
MRI 1.8 Obj-C Runtime
36. RubyCocoa
Messaging between Obj-C and Ruby is slow!
Frameworks
App Std Lib Obj-C
Ruby Code GC GC IO GCC
Bridge
MRI 1.8 Obj-C Runtime
37. RubyCocoa
Two Object Spaces
quot;Hiquot; != @quot;Hiquot;
Green Threads vs. Native Threads Frameworks
App Std Lib Obj-C
Ruby Code GC GC IO GCC
Bridge
MRI 1.8 Obj-C Runtime
RubyCocoa can run only on the MainThread.
Ruby needs patching to allow to work with the Obj-C runtime.
41. 2008
MacRuby
shall replace RubyCocoa
in the future
The appearance of MacRuby
42. 2009
MacRuby gets popular
Ruby 1.8.7, Rails 2.3, RubyGems
and RubyCocoa
on OSX 10.6
Community starts to grow.
Gets buzz, because it for example faster than YARV.
Appears more in screencasts/conferences.
Apple Stayes true to ruby
45. ./miniruby -e 'p Array.new.methods(true, true)'
[:quot;sortUsingFunction:context:quot;, :quot;exchangeObjectAtIndex:withObjectA
tIndex:quot;, :removeAllObjects, :quot;getObjects:range:quot;, :quot;containsObject
:inRange:quot;, :removeObjectsInRange, :removeObjectAtIndex, :removeLas
tObject, :quot;replaceObjectAtIndex:withObject:quot;, :quot;insertObject:atInde
x:quot;, :addObject, :quot;countByEnumeratingWithState:objects:count:quot;, :ob
jectAtIndex, :count, :mutableCopyWithZone, :copyWithZone, :classFor
Coder, :finalize, :hash, :isEqual, :sortUsingDescriptors, :filterUs
ingPredicate, :initWithContentsOfURL, :initWithContentsOfFile, :sor
tUsingSelector, :quot;removeObjectsFromIndices:numIndices:quot;, :removeObj
ectsAtIndexes, :quot;replaceObjectsAtIndexes:withObjects:quot;, :quot;insertObj
ects:atIndexes:quot;, :quot;sortUsingFunction:context:range:quot;, :quot;initWithOb
jects:count:quot;, :initWithCapacity, :removeObjectsInArray, :quot;removeOb
jectIdenticalTo:inRange:quot;, :removeObjectIdenticalTo, :quot;removeObject
:inRange:quot;, :removeObject, :quot;removeObject:range:identical:quot;, :setAr
ray, :quot;setObject:atIndex:quot;, :addObjectsFromArray, :quot;replaceObjectsI
With the extra second argument set on true, you can see the Obj-C methods.
46. MacRuby 0.5
Generate Obj-C calls for Ruby code
Intermediate Representation (IR)
App Std Lib
Optimization Frameworks
Ruby Code
JIT compiler to execute code
GCC
LLVM ~ 3 x faster than YARV
JIT/AOT GC IO LLVM
AOT compiler very soon
Obj-C Runtime
LLVM = Low Level Virtual Machine
47. MacRuby 0.5
Generate Obj-C calls for Ruby code
Intermediate Representation (IR)
App Std Lib
Optimization Frameworks
Ruby Code
JIT compiler to execute code
GCC
LLVM ~ 3 x faster than YARV
JIT/AOT GC IO LLVM
AOT compiler very soon
Obj-C Runtime
AOT Compiler might allow to build for the iPhone. The garbage collection is still an open
question.
49. MacRuby 0.5
One runtime
App One Lib
Std object space
Frameworks
Shared infrastructure
Ruby Code
Multithreaded Obj-C
LLVM
JIT/AOT GC IO GCC
Obj-C Runtime
No GIL is needed.
50. MacRuby 0.5
MacRuby is not fully functional yet.
Not installable around 85% RubySpecs passes.
You can play with miniruby.
56. Pointer
NSError* error;
//MacRuby 0.4
error = Pointer.new_with_type('@')
//MacRuby 0.5
error = Pointer.new(:object)
Pointers are often used as a means for output parameters, mostly for error handling.
58. Use Ruby from Objective-C
//Possible
id dog = [NSClassFromString(@quot;Dogquot;) new];
[dog bark]
//Safer
id dog = [[MacRuby sharedRuntime]
evaluateString:@quot;Dog.newquot;];
[dog performRubySelector: @selector(bark:)];
Ruby Parameters are always objects, careful when passing primitives!
71. def applicationDidFinishLoading(message)
// do somehting here
end
I am your delegate
Answer my Emails!
Alternative explanation: ActiveRecord callbacks with fixed names defined in another object.
72. With InterfaceBuilder you get very much, very fast, with very little code but rather static.
Good for small Apps, prototypes, App parts.
77. HotCocoa
Constructors with smart defaults
Constants mapped to Symbols
Custom methods
Easy delegation
Constructors- Building the instances of the mapped classes using the correct class-specific
APIs
Smart Defaults - Default constructor parameters to minimize the needed parameters
Constant Mapping - Use of Ruby symbols to minimize the text and incr. readability
Custom Methods- Ruby-friendly API for commonly used methods
Delegate Methods - Ruby-friendly methods for delegating instances
78. Hello World HotCocoa
require 'hotcocoa'
include HotCocoa
application do
window = window(title: 'Hello World', frame: [0,0,200,60])
label = label(text:'Hello RailsWayCon!', layout: {align::center})
window << label
end
Same App done with MacRuby.