Saturday 8 July 2017

Clojure Trading System

Ein Problem, das ich beim Aufbau meines verteilten Handelssystems hatte, ist die Verwaltung von Zuständen asynchron von mehreren Triggern. Zum Beispiel, wenn die Alpha-Engine sagen kaufen. Braucht es eine Bestätigung von der Positioniermaschine, um zu sehen, ob es sicher ist, eine neue Position einzugeben. Ich könnte Kette ein Check nach dem anderen imperativ oder per Callbacks. Allerdings ist die zugrunde liegende Einschränkung, dass diese Trigger: ressourcenintensiv zu erzeugen, müssen möglicherweise viele von ihnen, nicht sequentiell zu komponieren oder haben one-to-one Depencency, und vor allem, sie sind in separaten Programmen oder verschiedenen Maschinen So Ive Beschlossen, dieses Problem in ein eigenes Modul des Systems als eine ereignisgesteuerte Finite-State-Maschine (FSM) zu abstrahieren, um die Zustandsübergänge zu verfolgen. Einschüchterung Begriff, aber meine erste Umsetzung war nur wenn-else-Anweisungen als solche qualifizieren. Der Vorteil ist, dass jede meiner Systemkomponenten nur Signale und Pullzustände von einer zentralen Schnittstelle aus schieben muss, ohne sich darum kümmern zu müssen, was als nächstes aufgerufen werden soll, oder um etwas anderes zu fragen, ob die Sterne ausgerichtet sind. Das drastisch vereinfacht Entwicklung und Wartung. Die Verantwortlichkeiten meines FSM-Moduls sind: alle Signale zu hören, alle Übergänge herauszufinden und die letzten Zustände für den Rest des Systems zu veröffentlichen. Handhabung asynchroner Ereignisse Ich benutze RabbitMQ als Nachrichtentransportschicht zwischen meinen Systemmodulen. Alles, was ich hier tun muss, ist, jedem Auslösereingang für den FSM einen entsprechenden Message-Handler zuzuordnen. Heres ein Beispiel für die Event-Handler mit der Clojure RabbitMQ-Bibliothek, Langohr. Der Rest dieses Teils sind nur Standard-RabbitMQ veröffentlichen / abonnieren Zeug. Dies wird aufgerufen, wenn ein Positionsereignis mit Informationen wie Benutzer, Instrument und Menge empfangen wird. Dieser Handler würde diese Informationen einfädeln, indem er aktuelle Zustände für diesen Benutzer abruft, den nächsten Zustand mit der Eingabe auswertet und dann die neuen Zustände für den Benutzer zwischenspeichert. Zustandsübergänge Nachstehend ist eines meiner Systeme Zustandsübergangsdiagramme. Es gibt 4 Zustände durch 4 Farben mit 4 Triggern signalisiert Zustand Übergang dargestellt. Das Programm wird voraussichtlich bis zu Hunderten von unabhängigen Staaten gleichzeitig mit Ereignis-Triggern kommen in ein paar Mal pro Sekunde. Wie ich schon sagte, meine erste Implementierung ist nur eine Reihe von if-else-Methoden. Beispielsweise würde ein Eingriffsauslöser das Eingriffsverfahren aufrufen, um den nächsten Zustand zu ermitteln, wenn der implizite Eingriff und der aktuelle Zustand vorliegen. Es gab eine Handvoll dieser Boilerplate-Code. So, nachdem ich mein System entfaltet kam ich zurück zu refactor sie. Ive bedeutete, core. logic einen Versuch für eine Weile zu geben, also scheint dieses, wie ein guter Platz, zum zu beginnen, es zu benutzen. Bevor wir die Logik Solver Frage stellen können, müssen wir Beziehungen definieren. Hier definiere ich eine Übergangsrelation, um alle Zustandsübergangsdefinitionen bequem an einem Ort anzugeben. Und die Event-Handler-Methoden sind nur Wrapper für einen einzeiligen Logikausdruck, der die Frage stellt - gegebene aktuelle Phase, cur-state. Und Eingang Trigger, Eingang. Was Zustand kann q nehmen, um diese Einschränkung zu erfüllen Nicht die illustrativsten core. logic Beispiel, aber es macht den Job. Erste Schritte mit core. logic ist erstaunlich einfach. Ich ging durch die Primer und Tutorial und bekam diese Arbeit in einem Versuch. State Caching und Sharing Nun, da die staatlichen Übergang gesorgt wurden, werden Staaten zwischengespeichert und serviert auf Redis für andere Teile des Systems. Ich verwende Redis dafür, weil es schnell und einfach ist. Die Werte werden im edn-Format anstelle von etwas beliebter wie JSON gespeichert, um die Datenstruktur über das Kabel aufrechtzuerhalten. Dies ist mein erstes Mal mit edn in der Produktion. Alle Interprozessnachrichten in diesem Handelssystem werden edn formatiert. Es funktioniert nahtlos mit Clojure durch einfaches Verwenden von str zu schreiben und clojure. edn / read-string zu lesen. Neben meinen anderen Clojure-Komponenten im System ist meine Trade-Broker-Schnittstelle in Java geschrieben. Mein Java-Programm verwendet edn-java, um komplexe Clojure-Datenstrukturen (z. B. verschachtelte Karten mit Schlüsselwörtern) zu analysieren und zu entschlüsseln. Ich finde Kupplung edn mit Redis ist eine fantastische Wahl, da seine fast wie die Arbeit mit Clojures native Parallelität Datenstrukturen, wie Atom. Sondern auch externe Programme den Zugriff auf die Daten ermöglichen. Einfach und schnell Das gesamte ereignisgesteuerte FSM-Programm ist weniger als 200 Zeilen Clojure-Code und dauerte nicht mehr als ein paar Stunden zu tun. Allerdings habe ich ihm einige Nachdenken Zeit für ein paar Tage. Ich havent getan irgendein Benchmark, zum des Leistungsergebnisses abzuschätzen. Also alles, was ich sagen kann ist, dass dieses Setup kann mit meiner vereinfachten Use Case mit kaum Last auf dem Server so Im glücklich mit ihm. Vor ein paar Jahren hätte ich eine ganze Reihe von Flags gesetzt, um Staaten zu wechseln. In der Tat, das ist, was ich tat. Die größte Zufriedenheit hier für mich ist nicht die Implementierung oder Technologien, es ist durch das zugrundeliegende Problem zu sehen und es mit einem gemeinsamen Muster, das meine Arbeit einfacher gemacht. Clojure ist entworfen, um die Software-Entwicklung zu vereinfachen. Clojure ist eine funktionale Programmiersprache, die elegante Parallelität Unterstützung, eine reiche Reihe von unveränderlichen, anhaltende Datenstrukturen und reibungslose Java-Integration bietet. Entwickler werden zunehmend aufgefordert, größere und leistungsfähigere Systeme zu bauen, mit mehr Funktionen und mehr Informationen zu verarbeiten. Gebäude-Lösungen mit komplexen Tools auf der komplexen Infrastruktur ist ein Weg zu mehr Komplexität in Ihrem Leben, und oft ein Rezept für einen Fehler. Und doch gibt es sehr wenige wirklich einfache Werkzeuge und Systeme, mit denen Sie Ihre Lösungen aufbauen können. Clojures Ansatz für die Programmierung können Sie die meisten Ihrer Anwendungen Code als Serie von reinen Funktionen schreiben, die jeweils nur auf die unveränderliche Werte weitergegeben. Seit reine Funktionen haben keine Nebenwirkungen sind sie leicht zu verstehen, einfach zu testen, und sind Inhärent threadsicher. Darüber hinaus bietet Clojure eine Fülle von Funktionen, die es den Threads ermöglichen, Zustandsänderungen auf konsistente, kontrollierte Weise zu koordinieren. Clojures Lisp basierte Syntax ist unglaublich einfach zu erlernen: Die meisten Programmierer können die Grundlagen an einem Nachmittag abholen. Es ist auch sehr prägnant, das heißt, Sie verbringen weniger Zeit mit der Eingabe und mehr Zeit entwerfen. Wir bauten Clojure. Bei Cognitect haben wir ein Engagement für die Open Source Community und eine besondere Liebe für Clojure im Besonderen. Cognitects Rich Hickey baute die Sprache, um Einfachheit zu den komplexesten Software-Problemen zu bringen, und wir sind auf eine Zukunft, wo Clojures Stärke ermöglicht Organisationen überall, um einfache, wartbare Software, die den Test der Zeit steht gebaut gewidmet sind. Erfolgsgeschichten Walmart hat mit Clojure ein robustes Datenmanagementsystem entwickelt, das mehr als 5.000 Märkte unterstützt und Online - und mobile Daten integriert. Erfahren Sie, wie Walmart Clojure bei Scale betreibt. Unser Clojure System handhabte gerade seinen ersten Walmart schwarzen Freitag und kam heraus ohne einen Kratzer. - via Twitter, 11/28/2014 Anthony Marcar Senior Architekt Chartbeat nutzt Kafka und Clojure, um eine kontextuelle Website-Overlay, die interne Traffic mit einer Geschwindigkeit von über einer Million Klicks pro Minute in Echtzeit verfolgen zu bauen. Watch Devon diskutieren, wie sie Clojure verwenden, um einen Strom von Aktivität von Dutzenden von Millionen von Benutzern zu verarbeiten. Als wir in Realzeit Einsichten aus Hunderttausenden von Anfragen pro Sekunde herausholen mussten, wussten wir, dass Clojure die Antwort war. Clojure ist wirklich genial für die allgemeine Stream-Verarbeitung. Devon Peticolas, Sr. Backend Ingenieur und Team Lead 8th Light arbeiteten mit einem neuen Clojure-Kundenteam zusammen, um ihr erstes Clojure-Projekt in nur einem Monat fertig zu stellen, vom Design bis zum Einsatz. Lesen Sie, warum sie Clojure eine langweilige Technologie betrachten. Und warum das ist eine gute Sache. Clojures Flexibilität, interaktive Entwicklung und Werkzeuge haben uns geholfen, zu iterieren und kontinuierlich ein Produkt liefern, auf das unsere Kunden stolz sein können. Consumer Reports wählte Clojure und Datomic, um alle ihr zugrunde liegenden Backend-Systeme und Datenbanken zusammenzubringen. Der neue unternehmensweite Container-Service ermöglicht es Entwicklern, Anwendungen zu erstellen, die den Datenkonsumenten schnell und risikoarm helfen. Cicayda verwendete Clojure, Datomic und ClojureScript, um ein robustes Multi-Tenant-Cloud-Hosting-SaaS zu erstellen, das es Clients ermöglicht, diverse Daten - und Lastprofile zu verwalten. Erfahren Sie, wie sie die bekannten Prinzipien von Clojure nutzen, um diesen juristischen Datendienst aufzubauen. ClojureScript hat uns eine einheitliche Entwicklungsumgebung auf beiden Seiten des Drahtes geliefert und uns dabei geholfen, auf eine datenorientierte Benutzeroberfläche zu stoßen. Jonathan Boston Software-Entwickler Puppet verwenden Clojure zu Trapperkeeper (und mehr) zu bauen, die sich auf Clojures Einfachheit, um eine agile, skalierbare Plattform zu bauen. Clojure ist eine funktionale Programmiersprache von oben nach unten. Dies bedeutet, dass Code in Clojure geschrieben ist sehr modular, composable, wiederverwendbar und leicht zu Grund zu. Chris Price Software Engineer Beanstalk wechselt zu Clojure, um das Caching um 20x zu beschleunigen. Gestern haben wir zur Produktion ein Rewrite von Beanstalks Caching-System in Clojure geschrieben. Es ist 20 mal schneller als die vorherige Version. Und erlaubten uns, die Latenz zwischen dem Begehen einer Änderung zu einem Repo und dem Sehen der Aktualisierung in der Beanstalks UI zu einem Durchschnitt von 20 ms zu bringen. MailOnline erneuert Veröffentlichungsplattform in Clojure. Aber grundsätzlich hatten wir nicht viel Code geschrieben. Ich habe dies scherzhaft mit dem CTO angehoben und seine Antwort war: das ist, wie ich seine die richtige Lösung kenne. Clojure ist hier der Sieger. DRW Trading Group hat Clojure mit großem Erfolg angenommen. Clojure war nicht die erste Sprache, die Ive zu einer Organisation jedoch eingeführt hat, seine zweifellos die erfolgreichste Adoption, die ich je ein Teil von war. Die Verwendung von Clojure hat viele Auswirkungen auf die Firma: kulturell, politisch und technisch. IOOF arbeitete mit Thoughtworks, um schnell eine kritische Komponente ihrer Finanzdienstleistungsplattform zu ersetzen und zu verbessern. Das Projekt war ein diskretes Modul und erlaubte uns, es als Service zu bauen, der zu unseren Architekturzielen passt. Wichtig war die Integration in unser Kernadministrationssystem, die keine Herausforderung darstellte. Clojure ermöglichte es uns, schnell und einfach alle notwendigen Änderungen durchzuführen, um diese Custody-Funktion wieder in den eigenen Haus zu bringen. Thoughtworks nutzt Clojure, um ein Java-Team zu beschleunigen. Wir diskutierten die bestehende Clojure-Gemeinschaft, die Reife der Sprache selbst und die Dynamik, die wir in der Branche gesehen haben. Die Unternehmen sehen schnellere Lieferungen, die auf Clojure basieren. Clojure wird zur Hauptentwicklungssprache für neue Entwicklungen bei MixRadio. Für die letzten zwei und ein bisschen Jahre haben wir Clojure benutzt, um unser Backend bei MixRadio anzutreiben. Weve zog von einer weitgehend Java-Plattform zu einem, wo fast alle neuen Entwicklung in Clojure erfolgt ist. Ab heute haben wir ca. 50 Webservices in Clojure geschrieben. Ben Griffiths Software Engineer Die Climate Corporation nutzt Clojure, um den Landwirten zu helfen, ihre Kulturen nachhaltig zu schützen und zu pflegen. Lesen Sie, wie Clojure verwendet wurde, um einen versionierten Wetterdatenspeicher zu erstellen. Alle unsere Modelle, Datenspeicher und Dienstleistungen sind in Clojure gebaut. Wir finden, dass Clojures Unterstützung für Parallelität macht es einfach, komplexe Modelle mit geringer Latenz laufen. Leon Barrett Software Engineer Precursor ist ein kollaboratives Prototyping-Team in Zusammenarbeit mit Clojure, ClojureScript und Datomic. Lesen Sie, wie Precursor ClojureScript verwendet, um Designer produktiv zu machen. Das Lernen, mit ClojureScript, Om und React zu arbeiten, brachte mich endlich dazu, dass ich mich von Anfang bis Ende mit meiner Designarbeit beschäftigte. Sonian verwendet Clojure in der Produktion in einem großen Maßstab, um eine gemeinsame Grundlage für Back-End-Dienstleistungen zu entwickeln. Lesen Sie, wie Sonian sicher bleibt. Clojure gibt uns einen Leistungsschub an beiden Enden des Softwareentwicklungslebenszyklus: Wir können so schnell wie jedes Python - oder Ruby-Geschäft neue Funktionen aufbauen, und wenn wir es an die Produktion versenden, läuft es so schnell wie jede Java-Anwendung. Appsflyer entwickelt sich in Clojure für Skalierbarkeit und für die geschäftliche Agilität, die es ermöglicht. Sie können so schnell wachsen und sich anpassen wie der mobile Werbemarkt. Für mehr über Appsflyer, besuchen Sie ihre Website. Und schauen Sie sich ihre Blog-Post über die Verwendung von Clojure in End-to-End-Produktion. Als wir von Millionen von täglichen Ereignissen zu Milliarden übergingen, wussten wir, dass Clojure die Antwort war. Atlassian verwendet Clojure, um Echtzeit-Collaboration-Funktionen in neue und bestehende Produkte zu bauen. Leonardo Borges erklärt, warum Atlassian Clojure gewählt hat, und die spannenden Ergebnisse, die das Team in seiner jüngsten Präsentation bei EuroClojure 2015 erreicht hat. Base2 hat Clojure für die Entwicklung eines funktionsreichen Onboard-Diagnosesystems für die Boeing 737 MAX eingesetzt. Sie strukturierten die Anwendung mit einem Service-Framework und Message-Warteschlangen, um die Kommunikation zwischen verschiedenen Teilen des Dienstes unter Beibehaltung der Trennung der Bedenken zu ermöglichen. Watch Donevan diskutieren die Entwicklung dieser Onboard-Anwendung in dieser Clojure / West 2016 Präsentation. Wir wählten Clojure für dieses Projekt aufgrund seiner Fähigkeit, parallele Prozesse gut auszuführen, die Stärke der verfügbaren Bibliotheken, und weil Clojure, die eine Boeing zugelassene Sprache ist, die JVM verwendet. Donevan Dolby Software Engineer Room Key arbeitet mit Cognitect und nutzt Clojure und Datomic, um eine schnell skalierbare, agile Cloud-basierte Hotelsuchmaschine aufzubauen. Wir wussten, dass Cognitect die Art der Unterstützung bieten würde, die wir benötigten. Sie sind unser Partner im wahrsten Sinne des Wortes. Sie lösten die meisten der wenigen Probleme, denen wir begegneten, bevor ich zu ihnen kam. Greenius entschied sich für Clojure und Datomic, um eine skalierbare, agile Plattform für die Gärtner zusammenzubringen und Ideen auszutauschen. Wir entwarfen unsere Software mit nur unveränderlichen Datenstrukturen und reinen Funktionen (mit viel weniger Code als herkömmliche OO-Sprachen), sodass wir uns eher auf unsere Kerngeschäftsaufgaben als auf technische Probleme konzentrieren können. Bridging Sprachbarrieren mit Transit Designing Frontend-Anwendungen mit core. asyncAkamai hat eine digitale Betriebsumgebung für das Web geschaffen. Unsere globale Plattform von Tausenden von speziell ausgerüsteten Servern hilft dem Internet, den Crush der täglichen Anfragen nach reichen, dynamischen und interaktiven Inhalten, Transaktionen und Anwendungen zu widerstehen. Bei der Bereitstellung dieser Anfragen erkennt und vermeidet Akamai Internetprobleme und - schwachstellen, um sicherzustellen, dass Websites optimal funktionieren, Medien - und Software-Download einwandfrei und Anwendungen zuverlässig funktionieren. Appvise appvise. me wurde im Dezember 2010 gegründet. Es zielt darauf ab, Ihr Smartphone mit den Apps zu verbinden, die Sie lieben werden. Es ist ein Marktplatz, wo Sie personalisierte Listen basierend auf, wer Sie sind, was Sie interessiert sind, wo Sie leben und was Ihre Freunde sind. BackType ist ein Marketing-Intelligence-Unternehmen, das Produkte und Dienstleistungen entwickelt, die Unternehmen dabei helfen, ihre sozialen Auswirkungen zu verstehen. BackType hat das leistungsstärkste System der Welt aufgebaut, um soziale Daten zu analysieren. Wir haben auch soziale Funktionen für über 100 Unternehmen, darunter die New York Times, SlideShare, Automattic (Schöpfer von WordPress), Bitly und vieles mehr. Marke Karma s Mission ist es, den Wert zu schützen und pflegen das Potenzial der Marken. Wir bieten die intelligentesten Technologien, um Marken-Daten und fachkundige Berater zu interpretieren, um Gastfreundschaft Führungskräfte in der Welt der neuen Medien zu führen. Marke Karma Kunden sind in der Lage, konkurrieren analytisch und erreichen eine überlegene Rendite auf ihre Marken-Investitionen durch die Erhöhung der Sensibilität, Zufriedenheit, Loyalität und Rentabilität. Berico Technologies, LLC. Widmet sich dem Aufbau innovativer Lösungen, die Einblicke und Auswirkungen bieten. Unsere Kernkompetenzen reichen von modernsten Systemen und Software-Engineering bis hin zu fortgeschrittenen Analysen und Schulungen. Unsere Lösungen sind anwenderorientiert, bieten höchste operative Relevanz und unser Entwicklungsprozess sorgt für Höchstgeschwindigkeit auf Funktionalität. Experten in Open-Source-und Cloud-Technologie, und zur Kundenzufriedenheit getrieben, ist Berico für die Lösung Ihrer Unternehmen schwersten Probleme gebaut. Citigroup. Das weltweit führende Finanzdienstleistungsunternehmen, verfügt über rund 200 Millionen Kundenkonten und ist in über 140 Ländern tätig. Über Citicorp und Citi Holdings bietet Citi Verbrauchern, Unternehmen, Regierungen und Institutionen eine breite Palette von Finanzprodukten und - dienstleistungen an, darunter Konsumentenbanken und Kredit-, Unternehmens - und Investmentbanking, Wertpapier-Brokerage, Transaktionsdienste und Vermögensverwaltung. Die Climate Corporation hilft Landwirten auf der ganzen Welt zu schützen und zu verbessern ihre Landwirtschaft mit leistungsfähigen Software, Hardware und Versicherungsprodukte. Wir kombinieren hyper-lokale Wetterüberwachung, agronomische Modellierung und hochauflösende Wetter-Simulationen, um mobile SaaS-Lösungen bereitzustellen, die Landwirten dabei helfen, fundiertere Betriebs - und Finanzierungsentscheidungen zu treffen. Wir verwenden Clojure für Wetter - und Kulturmodelle, Datenmanagement und Gebäudedienste. Compass Labs ermöglicht es Werbetreibenden, Nutzer auf Facebook, Twitter und anderen sozialen Netzwerken, einschließlich mobilen, über unsere intelligente, präzise gezielte Optimierung zu erreichen, zu engagieren und zu konvertieren. DAS (Dynamic Animation Systems, Inc.) widmet sich der Entwicklung verteilter, interaktiver und immersiver Anwendungen und Infrastrukturen für Verteidigung, Training und Unterhaltung. Factual, Inc. ist eine offene Datenplattform für Anwendungsentwickler, die umfangreiche Aggregation und Community Exchange nutzt. Zum Beispiel finden Sie Datensätze für Millionen von US-amerikanischen und internationalen lokalen Unternehmen und Points of Interest, sowie Datensätze zu Unterhaltung, Gesundheit und Bildung. Weve verwendet Clojure für mehr als ein Jahr jetzt als Teil unserer Echtzeit-Aggregation und Abfrage-Stack. Weve begann mit ihr aggressiver zu helfen, uns zu lösen große Datenprobleme, einschließlich der Nutzung der Macht des Cascalog-Projekt. FlightCaster sagt Flugverzögerungen voraus. Wir verwenden einen fortschrittlichen Algorithmus, der Daten auf jedem Inlandsflug für die letzten 10 Jahre scannt und es zu den Realzeitbedingungen passt. Wir helfen Ihnen bei der Bewertung von Alternativen und helfen Ihnen, die richtige Person für die Änderung zu finden. Geni löst das Problem der Genealogie, indem es die Welt einlädt, den endgültigen Online-Stammbaum zu bauen. Mit dem grundlegenden kostenlosen Service bei Geni, fügen die Benutzer hinzu und laden ihre Verwandten zu ihrem Stammbaum zu verbinden, die Geni mit anderen Bäumen vergleicht. Zusammenpassende Bäume werden dann in den Einzelweltfamilienbaum verschmolzen, der gegenwärtig fast 50 Millionen lebende Benutzer und ihre Vorfahren enthält. Pay-Services umfassen erweiterte Forschungs-Tools sowie Andenken-Produkte aus Family Tree Daten erstellt. Geni begrüßt lässig Genealogen und Experten, die neue Verwandte zu entdecken und in Kontakt mit der Familie zu bleiben. Geni ist in Privatbesitz und hat seinen Sitz in Los Angeles, Kalifornien. Higiebus ist eine Lösung, die auf die Notwendigkeit hinweist, das Papierhandling durch elektronische Inhalte zwischen medizinischen Organisationen zu ersetzen. Es ist ein Schwerpunkt für den internen Verkehr zwischen Dienstleistungen in Krankenhäusern und ist auch als Remote-Interconnect zwischen verschiedenen Organisationen konzipiert. Es basiert auf einem Nachrichtenbusentwurf mit weg von den Regalschnittstellen für verschiedene medizinische Ausrüstung / Computersysteme. Totally redundant und ausgerichtet auf Nachrichten in Echtzeit liefern. Seine in der Produktion seit Januar 2009 zunächst mit einer vor v1.0 Clojure Laufzeit verwendet worden. Unendlich Beta sind ein sehr leidenschaftliches Team von Hackern und Produktdesignern, die glauben, dass die besten Produkte die DNA von Einfachheit, Ästhetik und Funktion teilen. Wir verwenden große Technologie, um sehr einfache und verwendbare Produkterfahrungen zu liefern. Wir konzentrieren uns auf die weniger offensichtlichen Aspekte großer Produkte wie Leistung, geringe Latenz und Skalierbarkeit. KamaGames ist seit 2009 ein erfolgreicher Entwickler und Publisher von Unterhaltungssoftware für MacOS, Android, Samsung Bada, Facebook und andere soziale Netzwerke. Wir arbeiten mit Entwicklern aus China, Indien, Russland, den USA, Kanada und Neuseeland zusammen. Organisieren Chaos erreichen wir einzigartige Ergebnisse in der Spiele-Entwicklung. Glänzende Momente zu den unseren Kunden in der geteilten Zeit mit Produkten unseres Genies geben. Heute haben wir mit 8 Millionen Menschen verbunden. Morgen wächst unsere Familie mindestens 10 Mal auf. LeadTune macht Produkte, die Ihnen helfen, Bleiabfälle zu reduzieren und mehr aus Ihren Leads zu bekommen. Die Computational Biology Group am Max-Planck-Institut für molekulare Biomedizin entwickelt Computer-Tools, um den Mechanismus zu verstehen, der genetischen regulatorischen Netzwerken von toti-, pluripotentiellen Stammzellen und reprogrammierten Zellen zugrunde liegt. Wir verwenden Clojure zur Analyse und Visualisierung von Gigabyte genomischer Daten. Pico Quantitative Trading ist ein Agentur-only-Broker, spezialisiert auf die Bereitstellung von Dienstleistungen für Multi-Asset-elektronischen Handel Kunden. Das PQT-Team bietet kompetente Unterstützung bei niedrigen Latenzzeiten, die von der Kundenberichterstattung über die Technologieentwicklung bis hin zur Marktstruktur, dem Aktienkredit, dem Clearing und dem Co-Location-Handel reichen. Platogo bietet Tools und APIs für Spiele-Entwickler, um ihre Spiele auf Facebook und anderen sozialen Netzwerken leicht zu bringen. Unser letztes Produkt, social. io, hilft Social Application Entwicklern, ihre Einnahmen zu maximieren, indem sie die weltweit relevantesten sozialen Netzwerke über eine einheitliche Social-Graph-Schnittstelle integriert. Ab heute (Jul / 2011) verwenden wir clojure 1.3.0. Cognitect (ehemals Relevanz) nutzt Clojure, um unseren Kunden bei der Lösung schwerer Probleme zu helfen. Wir haben Clojure-basierte Lösungen für Startups, mittelständische Unternehmen und Fortune 50-Kunden bereitgestellt. Weve baute Hauptgesundheit aufspürenwerkzeuge, Realzeitnetzwerksicherheit analytics und on-line-Spielmaschinen. Weve verwendet Clojure zu weiteren akademischen Forschung und bauen eine Facebook-Anwendung. Clojure ist ein bedeutender und wachsender Teil unseres Teams und unserer Projektpipeline. Cognitect ist auch das Unternehmen hinter Datomic. Eine Datenbank mit flexiblen, zeitbasierten Fakten, Unterstützung von Abfragen und Joins, mit elastischer Skalierbarkeit und ACID-Transaktionen. Datomic kann hochverfügbare, verteilte Speicherdienste nutzen und deklarative Leistung in die Hände von Anwendungsentwicklern stellen. Revelytix nutzt semantische Web-Technologien, um Produkte für die Datenintegration und emergent Analytics in Unternehmen und föderalen Systemen zu bauen. Das companys Flaggschiff-Projekt nutzt Revelytix-Technologien, um viele Datenquellen in eine der größten föderalen Domains zu integrieren und Analytics für die wichtigsten Entscheidungsträger bereitzustellen. Revelytix hat drei Produkte, die vollständig in Clojure: Spyder (für dynamische SPARQL-SQL-Übersetzung mit R2RML-Mappings), Spinner (für SPARQL-Föderation) und Rex (für RIF-basierte Regelausführung) erstellt wurden. Diese drei Produkte stehen im Mittelpunkt der symbolischen Manipulation von Abfragen, Ontologien oder Regeln, und wir haben gefunden, dass Clojure für diese Probleme hervorragend geeignet ist. Clojure ermöglicht es uns, High-Level-Abstraktionen, die auf der Ebene des Problems zu arbeiten. Wir haben auch enorme Gewinne von in der Lage, zu integrieren und Wiederverwendung der riesigen Fülle von Java-Bibliotheken auf der JVM bekommen bekommen. Runa hilft, effektivere personalisierte Verkaufspreisanreize in Echtzeit zu liefern.


No comments:

Post a Comment