Incubaid is a technology incubator that was involved with Amplidata, a company developing dispersed storage systems. Amplidata's 1.6 version was primarily C++ code and was becoming difficult to develop and maintain due to issues like resource management, sockets, threads, and data corruption. Incubaid rewrote a component of Amplidata's system in OCaml in 1.5 days, demonstrating the viability of a functional programming approach. This led Amplidata to pursue a functional programming strategy using OCaml for its 2.0 version, though it ended up taking longer than estimated due to factors like adding new features. While functional programming provided benefits initially, there were also challenges from issues like OCaml language,
Describing, with example, how creating better visibility can turn anonymity to cooperation. I gave this presentation in the Tieto sponsored seminar Leanest 2011.
The presentation was delivered by FORTH at the 3rd International Workshop on the role of Semantic Web in Provenance Management 2012 (SWPM2012) in Heraklion, Greece on 28th of May 2012.
Abstract:
Workflow systems can produce very large amounts of provenance information. In this paper we introduce provenance-based inference rules as a means to reduce the amount of provenance information that has to be stored, and to ease quality control (e.g., corrections). We motivate this kind of (provenance) inference and identify a number of basic inference rules over a conceptual model appropriate for representing provenance. The proposed inference rules concern the interplay between (i) actors and carried out activities, (ii) activities and devices that were used for such activities, and, (iii) the presence of information objects and physical things at events. However, since a knowledge base is not static but it changes over time for various reasons, we also study how we can satisfy change requests while supporting and respecting the aforementioned inference rules. Towards this end, we elaborate on the specification of the required change operations.
Best Practices for Engineering Production-Ready Software with Apache SparkDatabricks
Notebooks are a great tool for Big Data. They have drastically changed the way scientists and engineers develop and share ideas. However, most world-class Spark products cannot be easily engineered, tested and deployed just by modifying or combining notebooks. Taking a prototype to production with high quality typically involves proper software engineering.
This slidedeck from STAG Software, highlights that Good testing is really about questioning - who uses what, conditions that govern the behavior, the key attributes and so on.
Describing, with example, how creating better visibility can turn anonymity to cooperation. I gave this presentation in the Tieto sponsored seminar Leanest 2011.
The presentation was delivered by FORTH at the 3rd International Workshop on the role of Semantic Web in Provenance Management 2012 (SWPM2012) in Heraklion, Greece on 28th of May 2012.
Abstract:
Workflow systems can produce very large amounts of provenance information. In this paper we introduce provenance-based inference rules as a means to reduce the amount of provenance information that has to be stored, and to ease quality control (e.g., corrections). We motivate this kind of (provenance) inference and identify a number of basic inference rules over a conceptual model appropriate for representing provenance. The proposed inference rules concern the interplay between (i) actors and carried out activities, (ii) activities and devices that were used for such activities, and, (iii) the presence of information objects and physical things at events. However, since a knowledge base is not static but it changes over time for various reasons, we also study how we can satisfy change requests while supporting and respecting the aforementioned inference rules. Towards this end, we elaborate on the specification of the required change operations.
Best Practices for Engineering Production-Ready Software with Apache SparkDatabricks
Notebooks are a great tool for Big Data. They have drastically changed the way scientists and engineers develop and share ideas. However, most world-class Spark products cannot be easily engineered, tested and deployed just by modifying or combining notebooks. Taking a prototype to production with high quality typically involves proper software engineering.
This slidedeck from STAG Software, highlights that Good testing is really about questioning - who uses what, conditions that govern the behavior, the key attributes and so on.
OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...Jonathon Hare
ACM Multimedia 2011, Scottsdale, Arizona, USA, 28 Nov - 01 Dec 2011.
http://eprints.soton.ac.uk/273040/
OpenIMAJ and ImageTerrier are recently released open- source libraries and tools for experimentation and devel- opment of multimedia applications using Java-compatible programming languages. OpenIMAJ (the Open toolkit for Intelligent Multimedia Analysis in Java) is a collection of libraries for multimedia analysis. The image libraries con- tain methods for processing images and extracting state- of-the-art features, including SIFT. The video and audio libraries support both cross-platform capture and process- ing. The clustering and nearest-neighbour libraries contain efficient, multi-threaded implementations of clustering al- gorithms. The clustering library makes it possible to easily create BoVW representations for images and videos. OpenI- MAJ also incorporates a number of tools to enable extremely- large-scale multimedia analysis using distributed computing with Apache Hadoop. ImageTerrier is a scalable, high-performance search engine platform for content-based image retrieval applications using features extracted with the OpenIMAJ library and tools. The ImageTerrier platform provides a comprehensive test- bed for experimenting with image retrieval techniques. The platform incorporates a state-of-the-art implementation of the single-pass indexing technique for constructing inverted indexes and is capable of producing highly compressed index data structures.
Observability has emerged as one of the hottest topics on the DevOps landscape. Organizations seek to improve visibility into their cloud infrastructure and applications and identify production issues that may negatively impact #customerexperience.
➡️ But what are some of the best practices for scaling observability for modernapplications?
➡️ What challenges are #cloudplatforms facing?
Explore how to overcome the challenges and unlock speed, observability, and automation across your DevOps lifecycle.
This slide is translated version. Originally it was written in Korean. (http://www.slideshare.net/saltynut/how-do-we-drive-tech-changes )
It describes how do we drive technical changes onto our organizations had used old-fashioned java combinations(Java 1.6+Spring 3.x+MyBatis) and monolithic architecture.
Key point is what we need to do to drive changes, and I'll discuss what we did during Phase1 and what we are doing at Phase 2 for architecture, frontend, backend, methodologies/process.
Phase1
- Architecture : Frontend / Backend Separation
- Frontend : Angular.js, Grunt, Bower
- Backend : Java 1.7/Spring4, ORM
- Methodology/Process : Scrum, Git
Phase2
- Architecture : Micro-Service Architecture(MSA)
- Frontend : Content Router, E2E Test
- Backend : Polyglot, Multi-Framework
- Methodology/Process : Scrum+JIRA, Git Branch Policy, Pair Programming, Code Workshop
With distributed tracing, we can track requests as they pass through multiple services, emitting timing and other metadata throughout, and this information can then be reassembled to provide a complete picture of the application’s behavior at runtime - Read more in https://blog.buoyant.io/2016/05/17/distributed-tracing-for-polyglot-microservices/ and https://www.rookout.com/
OpenIMAJ and ImageTerrier: Java Libraries and Tools for Scalable Multimedia A...Jonathon Hare
ACM Multimedia 2011, Scottsdale, Arizona, USA, 28 Nov - 01 Dec 2011.
http://eprints.soton.ac.uk/273040/
OpenIMAJ and ImageTerrier are recently released open- source libraries and tools for experimentation and devel- opment of multimedia applications using Java-compatible programming languages. OpenIMAJ (the Open toolkit for Intelligent Multimedia Analysis in Java) is a collection of libraries for multimedia analysis. The image libraries con- tain methods for processing images and extracting state- of-the-art features, including SIFT. The video and audio libraries support both cross-platform capture and process- ing. The clustering and nearest-neighbour libraries contain efficient, multi-threaded implementations of clustering al- gorithms. The clustering library makes it possible to easily create BoVW representations for images and videos. OpenI- MAJ also incorporates a number of tools to enable extremely- large-scale multimedia analysis using distributed computing with Apache Hadoop. ImageTerrier is a scalable, high-performance search engine platform for content-based image retrieval applications using features extracted with the OpenIMAJ library and tools. The ImageTerrier platform provides a comprehensive test- bed for experimenting with image retrieval techniques. The platform incorporates a state-of-the-art implementation of the single-pass indexing technique for constructing inverted indexes and is capable of producing highly compressed index data structures.
Observability has emerged as one of the hottest topics on the DevOps landscape. Organizations seek to improve visibility into their cloud infrastructure and applications and identify production issues that may negatively impact #customerexperience.
➡️ But what are some of the best practices for scaling observability for modernapplications?
➡️ What challenges are #cloudplatforms facing?
Explore how to overcome the challenges and unlock speed, observability, and automation across your DevOps lifecycle.
This slide is translated version. Originally it was written in Korean. (http://www.slideshare.net/saltynut/how-do-we-drive-tech-changes )
It describes how do we drive technical changes onto our organizations had used old-fashioned java combinations(Java 1.6+Spring 3.x+MyBatis) and monolithic architecture.
Key point is what we need to do to drive changes, and I'll discuss what we did during Phase1 and what we are doing at Phase 2 for architecture, frontend, backend, methodologies/process.
Phase1
- Architecture : Frontend / Backend Separation
- Frontend : Angular.js, Grunt, Bower
- Backend : Java 1.7/Spring4, ORM
- Methodology/Process : Scrum, Git
Phase2
- Architecture : Micro-Service Architecture(MSA)
- Frontend : Content Router, E2E Test
- Backend : Polyglot, Multi-Framework
- Methodology/Process : Scrum+JIRA, Git Branch Policy, Pair Programming, Code Workshop
With distributed tracing, we can track requests as they pass through multiple services, emitting timing and other metadata throughout, and this information can then be reassembled to provide a complete picture of the application’s behavior at runtime - Read more in https://blog.buoyant.io/2016/05/17/distributed-tracing-for-polyglot-microservices/ and https://www.rookout.com/
Title: Sense of Taste
Presenter: Dr. Faiza, Assistant Professor of Physiology
Qualifications:
MBBS (Best Graduate, AIMC Lahore)
FCPS Physiology
ICMT, CHPE, DHPE (STMU)
MPH (GC University, Faisalabad)
MBA (Virtual University of Pakistan)
Learning Objectives:
Describe the structure and function of taste buds.
Describe the relationship between the taste threshold and taste index of common substances.
Explain the chemical basis and signal transduction of taste perception for each type of primary taste sensation.
Recognize different abnormalities of taste perception and their causes.
Key Topics:
Significance of Taste Sensation:
Differentiation between pleasant and harmful food
Influence on behavior
Selection of food based on metabolic needs
Receptors of Taste:
Taste buds on the tongue
Influence of sense of smell, texture of food, and pain stimulation (e.g., by pepper)
Primary and Secondary Taste Sensations:
Primary taste sensations: Sweet, Sour, Salty, Bitter, Umami
Chemical basis and signal transduction mechanisms for each taste
Taste Threshold and Index:
Taste threshold values for Sweet (sucrose), Salty (NaCl), Sour (HCl), and Bitter (Quinine)
Taste index relationship: Inversely proportional to taste threshold
Taste Blindness:
Inability to taste certain substances, particularly thiourea compounds
Example: Phenylthiocarbamide
Structure and Function of Taste Buds:
Composition: Epithelial cells, Sustentacular/Supporting cells, Taste cells, Basal cells
Features: Taste pores, Taste hairs/microvilli, and Taste nerve fibers
Location of Taste Buds:
Found in papillae of the tongue (Fungiform, Circumvallate, Foliate)
Also present on the palate, tonsillar pillars, epiglottis, and proximal esophagus
Mechanism of Taste Stimulation:
Interaction of taste substances with receptors on microvilli
Signal transduction pathways for Umami, Sweet, Bitter, Sour, and Salty tastes
Taste Sensitivity and Adaptation:
Decrease in sensitivity with age
Rapid adaptation of taste sensation
Role of Saliva in Taste:
Dissolution of tastants to reach receptors
Washing away the stimulus
Taste Preferences and Aversions:
Mechanisms behind taste preference and aversion
Influence of receptors and neural pathways
Impact of Sensory Nerve Damage:
Degeneration of taste buds if the sensory nerve fiber is cut
Abnormalities of Taste Detection:
Conditions: Ageusia, Hypogeusia, Dysgeusia (parageusia)
Causes: Nerve damage, neurological disorders, infections, poor oral hygiene, adverse drug effects, deficiencies, aging, tobacco use, altered neurotransmitter levels
Neurotransmitters and Taste Threshold:
Effects of serotonin (5-HT) and norepinephrine (NE) on taste sensitivity
Supertasters:
25% of the population with heightened sensitivity to taste, especially bitterness
Increased number of fungiform papillae
The Gram stain is a fundamental technique in microbiology used to classify bacteria based on their cell wall structure. It provides a quick and simple method to distinguish between Gram-positive and Gram-negative bacteria, which have different susceptibilities to antibiotics
263778731218 Abortion Clinic /Pills In Harare ,sisternakatoto
263778731218 Abortion Clinic /Pills In Harare ,ABORTION WOMEN’S CLINIC +27730423979 IN women clinic we believe that every woman should be able to make choices in her pregnancy. Our job is to provide compassionate care, safety,affordable and confidential services. That’s why we have won the trust from all generations of women all over the world. we use non surgical method(Abortion pills) to terminate…Dr.LISA +27730423979women Clinic is committed to providing the highest quality of obstetrical and gynecological care to women of all ages. Our dedicated staff aim to treat each patient and her health concerns with compassion and respect.Our dedicated group ABORTION WOMEN’S CLINIC +27730423979 IN women clinic we believe that every woman should be able to make choices in her pregnancy. Our job is to provide compassionate care, safety,affordable and confidential services. That’s why we have won the trust from all generations of women all over the world. we use non surgical method(Abortion pills) to terminate…Dr.LISA +27730423979women Clinic is committed to providing the highest quality of obstetrical and gynecological care to women of all ages. Our dedicated staff aim to treat each patient and her health concerns with compassion and respect.Our dedicated group of receptionists, nurses, and physicians have worked together as a teamof receptionists, nurses, and physicians have worked together as a team wwww.lisywomensclinic.co.za/
Basavarajeeyam is an important text for ayurvedic physician belonging to andhra pradehs. It is a popular compendium in various parts of our country as well as in andhra pradesh. The content of the text was presented in sanskrit and telugu language (Bilingual). One of the most famous book in ayurvedic pharmaceutics and therapeutics. This book contains 25 chapters called as prakaranas. Many rasaoushadis were explained, pioneer of dhatu druti, nadi pareeksha, mutra pareeksha etc. Belongs to the period of 15-16 century. New diseases like upadamsha, phiranga rogas are explained.
Title: Sense of Smell
Presenter: Dr. Faiza, Assistant Professor of Physiology
Qualifications:
MBBS (Best Graduate, AIMC Lahore)
FCPS Physiology
ICMT, CHPE, DHPE (STMU)
MPH (GC University, Faisalabad)
MBA (Virtual University of Pakistan)
Learning Objectives:
Describe the primary categories of smells and the concept of odor blindness.
Explain the structure and location of the olfactory membrane and mucosa, including the types and roles of cells involved in olfaction.
Describe the pathway and mechanisms of olfactory signal transmission from the olfactory receptors to the brain.
Illustrate the biochemical cascade triggered by odorant binding to olfactory receptors, including the role of G-proteins and second messengers in generating an action potential.
Identify different types of olfactory disorders such as anosmia, hyposmia, hyperosmia, and dysosmia, including their potential causes.
Key Topics:
Olfactory Genes:
3% of the human genome accounts for olfactory genes.
400 genes for odorant receptors.
Olfactory Membrane:
Located in the superior part of the nasal cavity.
Medially: Folds downward along the superior septum.
Laterally: Folds over the superior turbinate and upper surface of the middle turbinate.
Total surface area: 5-10 square centimeters.
Olfactory Mucosa:
Olfactory Cells: Bipolar nerve cells derived from the CNS (100 million), with 4-25 olfactory cilia per cell.
Sustentacular Cells: Produce mucus and maintain ionic and molecular environment.
Basal Cells: Replace worn-out olfactory cells with an average lifespan of 1-2 months.
Bowman’s Gland: Secretes mucus.
Stimulation of Olfactory Cells:
Odorant dissolves in mucus and attaches to receptors on olfactory cilia.
Involves a cascade effect through G-proteins and second messengers, leading to depolarization and action potential generation in the olfactory nerve.
Quality of a Good Odorant:
Small (3-20 Carbon atoms), volatile, water-soluble, and lipid-soluble.
Facilitated by odorant-binding proteins in mucus.
Membrane Potential and Action Potential:
Resting membrane potential: -55mV.
Action potential frequency in the olfactory nerve increases with odorant strength.
Adaptation Towards the Sense of Smell:
Rapid adaptation within the first second, with further slow adaptation.
Psychological adaptation greater than receptor adaptation, involving feedback inhibition from the central nervous system.
Primary Sensations of Smell:
Camphoraceous, Musky, Floral, Pepperminty, Ethereal, Pungent, Putrid.
Odor Detection Threshold:
Examples: Hydrogen sulfide (0.0005 ppm), Methyl-mercaptan (0.002 ppm).
Some toxic substances are odorless at lethal concentrations.
Characteristics of Smell:
Odor blindness for single substances due to lack of appropriate receptor protein.
Behavioral and emotional influences of smell.
Transmission of Olfactory Signals:
From olfactory cells to glomeruli in the olfactory bulb, involving lateral inhibition.
Primitive, less old, and new olfactory systems with different path
Ozempic: Preoperative Management of Patients on GLP-1 Receptor Agonists Saeid Safari
Preoperative Management of Patients on GLP-1 Receptor Agonists like Ozempic and Semiglutide
ASA GUIDELINE
NYSORA Guideline
2 Case Reports of Gastric Ultrasound
NVBDCP.pptx Nation vector borne disease control programSapna Thakur
NVBDCP was launched in 2003-2004 . Vector-Borne Disease: Disease that results from an infection transmitted to humans and other animals by blood-feeding arthropods, such as mosquitoes, ticks, and fleas. Examples of vector-borne diseases include Dengue fever, West Nile Virus, Lyme disease, and malaria.
Colonic and anorectal physiology with surgical implications
Cufp 2012 talk
1. Who are ’we’?
How and why we bootstrapped Functional Programming
Evaluation
Summary
Functional Programming @ Ghent IT Valley
R. Slootmaekers N. Trangez
Incubaid Research Lab
Commercial Users of Functional Programming, 2012
R. Slootmaekers, N. Trangez FP@GhentITV
2. Who are ’we’?
How and why we bootstrapped Functional Programming
Evaluation
Summary
Outline
1 Who are ’we’?
2 How and why we bootstrapped Functional Programming
Amplidata’s unbreakable storage
our pain
2.0 plan and execution
3 Evaluation
Were we Happy?(2010)
Are we still happy?(2012)
R. Slootmaekers, N. Trangez FP@GhentITV
3. Who are ’we’?
How and why we bootstrapped Functional Programming
Evaluation
Summary
Incubaid is a technology incubator, active in datacenter
and cloud computing
Prior exits through Terremark, Telenet (Belgian telco),
Veritas/Symantec, Sun Microsystems,. . .
some of our current involvements: Amplidata , Awingu ,
CloudFounders , Dacentec , Racktivity
R. Slootmaekers, N. Trangez FP@GhentITV
4. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
Outline
1 Who are ’we’?
2 How and why we bootstrapped Functional Programming
Amplidata’s unbreakable storage
our pain
2.0 plan and execution
3 Evaluation
Were we Happy?(2010)
Are we still happy?(2012)
R. Slootmaekers, N. Trangez FP@GhentITV
5. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
Amplidata’s Dispersed Storage System
20 000ft view
diskA0
StorageNodeA diskA1
encoder
decoder
Client ........ diskA...
provisioning
policies
StorageNodeZ
metadata
client streams object data
encoder generates equations : Ax = b or x = A−1 b
policies determine how many disks | equations
provisioning determines which disks
send equations to StorageNodes
record metadata
R. Slootmaekers, N. Trangez FP@GhentITV
6. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
Outline
1 Who are ’we’?
2 How and why we bootstrapped Functional Programming
Amplidata’s unbreakable storage
our pain
2.0 plan and execution
3 Evaluation
Were we Happy?(2010)
Are we still happy?(2012)
R. Slootmaekers, N. Trangez FP@GhentITV
7. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
Pain
Pain: resource management
Pain: sockets
Pain: threads
Pain: data corruption
Pain: objects
development was grinding to a halt
R. Slootmaekers, N. Trangez FP@GhentITV
8. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
Pain
Pain: resource management
Pain: sockets
Pain: threads
Pain: data corruption
Pain: objects
development was grinding to a halt
R. Slootmaekers, N. Trangez FP@GhentITV
9. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
The 1.6 Codebase (Core)
Time (Blue):
Pareto applies
1 60% is IO
30% is encoding/decoding
size (Red):
0 > 50 kloc
StIO MdIO Codec Rest Codec ∼ 1 kloc
IO < 1 kloc
R. Slootmaekers, N. Trangez FP@GhentITV
10. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
The Bet
I placed a bet to rewrite the StorageNode component in OCaml
Functionally identical
Same Performance
in 2 days. . .
1.5 day later the drop in replacement was demoed, and we
were allowed to Investigate alternatives to C++ for version 2.0
R. Slootmaekers, N. Trangez FP@GhentITV
11. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
The Bet
I placed a bet to rewrite the StorageNode component in OCaml
Functionally identical
Same Performance
in 2 days. . .
1.5 day later the drop in replacement was demoed, and we
were allowed to Investigate alternatives to C++ for version 2.0
R. Slootmaekers, N. Trangez FP@GhentITV
12. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
How is this possible?
component is very simple
perfect specs
existing component test suite
performance is mostly determined by network & disk speed
OCaml has object orientation.
R. Slootmaekers, N. Trangez FP@GhentITV
13. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
Outline
1 Who are ’we’?
2 How and why we bootstrapped Functional Programming
Amplidata’s unbreakable storage
our pain
2.0 plan and execution
3 Evaluation
Were we Happy?(2010)
Are we still happy?(2012)
R. Slootmaekers, N. Trangez FP@GhentITV
14. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
2.0 Estimates & plan
// in IO ⇒ 30 → 6
recycle codec
do the rest in comfort ⇒ 10 → 20
maybe improve metadata IO (?)
⇒ (time) 100% → 86%
⇒ (size) 100% → 40%
R. Slootmaekers, N. Trangez FP@GhentITV
15. Who are ’we’?
Amplidata’s unbreakable storage
How and why we bootstrapped Functional Programming
our pain
Evaluation
2.0 plan and execution
Summary
What happened?
We decided on Functional programming & picked OCaml.
use Light Weight Threads library.
Blinded by success.
rewrote codec (in C)
metadata → Arakoon
feature creep
⇒ (time) 100% → 40%
⇒ (size) 100% → 100% (90% OCaml, 9% C, 1% Asm)
R. Slootmaekers, N. Trangez FP@GhentITV
16. Who are ’we’?
How and why we bootstrapped Functional Programming Were we Happy?(2010)
Evaluation Are we still happy?(2012)
Summary
Outline
1 Who are ’we’?
2 How and why we bootstrapped Functional Programming
Amplidata’s unbreakable storage
our pain
2.0 plan and execution
3 Evaluation
Were we Happy?(2010)
Are we still happy?(2012)
R. Slootmaekers, N. Trangez FP@GhentITV
17. Who are ’we’?
How and why we bootstrapped Functional Programming Were we Happy?(2010)
Evaluation Are we still happy?(2012)
Summary
Were we Happy? (2010)
No:
Yes: Tools? what tools?
Type Inference rocks 32/64 bit issues
Superfast compiler Multicore issues
Fast Enough Code OCaml(build) learning curve
Nice C integration Emacs only
Refactoring OO does not fit well
Architecture?
R. Slootmaekers, N. Trangez FP@GhentITV
18. Who are ’we’?
How and why we bootstrapped Functional Programming Were we Happy?(2010)
Evaluation Are we still happy?(2012)
Summary
Outline
1 Who are ’we’?
2 How and why we bootstrapped Functional Programming
Amplidata’s unbreakable storage
our pain
2.0 plan and execution
3 Evaluation
Were we Happy?(2010)
Are we still happy?(2012)
R. Slootmaekers, N. Trangez FP@GhentITV
19. Who are ’we’?
How and why we bootstrapped Functional Programming Were we Happy?(2010)
Evaluation Are we still happy?(2012)
Summary
Are we still happy?(2012)
No:
OCaml language evolution.
Yes:
OCaml runtime evolution.
FP strategy works.
OCaml library evolution.
people & process mistakes.
R. Slootmaekers, N. Trangez FP@GhentITV
20. Who are ’we’?
How and why we bootstrapped Functional Programming
Evaluation
Summary
Summary
Doing everything in 1 programming language is plain silly.
(But you need pain and some guerilla tactics to convince
people)
Functional programming and distributed systems match
R. Slootmaekers, N. Trangez FP@GhentITV