Ce sont les slides que j'ai présentées, elles sont un peu légères.
Pour les anecdotes pour les savants, lisez "Hack Your Brain - Trivia"
Pour le détail complet, lisez la version anglaise "Hack Your Brain"
This document provides an overview of key concepts in evolutionary theory, including:
- The history of evolutionary thought from ancient Greek and medieval views to modern theories proposed by Darwin and Spencer.
- Mechanisms of evolution like natural selection, genetic drift, mutation and gene flow that can lead to changes in allele frequencies within populations.
- Other evolutionary processes such as adaptation, coevolution, speciation and extinction that shape the diversity of life over time.
- The role of heredity, variation and inheritance in passing traits between generations and maintaining genetic variation within populations.
How to Build a Dynamic Social Media PlanPost Planner
Stop guessing and wasting your time on networks and strategies that don’t work!
Join Rebekah Radice and Katie Lance to learn how to optimize your social networks, the best kept secrets for hot content, top time management tools, and much more!
Watch the replay here: bit.ly/socialmedia-plan
Ce sont les slides que j'ai présentées, elles sont un peu légères.
Pour les anecdotes pour les savants, lisez "Hack Your Brain - Trivia"
Pour le détail complet, lisez la version anglaise "Hack Your Brain"
This document provides an overview of key concepts in evolutionary theory, including:
- The history of evolutionary thought from ancient Greek and medieval views to modern theories proposed by Darwin and Spencer.
- Mechanisms of evolution like natural selection, genetic drift, mutation and gene flow that can lead to changes in allele frequencies within populations.
- Other evolutionary processes such as adaptation, coevolution, speciation and extinction that shape the diversity of life over time.
- The role of heredity, variation and inheritance in passing traits between generations and maintaining genetic variation within populations.
How to Build a Dynamic Social Media PlanPost Planner
Stop guessing and wasting your time on networks and strategies that don’t work!
Join Rebekah Radice and Katie Lance to learn how to optimize your social networks, the best kept secrets for hot content, top time management tools, and much more!
Watch the replay here: bit.ly/socialmedia-plan
Clear PHP est la référence de programmation PHP pour tous. Elle rassemble la plus grande list de recommendations pour écrire du code clair, éviter les erreurs classiques, prévenir le code mort et préparer les prochaines versions de la plate-forme. Ces recommendations se concentrent sur PHP, et se situent entre les conventions d'écriture et la conception logicielle. C'est la première fois qu'une telle référence a été compilée, pour permettre à tous de bâtir son propre référentiel de programmation en PHP.
DataDrill EXPRESS: Les équations dans DataDrill Olivier Pinette
Pour construire ses indicateurs, l’utilisateur de DataDrill EXPRESS a souvent besoin d’utiliser des équations pour valoriser certaines séries. Régulièrement, nous recevons des questions à ce sujet.
Dans ce document, nous avons voulu détailler les principales équations disponibles dans DataDrill EXPRESS (version 4.1), mais aussi les astuces et bonnes pratiques.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
Clear PHP est la référence de programmation PHP pour tous. Elle rassemble la plus grande list de recommendations pour écrire du code clair, éviter les erreurs classiques, prévenir le code mort et préparer les prochaines versions de la plate-forme. Ces recommendations se concentrent sur PHP, et se situent entre les conventions d'écriture et la conception logicielle. C'est la première fois qu'une telle référence a été compilée, pour permettre à tous de bâtir son propre référentiel de programmation en PHP.
DataDrill EXPRESS: Les équations dans DataDrill Olivier Pinette
Pour construire ses indicateurs, l’utilisateur de DataDrill EXPRESS a souvent besoin d’utiliser des équations pour valoriser certaines séries. Régulièrement, nous recevons des questions à ce sujet.
Dans ce document, nous avons voulu détailler les principales équations disponibles dans DataDrill EXPRESS (version 4.1), mais aussi les astuces et bonnes pratiques.
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
OCTO TALKS : 4 Tech Trends du Software Engineering.pdfOCTO Technology
En cette année 2024 qui s’annonce sous le signe de la complexité, avec :
- L’explosion de la Gen AI
-Un contexte socio-économique sous tensions
- De forts enjeux sur le Sustainable et la régulation IT
- Une archipélisation des lieux de travail post-Covid
Découvrez les Tech trends incontournables pour délivrer vos produits stratégiques.
Le Comptoir OCTO - Équipes infra et prod, ne ratez pas l'embarquement pour l'...OCTO Technology
par Claude Camus (Coach agile d'organisation @OCTO Technology) et Gilles Masy (Organizational Coach @OCTO Technology)
Les équipes infrastructure, sécurité, production, ou cloud, doivent consacrer du temps à la modernisation de leurs outils (automatisation, cloud, etc) et de leurs pratiques (DevOps, SRE, etc). Dans le même temps, elles doivent répondre à une avalanche croissante de demandes, tout en maintenant un niveau de qualité de service optimal.
Habitué des environnements développeurs, les transformations agiles négligent les particularités des équipes OPS. Lors de ce comptoir, nous vous partagerons notre proposition de valeur de l'agilité@OPS, qui embarquera vos équipes OPS en Classe Business (Agility), et leur fera dire : "nous ne reviendrons pas en arrière".
3. Arel
Alg`bre relationnelle ou ActiveRelation
e
Trˆn Jean-Fran¸ois
a c AREL
4. Qu’est-ce qu’Arel ?
Biblioth`que ´crite par Nick Kallen.
e e
Trˆn Jean-Fran¸ois
a c AREL
5. Qu’est-ce qu’Arel ?
Biblioth`que ´crite par Nick Kallen.
e e
Nick Kallen : auteur de has finder, int´gr´ dans Rails sous le
e e
nom de Name Scoped (sera dispo dans Rails 2.1)
Trˆn Jean-Fran¸ois
a c AREL
6. Qu’est-ce qu’Arel ?
Biblioth`que ´crite par Nick Kallen.
e e
Nick Kallen : auteur de has finder, int´gr´ dans Rails sous le
e e
nom de Name Scoped (sera dispo dans Rails 2.1)
Arel se veut le ”Rack des ORM”.
Trˆn Jean-Fran¸ois
a c AREL
7. Alg`bre relationnelle
e
Alg`bre relationnelle : th´orie ` la base des Bases de donn´es
e e a e
relationnelles.
pour les d´tails, demandez ` Codd de vous expliquer, pour
e a
moi mes cours de BD sont loins !
En gros, on a des relations, on peut y op´rer des op´rations
e e
comme la S´lection, la Projection, le Produit Cart´sien, le
e e
Rename, l’Union, la Diff´rence, la Division, les Jointures...
e
Trˆn Jean-Fran¸ois
a c AREL
8. Installation
Sur GitHub : http://github.com/nkallen/arel/tree/master
git clone git://github.com/nkallen/arel.git
Trˆn Jean-Fran¸ois
a c AREL
9. ORM Builder
Un ORM Builder, c’est-`-dire qu’on peut construire son
a
propre ORM en se basant sur Arel.
Trˆn Jean-Fran¸ois
a c AREL
10. ORM Builder
Un ORM Builder, c’est-`-dire qu’on peut construire son
a
propre ORM en se basant sur Arel.
Celui va g´n´rer le SQL en traversant une sorte d’AST.
e e
Trˆn Jean-Fran¸ois
a c AREL
11. ORM Builder
Un ORM Builder, c’est-`-dire qu’on peut construire son
a
propre ORM en se basant sur Arel.
Celui va g´n´rer le SQL en traversant une sorte d’AST.
e e
Plus puissant qu’un QueryBuilder car Arel travaille sur des
relations et ne fait pas de concat´nation de chaˆ
e ınes
(seulement en dernier lieu).
Trˆn Jean-Fran¸ois
a c AREL
12. ORM Builder
Un ORM Builder, c’est-`-dire qu’on peut construire son
a
propre ORM en se basant sur Arel.
Celui va g´n´rer le SQL en traversant une sorte d’AST.
e e
Plus puissant qu’un QueryBuilder car Arel travaille sur des
relations et ne fait pas de concat´nation de chaˆ
e ınes
(seulement en dernier lieu).
Arel : se veut un middleware pour ORM.
Trˆn Jean-Fran¸ois
a c AREL
13. ORM Builder
Pas de gestion du mapping table/classe Ruby.
Trˆn Jean-Fran¸ois
a c AREL
14. ORM Builder
Pas de gestion du mapping table/classe Ruby.
Pas de gestion des associations au sens d’ActiveRecord.
Trˆn Jean-Fran¸ois
a c AREL
15. ORM Builder
Pas de gestion du mapping table/classe Ruby.
Pas de gestion des associations au sens d’ActiveRecord.
peut-ˆtre utilis´ pour refactoriser le code interne
e e
d’ActiveRecord (ou de DataMapper ou...).
Trˆn Jean-Fran¸ois
a c AREL
16. ORM Builder
Pas de gestion du mapping table/classe Ruby.
Pas de gestion des associations au sens d’ActiveRecord.
peut-ˆtre utilis´ pour refactoriser le code interne
e e
d’ActiveRecord (ou de DataMapper ou...).
On d´finit son API publique au dessus d’Arel comme on le
e
souhaite (Ambition ?).
Trˆn Jean-Fran¸ois
a c AREL
17. Closure under composition
C’est quoi la ”closure under composition” ?
J’en sais rien, et vous ?
closure : ”In mathematics, a set is said to be closed under
some operation if the operation on members of the set
produces a member of the set.” (Wikipedia ”closure
(mathematics”)”)
Trˆn Jean-Fran¸ois
a c AREL
18. SQL g´n´r´
e ee
#to_sql
Les exemples suivants sont faits en passant #to_sql Ici avec
ActiveRecord et l’adaptateur SQLite pour le quoting SQL.
Trˆn Jean-Fran¸ois
a c AREL
19. D´finition des tables des exemples
e
create_table :users, :force => true do |t|
t.string :name
end
create_table :articles do |t|
t.string :title
t.integer :comments_count
t.references :user
end
Trˆn Jean-Fran¸ois
a c AREL
20. CRUD
Insertion
Delete
Update
Trˆn Jean-Fran¸ois
a c AREL
21. CRUD avec ActiveRelation::Table
users = ActiveRelation::Table.new(:users)
users.select(...)
users.insert(users[:name] => ’Iron Man’)
users.update(...)
users.delete(...)
Trˆn Jean-Fran¸ois
a c AREL
22. CRUD : Delete
ActiveRelation::Deletion.new(articles.select(articles[:id].
DELETE
FROM articles
WHERE articles.quot;idquot; = 1
Update
Trˆn Jean-Fran¸ois
a c AREL
23. CRUD : Insertion
ActiveRelation::Insertion.new(
articles, articles[:title] => ’chti’).to_sql
INSERT
INTO articles
(articles.quot;titlequot;)
VALUES (’coucou’)
Trˆn Jean-Fran¸ois
a c AREL
24. Attributs
ActiveRelation::Attribute.new(articles, :id)
mˆme chose que :
e
articles[:id]
Trˆn Jean-Fran¸ois
a c AREL
25. Pr´dicats
e
Avec les Attributs, on peut composer des pr´dicats (´galit´,
e e e
inclusion, op´rateurs binaires)
e
Trˆn Jean-Fran¸ois
a c AREL
26. Pr´dicats : Equality
e
articles[:id].eq(’foo’).class
# => ActiveRelation::Equality
Trˆn Jean-Fran¸ois
a c AREL
27. Pr´dicats : Equality
e
ActiveRelation::Equality.new(
articles[:user_id],
users[:id]
)
# SQL => quot;articles.quot;user_idquot; = users.quot;idquot;quot;
identique ` :
a
articles[:user_id].eq(users[:id])
# SQL => quot;articles.quot;user_idquot; = users.quot;idquot;quot;
Trˆn Jean-Fran¸ois
a c AREL
28. Pr´dicats : Equality (suite)
e
articles[:id].eq(’foo’)
# SQL => quot;articles.quot;idquot; = 0quot;
articles[:title].eq(’foo’)
# SQL => quot;articles.quot;titlequot; = ’foo’quot;
articles[:title].eq(nil)
# SQL => quot;articles.quot;titlequot; IS NULLquot;
articles[:title].eq(true)
# SQL => quot;articles.quot;titlequot; = ’t’quot;
Trˆn Jean-Fran¸ois
a c AREL
32. Inclusion
articles[:id].in(1..4)
# SQL => quot;articles.quot;idquot; BETWEEN 1 AND 4quot;
articles[:id].in([1, 3, 5])
# SQL => quot;articles.quot;idquot; IN (1, 3, 5)quot;
Trˆn Jean-Fran¸ois
a c AREL
33. Inclusion (suite)
users
# SQL => quot;SELECT users.quot;idquot;, users.quot;namequot; FROM usersquot;
articles[:id].in(users)
# SQL => quot;articles.quot;idquot; IN (SELECT
users.quot;idquot;, users.quot;namequot; FROM users)quot;
articles[:user_id].in(
users.select(users[:id].in(1..5))
)
# => quot;articles.quot;user_idquot; IN
(SELECT users.quot;idquot;, users.quot;namequot;
FROM users WHERE users.quot;idquot; BETWEEN 1 AND 5)quot;
Trˆn Jean-Fran¸ois
a c AREL
34. Select
users.select(users[:id].in(1..5))
Trˆn Jean-Fran¸ois
a c AREL
35. Sub Select
articles.select(
articles[:user_id].in(
users.select(users[:id].in(1..5)).project(users[:id])
)
).to_sql
SELECT articles.quot;idquot;, articles.quot;titlequot;,
articles.quot;comments_countquot;,
articles.quot;user_idquot;
FROM articles
WHERE articles.quot;user_idquot; IN
(SELECT users.quot;idquot;
FROM users
WHERE users.quot;idquot; BETWEEN 1 AND 5)
Trˆn Jean-Fran¸ois
a c AREL
36. Exemple plus compliqu´
e
articles.select(
articles[:user_id].in(
users.select( users[:id].in(1..5) ).project(users[:id])
).project(articles[:id].maximum).to_sql
SELECT MAX(articles.quot;idquot;)
FROM articles
WHERE articles.quot;user_idquot; IN (
SELECT users.quot;idquot;
FROM users
WHERE users.quot;idquot; BETWEEN 1 AND 5)
Trˆn Jean-Fran¸ois
a c AREL
37. Order
articles.select.order(articles[:title]).to_sql
SELECT articles.quot;idquot;, articles.quot;titlequot;,
articles.quot;comments_countquot;, articles.quot;user_idquot;
FROM articles
WHERE
ORDER BY articles.quot;titlequot;
Trˆn Jean-Fran¸ois
a c AREL
38. Jointures
articles.join(users).on(articles[:user_id].eq(users[:id]))
SELECT articles.quot;idquot;, articles.quot;titlequot;,
articles.quot;comments_countquot;, articles.quot;user_idquot;,
users.quot;idquot;, users.quot;namequot;
FROM articles
INNER JOIN users ON articles.quot;user_idquot; = users.quot;idquot;
Trˆn Jean-Fran¸ois
a c AREL
39. Jointures
articles.
project(articles[:user_id]).
join(users).
on(articles[:user_id].eq(users[:id]))
SELECT articles.quot;user_idquot;, users.quot;idquot;, users.quot;namequot;
FROM articles
INNER JOIN users ON articles.quot;user_idquot; = users.quot;idquot;quot;
Trˆn Jean-Fran¸ois
a c AREL
40. Outer Join
articles.outer_join(users).
on(articles[:user_id].eq(users[:id]))
=>
SELECT articles.quot;idquot;, articles.quot;titlequot;,
articles.quot;comments_countquot;,
articles.quot;user_idquot;,
users.quot;idquot;, users.quot;namequot;
FROM articles
LEFT OUTER JOIN users ON articles.quot;user_idquot; = users.quot;idquot;
Trˆn Jean-Fran¸ois
a c AREL
41. Outer Join pour Has many, Belongs to
def user_has_many_articles(user_relation)
user_relation.
outer_join(@articles).
on(user_relation[:id].eq(@articles[:user_id]))
end
@user = ActiveRelation::Table(:users)
user_has_many_photos(@user).select ...
def article_belongs_to_camera(article_relation)
article_relation.
outer_join(@cameras).
on(photo_relation[foreign_key].equals(@cameras[primary_
)
end
Trˆn Jean-Fran¸ois
a c AREL
42. Renommage
ActiveRelation::Rename.new(
articles, articles[:id] => :koala
)
SELECT articles.quot;idquot; AS ’koala’, articles.quot;titlequot;,
articles.quot;comments_countquot;, articles.quot;user_idquot;
FROM articles
identique ` :
a
articles.rename(articles[:id], :koala)
Trˆn Jean-Fran¸ois
a c AREL
43. Agr´gation
e
articles.
aggregate(articles[:user_id], articles[:id].count).
group(articles[:user_id]).
rename(articles[:id].count, :cnt).
as(’articles_count’)
SELECT articles.quot;user_idquot;, COUNT(articles.quot;idquot;) AS quot;c
FROM articles
GROUP BY articles.quot;user_idquot;
Trˆn Jean-Fran¸ois
a c AREL
44. Expressions avec LIKE, expressions temporelles (?)
Prepared statements
pour ActiveRecord DataMapper API
Trˆn Jean-Fran¸ois
a c AREL