Devconf 2016: Interview mit dem SphinxSearch-Entwickler

    Bild
    Wir lieben es, Interviews mit unseren Referenten zu führen. Zu diesem Zeitpunkt - Interview mit Andrew shodan Aksenov , der Schöpfer der Suchmaschine SphinxSearch (weiß nicht , wie jetzt, aber vor Habr verwenden diese Engine für die Standortsuche) und, wie sich herausstellte , ein anderes Paar von Motoren. Auf unserer Konferenz wird er über ein ewiges Thema diskutieren: Devs vs CTO vs CEO . Das Interview selbst war sehr interessant. Andrej ehrlich und ehrlich beantwortet Fragen, für die er großen Respekt hat :)

    Ich kenne Sie als Entwickler von Sphinxsearch, aber scheint die Computergrafik, wie Ihre kurze Biografie in der Beschreibung des Berichts, Ihre Hauptleidenschaft zu sein?
    Alles ist einfacher und komplizierter zugleich, es gibt keine große Leidenschaft :) Es gibt einige interessante Bereiche, es gibt gleichgültige. Um eine niedrige Stufe wie eine Suchmaschine, 3D-Spiele, Video-Capture-Verarbeitung, einen winzigen Unter-Hypervisor (V8086), Patch MySQL oder den Kernel des Betriebssystems auszuführen, spezielle Module für Apache zu schreiben, den bekannten Komprimierungsalgorithmus zu verbessern oder auch nur besonders dicke und langsame SQL-Abfragen zu verarbeiten - all dies es ist ziemlich interessant (aber es ist nicht! Aber öfter ist es interessant). Das Zeichnen von Formularen für die grafische Benutzeroberfläche auf dem modischen Node.js oder dem toten Delphi oder das Bearbeiten langweiliger Berichte in 1C ist jedoch nicht besonders gut. Ich spreche aus eigener Erfahrung, Einkaufszentrum. Bis zu einem gewissen Grad war in all den oben genannten und allen möglichen Dingen beschäftigt.

    Eigentlich habe ich deine Biografie gegoogelt und nichts gefunden. Nicht einmal ein Wikipedia-Artikel über dich!
    Und das ist sehr gut, ich bin eine verschwiegene und nicht gesellige Person. Ja, und Erfolge auf dem Artikel (Wortspiel beabsichtigt) noch, ich hoffe, nicht ziehen, Muahaha.

    Füllen Sie die Lücke aus. Sag mir warum und wie? Über TheEngine . Erzählen Sie uns, warum TheEngine geendet hat und wie Sphinx begann .
    Alles ist einfach. Boris Batkin, den wir bei FIDO getroffen haben, gründete seine Firma gamedev und rief mich plötzlich dort an, aber ich stimmte nicht weniger zu und ging. Skyfallen ist es gelungen, eine 3D-Engine, Tools und mehrere Spiele darauf zu bauen und die Technologie in mehreren weiteren Spielen zu lizenzieren. Zuerst war ich für die eigentlichen Grafiken, Animationen und andere Low-Level verantwortlich, dann übernahm ich nach und nach die Gesamtleitung des Entwicklungsteams. Und dann wurde es ihm sozusagen langweilig und er verließ mich sooooo müde. (Unterhaltsame Tatsache: das erste Mal, dass ich Borey persönlich irgendwo um die 7m oder so gesehen habe, das Jahr, in dem ich mich kennengelernt habe und das vierte Jahr meiner Arbeit. Und es passiert!)

    Sphinx begann schon vorher, die allererste Version ist etwa von September 2001 datiert. Es gibt ein offizielles Geburtsdatum, dh den Tag, an dem der Name Sphinx für 30 KB Quellcode in einem Ordner namens dbindex geprägt wurde. Nur ich habe es nie gefeiert und vergesse es die ganze Zeit. Dann lag es ungefähr 5 Jahre auf dem Tisch, dann wurde es unter dem Einfluss von Peter Zaitsev ins Internet gestellt, fand seine kleine Nutzerbasis und war sehr klein, aber nicht gleich Null, bereit, für jeden Kunden zu zahlen. Nachdem ich dieses Geschäft für eine Weile zusammengelegt hatte, wurde mir klar, dass ich nachmittags nicht mehr in Game Dev weiterarbeiten konnte und nicht mehr nach Abenden und Wochenenden suchen konnte. Ich musste etwas auswählen. Wir haben uns schmerzhaft für Sphinx entschieden, es war irgendwo im Jahr 2007.

    Was ist die Sphinx jetzt? Neueste Version 2.2.10 (09.09.2015).
    Dies ist das letzte offiziell kompilierte Paket, nicht die neueste Version. Es gibt Version 2.3, es ist frischer, lebt im Master, es wird voll unterstützt. Es gibt Fehlerbehebungen in 2.2, die gelegentlich auch hinzugefügt werden. Wir unterstützen bis zu einem gewissen Grad 2.x-Zweige und entwickeln so weit wie möglich eine große Überarbeitung von 3.0, die erste ist sofort in den Commits auf dem Github sichtbar, die zweite ist noch nicht in irgendeiner Weise sichtbar, wird aber früher oder später auch auf den Github gepumpt. Allerdings hatten wir in letzter Zeit aus verschiedenen Gründen nicht viel Kraft, so dass es heute leider langsam und traurig ausgeht. Insbesondere haben sie mich auf den Paketen getötet. Wie bei Open Source üblich, wissen Sie, wie es besser geht - besuchen Sie uns, machen Sie es gut, wir werden uns nur freuen :)

    Und zum Schluss Unigine . Was machst du da
    Ich helfe dem bestehenden Entwicklerteam bei dem Projekt und wachse über mich hinaus. Dies umfasst alles vom Schreiben von Code bis zur Vorlesung.

    Im Allgemeinen habe ich ein Standardstereotyp, eine Grafik-Engine bedeutet für Spiele, aber es scheint, dass Unigine eher von Projekten aus anderen Branchen (obwohl auch von Spielen) verwendet wird. Gibt es einen Unterschied in den Ansätzen, oder dass "die Unigine-Engine von Experten als die beste 3D-Technologie für Linux anerkannt wird" (aus dem Wiki entnommen) eine Rolle gespielt hat?
    In einer Nische die sogenannte Professionelle Simulationen (das sind Simulatoren, Architektur, VR usw.) haben ihre eigenen speziellen Anforderungen, die einerseits klein erscheinen, aber sobald Sie beschäftigt sind, ändern sie alles. Ein klassisches Beispiel: In den meisten Spielen hat ein typischer Ort eine Größe von beispielsweise 1 x 1 km oder 10 x 10 km, und die akkumulierten Fehler sind nicht sehr wichtig. Um alle Arten von Koordinaten in der Masse von Orten zu speichern, können Sie daher ein 32-Bit-Float verwenden, und alles ist in Ordnung. Für Simulatoren reicht dies jedoch nicht aus: Beispielsweise fährt der Zug in einer Entfernung von 3.000 km durch ganz Australien, kommt aber nicht dort an. Oder, ähm, das Produkt nimmt und fliegt vorbei, was nicht autorisiertes Verhalten ist und daher stark inakzeptabel ist. Hoppla, plötzlich müssen Sie die Koordinaten in einem 64-Bit-Double speichern, und die Auswahl an Engines ist stark eingeschränkt. Oder hier ist ein anderes Beispiel: Sie können einfach ein detailliertes Modell von 5 Millionen Polygonen in die Engine laden, und es wird heilen, oder Sie sind möglicherweise überhaupt nicht in der Lage, dies zu tun. Der Motor wird fallen. Wieder ein interessanter Unterschied !!! Aber in Spielen braucht es niemand, also machen sie es nicht viel. Ja, bei Unigine geht es in erster Linie darum, aber für die Erstellung von Unreal- oder Unity-Spielen sind sie am wahrscheinlichsten besser.

    Wie ist es, Entwickler einer Open-Source-Engine wie Sphinx zu sein? Was hast du meistens zu tun
    Was - ich finde es schwierig zu antworten. Nun, nun, es gibt ein solches Projekt in Bezug auf Erfolge. Nun, was soll ich noch sagen? Na ja, Sphinx, na ja ... Na ja, ich musste mich zu verschiedenen Zeitpunkten absolut für alle damit auseinandersetzen. Wenn Sie den Code-Schock schreiben, wenn Sie mit potenziellen Kunden im Marathon-Modus telefonieren (und gleichzeitig denken: Es wäre besser, den Code zu schreiben), wenn Sie lügen und an die Decke spucken, ist alles passiert.

    "Sie schreiben Motoren für Lebensmittel", sagen Sie ... ist es wirklich so schlimm? Etwas Unterstützung kaufen? Vielleicht haben Sie ein paar Villen in Europa, und hier sind Sie gebückt? :)
    Und wir haben nie Sphinx-Support in industriellen Mengen gekauft, wir haben nie gelernt, wie man es geschickt verkauft. Historisch gesehen waren wir zu verschiedenen Zeiten, entweder die nackte Lucene oder Solr oder heute Elastic, immer eine solche Alternative. So etwas wie FreeBSD benutzt immer noch jemand. Ich persönlich bevorzuge natürlich die Analogie von Postgres, von der ich in den fernen Jahren nicht besonders gehört habe, aber du bist nicht gestorben und sie hat in letzter Zeit sogar an Popularität gewonnen.

    Leider gibt es nirgendwo Villen.

    Willst du einen neuen Motor? In welcher Gegend? Wofür interessieren Sie sich jetzt?
    Wie immer etwas technisch Nicht-Triviales mit angewandten Vorteilen, das meinem persönlichen begrenzten Gehirn zugänglich ist. Hier, genau in dieser Sekunde, ist es zum Beispiel im Bereich des maschinellen Lernens besonders interessant. Es war dort vorher unterhaltsam und in den letzten Jahren wurden sehr interessante Erfolge erzielt - Objekte auf den Bildern sind fast besser als eine Person zu klassifizieren, dann wird der Weltmeister in Go geschlagen - herzhaft !!! Aber ich kenne die Region nicht gut und halte das für einen Makel.

    Zum Bericht Devs vs CTO vs CEO. Nun, als Entwickler waren Sie es natürlich. Und CTO, CEO? (Wäre es nicht ein einseitiger Bericht? CTO und CEO SphinxSearch ... werden wahrscheinlich nicht funktionieren, es ist unwahrscheinlich, dass Sie dort ein festes Team hatten. Oder war es?) Erzählen Sie uns im Allgemeinen über Ihre Erfahrung in Positionen.
    Von den genannten Unternehmen, Skyfallen - vom Programmierer bis zum CTO, Sphinx - ist Unigine gleichzeitig und in einer Flasche eine Mischung aus den Verantwortlichkeiten eines Programmierers und eines CTO. Mein Standpunkt ist also meiner Meinung nach sehr vielseitig gewachsen.

    Was für ein Bericht ? Schulung für Führungskräfte? Wutmanagementkurs für Entwickler? Mantras der Versöhnung?
    Welche Art von Bericht ich noch nicht kenne. Das Thema, wie es passiert ist, ist teilweise forciert, aber knapp :) Deshalb hoffe ich etwas interessantes und reifer.

    Danke an Shodan für das Interview. Übrigens, kommen Sie zur Devconf 2016 . Das Programm wurde bereits gebildet. Bald - 17. Juni. Dort kannst du mit ihm sprechen und sicherstellen, dass sein "Ich bin eine verschwiegene und nicht gesellige Person" völliger Unsinn ist :)

    Jetzt auch beliebt: