The document discusses an approach called "stamps" for composing object behaviors in a declarative way, as an alternative to class inheritance. Stamps are like classes/factories but specify behaviors through composable metadata rather than inheritance. A stamp implementation is shown that allows defining initializers, methods, properties, and static properties and composing them to create new stamps. The stamps approach is compared to configuring classes through annotations and dependency injection in Java.
A brief look at the new features coming in Javascript ES6:
- Scope and control
- Iterators and Generators
- Collections
- Typed objects
- Direct proxies
- Template strings
- API improvements
- Modularity
This contains all the slides used in Silicon Valley Code Camp presentation on Sunday Oct 4, 10:45 session on "Amazing new features in JavaScript". At the end ut also includes the last year presentation covering ES 5
A brief look at the new features coming in Javascript ES6:
- Scope and control
- Iterators and Generators
- Collections
- Typed objects
- Direct proxies
- Template strings
- API improvements
- Modularity
This contains all the slides used in Silicon Valley Code Camp presentation on Sunday Oct 4, 10:45 session on "Amazing new features in JavaScript". At the end ut also includes the last year presentation covering ES 5
C++20 comes with some big new language features: modules, coroutines, concepts, spaceship, and many new libraries. But apart from all those, C++20 also offers many small language improvements, making C++ more powerful and expressive, but also safer and more consistent. This talk is an overview over all those smaller additions to the core language that will make your life easier. We will discuss much-needed improvements to existing facilities such as lambdas, CTAD, structured bindings, and initialisation, as well as brand-new language utilities that you may not yet have heard about!
Razvan Rotari shows an experiment to see how far you can go with binding in C++; Cristian Neamtu follows with an insight on how to achieve this in Rust using Serde.
Java agents are watching your ByteCodeRoman Tsypuk
https://github.com/tsypuk/JavaAgent
Presentation about java agents in JWM.
XRebel as a starting point to demo the production agents.
Coding sesion with creating a custom java agents.
Object-Oriented JavaScript presentation given at ESRI's 2010 Developer Summit. Slides and code available at http://github.com/kvangork/OOJS-Presentation
Find me on twitter @kvangork
or at my blog: http://prng.vangorkom.org
Object-Oriented JavaScript presentation given at the 2010 ESRI Developer Summit. Code and slides are also available at http://github.com/kvangork/OOJS-Presentation
Find me on twitter @kvangork
or my blog http://prng.vangorkom.org
Not so long ago Microsoft announced a new language trageting on front-end developers. Everybody's reaction was like: Why?!! Is it just Microsoft darting back to Google?!
So, why a new language? JavaScript has its bad parts. Mostly you can avoid them or workaraund. You can emulate class-based OOP style, modules, scoping and even run-time typing. But that is doomed to be clumsy. That's not in the language design. Google has pointed out these flaws, provided a new language and failed. Will the story of TypeScript be any different?
OpenMetadata Community Meeting - 5th June 2024OpenMetadata
The OpenMetadata Community Meeting was held on June 5th, 2024. In this meeting, we discussed about the data quality capabilities that are integrated with the Incident Manager, providing a complete solution to handle your data observability needs. Watch the end-to-end demo of the data quality features.
* How to run your own data quality framework
* What is the performance impact of running data quality frameworks
* How to run the test cases in your own ETL pipelines
* How the Incident Manager is integrated
* Get notified with alerts when test cases fail
Watch the meeting recording here - https://www.youtube.com/watch?v=UbNOje0kf6E
Why Mobile App Regression Testing is Critical for Sustained Success_ A Detail...kalichargn70th171
A dynamic process unfolds in the intricate realm of software development, dedicated to crafting and sustaining products that effortlessly address user needs. Amidst vital stages like market analysis and requirement assessments, the heart of software development lies in the meticulous creation and upkeep of source code. Code alterations are inherent, challenging code quality, particularly under stringent deadlines.
Launch Your Streaming Platforms in MinutesRoshan Dwivedi
The claim of launching a streaming platform in minutes might be a bit of an exaggeration, but there are services that can significantly streamline the process. Here's a breakdown:
Pros of Speedy Streaming Platform Launch Services:
No coding required: These services often use drag-and-drop interfaces or pre-built templates, eliminating the need for programming knowledge.
Faster setup: Compared to building from scratch, these platforms can get you up and running much quicker.
All-in-one solutions: Many services offer features like content management systems (CMS), video players, and monetization tools, reducing the need for multiple integrations.
Things to Consider:
Limited customization: These platforms may offer less flexibility in design and functionality compared to custom-built solutions.
Scalability: As your audience grows, you might need to upgrade to a more robust platform or encounter limitations with the "quick launch" option.
Features: Carefully evaluate which features are included and if they meet your specific needs (e.g., live streaming, subscription options).
Examples of Services for Launching Streaming Platforms:
Muvi [muvi com]
Uscreen [usencreen tv]
Alternatives to Consider:
Existing Streaming platforms: Platforms like YouTube or Twitch might be suitable for basic streaming needs, though monetization options might be limited.
Custom Development: While more time-consuming, custom development offers the most control and flexibility for your platform.
Overall, launching a streaming platform in minutes might not be entirely realistic, but these services can significantly speed up the process compared to building from scratch. Carefully consider your needs and budget when choosing the best option for you.
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Crescat
Crescat is industry-trusted event management software, built by event professionals for event professionals. Founded in 2017, we have three key products tailored for the live event industry.
Crescat Event for concert promoters and event agencies. Crescat Venue for music venues, conference centers, wedding venues, concert halls and more. And Crescat Festival for festivals, conferences and complex events.
With a wide range of popular features such as event scheduling, shift management, volunteer and crew coordination, artist booking and much more, Crescat is designed for customisation and ease-of-use.
Over 125,000 events have been planned in Crescat and with hundreds of customers of all shapes and sizes, from boutique event agencies through to international concert promoters, Crescat is rigged for success. What's more, we highly value feedback from our users and we are constantly improving our software with updates, new features and improvements.
If you plan events, run a venue or produce festivals and you're looking for ways to make your life easier, then we have a solution for you. Try our software for free or schedule a no-obligation demo with one of our product specialists today at crescat.io
Graspan: A Big Data System for Big Code AnalysisAftab Hussain
We built a disk-based parallel graph system, Graspan, that uses a novel edge-pair centric computation model to compute dynamic transitive closures on very large program graphs.
We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations.
These analyses were used to augment the existing checkers; these augmented checkers found 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
- Accepted in ASPLOS ‘17, Xi’an, China.
- Featured in the tutorial, Systemized Program Analyses: A Big Data Perspective on Static Analysis Scalability, ASPLOS ‘17.
- Invited for presentation at SoCal PLS ‘16.
- Invited for poster presentation at PLDI SRC ‘16.
Utilocate offers a comprehensive solution for locate ticket management by automating and streamlining the entire process. By integrating with Geospatial Information Systems (GIS), it provides accurate mapping and visualization of utility locations, enhancing decision-making and reducing the risk of errors. The system's advanced data analytics tools help identify trends, predict potential issues, and optimize resource allocation, making the locate ticket management process smarter and more efficient. Additionally, automated ticket management ensures consistency and reduces human error, while real-time notifications keep all relevant personnel informed and ready to respond promptly.
The system's ability to streamline workflows and automate ticket routing significantly reduces the time taken to process each ticket, making the process faster and more efficient. Mobile access allows field technicians to update ticket information on the go, ensuring that the latest information is always available and accelerating the locate process. Overall, Utilocate not only enhances the efficiency and accuracy of locate ticket management but also improves safety by minimizing the risk of utility damage through precise and timely locates.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Do you want Software for your Business? Visit Deuglo
Deuglo has top Software Developers in India. They are experts in software development and help design and create custom Software solutions.
Deuglo follows seven steps methods for delivering their services to their customers. They called it the Software development life cycle process (SDLC).
Requirement — Collecting the Requirements is the first Phase in the SSLC process.
Feasibility Study — after completing the requirement process they move to the design phase.
Design — in this phase, they start designing the software.
Coding — when designing is completed, the developers start coding for the software.
Testing — in this phase when the coding of the software is done the testing team will start testing.
Installation — after completion of testing, the application opens to the live server and launches!
Maintenance — after completing the software development, customers start using the software.
E-commerce Application Development Company.pdfHornet Dynamics
Your business can reach new heights with our assistance as we design solutions that are specifically appropriate for your goals and vision. Our eCommerce application solutions can digitally coordinate all retail operations processes to meet the demands of the marketplace while maintaining business continuity.
Takashi Kobayashi and Hironori Washizaki, "SWEBOK Guide and Future of SE Education," First International Symposium on the Future of Software Engineering (FUSE), June 3-6, 2024, Okinawa, Japan
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeAftab Hussain
Understanding variable roles in code has been found to be helpful by students
in learning programming -- could variable roles help deep neural models in
performing coding tasks? We do an exploratory study.
- These are slides of the talk given at InteNSE'23: The 1st International Workshop on Interpretability and Robustness in Neural Software Engineering, co-located with the 45th International Conference on Software Engineering, ICSE 2023, Melbourne Australia
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteGoogle
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
👉👉 Click Here To Get More Info 👇👇
https://sumonreview.com/ai-pilot-review/
AI Pilot Review: Key Features
✅Deploy AI expert bots in Any Niche With Just A Click
✅With one keyword, generate complete funnels, websites, landing pages, and more.
✅More than 85 AI features are included in the AI pilot.
✅No setup or configuration; use your voice (like Siri) to do whatever you want.
✅You Can Use AI Pilot To Create your version of AI Pilot And Charge People For It…
✅ZERO Manual Work With AI Pilot. Never write, Design, Or Code Again.
✅ZERO Limits On Features Or Usages
✅Use Our AI-powered Traffic To Get Hundreds Of Customers
✅No Complicated Setup: Get Up And Running In 2 Minutes
✅99.99% Up-Time Guaranteed
✅30 Days Money-Back Guarantee
✅ZERO Upfront Cost
See My Other Reviews Article:
(1) TubeTrivia AI Review: https://sumonreview.com/tubetrivia-ai-review
(2) SocioWave Review: https://sumonreview.com/sociowave-review
(3) AI Partner & Profit Review: https://sumonreview.com/ai-partner-profit-review
(4) AI Ebook Suite Review: https://sumonreview.com/ai-ebook-suite-review
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!
Artificia Intellicence and XPath Extension FunctionsOctavian Nadolu
The purpose of this presentation is to provide an overview of how you can use AI from XSLT, XQuery, Schematron, or XML Refactoring operations, the potential benefits of using AI, and some of the challenges we face.
Code reviews are vital for ensuring good code quality. They serve as one of our last lines of defense against bugs and subpar code reaching production.
Yet, they often turn into annoying tasks riddled with frustration, hostility, unclear feedback and lack of standards. How can we improve this crucial process?
In this session we will cover:
- The Art of Effective Code Reviews
- Streamlining the Review Process
- Elevating Reviews with Automated Tools
By the end of this presentation, you'll have the knowledge on how to organize and improve your code review proces
Atelier - Innover avec l’IA Générative et les graphes de connaissancesNeo4j
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Allez au-delà du battage médiatique autour de l’IA et découvrez des techniques pratiques pour utiliser l’IA de manière responsable à travers les données de votre organisation. Explorez comment utiliser les graphes de connaissances pour augmenter la précision, la transparence et la capacité d’explication dans les systèmes d’IA générative. Vous partirez avec une expérience pratique combinant les relations entre les données et les LLM pour apporter du contexte spécifique à votre domaine et améliorer votre raisonnement.
Amenez votre ordinateur portable et nous vous guiderons sur la mise en place de votre propre pile d’IA générative, en vous fournissant des exemples pratiques et codés pour démarrer en quelques minutes.
3. ctor()
method
X()
property A
ctor()
method
X()
property Aproperty B
ctor()
property A
property B
method
Y()
method
Z()
method
X()
ctor()
method
X()
property A
property Bmethod
Y()
method
Z()
…
ctor()
method X()
property A
property B
method Y()
method Z()
property C
ctor(override)
pony
Zuckerberg
yolo
the god
the true god
the new true
god
useless shit
useful thing()
leprosarium
matrix
new useless
shit
hell on Earth
pain
suffer
Typical class inheritance story
But actually I needed only
these:
ctor()
property B
method X()
useful thing()
4. Typical class inheritance story
• 1 constructor
• 211 methods
• 130 properties
• 55 events
(which essentially are properties
too)
• 1 static field
• 1 attribute
5. Rethinking inheritance
{
ctor()
method X()
property B
useful thing()
}
…
ctor()
method
X()
property B
useful
thing
pain
suffer
hell on
Earth
useless
shit
property A
method
Y()
method
Z()
Zuckerber
g
property C
Java/C# developers are like
19. Now let’s take a classic Java example and
convert it to stamps.
The purpose of the example is not to solve a problem
but to show an idea behind the stamps.
20. @TesterInfo(
priority = Priority.HIGH,
createdBy = "Zavulon",
tags = {"sales","test"}
)
public class TestExample extends BaseTest {
TestExample(TestRunner r) {
this.runner = r;
}
@Test
void testA() {
// ...
}
@Test(enabled = false)
void testB() {
// …
}
}
Example: Java metadata and class configuration
Configuring class
metadata in Java
(annotations)
Configuring
object instance in
Java
(dependency injection)
Configuring class
members in Java
(interface implementation)
21. • class extension/inheritance
• Java annotations
• interface implementations
• dependency injection pattern
• has-a composition pattern
• is-a composition pattern
• proxy design pattern
• wrapper design pattern
• decorator design pattern
• …
How to setup a class behavior in Java?
This is nothing else, but
a process of configuring your class,
a process of collecting metadata
How to setup a stamp behavior?
• compose
• compose
• compose
• compose
• compose
• compose
• compose
• compose
• compose
• compose
stamp
30. The .compose() method is detachable
import {ThirdPartyStamp} from 'third-party-stuff';
I wish the .then() method of Promises was
as easy detachable as the .compose() method.
Like that:
const Promise = thirdPartyPromise.then;
Detaching the .compose() method
And reusing it as a compose() function to create new stamps
const compose = ThirdPartyStamp.compose;
const Stamp1 = compose({
properties: {
message: "Look Ma! I'm creating stamps without importing an imple
}
});
32. You can create APIs like that
const MyUser = compose({
initializers: [function ({password}) {
this.password = password;
console.log(this.password.length);
}]
});
// Cannot read property 'password' of undefined
MyUser();
// Cannot read property 'length' of null
MyUser({password: null});
33. import MyUser from './my-user';
import ArgumentChecker from './argument-checker';
const MySafeUser = ArgumentChecker.checkArguments({
password: 'string'
})
.compose(MyUser);
// throws "Argument 'password' must be a string"
MySafeUser();
// throws "Argument 'password' must be a string"
MySafeUser({password: null});
You can create APIs like that
34. You can create APIs like that
1 import compose from 'stamp-specification';
2
3 const MyUser = compose({
4 initializers: [function ({password}) {
5 this.password = password;
6 console.log(this.password.length);
7 }]
8 });
9
10 // Cannot read property 'password' of undefined
11 MyUser();
12
13 // Cannot read property 'length' of null
14 MyUser({password: null});
15
16
17 const MySafeUser = ArgumentChecker.checkArguments({
18 password: 'string'
19 })
20 .compose(MyUser);
21
22 // Argument 'password' must be a string
23 MySafeUser();
35. const ArgumentChecker = compose({
staticProperties: {
checkArguments(keyValueMap) {
// deep merge all the pairs
// to the ArgumentChecker object
return this.compose({deepConfiguration: {
ArgumentChecker: keyValueMap
}});
}
},
...
ArgumentChecker stamp
36. ...
initializers: [(options = {}, {stamp}) => {
// take the map of key-value pairs
// and iterate over it
const map = stamp.compose.deepConfiguration.ArgumentChec
for (const [argName, type] of map) {
if (typeof options[argName] !== type)
throw new Error(
`Argument "${argName}" must be a ${type}`);
}
}]
});
37. const ArgumentChecker = compose({
staticProperties: {
checkArguments(keyValueMap) {
// deep merge all the pairs to the ArgumentChecker object
return this.compose({deepConfiguration: {
ArgumentChecker: keyValueMap
}});
}
},
initializers: [function (options = {}, {stamp}) {
// take the map of key-value pairs and iterate over it
const map = stamp.compose.deepConfiguration.ArgumentChecker;
for (const [argName, type] of map) {
if (typeof options[argName] !== type)
throw new Error(
`Argument "${argName}" must be a ${type}`);
}
}]
});
ArgumentChecker stamp
38. ArgumentChecker stamp using stampit module
const ArgumentChecker = stampit() // <- creating a new empty stamp
.statics({
checkArguments(keyValueMap) {
return this.deepConf({ArgumentChecker: keyValueMap});
}
})
.init(function (options = {}, {stamp}) {
const map = stamp.compose.deepConfiguration.ArgumentChecker;
for (const [argName, type] of map) {
if (typeof options[argName] !== type)
throw new Error(`"${argName}" is missing`);
}
});
39. • Instead of classes obviously
• When you have many similar but different
models:
• games
(craft wooden old unique improved dwarf
sword)
• subscription types
(Free - Pro - Enterprise, yearly - monthly,
direct debit - invoice, credit card - bank
account, etc.)
• … your case
• As a dependency injection for complex
business logic
When to use Stamps
40. • When you need to squeeze every CPU cycle from yo
• games (LOL!)
• drivers
• In small utility modules (like left-pad)
When NOT to use Stamps
This talk is highly complex. It implies that the listener is an experienced developer, or at least have extensive experience with classic OOP and classes. Apologies if this is too much. Ask me.
ctor -> constructor
The simplest Window UI element in .NET Framework is System.Windows.Controls.Label. According to MSDN its class in .NET v4.0 has:
We are keeping the specification as small as possible
Clarify statics
I need to say that `compose` can accept both POJO and other stamps in no particular order.
Stamps are immutable
This is a typical Java unit test implementation of some unit tests.
…When this though came to my mind the first time I was like:
Suite is using this.compose() internally.
explain the two functions on the bottom will not log if I won’t override the statics
Kind of too much for such a simple feature. There is a shorter syntax using the stampit module.