Cafu Engine – Open Source Real-Time 3D Game and Graphics Engine

Documentation : https://docs.cafu.de/

== Cafu User Manual  ==

=== play on windows 10===

dive in > files

download the demos > download win 32

start the demos (exe)

news game

choose map

Go

If compatibility issues, exit and try again.

F1 inside console

== Developer Manual ==

https://docs.cafu.de/general:manifest

=== editor ===

– map edior (CaWE) : https://docs.cafu.de/#the_map_editor

– gui editor : https://docs.cafu.de/#the_gui_editor

– model editor : https://docs.cafu.de/#the_model_editor

=== source code ===

https://docs.cafu.de/cppdev:gettingstarted

Cd..

Dir

Install python 2.7 (tested) https://www.python.org

Check python is installed : Command line (cmd) : python -V 

(“big” V)

SCons is written in Python

Install Scons 2.3 (tested) https://www.scons.org/

https://sourceforge.net/projects/scons/files/scons/2.3.0/

== How to create a video game ? == 

https://docs.cafu.de/cppdev:startnewgame

Basically, copy-paste and change existing “DeathMatch” directory and code.

https://docs.cafu.de/cppdev:gamecodeoverview

== links ==

https://docs.cafu.de/general:developer_faq#where_can_i_learn_more_about_3d_programming_or_game_engines

Open Source Social Multilateral Trading Facility (MTF)

Ma Finalité

Ma Capacité de production

Executive Summary

Je recherche un financement gagnant-gagnant pour un projet de Open Source de Social Multilateral Trading Facility (MTF). Il sera gratuit, légal, international et permettra d’augmenter le solde des participants. La maquette est déjà crée.

Business Model

Le business model repose sur une stratégie gagnant-gagnant entre fournisseur, clients et investisseurs. Le volume de transaction assure aux fournisseurs des commissions suffisantes. Les investisseurs et clients peuvent efficacement percevoir de l’argent sur la plateforme de trading.

Valeurs

promouvoir l’équité, la transparence, l’efficacité et l’intégration des marchés financiers.

Ma Production

Le projet s’adresse a tout type de clientèle.

Légalité

La MiFID est la Directive sur les marchés d’instruments financiers (Directive 2004/39/CE).

Donc : Ces entreprises doivent être enregistrées et le registre doit être accessible au public.

ACTES LIÉS : Elle s’applique aux gestionnaires gérant des portefeuilles de fonds alternatifs dont les actifs se montent à au moins 100 millions d’euros.

Mon Existant

Ma Capacité de production

Le prototype est déjà crée mais sans l’aspect social. (Paybook : Alternative Trading System (ATS) with Paypal Express Checkout API)

Le marché cible est celui du FOREX. Il représente $5 Trillions en volume jour.

L’atout du produit est un Retour sur investissement (RSI) de 200% par transaction. Il peut y avoir plusieurs transactions par jour. Dans le cas du HFT, ça peut aller a 4000 transactions par jour.

Le besoin de liquidité permet d’assouvir les autres besoins de la pyramide de Maslow.

La propriété intellectuelle est couverte par la Licence publique générale GNU.

Le produit est fabriqué par des développeurs. Les développeurs ont besoins de matériel informatique.

Le mode de distribution envisagé est la vente en ligne.

Les clients sont fidelisé par l’attrait du gain.

L’argent gagné peut être investi dans le développement durable.

Ma Production

Le projet améliorera PayBook pour le rendre plus social ce qui aura pour but d’augmenter le nombre d’utilisateurs sur la platforme. Si les résultats escomptés sont au rendez vous, le projet est rentable.

Mon Passage de mon Existant à ma Finalité

Ma Capacité de production

Les capitaux injecté serviront à la production d’un prototype dans un premier temps.

Ma Production

Specifications fonctionnelles

Sur le mur de ma page, apparait les positions de mes amis et de ma famille.

Je peux ajouter des amis des réseaux sociaux (facebook, google plus, viadeo, linkedin).

Je peux acheter une position. Je peux partager ma position. (default)

Je peux rechercher des amis.

Je peux suivre des positions de personnes grace a un lien Suivre sur la page desiré.

