1. The document discusses the JVM byte code format and commands. It provides an overview of JVM byte code and how it differs from high level languages like Java.
2. Examples of simple JVM byte code are shown to demonstrate how operations are performed using stacks and registers rather than variables. Common operations like arithmetic, conditionals, and loops are implemented differently in byte code.
3. The document outlines several key aspects of how JVM byte code works under the hood compared to Java, such as only supporting 4 primitive types, no built-in string or loop support, and how boxing and unboxing are handled. It also lists various JVM instruction types like arithmetic, control flow, and object operations
Understanding Typing. Understanding Ruby.Justin Lin
- What is typing?
- Pros and cons of type declarations.
- What does quacking like a dock mean?
- Static Typing vs Unit Testing.
- Making us better at Ruby.
你可以在以下鏈結找到中文說明:
http://www.codedata.com.tw/social-coding/understanding-typing-understanding-ruby/
Kotlin is a statically typed programming language for the JVM, Android and the browser designed for the industry. This presentation is an overview of Kotlin features and advantages over Java including code samples.
TypeScript 101. TypeScript is a tool that allows you to utilize object oriented programming techniques with your JavaScript code. With TypeScript you have the same sort of namespaces and classes that you use to build your business objects. TypeScript classes support both inheritance and interfaces. We’ll introduce you to these concepts and show you how to use TypeScript to manage and organize your JavaScript code.
Understanding Typing. Understanding Ruby.Justin Lin
- What is typing?
- Pros and cons of type declarations.
- What does quacking like a dock mean?
- Static Typing vs Unit Testing.
- Making us better at Ruby.
你可以在以下鏈結找到中文說明:
http://www.codedata.com.tw/social-coding/understanding-typing-understanding-ruby/
Kotlin is a statically typed programming language for the JVM, Android and the browser designed for the industry. This presentation is an overview of Kotlin features and advantages over Java including code samples.
TypeScript 101. TypeScript is a tool that allows you to utilize object oriented programming techniques with your JavaScript code. With TypeScript you have the same sort of namespaces and classes that you use to build your business objects. TypeScript classes support both inheritance and interfaces. We’ll introduce you to these concepts and show you how to use TypeScript to manage and organize your JavaScript code.
TypeScript is a super set of JavaScript. This slide covers the key features of TypeScript including basics of typescript, basic types, Interfaces, Functions, Classes, Generics, Modules.
Introduction to Kotlin Language and its application to Android platformEastBanc Tachnologies
Author: Oleg Godovykh, eastbanctech.com
Kotlin is a new programming language built by Jetbrains and is a new member of JVM family. As opposed to typical reason to introduce some new language, Kotlin main goal isn't to create new paradigm or fill a new niche, but to make routine tasks much easier and safer. Kotlin gains popularity across Android developer community, and in this presentation it is shown how Kotlin usage can dramatically simplify typical mobile app development.
This is a toy compiler for the course Compiler 2016 at ACM Class, SJTU. The source language is Mx*. The target is MIPS assembly (in SPIM format).
You can refer to my presentation slides to know something about this compiler and also what I've learnt during the course.
Github: https://github.com/abcdabcd987/compiler2016
When debugging this compiler, I wrote another project LLIRInterpreter(https://github.com/abcdabcd987/LLIRInterpreter) which reads text IR and does interpretation.
This is the presentation I used to teach the first class of Python SIG (Special Interest Group) which is a class for interested students taught by students. This is not meant to be used as standalone material, rather, it is meant to point you in a useful direction. If you are new to Python, and know another programming language, I hope this will be helpful to you.
Scala Refactoring for Fun and Profit (Japanese subtitles)Tomer Gabel
A talk given at Scala Matsuri 2016 in Tokyo, Japan.
New Scala practitioners often experience the uncomfortable feeling of "not quite getting it." If you've studied the syntax and written tests, maybe production code; if you're becoming comfortable with the language and libraries, but keep worrying that there's "a better way", or that your code isn't "idiomatic enough" - this session is for you.
By refactoring a real, live codebase, this talk will provide you with new tools and increased confidence. Between the provided examples and the ensuing discussion, you will walk away with a better feel for Scala and how to employ it in the real world.
Scale and Reach: Always Up - Always On - AWS Symposium 2014 - Washington D.C....Amazon Web Services
This session will feature RAINN, and the always up, always on needed infrastructure required to support its mission. You will gain an understanding of their environment and why they chose AWS, how they tackle security and more.
With the advent of high definition, on-demand digital media, media and entertainment companies are challenged to evolve their IT infrastructure fast enough to keep up with the demands of their customers. Producing, editing and distributing media assets cost-effectively requires an automated supply chain workflow supported by significant IT infrastructure.
In this Amazon Web Services (AWS) webinar you can learn how you can make use of the economical, elastic, and on-demand compute and storage capacity that AWS offers to address the challenges faced by media & entertainment companies.
You can view a recording of this webinar on YouTube here: http://youtu.be/257u5gWuDdM
TypeScript is a super set of JavaScript. This slide covers the key features of TypeScript including basics of typescript, basic types, Interfaces, Functions, Classes, Generics, Modules.
Introduction to Kotlin Language and its application to Android platformEastBanc Tachnologies
Author: Oleg Godovykh, eastbanctech.com
Kotlin is a new programming language built by Jetbrains and is a new member of JVM family. As opposed to typical reason to introduce some new language, Kotlin main goal isn't to create new paradigm or fill a new niche, but to make routine tasks much easier and safer. Kotlin gains popularity across Android developer community, and in this presentation it is shown how Kotlin usage can dramatically simplify typical mobile app development.
This is a toy compiler for the course Compiler 2016 at ACM Class, SJTU. The source language is Mx*. The target is MIPS assembly (in SPIM format).
You can refer to my presentation slides to know something about this compiler and also what I've learnt during the course.
Github: https://github.com/abcdabcd987/compiler2016
When debugging this compiler, I wrote another project LLIRInterpreter(https://github.com/abcdabcd987/LLIRInterpreter) which reads text IR and does interpretation.
This is the presentation I used to teach the first class of Python SIG (Special Interest Group) which is a class for interested students taught by students. This is not meant to be used as standalone material, rather, it is meant to point you in a useful direction. If you are new to Python, and know another programming language, I hope this will be helpful to you.
Scala Refactoring for Fun and Profit (Japanese subtitles)Tomer Gabel
A talk given at Scala Matsuri 2016 in Tokyo, Japan.
New Scala practitioners often experience the uncomfortable feeling of "not quite getting it." If you've studied the syntax and written tests, maybe production code; if you're becoming comfortable with the language and libraries, but keep worrying that there's "a better way", or that your code isn't "idiomatic enough" - this session is for you.
By refactoring a real, live codebase, this talk will provide you with new tools and increased confidence. Between the provided examples and the ensuing discussion, you will walk away with a better feel for Scala and how to employ it in the real world.
Scale and Reach: Always Up - Always On - AWS Symposium 2014 - Washington D.C....Amazon Web Services
This session will feature RAINN, and the always up, always on needed infrastructure required to support its mission. You will gain an understanding of their environment and why they chose AWS, how they tackle security and more.
With the advent of high definition, on-demand digital media, media and entertainment companies are challenged to evolve their IT infrastructure fast enough to keep up with the demands of their customers. Producing, editing and distributing media assets cost-effectively requires an automated supply chain workflow supported by significant IT infrastructure.
In this Amazon Web Services (AWS) webinar you can learn how you can make use of the economical, elastic, and on-demand compute and storage capacity that AWS offers to address the challenges faced by media & entertainment companies.
You can view a recording of this webinar on YouTube here: http://youtu.be/257u5gWuDdM
AWS Summit London 2014 | Introduction to Amazon EC2 (100)Amazon Web Services
This session will provide an overview of the Amazon Elastic Compute Cloud (EC2) service capability and help you understand the latest updates to the range of instances types, virtual private cloud (VPC) features. It will also help you to understand the broad range of pricing options that EC2 provides and how you can use these to make smart decisions that reduce your costs.
Let’s get started. Join this session to continue your journey through the core AWS services with live demonstrations of how to set up and use the services.
Java is a high level, an object oriented and mostly used programming language. It has several applications as in web development, app development, android development etc. This is a ppt that will give a basic idea about java its uses and its applications.
In this core java training session, you will learn Handling Strings in Java. Topics covered in this session are:
• Memory Allocation & Garbage Collection
• Strings in Java
For more information about this course visit on this link: https://www.mindsmapped.com/courses/software-development/learn-java-fundamentals-hands-on-training-on-core-java-concepts/
Java is a general-purpose computer-programming language that is concurrent, class-based, object-oriented, and specifically designed to have as few implementation dependencies as possible
Java is an object-oriented programming language. It is used in a variety of computing platforms, you can see it nearly everywhere nowadays, from embedded devices and mobile phones to enterprise servers and supercomputers.
ZeroSpace is a part of Woxa Technology where industrial trainer are ready to trained you.Take a demo class and choose your future in the programming field. We offer to learn in latest technology with live project which is demanding.
feel free to contact us-: 8471003400
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Unlocking Productivity: Leveraging the Potential of Copilot in Microsoft 365, a presentation by Christoforos Vlachos, Senior Solutions Manager – Modern Workplace, Uni Systems
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...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.
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/
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.
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:
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/
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
In his public lecture, Christian Timmerer provides insights into the fascinating history of video streaming, starting from its humble beginnings before YouTube to the groundbreaking technologies that now dominate platforms like Netflix and ORF ON. Timmerer also presents provocative contributions of his own that have significantly influenced the industry. He concludes by looking at future challenges and invites the audience to join in a discussion.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
2. About myself
• In IT since 2000
• 6 years with mainframes
• Refactoring FinExpert virtual machine and finex
programming language
• Many assemblers in institute
•
•
•
•
•
Skype – mykola_bova
Twitter – mykola_bova
Facebook - FB/myk.bova
LinkedIn – ua.linkedin.com/in/mykbova
E-mail – bova.mykola@gmail.com
3. Why JVM byte code?
• A key to JVM internals and Java itself
• Practical understanding –key
for solving difficult problems
• A way to understand how it “really” works
4. What will be / will not be here?
• JVM and JVM byte code (JVM spec)
• “Touch” JVM byte code on practice
(reJ, ClassEditor)
• Libraries for byte code manipulation? – No
• Am I JVM / JVM byte code expert? - No
6. Books
1) Inside the Java Virtual Machine
Bill Venners
2) Programming for the Java™ Virtual Machine
Joshua Engel
3) The Well-Grounded Java Developer
Vital techniques of Java 7 and polyglot
programming.
Benjamin J. Evans
Martijn Verburg
7. Articles (1)
1) JVM Internals
Douglas Q. Hawkins
http://www.dougqh.net/
3) Lifting The Veil – Reading Java Byte Code
Alexander Shopov
3) Java bytecode:
Understanding bytecode makes you a better programmer
Peter Haggar
http://www.ibm.com/developerworks/ibm/library/ithaggar_bytecode/
8. Articles (2)
4) Looking "Under the Hood" with javap
by Corey McGlone
http://www.javaranch.com/journal/200408/ScjpTip
Line-javap.html
5) Understanding JVM Internals
http://www.cubrid.org/blog/devplatform/understanding-jvm-internals/
6) Java Bytecode Fundamentals
http://arhipov.blogspot.com/2011/01/javabytecode-fundamentals.html
15. 1. No variables
Bytecode employs an Assembly-like register
stack known as the locals stack to hold
variables.
Values of fields, functions and of binary
operations (+, -, * ..) are held in a stack known as
the operand stack.
16. 2. No binary logical operators
No built-in support for &&, ||, ^
Compilers implement these using jump
instructions.
(Examples in files HelloWorld_AND.javap and
HelloWorld_OR.javap)
17. 3. No loop constructs
There’s no built-in support for while, for, foreach loops.
Compilers implement these using jump
instructions.
(Example in file HelloWorld_FOR.javap)
18. 4. No String support
Like in C, there’s no built-in support for
strings, only char arrays.
Compilers usually use StringBuilder to
compensate.
No penalty for concatenating different data
types
(Example in file HelloWorld_STRING.javap)
JavaC uses java.lang.StringBuilder to combine (+)strings.
Different overloads of the .append() method are used to
concat different data types.
19. 5. Only 4 primitive types
Bytecode only operates on 4 primitives types
int, float, double, long vs. the 8 Java primitives.
char, bool, byte, short are treated as ints
(Example in file HelloWorld_INT.javap)
20. 6. Only 4 primitive types
Bytecode only operates on 4 primitives types
Compilers will add synthetic $this fields.
If you’re not making calls to your outer-class don’t forget to add a static modifier.
(Example in file HelloWorld_NESTED.javap)
21. 8 Using nested classes (2)?
Bytecode only operates on 4 primitives types
• Try and avoid implicitly creating bridge
methods by invoking private members (use
protected)
(Example in file HelloWorld_BRIDGE.javap)
22. 9. Boxing and unboxing
Boxing is added by the Java/Scala compiler.
There’s no such concept in bytecode or in the
JVM.
Watch out for NullPointerExceptions
(Example in file HelloWorld_BOXING.javap)
24. Different types are supported in the
JVM instruction set
-
opcode - Taload
byte - baload
short - saload
int - iaload
long - laload
float - faload
double - daload
char - caload
reference - aaload
25. Load and Store Instructions
• Load a local variable onto the operand stack:
iload
• Store a value from the operand stack into a
local variable: istore
• Load a constant on to the operand stack: ldc
• Gain access to more local variables using a
wider index, or to a larger immediate
operand: wide
28. Object Creation and Manipulation
• Create a new class instance: new
• Create a new array: newarray
• Access fields of classes and fields of class
instances : getfield, putfield, getstatic, putstatic
• Load an array component onto the operand stack:
baload
• Store a value from the operand stack as an array
component: bastore
• Get the length of array: arraylength.
• Check properties of class instances or arrays:
instanceof, checkcast
31. Method Invocation and Return
Instructions
• invokevirtual invokes an instance method of an
object, dispatching on the
(virtual) type of the object
• invokeinterface invokes an interface method
• invokespecial invokes an instance method requiring
special handling, whether an
instance initialization method, a private method, or a
superclass method.
• invokestatic invokes a class (static) method in a named
class.
• The method return instructions, which are distinguished
by return type: ireturn
32. Method Invocation and Return
Instructions (invokedynamic)
javac won’t emit invokedynamic
There is no direct Java language support for invokedynamic in Java 7—
no Java
expression will be directly compiled into an invokedynamic bytecode
by javac. Java 8
is expected to add more language constructs (such as default methods)
that will
make use of the dynamic capabilities.
Instead, invokedynamic is an improvement that is squarely targeted at
non-Java languages.
The bytecode has been added for dynamic languages to make use of
when
targeting the Java 7 VM (but some clever Java frameworks have found
ways to make
it work for them too).