You should be able to edit the proposal now. Please copy the gist over. On Fri, Mar 27, 2015 at 5:12 PM, Ambrose Bonnaire-Sergeant < abonnaireserge...@gmail.com> wrote:
> Ah yes. Then we're all good! > > On Fri, Mar 27, 2015 at 4:52 PM, Sean Laguna <sean.lag...@gmail.com> > wrote: > >> Hi, >> >> I did get the melange submission in on time, it just points to the gist. >> Presumably that means I'm technically on time? >> >> Best, >> Sean >> On Mar 27, 2015 3:28 PM, "Ambrose Bonnaire-Sergeant" < >> abonnaireserge...@gmail.com> wrote: >> >>> Hi Sean, >>> >>> I'm afraid student applications are a hard deadline, so you will have to >>> try again next year. >>> I will go through your application over the weekend. >>> >>> Thanks, >>> Ambrose >>> >>> On Fri, Mar 27, 2015 at 3:20 PM, Sean Laguna <sean.lag...@gmail.com> >>> wrote: >>> >>>> Hi, >>>> >>>> I did end up taking your advice and submitting a bit of an ambitious >>>> proposal! You can find it here: >>>> https://gist.github.com/seanlaguna/c2003b52cc197119bdec as well as >>>> submitted. >>>> >>>> I made a bit of a blunder though -- I didn't think about the fact that >>>> by submitting my proposal as a gist (an external link from the submission), >>>> I would be (in some sense) circumventing the deadline. I really hope this >>>> doesn't affect my ability to potentially be accepted, and am definitely >>>> willing to do whatever might be necessary to correct for this. Of course, >>>> the gist has full revision history, so you can see the only thing I did >>>> past 2:00pm Central Time (where I am) was add a link to my resume (since I >>>> realized I could not attach two files within melange itself). >>>> >>>> I also do apologize for cutting this so close; I got a bit carried away >>>> delving into Clojure, though I had a great time. To comment on the way that >>>> I work, I would say that I do get very engrossed in what I'm doing, and >>>> benefit a lot from frequent communication that keeps me on-track. I do >>>> think that summer of code would facilitate my style of work well in that >>>> regard. I will also say that I note that my open-source contributions are >>>> not particularly strong (they barely exist, actually). I have focused more >>>> on the academic side of work, but I love the ideals of open source and have >>>> always been meaning to make direct contributions. I really do hope that >>>> this is a way to get my foot in the door and stay there, and I hope that >>>> whether or not I'm accepted that you have some interest in my ideas and can >>>> perhaps give me feedback of any sort. >>>> >>>> This is another reason I took a while to submit my proposal: I wanted >>>> to provide some code in the background section of my proposal which would >>>> show that I did have some chops for parallel programming in Clojure to >>>> indicate that I could pick up languages quickly and that this is a feasible >>>> project for me. I have done some programming in Clojure before but getting >>>> some of the reducer/atom/future/do* syntax exactly right was a fun >>>> challenge! >>>> >>>> Again, I'd love to hear comments on my proposal, and let me know if >>>> there's anything else I can do in the meantime. >>>> >>>> Best, >>>> Sean >>>> >>>> On Wednesday, March 25, 2015 at 5:05:44 PM UTC-5, Ambrose >>>> Bonnaire-Sergeant wrote: >>>>> >>>>> Hi Sean, >>>>> >>>>> Sounds like you have greater ambitions than simply supporting >>>>> transients. Please feel free to disregard any suggestions >>>>> in the project template and make the *you* would like to implement >>>>> over the summer. Please post it here or on Melange then we >>>>> can discuss further. >>>>> >>>>> Thanks! >>>>> Ambrose >>>>> >>>>> On Wed, Mar 25, 2015 at 3:55 PM, Sean Laguna <sean....@gmail.com> >>>>> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> I am a third year computer science PhD student at the University of >>>>>> Chicago, and am interested in submitting a proposal for the typed >>>>>> transients project. I am very interested, in general, about presistency, >>>>>> transience, and the interaction between the two models for operating on >>>>>> data. Persistency is actually influence some of my current work on >>>>>> eliminating race conditions on data structures common in scientific >>>>>> computing (ghost nodes and other regions allocated to overlapping >>>>>> processors in distributed memory programs, etc). I've poked around in the >>>>>> Clojure source code to get some inspiration for my own implementations >>>>>> (I've done some work on that in C++ and in Nim), and of course have read >>>>>> the canonical set of blog posts >>>>>> <http://hypirion.com/musings/understanding-persistent-vector-pt-1> >>>>>> on the implementation of persistent vectors in Clojure. (Which, if I >>>>>> recall >>>>>> correctly, Rich Hickey actually cited in on of his papers on Clojure!) >>>>>> >>>>>> I would be happy to work on typing transient data structures in >>>>>> core.clojure, and to work out a means of typing transient that interacts >>>>>> efficiently and elegantly with other types, especially persistent data >>>>>> structures. I'm working on a proposal for this now and can send it in a >>>>>> couple hours, but I wonder if there's a good way of identifying the >>>>>> lowest >>>>>> hanging fruit for typing a crucial transient data structure in the core >>>>>> Clojure codebase where I could do a sort of trial run? It would help >>>>>> immensely I think with coming up with a laundry list of tasks for >>>>>> performing this, instead of it being more of a casual perusal of the >>>>>> code. >>>>>> >>>>>> One endgame for this work that I'm interested in is automatic >>>>>> parallelization, which Clojure's persistent data structures, in my >>>>>> opinion, >>>>>> do inspirationally well. Something I'm very interested in is applying the >>>>>> shared memory concurrency model to a distributed memory environment. >>>>>> Persistency has natural distributed memory implications with regard to >>>>>> especially parallelism, because modifications to the "same" value that >>>>>> are >>>>>> made, at the same logical time, in different, distributed places in >>>>>> memory, >>>>>> can potentially be reconciled when the values are eventually synced >>>>>> (perhaps even lazily). Transients could be used in the distributed >>>>>> locations, and syncing could be done using persistent logic. My thoughts >>>>>> on >>>>>> this are a bit more fleshed out than as presented here, but I see real >>>>>> potential for nearly free (from a syntactic point of view) distributed >>>>>> memory parallelism. I've read about avout <http://avout.io> but I'm >>>>>> a bit disappointed by their somewhat unleveraged use of persistency and >>>>>> transience, and about their seeming lack of support for data structures. >>>>>> >>>>>> I know that this endgame is a bit separate from the goal of typing >>>>>> transients, but I believe that the extra information gained from typing >>>>>> transients could lend itself to a more painless implementation of >>>>>> something >>>>>> like the above. So, I have a few questions: >>>>>> >>>>>> 1. would a very simple distributed memory parallelism >>>>>> implementation that relies on persistence and transients be desirable >>>>>> as a >>>>>> test-case for this project? The desire for distributed memory >>>>>> parallelism >>>>>> could itself be inferred through a type annotation. >>>>>> 2. would a project that leverages persistent/transients for >>>>>> race-free distributed memory parallelism be desirable in general, >>>>>> separate >>>>>> from this project? >>>>>> - do you agree that there may be some viability here? >>>>>> 3. for this particular project proposal: is there a simple >>>>>> example of an instance of a transient data structure in the core >>>>>> Clojure >>>>>> codebase upon which I can base an itemized procedure for carrying out >>>>>> this >>>>>> proposal? >>>>>> 4. is it within the scope of this project to also type >>>>>> persistency that may be missing in the core Clojure codebase, or to >>>>>> convert >>>>>> non-transient data stuctures that may benefit from transience? >>>>>> >>>>>> Thanks! Hope to hear back soon (and sorry for the late correspondence >>>>>> about this)! >>>>>> Sean Laguna >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Clojure" group. >>>>>> To post to this group, send email to clo...@googlegroups.com >>>>>> Note that posts from new members are moderated - please be patient >>>>>> with your first post. >>>>>> To unsubscribe from this group, send email to >>>>>> clojure+u...@googlegroups.com >>>>>> For more options, visit this group at >>>>>> http://groups.google.com/group/clojure?hl=en >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "Clojure" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to clojure+u...@googlegroups.com. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To post to this group, send email to clojure@googlegroups.com >>>> Note that posts from new members are moderated - please be patient with >>>> your first post. >>>> To unsubscribe from this group, send email to >>>> clojure+unsubscr...@googlegroups.com >>>> For more options, visit this group at >>>> http://groups.google.com/group/clojure?hl=en >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "Clojure" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to clojure+unsubscr...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Clojure" group. >>> To post to this group, send email to clojure@googlegroups.com >>> Note that posts from new members are moderated - please be patient with >>> your first post. >>> To unsubscribe from this group, send email to >>> clojure+unsubscr...@googlegroups.com >>> For more options, visit this group at >>> http://groups.google.com/group/clojure?hl=en >>> --- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Clojure" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/clojure/U3uaNq0Jt4c/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> clojure+unsubscr...@googlegroups.com. >>> For more options, visit https://groups.google.com/d/optout. >>> >> -- >> You received this message because you are subscribed to the Google >> Groups "Clojure" group. >> To post to this group, send email to clojure@googlegroups.com >> Note that posts from new members are moderated - please be patient with >> your first post. >> To unsubscribe from this group, send email to >> clojure+unsubscr...@googlegroups.com >> For more options, visit this group at >> http://groups.google.com/group/clojure?hl=en >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.