Je peux décrire mon projet / la position. (plateforme de levée de fond, plateforme de financement participatif, crowdfunding )

Je peux acheter des positions automatiquement via une API (algorithmic trading, high-frequency trading (HFT) )

Sur la premiere page apparait le cumul des positions en EUR.

La plateforme doit être multilangue.

Mes amis sont notifiés quand je gagne de l’argent. (succes stories) Afin de leur donner envie de rejoindre la plateforme.

Specifications techniques

  • boutons de partage des réseaux sociaux (social plugin / add this)
  • L’API de Facebook.

Contact

yanngeffrotin@gmail.com

Business Model of an online trading platform with a Win-Win Strategy

5 parts: Provider, Consumer, Competitor, Partner and Self.

Provider:

– Payment Services Providers (PSP) have a business model that works by commissions (fixed and variable) on the transactions of their customers (about 2%). To increase their profits, they want to increase their volume of transactions and that customers send the most money.

– Their main partners are the merchants and trading platform that allows them to increase their volume of transactions and amounts over the users who use them. This is done by increasing the number of customers that is proportional to the access of their information systems: the API (Application Programming Interface) that allows anyone to automate payments.

– Their suppliers are one or more banks. The financial messages are handled electronically by the bank. The PSP received confirmation via an API.

Consumer:

– The internet users want to meet their needs. The needs of humanity are recurrent (must be met every day). This need is either a product or service, or money. The products are among the online marketplaces (e-commerce). The easy money is on the trading platform.

– To send money, the user needs a PSP. PSP and asked to have a bank account to fulfill its electronic wallet. Compared to the PSP, the user earns more per transaction if the gain is at its default value (maximum).

Competitor, Partner and Self:

– The business model of the trading platform is either the same as the PSP (for transactions), or an entrance fee or monthly fee or premium sponsorships (link id) or is free. (The money is earned in the same way as users.)

– Providers of trading platforms are the PSP with their API. (the logo is highlighted)

– The users use a service that allows them to move money. The strategy of moving money is defined either by the trading platform or by users themselves. (depends on the internal politics of the trading platform)

– The trading platform is a software layer above the PSP. The design and evolution of the computer product can be partially outsourced to one or more persons caring for an open source trading platform that would reduce costs and development time.

ZK – Ajax but no JavaScript

zk simply ajaxZK – Ajax but no JavaScript est un framework Open Source pour construire des applications Web en AJAX sans aucun JavaScript.

Il est multiplateforme et développé par la Potix Corporation sous la Licence publique générale GNU.

En 2007, c’est le premier projet AJAX sur SourceForge.[1]

Installation

ZK contient un ensemble de librairie qu’il faut ajouter au serveur Tomcat.

Installation de ZK sur Tomcat

  1. Télécharger la dernière version de Tomcat et l’installer, si vous ne l’avez pas déjà fait.
  2. Arrêter Tomcat.
  3. Décompresser la dernière version de l’archive ZK (zip ou tar.gz)
  4. Copier tout les fichiers .jar présent dans /dist/lib/ et dans /lib/ext/ vers le dossier de Tomcat intitulé /shared/lib/
  5. Re-démarrer Tomcat.
  6. Copier le fichier zkdemo.war présent dans /demo/bin/ dans le dossier de Tomcat intitulé /webapps/
  7. Naviguer dans http://localhost:8080/zkdemo/userguide

Liens externes

La définition de l’Open Source

opensourceL’Open Source Definition (définition de l’Open Source) détermine les conditions nécessaires pour qu’une licence soit considérée comme libre par l’Open Source Initiative. Elle est publiée sur le site de l’OSI[1] avec une liste de licences approuvées[2].

Open source ne veux pas seulement dire un accès au code source. Il faut aussi prendre en compte les critères suivant :

Code Source

Le programme doit inclure le code source, et doit permettre une distribution sous forme de code source aussi bien que sous forme compilée. Si une certaine forme de produit n’est pas distribué avec un code source, il doit y avoir des moyens publiquement accessible permettant d’obtenir le code source moyennant un coût raisonnable, de le télécharger par Internet sans frais supplémentaire. La forme la plus apte par laquelle un développeur est à même de pouvoir modifier le programme est le code source. Une obfuscation délibéré du code source n’est pas permise. Des formes intermédiaire comme la forme de sortie d’un préprocesseur ou traducteur n’est pas permise.

