In the world of social gaming, the classic 2-tier of web application does not cut it anymore. We need new and better solutions.
Follow along the evolution of game servers at Wooga and get an in-depth look into the next-generation backend putting the combined forces of Erlang and Ruby to work. Learn how scalability, reliability, concurrency control and beautiful code do not need to be mutually exclusive.
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.
In the world of social gaming, the classic 2-tier of web application does not cut it anymore. We need new and better solutions.
Follow along the evolution of game servers at Wooga and get an in-depth look into the next-generation backend putting the combined forces of Erlang and Ruby to work. Learn how scalability, reliability, concurrency control and beautiful code do not need to be mutually exclusive.
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.
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.
PECL Picks - Extensions to make your life betterZendCon
One of the biggest strengths of PHP is its "glue" power. Take any C library and with a little magic and a compiler you have a fantastic extension. These extensions hide in PECL, but few people can tell the good from the unmaintained or just plain broken. Find the best extensions for your project, learn about PECL, and find out how to become a part of the PECL developer community.
Akka is using the Actors together with STM to create a unified runtime and programming model for scaling both UP (multi-core) and OUT (grid/cloud). Akka provides location transparency by abstracting away both these tangents of scalability by turning them into an ops task. This gives the Akka runtime freedom to do adaptive automatic load-balancing, cluster rebalancing, replication & partitioning
A tour of (advanced) Akka features in 40 minutesJohan Janssen
These are the slides for my Akka presentation at JavaLand in 2017. It covers most Akka features like (remote) actors, clusters, FSM, Akka HTTP and persistence. It's explained on a high level to get an idea on what is possible with Akka.
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.
PECL Picks - Extensions to make your life betterZendCon
One of the biggest strengths of PHP is its "glue" power. Take any C library and with a little magic and a compiler you have a fantastic extension. These extensions hide in PECL, but few people can tell the good from the unmaintained or just plain broken. Find the best extensions for your project, learn about PECL, and find out how to become a part of the PECL developer community.
Akka is using the Actors together with STM to create a unified runtime and programming model for scaling both UP (multi-core) and OUT (grid/cloud). Akka provides location transparency by abstracting away both these tangents of scalability by turning them into an ops task. This gives the Akka runtime freedom to do adaptive automatic load-balancing, cluster rebalancing, replication & partitioning
A tour of (advanced) Akka features in 40 minutesJohan Janssen
These are the slides for my Akka presentation at JavaLand in 2017. It covers most Akka features like (remote) actors, clusters, FSM, Akka HTTP and persistence. It's explained on a high level to get an idea on what is possible with Akka.
At Scale With Style (Erlang User Conference 2012)Wooga
In the world of social gaming, the classic 2-tier of web application does not cut it anymore. We need new and better solutions.
Follow along the evolution of game servers at Wooga and get an in-depth look into the next-generation backend putting the combined forces of Erlang and Ruby to work. Learn how scalability, reliability, concurrency control and beautiful code do not need to be mutually exclusive.
Here is the presentation I did at Trifork GeekNights, January 12+13.
The talk is about my journey into Erlang land, how we need to start thinking about threads and processes in a new way, and some aspects of the work I have done towards implementing Erlang on the JVM platform.
Follow-up discussion either at my blog: http://javalimit.com/ or at http://groups.google.com/group/erjang
From Ansible's website: "Ansible is a radically simple IT automation engine that automates cloud provisioning, configuration management, application deployment, intra-service orchestration, and many other IT needs."
This introduction is based on ansible official docs, capturing most important information to make it easy to understand Ansible main concepts.
Practical IoT Exploitation (DEFCON23 IoTVillage) - Lyon YangLyon Yang
This is a light training/presentation talk.
My name is Lyon Yang and I am an IoT hacker. I live in sunny Singapore where IoT is rapidly being deployed – in production. This walkthrough will aim to shed light on the subject of IoT, from finding vulnerabilities in IoT devices to getting shiny hash prompts.
Our journey starts with a holistic view of IoT security, the issues faced by IoT devices and the common mistakes made by IoT developers. Things will then get technical as we progress into a both ARM and MIPS exploitation, followed by a ‘hack-along-with-us’ workshop where you will be exploiting a commonly found IoT daemon. If you are new to IoT or a seasoned professional you will likely learn something new in this workshop.
https://www.iotvillage.org/#schedule
Infinit's reactor C++ framework allows developers to program in a natural way without having to deal with complex thread-based flows that decrease maintainability and efficiency.
This is a talk that I gave at the San Francisco DevOps meetup on 9/29/15. I talk about how Yelp performs service discovery using SmartStack and Docker.
Similar to Combining the strength of erlang and Ruby (20)
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
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.
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.
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.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
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/
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.
2. Game Server for Upcoming Wooga Game
What is a game server?
• provide HTTP API to actual game („client“)
• validate API calls against current state & game logic
• API calls will modify the game state
• make game state persistent
3. Game Server for Upcoming Wooga Game
It will be a stateful game server
• one process per ac4ve user gaming session
• the process holds the current state and is the only one that can modify it
(strong encapsula:on)
• the process handles all API calls for the given user one a=er the other
(concurrency control through actor model)
• the process loads the game state from storage and writes it back
periodically and on process termina:on (:meout = user stopped playing)
4. Game Server for Upcoming Wooga Game
Details on the basic idea:
Awesome presenta4on on the
Magic Land game server by
@knu4n & @hungryblank
hZp://www.slideshare.net/wooga/from-‐0-‐to-‐1000000-‐daily-‐users-‐with-‐erlang
5. Our Goals
• Get most of the benefits from wooga’s pure-‐erlang game
server (Magic Land)
• especially func:onal approach for game state
encapsula:on and transforma:on + concurrency control
• But: Keep Object-‐Oriented approach for modelling the
game logic
6. Expected OO-‐Benefits
• Rapid development
• concise & expressive syntax
• leverage exis4ng know how
• but: keep the OO part stateless and side-‐effect free
to avoid the usual traps & pidalls
7. Target Architecture
Authority for:
Load Balancer
"What app server is responsible for
current session?"
App Server Node App Server Node App Server Node
Erlang VM Erlang VM Erlang VM
...
Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby Ruby
... ... ...
Worker Worker Worker Worker Worker Worker Worker Worker Worker
Shared Storage
for game state snapshots and for storing cold game sessions
8. Example Game Ac4on in Ruby
URL
game_action '/:actor/fruit_tree/self/shake',
:affects => [:fruit_trees, :user] do |response|
x, y = params[:x], params[:y]
fruit_trees[x, y].shake affected parts of
end
the game state
• DSL-‐like defini4on of game ac4on
• skinny as controllers should be 8-‐)
9. Example Model in Ruby
Inheritance
class FruitTree < Tree
property :last_shake_time, :type => Integer, :default => 0 DSL-‐like defini4on
property :collectable_fruit_count, :type => Integer, :default => 0
of persistent state
def shake
raise Error::Validation, "FruitTree at (#{x}, #{y}) has no fruit" unless carries_fruit?
session.user.xp += 1
session.user.energy -= 1
self.last_shake_time = game_time
self.collectable_fruit_count = config.fruit_count
end
# ...
end
• easily unit testable
• minimal amount of code
10. erlang talking to Ruby
Some op4ons
• erlectricity hZps://github.com/mojombo/erlectricity:
Can talk erlang binary protocol to Ruby processes through erlang
ports
• ernie hZps://github.com/mojombo/ernie:
Remote func4on call using the BERT-‐RPC protocol to either Ruby or
na4ve erlang processes
• ZeroMQ <hZp://www.zeromq.org/>:
awesome brokerless queue transport layer, connects 30+ languages
11. ZeroMQ
Pro Con
• loose coupling of erlang and • yet another layer
Ruby through queues
• easily deploy new Ruby
code without touching
erlang
• allows flexible transports,
even accross machines
12. Connec4ng the Dots
• use Mongrel2 hZp://mongrel2.org/ protocol & ZeroMQ setup
• erlang: emongrel2 hZps://github.com/hungryblank/emongrel2
• Ruby
• rack-‐mongrel2 fork hEps://github.com/khiltd/khi-‐rack-‐mongrel2
• rack protocol hEp://rack.rubyforge.org
• Sinatra hEp://www.sinatrarb.com/
➡ essen4ally we are speaking HTTP over ZeroMQ
and can hook up any Rack-‐based Ruby web framework
14. How does the game state look like?
• Has many parts, each part has a name (e.g. fruit_trees) and some
content
• this is a performance op:miza:on, so that we don't need to send the
complete state back and forth for every call
• erlang does not care about the content (binary data)
• actually the content contains serialized objects (e.g. a
MapObjectCollection containing FruitTree members)
• erlang does need to know, what game ac4on needs what state parts
15. Looking back at the Game Ac4on
game_action '/:actor/fruit_tree/self/shake',
:affects => [:fruit_trees, :user] do |response|
x, y = params[:x], params[:y]
fruit_trees[x, y].shake affected parts of
end
the game state
• Ruby knows the mapping of game ac4ons to affected state parts
• pushes the mapping on startup & makes it available on request
16. Aside: Efficient Game State Access
• considered different serializa4on formats (e.g. JSON,
MessagePack)
• especially for large collec4ons of objects we wanted to avoid
parsing everything to extract a single object
• chose TNetstrings hZp://tnetstrings.org/ as a serializa4on
format (length prefix helps searching/lazy parsing)
• built a lazy parser/encoder for it in C for speed :-‐)
hZps://github.com/wooga/lazy_tnetstring