This document provides an overview of functional and multi-core programming using the F# language. It introduces Rodrigo Vidal as the presenter and covers the following topics: the functional programming paradigm, why F# and functional programming are well-suited for multi-core applications, how the F# language has evolved over time to support functional, parallel, and asynchronous programming, and examples of using parallel programming patterns in F#.
COMPUTER LANGUAGES AND THERE DIFFERENCE Pavan Kalyan
In this ppt you will understand the difference among languages and You will know what is necessary for a language to become best in the present software filed
Becoming an Open Source developer, Dimitris AndreadisOpenBlend society
Writing opensource software is easy but becoming a successful opensource developer is tough. What differentiates the losers from the rock stars? Why so few make it? How one succeeds in the OpenSource arena? Being a member of JBoss for the last 6 years I am lucky enough to have worked together with some extremely talented and successful opensource developers. I've asked many of them about the secrets of their success and I've distilled the collective experience in the OpenSource Developer's Mantra. Come to this talk and find out!
Conheça a stack e entenda todas as vantagens de trabalhar em um ambiente mantido por uma comunidade extremamente ativa e como isso influencia na sua produtividade.
COMPUTER LANGUAGES AND THERE DIFFERENCE Pavan Kalyan
In this ppt you will understand the difference among languages and You will know what is necessary for a language to become best in the present software filed
Becoming an Open Source developer, Dimitris AndreadisOpenBlend society
Writing opensource software is easy but becoming a successful opensource developer is tough. What differentiates the losers from the rock stars? Why so few make it? How one succeeds in the OpenSource arena? Being a member of JBoss for the last 6 years I am lucky enough to have worked together with some extremely talented and successful opensource developers. I've asked many of them about the secrets of their success and I've distilled the collective experience in the OpenSource Developer's Mantra. Come to this talk and find out!
Conheça a stack e entenda todas as vantagens de trabalhar em um ambiente mantido por uma comunidade extremamente ativa e como isso influencia na sua produtividade.
OOPs
The prime purpose of C++ programming was to add object orientation to the C programming language, which is in itself one of the most powerful programming languages.
The core of the pure object-oriented programming is to create an object, in code, that has certain properties and methods. While designing C++ modules, we try to see whole world in the form of objects. For example a car is an object which has certain properties such as color, number of doors, and the like. It also has certain methods such as accelerate, brake, and so on.
There are a few principle concepts that form the foundation of object-oriented programming:
Object
This is the basic unit of object oriented programming. That is both data and function that operate on data are bundled as a unit called as object.
Class
When you define a class, you define a blueprint for an object. This doesn't actually define any data, but it does define what the class name means, that is, what an object of the class will consist of and what operations can be performed on such an object.
Abstraction
Data abstraction refers to, providing only essential information to the outside world and hiding their background details, i.e., to represent the needed information in program without presenting the details.
For example, a database system hides certain details of how data is stored and created and maintained. Similar way, C++ classes provides different methods to the outside world without giving internal detail about those methods and data.
Encapsulation
Encapsulation is placing the data and the functions that work on that data in the same place. While working with procedural languages, it is not always clear which functions work on which variables but object-oriented programming provides you framework to place the data and the relevant functions together in the same object.
Inheritance
One of the most useful aspects of object-oriented programming is code reusability. As the name suggests Inheritance is the process of forming a new class from an existing class that is from the existing class called as base class, new class is formed called as derived class.
This is a very important concept of object-oriented programming since this feature helps to reduce the code size.
Polymorphism
The ability to use an operator or function in different ways in other words giving different meaning or functions to the operators or functions is called polymorphism. Poly refers to many. That is a single function or an operator functioning in many ways different upon the usage is called polymorphism.
Overloading
The concept of overloading is also a branch of polymorphism. When the exiting operator or function is made to operate on new data type, it is said to be overloaded.
Born in a research lab, raised in the enterprise and now a fully open source, cross-platform language for the Cloud and Web, F# has been a key part of the transformation of programming since the early 2000s. Programming now regularly incorporates both functional and object programming techniques, with compositionality, succinctness, methodology and delivery to match.
I’ll share the story of this journey, and why F# continues to challenge the status quo with the simplicity and combining power of its design elements. I’ll discuss the philosophy underlying the F# language design and how we can look at a variety of seemingly unsolvable technical conflicts in different ways, with the aim making progress and improving society as a whole. Of interest to anyone who cares about programming, open and welcoming to all, come along and join in the fun.
The .Net structure is a product improvement platform created by Microsoft. The structure was intended to make applications, which would keep running on the Windows Platform.
Top 10 Programming Languages 2023.docxAdvance Tech
Picking a programming language is hard, and it's getting harder. It seems like every year there are new languages, frameworks, and tools. This can be especially difficult when you're just starting out in your career. When choosing a language, you want to make sure it will be around for years to come so you can continue to build your skills and advance in your career. That's why we've put together a list of the top 10 programming languages for 2023. These languages are popular, in demand, and allow you to build a wide range of applications.
https://advancetech.info/top-10-programming-languages-in-2023/
Introduction to Python GUI development with Delphi for Python - Part 1: Del...Embarcadero Technologies
Learn how Embarcadero’s newly released free Python modules bring the power and flexibility of Delphi’s GUI frameworks to Python. VCL and FireMonkey (FMX) are mature GUI libraries. VCL is focused on native Windows development, while FireMonkey brings a powerful flexible GUI framework to Windows, Linux, macOS, and even Android. This webinar will introduce you to these new free Python modules and how you can use them to build graphical users interfaces with Python. Part 2 will show you how to target Android GUI applications with Python!
OOPs
The prime purpose of C++ programming was to add object orientation to the C programming language, which is in itself one of the most powerful programming languages.
The core of the pure object-oriented programming is to create an object, in code, that has certain properties and methods. While designing C++ modules, we try to see whole world in the form of objects. For example a car is an object which has certain properties such as color, number of doors, and the like. It also has certain methods such as accelerate, brake, and so on.
There are a few principle concepts that form the foundation of object-oriented programming:
Object
This is the basic unit of object oriented programming. That is both data and function that operate on data are bundled as a unit called as object.
Class
When you define a class, you define a blueprint for an object. This doesn't actually define any data, but it does define what the class name means, that is, what an object of the class will consist of and what operations can be performed on such an object.
Abstraction
Data abstraction refers to, providing only essential information to the outside world and hiding their background details, i.e., to represent the needed information in program without presenting the details.
For example, a database system hides certain details of how data is stored and created and maintained. Similar way, C++ classes provides different methods to the outside world without giving internal detail about those methods and data.
Encapsulation
Encapsulation is placing the data and the functions that work on that data in the same place. While working with procedural languages, it is not always clear which functions work on which variables but object-oriented programming provides you framework to place the data and the relevant functions together in the same object.
Inheritance
One of the most useful aspects of object-oriented programming is code reusability. As the name suggests Inheritance is the process of forming a new class from an existing class that is from the existing class called as base class, new class is formed called as derived class.
This is a very important concept of object-oriented programming since this feature helps to reduce the code size.
Polymorphism
The ability to use an operator or function in different ways in other words giving different meaning or functions to the operators or functions is called polymorphism. Poly refers to many. That is a single function or an operator functioning in many ways different upon the usage is called polymorphism.
Overloading
The concept of overloading is also a branch of polymorphism. When the exiting operator or function is made to operate on new data type, it is said to be overloaded.
Born in a research lab, raised in the enterprise and now a fully open source, cross-platform language for the Cloud and Web, F# has been a key part of the transformation of programming since the early 2000s. Programming now regularly incorporates both functional and object programming techniques, with compositionality, succinctness, methodology and delivery to match.
I’ll share the story of this journey, and why F# continues to challenge the status quo with the simplicity and combining power of its design elements. I’ll discuss the philosophy underlying the F# language design and how we can look at a variety of seemingly unsolvable technical conflicts in different ways, with the aim making progress and improving society as a whole. Of interest to anyone who cares about programming, open and welcoming to all, come along and join in the fun.
The .Net structure is a product improvement platform created by Microsoft. The structure was intended to make applications, which would keep running on the Windows Platform.
Top 10 Programming Languages 2023.docxAdvance Tech
Picking a programming language is hard, and it's getting harder. It seems like every year there are new languages, frameworks, and tools. This can be especially difficult when you're just starting out in your career. When choosing a language, you want to make sure it will be around for years to come so you can continue to build your skills and advance in your career. That's why we've put together a list of the top 10 programming languages for 2023. These languages are popular, in demand, and allow you to build a wide range of applications.
https://advancetech.info/top-10-programming-languages-in-2023/
Introduction to Python GUI development with Delphi for Python - Part 1: Del...Embarcadero Technologies
Learn how Embarcadero’s newly released free Python modules bring the power and flexibility of Delphi’s GUI frameworks to Python. VCL and FireMonkey (FMX) are mature GUI libraries. VCL is focused on native Windows development, while FireMonkey brings a powerful flexible GUI framework to Windows, Linux, macOS, and even Android. This webinar will introduce you to these new free Python modules and how you can use them to build graphical users interfaces with Python. Part 2 will show you how to target Android GUI applications with Python!
Similar to F# Functional and MultiCore Programming (20)
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
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.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
2. Quem sou eu?
Rodrigo Vidal
Twitter: @rodrigovidal
Blog: www.rodrigovidal.net
•Focado em Arquitetura de Software e Boas Práticas.
•Agilista e entusiasta de F# e IronRuby/Ruby.
•Membro ativo do grupo .NetArchitects
•Professional Scrum Developer
•Presente no maiores eventos do tecnologia do país.
5. Functional – Why now?
• Novo desafios
• Processar grandes quantidades de dados
• Escalabilidade para Cores e Clusters
• Declarative Programming
6. Why another language?
• Programação Funcional está por ai a um
longo tempo.
– Não é algo novo
– Tem uma longa história
• Programação Funcional é “safe”
– Devemos nos preocupar principalmente
quando lidamos com aplicações MultiCore e
de Cloud Computing
• Programção Funcional está crescendo!
8. Quem usa ForEach() ?
|
List<string> res = new List<string>();
foreach(Product p in Products) {
if (p.UnitPrice > 75.0M) {
res.Add(String.Format("{0} - ${1}",
p.ProductName, p.UnitPrice));
}
}
var res = from p in Products
where p.UnitPrice > 75.0M
select string.Format("{0} - ${1}",
p.ProductName, p.UnitPrice);
return res;
9. Domain Driven Design
Foco no Core Domain, revelando a
intenção do seu código.
Interfaces Reveladoras de Intenções
13. Side-Effects
– Also knowed as “The Butterfly Effect”
• A side effect
– Modifies some state
– Has observable interaction with calling functions
– Has observable interaction with the outside world
– Example: a function or method with no return value
19. What is F#?
• Functional language developed by
Microsoft Research
– By Don Syme and his team, who
productized Generics
– Based on OCaml (influenced by C# and
Haskell)
23. F# 2.0
• Succinct, Expressive, Functional
– Productive, simple, powerful, and fun language
• Parallel, Explorative, Data-rich, Algorithmic
– Extends the .NET platform to important new audiences
• Innovative, Industry/Platform-Leading
– Async, parallel, easy-objects, immutability, tuples, units-
of-measure
• Note: F# is not a replacement for C#/VB/C++
– Complementary, interoperable and augments and builds
on .NET as multi-lang platform
List&lt;string&gt; res = new List&lt;string&gt;(); #1
foreach(Product p in Products) { #2
if (p.UnitPrice &gt; 75.0M) {
res.Add(String.Format(&quot;{0} - ${1}&quot;,
p.ProductName, p.UnitPrice)); #3
}
}
var res = from p in Products
where p.UnitPrice &gt; 75.0M #1
select string.Format(&quot;{0} - ${1}&quot;,
p.ProductName, p.UnitPrice); #2
return res;
C#
Parallel.For(1,inp.Length-1,i =&gt; {
var sum = inp[i-1] +
inp[i] + inp[i+1];
res[i] = sum / 3;
});
F#
let pfor nfrom nto f =
Parallel.For(nfrom, nto + 1, Action&lt;_&gt;(f))
pfor 1 (inp.Length-2) (fun i -&gt;
let sum = inp.[i-1] +
inp.[i] + inp.[i+1]
res.[i] &lt;- sum / 3
)
The key idea behind the declarative style of programming is that the code doesn&apos;t specify
how exactly it should be executed. Execution is provided by a minimal number of primitives
such as select and where in LINQ or map and filter in F#, and these primitives can
behave in a sophisticated way.
The key idea behind the declarative style of programming is that the code doesn&apos;t specify
how exactly it should be executed. Execution is provided by a minimal number of primitives
such as select and where in LINQ or map and filter in F#, and these primitives can
behave in a sophisticated way.
The key idea behind the declarative style of programming is that the code doesn&apos;t specify
how exactly it should be executed. Execution is provided by a minimal number of primitives
such as select and where in LINQ or map and filter in F#, and these primitives can
behave in a sophisticated way.
The key idea behind the declarative style of programming is that the code doesn&apos;t specify
how exactly it should be executed. Execution is provided by a minimal number of primitives
such as select and where in LINQ or map and filter in F#, and these primitives can
behave in a sophisticated way.