Travaux dérivées

La licence doit permettre d’effectuer des modifications et des travaux dérivées, ainsi que d’être distribués sous les même termes que la licence du logiciel original.

Lucene

Lucene Logo Java open sourceLucene est une interface de programmation écrite en Java qui permet d’indexer et de rechercher du texte. C’est un projet open source de la fondation Apache mis à disposition sous Licence Apache et également disponible sous Ruby, Perl, C++.

Lucene sous SourceForge

Lucene est un moteur de recherche libre mis en téléchargement sous SourceForge en mars 2000 par Doug Cutting, et publié sous licence publique générale limitée GNU.

L’annonce de son transfert sous Jakarta a été publiée en octobre 2001.[2]

Lucene in Action

Le projet Lucene vient d’abord d’un livre publié en décembre 2004, Lucene in Action (Lucene en action), écrit conjointement par Erik Hatcher, un des responsables des projets open source Ant, Lucene et Tapestry, et par Otis Gospodnetic, un membre actif du projet Apache Jakarta.

Jakarta Apache

Le 14 février 2005, Lucene effectue sa migration vers le projet Apache Jakarta. La base de connaissance formant le code source a été converti au contrôleur de version SVN.

Lucene à l’ApacheCon

Puis le lundi 12 décembre 2005, Grant Ingersol présente un cas d’étude en Java à l’ApacheCon US sur l’utilisation avancé des composants de Lucene[3] en donnant notamment des détails techniques sur le traitement du langage naturel [4].

OpenSolaris propulsé par Lucene

Chandan, ingénieur sécurité chez Sun, a annoncé le 15 juin 2005 sur son blog chandanlog(3C) qu’il avait écrit un moteur de recherche simple en Java, OpenGrok et que « Lucene (avait) été choisi pour être la bibliothèque logicielle servant de noyau de recherche et d’indexation pour le code source, après avoir pris en considération toutes une variété de moteur de recherche et d’outils. » Complété par Exuberant Ctags qui serait utilisé pour extraire les définitions des fichiers sources. Ceci, afin de gagner du temps et d’explorer les millions de lignes du codes sources d’OpenSolaris [5].

Wikipédia propulsé par Lucene
Jusqu’à avril 2005, la fonction recherche de l’encyclopédie wikipédia était indisponible durant les heures de pointes. Dans ces cas là, il était recommandé d’utiliser le moteur de recherche externe Yahoo! ou Google.

Cependant, depuis l’annonce de Brion Vibber dans la liste de diffusion Wikitech, il en est tout autrement[5]. Cette annonce a été également reporté par Michael Snow environ une semaine plus tard dans le Wikipedia Signpost (équivalent anglais du Wikimag) [6].

Kate a écrit le programme en décembre mais celui-ci à été mis aux oubliettes à cause de la machine virtuelle Java qui n’est pas un logiciel libre. Le programme a donc été plus tard totalement réécrit en utilisant GCJ.

Utilisation de Lucene

Indexation

Jusqu’à l’explosion de l’internet, la Classification décimale de Dewey était très efficace pour catégoriser des objets dans une bibliothèque. Cependant, comme la somme des données collectée est devenu trop vaste, il nous faut utiliser des moyens alternatifs et plus dynamique de trouver de l’information.

Au coeur de tous les moteurs de recherche se trouve le concept de l’indexation : en traitant les données brutes en leur donnant de multiples liens hautement efficient, on facilite la rapidité de la recherche. En fait, le concept est assez analogue à l’index terminologique que l’on trouve généralement à la fin d’un livre, qui permet de trouver rapidement les pages qui traitent d’un sujet donné.

Si l’on a besoin de couvrir un large champs de fichiers ou de trouver une chaîne de caractères précise dans un seul fichier, il ne faut pas scanner séquentiellement chaque fichier pour la phrase donné. Car, plus le nombre de fichiers est grand, plus longue est la recherche d’information. Bien plutôt, il vaut mieux établir un index des textes dans un format qui permette la recherche rapide, éliminant par la même la méthode séquentielle.

Recherche

La recherche est l’action de regarder des mots dans un index pour trouver des références à des documents lorsqu’ils apparaissent. La qualité d’une recherche est évalué par le positionnement et la pertinance des résultats. Cependant, il faut aussi prendre en compte d’autres facteurs qui entre en compte dans une recherche. La rapidité, tout d’abord, est un facteur déterminant pour traiter une vaste quantitée d’information. De même, pouvoir supporter des requêtes simples ou complexes, des interrogations de phrases, des caractères, les résultas de positionnement et de tri sont aussi importants qu’une syntaxe facile à prendre ne main pour entrer ces requêtes.

Classes d’indexation

  • IndexWriter – La classe IndexWriter est le composant central du processus d’indexation. Cette classe crée un nouvel index et ajoute des documents à un index existant. On peut se la représenter comme un objet par lequel on peut écrire dans l’index mais qui ne permet pas de le lire ou de le rechercher.
  • Directory – La classe Directory représente l’emplacement de l’index de Lucene. IndexWriter utilise une des implémentations de Directory, FSDirectory, pour crée son index dans un répertoire dans le Système de fichiers. Une autre implémentation, RAMDirectory, prend toutes ses données en mémoire. Cela peut être utile pour de plus petit indices qui peuvent être pleinement chargé en mémoire et peuvent être détruit sur la fin d’une application.
  • Analyzer – Avant que le texte soit dans l’index, il passe par l’Analyser. Celui-ci est une classe abstraite qui est utilisé pour extraire les mots importants pour l’index et supprime le reste. Cette classe tient une part importante dans Lucene et peut être utilisé pour faire bien plus qu’un simple filtre d’entrée.
  • Document – La classe Document représente un rassemblement de champs. Les champs d’un document représente le document ou les métadonnées associées avec ce document. La source originelle (comme des enregistrements d’une base de donnée, un document word, un chapitre d’un livre etc) est hors de propos pour Lucene. Les métadonnées comme l’auteur, le titre, le sujet, la date etc sont indexées et stockées séparément comme des champs d’un document.
  • Field – Chaque document est un index contenant un ou plusieurs champs, inséré dans une classe intitulé Field. Chaque champs (field) correspond à une portion de donnée qui est interrogé ou récupéré depuis l’index durant la recherche.

Classes de recherche

  • IndexSearcher – La classe IndexSearcher est à la recherche ce que IndexWriter est à l’indexation. On peut se la représenter comme une classe qui ouvre un index en mode lecture seule.
  • Term – Un terme est une unité basique pour la recherche, similaire à l’objet field. Il est une chaîne de caractère : le nom du champs et sa valeur. Notez que les termes employés sont aussi inclus dans le processus d’indexation.
  • Query – La classe Query est une classe abstraite qui comprend BooleanQuery, PhraseQuery, PrefixQuery, PhrasePrefixQuery, RangeQuery, FilteredQuery, et SpanQuery.
  • TermQuery – C’est la méthode la plus basique d’interrogation de Lucene. Elle est utilisé pour égaliser les documents qui contiennent des champs avec des valeurs spécifique.
  • QueryParser – La classe QueryParser est utilisé pour générer un décompositeur analytique qui peut chercher à travers un index.
  • Hits – La classe Hits est un simple conteneur d’index pour classer les résultats de recherche de documents qui apparaissent pour une interrogation donné. Pour des raisons de performances, les exemples de classement ne chargent pas depuis l’index tout les documents pour une requête donné, mais seulement une partie d’entre d’eux.

Bibliographie

  • « Introduction to Apache Lucene: Construction of Java Open Source Full Text Retrieval Systems » by Koshi Sekiguti ; Gijutsu-Hyohron Co, Ltd; (ISBN 4774127809)
  • « Lucene In Action » par Erik Hatcher et Otis Gospodnetić; Manning Publications; Decembre 2004; (ISBN 1932394281)(en)[7]
  • Manfred Hardt, Dr. Fabian Theis: « Suchmaschinen entwickeln mit Apache Lucene« ; Software & Support Verlag, Frankfurt/Main, Germany; Septembre 2004; (ISBN 3935042450)

Liens externes

Texte disponible sous GNU Free Documentation License.