Devreal

SF Scala: Q&A with David Yu, Creator of Protostuff.io, by Alexy Khrabrov

SF Scala: Q&A with David Yu, Creator of Protostuff.io, by Alexy Khrabrov

Recording: SF Scala: Q&A with David Yu, Creator of Protostuff.io, by Alexy Khrabrov

oh hello everybody i'm alexi kravrov the organizer of sf scala and here we are on location at radius for a special meetup about uh google protocol buffers uh we had to talk today uh one on scala implementation and one on protostaff uh and here with us we have david yu who is the creator of the original proto staff uh project which is at protostaffaio welcome david it's great to have you here yes my pleasure uh i wonder if this is one of the oldest projects about protocol buffers right so you start it and you keep doing it so not often people often start the projects and they drop them but you keep doing this project so can you tell us how did you start this and what is so exciting about protocol buffer so you still keep doing this after all these years okay so i started it because i found protocol buffers to have a very good design so it has all the features uh schema evolution and compact binary size and it has implementation in lots of languages so it's easy to get started and you just generate the code for your client side server side for your data everything so um for me when i try when i created protosoft i was using it internally for my projects so um along the way um there were many feature requests from the from the users so i tried to improve so one uh one of the one of the modules that are feedback base is the process of runtime so i wasn't planning on adding that because how i use photoshop is purely on code generation so protocol runtime and also the protocol graph so some users use it they also use it on android so i've gotten feedback that it works there before i had a phone so i was happy about it so i couldn't we continued to fix bugs because there were already some users on the dose of runtime and graph and for me it were the core projects um over time i need i need another feature that i want like the pipe it came later so i continued adding that and maintaining that so that's basically i'm creating proto stuff and maintaining it because i use it internally in my project okay got it uh and so uh it's very interesting so you're from the philippines which city cebu yeah so i didn't know much about it i went to wikipedia i think and i found it at a port it's a poor city it's a big city right and so uh you're the first speaker from the philippines at sf scholar and uh a lot of people doing you know portal buffs are in big data and they're all in the bay area i'm sure probably some companies try to hire you from the bay area but you are still in the philippines so can you tell us uh you know did you ever like feel the pool of the bay area all the startups you know when you come here did you ever want to move here what is the uh startup scene in the philippines like and kind of how does this work you know you're there and we're here we work on the same thing yeah yeah so basically um my father has a big business there food business and um instead of yeah i could have applied here but i wanted to help our business also so i wanted to make sure that um i use protostaff and i improve our business through automation our inventory our sales so it's most mostly the beneficiary of prototype goes directly to my father's company oh god okay cool so so they are helping the business the business and the local economy yeah yeah yeah yeah this is great this is awesome this is great uh cool and so and i noticed uh so i found about proto stuff through some big data people right and so you obviously kind of it's used in many uh in you know some of these projects so i'm just wondering kind of uh is this something why you keep working on this like you have users in different projects right who who who applied this is another thing like you you because you you help them fix bugs right so what was the question well the question is like is this some motivation also for you the users who keep you know finding proto stuff and using the different projects yeah yeah so for for the users that use it in a in big data so i just they usually message me directly and some do it on the issues so for me if i find a bug on the that's critical i always try to fix it immediately because i don't want uh because yeah it direct is also impacts me because i'm using it in production in our inventory system yes so so it's uh it's basically the core stuff everything there that has bugs directly impacts me so that that's what that's one of the reasons why i try to maintain it as fast as um often and fix bugs as early as i can okay and i know you were attending a gwt uh conference here can you tell us a little bit and you mentioned also that your uh prototype is interacting with the browser can you tell us a little bit about how that uh part works yeah so prototype as a the public project is more on serialization in code generation yes that's just and also a few templates for the uh java javabean pls and gwt overlays so in my internal project it's probably bigger than the processor project uh uh i have also have internal libraries and most of them are for everything so when i uh i notice in my if you notice in in the bio i said i prefer a lean stock yeah so basically my stock is engine x and the jvm and level db so that's it and there's no frameworks uh photo stuff is the framework that connects it all so i have in photostuff in my internal library i have a data layer so i declaratively i use the protoforma to declaratively index the fields and i store it and also to store the into the database i have a so basically in the server side i have a database object from other stuff and then an rpc layer still managed by photoshop and then a client-side layer using gwt and another js javascript library named view v-u-e so i integrate view and gw3 and i communicate the library uh communicates directly in the server using the protostaff protocol okay okay so it's basically my in my own framework that i did not publish yet and so but this closure is short nginx closure uh is it just for nginx or are you using any closure in your stack no no no i don't use clojure i just noticed that his implementation was fast so i was wondering what made it fast okay so because uh i usually over optimize and use and especially in the jni side i try to make it as fast as possible and do bulk processes because of the overhead so i i noticed that he was using jna in a different way so when i found out that about his hacks then i applied it also oh cool got it well that was i think a really great project and you know very great insights i think you know people learn a lot so thank you very much david and we're always happy to have you here and talk about your your study stack and technology yeah thank you thank you for having me you