This document is a presentation about the TorqueBox framework. It introduces TorqueBox as providing the power of JBoss with the expressiveness of Ruby. It then summarizes TorqueBox's capabilities such as deployment, scheduling jobs, messaging, dependency injection, caching, clustering, and distributed caching. The presentation encourages attendees to engage with the TorqueBox community on IRC and social media.
My goals have been:
- focusing on several project areas, where you can use jruby successfully
- share the experience that I made using ruby in the last years
- proove that things can be done easier as they are done in typical java projects
Explains how to make use of ruby in java-based work environments. There are some hints at .NET equivalents along the way.
This is part 3 of a trilogy of Star Wars-themed ruby talks given at Protegra's SDEC 2011 in Winnipeg, Canada.
Towards a software ecosystem for java prolog interoperabiltykim.mens
At SATTOSE2013, Sergio Castro presented his work in progress on developing a software ecosystem for Java-Prolog interoperabilty.
Abstract :
The Prolog community, although continuously accomplishing relevant research results on different aspects of Software Engineering, is fragmented by the lack of a common rich ecosystem comparable to the ones surrounding languages belonging to, for example, the object-oriented programming paradigm. This hinders the agile development of new software and often forces practitioners to reimplement existing artifacts, to accommodate them to the requirements of their specific incompatible environments. Some libraries exist that alleviate this problem by providing bridges to object-oriented languages, such as Java, which are surrounded by rich ecosystems. As such, the logic programming community can access and reuse well proven existing frameworks and libraries from these ecosystems. Unfortunately, these bridge libraries themselves suffer from the symptoms of a fragmented community: they provide user and programming interfaces that cannot easily be reused with other libraries that are targeting essentially the same problem. To solve this problem, we have developed a library that decouples the high level programming interface supporting common Java–Prolog operations, from a provider–dependent library interacting with a Prolog engine. A similar approach has been successfully used in the past in the domain of Java-databases interaction (e.g., JDBC). Our library, in addition to proposing a common high level API, provides a simple and modular mechanism for expressing mappings between Prolog and Java artifacts. In addition, we implement a set of reusable components that can be reused independently of the underlying Prolog engine and bridge library.
We illustrate our approach by means of an application allowing a user to visually query geographical data by means of Prolog queries, that can easily change its Prolog engine and bridge library at runtime. We demonstrate how the client code in our example is completely decoupled from any bridge library serving as a port between the two worlds.
My goals have been:
- focusing on several project areas, where you can use jruby successfully
- share the experience that I made using ruby in the last years
- proove that things can be done easier as they are done in typical java projects
Explains how to make use of ruby in java-based work environments. There are some hints at .NET equivalents along the way.
This is part 3 of a trilogy of Star Wars-themed ruby talks given at Protegra's SDEC 2011 in Winnipeg, Canada.
Towards a software ecosystem for java prolog interoperabiltykim.mens
At SATTOSE2013, Sergio Castro presented his work in progress on developing a software ecosystem for Java-Prolog interoperabilty.
Abstract :
The Prolog community, although continuously accomplishing relevant research results on different aspects of Software Engineering, is fragmented by the lack of a common rich ecosystem comparable to the ones surrounding languages belonging to, for example, the object-oriented programming paradigm. This hinders the agile development of new software and often forces practitioners to reimplement existing artifacts, to accommodate them to the requirements of their specific incompatible environments. Some libraries exist that alleviate this problem by providing bridges to object-oriented languages, such as Java, which are surrounded by rich ecosystems. As such, the logic programming community can access and reuse well proven existing frameworks and libraries from these ecosystems. Unfortunately, these bridge libraries themselves suffer from the symptoms of a fragmented community: they provide user and programming interfaces that cannot easily be reused with other libraries that are targeting essentially the same problem. To solve this problem, we have developed a library that decouples the high level programming interface supporting common Java–Prolog operations, from a provider–dependent library interacting with a Prolog engine. A similar approach has been successfully used in the past in the domain of Java-databases interaction (e.g., JDBC). Our library, in addition to proposing a common high level API, provides a simple and modular mechanism for expressing mappings between Prolog and Java artifacts. In addition, we implement a set of reusable components that can be reused independently of the underlying Prolog engine and bridge library.
We illustrate our approach by means of an application allowing a user to visually query geographical data by means of Prolog queries, that can easily change its Prolog engine and bridge library at runtime. We demonstrate how the client code in our example is completely decoupled from any bridge library serving as a port between the two worlds.
Finally Java SE 7 is GA and you can start using it. This talk will cover the most important new features of the language and the virtual machine. It will also cover some features that did not make it in to the SE 7 release. Finally we will discuss current state of Java as an ecosystem and my analysis and hopes for the future.
* История JRuby;
* Платформа JVM и ее возможности;
* Почему стоит попробовать JRuby;
* Как мы в Хот Спот используем JRuby для разработки;
* Сравнение с другими JVM языками.
There is an increasing interest in functional programming from Java developers and the organisations in which they work. For many companies the challenge now is how to make use of the competitive advantage of functional programming. For developers, how do you adapt your mindset to this newly reimagined paradigm? Through the use of examples and a modular approach to design, Clojure made simple will show how developers can be productive quickly without a major change to their current development life-cycle. We will also cover the Clojure build process, tools and exciting projects out there.
Slides from my OSCON 2010 talk "Upgrading to Rails 3". For more information including a livecoding session of upgrading a simple Rails app from 2.3 to 3, visit http://bit.ly/rails-upgrade-talk
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/
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
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
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.
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.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
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/
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.
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.
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
Are you looking to streamline your workflows and boost your projects’ efficiency? Do you find yourself searching for ways to add flexibility and control over your FME workflows? If so, you’re in the right place.
Join us for an insightful dive into the world of FME parameters, a critical element in optimizing workflow efficiency. This webinar marks the beginning of our three-part “Essentials of Automation” series. This first webinar is designed to equip you with the knowledge and skills to utilize parameters effectively: enhancing the flexibility, maintainability, and user control of your FME projects.
Here’s what you’ll gain:
- Essentials of FME Parameters: Understand the pivotal role of parameters, including Reader/Writer, Transformer, User, and FME Flow categories. Discover how they are the key to unlocking automation and optimization within your workflows.
- Practical Applications in FME Form: Delve into key user parameter types including choice, connections, and file URLs. Allow users to control how a workflow runs, making your workflows more reusable. Learn to import values and deliver the best user experience for your workflows while enhancing accuracy.
- Optimization Strategies in FME Flow: Explore the creation and strategic deployment of parameters in FME Flow, including the use of deployment and geometry parameters, to maximize workflow efficiency.
- Pro Tips for Success: Gain insights on parameterizing connections and leveraging new features like Conditional Visibility for clarity and simplicity.
We’ll wrap up with a glimpse into future webinars, followed by a Q&A session to address your specific questions surrounding this topic.
Don’t miss this opportunity to elevate your FME expertise and drive your projects to new heights of efficiency.
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.
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.
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
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.
16. “You get true multithreading that
can use all your computer’s cores
from one process, plus a virtual
machine that’s been tuned for a
decade and a half.”
Using JRuby - Bringing Ruby to Java
Saturday, July 23, 2011
17. TorqueBox
“The power of JBoss with the
expressiveness of Ruby”
Jim Crossley - MagicRuby Conference
Saturday, July 23, 2011
25. Deployment
Make knobs, not WAR!
Saturday, July 23, 2011
26. bazinga-knob.yml
application:
root: /home/bruno/app/bazinga
env: development
Saturday, July 23, 2011
27. Scheduling
Agendamento de Jobs
Saturday, July 23, 2011
28. ../app/jobs
class JobDemo
def initialize
#Codigo de inicializacao
end
def run
# O que você quer executar
end
end
Saturday, July 23, 2011
29. ../config/torquebox.yml
jobs:
sync_agenda:
job: JobDemo
cron: '0 0 12 * * ?'
end
Saturday, July 23, 2011
30. Mensageria
Java Messaging Service + HornetQ
Saturday, July 23, 2011
31. Tasks
class EmailerTask < TorqueBox::Messaging::Task
def send_welcome(payload)
to = "#{payload[:name]} <#{payload[:address]}>"
# send welcome email to the user
end
end
Saturday, July 23, 2011
32. Tasks
class UserController < ApplicationController
def register
user = User.new(params[:user])
EmailerTask.async(:send_welcome, :address =>
user.email, :name => user.name)
end
end
Saturday, July 23, 2011
34. Processors
include TorqueBox::Messaging
class PrintHandler < MessageProcessor
def on_message(body)
puts "Processing #{body} of #{message}"
end
def configure(opts)
@color = opts['color']
end
end
Saturday, July 23, 2011
35. Queues
include TorqueBox
req = Messaging::Queue.new '/queues/questions'
res = Messaging::Queue.new '/queues/answers'
Thread.new do
req.publish "What time is it?"
puts res.receive( :timeout => 1000 )
end
puts req.receive
res.publish Time.now
Saturday, July 23, 2011
37. class BazingaService
def initialize
@queue = Messaging::Queue.new(“bazinga”)
end
def start
@queue.publish “Testing”
end
def stop
# O que fazer quando o serviço receber um stop
end
end
Saturday, July 23, 2011
39. Java
package com.gurusp;
public class Bazinga {
//gets e sets
public void say(String message) { // Execução do método }
}
Deploy do jar na aplicação
app/
models/
views/
controllers/
lib/bazinga.jar
Saturday, July 23, 2011
40. Ruby
class BazingaController < ApplicationController
include TorqueBox::Injectors
def create
bazinga = inject(com.gurusp.Bazinga )
bazinga.say “Ruby is for Java”
end
end
Saturday, July 23, 2011
41. Caching
class BeersController < ApplicationController
caches_action :most_popular, :expires_in => 30.seconds
def most_popular
@popular_beers = Beer.most_popular(:limit => 25)
end
end
Saturday, July 23, 2011
Experi&#xEA;ncia com TorqueBox\nMotiva&#xE7;&#xF5;es\nMostrar um pouco como funciona\n
non experient\nveio a pedido do vinny e rinaldi pra ensinar jsf pra voces\nexperiencia real de ter que juntar os dois mundos\n
\n
Surgiu em 1995 e causa medo at&#xE9; hoje\nM&#xE9;rito da Burocracia\nmito/medo de que Java &#xE9; dificil\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
+5 anos de experi&#xEA;ncia pra decorar acr&#xF4;nimos\n
\n
\n
WAS, glassfish, jboss. Necessidade de subir app java no mundo corp\n
Enterprise the good parts. Apesar de todo buzzword existente no Java\nOs caras conseguiram juntar experiencia pra fazer coisas legais\nApresentar cada um\n
\n
Mesmo assim, come&#xE7;aram a surgir v&#xE1;rias linguagens em cima da vm\nAfinal, java nao resolve todos os problemas do mundo\nScala surgiu do descontentamento com java por exemplo\n
Sintaxe mais clara, limpa. Expressiva\nProdutividade com rails\nBom, todo mundo aqui sabe que ruby &#xE9; legal certo?\n
Os problemas s&#xE3;o os mesmos, resolvemos com nomes diferentes\nProblemas j&#xE1; resolvidos: escalabilidade, mensageria, clustering, schedule...\nPorque n&#xE3;o tirar proveito do java e do ruby?\n
\n
\n
Criado em 2008\nPatrocinado pela RedHat\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
O que &#xE9; preciso fazer no servidor? NADA, ele nao exige redeploy\n
\n
Inspirado no DelayedJobs\n
O que &#xE9; preciso fazer no servidor? NADA, ele nao exige redeploy\n
Inspirado no DelayedJobs\n
\n
\n
\n
O que &#xE9; preciso fazer no servidor? NADA, ele nao exige redeploy\n