Science Nature et Windsurf

15 octobre 2020

on peut attraper deux fois le Covid

https://www.mediscoop.net/index.php?pageID=1af08931e404c4024ad7c23ee25d7783

Posté par BALISTRA_SCIENCE à 10:05 - Commentaires [0] - Permalien [#]


04 mai 2020

"I became engrossed in learning as much as possible about software engineering in the abstract: what worked historically, what works now, and what’s going to work in the future. Among these experiments, blogs, tutorials, lessons, conferences, videos, and discussions, a few gems shined very brightly from beneath the piles of dirt. Perhaps the most personally influential gems were the now-famous Simple Made Easy, as well as The Value of Values. While they were presented in the abstract, applicable to any language or system, it was a logical next step for me to check out what this Rich Hickey guy was working with. Surely these fantastical ideas are purely academic and cannot be applied reliably in “the real world” of computer systems, right? I couldn’t have been more wrong."

 

Extrait de:

https://medium.com/@lwhorton/why-clojure-script-e4a69cc5168a

Posté par BALISTRA_SCIENCE à 18:47 - Commentaires [0] - Permalien [#]

08 avril 2020

"C'est ce que nous pensons déjà connaitre qui nous empêche souvent d'apprendre." Claude Bernard

"C'est ce que nous pensons déjà connaitre qui nous empêche souvent d'apprendre." Claude Bernard

 

 

Posté par BALISTRA_SCIENCE à 10:42 - Commentaires [0] - Permalien [#]

16 mars 2020

un joli casse-tete probabiliste....

« Supposez que vous êtes sur le plateau d'un jeu télévisé, face à trois portes et que vous devez choisir d'en ouvrir une seule, en sachant que derrière l'une d'elles se trouve une voiture et derrière les deux autres des chèvres. Vous choisissez une porte, disons la numéro 1, et le présentateur, qui sait, lui, ce qu'il y a derrière chaque porte, ouvre une autre porte, disons la numéro 3, porte qui une fois ouverte découvre une chèvre. Il vous demande alors : « désirez-vous ouvrir la porte numéro 2 ? ». Avez-vous intérêt à changer votre choix ? »

 

Problème de Monty Hall

Le problème de Monty Hall est un casse-tête probabiliste librement inspiré du jeu télévisé américain Let's Make a Deal . Il est simple dans son énoncé, mais non intuitif dans sa résolution et c'est pourquoi on parle parfois à son sujet de paradoxe de Monty Hall.

http://wikipedia.org


https://fr.wikipedia.org/wiki/Probl%C3%A8me_de_Monty_Hall

on peut le résoudre par le théoréme de Bayes mais aussi par le dénombrement des cas,

les probalilités? la limite réelle d'une fréquence ou "la traduction d'un état de connaissance" ?

à vous de choisir!

Posté par BALISTRA_SCIENCE à 19:25 - Commentaires [0] - Permalien [#]

25 janvier 2020

l'Euphorbe

on en trouve à Carros:

Euphorbe de Nice - Blog végétal

Euphorbia nicaeensis (Euphorbiaceae) Plante vivace de 20 à 60 cm, glabre et glauque, assez commune dans les lieux secs, rocailleux, arides de la région méditerranéenne, remonte jusque dans la Drôme, l'Aveyron et les Hautes-Alpes, se rencontre jusqu'à 1800 m souche épaisse, émettant de nombreux rejets stériles Tiges dressées, sous-ligneuses et nues à la base rougeâtres en hiver feuilles éparses étalées-dressées, coriaces, d'un vert glauque oblongues ou lancéolées, mucronées, entières Floraison de ?

http://monerbier.canalblog.com

 

Posté par BALISTRA_SCIENCE à 23:44 - Commentaires [0] - Permalien [#]


04 janvier 2020

Posté par BALISTRA_SCIENCE à 19:46 - Commentaires [0] - Permalien [#]

01 janvier 2020

L'eau des collines (Marcel Pagnol)

L'eau des collines est constituée de deux tomes Jean de Florette et Manon des Sources.

les films, ceux de 1986, ont été tourné vers Riboux entre autre lieux, d'aprés une interview de la Maire du Village, la commune est encore dépendante de la société des eaux de Marseille qui améne de l'eau dans des citernes au village....

Qulle émotion de revoir ces films passés cette semaine à la télé, ça me rapelle aussi mon enfance libre tout seul dans la nature avec mon chien, et aussi quand jeune homme j'allais chercher de l'eau avec une cuve dans la remorque à la source du village de Carros ou Du Broc (tiens il porte bien son nom celui là)

pour arroser les jeunes oliviers que j'avais planté à Colle Belle ou il n'y avait pas encore l'eau courante...

« Car c'est ainsi que nous allons, barques luttant contre un courant qui nous ramène sans cesse vers le passé. »

 

 

 

 

 

Posté par BALISTRA_SCIENCE à 17:08 - Commentaires [0] - Permalien [#]

24 décembre 2019

lien vers la page web d'un contributeur principal du langage Racket Scheme

 

Matthias Felleisen

i-con-o-clast n. 1. One who destroys sacred images. 2. One who attacks and seeks to overthrow traditional or popular ideas or institutions. The American Heritage Dictionary Wordsmith An Element of Style Make definite assertions. Avoid tame, colorless, hesitating, non-committal language. Rule 12, William Strunk, Jr. Q: What is the shortest lie in computing?

https://felleisen.org

 

Posté par BALISTRA_SCIENCE à 12:25 - Commentaires [0] - Permalien [#]

22 décembre 2019

Du C++ aussi rapide que du C avec des réferences. (Damien Mattei)

Efficacité d'un code en C++:

(le code source de cet example est disponible ici:

https://github.com/damien-mattei/vision3D/blob/master/Vision3D.cpp#L223

)

le C++ utilise des classes d'objet utilisable avec la STL (Standart Template Library) qui permet de coder assez simplement des choses compliquées. Helas celà se fait souvent au détriment de la performance, sur cet exemple on va voir que le codage intuitif n'est pas le plus efficace.

 

Supposons l'existence de classes de Point2D et Point3D utilisées avec des fonctions de bibliothéques , STL ou autre... comme dans l'exemple ci-dessous :

 

// associate Point3D and Pixels in unordered map (Point3D <-> Pixel)
// DEPRECATED
template<class T> void Vision3D<T>::associatePt3Pix2InMap(void) {
Point2D<int> pt2;
// finding the vertex list
list < Point3D<T> > vertexList = object3dlist.vertexList;
// iterate on the list to compute 3D to 2D projection and Pixels calculus
// note : i put typename hint because as it is a template definition
// compiler can not know the type it is until the compiler knows T
typename list< Point3D<T> >::iterator iterP3D;
DEBUG(std::cout << "getViewField() : " << getViewField() << std::endl;
std::cout << "getHalfScreenSizeX() : " << getHalfScreenSizeX() << std::endl;
std::cout << "getPixelInUnit() : " << getPixelInUnit() << std::endl;)
for (iterP3D = vertexList.begin(); iterP3D != vertexList.end(); ++iterP3D) {
DEBUG(std::cout << " *iterP3D : " << *iterP3D << std::endl;)
Point2D<float> ptproj = projection(*iterP3D);
DEBUG(std::cout << " ptproj : " << ptproj << std::endl;)
Point2D<int> ptc2p = convert2Pixel(ptproj);
DEBUG(std::cout << " ptc2p : " << ptc2p << std::endl;)
pt2 = projectPoint3DtoPixel(*iterP3D);
DEBUG(std::cout << " pt2 : " << pt2 << std::endl;)
htPointPixel[*iterP3D] = pt2;
}
}

 

à travers cet exemple naif on voit que la liste list < Point3D<T> > 

est une liste de Point3D qui lors de son affectation va obliger la recopie de tous les points la contenant car Point3D a son propre constructeur de recopie, de meme l'usage d'un iterateur sur Point3D risque d'obliger à d'autres recopie intermédiaires.

Le code est cependant fonctionnel et esthetique car il utilise peu de pointeurs comme dans un code en C, on a donc un code trés C++ like et on peut s'en satisfaire pour des objets qui prennent peu de place en mémoire. Cependant si les objets étaient plus gros le constructeur de recopie commencerait à "chauffer". Un code en C serait plus efficace, on pourrait se demander si c'est une fatalité du C++ d'être toujours plus lent, de part sa syntaxe plus facile à utiliser lors de l'écrire d'un programme.

Pour obtenir un code en C++ avec des performances d'un code en C et sans sacrifier à la lisibilité il faudra alors utiliser des réferences.

Les réferences sont une sorte de "sucre syntaxique" qui permet d'utiliser des pseudo-pointeurs sans avoir l'air de les utiliser.

Au lieu d'utiliser des objets on utilisera des pointeurs vers objet et on economisera le cout de la recopie de l'objet complet en recopiant juste l'adresse de l'objet:

list < Point3D<T> *> 

On utilise donc un pointeur comme en C mais on le masque dans une réference pour garder un code lisible dans un style C++:

Point3D<T> * ptrP3D = *iterPtrP3D;
Point3D<T> & refP3D = *ptrP3D;

Voilà ce que donnera le code précedent transformé:

 

// associate Point3D and Pixels in unordered map (Point3D <-> Pixel)
// pointers and reference version
template<class T> void Vision3D<T>::associatePt3Pix2PointersInMap(void) {
Point2D<int> pt2; // in future should be a pointer returned from projection & co
// finding the vertex list
list < Point3D<T> *> vertexPtrList = univ.point3DptrList;
// iterate on the list to compute 3D to 2D projection and Pixels calculus
// note : i put typename hint because as it is a template definition
// compiler can not know the type it is until the compiler knows T
typename list< Point3D<T> *>::iterator iterPtrP3D;
DEBUG(std::cout << "getViewField() : " << getViewField() << std::endl;
std::cout << "getHalfScreenSizeX() : " << getHalfScreenSizeX() << std::endl;
std::cout << "getPixelInUnit() : " << getPixelInUnit() << std::endl;)
for (iterPtrP3D = vertexPtrList.begin(); iterPtrP3D != vertexPtrList.end(); ++iterPtrP3D) {
Point3D<T> * ptrP3D = *iterPtrP3D;
Point3D<T> & refP3D = *ptrP3D;
DEBUG(std::cout << " **iterPtrP3D : " << **iterPtrP3D << std::endl;)
// seems to be for debug only
Point2D<float> ptproj = projection(**iterPtrP3D);
DEBUG(std::cout << " ptproj : " << ptproj << std::endl;)
Point2D<int> ptc2p = convert2Pixel(ptproj);
DEBUG(std::cout << " ptc2p : " << ptc2p << std::endl;)
//pt2 = projectPoint3DtoPixel(**iterPtrP3D);
//pt2 = projectPoint3DtoPixel(*ptrP3D);
pt2 = projectPoint3DtoPixel(refP3D);
DEBUG(std::cout << " pt2 : " << pt2 << std::endl;)
//htPointersPointPixel[*iterPtrP3D] = &pt2;
//htPointersPointPixel[*ptrP3D] = &pt2;
htPointersPointPixel[refP3D] = &pt2;
}
}

Posté par BALISTRA_SCIENCE à 23:28 - Commentaires [0] - Permalien [#]

un cours de Common Lisp

 

Chapitre 03 - Le langage Lisp

Il est important d'indiquer que l'intelligence artificielle est vue ici comme une représentation de modèles avec des critères et hypothèses bien établis. La mise en œuvre avec un langage tel que lisp permet de proposer et produire des programmes vérifiant des hypothèses et donc des propriétés.

https://www.supinfo.com

 

Posté par BALISTRA_SCIENCE à 12:07 - Commentaires [0] - Permalien [#]