Unverified Commit 2e51b7b4 authored by zapashcanon's avatar zapashcanon
Browse files

make all links relatives so they render in the vcs web interface

parent 030b8eab
<h1 id="page-title">Expertise</h1>
We are experts
......@@ -9,15 +9,15 @@ We have years of experience on the research and development of programming langu
<br />
<div class="row">
<div class="col-lg-4">
<p><img src="/assets/img/home_industry.png" /></p>
<p><img src="assets/img/home_industry.png" /></p>
<h3 align="center">For industrial partners who face challenges</h3>
</div>
<div class="col-lg-4">
<p><img src="/assets/img/home_research.png" /></p>
<p><img src="assets/img/home_research.png" /></p>
<h3 align="center">For R&amp;D labs who need collaboration</h3>
</div>
<div class="col-lg-4">
<p><img src="/assets/img/home_dev.png" /></p>
<p><img src="assets/img/home_dev.png" /></p>
<h3 align="center">For developers to reach mastery</h3>
</div>
</div>
......@@ -39,66 +39,66 @@ We cater to very specific needs. For example, we can translate a “black box”
<br />
<div class="row">
<div class="col-lg-3">
<p><img src="/assets/img/logo_opam.png"/></p>
<p><img src="assets/img/logo_opam.png"/></p>
<h3 align="center"><a href="https://opam.ocaml.org">opam</a></h3>
<p>A highly scalable package manager</p>
</div>
<div class="col-lg-3">
<p><img src="/assets/img/logo_memprof.png"/></p>
<p><img src="assets/img/logo_memprof.png"/></p>
<h3 align="center"><a href="http://memprof.typerex.org/">memprof</a></h3>
<p>Non-intrusive memory profiler for OCaml applications</p>
</div>
<div class="col-lg-3">
<p><img src="/assets/img/logo_tryocaml.png"/></p>
<p><img src="assets/img/logo_tryocaml.png"/></p>
<h3 align="center"><a href="https://try.ocamlpro.com/">TryOCaml</a></h3>
<p>Online OCaml toplevel for beginners</p>
</div>
<div class="col-lg-3">
<p><img src="/assets/img/logo_tezos.svg" width="150"/></p>
<p><img src="assets/img/logo_tezos.svg" width="150"/></p>
<h3 align="center"><a href="https://en.wikipedia.org/wiki/Tezos">Tezos</a></h3>
<p>A blockchain with integrated governance</p>
</div>
</div>
<div class="row">
<div class="col-lg-3">
<p><img src="/assets/img/logo_dune.png"/></p>
<p><img src="assets/img/logo_dune.png"/></p>
<h3 align="center"><a href="https://dunscan.io/">DunScan</a></h3>
<p>The Dune network explorer</p>
</div>
<div class="col-lg-3">
<p><img src="/assets/img/logo_tzscan.png"/></p>
<p><img src="assets/img/logo_tzscan.png"/></p>
<h3 align="center"><a href="https://tzscan.io/">TZScan</a></h3>
<p>The Tezos network explorer</p>
</div>
<div class="col-lg-3">
<p><img src="/assets/img/logo_altergo.png"/></p>
<p><img src="assets/img/logo_altergo.png"/></p>
<h3 align="center"><a href="https://alt-ergo.ocamlpro.com/">Alt-Ergo</a></h3>
<p>An SMT solver for software verification</p>
</div>
<div class="col-lg-3">
<p><img src="/assets/img/logo_techelson.png"/></p>
<p><img src="assets/img/logo_techelson.png"/></p>
<h3 align="center"><a href="https://ocamlpro.github.io/techelson/">Techelson</a></h3>
<p>A test execution engine for Michelson</p>
</div>
</div>
<div class="row">
<div class="col-lg-3">
<p><img src="/assets/img/logo_liquidity.svg" width="150"/></p>
<p><img src="assets/img/logo_liquidity.svg" width="150"/></p>
<h3 align="center"><a href="https://www.liquidity-lang.org/">Liquidity</a></h3>
<p>A smart-contract language for the Tezos blockchain</p>
</div>
<div class="col-lg-3">
<p><img src="/assets/img/logo_love.png"/></p>
<p><img src="assets/img/logo_love.png"/></p>
<h3 align="center"><a href="https://dune.network/docs/dune-node-next/love-doc/reference/love.htmlo/">LOVE</a></h3>
<p>A smart-contract language for the Dune Network blockchain</p>
</div>
<div class="col-lg-3">
<p><img src="/assets/img/logo_solidityparser.png"/></p>
<p><img src="assets/img/logo_solidityparser.png"/></p>
<h3 align="center"><a href="https://gitlab.com/o-labs/solidity-parser-ocaml">Solidity parser</a></h3>
<p>A Solidity Parser in OCaml with Menhir</p>
</div>
<div class="col-lg-3">
<p><img src="/assets/img/logo_optal.png"/></p>
<p><img src="assets/img/logo_optal.png"/></p>
<h3 align="center"><a href="https://github.com/OcamlPro/optal">Optal</a></h3>
<p>A language for linear optimization</p>
</div>
......@@ -112,38 +112,38 @@ We cater to very specific needs. For example, we can translate a “black box”
<br />
<div class="row">
<div class="col-lg-2">
<p><a href="https://www.janestreet.com"><img src="/assets/img/logo_janestreet.svg" width="150"/></a></p>
<p><a href="https://www.janestreet.com"><img src="assets/img/logo_janestreet.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://www.samsung.com"><img src="/assets/img/logo_samsung.svg" width="150"/></a></p>
<p><a href="https://www.samsung.com"><img src="assets/img/logo_samsung.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://www.mitsubishielectric-rce.eu/"><img src="/assets/img/logo_merce.svg" width="150"/></a></p>
<p><a href="https://www.mitsubishielectric-rce.eu/"><img src="assets/img/logo_merce.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://www.adacore.com/"><img src="/assets/img/logo_adacore.svg" width="150"/></a></p>
<p><a href="https://www.adacore.com/"><img src="assets/img/logo_adacore.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://trust-in-soft.com/"><img src="/assets/img/logo_trustinsoft.svg" width="150"/></a></p>
<p><a href="https://trust-in-soft.com/"><img src="assets/img/logo_trustinsoft.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://cryptosense.com/"><img src="/assets/img/logo_cryptosense.png" width="150"/></a></p>
<p><a href="https://cryptosense.com/"><img src="assets/img/logo_cryptosense.png" width="150"/></a></p>
</div>
</div>
<div class="row">
<div class="col-lg-2">
<p><a href="https://www.inria.fr"><img src="/assets/img/logo_inria.svg" width="150"/></a></p>
<p><a href="https://www.inria.fr"><img src="assets/img/logo_inria.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="http://www-list.cea.fr"><img src="/assets/img/logo_cealist.png" width="150"/></a></p>
<p><a href="http://www-list.cea.fr"><img src="assets/img/logo_cealist.png" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://www.lexifi.com"><img src="/assets/img/logo_lexifi.svg" width="150"/></a></p>
<p><a href="https://www.lexifi.com"><img src="assets/img/logo_lexifi.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://www.bloomberg.com"><img src="/assets/img/logo_bloomberg.svg" width="150"/></a></p>
<p><a href="https://www.bloomberg.com"><img src="assets/img/logo_bloomberg.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://www.facebook.com/"><img src="/assets/img/logo_facebook.svg" width="150"/></a></p>
<p><a href="https://www.facebook.com/"><img src="assets/img/logo_facebook.svg" width="150"/></a></p>
</div>
</div>
......@@ -28,7 +28,7 @@ We do accept industry oriented doctoral theses (CIFRE PhDs)!
<p class="card-text">
La première tâche du stage consistera à établir une liste de critères qui permet de déterminer la logique minimale d’un problème SMTLIB2, et la deuxième partie du stage sera d’implémenter ces critères dans Dolmen.
</p>
<a href="/assets/pdf/detection_de_logique_minimale_d_un_probleme_smt2.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
<a href="assets/pdf/detection_de_logique_minimale_d_un_probleme_smt2.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
</div>
</div>
</div>
......@@ -44,7 +44,7 @@ We do accept industry oriented doctoral theses (CIFRE PhDs)!
<p class="card-text">
Le premier but de ce stage serait de faire un état des lieux des travaux effectués sur le fuzzing des outils supportant le standard smt-lib, ainsi qu’étudier les résultats de tels outils de fuzzing sur Alt-Ergo. Dans un second temps, le but sera de créer un fuzzer pour le langage d’entrée d’Alt-Ergo.
</p>
<a href="/assets/pdf/stage_alt_ergo_fuzz.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
<a href="assets/pdf/stage_alt_ergo_fuzz.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
</div>
</div>
</div>
......@@ -60,7 +60,7 @@ We do accept industry oriented doctoral theses (CIFRE PhDs)!
<p class="card-text">
Le but premier de ce stage sera de compiler Alt-Ergo sous windows grâce aux outils de la communauté comme la cross compilation de Dune ou opam-cross-windows. Le second but de ce stage sera de mettre en place une intégration continue de cette compilation sous windows sur le dépot Github d’Alt-Ergo via des services comme Azure de Microsoft.
</p>
<a href="/assets/pdf/stage_alt_ergo_for_the_windows.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
<a href="assets/pdf/stage_alt_ergo_for_the_windows.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
</div>
</div>
</div>
......@@ -79,7 +79,7 @@ We do accept industry oriented doctoral theses (CIFRE PhDs)!
<p class="card-text">
La première tâche du stage serait de renforcer la mise en place et l’intégration de l’outil benchpress de Simon Cruanes sur notre serveur. La seconde tâche concernera l’automatisation de tests. Pour cela nous souhaiterions mettre en place un système qui teste notre branche principale du dépôt Github d’Alt-Ergo dès que cette dernière est modifiée.
</p>
<a href="/assets/pdf/stage_alt_ergo_on_the_bench.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
<a href="assets/pdf/stage_alt_ergo_on_the_bench.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
</div>
</div>
</div>
......@@ -95,7 +95,7 @@ We do accept industry oriented doctoral theses (CIFRE PhDs)!
<p class="card-text">
L’objectif de ce stage est d’étudier et implémenter cette généralisation. Le stage se déroulera au sein de l’équipe flambda chez OCamlPro qui développe des optimisations sur le langage OCaml.
</p>
<a href="/assets/pdf/stage_generalisation_recursion_terminale_moduloconstructeur1.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
<a href="assets/pdf/stage_generalisation_recursion_terminale_moduloconstructeur1.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
</div>
</div>
</div>
......@@ -111,7 +111,7 @@ We do accept industry oriented doctoral theses (CIFRE PhDs)!
<p class="card-text">
Fonctionnelle et plébiscitée par la communauté OCaml, cette nouvelle version est cependant toujours en version “Beta”, et nous aimerions y apporter une gamme d’améliorations de petite et plus grande envergure. Les objectifs pourront porter sur l’amélioration de l’interface et des fonctionnalités OCaml et Web.
</p>
<a href="/assets/pdf/stage_ameliorations_application_web_try_ocaml.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
<a href="assets/pdf/stage_ameliorations_application_web_try_ocaml.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
</div>
</div>
</div>
......@@ -129,7 +129,7 @@ We do accept industry oriented doctoral theses (CIFRE PhDs)!
<p class="card-text">
L’objectif est d’étudier la faisabilité de cette analyse, y compris documenter les choix possibles et leurs avantages et désavantages respectifs. Le stage se déroulera au sein de l’équipe flambda qui développe des optimisations sur le langage OCaml. Le travail réalisé a vocation à être intégré au compilateur officiel par l’équipe flambda par la suite.
</p>
<a href="/assets/pdf/stage_detection_fonction_identite_compilation.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
<a href="assets/pdf/stage_detection_fonction_identite_compilation.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
</div>
</div>
</div>
......@@ -145,7 +145,7 @@ We do accept industry oriented doctoral theses (CIFRE PhDs)!
<p class="card-text">
L’objectif de ce stage est de développer une version dynamique de ce site, d’améliorer la génération de la documentation et son ergonomie, et de permettre de naviguer facilement dans les sources des paquets.
</p>
<a href="/assets/pdf/opamdocs.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
<a href="assets/pdf/opamdocs.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
</div>
</div>
</div>
......@@ -161,7 +161,7 @@ We do accept industry oriented doctoral theses (CIFRE PhDs)!
<p class="card-text">
L’objectif de ce stage est de développer une interface graphique pour opam pour permettre à ses utilisateurs débutants d’accéder rapidement à ses fonctionnalités les plus avancées, tout en rendant la gestion au quotidien de multiples installations d’OCaml plus facile.
</p>
<a href="/assets/pdf/stage_interface_graphique_gestion_paquets_ocaml.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
<a href="assets/pdf/stage_interface_graphique_gestion_paquets_ocaml.pdf" class="btn btn-primary">Description détaillée (pdf)</a>
</div>
</div>
</div>
......
......@@ -128,18 +128,18 @@
<div class="row">
<div class="col-lg-2">
<p><a href="https://www.essonne.fr"><img src="/assets/img/logo_essonne.svg" width="150"/></a></p>
<p><a href="https://www.essonne.fr"><img src="assets/img/logo_essonne.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://parisregion.eu"><img src="/assets/img/logo_paris_region.svg" width="150"/></a></p>
<p><a href="https://parisregion.eu"><img src="assets/img/logo_paris_region.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://www.bpifrance.fr"><img src="/assets/img/logo_bpi_france.svg" width="150"/></a></p>
<p><a href="https://www.bpifrance.fr"><img src="assets/img/logo_bpi_france.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://anr.fr"><img src="/assets/img/logo_anr.svg" width="150"/></a></p>
<p><a href="https://anr.fr"><img src="assets/img/logo_anr.svg" width="150"/></a></p>
</div>
<div class="col-lg-2">
<p><a href="https://www.iledefrance.fr"><img src="/assets/img/logo_idf.svg" width="150"/></a></p>
<p><a href="https://www.iledefrance.fr"><img src="assets/img/logo_idf.svg" width="150"/></a></p>
</div>
</div>
......@@ -8,7 +8,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_muriel.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_muriel.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Muriel Shan Sei Fan</h4>
<p><small class="text-muted">President</small></p>
</div>
......@@ -23,7 +23,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_fabrice.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_fabrice.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Fabrice Le Fessant</h4>
<p><small class="text-muted">Founder and CSO</small></p>
</div>
......@@ -42,7 +42,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_pierre.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_pierre.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Pierre Chambart</h4>
<p><small class="text-muted">CTO and Senior R&amp;D Engineer</small></p>
</div>
......@@ -57,7 +57,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_louis.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_louis.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Louis Gesbert</h4>
<p><small class="text-muted">Senior R&D Engineer & Deputy CTO</small></p>
</div>
......@@ -76,7 +76,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_vincent.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_vincent.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Vincent Laviron</h4>
<p><small class="text-muted">Senior R&amp;D Engineer &amp; Deputy CTO</small></p>
</div>
......@@ -91,7 +91,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_thomas.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_thomas.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Thomas Blanc</h4>
<p><small class="text-muted">R&amp;D Engineer</small></p>
</div>
......@@ -110,7 +110,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_steven.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_steven.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Steven De Oliveira</h4>
<p><small class="text-muted">R&amp;D Engineer</small></p>
</div>
......@@ -125,7 +125,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_raja.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_raja.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Raja Boujbel</h4>
<p><small class="text-muted">Senior R&amp;D Engineer</small></p>
</div>
......@@ -144,7 +144,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_guillaume.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_guillaume.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Guillaume Bury</h4>
<p><small class="text-muted">R&amp;D Engineer</small></p>
</div>
......@@ -159,7 +159,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_david.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_david.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">David Declerck</h4>
<p><small class="text-muted">R&amp;D Engineer</small></p>
</div>
......@@ -178,7 +178,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_adrien.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_adrien.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Adrien Champion</h4>
<p><small class="text-muted">Senior R&amp;D Engineer</small></p>
</div>
......@@ -193,7 +193,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_keryan.png" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_keryan.png" class="img-fluid rounded card-image"/>
<h4 class="card-title">Keryan Didier</h4>
<p><small class="text-muted">R&amp;D Engineer</small></p>
</div>
......@@ -212,7 +212,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_aurore.jpeg" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_aurore.jpeg" class="img-fluid rounded card-image"/>
<h4 class="card-title">Aurore Drombry</h4>
<p><small class="text-muted">Communication Manager</small></p>
</div>
......@@ -227,7 +227,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_leo.png" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_leo.png" class="img-fluid rounded card-image"/>
<h4 class="card-title">Léo Andrès</h4>
<p><small class="text-muted">R&amp;D Engineer</small></p>
</div>
......@@ -246,7 +246,7 @@
<div class="col-lg-6">
<div class="row">
<div class="col-lg-4">
<img src="/assets/img/photo_dario.png" class="img-fluid rounded card-image"/>
<img src="assets/img/photo_dario.png" class="img-fluid rounded card-image"/>
<h4 class="card-title">Dario Pinto</h4>
<p><small class="text-muted">Junior Developer</small></p>
</div>
......
......@@ -8,13 +8,13 @@
<br />
<img src="/assets/img/logo_ocaml.svg" />
<img src="assets/img/logo_ocaml.svg" />
<br />
This course has been designed by the OCamlPro team to enable developers to build upon their experience of other programming languages, such as C, C++, Python, C# or Java, to program confidently in OCaml. This covers all the main aspects of the OCaml language and tools and interleaves theory and practice. Depending on the duration and the customer needs, we can focus more on specific topics and design suitable learning projects.
<a role="button" class="btn btn-primary" href="/course_ocaml_development">Learn more about this training</a>
<a role="button" class="btn btn-primary" href="course_ocaml_development">Learn more about this training</a>
<br />
<br />
<br />
......@@ -27,13 +27,13 @@ This course has been designed by the OCamlPro team to enable developers to build
<br />
<img src="/assets/img/logo_ocaml.svg" />
<img src="assets/img/logo_ocaml.svg" />
<br />
This training has been designed by the OCamlPro team to enable developers to use more advanced features of OCaml powerful type-system, benefit from all the open-source tools and libraries, and to write compact and efficient code. Learn more about this training.
<a role="button" class="btn btn-primary" href="/course_ocaml_expert">Learn more about this training</a>
<a role="button" class="btn btn-primary" href="course_ocaml_expert">Learn more about this training</a>
<hr class="featurette-divider">
......@@ -43,14 +43,14 @@ This training has been designed by the OCamlPro team to enable developers to use
<br />
<img src="/assets/img/logo_rust.svg" />
<img src="assets/img/logo_rust.svg" />
<br />
<br />
We have designed the Rust Training as a highly-modular vocational course to enable developers to learn Rust. This young systems language has a strong focus on safety, efficiency and safe concurrency, with C/C++ like performance. The training covers a beginner introduction to Rust’s basics features, crucial features and libraries for real-life development and advanced features. Each part will be further demonstrated through complex use-cases. Learn more about this training.
<a role="button" class="btn btn-primary" href="/course_rust_vocational_training">Learn more about this training</a>
<a role="button" class="btn btn-primary" href="course_rust_vocational_training">Learn more about this training</a>
<hr class="featurette-divider">
......@@ -62,13 +62,13 @@ We have designed the Rust Training as a highly-modular vocational course to enab
<br />
<img src="/assets/img/logo_ocaml.svg" />
<img src="assets/img/logo_ocaml.svg" />
<br />
This training has been designed by the OCaml team to focus specifically on writing the most efficient code for demanding applications. Participants will benefit from the direct involvement of the OCamlPro team in the development of OCaml compilers. Learn more about this training.
<a role="button" class="btn btn-primary" href="/course_ocaml_code_opti">Learn more about this training</a>
<a role="button" class="btn btn-primary" href="course_ocaml_code_opti">Learn more about this training</a>
<hr class="featurette-divider">
......@@ -79,14 +79,14 @@ This training has been designed by the OCaml team to focus specifically on writi
<br />
<img src="/assets/img/logo_opam.png" />
<img src="assets/img/logo_opam.png" />
<br />
<br />
The opam source package manager has reached an exceptional popularity in the OCaml world. It can now be seen as the easiest way to install OCaml and its development environment on any computer. But did you know that opam was also designed to integrate nicely in a professional environment and could boost your development productivity too? Learn more about this training.
<a role="button" class="btn btn-primary" href="/course_mastering_opam_ocaml_tools">Learn more about this training</a>
<a role="button" class="btn btn-primary" href="course_mastering_opam_ocaml_tools">Learn more about this training</a>
<hr class="featurette-divider">
......@@ -97,8 +97,8 @@ The opam source package manager has reached an exceptional popularity in the OCa
<br />
<img src="/assets/img/logo_custom_training.png" />
<img src="assets/img/logo_custom_training.png" />
<br />
<br />
OCamlPro offers OCaml courses at all levels world-wide. Courses are adapted to software developers or test and support engineers. We can customize and run any of our regular courses for you at your offices. Our team of engineers can meet your specific needs and tailor a course for your company. <a href="/contact">Contact us.</a>
OCamlPro offers OCaml courses at all levels world-wide. Courses are adapted to software developers or test and support engineers. We can customize and run any of our regular courses for you at your offices. Our team of engineers can meet your specific needs and tailor a course for your company. <a href="contact">Contact us.</a>
......@@ -3,34 +3,34 @@ let render_unsafe ~lang ~title ~content =
<html lang="<%s lang %>">
<head>
<title><%s title %> | OCamlPro</title>
<link rel="icon" type="image/svg+xml" href="/assets/img/logo_ocp_icon.svg">
<link href="/assets/css/bootstrap.min.css" rel="stylesheet"/>
<link href="/assets/css/style.css" rel="stylesheet">
<link rel="icon" type="image/svg+xml" href="assets/img/logo_ocp_icon.svg">
<link href="assets/css/bootstrap.min.css" rel="stylesheet"/>
<link href="assets/css/style.css" rel="stylesheet">
</head>
<body>
<header>
<nav class="navbar navbar-expand-md navbar-dark fixed-top bg-dark">
<div class="container-fluid">
<a class="navbar-brand" href="/"><img src="/assets/img/logo_ocamlpro.png" alt="OCamlPro" height="42" /></a>
<a class="navbar-brand" href="index"><img src="assets/img/logo_ocamlpro.png" alt="OCamlPro" height="42" /></a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarCollapse">
<ul class="navbar-nav me-auto mb-2 mb-md-0">
<li class="nav-item">
<a class="nav-link" href="/research-and-development">R&amp;D</a>
<a class="nav-link" href="research-and-development">R&amp;D</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/trainings">Trainings</a>
<a class="nav-link" href="trainings">Trainings</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/team">Team</a>
<a class="nav-link" href="team">Team</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/jobs">Jobs</a>
<a class="nav-link" href="jobs">Jobs</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/blog">Blog</a>
<a class="nav-link" href="blog">Blog</a>
</li>
</ul>
</div>
......@@ -53,10 +53,10 @@ let render_unsafe ~lang ~title ~content =
<a href="mailto:contact@ocamlpro.com">Email</a> &middot;
<a href="tel:+33184800481">Phone</a> &middot;
<a href="https://www.openstreetmap.org/node/2996094140">21 rue de Châtillon, 75014 Paris, France</a> &middot;
<a href="/legal-notice">Legal Notice</a>
<a href="legal-notice">Legal Notice</a>
</p>
</footer>
</main>
<script src="/assets/js/bootstrap.bundle.min.js"></script>
<script src="assets/js/bootstrap.bundle.min.js"></script>
</body>
</html>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment