Lint-like program checkers are popular tools that ensure code quality by verifying compliance with best practices for a particular programming language. The proliferation of internal domain-specific languages and models, however, poses new challenges for such tools. Traditional program checkers produce many false positives and fail to accurately check constraints, best practices, common errors, possible optimizations and portability issues particular to domain-specific languages. We advocate the use of dedicated rules to check domain-specific practices. We demonstrate the implementation of domain-specific rules, the automatic repair of violations, and their application to two case-studies: (1) Seaside defines several internal DSLs through a creative use of the syntax of the host language; and (2) Magritte adds meta-descriptions to existing code by means of special methods. Our empirical validation demonstrates that domain-specific program checking significantly improves code quality when compared with general purpose program checking.
Building LinkedIn's Next Generation Architecture with OSGiLinkedIn
This document discusses LinkedIn's adoption of OSGi to address challenges with their growing architecture. Some key challenges included a monolithic codebase, slow feature development, and difficulties upgrading services. OSGi was seen as a solution to allow: [1] dynamic deployment of services, [2] shared libraries across containers to improve efficiency, and [3] transparent service location across containers. However, the document also notes problems with OSGi including immature tooling, difficulty managing versions, and limitations of its container-centric design. Overall LinkedIn is moving to adopt OSGi but also working to address problems and "hide" complexity from application developers.
Paolo Ciccarese and Tommaso Teofili
These slides present
- current facilities and future plans for the Domeo Annotation Toolkit relating specifically to textmining use cases.
- and details of the integration of the Domeo Annotation Toolkit with Apache UIMA through Apache Clerezza.
Seaside is a web application framework that is written in Smalltalk. Smalltalk has been hugely influential on the development of computer languages but realistically how many people have ever used it? Seaside is a practical application of Smalltalk to the web sphere.
Interactive Media Designers.Slideshow Karen Wassnerkwassner
Interactive media designers use technology to create interactive artwork found in entertainment, product design, education, advertising, and other industries. Interactive media can include both digital and non-digital forms, such as board games, books, and mobile devices. Examples of interactive media include the World Wide Web, computer games, interactive television, and e-mail.
This document appears to be a presentation about parsing technologies like PEG parsers and parser combinators. It includes sections on context-free grammars and PEGs, examples using OMeta2 to define grammars and parse strings, and information about PetitParser. It also provides URLs for more information on OMeta and PetitParser.
Embedding Languages Without Breaking ToolsLukas Renggli
Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose host languages. DSLs provide a compact, dedicated syntax for specifying parts of an application related to specialized domains. Unfortunately, such language extensions typically do not integrate well with the development tools of the host language. Editors, compilers and debuggers are either unaware of the extensions, or must be adapted at a non-trivial cost. We present a novel approach to embed DSLs into an existing host language by leveraging the underlying representation of the host language used by these tools. Helvetia is an extensible system that intercepts the compilation pipeline of the Smalltalk host language to seamlessly integrate language extensions. We validate our approach by case studies that demonstrate three fundamentally different ways to extend or adapt the host language syntax and semantics.
Language Boxes — Bending the Host Language with Modular Language ChangesLukas Renggli
As domain-specific modeling begins to attract widespread acceptance, pressure is increasing for the development of new domain-specific languages. Unfortunately these DSLs typically conflict with the grammar of the host language, making it difficult to compose hybrid code except at the level of strings; few mechanisms (if any) exist to control the scope of usage of multiple DSLs; and, most seriously, existing host language tools are typically unaware of the DSL extensions, thus hampering the development process. Language boxes address these issues by offering a simple, modular mechanism to encapsulate (i) compositional changes to the host language, (ii) transformations to address various concerns such as compilation and syntax highlighting, and (iii) scoping rules to control visibility of fine-grained language extensions.
We describe the design and implementation of language boxes, and show with the help of several examples how modular extensions can be introduced to a host language and environment.
Building LinkedIn's Next Generation Architecture with OSGiLinkedIn
This document discusses LinkedIn's adoption of OSGi to address challenges with their growing architecture. Some key challenges included a monolithic codebase, slow feature development, and difficulties upgrading services. OSGi was seen as a solution to allow: [1] dynamic deployment of services, [2] shared libraries across containers to improve efficiency, and [3] transparent service location across containers. However, the document also notes problems with OSGi including immature tooling, difficulty managing versions, and limitations of its container-centric design. Overall LinkedIn is moving to adopt OSGi but also working to address problems and "hide" complexity from application developers.
Paolo Ciccarese and Tommaso Teofili
These slides present
- current facilities and future plans for the Domeo Annotation Toolkit relating specifically to textmining use cases.
- and details of the integration of the Domeo Annotation Toolkit with Apache UIMA through Apache Clerezza.
Seaside is a web application framework that is written in Smalltalk. Smalltalk has been hugely influential on the development of computer languages but realistically how many people have ever used it? Seaside is a practical application of Smalltalk to the web sphere.
Interactive Media Designers.Slideshow Karen Wassnerkwassner
Interactive media designers use technology to create interactive artwork found in entertainment, product design, education, advertising, and other industries. Interactive media can include both digital and non-digital forms, such as board games, books, and mobile devices. Examples of interactive media include the World Wide Web, computer games, interactive television, and e-mail.
This document appears to be a presentation about parsing technologies like PEG parsers and parser combinators. It includes sections on context-free grammars and PEGs, examples using OMeta2 to define grammars and parse strings, and information about PetitParser. It also provides URLs for more information on OMeta and PetitParser.
Embedding Languages Without Breaking ToolsLukas Renggli
Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose host languages. DSLs provide a compact, dedicated syntax for specifying parts of an application related to specialized domains. Unfortunately, such language extensions typically do not integrate well with the development tools of the host language. Editors, compilers and debuggers are either unaware of the extensions, or must be adapted at a non-trivial cost. We present a novel approach to embed DSLs into an existing host language by leveraging the underlying representation of the host language used by these tools. Helvetia is an extensible system that intercepts the compilation pipeline of the Smalltalk host language to seamlessly integrate language extensions. We validate our approach by case studies that demonstrate three fundamentally different ways to extend or adapt the host language syntax and semantics.
Language Boxes — Bending the Host Language with Modular Language ChangesLukas Renggli
As domain-specific modeling begins to attract widespread acceptance, pressure is increasing for the development of new domain-specific languages. Unfortunately these DSLs typically conflict with the grammar of the host language, making it difficult to compose hybrid code except at the level of strings; few mechanisms (if any) exist to control the scope of usage of multiple DSLs; and, most seriously, existing host language tools are typically unaware of the DSL extensions, thus hampering the development process. Language boxes address these issues by offering a simple, modular mechanism to encapsulate (i) compositional changes to the host language, (ii) transformations to address various concerns such as compilation and syntax highlighting, and (iii) scoping rules to control visibility of fine-grained language extensions.
We describe the design and implementation of language boxes, and show with the help of several examples how modular extensions can be introduced to a host language and environment.
This document summarizes a presentation about Romana Cloud Native SDN and multi-tenant networking in Kubernetes. It discusses how Romana embeds tenant and segment IDs in IP addresses to provide layer 3 isolation and tenancy without using overlays. This simplifies operations by eliminating the need for VLANs, VXLANs, and other complex networking constructs. The presentation includes examples of how Romana assigns addresses and isolates tenants, pods, and tiers through network policies. It concludes with an outline of a demo to showcase these capabilities by launching isolated tenants and enforcing policies between tiers.
L’Auto Scaling, c’est l’argument phare d’un bon nombre de technologies en Data Engineering. Parmi les outils du moment, on retrouve Kafka-Streams. Avec sa forte intégration au bus de message Apache Kafka, il est pensé pour être un framework distribué capable de passer à l’échelle. Pourtant, dans la pratique, sa seule utilisation est limitée, et l’orchestration de ces applications est généralement nécessaire.
Dans ce talk, nous parlerons de conteneurisation, d’orchestration et de monitoring, qui sont des éléments clefs qui nous permettront de profiter pleinement de la scalabilité des applications Kafka-Streams, le tout autour de technologies comme Kubernetes et Stackdriver.
¨Par Loic Divad, Data Engineer chez Xebia
This document discusses the app container runtime rkt. It provides an overview of rkt, including what it is, its goals, and how it differs from Docker. Key points include:
- Rkt implements the Application Container (appc) specification and allows running containerized applications.
- Its goals are fast downloads/starts, verifiable/cacheable images, composability, and using common technologies like DNS for discovery.
- It differs from Docker in being more composable without a central daemon, focusing more on security through image verification, and using an open standard for images instead of Docker's format.
- The document demonstrates downloading images, verifying signatures, running containers in pods with options like
Ruby on Rails com certeza é a estrela que elevou Ruby ao patamar de linguagem praticamente obrigatória a todo programador moderno. Porém muitos esquecem que Rails não é a única forma de desenvolver aplicações Web e muitas vezes nem é a melhor opção. O Ecossistema Ruby evolui a passos largos, todos os novos frameworks Web em Ruby adotaram o padrão Rack, que facilita a interoperabilidade entre frameworks Ruby. Além disso muitos estão olhando para o mundo da alta concorrência com novas tecnologias como Node.JS, mas o mundo Ruby tem opções robustas e testadas em produção como EventMachine. Enfim, vamos tentar aumentar o leque de soluções web com Ruby, além do Rails, traçando um paralelo com a plataforma .NET.
State of the art - server side JavaScript - web-5 2012Alexandre Morgaut
This document provides a history and overview of server-side JavaScript. It discusses the birth of JavaScript in 1995 and key developments through 2011, including the emergence of Node.js and other platforms that enabled JavaScript to be used for server-side applications. Examples of companies using server-side JavaScript in production are provided, such as Demandware, Neolane, MTV, Voxer, and Happy Meeple. Benchmarks of different JavaScript engines and platforms are also referenced.
State of the art: Server-Side JavaScript - dejeuner fulljsAlexandre Morgaut
This document discusses the history and state of server-side JavaScript. It traces JavaScript's evolution from 1995 to the present, highlighting milestones like the development of Node.js in 2009. Today, server-side JavaScript powers many popular frameworks and sees widespread use in applications like web servers and databases. Standards organizations continue advancing the language with new features, while large communities support it with libraries, tools, and benchmarks. Overall, server-side JavaScript has experienced a resurgence and become a mature and versatile platform.
The Developer Conference - CloudKit, entendendo a Cloud da AppleRodrigo Leite
In this lecture that I presented in the TDC, I will explain a brief experience using the framework CloudKit.
The problems found and the solutions to solve them.
This document provides an architecture guide for the CLDC HotSpot Implementation virtual machine. It describes the key components and features of CLDC HotSpot Implementation, including its dynamic compiler, threading system, multitasking support, ahead-of-time compilation, in-place execution, Jazelle option, ROMizer utility, and Java programming language debugging support. The guide is intended for engineers porting or implementing CLDC HotSpot Implementation.
The document discusses RenderScript on LLVM. It describes RenderScript as a way to perform 3D rendering and compute tasks portably and with high performance on Android. It outlines the main components: an offline compiler that optimizes scripts, an online JIT compiler, and a runtime library. It provides an example of using RenderScript to convert an image to grayscale and discusses how scripts are compiled and executed to provide fast launch times.
How to handle a missing feature of PLSQL.
String representation of a record.
This open source project is located at : http://code.google.com/p/rec2string/
FLOW3 is a web application platform which uses Domain-Driven Design as its major underlying concept. This approach makes FLOW3 easy to learn and at the same time clean and flexible for complex projects. It features namespaces, has an emphasis on clean, object-oriented code and provides a seemless Doctrine 2 integration.
FLOW3 incorporates Dependency Injection in a way which lets you truly enjoy creating a stable and easy-to-test application architecture (no configuration necessary). Being the only Aspect-Oriented Programming capable PHP framework, FLOW3 allows you to cleanly separate cross-cutting concerns like security from your main application logic.
This tutorial takes you through an imaginary project from scratch. During the journey we’ll visit all important areas of the framework.
When Docker Engine 1.12 features unleashes software architectureAdrien Blind
This slidedeck deals with new features delivered with Docker Engine 1.12, in a larger context of application architecture & security. It has been presented at Voxxed Days Luxembourg 2016
State of the art: server-side javaScript - NantesJSAlexandre Morgaut
1) The document provides a history of server-side JavaScript, beginning with its origins in 1995 and discussing key developments through 2011.
2) It outlines the growing JavaScript ecosystem, including large communities, conferences, libraries, frameworks, development tools, and engines like V8 and SpiderMonkey.
3) Server-side JavaScript aims to integrate well with other platforms and APIs, as seen in solutions like Rhino for Java and JScript.NET for .NET.
Hybrid Apps (Native + Web) via QtWebKitAriya Hidayat
This document discusses hybrid apps that combine native and web technologies using QtWebKit. It provides an overview of QtWebKit and how it can be used to embed web content in native apps. It describes various tools, technologies and frameworks that can be used to build hybrid apps, including JavaScript, CSS, Canvas, WebGL, and tools for debugging, testing, and designing hybrid apps. It concludes that web technologies are advancing rapidly and hybrid approaches can help migration, while tools still need to catch up to support building high quality hybrid apps.
This document provides an introduction to Cocoa programming and the Mac development environment. It discusses the history and architecture of macOS, the Xcode integrated development environment, Cocoa frameworks and APIs, MVC design pattern, Objective-C language basics, memory management, and gives an overview of creating a Cocoa application with examples. It also covers topics like building settings, app store customization, auto updating, and resources for learning more about Mac and iOS development.
[CB20] DeClang: Anti-hacking compiler by Mengyuan WanCODE BLUE
There are various approaches in client protection technology, including packing, obfuscation, anti-decompilation and tamper detection. In this presentation, we examine the advantages and disadvantages of these approaches, and introduce our compiler-type client protection tool DeClang.
In previous research so far, there are many open source obfuscation projects based on LLVM. However, these projects are mostly in the experimental stage, with various drawbacks such as lurking bugs, lack of ARM support, and inapplicability to mobile apps' build flow. DeClang overcomes these problems and will be partly open sourced as a working-level obfuscation compiler.
In this presentation, we will analyze the Unity build flow and explain how to incorporate DeClang into the Unity build flow.I will also show you how to find and fix a long-standing bug in the obfuscator-llvm project to make it a working-level obfuscator.
Through this presentation, we would like to make it possible for anyone to easily protect mobile apps.
Seaside does different to what is considered as best practices for Web development. It breaks with common best practices for Web development, such as to share as little state as possible, use clean and carefully chosen URLs, and use templates to separate model and presentation.
This talk will give a short introduction to a Web framework that is different by design. It will demonstrate what can be won when breaking the common patterns of Web development. Moreover it presents how Seaside integrates with the latest technologies such as AJAX and Comet.
PetitParser is a dynamic parser framework combining ideas from scannerless parsing, parser combinators, parsing expression grammars and packrat parsers. In this hands-on session we learn how to build simple parsers and how to model, test, compose and reuse complex grammars. Additionally, we will look at some tools and the reflective facilities provided by the PetitParser framework. Basic knowledge of the Smalltalk programming language is a requirement. Bring your laptop to reproduce the examples and solve some simple tasks.
Natural Language Checking with Program Checking ToolsLukas Renggli
Written text is an important component in the process of knowledge acquisition and communication. Poorly written text fails to deliver clear ideas to the reader no matter how revolutionary and ground-breaking these ideas are. Providing text with good writing style is essential to transfer ideas smoothly. While we have sophisticated tools to check for stylistic problems in program code, we do not apply the same techniques for written text. In this paper we present TextLint, a rule-based tool to check for common style errors in natural language. TextLint provides a structural model of written text and an extensible rule-based checking mechanism.
This document summarizes a presentation about Romana Cloud Native SDN and multi-tenant networking in Kubernetes. It discusses how Romana embeds tenant and segment IDs in IP addresses to provide layer 3 isolation and tenancy without using overlays. This simplifies operations by eliminating the need for VLANs, VXLANs, and other complex networking constructs. The presentation includes examples of how Romana assigns addresses and isolates tenants, pods, and tiers through network policies. It concludes with an outline of a demo to showcase these capabilities by launching isolated tenants and enforcing policies between tiers.
L’Auto Scaling, c’est l’argument phare d’un bon nombre de technologies en Data Engineering. Parmi les outils du moment, on retrouve Kafka-Streams. Avec sa forte intégration au bus de message Apache Kafka, il est pensé pour être un framework distribué capable de passer à l’échelle. Pourtant, dans la pratique, sa seule utilisation est limitée, et l’orchestration de ces applications est généralement nécessaire.
Dans ce talk, nous parlerons de conteneurisation, d’orchestration et de monitoring, qui sont des éléments clefs qui nous permettront de profiter pleinement de la scalabilité des applications Kafka-Streams, le tout autour de technologies comme Kubernetes et Stackdriver.
¨Par Loic Divad, Data Engineer chez Xebia
This document discusses the app container runtime rkt. It provides an overview of rkt, including what it is, its goals, and how it differs from Docker. Key points include:
- Rkt implements the Application Container (appc) specification and allows running containerized applications.
- Its goals are fast downloads/starts, verifiable/cacheable images, composability, and using common technologies like DNS for discovery.
- It differs from Docker in being more composable without a central daemon, focusing more on security through image verification, and using an open standard for images instead of Docker's format.
- The document demonstrates downloading images, verifying signatures, running containers in pods with options like
Ruby on Rails com certeza é a estrela que elevou Ruby ao patamar de linguagem praticamente obrigatória a todo programador moderno. Porém muitos esquecem que Rails não é a única forma de desenvolver aplicações Web e muitas vezes nem é a melhor opção. O Ecossistema Ruby evolui a passos largos, todos os novos frameworks Web em Ruby adotaram o padrão Rack, que facilita a interoperabilidade entre frameworks Ruby. Além disso muitos estão olhando para o mundo da alta concorrência com novas tecnologias como Node.JS, mas o mundo Ruby tem opções robustas e testadas em produção como EventMachine. Enfim, vamos tentar aumentar o leque de soluções web com Ruby, além do Rails, traçando um paralelo com a plataforma .NET.
State of the art - server side JavaScript - web-5 2012Alexandre Morgaut
This document provides a history and overview of server-side JavaScript. It discusses the birth of JavaScript in 1995 and key developments through 2011, including the emergence of Node.js and other platforms that enabled JavaScript to be used for server-side applications. Examples of companies using server-side JavaScript in production are provided, such as Demandware, Neolane, MTV, Voxer, and Happy Meeple. Benchmarks of different JavaScript engines and platforms are also referenced.
State of the art: Server-Side JavaScript - dejeuner fulljsAlexandre Morgaut
This document discusses the history and state of server-side JavaScript. It traces JavaScript's evolution from 1995 to the present, highlighting milestones like the development of Node.js in 2009. Today, server-side JavaScript powers many popular frameworks and sees widespread use in applications like web servers and databases. Standards organizations continue advancing the language with new features, while large communities support it with libraries, tools, and benchmarks. Overall, server-side JavaScript has experienced a resurgence and become a mature and versatile platform.
The Developer Conference - CloudKit, entendendo a Cloud da AppleRodrigo Leite
In this lecture that I presented in the TDC, I will explain a brief experience using the framework CloudKit.
The problems found and the solutions to solve them.
This document provides an architecture guide for the CLDC HotSpot Implementation virtual machine. It describes the key components and features of CLDC HotSpot Implementation, including its dynamic compiler, threading system, multitasking support, ahead-of-time compilation, in-place execution, Jazelle option, ROMizer utility, and Java programming language debugging support. The guide is intended for engineers porting or implementing CLDC HotSpot Implementation.
The document discusses RenderScript on LLVM. It describes RenderScript as a way to perform 3D rendering and compute tasks portably and with high performance on Android. It outlines the main components: an offline compiler that optimizes scripts, an online JIT compiler, and a runtime library. It provides an example of using RenderScript to convert an image to grayscale and discusses how scripts are compiled and executed to provide fast launch times.
How to handle a missing feature of PLSQL.
String representation of a record.
This open source project is located at : http://code.google.com/p/rec2string/
FLOW3 is a web application platform which uses Domain-Driven Design as its major underlying concept. This approach makes FLOW3 easy to learn and at the same time clean and flexible for complex projects. It features namespaces, has an emphasis on clean, object-oriented code and provides a seemless Doctrine 2 integration.
FLOW3 incorporates Dependency Injection in a way which lets you truly enjoy creating a stable and easy-to-test application architecture (no configuration necessary). Being the only Aspect-Oriented Programming capable PHP framework, FLOW3 allows you to cleanly separate cross-cutting concerns like security from your main application logic.
This tutorial takes you through an imaginary project from scratch. During the journey we’ll visit all important areas of the framework.
When Docker Engine 1.12 features unleashes software architectureAdrien Blind
This slidedeck deals with new features delivered with Docker Engine 1.12, in a larger context of application architecture & security. It has been presented at Voxxed Days Luxembourg 2016
State of the art: server-side javaScript - NantesJSAlexandre Morgaut
1) The document provides a history of server-side JavaScript, beginning with its origins in 1995 and discussing key developments through 2011.
2) It outlines the growing JavaScript ecosystem, including large communities, conferences, libraries, frameworks, development tools, and engines like V8 and SpiderMonkey.
3) Server-side JavaScript aims to integrate well with other platforms and APIs, as seen in solutions like Rhino for Java and JScript.NET for .NET.
Hybrid Apps (Native + Web) via QtWebKitAriya Hidayat
This document discusses hybrid apps that combine native and web technologies using QtWebKit. It provides an overview of QtWebKit and how it can be used to embed web content in native apps. It describes various tools, technologies and frameworks that can be used to build hybrid apps, including JavaScript, CSS, Canvas, WebGL, and tools for debugging, testing, and designing hybrid apps. It concludes that web technologies are advancing rapidly and hybrid approaches can help migration, while tools still need to catch up to support building high quality hybrid apps.
This document provides an introduction to Cocoa programming and the Mac development environment. It discusses the history and architecture of macOS, the Xcode integrated development environment, Cocoa frameworks and APIs, MVC design pattern, Objective-C language basics, memory management, and gives an overview of creating a Cocoa application with examples. It also covers topics like building settings, app store customization, auto updating, and resources for learning more about Mac and iOS development.
[CB20] DeClang: Anti-hacking compiler by Mengyuan WanCODE BLUE
There are various approaches in client protection technology, including packing, obfuscation, anti-decompilation and tamper detection. In this presentation, we examine the advantages and disadvantages of these approaches, and introduce our compiler-type client protection tool DeClang.
In previous research so far, there are many open source obfuscation projects based on LLVM. However, these projects are mostly in the experimental stage, with various drawbacks such as lurking bugs, lack of ARM support, and inapplicability to mobile apps' build flow. DeClang overcomes these problems and will be partly open sourced as a working-level obfuscation compiler.
In this presentation, we will analyze the Unity build flow and explain how to incorporate DeClang into the Unity build flow.I will also show you how to find and fix a long-standing bug in the obfuscator-llvm project to make it a working-level obfuscator.
Through this presentation, we would like to make it possible for anyone to easily protect mobile apps.
Seaside does different to what is considered as best practices for Web development. It breaks with common best practices for Web development, such as to share as little state as possible, use clean and carefully chosen URLs, and use templates to separate model and presentation.
This talk will give a short introduction to a Web framework that is different by design. It will demonstrate what can be won when breaking the common patterns of Web development. Moreover it presents how Seaside integrates with the latest technologies such as AJAX and Comet.
PetitParser is a dynamic parser framework combining ideas from scannerless parsing, parser combinators, parsing expression grammars and packrat parsers. In this hands-on session we learn how to build simple parsers and how to model, test, compose and reuse complex grammars. Additionally, we will look at some tools and the reflective facilities provided by the PetitParser framework. Basic knowledge of the Smalltalk programming language is a requirement. Bring your laptop to reproduce the examples and solve some simple tasks.
Natural Language Checking with Program Checking ToolsLukas Renggli
Written text is an important component in the process of knowledge acquisition and communication. Poorly written text fails to deliver clear ideas to the reader no matter how revolutionary and ground-breaking these ideas are. Providing text with good writing style is essential to transfer ideas smoothly. While we have sophisticated tools to check for stylistic problems in program code, we do not apply the same techniques for written text. In this paper we present TextLint, a rule-based tool to check for common style errors in natural language. TextLint provides a structural model of written text and an extensible rule-based checking mechanism.
Most today's software is highly static, even if it is written in a dynamic language like Smalltalk. Developers are not encouraged to extend the frameworks they are using; and end-users are unable to change the features of their software without initiating a new development effort. In contrast, extensible software is designed for change; and customizable software can be adapted to new needs without requiring an in-depth knowledge of the underlying implementation domain.
In this presentation I will investigate on how to write truly dynamic software and I will distill common patterns of software customizability. As running examples I present tools that I worked on during my path of discovering Smalltalk. One of these examples is Magritte, a dynamic meta-model that gives end-users the possibility to customize their applications without the need of an additional development effort. Another example is Helvetia, an infrastructure enabling on-the-fly customization of the programming language and development environment.
Dynamic Language Embedding With Homogeneous Tool SupportLukas Renggli
Domain-specific languages (DSLs) are increasingly used as embedded languages within general-purpose host languages. DSLs provide a compact, dedicated syntax for specifying parts of an application related to specialized domains. Unfortunately, such language extensions typically do not integrate well with existing development tools. Editors, compilers and debuggers are either unaware of the extensions, or must be adapted at a non-trivial cost. Furthermore, these embedded languages typically conflict with the grammar of the host language and make it difficult to write hybrid code; few mechanisms exist to control the scope and usage of multiple tightly interconnected embedded languages. In this dissertation we present Helvetia, a novel approach to embed languages into an existing host language by leveraging the underlying representation of the host language used by these tools. We introduce Language Boxes, an approach that offers a simple, modular mechanism to encapsulate (i) compositional changes to the host language, (ii) transformations to address various concerns such as compilation and syntax highlighting, and (iii) scoping rules to control visibility of fine-grained language changes. We describe the design and implementation of Helvetia and Language Boxes, discuss the required infrastructure of a host language enabling language embedding, and validate our approach by case studies that demonstrate different ways to extend or adapt the host language syntax and semantics.
Agile software development values individuals and interactions over processes, working software over comprehensive documentation, customer collaboration over contract negotiation, and responding to change over following a plan. Seaside is an agile web framework that values these principles by having motivated individuals interact through mailing lists and meetings, releasing working software in short iterative cycles, collaborating directly with customers on its open source mailing list, and evolving its features, libraries, and platforms over time in response to changes.
The document discusses dynamic grammars, which allow grammars to be modified at runtime. This enables features like late-bound behavior, first-class representation of grammars, on-the-fly transformation of grammars, and introspection and reflection. Dynamic grammars provide benefits like enabling language and tool extensions through language boxes that isolate languages, and allowing host languages to change other languages' grammars through grammar transformations.
This document provides an overview of jQuery in 5 slides. It introduces jQuery and its core features including document traversing, event handling, AJAX interaction, and animating. It also discusses jQuery UI which provides high-level widgets. Common queries, actions, and how to attach behaviors to elements are demonstrated. The document also briefly covers plugins, unobtrusive coding, and other advanced topics.
The document provides a status update on the Seaside web framework. It summarizes recent releases of Seaside including versions 2.8, 2.9a1-a4. It notes that there are now 73 packages available for Seaside and over 400 unit tests. An upcoming Seaside sprint in September 2009 is announced to work on Seaside 3.0b1. Key contributors and developers are acknowledged.
Magritte is a recursive meta-model to describe objects. The framework closely integrates into the reflective meta-model of Smalltalk. Providing an adaptive model enables not only developer, but also let end user build their own meta-models on the fly. Magritte allows one to easily instantiate views, editors, validators, parsers, object-factories, and mapping-tools on any meta-described object. The possibilites are endless. Describe once, get everywhere!
The document contains statistics about the Seaside web framework project including 80 subscribers to the seaside-dev mailing list, 111 members of the Facebook group, 250 unique visitors per day to the project's website, and over 10,000 subscribers to the seaside mailing list. It also shows growth in one-click image downloads from 2007 to 2008 and lists Smalltalk platforms supported including Squeak, GemStone/S, and Dolphin Smalltalk.
René Magritte was a Belgian surrealist artist. The document discusses Magritte, an adaptive object modeling framework called Magritte. It allows describing object models in a declarative way using descriptions. Descriptions can then be used to interpret objects, generate user interfaces, validate data, and more. The framework uses design patterns like composite, strategy and memento patterns to implement descriptions, accessors and caching of model entities. It allows creating adaptive models that can be customized by end users at run time.
Magritte - A Meta-Driven Approach to Empower Developers and End UsersLukas Renggli
Model-driven engineering is a powerful approach to build large-scale applications. However, an application's metamodel often remains static after the initial development phase and cannot be changed unless a new development effort occurs. Yet, end users often need to rapidly adapt their applications to new needs. In many cases, end users would know how to make the required adaptations, if only the application would let them do so. In this paper we present how we built a runtime-dynamic meta-environment into Smalltalk's reflective language model. Our solution offers the best of both worlds: developers can develop their applications using the same tools they are used to and gain the power of meta-programming. We show in particular that our approach is suitable to support end user customization without writing new code: the adaptive model of Magritte not only describes existing classes, but also lets end users build their own metamodels on the fly.
Concurrency control is mostly based on locks and is therefore notoriously difficult to use. Even though some programming languages provide high-level constructs, these add complexity and potentially hard-to-detect bugs to the application. Transactional memory is an attractive mechanism that does not have the drawbacks of locks, however the underlying implementation is often difficult to integrate into an existing language. In this paper we show how we have introduced transactional semantics into Smalltalk by using the reflective facilities of the language. Our approach is based on method annotations, incremental parse tree transformations and an optimistic commit protocol. The implementation does not depend on modifications to the virtual machine and therefor can be changed at the language level. We report on a practical case study, benchmarks and further and on-going work.
Seaside - Web Development As You Like ItLukas Renggli
Seaside does different to what is considered as best practices for Web development. It breaks with common best practices for Web development, such as to share as little state as possible, use clean and carefully chosen URLs, and use templates to separate model and presentation.
5 Steps to Mastering the Art of SeasideLukas Renggli
The document provides an agenda for a presentation on mastering the art of Seaside, a web application framework. The agenda includes getting started with Seaside, building components, using callbacks, controlling application flow, and an outlook on future directions. The presentation covers core Seaside concepts like stateful components, callbacks that allow interaction without request parsing, and how control flow works without traditional URLs.
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
Programming Foundation Models with DSPy - Meetup SlidesZilliz
Prompting language models is hard, while programming language models is easy. In this talk, I will discuss the state-of-the-art framework DSPy for programming foundation models with its powerful optimizers and runtime constraint system.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/how-axelera-ai-uses-digital-compute-in-memory-to-deliver-fast-and-energy-efficient-computer-vision-a-presentation-from-axelera-ai/
Bram Verhoef, Head of Machine Learning at Axelera AI, presents the “How Axelera AI Uses Digital Compute-in-memory to Deliver Fast and Energy-efficient Computer Vision” tutorial at the May 2024 Embedded Vision Summit.
As artificial intelligence inference transitions from cloud environments to edge locations, computer vision applications achieve heightened responsiveness, reliability and privacy. This migration, however, introduces the challenge of operating within the stringent confines of resource constraints typical at the edge, including small form factors, low energy budgets and diminished memory and computational capacities. Axelera AI addresses these challenges through an innovative approach of performing digital computations within memory itself. This technique facilitates the realization of high-performance, energy-efficient and cost-effective computer vision capabilities at the thin and thick edge, extending the frontier of what is achievable with current technologies.
In this presentation, Verhoef unveils his company’s pioneering chip technology and demonstrates its capacity to deliver exceptional frames-per-second performance across a range of standard computer vision networks typical of applications in security, surveillance and the industrial sector. This shows that advanced computer vision can be accessible and efficient, even at the very edge of our technological ecosystem.
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
In the realm of cybersecurity, offensive security practices act as a critical shield. By simulating real-world attacks in a controlled environment, these techniques expose vulnerabilities before malicious actors can exploit them. This proactive approach allows manufacturers to identify and fix weaknesses, significantly enhancing system security.
This presentation delves into the development of a system designed to mimic Galileo's Open Service signal using software-defined radio (SDR) technology. We'll begin with a foundational overview of both Global Navigation Satellite Systems (GNSS) and the intricacies of digital signal processing.
The presentation culminates in a live demonstration. We'll showcase the manipulation of Galileo's Open Service pilot signal, simulating an attack on various software and hardware systems. This practical demonstration serves to highlight the potential consequences of unaddressed vulnerabilities, emphasizing the importance of offensive security practices in safeguarding critical infrastructure.
15. renderTasksOn: html
tasks do: [ :task |
html anchor
with: 'Remove Task ' , task number;
callback: [ tasks remove: task ].
html break ]
#with: has to be last message in cascade
16. renderTasksOn: html
tasks do: [ :task |
html anchor
callback: [ tasks remove: task ];
with: 'Remove Task ' , task number.
html break ]