Done, thanks for bearing with me. I foolishly didn't even think at first that an attachment would be insufficient -- and it's a bit too bad, since markdown definitely served me better than the provided text box. I realized just a bit too late that it really wanted those boxes filled.
On Friday, March 27, 2015 at 4:30:57 PM UTC-5, Ambrose Bonnaire-Sergeant wrote: > > 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 < > abonnair...@gmail.com <javascript:>> wrote: > >> Ah yes. Then we're all good! >> >> On Fri, Mar 27, 2015 at 4:52 PM, Sean Laguna <sean....@gmail.com >> <javascript:>> 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" < >>> abonnair...@gmail.com <javascript:>> 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....@gmail.com >>>> <javascript:>> 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 clo...@googlegroups.com >>>>> <javascript:> >>>>> 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 <javascript:> >>>>> 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 <javascript:>. >>>>> 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 clo...@googlegroups.com >>>> <javascript:> >>>> 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 <javascript:> >>>> 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+u...@googlegroups.com <javascript:>. >>>> 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 clo...@googlegroups.com >>> <javascript:> >>> 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 <javascript:> >>> 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 <javascript:>. >>> 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.