The document discusses JRuby, a Java implementation of the Ruby programming language. It provides an overview of JRuby and its benefits compared to MRI Ruby, including native threading, Unicode support, performance improvements from just-in-time compilation, better memory management from Java's garbage collection, and easier integration with existing Java libraries and enterprise infrastructure. Examples are given of ThoughtWorks projects like Mingle that use JRuby on Rails to take advantage of these benefits.
Are you still stuck in Java EE 5? Eager to move and boost developer productivity with all the cool things introduced in Java EE 7? Attend this session to hear about some of the solutions Tomitribe had to implement to completely migrate an application called Segurnet from Java EE 5 to Java EE 7. Expect a very technical session that delves into the details. Segurnet is a platform held by APS (Portuguese Insurance Association) that has served as an integration network for the insurance sector in Portugal for the last 20 years, with more than 33,000 active users.
Are you still stuck in Java EE 5? Eager to move and boost developer productivity with all the cool things introduced in Java EE 7? Attend this session to hear about some of the solutions Tomitribe had to implement to completely migrate an application called Segurnet from Java EE 5 to Java EE 7. Expect a very technical session that delves into the details. Segurnet is a platform held by APS (Portuguese Insurance Association) that has served as an integration network for the insurance sector in Portugal for the last 20 years, with more than 33,000 active users.
Slides of the OSLC Webcast of the 16th of October, 2012 presenting the OSLC-CM Perl modules in Eclipse Lyo.
Video of the webcast: http://vimeo.com/51541598
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)jaxLondonConference
Presented at JAX London 2013
Worried about the future of Java? Want to see it keep moving forward? Don't be concerned. The transformation of Java is already underway. Driven by new technologies and new opportunities Java and the JVM are entering uncharted worlds and challenging old approaches. In this session learn about one such expedition in the form of an introductory talk to technology being developed by IBM. This experimental technology is exploring a new way to share data between the JVM and other runtimes.
Stream, stream, stream: Different streaming methods with Spark and KafkaItai Yaffe
Going into different streaming methods, we will share our experience as early-adopters of Spark Streaming and Spark Structured Streaming, and how we overcame technical barriers (and there were plenty...).
We will also present a rather unique solution of using Kafka to imitate streaming over our Data Lake, while significantly reducing our cloud services’ costs.
Topics include :
* Kafka and Spark Streaming for stateless and stateful use-cases
* Spark Structured Streaming as a possible alternative
* Combining Spark Streaming with batch ETLs
* “Streaming” over Data Lake using Kafka
This is the slides from my presentation of the paper entitled "Activity Analysis – Applying Activity Theory to Analyze Complex Work in Hospitals" which was presented at the ACM Conference on Computer Supported Cooperative Work, CSCW 2011 in Hangzhou, China.
The paper is available from my homepage
http://www.itu.dk/people/bardram
Slides of the OSLC Webcast of the 16th of October, 2012 presenting the OSLC-CM Perl modules in Eclipse Lyo.
Video of the webcast: http://vimeo.com/51541598
Packed Objects: Fast Talking Java Meets Native Code - Steve Poole (IBM)jaxLondonConference
Presented at JAX London 2013
Worried about the future of Java? Want to see it keep moving forward? Don't be concerned. The transformation of Java is already underway. Driven by new technologies and new opportunities Java and the JVM are entering uncharted worlds and challenging old approaches. In this session learn about one such expedition in the form of an introductory talk to technology being developed by IBM. This experimental technology is exploring a new way to share data between the JVM and other runtimes.
Stream, stream, stream: Different streaming methods with Spark and KafkaItai Yaffe
Going into different streaming methods, we will share our experience as early-adopters of Spark Streaming and Spark Structured Streaming, and how we overcame technical barriers (and there were plenty...).
We will also present a rather unique solution of using Kafka to imitate streaming over our Data Lake, while significantly reducing our cloud services’ costs.
Topics include :
* Kafka and Spark Streaming for stateless and stateful use-cases
* Spark Structured Streaming as a possible alternative
* Combining Spark Streaming with batch ETLs
* “Streaming” over Data Lake using Kafka
This is the slides from my presentation of the paper entitled "Activity Analysis – Applying Activity Theory to Analyze Complex Work in Hospitals" which was presented at the ACM Conference on Computer Supported Cooperative Work, CSCW 2011 in Hangzhou, China.
The paper is available from my homepage
http://www.itu.dk/people/bardram
An overview of Ruby, jRuby, Rails, Torquebox, and PostgreSQL that was presented as a 3 hour class to other programmers at The Ironyard (http://theironyard.com) in Greenville, SC in July of 2013. The Rails specific sections are mostly code samples that were explained during the session so the real focus of the slides is Ruby, "the rails way" / workflow / differentiators and PostgreSQL.
Angular (v2 and up) - Morning to understand - LinagoraLINAGORA
Slides of the talk about Angular, at the "Matinée Pour Comprendre" organized by Linagora the 22/03/17.
Discover what's new in Angular, why is it more than just a framework (platform) and how to manage your data with RxJs and Redux.
BDM37: Hadoop in production – the war stories by Nikolaï Grigoriev, Principal...Big Data Montreal
Sharing of Hadoop cluster deployment experience in production from scratch on real hardware. Brief overview of Hadoop stack, its components, major deployment and configuration challenges, performance tuning and application tuning experience. Some “war stories” about the issues we have faced while operating, the benefits of DevOps approach for running Hadoop apps.
The use of containers to simplify and speed the deployment and development of applications is taking off. Most container usage is around stateless micro-services, but data and transactions are key components of most applications.
This presentation reviews:
- The purpose of containers and their usage
- How to containerize your EDB Postgres deployment
- How to deal with issues of managing your database and storage
- How to set up a cluster for high availability
- How to build a container with the EDB Postgres Enterprise Manager Agent in the container
Target Audience:
This technical presentation is for DBAs, Data Architects, Developers, DevOps, IT Operations and anyone responsible for supporting a Postgres interested in learning about Containers. It is equally suitable for organizations using community PostgreSQL as well as EDB’s Postgres Plus product family.
To listen to the recording which includes a demonstration, visit EnterpriseDB > Resources > Webcasts
Oplægget blev holdt ved et seminar i InfinIT-interessegruppen Højniveausprog til indlejrede systemer, der blev afholdt den 18. juni 2014. Læs mere om interessegruppen her: http://infinit.dk/dk/interessegrupper/hoejniveau_sprog_til_indlejrede_systemer/hoejniveau_sprog_til_indlejrede_systemer.htm
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.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
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.
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Sudheer Mechineni, Head of Application Frameworks, Standard Chartered Bank
Discover how Standard Chartered Bank harnessed the power of Neo4j to transform complex data access challenges into a dynamic, scalable graph database solution. This keynote will cover their journey from initial adoption to deploying a fully automated, enterprise-grade causal cluster, highlighting key strategies for modelling organisational changes and ensuring robust disaster recovery. Learn how these innovations have not only enhanced Standard Chartered Bank’s data infrastructure but also positioned them as pioneers in the banking sector’s adoption of graph technology.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
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.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
GridMate - End to end testing is a critical piece to ensure quality and avoid...ThomasParaiso2
End to end testing is a critical piece to ensure quality and avoid regressions. In this session, we share our journey building an E2E testing pipeline for GridMate components (LWC and Aura) using Cypress, JSForce, FakerJS…
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
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.
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/
In the rapidly evolving landscape of technologies, XML continues to play a vital role in structuring, storing, and transporting data across diverse systems. The recent advancements in artificial intelligence (AI) present new methodologies for enhancing XML development workflows, introducing efficiency, automation, and intelligent capabilities. This presentation will outline the scope and perspective of utilizing AI in XML development. The potential benefits and the possible pitfalls will be highlighted, providing a balanced view of the subject.
We will explore the capabilities of AI in understanding XML markup languages and autonomously creating structured XML content. Additionally, we will examine the capacity of AI to enrich plain text with appropriate XML markup. Practical examples and methodological guidelines will be provided to elucidate how AI can be effectively prompted to interpret and generate accurate XML markup.
Further emphasis will be placed on the role of AI in developing XSLT, or schemas such as XSD and Schematron. We will address the techniques and strategies adopted to create prompts for generating code, explaining code, or refactoring the code, and the results achieved.
The discussion will extend to how AI can be used to transform XML content. In particular, the focus will be on the use of AI XPath extension functions in XSLT, Schematron, Schematron Quick Fixes, or for XML content refactoring.
The presentation aims to deliver a comprehensive overview of AI usage in XML development, providing attendees with the necessary knowledge to make informed decisions. Whether you’re at the early stages of adopting AI or considering integrating it in advanced XML development, this presentation will cover all levels of expertise.
By highlighting the potential advantages and challenges of integrating AI with XML development tools and languages, the presentation seeks to inspire thoughtful conversation around the future of XML development. We’ll not only delve into the technical aspects of AI-powered XML development but also discuss practical implications and possible future directions.
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.
2. About me
• Ola Bini
• From Gothenburg, Sweden
• Works for ThoughtWorks Studios in London
• Programming language geek (LISP, Io, Erlang, ML,
Smalltalk, etc)
3. ThoughtWorks
• Global consulting firm
• About 900 people worldwide (UK, US, Canada, Oz,
India, China)
• Known for Agile practices
• Martin Fowler is our Chief Scientist
• 40% projected revenue in the US from Ruby/Rails
4. ThoughtWorks Studios
• Product development
• CruiseControl Enterprise
• Mingle
• RubyWorks
- CruiseControl.rb
- Production stack
- JRuby
6. What’s wrong with MRI
• Ruby 1.8: Green threading
- Can’t scale across processors/cores
- C libraries won’t/can’t yield to Ruby code (DNS)
- One-size-fits-all scheduler - doesn’t really fit all
• Ruby 1.9: Native, non-parallel threads
- Core classes and extensions not ready for parallel
execution
- Lots of work to ensure thread safety
7. What’s wrong with MRI
• Ruby 1.8: Partial Unicode
- Internet-connected apps MUST have solid Unicode
- Ruby provides partial, inconsistent support
- App developers must roll their own: Rails Multibyte
• Ruby 1.9: Full Unicode but drastic changes
- String interface changes to per-char, not per-byte
- Each String can have it’s own encoding
8. What’s wrong with MRI
• Ruby 1.8: Slower than most languages
- 1.8 is usually called “fast enough”
- ... but routinely finishes last in benchmarks
- ... and no plans to improve the situation in 1.8
• Ruby 1.9: Improvement, but still more to do
- New engine averages 3-4x improvement
- Only AOT - No JIT
- More to do: GC and threading still slow
9. What’s wrong with MRI
• Ruby 1.8: Memory management
- Simple design
- Good for many apps, but doesn’t scale
- Stop-the-world GC
• Ruby 1.9: No change
- Improved performance => more garbage
- GC problems could well multiply
10. What’s wrong with MRI
• Ruby 1.8: C language extensions
- C is difficult to write well
- No encapsulation in core
- Threading, GC issues
- Portable, but often needs recompilation
- No security restrictions
• Ruby 1.9: No change
11. What’s wrong with MRI
• Politics
- You want me to switch to what?
- ... and it needs servers/software/training?
- This will probably improve with time
• Legacy
- Lots of Java apps in the world
- Extensive library of Java frameworks/libraries
12. What is JRuby
• Java implementation of the Ruby language
• Current version 1.0.1, released in August
• Based on Ruby 1.8.5
• Started in 2001 by Jan-Arne Petersen
• Currently 6 Core developers
• Open Source - about 30-40 contributors
13. What can it do?
• All “pure Ruby” code works (with some caveats)
• Rake and RubyGems run well
• Rails works near nigh perfectly
• Many projects using JRuby+RSpec
• New combinations of JRuby+X popping up
14. What can’t it do?
• Deterministic threading
• Continuations
• Some file system operations
• fork, and other POSIX-ilk
15. JRuby solutions to MRI problems
• Native threading
• Scale across all processors/cores
• Concurrent execution, even in extensions
• Allow systems to schedule threads
• Ensure reasonable safety in core classes
16. JRuby solutions to MRI problems
• World-class, native Unicode support
• Provide Ruby’s byte[]-based String
• ... but also provide native Rails Multibyte backend
• ... and you can use the Java UTF-16 Strings directly
• ... and we’re working at implementing 1.9 Strings
• Java has complete, reliable Unicode
• ... and all libraries are Unicode-ready
17. JRuby solutions to MRI problems
• Scalable performance
• Make interpreter as fast as possible
- Should be as fast as Ruby 1.8
• Support Ruby 1.9/2.0 bytecode engine
- Same resulting performance boost
- Future-proof
• Each new version of Java improves JRuby
performance substantially
18. JRuby solutions to MRI problems
• Compile to Java bytecodes
• AOT and JIT compilation
• Let HotSpot take over
- ... by simplifying
- HotSpot JIT
- Code inlining
- Dynamic optimizations
19. JRuby solutions to MRI problems
• Let Java manage memory
• Best memory management and GC in the world
• Wide variety of GC options
- Concurrent
- Generational
- Real-time
• Scales up to enormous apps and systems
20. JRuby solutions to MRI problems
• Java-based extensions
• Easier to write than C
• Truly portable: WORA
• Clean separation between core and extensions
• No GC, threading or security issues
• Easier to expose Java libraries
21. JRuby solutions to MRI problems
• Politics don’t get in the way
- JRuby is “just another Java library”
- Minimal impact dev, admin processes
- Over ten years of mainstream Java
• Legacy integrates just fine
- Use existing services and libraries
22. Why ThoughtWorks likes JRuby
• JRuby gives access to the “enterprise” features of
Java
• Conservative environments will not use MRI
• Quick integration with legacy systems
• Cost: Java+Ruby is more cost effective than MRI
23. Why JRuby on Rails for TW?
• Deployment, deployment, deployment
• JDBC for database access
• Other libraries that provide needed, cross-platform
functionality (Java2D instead of RMagick?)
• Management (JMX and others)
• Common to do JRuby on Rails applications that work
with legacy data
24. Mingle
• Team Collaboration Tool
• First commercial JRuby on Rails application
• Originally choose JRuby for SVN plugin
• Originally developed in MRI - still MRI compatible
• Very well tested
• Mingle test suite is slower in JRuby than MRI
• ... but in production the JRuby version is quicker and
scales better
26. Mingle license decryption
• Licenses uses strong cryptography
• Using a Java RSA library
• Would have been very hard in MRI
• JRuby Java integration made it dead simple to use the
RSA library
27. Obfuscation
• Override JRuby’s LoadService
• This allows us to encrypt/decrypt all Ruby files in app/*
• Will probably move to using AOT compilation when
that is finished
• This is obfuscation - there is no real, safe protection in
it
• ... but it seems to work well enough. =)
28. Mingle + ChartDirector
• ChartDirector is a proprietary library for making charts
• Have both a Java library and a C extension library for
Ruby
• A thin wrapper over the Java library makes it possible
to use the same chart code in MRI and JRuby
30. Mingle + SVNkit
• No MRI subversion library worked on all platforms
• Initial reason for going with JRuby
• SVNkit is a Java library that provides uniform
subversion access on Linux, MacOS X, Windows,
Solaris, and all other Java platforms
• SVNkit supports file system, DAV and SVN
31. Mingle deployment
• install4j - installation and bundling of JVM
• Runs locally using Jetty
• BYO database - (used to be Derby)
• 1.1 or 1.2 will support WAR deployment
• Uses custom built Jetty launching
• Uses custom built AntBuilder scripts to generate WAR
• Uses CC.rb for MRI and Java CC for JRuby
32. Finance client 1
• Conservative, large company
• IS department standardized on Java
• JRuby on Rails application
• JRuby improves integration
• Uses the UnitRecord plugin to speed-up test suites
• Lack of good RMagick replacement have been hard
• Tomcat+Lucene seems to be causing bugs
33. Finance client 2
• Large, conservative company
• Separate business units: most information is not
shared
• Project aims to consolidate all accounts and customer
information into one place
• It’s written in mainly Ruby with small amounts of Java
• 2 persons, probably 4 months from start to finish
• Interacting with 5 disparate data sources
34. Finance client 2 - why JRuby?
• Infrastructure barrier was primary reason
- “ Those infrastructure guys are just seeing another
Java app with some static textual content (happens
to be Ruby source files)”
• Higher business value by directly lowering integration
estimates
• Using Java APIs (especially JDBC) allowed quicker
development, since no need to write new functionality
for Ruby
35. Waffle
• Java web framework
• No XML - except minimal web.xml
• Easy to learn
• No base classes/interfaces needed
• Allows most functionality to work with Ruby
• ... ERb templates can be used as views
• Ruby classes as controllers
36. Forthcoming Studios projects
• Other tools for development/team collaboration
• Will use JRuby in different ways
• ... including allow Ruby to be used as extension
language for Java based applications
• ... and improving the deployment and management
story for JRuby
• Next product will probably be GA in Jan/Feb ‘08
37. Challenges with JRuby
• Performance of unit tests
- Solution: running MRI precommit and JRuby in CI
- Solution: using UnitRecord instead
• It’s not free to run on both MRI and JRuby
• Start-up time (especially of Rails)
- Solution: staged start-up in background
- Not always enough for day-to-day development use
38. Challenges with JRuby
• JRuby regular expressions have different performance
characteristics and big-O running time in certain cases
• JRuby YAML isn’t completely stable yet (but it’s getting
there)
• High memory consumption (but still lower than
Mongrel)
• Good replacement for RMagick needed
• Lack of documentation
39. The future of JRuby (at TW)
• Continue looking at products around JRuby
• JRubyWorks
- Alleviate current problems with GoldSpike
• ActiveHibernate?
• Performance
• Other neat things